Home » Archimedes archive » Acorn User » AU 1995-10.adf » !CHelp » CHelp/!StrongHlp/HelpData/C
CHelp/!StrongHlp/HelpData/C
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 » Acorn User » AU 1995-10.adf » !CHelp |
Filename: | CHelp/!StrongHlp/HelpData/C |
Read OK: | ✔ |
File size: | CDBC4 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
HELP(��,����$DIR$��F����XZ&�!Root�F���ZU�/< _XSE���8���CSprites22�F���Z�/4[a]��F���n]�/,[b]�=F����b�/�[c]F����n�/�[d]8'F���0�/H[e]ȋF���F��/�[f]��F������/x[g-h]��F������/[i-k]��F������/0[l]��F���ᨄ/�[m]��F�����/l[n-o]�6F�����/[p]PF����Ƅ/�[q-r]�QF����Ʉ/d [s]�: F�����/[t]PF���~�/,[u]�F�����/�[v]P#F���@�/P[w]ĤF�����/�[x-z]�F���� �/�[1-9]��F���}=Z&C!ConfigureDATA�C #Sprite 16,16 !c? #indent 8 #tab ,align centre - *Help On C* - - by <Gareth Boden=>GBoden> - - <Version 2.00=>200> - #indent 2 = <Maelstrom Software=>Maelstrom> = #indent 0;line;indent <The C Language=>c_> <ANSI Functions=>ansi_> <RISC OS Functions=>riscos_> <Preprocessor Directives=>ppdir_> <Compiler Directives=>compdir_> <Linker Directives=>linkdir_> <Make Files=>make_> <Libraries=>lib_> #indent 0;line {align centre}� Acorn User/G Boden 1995DIR$< < F�����"�_default_signal_handler�F��� �"�_error_signal_marker\F���K �"�_ignore_signal_handlerF���f�$extended_fp_numberF���~k�"�IOFBF�F����o�"�IOLBF�F����t�"�IONBF�F��� ٯ$'kernel_alloc�F���J�$kernel_command_str�F���1�$�kernel_current_stack_chunkpF����I�$�kernel_ERROR F���q��$kernel_escape_seen8F����U�$�kernel_exitF���we�$�kernel_exittraphandler�F���n��$�kernel_ExtendProc�F�����$kernel_fpavailable�F���$�kernel_getenv�F����w�$�kernel_hostos� F�����$�kernel_irqs_disabled$!F������$�kernel_irqs_off�!F�����$�kernel_irqs_on�"F����E�$�kernel_languaged#F���넮$]kernel_last_oserro�$F����M�$�kernel_NONXl%F����y�$Zkernel_osargs�&F�����$Xkernel_osbget (F����!�$Xkernel_osbputx)F�����$ kernel_osbyte�+F������$�kernel_oscliL-F���$U�$kernel_oserrorX.F���yi�$�kernel_osfile0F������$lkernel_osfile_bloc�1F���Z�$�kernel_osfind(3F���B1�$�kernel_osgbpb�4F���=��$�kernel_osgbpb_blocx6F�����$�kernel_osrdcht7F���dE�$�kernel_osword,9F���� �$+kernel_oswrchX:F��� A�$�kernel_procname;F���q^�$�kernel_raise_error�;F�����$kernel_sdiv=F�����$�kernel_sdiv10�=F�����$�kernel_setenv@?F����M�$�kernel_setreturncode�?F����%�$Dkernel_srem0AF����[�$kernel_stack_chunkHBF����̮$�kernel_swi(DF���eܮ$�kernel_swi_cFF���\p�$�kernel_swi_regsGF������$�kernel_system�IF����/�$.kernel_udiv�JF���~5�$�kernel_udiv10�KF����6�$-kernel_unwind�LF���rj�$�kernel_unwindblock�MF���4?�$Ukernel_urem�NF������$�kernel_register_slotextenddQF���I�$�kernel_register_allocsDATA�__default_signal_handler Syntax: void�__default_signal_handler (int n); Header: <signal.h=>signal> This is more normally referred to by the macro <SIG_DFL>.DATA�__error_signal_marker Syntax: void�__error_signal_marker (int n); Header: <signal.h=>signal> This is more normally referred to by the macro <SIG_ERR>.DATA�__ignore_signal_handler Syntax: void�__ignore_signal_handler (int n); Header: <signal.h=>signal> This is more normally referred to by the macro <SIG_IGN>.DATA_extended_fp_number This type is defined in <kernel.h=>kernel>. It contains a 12 byte floating point number as the following union: \{ struct \{ int s : 1; int u : 16; int x : 15; unsigned mhi,mlo; } i; int w[3]; }DATA�_IOFBF #Parent stdio The macro _IOFBF is defined in <stdio.h=>stdio> as a value used as an argument for the function <setvbuf>. It causes input/output to be fully buffered. In Easy�C it is defined as 0x100.DATA�_IOLBF #Parent stdio The macro _IOLBF is defined in <stdio.h=>stdio> as a value used as an argument for the function <setvbuf>. It causes input/output to be line buffered. In Easy�C it is defined as 0x200.DATA�_IONBF #Parent stdio The macro _IONBF is defined in <stdio.h=>stdio> as a value used as an argument for the function <setvbuf>. It causes input/output to be unbuffered. In Easy�C it is defined as 0x400.DATA'_kernel_alloc Syntax: unsigned _kernel_alloc (unsigned minwords, void **block); Header: <kernel.h=>kernel> Returns: The size of block allocated. This function tries to allocate a block of memory of 'sensible size' as near to /minwords/ as possible. The block will not be smaller than 2K words (Acorn's definition of sensible size). If this much memory cannot be allocated, it will allocate as much as possible. The pointer to the block is returned in the pointer pointed to by /block/. This will be <NULL> if a the size of the block is zero.DATA_kernel_command_string Syntax: char *_kernel_command_string (void); Header: <kernel.h=>kernel> Returns: Pointer to the string. This function returns a pointer to the string which was used to start the program. It may be a copy of the string that is used.DATA�_kernel_current_stack_chunk Syntax: <_kernel_stack_chunk> *_kernel_current_stack_chunk (void); Header: <kernel.h=>kernel> Returns: Pointer to the current stack chunk.DATA�_kernel_ERROR The macro {*}_kernel_ERROR{*} is defined in <kernel.h=>kernel> as a value to be returned by certain functions to indicate an error. It is defined as (-2).DATA_kernel_escape_seen Syntax: int _kernel_escape_seen (void); Header: <kernel.h=>kernel> Returns: 1 if there has been an escape. This function checks to see if there has been an escape (since the previous call to this function). This function will never miss an escape.DATA�_kernel_exit Syntax: void _kernel_exit (void); Header: <kernel.h=>kernel> This function calls the SWI <OS_Exit=>SWI:OS_Exit> with the return code specified by a call to <_kernel_setreturncode>.DATA�_kernel_exittraphandler Syntax: void _kernel_exittraphandler (void); Header: <kernel.h=>kernel> This function resets the *InTrapHandler* flag which prevents recursive traps. It is used inside trap handlers which do not return directly.DATA�_kernel_ExtendProc The type {*}_kernel_ExtendProc{*} is defined in <kernel.h=>kernel> as a procedure which can be used to extend the heap used by the kernel. It is defined as: {wrap off} {fCode;align centre}int _kernel_ExtendProc (int, void **);{f;align;wrap} The procedure should allocate the amount of space requested in the integer argument, and return a pointer to it in the {/}void *{/} whose pointer is given. It should return the size of space allocated.DATA_kernel_fpavailable Syntax: int _kernel_fpavailable (void); Header: <kernel.h=>kernel> Returns: 0 if floating point is not available. This function tests for the presence of either the floating point co-processor or the floating point emulator module (FPE).DATA�_kernel_getenv Syntax: <_kernel_oserror> *_kernel_getenv (char *name, char *buf, unsigned len); Header: <kernel.h=>kernel> Returns: Pointer to error, or <NULL> if none. This function gets the value of the system variable whose name is specified and places it in the character array pointed to by /buf/. The length of the array is given by /len/. This function is equivalent to the SWI <OS_ReadVarVal=>SWI:OS_ReadVarVal> (and very similar to the function <getenv>).DATA�_kernel_hostos Syntax: int _kernel_hostos (void); Header: <kernel.h=>kernel> Returns: Number indicating Operating System. This function is equivalent to <OS_Byte=>SWI:OS_Byte> 0,1. It returns 6 for RISC OS.DATA�_kernel_irqs_disabled Syntax: int _kernel_irqs_disabled (void); Header: <kernel.h=>kernel> Returns: Non-zero if IRQ interrupts are enabled.DATA�_kernel_irqs_off Syntax: void _kernel_irqs_off (void); Header: <kernel.h=>kernel> Disable interrupts. This can only be used from code running in SVC mode. You should not disable interrupts if possible.DATA�_kernel_irqs_on Syntax: void _kernel_irqs_on (void); Header: <kernel.h=>kernel> Enable interrupts. This can only be used from code running in SVC mode.DATA�_kernel_language Syntax: char *_kernel_language (int pc); Header: <kernel.h=>kernel> Returns: Pointer to name. This function gets the name of the language in whose code the address /pc/ lies.DATA]_kernel_last_oserror Syntax: <_kernel_oserror> *_kernel_last_oserror (void); Header: <kernel.h=>kernel> Returns: Pointer to error, or <NULL> if none. This function returns a pointer to the error block describing the last OS error that occured (since the last call to this function). The block returned may be overwritten by another error.DATA�_kernel_NONX The macro {*}_kernel_NONX{*} is defined in <kernel.h=>kernel> as a value used to indicate to SWI calling functions that errors are to be reported.DATAZ_kernel_osargs Syntax: int _kernel_osargs (int r0, unsigned r1, int r2); Header: <kernel.h=>kernel> Returns: (r0=r1=0): Current FS number, else: Value returned in R2 by OS_Args, or -1 if failed (ie carry flag set) -2 if an OS error occurred. This function calls the <OS_Args=>SWI:OS_Args> SWI with registers R0-R2 set to those given.DATAX_kernel_osbget Syntax: int _kernel_osbget (unsigned handle); Header: <kernel.h=>kernel> Returns: The byte read, -1 for EOF, -2 for error. This function calls the <OS_BGet=>SWI:OS_BGet> SWI which reads a byte from the open file whose handle is given. Note that this is a RISC OS file handle, not one generated by the <fopen> function.DATAX_kernel_osbput Syntax: int _kernel_osbput (int c, unsigned handle); Header: <kernel.h=>kernel> Returns: -2 if an OS error occured, else 0. This function calls the <OS_BPut=>SWI:OS_BPut> SWI which writes a byte to the open file whose handle is given. Note that this is a RISC OS file handle, not one generated by the <fopen> function.DATA _kernel_osbyte Syntax: int _kernel_osbyte (int r0, int r1, int r2); Header: <kernel.h=>kernel> Returns: Values returned, or error as follows: (-1) Carry flag is set (call failed) (-2) OS error occurs. This function calls the <OS_Byte=>SWI:OS_Byte> SWI with the register R0 set to the value passed in {/}r0{/}, and registers R1 and R2 set to the values pointed to by {/}r1{/} and {/}r2{/}. The /int/ returned contains R1 in its bottom byte, R2 in the second byte, and 1 in the third byte if the carry flag is set.DATA�_kernel_oscli Syntax: int _kernel_oscli (char *command); Header: <kernel.h=>kernel> Returns: 0 if successful, -2 if an OS error occurred. This function passes the string given to the operating system CLI to be executed as if it had been typed in as a "star command". For instance, {fCode}_kernel_oscli("Modules"){f} has the same effect as <*Modules>. This function should not be used to run other programs - use <_kernel_system> for that.DATA_kernel_oserror The type {*}_kernel_oserror{*} is defined in <kernel.h=>kernel> as an object holding a standard RISC OS error block. It is defined as the following structure: \{ int errnum; /* Error number */ char errmess[252]; /* Error message */ }DATA�_kernel_osfile Syntax: int _kernel_osfile (int op, char *name, <_kernel_osfile_block=>_kernel_osfile_bloc> *blk); Header: <kernel.h=>kernel> Returns: Contents of register R0, or error: -1 if failed (ie carry flag set) -2 if an OS error occurred. This function calls the <OS_File=>SWI:OS_File> SWI which performs various functions on whole files. R0 is set from /op/, and R1 is set to the name given. Registers R2-R5 are set from /blk/.DATAl_kernel_osfile_block The type {*}_kernel_osfile_block{*} is defined in <kernel.h=>kernel> as a type capable of holding information to be passed to the <_kernel_osfile> function. It is defined as: \{ int load; /* load address */ int exec; /* execution address */ int start; /* start address/length */ int end; /* end address/attributes */ }DATA�_kernel_osfind Syntax: int _kernel_osfind (int op, char *name); Header: <kernel.h=>kernel> Returns: Opening file: 0 if failed, else file handle. Closing file: 0 if successful, -1 if failed, -2 if OS error occured. This function calls the <OS_Find=>SWI:OS_Find> SWI which handling opening and closing of random access files. The register R0 is set to the value in /op/, R1 should point to the filename.DATA�_kernel_osgbpb Syntax: int _kernel_osgbpb (int op, unsigned handle, <_kernel_osgbpb_block=>_kernel_osgbpb_bloc> *blk); Header: <kernel.h=>kernel> Returns: 0 if successful. -1 if failed (ie carry flag set). -2 if an OS error occured. This function calls the <OS_GBPB=>SWI:OS_GBPB> SWI which performs a myriad of different operations. The parameters for the call are set from and returned in /blk/. The action (in R0) depends on the value of /op/.DATA�_kernel_osgbpb_block The type {*}_kernel_osgbpb_block{*} is defined in <kernel.h=>kernel> as an object capable of holding information to be passed to the <_kernel_osgbpb> function. It is defined as the following structure: \{ void *dataptr; /* memory address of data*/ int nbytes; int fileptr; int buf_len; char *wild_fld; /* points to wildcarded name */ }DATA�_kernel_osrdch Syntax: int _kernel_osrdch (void); Header: <kernel.h=>kernel> Returns: The character read. This function calls the {*}OS_ReadC{*} SWI, which reads a character for the keyboard buffer, waiting for one to be pressed if necessary.DATA�_kernel_osword Syntax: int _kernel_osword (int r0, int *r1); Header: <kernel.h=>kernel> Returns: 0 if successful. -1 if failed (ie carry flag set). -2 if an OS error occured. This function calls the <OS_Word=>SWI:OS_Word> SWI with the register R0 set to the value passed in {/}r0{/}, and the register R1 set to the pointer {/}r1{/}, which points to a parameter block. Values are read from and returned in the parameter block.DATA+_kernel_oswrch Syntax: int _kernel_oswrch (int c); Header: <kernel.h=>kernel> Returns: -2 if an OS error occurs, else 0. This function calls the <OS_WriteC=>SWI:OS_WriteC> SWI with the register R0 set to /c/. This has the result of writing the charater in /c/ to the current output stream.DATA�_kernel_procname Syntax: char *_kernel_procname (int pc); Header: <kernel.h=>kernel> Returns: Pointer to name. This function gets the name of the procedure containing the address /pc/.DATA�_kernel_raise_error Syntax: void _kernel_raise_error (<_kernel_oserror> *err); Header: <kernel.h=>kernel> This function generates an external error with the error block pointer to by /err/.DATA_kernel_sdiv Syntax: int _kernel_sdiv (int x, int y); Header: <kernel.h=>kernel> Returns: The quotient of y/x. This function calculates the signed quotient of y/x. It is intended for use by non-C programs using the Shared C Library. In C you can simply use the division sign!DATA�_kernel_sdiv10 Syntax: int _kernel_sdiv10 (int x); Header: <kernel.h=>kernel> Returns: x divided by 10. This function divides /x/ by 10 and returns the signed result.DATA�_kernel_setenv Syntax: <_kernel_oserror> *_kernel_setenv (char *name, char *val); Header: <kernel.h=>kernel> Returns: Pointer to error, or <NULL> if none. This function sets the value of the system variable whose name is specified to the string pointed to by /val/. If /val/ is NULL then the variable is deleted. This function is equivalent to the SWI <OS_SetVarVal=>SWI:OS_SetVarVal>.DATA�_kernel_setreturncode Syntax: void _kernel_setreturncode (unsigned n); Header: <kernel.h=>kernel> This function sets the return code to be used by <_kernel_exit>.DATAD_kernel_srem Syntax: int _kernel_srem (int x, int y); Header: <kernel.h=>kernel> Returns: The remainder of y/x. This function calculates the signed remainder of y/x. Formally this is defined as r=y-(i*x), where /r/ is the remainder and /i/ is an integer such that /r/ has the same sign as /y/ and is less than /x/.DATA_kernel_stack_chunk This type is defined in <kernel.h=>kernel>. It contains a stack chunk in the following structure: \{ unsigned long sc_mark; /* 0xf60690ff */ struct stack_chunk *sc_next,sc_prev; unsigned long sc_size; int (*sc_deallocate) (); }DATA�_kernel_swi Syntax: <_kernel_oserror> *_kernel_swi (int n, <_kernel_swi_regs> *in, _kernel_swi_regs *out); Header: <kernel.h=>kernel> Returns: Pointer to error, or NULL if none. This function calls a SWI, whose number is given in /n/. The registers R0-R9 are set to the values in /in/, and returned in /out/. This normally calles the X form of the SWIs ie errors are returned but not reported. To call the normal form, you should OR the SWI number with <_kernel_NONX>.DATA�_kernel_swi_c Syntax: <_kernel_oserror> *_kernel_swi_c (int n, <_kernel_swi_regs> *in, _kernel_swi_regs *out, int *c); Header: <kernel.h=>kernel> Returns: Pointer to error, or <NULL> if none. This function calls a SWI, whose number is given in /n/. The registers R0-R9 are set to the values in /in/, and returned in /out/. In addition the carry flag is returned in the variable pointed to by /c/. This function is identical to <_kernel_swi>, except that the carry flag is returned.DATA�_kernel_swi_regs The type {*}_kernel_swi_regs{*} is defined in <kernel.h=>kernel> as an object capable of holding the registers R0-R9 so that they can be passed to the operating system. It is defined as the structure: \{ int r[10]; }DATA�_kernel_system Syntax: int _kernel_system (char *command, int chain); Header: <kernel.h=>kernel> Returns: 0 if successful, -2 if OS error occurs. This function passes the string given to the operating system CLI to be executed as if it had been typed in as a "star command". The difference between this and other similar function is that this function allows other programs to be run, either as a sub-program to, or instead of the current program. If /chain/ is 0, then the command is executed so that when it finishes, control is passed back to this program. If /chain/ is 1, then the command is executed so that it completely replaces this program.DATA._kernel_udiv Syntax: unsigned _kernel_udiv (unsigned x, unsigned y); Header: <kernel.h=>kernel> Returns: The quotient of y/x. This function calculates the unsigned quotient of y/x. It is intended for use by non-C programs using the Shared C Library. In C you can simply use the division sign!DATA�_kernel_udiv10 Syntax: unsigned _kernel_udiv10 (unsigned x); Header: <kernel.h=>kernel> Returns: x divided by 10. This function divides /x/ by 10 and returns the unsigned result.DATA-_kernel_unwind Syntax: int _kernel_unwind (<_kernel_unwindblock> *blk, char **lan); Header: <kernel.h=>kernel> Returns: Indication of success/failure. This function unwinds the call stack one level. It returns negative if it succeeds, 0 if the stack end is reached, or positive for an error.DATA�_kernel_unwindblock This type is defined in <kernel.h=>kernel> as the following structure: \{ int r4,r5,r6,r7,r8,r9; int fp,sp,pc,sl; <_extended_fp_number> f4,f5,f6,f7; }DATAU_kernel_urem Syntax: unsigned _kernel_urem (unsigned x, unsigned y); Header: <kernel.h=>kernel> Returns: The remainder of y/x. This function calculates the unsigned remainder of y/x. Formally this is defined as r=y-(i*x), where /r/ is the remainder and /i/ is an integer such that /r/ has the same sign as /y/ and is less than /x/.DATA�_kernel_register_slotextend Syntax: <_kernel_ExtendProc> *_kernel_register_slotextend (_kernel_ExtendProc *proc); Header: <kernel.h=>kernel> This function registers a function for use by the kernel to extend its heap. It is normally able to do this automatically, but if someone else has acquired the space it would use it needs to be able to ask that someone else to give it some space. That is what the function pointed to by /proc/ is used for. It is called with the amount of space required in bytes and is expected to return either 0 for failure or the amount of space allocated (which may be more than requested, but {_}not{_} less).DATA�_kernel_register_allocs Syntax: void _kernel_register_allocs (<allocproc> *malloc, <freeproc> *free); Header: <kernel.h=>kernel> This funcion registers two procedures which are used by the kernel to claim and release memory. The procedure given by /malloc/ is used for claiming memory and /free/ is used for releasing previously claimed memory. The procedure used for claiming memory must not use more than 41 words of stack (one less than the Meaning of Life, the Universe and Everything).DATA�C�C!c?!��������������������������wwwwwwUUUUUU333333D�D�������������U�U���������BeW$Bwwwg1vwwwwtwwwwwGwwwwwwg2DUUE$bwwwwwwgC54TUUU%uwwwwwwwBUU1UUUU!wwwwwwww!UUUEUUUU5awwwgewwwQUUUUSUUUErwww&awwwTUUUUSUUUEvwwwcwwWTUUUUTUUUE!vwwguww&TUUUEUUUU51www'AD4SUUU1UUUUawwwBUUEQUUUUqwww34SUUU$rwww!UUU5twwwAUU4uwwgSEtwwg!Tvwwg!1%wwwGAvgAwww7tww'Rwww7!vww'2www7Awww&!CTDwwwgrwwwSUUU%wwwwwwww1UUUUUuwwwwwwwRUUUUUuwwwwwwGSUUUUUswwwwwwSUUUU5bwwwwwwSUUUUawwwwwW1UUU5!vwwwwCT3dwww%!uw%���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������T!desklib!��������������������������wwwwwwUUUUUU333333D�D�������������U�U���������0����333030���000000�000000����0000��3030�������������0����0����뻻0���������뻻0�����0����뻻0���������뻻�����0����뻻0���������뻻Q�������U300���뻻0�ə����00�����03��..�00@���#�00@D>>.Q0330Bw�R0000p'QQ3300000030033�!easyc!�T������������������������wwwwwwUUUUUU333333D�D�������������U�U��������� TVDSwgfwwWbg�����xgPg�������x7v���������x`�����������7v�����������x0������������oq�������������Wv�����www�����x�����x#s����0�����70�����P����������p����ovwwwwq����DDDDDr����r����r����r����q����DDDDDq����vwwww`����������0�����70����������xc����v�����www�����xq�������������g1������������1w�����������xw�����������7w���������xuv�������x7 rw�����xw@swwwwww#twD�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!ansic,� ���{@34sp P���4343 P龾�'43CD33p P���4333 P龾�7$2@p ���{$2 ���{"$21p P�$2 001% !$21p 0$2 1%2$22p "2$2 0"$20 433314C43CD332�C44343���B$@34S��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!timslib!,,0���333030���000000�000000����0000��3030��������������0����0�������0������������0�����0�������0�����������������0�������0���������Q�������U300������0�ə����00�����03��..�00@���#�00@D>>.Q0330Bw�R0000p'QQ3300000030033�-maelstrom;�,������������������������wwwwwwUUUUUU333333D�D�������������U�U���������BUUUUUUUUUUUUUUUUUUUUUUUUUUU4Awwwwwwwwwwwwwwwwwwwwwwwwwwwww%swwwwwwwwwwwwwwwwwwwwwwwwwwwwwWvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwggggwwwwwwwwwwwwgeeUVevwwwwwwwF��DKDTvwwwwwwwwgUUVVVVUwwwwwww�KKKK��ewwwwwwwwVU$���fXwwww�����www��K��DKKwwwwwwwwT�UVV�ewww'333D�33333$SUUCD3D�23"#23!"2DT42TT4�QU�!fFwwwF�BKK���uwwwwwwg�U�fkVuwwwGtwwwvwWBGpw'uwswfwwWv�@ww71wwcwvgaw7`w'wwwg+��KKKKdwwwwwwGBe[��XVwwwwWdwwrwBQw!ww!1'uw�1wwswG!wWrwLwgswwwww4�KK���Kwwwwww�S[V�V�Uwwww'6rwrw�Pw1wwA�sw#vwawW`w'`w7AwwvwwwwwF����KKKvwwwwwT[��U�XVwwww&pwrw�AAw!wwrwvg`w'qwAwWPvw0ww'wwwwFAK�����twwww�[�Vf�V�VwwwwD3bw'rwwwAwtwwswvWawrw1wg`@wgs"w7wwwwGC���K��TwwwwG�U[[V�eUwwwwqSwwwGrwgUwAw\wwWrwvgs7sw!wgawwW wWwwww���������vwww��kVf�V�Vwwwgrwwwwwqw'uAwrwwrw�vg0Vwsw1wglsw'wgwwww7KK��KK��twwwT[���V�XVwwwGuaGuwqw@wuwgrwug wgrw!wga`w�vwwwwwFK����KK[eww�[�eeV�V�Fwww&<qwqwAw0wwswugvwqw@wGb1wuwwwww����KKKKKKwwG�U[[[��VFwww65awrwAw�rw'rwuwrw|wQw'SUtwwwww�K������[[vwV[�VfV�VfKwwwSbAwqw@w�tGt&PwGrwtwLw'@w`wUtwwwww���K��KKKKdg�e[���e�VVvwwqq1wqw!AwPw!w1wGrwtwugw'|wEswwwww��;DK�����KE[�UUVV�V�fuwgbr!w7rwr@w'!w1wAw'rwtw@wrWrgFswwwww�K[����K[K[[�U[���e�X�uwWds!wGsw�1WAwG1w'wawsw�tw�r7@wvFswwwww��d6����������tVVV�V��twGtqPwWvwWDv'pwwcwRgCvWvwtwdb7cGfvwwwww��cg�KKKK[�U[VuG[k��f�twg1a 3#""2213333#3#3313�!�B3#wwwgK�tw��K�����UKwGVV�fe�twwfvwwwWKKdwFKKK[[K[[UwGk[U��fewwwwwwwGK�twGKK[KK[�UkwWV��VV�VwwwwwwwGKKkwg�KK[[[[�uwW[�U�e�UwwwwAvGRWUwwwG��tww����U[�EwwgU��eVVVwwwwvgv!w6gwwwG��twwGK[[[[[[www�UV�f�KwwwwaGa7a'!Wwww6K�twwW�����UtwwwU��VVVHwwwwr!Gr!G2www���twww�KK[��uwww�ee�f�Vvwwws!#!ewVswgWfgVtftww27!%c1vfwwwE��uwwgF����EwwwwU��Vf�kuwwwssgUwCvUdvgVs4A7rgDuG'AWw!vWvgwww���twwwG[K�U[wwww�UV�V�euwwwag#1gQGear1Wq!w1wQwr7uwwwE��uwww�[[[�twwwwX��Vfffuwww!uwqvWqaaWuq&ta7gawww���uwwwwT[[[uwwwwV�e�V��twww!egttGrasw!WtsrA'1'wwg���xwwwwF[�EwwwwwG��fffetwwwvvt!7tA'fuafrrawwgwv'www�KKvwwwwg�UewwwwwGUV�ee�uwwwsfuA'u1717tsWtsqVTUUUwwg���vwwwwwFTvwwwwwV��V��VXwwwQsggAu!GqsgfvuqwwgK�DvwwwwwggwwwwwwG�ee��fVwwwruvQ'agWsrU7vQwuavwwWKK�vwwwwwwwwwwwwwWX�ke�fVwwwq'Agstq!WufqvttWvAgQ7wwW��4wwwwwwwwwwwwwwW�ee�XfVwwwAwEv&AwEuGr17u7awawEuGWWvVTwwwGK[KwwwwwwwwwwwwwwW���Vf�FwwwcwFcwVrA6sQWdwF27!GRww&wwG[K;wwwwwwwwwwwwwwWUf�f�eVwww!1"wwGK[;wwwwwwwwwwwwwwWV��V�fFwwwwwG[[;wwwwwwwwwwwwwwW[Rff�fVwwwwwGUKKwwwwwwwwwwwwww�eQfe��FwwwwwGC[EvwwwwwwwwwwwwwWfa����Fwwwww�B[KwwwwwwwwwwwwwwWKbV��fFwwwwwG�UKvwwwwwwwwwwwwwV%df��fFwwwwwGQ��ewwwwwwwwwwwwgU4V�[�fFwwwwwGB[UKwwwwwwwwwwwwV�U�Xh�eVwwwwwG[��UvwwwwwwwwwwwVVfe���fewwwwwg�U[�xwwwwwwwwwwwV�f����UvwwwwwwVUTUwwwwwwwwwwwwwUVVVVUfwwwwvwwwwwwwwwwwwwwwwwwwwvwvvwwwwwwtwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgawwwwwwwwwwwwwwwwwwwwwwwwwwwww&dvvvvvvvvvvvvvvvvvvvvvvvvvvvV��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������DIR$44P�F����u�"abortp�F���.�"�absX�F�����"�acos$�F����k�"�ADR̝F�����"�akbd��F���;��"Qalarm�F����(�"�ALIGN��F���h��$+allocprocԡF����h�"�APepperellp�F����h�"�APereira`�F���Q��"�asctime�F������"�asin��F���D�S&ZAskUser�F����h�"DassertP�F���#��"�atan(�F������"�atan2��F���G�"&atexitԭF���N��"Patof$�F���=��"Qatoix�F������"TatoḻF����[�/�akbd_p�F����[�/\alarm_d�F����\�/,ansi_t�F����\�/lAskUser_D�F���1]�/LASSERT_DATAabort Syntax: void abort (void); Header: <stdlib.h=>stdlib> This function terminates the program abnormally. Open files may not be closed and temporary files may not be removed. This function should not really be used if you can help it. The function calls <raise>(<SIGABRT>).DATA�abs Syntax: int abs (int x); Header: <stdlib.h=>stdlib> Returns: The absolute value of /x/. This function returns the absolute value of /x/ ie the magnitude of /x/. This is always positive so if x = -5, then abs(x) = 5.DATA�acos Syntax: double acos (double x); Header: <math.h=>math> Returns: The arc cosine of x, in radians. This function calculates the principal value of the arc cosine of x. Domain: -1 \<= x \<= 1.DATA�ADR <register>,<label> This sets the given register to contain the address of the given label eg: #fCode ADR R0,label ... .label DCD 10,5,76DATA�akbd.h The \<akbd.h> header declares three functions concerned with accessing the keyboard. It also defines a number of <macros=>akbd_macros_>. #Table 2 15 <akbd_pollctl> <akbd_pollkey> <akbd_pollsh> #EndTableDATAQalarm.h This header file provides alarm facilities for Wimp programs, using non-busy waiting. Functions: #Indent 8 #Table 5 23 <alarm_init> <alarm_timenow> <alarm_timedifference> <alarm_set> <alarm_remove> <alarm_removeall> <alarm_anypending> <alarm_next> <alarm_callnext> #EndTable #Indent 0 Types: #indent 8 <alarm_handler>DATA�ALIGN This aligns the assembly pointer to a word boundary. Use it after data blocks of irregular length. All instructions must be assembled on a word boundary.DATA+allocproc The type *allocproc* is defined in <kernel.h> as a procedure which can be used to allocate memory. It is defined as: {fCode;align centre}void *allocproc (unsigned);{f;align} The parameter passed is the size of space to allocate. It should return a pointer to the space allocated.DATA�Andrew Pepperell Internet email: ap10014@cam.ac.uk Snail-mail: 20 Orchard Park Grimoldby LOUTH Lincolnshire LN11 8TN U.K.DATA�Ainsley Pereira FidoNet email: 2:250/219.5 Internet email: A.Pereira@cs.ucl.ac.uk (uni) or ampy@digibank.demon.co.uk (home) Snail-mail: 'Al Sirat' Chapel Road Swanmore SOUTHAMPTON SO32 2QA U.K.DATA�asctime Syntax: char *asctime (<struct�tm> *tptr); Header: <time.h=>time_h> Returns: Pointer to the time string. This function converts the broken-down time, whose structure is pointed to by /tptr/, into a string in the form: �ddd mmm nn hh:mm:ss yyyy\\n\\0� Where /ddd/, /mmm/, /nn/ etc are the day, month, day number etc, \\n is a newline, and \\0 is the null terminator.DATA�asin Syntax: double asin (double x); Header: <math.h=>math> Returns: The arc sine of x, in radians. This function calculates the principal value of the arc sine of x. Domain: -1 \<= x \<= 1.DATAZAskUser Syntax: <askuser_REPLY> AskUser (char *question); Header: <TimsLib:AskUser.h=>AskUser_h> Returns: The user's response. This function opens a dialogue box containing the question and two buttons ('Yes' and 'No'). It waits for the user's reply and returns it. The template "query" must be loaded with <Template_LoadFile> and should have the following icons: {tab} 0 - 'Yes' icon. Button type 'Click'. 1 - Indirected text. Suitable for question (usually will have validation "L40" so that multiple lines of text can be displayed). Button type 'Never'. 2 - 'No' icon. Button type 'Click'.DATADassert.h The \<assert.h\> header declares just one function, as follows: Syntax: void assert (int exp); Header: assert.h This function checks the value of exp. If it is zero (ie false) then the program aborts instantly with a message giving "exp" and the current file and line within that file. It would normally be used with a condition as exp, for example: assert(a==b); would abort if a did not equal b. The assert function can be disabled by including the following line in the program BEFORE you <#include=>include> \<assert.h\>. <#define=>define> NDEBUGDATA�atan Syntax: double atan (double x); Header: <math.h=>math> Returns: The arc tangent of x, in radians. This function calculates the principal value of the arc tangent of x. See also the function <atan2>.DATA�atan2 Syntax: double atan2 (double x, double y); Header: <math.h=>math> Returns: The arc tangent of (x/y), in radians. This function calculates the principal value of the arc tangent of (x/y). The result is in the range -pi to +pi, rather than -(pi/2) to +(pi/2) as with <atan>, since the signs of the arguments can be used to determine the quadrant in which the result lies.DATA&atexit Syntax: int atexit (void (*func)(void)); Header: <stdlib.h=>stdlib> Returns: Zero if the function succeeds. This function registers the specified function to be called without arguments when the program terminates normally. More than one function can be registered in this way.DATAPatof Syntax: double atof (char *str); Header: <stdlib.h=>stdlib> Returns: The converted value. This function converts the start of the string pointed to by /str/ to a /double/. If the string cannot be converted, the behaviour is undefined. This function is roughly equivalent to: {align centre}<strtod> (str, (char **) NULL);DATAQatoi Syntax: int atoi (char *str); Header: <stdlib.h=>stdlib> Returns: The converted value. This function converts the start of the string pointed to by /str/ to an /int/. If the string cannot be converted, the behaviour is undefined. This function is roughly equivalent to: {align centre}(int) <strtol> (str, (char **) NULL);DATATatol Syntax: long int atol (char *str); Header: <stdlib.h=>stdlib> Returns: The converted value. This function converts the start of the string pointed to by /str/ to a /long int/. If the string cannot be converted, the behaviour is undefined. This function is roughly equivalent to: {align centre}<strtol> (str, (char **) NULL);DIR$��X�F����X�"cmacros_��F���vl�"�pollctl��F�����"�pollkey��F������"�pollshDATAcakbd.h Macros These macros are all defined so that you can use them to refer to the key numbers returned by the Wimp. They are as follows: akbd_Fn Base values for function keys F1-F9 ie F1 returns (akbd_Fn+1) akbd_Sh Value to add if Shift is pressed. ie Shift-F1 returns (akbd_Fn+akbd_Sh+1). akbd_Ctl Value to add if Ctrl is pressed ie Ctrl-Shift-F1 returns (akbd_Fn+akbd_Sh+akbd_Ctrl+1). akbd_TabK Value returned by Tab key. akbd_CopyK Value returned by Copy key. akbd_LeftK Value returned by left arrow. akbd_RightK Value returned by right arrow. akbd_DownK Value returned by down arrow. akbd_UpK Value returned by up arrow. akbd_Fn10 Value returned by F10. akbd_Fn11 Value returned by F11. akbd_Fn12 Value returned by F12. akbd_InsertK Value returned by Insert. akbd_PrintK Value returned by Print. akbd_PageUpK Value returned by PageUp. akbd_PageDownK Value returned by PageDown. The modifiers {/}akbd_Sh{/} and {/}akbd_Ctl{/} can be used identically with all except PageUp and PageDown. These return the same values as the up and down arrows, except the Shift action is reversed ie Shift-PageDown=Down arrow.DATA�akbd_pollctl Syntax: int akbd_pollctl (void); Header: <akbd.h=>akbd> Returns: 1 if Control is held down, else 0. This function tests to see if the Control key is being held down. It uses <OS_Byte=>SWI:OS_Byte> 129.DATA�akbd_pollkey Syntax: int akbd_pollkey (int *c); Header: <akbd.h=>akbd> Returns: 1 if user has typed ahead. This function reads the keyboard and returns the ASCII value of the key read in the /int/ pointed to by /c/.DATA�akbd_pollsh Syntax: int akbd_pollsh (void); Header: <akbd.h=>akbd> Returns: 1 if Shift is held down, else 0. This function tests to see if the Shift key is being held down. It uses the SWI <OS_Byte=>SWI:OS_Byte> 129 to do this.DIR$\\̺F���e-�"�anypending��F���e@�"callnext��F����Q�"Qhandler��F������"�init��F���p9�"�next��F���&�"�remove��F����)�"�removeall,�F�����"Lsetx�F���;�"�timedifferencep�F���s��"�timenowDATA�alarm_anypending Syntax: <BOOL> alarm_anypending (void *handle); Header: <alarm.h=>alarm> Returns: <TRUE> if the are pending alarms. This function returns whether an alarm is pending with a given handle.DATAalarm_callnext Syntax: void alarm_callnext (void); Header: <alarm.h=>alarm> This function calls the next alarm handler function. This is done for you if you use <event_process=>event_process_> to do your polling (or even if you use <wimpt> functions).DATAQalarm_handler This type is defined in <alarm.h=>alarm>. It is a function which is called when an alarm occurs. Your function should have the definition: {fCode;align centre}void myfunc (int called_at, void *handle);{f;align} {/}called_at{/} is the time at which you are called, and /handle/ is the handle passed to <alarm_set>.DATA�alarm_init Syntax: void alarm_init (void); Header: <alarm.h=>alarm> This function initialises the alarm system. If this call is made more than once, any pending alarms are cancelled.DATA�alarm_next Syntax: <BOOL> alarm_next (int *result); Header: <alarm.h=>alarm> Returns: <TRUE> if alarm is pending. This function informs you whether an alarm is pending and, if so, for when it is (returned in {/}*result{/}).DATA�alarm_remove Syntax: void alarm_remove (int at, void *handle); Header: <alarm.h=>alarm> This function removes an alarm which was set for time /at/ with the given handle. If no such alarm exists this function does nothing.DATA�alarm_removeall Syntax: void alarm_removeall (void *handle); Header: <alarm.h=>alarm> This function removes all alarms which have the given handle.DATALalarm_set Syntax: void alarm_set (int at, <alarm_handler> proc, void *handle); Header: <alarm.h=>alarm> This function sets an alarm at the given time. /at/ is the monotonic time at which the alarm should occur. /proc/ is your function to be called at alarm time and /handle/ is passed direct to that function. The supplied function is passed the time at which it was called. If you have enabled idle events, then these are still returned to you; if not, RISC_OSLib uses idle events internally to implement alarm calls (using non-busy waiting via <wimp_pollidle=>wimp_pollidle_>).DATA�alarm_timedifference Syntax: int alarm_timedifference (int t1, int t2); Header: <alarm.h=>alarm> Returns: Difference between t1 and t2. This function returns the difference between two monotonic times. It deals with wrap round of timer.DATA�alarm_timenow Syntax: int alarm_timenow (void); Header: <alarm.h=>alarm> Returns: The current monotonic time. This function reads the current monotonic time. It is equivalent to SWI <OS_ReadMonotonicTime=>SWI:OS_ReadMonotonicTime>.DIR$,,��F���<K�"�!RootDATA�ANSI Functions #Parent $ ANSI functions are grouped into 15 header files. Under RISC OS they are provided by the <Shared C Library=>SWI:SharedCLibrary_.!Root> module. #Indent 8 #Table 8 15 <assert.h=>assert> <ctype.h=>ctype> <errno.h=>errno_h> <float.h=>float> <limits.h=>limits> <locale.h=>locale> <math.h=>math> <setjmp.h=>setjmp_h> <signal.h=>signal> <stdarg.h=>stdarg> <stddef.h=>stddef> <stdio.h=>stdio> <stdlib.h=>stdlib> <string.h=>string> <time.h=>time_h> #EndTableDIR$ll��F����S&�CloseDown��F�����S&�h��F���'�S&oReplyDATA�AskUser_CloseDown Syntax: void AskUser_CloseDown (void); Header: <TimsLib:AskUser.h=>AskUser_h> This function deallocates storage claimed by <AskUser>(). It is only of use in debug builds so only exists if the macro {*}_DEBUG{*} is defined.DATA�TimsLib:AskUser.h This header provides the facility for getting a Yes/No response to a question from the user. Functions: #indent 5 #table columns 2 <AskUser> <AskUser_CloseDown> #endtable #indent Types: {align centre}<askuser_REPLY>DATAoAskUser_REPLY This type is defined in <TimsLib:AskUser.h=>AskUser_h> as an enumerated type capable of holding a user's response to a question. It is defined as: \{ askuser_NOREPLY, /* Never returned */ askuser_CANCEL, /* Cancelled */ askuser_YES, /* Replied YES */ askuser_NO, /* Replied NO */ askuser_ERROR /* Not enough memory */ }DIR$LL��F���)KT&!Root��F���v_T&(VALIDDATAASSERT Syntax: ASSERT (<BOOL> expr); Header: <TimsLib:Check.h=>Check> If the macro {*}_DEBUG{*} is not defined, this has no effect. Otherwise, /expr/ is evaluated and if it is <FALSE> then an error box is displayed detailing the assertion failure.DATA(ASSERT_VALID Syntax: ASSERT_VALID (void *pointer); Header: <TimsLib:Check.h=>Check> If the macro {*}_DEBUG{*} is not defined, no action is taken. Otherwise, /pointer/ is checked and if it is not valid (ie memory can not be read/written at this location) then an assertion failure occurs.DIR$,,��F���f��"rbariconX�F����]�/�baricon_��F���3��"�bbc��F���V^�/bbc_�4F����~�$�BOOL$6F������"~break�7F���/ �"�bsearchp:F���z�"�BUFSIZ;F����b�/,button_DATArbaricon Syntax: <wimp_i> baricon (char *spr, int *area, <baricon_clickproc> p); Header: <baricon.h=>baricon_h> Returns: Icon handle of created icon. This function places a normal sprite-only icon on the icon bar. /spr/ is a pointer to the sprite name, /area/ is the sprite area pointer and /p/ is the function to be called when *Select* is clicked on the icon.DIR$��<�F������"#clickproc`�F���cw�"h|�F������"�left�F���z��"newsprite�F���V��"�textandsprite��F������"�textandsprite_leftDATA#baricon_clickproc This type is defined in <baricon.h=>baricon_h>. It is a function called when the user clicks on an icon bar icon. The function is of the form: {fCode;align centre}void myfunc (<wimp_i> icon);{f;align} ie the function is passed the icon number of the icon clicked.DATAbaricon.h This header file declares functions for placing an icon on the icon bar. Functions: #indent 1 #table columns 2 <baricon> <baricon_left> <baricon_textandsprite> <baricon_textandsprite_left> <baricon_newsprite> #endtable Type: #align centre <baricon_clickproc>DATA�baricon_left Syntax: <wimp_i> baricon_left (char *spr, int *area, <baricon_clickproc> p); Header: <baricon.h=>baricon_h> Returns: Icon handle of created icon. This function places a normal sprite-only icon on the left of the icon bar. /spr/ is a pointer to the sprite name, /area/ is the sprite area pointer and /p/ is the function to be called when *Select* is clicked on the icon.DATAbaricon_newsprite Syntax: <wimp_i> baricon_newsprite (char *new); Header: <baricon.h=>baricon_h> Returns: Icon handle of icon. This function changes the sprite used on the icon bar to be that whose name is given. The sprite must be in the same area as before...DATA�baricon_textandsprite Syntax: <wimp_i> baricon_textandsprite (char *spr, char *text, int bufflen, int area, <baricon_clickproc> p); Header: <baricon.h=>baricon_h> Returns: Icon handle of created icon. This function places a normal sprite + text icon on the right of the icon bar. /spr/ is a pointer to the sprite name, /text/ is the text, /area/ is the sprite area, /bufflen/ is the text buffer length and /p/ is the function to be called when *Select* is clicked on the icon.DATA�baricon_textandsprite_left Syntax: <wimp_i> baricon_textandsprite_left (char *spr, char *text, int bufflen, int area, <baricon_clickproc> p); Header: <baricon.h=>baricon_h> Returns: Icon handle of created icon. This function places a normal sprite + text icon on the left of the icon bar. /spr/ is a pointer to the sprite name, /text/ is the text, /area/ is the sprite area, /bufflen/ is the text buffer length and /p/ is the function to be called when *Select* is clicked on the icon.DATA�bbc.h The \<bbc.h> header declares many BBC BASIC-type functions and macros for graphics and mouse/keyboard control. Functions: #Indent 5 #Table 2 19 <Text output=>bbc_text_> <Graphics output=>bbc_graph_> <VDU/Mode variables=>bbc_vmvar_> <Sound/Miscellaneous=>bbc_misc_> #EndTable #Indent 0 Macros: #Indent 5 #Table 2 19 <VDU commands=>bbc_vducom_> <Plot codes=>bbc_plotcom_> <VDU variables=>bbc_vduvar_> <Mode variables=>bbc_modevar_> #EndTableDIR$��F���ح�"�advall�F����I�"circle|�F����O�"#circlefill��F���)W�"�clg��F���N�"�clsd�F�����"6colour��F������"Ocursor��F����]�"draw�F���uc�"(drawby,�F���\k�"�fill�F����q�"gcol(�F������"yget��F������"�getbeatd�F������"�getbeats,�F��� ��";gettempoh�F���Jj�"�graphd�F��� B�"graph_��F����}�"�gwindow�F���3��"minkey��F�����"�misc_t�F������"mode��F���̍�"fmodevar�F����n�"�modevar_��F�����"�move�F���f��"moveby�F���ť�"xorigin,F���O��"�paletteF���-��"plot0F���w��"Splotbmod_�F�����"^plotcom_�F���R��"�plotmod_�F������"�point�F�����" pos�F���/�"[rectangleF���� �"irectanglefillpF���� �".setbeats�F�����"�settempo(F�����"soundHF��� �"=soundoff�F���u!�"�soundon�F����(�"�stereo<!F�����"stringprintT"F����!�">tab�#F���T��"�text_0$F���M�"ktint�&F����&�"�vdu�'F�����"�vducom_p,F���,�"Xvduq�-F����-�"�vduvar�.F����P�"�vduvar_l/F���v��"�vduvars<1F����1�"_vduw�2F��� )�"Xvmvar_�2F���?0�"�voices�3F���>7�"�vposDATA�bbc_adval Syntax: int bbc_adval (int buf); Header: <bbc.h=>bbc> Returns: A value, depending on the value of buf. This function reads the contents and status of various buffers, depending on the value of /buf/: #tab 7 X coordinate of mouse (do not use) 8 Y coordinate of mouse (do not use) 246 Bytes free in mouse buffer 252 Bytes free in printer buffer 253 Bytes free in RS423 output buffer 254 Bytes in RS423 input buffer 255 Bytes in keyboard buffer It is recommended by Acorn that you do not use bbc_adval() 7 and 8 to read the mouse position, but call the OS_Mouse SWI instead. This call is equivalent to <OS_Byte=>SWI:OS_Byte> 128.DATAbbc_circle Syntax: <os_error> *bbc_circle (int x, int y, int r); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function draws a circle with centre at screen coordinates (x,y) and radius r. Equivalent to <CIRCLE=>Basic:CIRCLE> in Basic.DATA#bbc_circlefill Syntax: <os_error> *bbc_circlefill (int x, int y, int r); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function draws a filled circle with centre at screen coordinates (x,y) and radius r. Equivalent to <CIRCLE FILL=>Basic:CIRCLE> in Basic.DATA�bbc_clg Syntax: <os_error> *bbc_clg (void); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function clears the graphics window to the current background graphics colour (set using <bbc_gcol>).DATA�bbc_cls Syntax: <os_error> *bbc_cls (void); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function clears the text window to the current background text colour (set using <bbc_colour>).DATA6bbc_colour Syntax: <os_error> *bbc_colour (int c); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sets the current text colour to the value in /c/. For c\<128 this alters the text foreground colour to c, and for c>127 this alters the text background colour to c-128.DATAObbc_cursor Syntax: <os_error> *bbc_cursor (int n); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function changes the appearance of the text cursor depending on /n/. Possible values are: #tab 0 Hide cursor 1 Show cursor 2 Steady cursor 3 Flashing cursor Equivalent to <VDU 23,1=>VDU:23,1>.DATAbbc_draw Syntax: <os_error> *bbc_draw (int x, int y); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function draws a line in the current graphics foreground colour from the current position to (x,y). Equivalent to <DRAW=>Basic:DRAW> in Basic.DATA(bbc_drawby Syntax: <os_error> *bbc_drawby (int x, int y); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function draws a line in the current graphics foreground colour from the current position relatively by (x,y). Equivalent to <DRAW BY=>Basic:DRAW> in Basic.DATA�bbc_fill Syntax: <os_error> *bbc_file (int x, int y); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function flood fills an area with the current graphics foreground colour, starting at (x,y).DATAbbc_gcol Syntax: <os_error> *bbc_gcol (int a, int c); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function changes the current graphics foreground colour (in c) and <action=>VDU:18a> (a). If c\>128 then the background colour is set to c-128.DATAybbc_get Syntax: int bbc_get (void); Header: <bbc.h=>bbc> Returns: The character read. This function reads a character from the current input stream. It waits until one is available, so may halt the program temporarily. If an escape condition occurs, the function returns a value greater than 255. This function is identical to OS_ReadC, or <GET=>Basic:GET> in Basic.DATA�bbc_getbeat Syntax: int bbc_getbeat (void); Header: <bbc.h=>bbc> Returns: The beat number. This function returns the current beat number. It is equivalent to the SWI Sound_QBeat 0.DATA�bbc_getbeats Syntax: int bbc_getbeats (void); Header: <bbc.h=>bbc> Returns: The current bar length. This function reads the current bar length. It is equivalent to the SWI Sound_QBeat (-1).DATA;bbc_gettempo Syntax: int bbc_gettempo (void); Header: <bbc.h=>bbc> Returns: The current tempo. This function reads the tempo for the Sound Scheduler ie the rate at which the beat counter counts. The default is 0x1000 which corresponds to one beat per centisecond. 0x2000 is two beats per centisecond, etc.DATA�Graphics Output Functions #Table 6 16 bbc_circle bbc_circlefill bbc_clg bbc_draw bbc_drawby bbc_fill bbc_gcol bbc_gwindow bbc_mode bbc_move bbc_moveby bbc_origin bbc_palette bbc_plot bbc_point bbc_rectangle bbc_rectanglefill bbc_tint #EndTableDATAGraphics Output Functions #Table 6 16 <bbc_circle> <bbc_circlefill> <bbc_clg> <bbc_draw> <bbc_drawby> <bbc_fill> <bbc_gcol> <bbc_gwindow> <bbc_mode> <bbc_move> <bbc_moveby> <bbc_origin> <bbc_palette> <bbc_plot> <bbc_point> <bbc_rectangle> <bbc_rectanglefill> <bbc_tint> #EndTableDATA�bbc_gwindow Syntax: <os_error> *bbc_gwindow (int xmin, int ymin, int xmax, int ymax); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function defines the current graphics window to be the rectangle whose coordinates are given (minimum/maximum x/y). The coordinates are relative to the bottom left of the screen. This function is equivalent to <VDU 24=>VDU:24>DATAmbbc_inkey Syntax: int bbc_inkey (int n); Header: <bbc.h=>bbc> Returns: n>=0 The character read. n\<0 -1 if the key is being pressed, or 0 if not. n==256 The Operating System version. This function either reads a character from the input stream within a time limit, tests a specific key, or reads the Operating System version. To read a character within a time limit, /n/ should be the time limit in centiseconds (up to 32767 - it can be 0). The program will wait until a character is input, for a maximum of /n/ centiseconds, and return the ASCII value of the key. To test a specific key, /n/ should be a value from -255 to -1, and the key represented by that value will be tested. The value should be (-1 - <key nr=>SWI:os_byte121a>) To read the OS version, n = -256. This function is equivalent to <OS_Byte=>SWI:OS_Byte> 129, or <INKEY=>Basic:INKEY> in Basic.DATA�Miscellaneous Functions #Table 7 15 <bbc_adval> <bbc_cursor> <bbc_get> <bbc_getbeat> <bbc_getbeats> <bbc_gettempo> <bbc_inkey> <bbc_setbeats> <bbc_settempo> <bbc_sound> <bbc_soundoff> <bbc_soundon> <bbc_stereo> <bbc_voices> #EndTableDATAbbc_mode Syntax: <os_error> *bbc_mode (int m); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function changes the current <screen mode=>VDU:22a> to the one specified in m. It is equivalent to <MODE=>Basic:MODE> in Basic, or <VDU 22=>VDU:22>.DATAfbbc_modevar Syntax: int bbc_modevar (int mode, int var); Header: <bbc.h=>bbc> Returns: The value of the <mode variable=>bbc_modevar_>. This function reads the value of a single mode variable for the given mode. If mode is -1 then the current mode will be used. This function is equivalent to the SWI <OS_ReadModeVariable=>SWI:OS_ReadModeVariable>.DATA�Mode Variables For each of the <Mode variables=>SWI:OS_ReadModeVariable.variables> (0-12) is defined an enum type. The names are the names of the variables prefixed with "bbc_".DATA�bbc_move Syntax: <os_error> *bbc_move (int x, int y); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function moves the graphics cursor to the position given by (x,y). Equivalent to <MOVE=>Basic:MOVE> in Basic.DATAbbc_moveby Syntax: <os_error> *bbc_moveby (int x, int y); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function moves the graphics cursor from the current position relatively by (x,y). Equivalent to <MOVE BY=>Basic:MOVE> in Basic.DATAxbbc_origin Syntax: <os_error> *bbc_origin (int x, int y); Header: <bbc.h> Returns: Pointer to error, or <NULL> if none. This function moves the current graphics origin (ie the position of (0,0) on the screen) to (x,y). The coordinates are given relative to the screen bottom left. This function is equivalent to <ORIGIN=>Basic:ORIGIN> in Basic, or <VDU 29=>VDU:29>.DATA�bbc_palette Syntax: <os_error> *bbc_palette (int c, int m, int r, int g, int b); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function redefines the colour specified in c either to the physical colour in /m/ (if m\<16) or to the colour whose red, green, and blue components are given by /r/, /g/, and /b/. /m/ can be one of the following: #Tab 0-15 Colour c is redefined to be the physical colour in m. 16 Colour c is redefined to (r,g,b). 17 First flash colour for c is (r,g,b). 18 Second flash colour for c is (r,g,b). 24 Border colour is (r,g,b). c is ignored. 25 Mouse colour c is (r,g,b). 128 added to any of the above sets the supremacy bit. This command is equivalent to <VDU 19=>VDU:19>.DATAbbc_plot Syntax: <os_error> *bbc_plot (int n, int x, int y); Header: <bbc.h=>bbc> This function does lots of things. It is the same as <PLOT=>Basic:PLOT> in Basic, or the SWI <OS_Plot=>SWI:OS_Plot>. /n/ is the <plot type=>bbc_plotcom_>, and /x/ and /y/ are coordinates.DATASPlot Code Block Modifiers The following macros are defined in <bbc.h=>bbc> Macro Code Meaning #line bbc_BMoveRel 0 Move relative bbc_BMoveRectRel 1 Move rectangle relative bbc_BCopyRectRel 2 Copy rectangle relative bbc_BMoveAbs 4 Move absolute bbc_BMoveRectAbs 5 Move rectangle absolute bbc_BCopyRectAbs 6 Copy rectangle absoluteDATA^Plot Commands The following macros are defined in <bbc.h=>bbc>: Macro Code Meaning #line bbc_SolidBoth 0x00 Solid line including both end points bbc_SolidExFinal 0x08 Solid line excluding the final point bbc_DottedBoth 0x10 Dotted line incl. both end points, pattern restarted bbc_DottedExFinal 0x18 Dotted line excl. final point, pattern restarted bbc_SolidExInit 0x20 Solid line excluding the initial point bbc_SolidExBoth 0x28 Solid line excluding both end points bbc_DottedExInit 0x30 Dotted line excl. initial point, pattern continued bbc_DottedExBoth 0x38 Dotted line excl. both end points, pattern continued bbc_Point 0x40 Point plot bbc_HorizLineFillNB 0x48 Horizontal line fill (left & right) to non-background bbc_TriangleFill 0x50 Triangle fill bbc_HorizLineFillB 0x58 Horizontal line fill (right only) to background bbc_RectangleFill 0x60 Rectangle fill bbc_HorizLineFillF 0x68 Horizontal line fill (left & right) to foreground bbc_ParallelFill 0x70 Parallelogram fill bbc_HorizLineFillNF 0x78 Horizontal line fill (right only) to non-foreground bbc_FloodToBack 0x80 Flood to non-background bbc_FloodToFore 0x88 Flood to foreground bbc_Circle 0x90 Circle outline bbc_CircleFill 0x98 Circle fill bbc_CircleArc 0xA0 Circular arc bbc_Segment 0xA8 Segment bbc_Sector 0xB0 Sector bbc_Block 0xB8 Block copy/move (has different <modifiers=>bbc_plotbmod_>) bbc_Ellipse 0xC0 Ellipse outline bbc_EllipseFill 0xC8 Ellipse fill bbc_GraphicsChar 0xD0 Font printing (obsolete - don't use) bbc_SpritePlot 0xE8 Sprite plot Onto each of these can be added a <modifier=>bbc_plotmod_> which affects the way the command behaves.DATA�Plot Code Modifiers The following macros are defined in <bbc.h=>bbc>. Macro Code Meaning #line bbc_MoveCursorRel 0 Move cursor relative bbc_DrawRelFore 1 Plot relative in foreground bbc_DrawRelInverse 2 Plot relative in inverse bbc_DrawRelBack 3 Plot relative in background bbc_MoveCursorAbs 4 Move cursor absolute bbc_DrawAbsFore 5 Plot absolute in foreground bbc_DrawAbsInverse 6 Plot absolute in inverse bbc_DrawAbsBack 7 Plot absolute in backgroundDATA�bbc_point Syntax: int bbc_point (int x, int y); Header: <bbc.h=>bbc> Returns: The colour of the pixel. This function reads the logical colour of the pixel at coordinates (x,y). If the coordinates are outside the graphics window, or if the mode is 256 colour, then it returns 0xFF. This function is equivalent to <OS_Word 9=>SWI:os_word9>. Calling the SWI <OS_ReadPoint=>SWI:OS_ReadPoint> is a better way of doing this, though (trust Acorn to ignore their own improvements...).DATA bbc_pos Syntax: int bbc_pos (void); Header: <bbc.h=>bbc> Returns: The cursor position. This function reads the X coordinate of the text cursor, from the left hand edge of the current text window. This function is equivalent to <OS_Byte=>SWI:OS_Byte> &86.DATA[bbc_rectangle Syntax: <os_error> *bbc_rectangle (int x, int y, int w, int h); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function draws a rectangle on the screen, with the bottom left at position (x,y) and width and height as given by /w/ and /h/. Equivalent to <RECTANGLE=>Basic:RECTANGLE> x,y,w,h in Basic.DATAibbc_rectanglefill Syntax: <os_error> *bbc_rectanglefill (int x, int y, int w, int h); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function draws a filled rectangle on the screen, with bottom left at (x,y) and width and height specified by /w/ and /h/. It is equivalent to <RECTANGLE FILL x,y,w,h=>Basic:RECTANGLE> in Basic.DATA.bbc_setbeats Syntax: <os_error> *bbc_setbeats (int n); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sets the current bar length to /n/, and enables the beat counter. It is equivalent to the SWI Sound_QBeat. If n \< (-1) then the beat counter is disabled. DATA�bbc_settempo Syntax: <os_error> *bbc_settempo (int t); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sets the tempo for the Sound Scheduler ie the rate at which the beat counter counts. The default is 0x1000 which corresponds to one beat per centisecond. 0x2000 is two beats per centisecond, etc. This function is equivalent to SWI Sound_QTempo.DATAbbc_sound Syntax: <os_error> *bbc_sound (int c, int a, int p, int d, int t); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function schedules a sound with channel, amplitude, pitch and duration set by /c/, /a/, /p/ and /d/ respectively, to occur at the schedule time given by /t/. Amplitude may be either 0-15 for linear control, or 0x100 to 0x17F for logarithmic control in which case bit 7 set means smooth pitch changes. In the logarithmic scale a change of 0x10 means a doubling or halving of volume. <Pitch=>sound_pitch_> may be either 0-255 in quarter-semitone steps, or 0x100 to 0x7FF for fine control (4096 steps per octave!) in which case bits 0-11 represent the note and bits 12- 14 represent the octave. Duration is in twentieths of a second. The schedule time is either: (-2) for immediate scheduling, (-1) for scheduling at the same time as the last scheduled event, or a schedule period. The schedule period is measured from the last bar start (if the beat counter is enabled) or from the call time.DATA=bbc_soundoff Syntax: <os_error> *bbc_soundoff (void); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function disables the sound system completely. All Sound interrupts and DMA activity is suspended. This is equivalent to <*Audio Off> or the SWI <Sound_Enable 1=>SWI:Sound_Enable>.DATA�bbc_soundon Syntax: <os_error> *bbc_soundon (void); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function enables the sound system. It is equivalent to <*Audio On> or the SWI <Sound_Enable 2=>SWI:Sound_Enable>.DATA�bbc_stereo Syntax: <os_error> *bbc_stereo (int ch, int pos); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sets the stereo position of a sound channel. The positions are from -127 to 127, with -127 at the extreme left, 0 in the centre and 127 at the extreme right. If less than 8 channels are enabled then more than one channel will be altered. This function is equivalent to the SWI Sound_Stereo.DATAbbc_stringprint Syntax: <os_error> *bbc_stringprint (char *str); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function writes the null terminated string to all active output streams. It does this by calling the SWI <OS_Write0=>SWI.OS_Write0>.DATA>bbc_tab Syntax: <os_error> *bbc_tab (int x, int y); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function moves the text cursor to position (x,y). If x or y are outside the current text window, the function does not move the cursor. It does this by making three calls to <bbc_vdu>.DATA�Text Output Functions #Table 5 17 <bbc_cls> <bbc_colour> <bbc_pos> <bbc_stringprint> <bbc_tab> <bbc_vdu> <bbc_vduq> <bbc_vduw> <bbc_vpos> #EndTableDATAkbbc_tint Syntax: <os_error> *bbc_tint (int c, int t); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sets the tint (ie the amount of white added) for a colour (256 colour modes only). The colour for which the tint is set is specified by c, which may be any of the following: #tab 0 Text foreground colour 1 Text background colour 2 Graphics foreground colour 3 Graphics background colour. The tint, given in t, should be either 0, 1, 2 or 3. The higher it is, the brighter the colour is. This function is equivalent to <VDU 23,17=>VDU:23,17,0>.DATA�bbc_vdu Syntax: <os_error> *bbc_vdu (int c); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function writes the specified character to all active output streams. It does this by calling the SWI <OS_WriteC=>SWI.OS_WriteC>DATA�VDU Commands The following macros are defined in <bbc.h=>bbc>: Macro Code Meaning #Line bbc_CharToPrinter 1 Send next char to printer bbc_EnablePrinter 2 Enable printer bbc_DisablePrinter 3 Disable printer bbc_TextToText 4 Split text & graphics cursors bbc_TextToGraph 5 Join text & graphics cursors bbc_EnableVDU 6 Enable screen output bbc_Bell 7 Bell (system beep) bbc_MoveOneBack 8 Backspace (move left) bbc_MoveOneOn 9 Horizontal tab (move right) bbc_MoveDownOne 10 Line feed (move down) bbc_MoveUpOne 11 Vertical tab (move up) bbc_ClearText 12 Form feed/Clear screen bbc_MoveToStart 13 Carriage return bbc_PageOn 14 Paged mode on bbc_PageOff 15 Paged mode off bbc_ClearGraph 16 Clear graphics window bbc_DefTextColour 17 Set text colour bbc_DefGraphColour 18 Set graphics colour and action bbc_DefLogical 19 Set palette bbc_RestoreLogical 20 Restore default palette bbc_DisableVDU 21 Disable screen output bbc_ScreenMode 22 Change Screen Mode bbc_MultiPurpose 23 Misc bbc_DefGraphWindow 24 Define graphics window bbc_PlotCommand 25 Plot bbc_DefaultWindow 26 Restore default windows bbc_DefTextWindow 28 Define text window bbc_DefGraphOrigin 29 Set graphics origin bbc_HomeText 30 Home bbc_MoveText 31 Position text cursorDATAXbbc_vduq Syntax: <os_error> *bbc_vduq (int c, ...); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function outputs multiple characters. The first character should be a control code and then the parameters follow. You can only send the right number of parameters (the function knows how many there should be).DATA�bbc_vduvar Syntax: int bbc_vduvar (int n); Header: <bbc.h=>bbc> Returns: The value of the VDU variable. This function reads a single <VDU=>bbc_vduvar_> or <mode=>bbc_modevar_> variable value, for the current screen mode.DATA�VDU Variables For each of the <VDU variables=>SWI:os_readvduvariables.variables> (128-170) is defined an enum type. The names are the names of the variables prefixed with "bbc_".DATA�bbc_vduvars Syntax: <os_error> *bbc_vduvars (int *var, int *val); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function reads several <VDU=>bbc_vduvar_> or <mode=>bbc_modevar_> variables for the current mode. /var/ points to a sequence of /ints/, terminated by (-1). The value of each of those VDU variables will be read and placed in the sequence of /ints/ pointed to by /val/, in the same order. /var/ and /val/ may be equal.DATA_bbc_vduw Syntax: <os_error> *os_vduw (int n); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sends the 16-bit value in /n/ to the VDU driver as two bytes, lower byte first (little endian). It would typically be used for sending screen coordinates to the VDU drivers, as these are always two byte quantities.DATAXVDU/Mode Variables Functions #Indent 10 <bbc_vduvar> <bbc_vduvars> <bbc_modevar>DATA�bbc_voices Syntax: <os_error> *bbc_voices (int n); Header: <bbc.h=>bbc> Returns: Pointer to error, or <NULL> if none. This function sets the number of active sound channels. /n/ will be rounded up to 1, 2, 4 or 8.DATA�bbc_vpos Syntax: int bbc_vpos (void); Header: <bbc.h=>bbc> Returns: The cursor position. This function reads the Y coordinate of the text cursor, from the top edge of the current text window.DATA�BOOL The type BOOL is defined in <DeskLib:Core.h=>Core>, <TimsLib:Core.h=>Core_TL> and <os.h=>os> (Desktop C) as an object capable of holding the values <TRUE> and <FALSE>. It is in fact defined using the following macro, rather than properly defining it as a type: {fCode;align centre}<#define=>define> BOOL int{f;align} In DeskLib it is defined as an /unsigned/, not an /int/.DATA~break This command allows you to jump out of a set of braces. It is of most use in <switch> constructs. eg #fCode switch (a) \{ case 0: <puts>("Case 0"); case 1: puts("Case 1"); break; case 2: puts("Case 2"); } #f If a==0, then �Case 0� and �Case 1� are printed. If a==1, then just �Case 1� is printed. If a==2, then just �Case 2� is printed.DATA�bsearch Syntax: void *bsearch (void *key, void *base, <size_t> num, size_t size, int (*func) (void *, void *)); Header: <stdlib.h=>stdlib> Returns: A pointer to the matching object, or <NULL> if none found. This function searches an array of /num/ objects, each of which is /size/ bytes long, and whose first object is pointed to by /base/, for an object which matches /key/. The function which must be defined by you is called with pointers to objects. If the first is less than, equal to, or greater than the second then the function should return less than, equal to, or greater than zero. The array must be sorted into ascending order, on the basis of the criteria used by the comparison function.DATA�BUFSIZ #Parent stdio The macro BUFSIZ is defined in <stdio.h=>stdio> as the size of the buffer used by the function <setbuf>. In Easy�C it is defined as 4096.DIR$,,D;F���TB&�stateDATA�button_state This type is defined in <DeskLib:Wimp.h=>Wimp>. It is used to hold the current button state of the mouse, both as a value and as individual bits so you can test easily for individual buttons. It is defined as the following union: \{ unsigned int value; struct \{ unsigned int adjust : 1; unsigned int menu : 1; unsigned int select : 1; unsigned int dummy3 : 1; unsigned int dragadjust : 1; unsigned int dummy5 : 1; unsigned int dragselect : 1; unsigned int dummy7 : 1; unsigned int clickadjust : 1; unsigned int dummy9 : 1; unsigned int clickselect : 1; } data; }DIR$���BF���c�/�c_�WF����"Ncalloc0YF����c�/�cap_\F���d�/,caret_�^F���\o�"<case_F����P�"�ceil�`F���bd�/`CHAR_�bF����d�/,chario_dF����S&�Check�fF����d�/\check_�rF���?M�"�clearerrTsF���پ�"�clock�tF����e�/(clock_�uF����e�/,CLOCKS_DwF���y�T&�CloseDownFunctionxF���(f�/dcolour_�{F�����"�colourmenu�}F������$�ColourTran`F����f�/,colourtran_ԡF���Bh�/�colourtrans_��F����h�/�compdir_��F����j�/,convert_��F���٧T&Coord��F����j�/@Coord_p�F���A"#�coordsL�F���Al�/ coords_l�F���Y��$eCore��F���rm�/(Core_�F�����"�cos��F���&ƽ"�coshh�F����m�/Lct_h�F���y��"7ctime��F������"�ctype`�F���o�N&)Clear��F���n�/�Clear_F����n�/HColourMenu_DIR$��`CF������"�!Root\EF�����"�expr_JF���E�"�func_�LF���Ճ/�struct_XQF���wl�"�types_0TF���9�/�var_DATA�The C Language C is a very small language, with very few commands and statements. Most of its work is done by evaluating expressions. In fact, virtually everything is done this way because even function calls are evaluated as expressions. #align centre <Program Structure=>c_struct_> <Expressions=>c_expr_> <Variables=>c_var_> <Functions=>c_func_> <Types=>c_types_> #align Commands: #indent 10 #Table columns 5 <for> <while> <do> <if> <else> <return> <break> <switch> <case> <default> #EndTableDATA�Expressions Expressions are a vital part of C. They are written down in much the same way as in any other language: a series of values and operators, precedence given by parentheses (). Values can be <variables=>c_var_>, <functions=>c_func_> or constants. Operators are as follows: #Tab + Plus - Minus * Multiply/contents of / Divide % Modulo & Bitwise AND/Pointer to. | Bitwise OR ^ Bitwise EOR ~ Bitwise NOT <sizeof>(x) Click to find out! * and & have two uses. With two values they perform multiply and AND repectively. However (*p) gives the value pointed to by p, and (&a) gives the pointer to a. These are comparison operators. They return 1 or 0 (true or false): #Tab == Equals != Not equals \< Less than \<= Less than/equal > Greater than >= Greater than/equal These are logical operators. They return 1 or 0 (true or false) and take their argument as non-zero or 0 (true or false). eg 3 && 3 gives 1, whereas 3 & 3 gives 3. #Tab && Logical AND || Logical OR ! Logical NOTDATA�Functions Functions are possibly given some values, do some processing and possible return a value. They have the form: #fCode \<type> \<name> (\<variables>) \{ \<variable declarations>; ... } #f \<type> is the <type=>c_types_> returned by the function. \<name> is the function name. \<variables> are the arguments passed to the function, declared as normal <variables=>c_var_>. eg. #fCode int my_function (int a, float b, char *c) \{ .... } #f declares a function called {/}my_function{/}, passed three values (the last a pointer to an array of chars ie a string) and returning an integer. The work of the function is done in the \{}s.DATA�Program Structure The structure of a general program is given below: #fCode #<include>s #<define>s Function Declarations; Variable Declarations; main() \{ ... } Other Functions #f Most of these items can appear in any order. Functions need only be declared if they are called before they are defined. A declaration is just the first line of the definition ie the return type, name and parameters. /main/ is the function called when the program is run. On exit from this function, the program terminated. It can take two arguments as follows: {align centre; fCode}void main (int argc, char *argv[]) \{}{f;align} These are the parameters passed on the command line, /argc/ is the number of them and {/}argv[]{/} are the parameters in the order they were given on the command line used to start the program. Remember that {/}argv[0]{/} will probably be the program name itself, so {/}argc >= 2{/} will usually imply that a command line argument has been passed. Functions or Variables can be declared as /extern/ ie they are defined in a different file eg in another source file, or /static/ ie they are not accessible outside the scope of this file.DATA�Types Types are defined using the <typedef> command. The built in types are as follows: int: This can be a /short int/ or a /long int/. A plain /int/ or a /long int/ is 32-bits on the Acorn. A /short int/ is 16-bits in Desktop C, and 32-bits in Easy C. These variable types hold integer values. It can also be /signed/ or /unsigned/. char: This is 8-bits long. It can be /signed/ or /unsigned/. float, double and long double: These hold floating point values, with increasing accuracy. void: This is a special type. It is usually only used in function definitions to indicate that no value is passed and/or returned. A pointer to a /void/ ie {/}void *{/} can be used anytime to hold a general pointer to anything.DATA�Variables Variables are defined in terms of a type. They are defined by giving the type and then a list of variable names separated by commas; the whole lot terminated by a semicolon. eg {align centre;fCode}int a,b,*c,d[6],e[]=\{9,4,5,2};{f;align} The '*' indicates that /c/ is not an integer, but a pointer to an integer. The value /c/ points to is given by {/}*c{/}. /d/ is defined as an array of 6 integers, indexed as 0 to 5. /e/ is an array of four integers, whose values are initialised to 9,4,5 and 2 respectively. More complex variables can be defined using <structures=>struct> and <unions=>union>. Variables can be delclared at the start of the program, outside all functions in which case they are global. Alternatively, they can be declared at the start of a block in which case they are local to that block and any blocks within it. /static/ variables declared within blocks keep their value if the block is re-entered.DATANcalloc Syntax: void *calloc (<size_t> n, size_t size); Header: <stdlib.h=>stdlib> Returns: Pointer to space, or <NULL> if failed. This function allocates space for /n/ objects, with each object taking /size/ bytes. The total space allocated is therefore (n*size) bytes. The entire space is initialised with each byte zeroed.DIR$���YF�����E#�buttLZF����F#�round�ZF���F#�squaret[F����F#�triangDATA�cap_butt This macro is defined in <drawmod.h=>drawmod>. It is a value representing butt caps. It is defined as ((unsigned char)0x00).DATA�cap_round This macro is defined in <drawmod.h=>drawmod>. It is a value representing rounded caps. It is defined as ((unsigned char)0x01).DATA�cap_square This macro is defined in <drawmod.h=>drawmod>. It is a value representing square caps. It is defined as ((unsigned char)0x02).DATA�cap_triang This macro is defined in <drawmod.h=>drawmod>. It is a value representing triangular caps. It is defined as ((unsigned char)0x03).DIR$,,8\F���@@F&�blockDATA�caret_block This type is defined by <DeskLib:Wimp.h=>Wimp> as a type capable of holding information about the caret position. It is defined as the following structure: \{ <window_handle> window; <icon_handle> icon; <wimp_point> offset; int height; int index; } {tab} � /window/ and /icon/ are -1 if none. � /offset/ contains the caret offset relative to work area origin. � /index/ contains the index into the string. � /height/ contins the caret height and flags: {tab} #indent 3 _Bit_ _Meaning_ 24 use VDU 5 caret, not anti-aliased caret 25 caret is invisible 26 use bits 16-23 for colour 27 bits 16-23 are logical colours.DATA<case This command is part of the <switch> construct.DATA�ceil Syntax: double ceil (double x); Header: <math.h=>math> Returns: The smallest integer equal to or greater than x. This function calculates the �ceiling� of the given value. This is the smallest integer not less than x. Basically, if x is an integer value then the function returns x, otherwise it returns the next highest integer. Note that the result is returned as a double, even though it is an integer value.DIR$``aF���0"�BIT�aF������"�MAXHbF�����"�MINDATA�CHAR_BIT This macro is defined in <limits.h> and represents the number of bits in which char values are stored. In Easy C it is defined as 8.DATA�CHAR_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in a char. In Easy C it is defined as 0xffU (255).DATA�CHAR_MIN This macro is defined in <limits.h> and represents the minimum value which can be stored in a char. In Easy C it is defined as 0.DIR$,,cF���[�"�!RootDATA�Character I/O Functions #Parent stdio These functions read and write from any stream, single characters, or a sequence of characters. #Table 4 16 <fgetc> <fgets> <fputc> <fputs> <getc> <getchar> <gets> <putc> <putchar> <puts> <ungetc> #EndTableDATA�TimsLib:Check.h #Parent ro_tlib_ This header provides a replacement for the ANSI <assert.h=>assert> header. If an assertion fails, an error box is displayed giving the file, line and reason. The user can then quit the application or continue. Functions: #indent 4 #Table columns 2 <Check_Init> <Check_RegisterCloseDown> <Check_Assert> <Check_AssertAlways> <Check_AssertFailure> <Check_AssertFailureExt> <Check_Valid> <Check_AssertValid> #EndTable #indent Function-like macros: #indent 10 #Table columns 3 <ASSERT=>ASSERT_> <VERIFY> <ASSERT_VALID> <VERIFY_VALID> <VALID> #EndTable #Table columns 2 Type: <CloseDownFunction> Variable: <check_aborting> #EndTableDIR$\\hF���P�T&�aborting�hF����T&�AsserttjF����T&�AssertAlways`kF����T&�AssertFailure8lF����#T&�AssertFailureExt�mF����=T&AssertValidoF�����S&�Init�oF����S&RegisterCloseDown�pF���E3T&�ValidDATA�check_aborting This variable is defined in <TimsLib:Check.h=>Check>. It contains <TRUE> when an irrecoverable error has occurred, or the user has decided to abort due to an assertion failure.DATA�Check_Assert Syntax: void Check_Assert (<BOOL> expr, char *reason); Header: <TimsLib:Check.h=>Check> This call checks that /expr/ is <TRUE> - if not then an error box is displayed allowing the user to continue or quit. An optional description of the fault ({/}reason{/}) may be displayed. If /reason/ is <NULL> then no description is displayed. If the macro {*}_DEBUG{*} is not defined then this has no effect.DATA�Check_AssertAlways Syntax: void Check_AssertAlways (<BOOL> expr, char *reason); Header: <TimsLib:Check.h=>Check> This function is identical to <Check_Assert>, except that it gets called regardless of the state of {*}_DEBUG{*}.DATA�Check_AssertFailure Syntax: void Check_AssertFailure (char *reason); Header: <TimsLib:Check.h=>Check> This function displays /reason/ in an error box, and gives the user the choice of quitting or continuing.DATA�Check_AssertFailureExt Syntax: void Check_AssertFailureExt (char *reason, char *file, int line); Header: <TimsLib:Check.h=>Check> This function displays /reason/, /file/ and /line/ in an error box, and gives the user the choice of quitting or continuing. /file/ and /line/ will normally be set using the {*}__FILE__{*} and {*}__LINE__{*} macros. If the user quits, then the function registered with <Check_RegisterCloseDown> is called.DATACheck_AssertValid Syntax: void Check_AssertValid (void *p); Header: <TimsLib:Check.h=>Check> This function checks if the given pointer /p/ is valid. If it is not then an assertion failure occurs. If the macro {*}_DEBUG{*} is not defined, it has no effect.DATA�Check_Init Syntax: void Check_Init (void); Header: <TimsLib:Check.h=>Check> Initialises the Check module. This must be called before calling any other Check functions.DATACheck_RegisterCloseDown Syntax: void Check_RegisterCloseDown (<CloseDownFunction> func); Header: <TimsLib:Check.h=>Check> This function registers a function to be called in the event of an irrecoverable assertion failure. If /func/ = <NULL> then no function will be called.DATA�Check_Valid Syntax: <BOOL> Check_Valid (void *p, char *file, int line); <BOOL> Check_Valid (void *p); Header: <TimsLib:Check.h=>Check> Returns: <TRUE> if the pointer is valid. This function checks if the given pointer /p/ is valid and returns <TRUE> or <FALSE> accordingly. The first form of the function is used if the macro {*}_DEBUG{*} is defined, otherwise the second form is used. Normally this function will only be called as a result of using <VALID> or <ASSERT_VALID>.DATA�clearerr Syntax: void clearerr (<FILE> *stream); Header: <stdio.h=>stdio> This function clears the end-of-file and error flags of the specified stream.DATA�clock Syntax: <clock_t> clock (void); Header: <time.h=>time_h> Returns: The number of clock ticks. This function reads the number of clock ticks which have occurred since the last time the computer's internal clock was reset. The number of clock ticks per second is given by <CLOCKS_PER_SEC>. This function is roughly equivalent to the SWI <OS_ReadMonotonicTime=>SWI:OS_ReadMonotonicTime>.DIR$((uF���VI�"�tDATA�clock_t The type {/}clock_t{/} is defined in <time.h=>time_h> as an object capable of holding all possible values returned by the function <clock>. In Easy C it is defined as an /unsigned int/.DIR$,,vF���<=�">PER_SECDATA>CLOCKS_PER_SEC The macro {/}CLOCKS_PER_SEC{/} is defined in <time.h=>time_h> to represent the number of clock ticks per second (or more formally, the difference in the return values of the function <clock> at one second intervals). In Easy C it is defined as 100, hence the clock tick value is in centiseconds.DATA�CloseDownFunction This type is defined in <TimsLib:Check.h=>Check>. It is the type of a function called on a assertion failure. The function should have the form: {fCode;align centre}void my_func ();DIR$ddxxF�����a%cmyk�yF���\�a%hsv�zF���<�a%"rgbDATAcolour_cmyk This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold a CMYK colour: \{ unsigned int key : 8; unsigned int yellow : 8; unsigned int magenta : 8; unsigned int cyan : 8; } See the PopUp documentation for more details.DATAcolour_hsv This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold an HSV colour: \{ unsigned int value : 8; unsigned int saturation : 8; unsigned int hue : 16; /* 0 - 359 */ } See the PopUp documentation for more details.DATA"colour_rgb This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold an RGB colour: \{ unsigned int transparency : 8; unsigned int red : 8; unsigned int green : 8; unsigned int blue : 8; } See the PopUp documentation for more details.DATA�colourmenu.h The \<colourmenu.h> header declares one function, as follows: Syntax: <menu> colourmenu_make (char *title, <BOOL> noneflag); Header: <colourmenu.h=>colourmenu> Returns: Pointer to menu structure. This function creates a menu containing the 16 Wimp colours. If /noneflag/ = <TRUE> then an additional entry 'None' will be present. /title/ points to the title for the menu. The menu is only created, not displayed. The icons on this menu are numbered from 1.DATA�ColourTran.h Version: 1.00 (13 May 1994) #line The \<ColourTran.h> header defines several functions which access the routines in the <ColourTrans=>SWI:ColourTrans_> module. It also defines one type. Functions: #indent 8 <ColourTrans_SetGCOL> <ColourTrans_InvalidateCache> <ColourTrans_SelectTable> <ColourTrans_ReturnFontColours> <ColourTrans_ReturnColourNumberForMode> #indent Type: #indent 8 <colourtrans_fontblock>DIR$,,��F���'�#/colournumbertoGCOL��F���F�#0GCOL_tocolournumber�F����!#�h؇F�����#%invalidate_cache�F�����#freturn_colournumberh�F����#�return_GCOLformode��F���f#Oreturn_OppGCOLL�F�����# returnfontcolours\�F���0�#]returnGCOL��F���-�#�select_GCOLtable@�F���f�#~select_table��F�����#Lsetfontcolours�F���_�#�setGCOL��F����t�"setOppGCOL�F��� _#�return_colourformode��F���\�#uconvert_device_colour(�F���3~#�return_OppcolourformodeԞF���Gn#areturn_Oppcolournumber8�F���*v#�return_OppGCOLformodeDATA/colourtran_colournumbertoGCOL Syntax: <os_error> *colourtran_colournumbertoGCOL (int col, int *gcol); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function translates a colour number to a GCOL (assuming 256 colour mode) and returns it in {/}*gcol{/}.DATA0colourtran_GCOL_tocolournumber Syntax: <os_error> *colourtran_GCOL_tocolournumber (int gcol, int *col); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function translates a GCOL to a colour number (assuming 256 colour mode) and returns it in {/}*col{/}.DATA�colourtran.h The \<colourtran.h> header declares functions accessing the routines in the ColourTrans module. Functions: <colourtran_select_table> <colourtran_select_GCOLtable> <colourtran_returnGCOL> <colourtran_setGCOL> <colourtran_return_colournumber> <colourtran_return_GCOLformode> <colourtran_return_colourformode> <colourtran_return_OppGCOL> <colourtran_return_Oppcolournumber> <colourtran_return_OppGCOLformode> <colourtran_return_Oppcolourformode> <colourtran_GCOL_tocolournumber> <colourtran_colournumbertoGCOL> <colourtran_returnfontcolours> <colourtran_setfontcolours> <colourtran_invalidate_cache> <colourtran_convert_device_colour> DATA%colourtran_invalidate_cache Syntax: <os_error> *colourtran_invalidate_cache (void); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function should be called when the palette has changed since a call was last made to a function in this module.DATAfcolourtran_return_colournumber Syntax: <os_error> *colourtran_return_colournumber (<wimp_paletteword> entry, int *col); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the closest colour number in the current mode to a given palette entry. The colour number is returned in {/}*col{/}.DATA�colourtran_return_GCOLformode Syntax: <os_error> *colourtran_return_GCOLformode (<wimp_paletteword> entry, int destmode, wimp_paletteword *destpal, int *gcol); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the closest GCOL to a given palette entry, destination mode and destination palette. The GCOL is returned in {/}*gcol{/}.DATAOcolourtran_return_OppGCOL Syntax: <os_error> *colourtran_return_OppGCOL (<wimp_paletteword> entry, int *gcol); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the furthest GCOL in the current mode from a given palette entry. The GCOL is returned in {/}*gcol{/}.DATA colourtran_returnfontcolours Syntax: <os_error> *colourtran_returnfontcolours (<font> *handle, <wimp_paletteword> *backgnd, wimp_paletteword *foregnd, int *max_offset); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of font colours to match the given colours. The closes approximations to fore/background colours will be set, and as many intermediate colours as possible (up to a maximum of {/}*max_offset{/}). Values are retuned through the parameters.DATA]colourtran_returnGCOL Syntax: <os_error> *colourtran_returnGCOL (<wimp_paletteword> entry, int *gcol); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the closest GCOL in the current mode to a given palette entry. The GCOL value is returned in the variable pointed to /gcol/.DATA�colourtran_select_GCOLtable Syntax: <os_error> *colourtran_select_GCOLtable (int srcmode, <wimp_paletteword> *srcpal, int destmode, wimp_paletteword *destpal, void *buffer); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function sets up a list of GCOLs in a buffer, given a source mode and palette, and a destination mode and palette.DATA~colourtran_select_table Syntax: <os_error> *colourtran_select_table (int srcmode, <wimp_paletteword> *srcpal, int destmode, wimp_paletteword *destpal, void *buffer); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function sets up a translation table in a buffer, given a source mode and palette, and a destination mode and palette.DATALcolourtran_setfontcolours Syntax: <os_error> *colourtran_setfontcolours (<font> *handle, <wimp_paletteword> *backgnd, wimp_paletteword *foregnd, int *max_offset); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of font colours to match the given colours. The closes approximations to fore/background colours will be set, and as many intermediate colours as possible (up to a maximum of {/}*max_offset{/}). Values are retuned through the parameters. {*}Font_setfontcolours(){*} is then called with these as parameters.DATA�colourtran_setGCOL Syntax: <os_error> *colourtran_setGCOL (<wimp_paletteword> entry, int back, int gcol_in, int *gcol_out); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the closest GCOL in the current mode to a given palette entry, and also sets the GCOL. /back/ should be 0 to set a foreground colour, or 128 to set a background colour. {/}gcol_in{/} is the GCOL action and the GCOL is returned in {/}*gcol_out{/}.DATAcolourtran_setOppGCOL Syntax: <os_error> *colourtran_setOppGCOL (<wimp_paletteword> entry, int back, int gcol_in, int *gcol_out); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the furthest GCOL in the current mode from a given palette entry. The GCOL is returned in '*gcol_out'. It also sets the GCOL with the action 'gcol_in'. If 'back' is 128 then the background colour is set, else if 'back' is 0 then the foreground colour is set.DATA�colourtran_return_colourformode Syntax: <os_error> *colourtran_return_colourformode (<wimp_paletteword> entry, int destmode, wimp_paletteword *destpal, int *col); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the closest colour to a given palette entry, destination mode and destination palette. The colour number is returned in {/}*gcol{/}.DATAucolourtran_convert_device_colour Syntax: <os_error> *colourtran_convert_device_colour (<wimp_paletteword> dvce, wimp_paletteword *rgb); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function converts the device colour in /dvce/ to a standard RGB colour, returned in {/}*rgb{/}. It uses the current calibration to convert.DATA�colourtran_return_Oppcolourformode Syntax: <os_error> *colourtran_return_Oppcolourformode (<wimp_paletteword> entry, int destmode, wimp_paletteword *destpal, int *col); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the furthest colour from a given palette entry, destination mode and destination palette. The colour number is returned in {/}*gcol{/}.DATAacolourtran_return_Oppcolournumber Syntax: <os_error> *colourtran_return_Oppcolournumber (<wimp_paletteword> entry, int *col); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the furthest colour in the current mode from a given palette entry. The colour is returned in {/}*col{/}.DATA�colourtran_return_OppGCOLformode Syntax: <os_error> *colourtran_return_OppGCOLformode (<wimp_paletteword> entry, int destmode, wimp_paletteword *destpal, int *gcol); Header: <colourtran.h=>colourtran_h> Returns: Pointer to error, or <NULL> if none. This function informs you of the furthest GCOL from a given palette entry, destination mode and destination palette. The GCOL is returned in {/}*gcol{/}.DIR$��ТF���fL�$aSetGCOL4�F������$6InvalidateCachel�F�����$�SelectTable�F�����$wReturnFontColours��F���e��$�ReturnColourNumberForMode`�F���F��$UfontblockDATAaColourTrans_SetGCOL Syntax: <os_error> *ColourTrans_SetGCOL (int palette, int <flags=>ct_flags_>, int <action=>VDU:18a>); Header: <DeskLib:ColourTran.h=>ColourTran> Returns: Pointer to error, or <NULL> if none. This function works out the closest GCOL in the current mode to a given <palette entry=>ct_palent_> (in {/}palette{/}), and sets it.DATA6ColourTrans_InvalidateCache Syntax: <os_error> *ColourTrans_InvalidateCache (void); Header: <DeskLib:ColourTran.h=>ColourTran> Returns: Pointer to error, or <NULL> if none. This function informs the ColourTrans module that you have changed the palette. You do not need to do this after a mode change.DATA�ColourTrans_SelectTable Syntax: <os_error> *ColourTrans_SelectTable (int src_mode, int *src_pal, int dst_mode, int *dst_pal, char *table); Header: <DeskLib:ColourTran.h=>ColourTran> Returns: Pointer to error, or <NULL> if none. This function sets up a translation table in a buffer, for source and destination mode and palette as given. Mode and palette parameters may be -1 to use the current values.DATAwColourTrans_ReturnFontColours Syntax: os_error *ColourTrans_ReturnFontColours (<colourtrans_fontblock> *fontcols); Header: <DeskLib:ColourTran.h=>ColourTran> Returns: Pointer to error, or <NULL> if none. This function finds the maximum range of colours which can be used for anti-aliasing a font. If anti-aliasing is desired, {/}fontcols->max{/} should be set to 14 on entry, otherwise it should be set to 0. {/}fontcols->font{/} should be set to the font handle, or 0 for the current font, and the foreground and background <palette entries=>ct_palent_> should be placed in {/}fontcols->back{/} and {/}fontcols->fore{/}.DATA�ColourTrans_ReturnColourNumberForMode Syntax: int ColourTrans_ReturnColourNumberForMode (int palette, int mode, int *pal); Header: <DeskLib:ColourTran.h=>ColourTran> Returns: -1 for error, or colour number. This function, given a <palette entry=>ct_palent_> in /palette/, a destination mode in /mode/ and a palette in /pal/, returns the closest colour number. /mode/ may be -1 for the current mode, /pal/ may be -1 for the current palette or 0 for the default palette.DATAUcolourtrans_fontblock This type is defined in <DeskLib:ColourTran.h=>ColourTran> to hold the information needed for the <ColourTrans_ReturnFontColours> function. It is defined as: { int font; /* font handle */ int back; /* background colour */ int fore; /* foreground colour */ int max; /* maximum colour offset */ }DIR$����F����2Y&�!Root4�F���Ks�"�base_�F���W �"�debug_��F�����"9define_ԵF������"�desktop_��F���&&�"�errorlimit_��F����]�"�image_P�F���HI�"�includes_ �F������"�informationals_йF����h�"�library_��F���<P�"�link_T�F������"�list_�F���{�"map_��F���'�"�object_��F������"Coptimise_ؿF���O��"@profile_�F���V�"}run_��F����5�"�show_��F����?�"�silent_ �F���6��"�standard_�F���=��"�throwback_��F���+��"�warnings_DATA�Compiler Directives This information is for Easy C only: These are only used when compiling from the command line using the 'cc' command. They are prefixed by "-". Help can be got by using <*Help cc>. A summary of the directives used is shown below: #indent 7 #Table 7 <\-list=>compdir_list_> <\-optimise=>compdir_optimise_> <\-standard=>compdir_standard_> <\-object=>compdir_object_> <\-define=>compdir_define_> <\-debug=>compdir_debug_> <\-errorlimit=>compdir_errorlimit_> <\-show=>compdir_show_> <\-silent=>compdir_silent_> <\-includes=>compdir_includes_> <\-link=>compdir_link_> <\-run=>compdir_run_> <\-image=>compdir_image_> <\-library=>compdir_library_> <\-base=>compdir_base_> <\-map=>compdir_map_> <\-throwback=>compdir_throwback_> <\-desktop=>compdir_desktop_> <\-warnings=>compdir_warnings_> <\-informationals=>compdir_informationals_> <\-profile=>compdir_profile_> #EndTableDATA�-base Abbreviation: -b Syntax: -base=\<address> This directive specifies the base address of the executable code. It only applies if <\-link=>compdir_link_> is specified. eg {fCode}-base=&A000DATA�-debug Abbreviation: -deb Default -nodebug This qualifier allows you to set whether debugging information is included with the executable file.DATA9-define Abbreviation: -d Syntax -define=\<definitions> This qualifier allows you to define macros in the same form as <#define=>define>. The definitions are separated by commas, and if they contain spaces they must be enclosed in quotes eg #wrap off {fCode;align centre}-define="START 0","END 100",DEBUGDATA�-desktop Abbreviation: -des Default: -nodesktop This directive causes the compiler to ignore the usual directory naming conventions, and accept full pathnames for source and object files.DATA�-errorlimit Abbreviation: -e Syntax -errorlimit=\<limit> Default: -nodebug This qualifier allows you to set the number of error which may be produced before the compiler gives up! The limit can be switched using -noerrorlimit.DATA�-image Abbreviation: -im Syntax: -image=\<filename> This directive specifies the name of the final executable. It only applies if <\-link=>compdir_link_> or <\-run=>compdir_run_> is specified.DATA�-includes Abbreviation: -inc Syntax: -includes="\<pathname>" Default: -includes="" This qualifier allows you to specify the path C will search for local headers ie headers enclosed in quote marks.DATA�-informationals Abbreviation: -i Default: -informationals This directive causes the compiler to report very minor errors. They can be disabled using -noinformationals.DATA�-library Abbreviation: -lib This directive specifies the libraries to be linked if <\-link=>compdir_link_> or <\-run=>compdir_run_> is specified. eg {fCode}-library=STDCLib,ROSLibDATA�-link Abbreviation: -lin Default: -nolink If -link is specified, Easy C links the program automatically after compilation. It does not generate an object file, saving time and disc space.DATA�-list Abbreviation: -l Default setting: -nolist This qualifier causes Easy C to create a listing of code as it compiles. Control over the listing is done using <\-show=>compdir_show_>. By default, Easy C puts listings in the 'list' subdirectory of the current directory, with the source file's name. You can use -list=\<filename> to change the file used. -nolist switches listing off.DATA-map Abbreviation: -m Syntax: -map=\<filename> Default: -nomap This directive specifies that a file containing map of the functions linked by <\-link=>compdir_link_>. Map files are normally saved in subdirectory "map", but you can specify a particular filename if you want.DATA�-object Abbreviation: -ob This qualifier sets the filename of the object code produced. It is used as: {fCode;align centre}-object=\<filename>DATAC-optimise Abbreviation: -o Default setting: -optimise=all This qualifier sets the degree of optimisation to be performed. You can use the following: #tab -nooptimise No optimisation performed -optimise=fold Fold optimisation only -optimise=peephole Peephole optimisation only -optimise=all Both optimisation typesDATA@-profile Abbreviation: -p Syntax: -profile=\<modifier> Default: -profile=none This directive causes the compiler to include profiling information for use by a separate profiler. The modifiers are: #tab function Function execution times line Line execution times both Both of the above none Neither of the aboveDATA}-run Abbreviation: -r Default: -norun If -run is specified, Easy C runs the program automatically after compilation.DATA�-show Abbreviation: -sh Syntax: -show=\<modifiers> Default: -show=source This qualifier allows you to set what is included in the listing produced by <\-list=>compdir_list_>. The modifiers are separated by commas and are as follows: source Source code is included. expanded Each line shown twice, with expanded macros on second line. code ARM assembler code is included. variables Variable -> register mappings shown. includes Include files are listed. all All of the above. none None of the above.DATA�-silent Abbreviation: -si Default: -nosilent This qualifier switches off all output during compilation, except for error messages.DATA�-standard Abbreviation: -s Default setting: -standard=ANSI This qualifier sets the standard of C used. You can use the following: #tab -standard=KR Original K & R standard -standard=ANSI ANSI standard -standard=Extended Easy C extensions The extended form has 3 extensions to the ANSI standard: #tab � The symbol $ is allowed in variable names. � Binary numbers can be specified with prefix 0b � Automatic argument counting is supported. See Appendix C of the Easy C manual.DATA�-throwback Abbreviation: -th Default: -nothrowback This directive specifies that errors generated are transmitted via the "Throwback" system to an external editor eg StrongED.DATA�-warnings Abbreviation: -w Syntax: -warnings=\<level> Default: -warnings This directive causes the compiler to report warnings. They can be switched off using -nowarnings. You can also specify the warning level.DIR$,,��F����l�$�blockDATA�convert_block The type {*}convert_block{*} is defined in <DeskLib:Coord.h=>Coord> as an object capable of holding information about the position of a window and its scroll bars. \{ <wimp_rect> screenrect; <wimp_point> scroll; }DATACoord.h Version: 1.02 (02 Mar 1993) #line The \<Coord.h> header defines functions for handling points and rectangles. It also defines one type. Functions: #indent 4 #Table 7 23 <Coord_PointInRect> <Coord_RectContained> <Coord_RectsOverlap> <Coord_RectsIntersect> <Coord_WindowOrigin> <Coord_XToScreen> <Coord_YToScreen> <Coord_PointToScreen> <Coord_RectToScreen> <Coord_XToWorkArea> <Coord_YToWorkArea> <Coord_PointToWorkArea> <Coord_RectToWorkArea> <Coord_RectUnion> #EndTable #indent Type: #indent 4 <convert_block>DIR$@@�F������$>PointInRectP�F����H�$�PointToScreenD�F����$lRectContained��F��� �$�RectsOverlap��F����L�$�RectToScreen��F���p�T&2RectUnion��F����T&�TL��F����0�$,WindowOrigin��F����>�$ZXToScreen�F���SR�$^XToWorkAreat�F���D�$ZYToScreen��F����W�$^YToWorkArea0�F���r#�$LRectsIntersect|�F����c�$�RectToWorkAreax�F���,^�$�PointToWorkAreaDATA>Coord_PointInRect Syntax: <BOOL> Coord_PointInRect (<wimp_point> *p, <wimp_rect> *r); Header: <DeskLib:Coord.h=>Coord> Returns: <TRUE> or <FALSE>. This function tests whether the point pointed to by /p/ lies within the rectangle pointed to by /r/. If /p/ is on the perimeter of the rectangle it returns TRUE.DATA�Coord_PointToScreen Syntax: void Coord_PointToScreen (<wimp_point> *p, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> This function converts the point in work area coordinates pointed to by p, into one in screen coordinates.DATAlCoord_RectContained Syntax: <BOOL> Coord_RectContained (<wimp_rect> *inrect, wimp_rect *outrect); Header: <DeskLib:Coord.h=>Coord> Returns: <TRUE> or <FALSE>. This function tests whether the rectangle pointed to by /inrect/ is wholly contained by the rectangle pointed to by /outrect/. Points on the perimeter of /outrect/ are considered to be within it.DATA�Coord_RectsOverlap Syntax: <BOOL> Coord_RectsOverlap (<wimp_rect> *a, wimp_rect *b); Header: <DeskLib:Coord.h=>Coord> Returns: <TRUE> or <FALSE>. This function checks to see if any part of the two rectangles pointed to by /a/ and /b/ overlap.DATA�Coord_RectToScreen Syntax: void Coord_RectToScreen (<wimp_rect> *p, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> This function converts the rectangle in work area coordinates pointed to by p, into one in screen coordinates.DATA2Coord_RectUnion Syntax: void Coord_RectUnion (<wimp_rect> *dest, wimp_rect *a, wimp_rect *b); Header: <TimsLib:Coord.h=>Coord_TL> <DeskLib:Coord.h=>Coord> This function finds the union of the two rectangle, /a/ and /b/, and returns it in /dest/. Any of /a/, /b/ or /dest/ can be the same pointer.DATA�TimsLib:Coord.h #Parent ro_tlib_ This is an extension for <DeskLib:Coord.h=>Coord> that provides one extra function, <Coord_RectUnion>, which is now included in DeskLib anyway.DATA,Coord_WindowOrigin Syntax: void Coord_WindowOrigin (<wimp_point> *o, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> This function returns in the coordinates pointed to by /o/, the screen coordinates of the origin of a window's work area (ie the top left). The screen position and scroll bar positions of the window should be placed in the structure pointed to by /blk/. The origin returned can be of great use in redraw code - any drawing done relative to this will always appear at the correct place, irrespective of window positioning.DATAZCoord_XToScreen Syntax: int Coord_XToScreen (int x, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> Returns: The x screen coordinate. This function takes an x work area coordinate and a pointer to a convert_block (which contains the window and scroll bar position) and converts the work area coordinate into a screen coordinate.DATA^Coord_XToWorkArea Syntax: int Coord_XToWorkArea (int x, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> Returns: The x work area coordinate. This function takes an x screen coordinate and a pointer to a convert_block (which contains the window and scroll bar position) and converts the screen coordinate into a work area coordinate.DATAZCoord_YToScreen Syntax: int Coord_YToScreen (int y, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> Returns: The y screen coordinate. This function takes an y work area coordinate and a pointer to a convert_block (which contains the window and scroll bar position) and converts the work area coordinate into a screen coordinate.DATA^Coord_YToWorkArea Syntax: int Coord_YToWorkArea (int y, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> Returns: The y work area coordinate. This function takes an y screen coordinate and a pointer to a convert_block (which contains the window and scroll bar position) and converts the screen coordinate into a work area coordinate.DATALCoord_RectsIntersect Syntax: <BOOL> Coord_RectsIntersect (<wimp_rect> *a, wimp_rect *b); Header: <DeskLib:Coord.h=>Coord> Returns: <TRUE> or <FALSE>. This function checks to see if any part of the two rectangles pointed to by /a/ and /b/ overlap. However, if one rectangle is contained wholly within the other then the function returns FALSE. This function is actually implemented as the following macro: {fCode}<#define=>define> Coord_RectsIntersect(r1,r2) (<Coord_RectsOverlap>(r1,r2) && !<Coord_RectContained>(r1,r2) && !Coord_RectContained(r2,r1))DATA�Coord_RectToWorkArea Syntax: void Coord_RectToWorkArea (<wimp_rect> *p, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> This function converts the rectangle in screen coordinates pointed to by /p/, into one in work area coordinates.DATA�Coord_PointToWorkArea Syntax: void Coord_PointToWorkArea (<wimp_point> *p, <convert_block> *blk); Header: <DeskLib:Coord.h=>Coord> This function converts the point in screen coordinates pointed to by /p/, into one in work area coordinates.DATA�coords.h This header contains functions and types for handling window coordinates. Functions: #Indent 3;Table 6 <coords_x_toscreen> <coords_y_toscreen> <coords_x_toworkarea> <coords_y_toworkarea> <coords_box_toscreen> <coords_box_toworkarea> <coords_point_toscreen> <coords_point_toworkarea> <coords_withinbox> <coords_offsetbox> <coords_intersects> <coords_boxesoverlap> #EndTable;Indent 0 Types: #Indent 13;Table 1 24 <coords_cvtstr> <coords_pointstr> #EndTableDIR$ l�F����L#�box_toscreen\�F����T#�box_toworkareaP�F���a�#�boxesoverlapH�F���F�#�cvtstr �F���h�#intersects0�F���Ѐ#;offsetboxl�F����^#�point_toscreend�F���Wf#�point_toworkarea`�F���Ψ#�pointstr��F����n#withinbox��F����-#\x_toscreenP�F����=#`x_toworkarea��F����6#\y_toscreen�F���HE#`y_toworkareaDATA�coords_box_toscreen Syntax: void coords_box_toscreen (<wimp_box> *b, <coords_cvtstr> *r); Header: <coords.h=>coords> This function converts the rectangle in work area coordinates pointed to by /b/, into one in screen coordinates.DATA�coords_box_toworkarea Syntax: void coords_box_toworkarea (<wimp_box> *b, <coords_cvtstr> *r); Header: <coords.h=>coords> This function converts the rectangle in screen coordinates pointed to by /b/, into one in work area coordinates.DATA�coords_boxesoverlap Syntax: <BOOL> coords_boxesoverlap (<wimp_box> *a, wimp_box *b); Header: <coords.h=>coords> Returns: <TRUE> or <FALSE>. This function checks to see if any part of the two rectangles pointed to by /a/ and /b/ overlap.DATA�coords_cvtstr This type is defined in <coords.h=>coords> as an object capable of holding information about the position of a window and its scroll bars. \{ <wimp_box> box; int scx, scy; }DATAcoords_intersects Syntax: <BOOL> coords_intersects (<wimp_box> *l, wimp_box *b, int width); Header: <coords.h=>coords> Returns: <TRUE> or <FALSE>. This function checks to see if the line defined by /l/ (with width {/}width{/}) intersects the box defined by /b/.DATA;coords_offsetbox Syntax: void coords_offsetbox (<wimp_box> *src, int dx, int dy, <wimp_box> *result); Header: <coords.h=>coords> This function adds /dx/ to all x coordinates in the box /src/ and /dy/ to all y coordinates, and places the result in /result/. /source/ and /result/ may be the same structure.DATA�coords_point_toscreen Syntax: void coords_point_toscreen (<coords_pointstr> *p, <coords_cvtstr> *r); Header: <coords.h=>coords> This function converts the point in work area coordinates pointed to by /p/, into one in screen coordinates.DATA�coords_point_toworkarea Syntax: void coords_point_toworkarea (<coords_pointstr> *p, <coords_cvtstr> *r); Header: <coords.h=>coords> This function converts the point in screen coordinates pointed to by /p/, into one in work area coordinates.DATA�coords_pointstr This type is defined in <coords.h=>coords> as an object capable of holding a coordinate pair. \{ int x, y; }DATAcoords_withinbox Syntax: <BOOL> coords_withinbox (<coords_pointstr> *p, <wimp_box> *box); Header: <coords.h=>coords> Returns: <TRUE> or <FALSE>. This function tests whether the point pointed to by /p/ lies within the rectangle pointed to by /box/.DATA\coords_x_toscreen Syntax: int coords_x_toscreen (int x, <coords_cvtstr> *r); Header: <coords.h=>coords> Returns: The x screen coordinate. This function takes an x work area coordinate and a pointer to a {/}coords_cvtstr{/} (which contains the window and scroll bar position) and converts the work area coordinate into a screen coordinate.DATA`coords_x_toworkarea Syntax: int coords_x_toworkarea (int x, <coords_cvtstr> *r); Header: <coords.h=>coords> Returns: The x work area coordinate. This function takes an x screen coordinate and a pointer to a {/}coords_cvtstr{/} (which contains the window and scroll bar position) and converts the screen coordinate into a work area coordinate.DATA\coords_y_toscreen Syntax: int coords_y_toscreen (int y, <coords_cvtstr> *r); Header: <coords.h=>coords> Returns: The y screen coordinate. This function takes an y work area coordinate and a pointer to a {/}coords_cvtstr{/} (which contains the window and scroll bar position) and converts the work area coordinate into a screen coordinate.DATA`coords_y_toworkarea Syntax: int coords_y_toworkarea (int y, <coords_cvtstr> *r); Header: <coords.h=>coords> Returns: The y work area coordinate. This function takes an y screen coordinate and a pointer to a {/}coords_cvtstr{/} (which contains the window and scroll bar position) and converts the screen coordinate into a work area coordinate.DATAeDeskLib:Core.h Version: 1.01 (02 Mar 1994) #line The \<Core.h> header defines several macros used by the rest of DeskLib. It also defines two types. Macros: #indent 4 #Table columns 4 <FALSE> <TRUE> <ERROR> <NOERROR> <NULL> <UNUSED_ARG> <UNUSED> <MAX> <MIN> <OSCLI> #EndTable #indent 0 Types: #Indent 15 #Table 1 15 <BOOL> <os_error> #EndTableDIR$((��F�����T&�TLDATA�TimsLib:Core.h This header contains definitions used by the rest of TimsLib and also useful definitions for your own code. Macros: #Indent 5 #Table 3 14 <UNUSED_ARG> <UNUSED> <BOOL> <TRUE> <FALSE> <NULL> <MAX> <MIN> <OSCLI> #EndTableDATA�cos Syntax: double cos (double x); Header: <math.h=>math> Returns: The cosine of x in radians. This function calculates the principal value of the cosine of x.DATA�cosh Syntax: double cosh (double x); Header: <math.h=>math> Returns: The hyperbolic cosine of x in radians. This function calculates the hyperbolic cosine of x. An error occurs if x is too big.DIR$LL��F����}�"�flags_x�F�����$�palent_DATA�ColourTrans_SetGCOL Flags Bits Meaning 0-6 Reserved, should be zero. 7 Set background colour. 8 Use dithering to improve approximation. 9-31 Reserved, should be zero.DATA�Palette Entry This is a long int of the form 0xBBGGRR00 ie the intensity of each of Red, Green, and Blue in each of top three bytes. For example, white is 0xFFFFFF00, bright blue is 0xFF000000 and half intensity red is 0x00007F00.DATA7ctime Syntax: char *ctime (<time_t> *timer); Header: <time.h=>time_h> Returns: Pointer to the time string. This function converts the calendar time pointed to by /timer/ into a string containing the local time equivalent. This function is equivalent to: {align centre}<asctime>( <localtime>(timer) );DATA�ctype.h #Parent ansi_ The \<ctype.h\> header declares a number of functions for testing characters. In addition two functions to change the case of a character are provided. Character testing functions: #Indent 8 #Table 4 15 <isalnum> <isalpha> <iscntrl> <isdigit> <isgraph> <islower> <isprint> <ispunct> <isspace> <isupper> <isxdigit> #EndTable #Indent 0 Case changing functions: #Indent 12 #Table 1 15 <tolower> <toupper> #EndTableDATA)DeskLib:Clear.h Version: 1.01 (30 Jun 1994) #line This header declares several functions and a type for handling Clear files. Functions: #indent 5 #table columns 3 <Clear_Init> <Clear_Load> <Clear_Save> <Clear_Create> <Clear_Free> #endtable #indent Type: {align centre}<clear_picture>DIR$��X�F���_O&,picture��F����7O&Init�F����OO&�LoadlF���i^O&�Save8F���OyO&%Create`F���r�O&�FreeDATA,clear_picture This type is defined in <DeskLib:Clear.h=>Clear> as a structure containing a Clear file. \{ char *creator; unsigned creatorversion; unsigned width, height; unsigned bpp; <palette_entry> *palette; unsigned char *bitmap; }DATAClear_Init Syntax: void Clear_Init (char *creator, unsigned version); Header: <DeskLib:Clear.h=>Clear> This function tells the Clear library what details it should fill in the appropriate fields when using <Clear_Save>. /version/ is * 100 as usual.DATA�Clear_Load Syntax: <clear_picture> *Clear_Load (char *filename); Header: <DeskLib:Clear.h=>Clear> Returns: Pointer to picture, or <NULL> if an error occurred. This function loads the named Clear picture into memory.DATA�Clear_Save Syntax: void Clear_Save (<clear_picture> *pic,char *filename); Header: <DeskLib:Clear.h=>Clear> This function saves the picture pointer to by /pic/ to the file specified in /filename/.DATA%Clear_Create Syntax: <clear_picture> *Clear_Create (unsigned width, unsigned height, unsigned bpp); Header: <DeskLib:Clear.h=>Clear> Returns: Pointer to picture, or <NULL> if failed. This function attempts to allocate memory for a picture of the given width, height and colour depth.DATA�Clear_Free Syntax: void Clear_Free (<clear_picture> *pic); Header: <DeskLib:Clear.h=>Clear> This function frees all memory used by the Clear picture /pic/.DIR$HHLF���PR&CreatelF���lLR&�DLDATAColourMenu_Create Syntax: <menu_ptr> ColourMenu_Create (char *name); Header: <DeskLib:ColourMenu.h=>ColourMenu_> Returns: Pointer to new menu This function creates a menu containing the 16 Wimp colours. /name/ contains the menu title. The menu is only created, not displayed.DATA�DeskLib:ColourMenu.h Version: 1.00 (27 Aug 1994) #line This header declares just one function. Function: {align centre}<ColourMenu_Create>DIR$��� F���o�/,DBL_PF�����#�dboxF����o�/8dbox_8F����}#�dboxfile�:F����#�dboxquery�<F���Ar�/,dboxquery_�=F���{�#�dboxtcol\@F���ur�/Tdboxtcol_�BF���*A�"DCB�CF����H�"�DCDtDF���O��"?default�DF���]1�"�define�GF������$}dialogHF���s�/$dialog_�]F���.��"�difftime�^F�����$!Dispatch�`F���tt�/HDispatch_�bF����6�">div4dF����t�/(div_<eF����t�/lDL_DkF����e�"�do$nF�����$�Drag�oF���Yu�/,drag_�}F���Į�$DragASpr�~F��� v�/pDragASprite_̅F���Ӊ�"Odraw�F����v�/� Draw_p�F��� .$#�drawfdiag�F����{�/,drawfdiag_��F���A�%# drawferror�F���;�&#�drawfobj��F���?|�/,drawfobj_��F����'#{drawftypesL�F���rlE#�drawmod,�F����|�/Hdrawmod_,%F����~�/,dspr_DIR$,,�F����}�":DIG(F����}�">EPSILONhF���i��"�MANT_DIG�F���hȼ"�MAX� F���_��"�MAX_10_EXPF������"�MAX_EXP�F���v"�MIN8F������"�MIN_10_EXP�F���Y��"�MIN_EXPDATA:DBL_DIG This macro is defined in <float.h=>float>.DATA>DBL_EPSILON This macro is defined in <float.h=>float>.DATA�DBL_MANT_DIG This macro is defined in <float.h=>float>. It gives the number of digits in the mantissa of a variable of type 'double'.DATA�DBL_MAX This macro is defined in <float.h=>float>. It gives the maximum positive value that can be stored in a variable of type 'double'.DATA�DBL_MAX_10_EXP This macro is defined in <float.h=>float>. It gives the maximum base 10 exponent a variable of type 'double' can contain.DATA�DBL_MAX_EXP This macro is defined in <float.h=>float>. It gives the maximum exponent a variable of type 'double' can contain.DATA�DBL_MIN This macro is defined in <float.h=>float>. It gives the minimum positive value that can be stored in a variable of type 'double'.DATA�DBL_MIN_10_EXP This macro is defined in <float.h=>float>. It gives the minimum base 10 exponent a variable of type 'double' can contain.DATA�DBL_MIN_EXP This macro is defined in <float.h=>float>. It gives the minimum exponent a variable of type 'double' can contain.DATA�dbox The type dbox is defined in <dbox.h=>dbox_h> as a type capable of holding an abstract dialogue box handle. The structure to which the type points is as follows: \{ struct dbox__str *next; /* Linked list */ <wimp_w> w; int posatcaret; int showing; <wimp_caretstr> caretstr; <dbox_handler_proc> eventproc; void *eventprochandle; <dbox_raw_handler_proc> raweventproc; void *raweventprochandle; <dbox_field> field; int fieldwaiting; int eventdepth; int disposepending; char name[12]; char *workspace; int workspacesize; <wimp_wind> window; } This structure is a {/}dbox__str{/}. A dbox is a {/}dbox__str*{/}.DIR$888F���}�#�CLOSE�F���_#}crdl_LF���52#�ctrl_�F����#�dispose�F����}#�eventhandlerxF���hm#yevnt_�F���s7#�fadefield�F���c#�field�F����#Bfieldtype�F���L�#fillin�F���l�#�get� F����=#7getfield�!F��� H#6getnumeric$#F���f4#wh�%F����+#�handler_proct&F����#�hide('F�����#�init(F���~#=newP)F�����#�pend_�)F���v�#�persist�*F���/�#popuph,F����#�readH-F����P# setfieldT.F���X#;setnumeric�/F��� &#hshow�0F����,#"showstatic2F����#syshandle 3F����\#�unfadefield�3F���ޥ#(raw_eventhandler6F����@#�raw_handler_proc7F�����#�fillin_fixedcaretDATA�dbox_CLOSE The macro {/}dbox_CLOSE{/} is defined in <dbox.h=>dbox_h> as the value returned when the dialogue is closed using a close icon.DATA}Creating/Deleting Functions #Table 3 16 <dbox_dispose> <dbox_hide> <dbox_new> <dbox_show> <dbox_showstatic> #EndTableDATA�Controlling Functions #Table 3 18 <dbox_fadefield> <dbox_getfield> <dbox_getnumeric> <dbox_setfield> <dbox_setnumeric> <dbox_unfadefield> #EndTableDATA�dbox_dispose Syntax: void dbox_dispose (<dbox> *p); Header: <dbox.h=>dbox_h> This function disposes of the dialogue box whose handle is pointed to by /p/. It also removes it from the screen.DATA�dbox_eventhandler Syntax: void dbox_eventhandler (<dbox> d, <dbox_handler_proc> proc, void *handle); Header: <dbox.h=>dbox_h> This function designates a handler which will be called with the handle given whenever a field in the specified dialogue box is activated. The handler is a function whose prototype is: {fCode;align centre}void proc (dbox d, void *handle);{f;align} The handle is a user-defined pointer (ie it may be anything you like).DATAyEvent Handling Functions #Table 2 20 <dbox_eventhandler> <dbox_get> <dbox_raw_eventhandler> <dbox_read> #EndTableDATA�dbox_fadefield Syntax: void dbox_fadefield (<dbox> d, <dbox_field> f); Header: <dbox.h=>dbox_h> This function fades (or shades in Acorn-speak) the specified field so that it no longer responds to mouse clicks.DATA�dbox_field The type {/}dbox_field{/} is defined in <dbox.h=>dbox_h> as a type capable of holding any field number within a dialogue box. It is actually defined as an /int/.DATABdbox_fieldtype The type {/}dbox_fieldtype{/} is defined in <dbox.h=>dbox_h> as a type capable of specifying a field type. It is an enumerated type as follows: enum \{ dbox_FACTION, /* Action field */ dbox_FOUTPUT, /* Output field */ dbox_FINPUT, /* Input field */ dbox_FONOFF, /* On/Off field */ }DATAdbox_fillin Syntax: <dbox_field> dbox_fillin (<dbox> d); Header: <dbox.h=>dbox_h> Returns: The activated field. This function processes events until a field in the dialogue box is activated. The caret is also placed in the first writeable field in the dialogue box.DATA�dbox_get Syntax: <dbox_field> dbox_get (<dbox> d); Header: <dbox.h=>dbox_h> Returns: The activated field number. This function reads the field number of the activated field and cancels the event. I think.DATA7dbox_getfield Syntax: void dbox_getfield (<dbox> d, <dbox_field> f, char *buf, int size); Header: <dbox.h=>dbox_h> This function reads the contents of the specified field in the specified dialogue box and returns its contents in the character array pointed to by /buf/. /size/ is the size of the array.DATA6dbox_getnumeric Syntax: int dbox_getnumeric (<dbox> d, <dbox_field> f); Header: <dbox.h=>dbox_h> Returns: The field contents. This function converts the contents of the field into a signed integer and returns it. If the field is an on/off field, then it returns 1 if the field is set, and 0 if unset.DATAwdbox.h #Parent ro_ansic_ The \<dbox.h> header declares a number of functions for handling dialogue boxes. It also defines a few types relating to dialogue boxes. Functions: #Indent 10 #Table 2 20 <Creating/Deleting=>dbox_crdl_> <Controlling=>dbox_ctrl_> <Event handling=>dbox_evnt_> <Pending operations=>dbox_pend_> #EndTable #Indent 0 Macros: {align centre}<dbox_CLOSE>{align} Types: #Indent 10 #Table 3 20 <dbox> <dbox_field> <dbox_fieldtype> <dbox_handler_proc> <dbox_raw_handler_proc> #EndTable #below;indent 0 Before any dialogue boxes may be used, the dbox system must be initialised by calling <dbox_init>.DATA�dbox_handler_proc This type is defined in <dbox.h=>dbox_h> as a function type for use by <dbox_eventhandler>. The function is defined as: {wrap off} {fCode;align}void proc (<dbox> d, void *handle);{f;align}DATA�dbox_hide Syntax: void dbox_hide (<dbox> d); Header: <dbox.h=>dbox_h> This function temporarily closes the dialogue box given in /d/. It may be re-shown with <dbox_show>.DATA�dbox_init Syntax: void dbox_init (void); Header: <dbox.h=>dbox_h> This function initialises the dbox system. It must be called once before any dialogue boxes may be used. It must be called after <template_init>, however.DATA=dbox_new Syntax: <dbox> dbox_new (char *name); Header: <dbox.h=>dbox_h> Returns: The dbox handle, <NULL> for error. This function creates a new dialogue box from the template whose name is given. The template must have been loaded with <template_init>. This only creates the window, it does not display it.DATA�Pending Operations Functions #Table 3 25 <dbox_fillin> <dbox_fillin_fixedcaret> <dbox_init> <dbox_persist> <dbox_popup> <dbox_syshandle> #EndTableDATA�dbox_persist Syntax: <BOOL> dbox_persist (void); Header: <dbox.h=>dbox_h> Returns: <TRUE> if the dbox is to remain on screen. Basically, if the user clicked *Adjust* then this function returns TRUE and you should not destroy the dialogue box.DATAdbox_popup Syntax: <dbox_field> dbox_popup (char *name, char *msg); Header: <dbox.h=>dbox_h> Returns: The activated field number. This function is the easy way to handle the dbox system. It creates a dialogue box from the named template, puts the string pointed to by /msg/ into field 1, calls <dbox_fillin>, destroys the dbox and returns the number of the activated field.DATA�dbox_read Syntax: <dbox_field> dbox_read (<dbox> d); Header: <dbox.h=>dbox_h> Returns: The activated field number. This function reads the field number of the activated field and does not cancel the event. I think.DATA dbox_setfield Syntax: void dbox_setfield (<dbox> d, <dbox_field> f, char *p); Header: <dbox.h=>dbox> This function sets the contents of the field given in the dialogue box given to the null-terminated text contained in the character array pointed to by /p/.DATA;dbox_setnumeric Syntax: void dbox_setnumeric (<dbox> d, <dbox_field> f, int val); Header: <dbox.h=>dbox_h> This function sets the field in the dialogue box specified to be the textual equivalent of the value given in /val/. If the field is an action field then a non-zero value sets it, and zero unsets it.DATAhdbox_show Syntax: void dbox_show (<dbox> d); Header: <dbox.h=>dbox_h> This function shows the dialogue box whose handle is given. Dialogue boxes shown in this way will disappear if the users clicks outside them, or presses *Escape* (like a menu). The dialogue box will be shown near the last menu selection or caret setting (whichever is most recent).DATA"dbox_showstatic Syntax: void dbox_showstatic (<dbox> d); Header: <dbox.h=>dbox_h> This function shows the dialogue box whole handle is given. It will remain visible until specifically closed either by the program or by the user. Otherwise this function is identical to <dbox_show>.DATAdbox_syshandle Syntax: int dbox_syshandle (<dbox> d); Header: <dbox.h=>dbox_h> Returns: The window handle of the dbox. This function returns the window handle of a given dialogue box. This allows you to alter the contents of it using standard calls.DATA�dbox_unfadefield Syntax: void dbox_unfadefield (<dbox> d, <dbox_field> f); Header: <dbox.h=>dbox_h> This function unfades (unshades) the specified field so that it responds to mouse clicks. DATA(dbox_raw_eventhandler Syntax: void dbox_raw_eventhandler (<dbox> d, <dbox_raw_handler_proc=>dbox_raw_handler_pr> proc, void *hnd); Header: <dbox.h=>dbox_h> This function designates a handler which will be called with the user handle given ({/}hnd{/}) whenever a field in the specified dialogue box is activated. The handler is a function whose prototype is similar to: {fCode;align centre}<BOOL> proc (dbox d, void *event, void *hnd);{f;align} The event will actually be a <wimp_eventstr>* under RISC OS. The handle is a user defined pointer.DATA�dbox_raw_handler_proc This type is defined in <dbox.h=>dbox_h> as a function type for use by <dbox_raw_eventhandler>. The function is defined as: {wrap off} {fCode;align}void proc (<dbox> d, void *event, void *handle);{f;align}DATA�dbox_fillin_fixedcaret Syntax: <dbox_field> dbox_fillin_fixedcaret (<dbox> d); Header: <dbox.h=>dbox_h> Returns: The activated field. This function processes events until a field in the dialogue box is activated. It does not claim the caret.DATA�dboxfile.h This header declares just one function as follows: Syntax: void dboxfile (char *mess, unsigned type, char *a, int *bufsize); This function displays a dialogue box with a message (given in {/}mess{/}, no more than 20 characters), an input field (contents taken from and put back in {/}a{/}), and an *OK* button. It opens this using <dbox=>dbox_h> functions and waits for the user to type in a filename and click OK. /bufsize/ gives the size of /a/. The window used must be called "dboxfile_db". Icon 0 must be *OK* (menu icon), 1 must be the message (indirected text, type {/}NEVER{/}), and 2 must be the filename (indirected text, type {/}WRITEABLE{/}).DATA�dboxquery.h This header declares just one function as follows: Syntax: <dboxquery_REPLY> dboxquery (char *mess); Returns: 1 = YES, 2 = NO, 3 = CANCELLED. This function displays a dialogue box with a message (given in {/}mess{/}, no more than 120 characters), and *Yes* and *No* icons, and waits for the user to reply. The window used must be called "query". Icon 0 must be *Yes* (menu icon), 1 must be the message (indirected text, type {/}NEVER{/}), and 2 must be *No* (menu icon).DIR$,,�<F�����#�REPLYDATA�dboxquery_REPLY This is an enumerated type used for returning values from the <dboxquery> function. It is defined as: \{ dboxquery_YES = 1, dboxquery_NO = 2, dboxquery_CANCEL = 3 }DATA�dboxtcol This header declares one function and a few other bits and pieces for display and entry of true colours (bit of a misnomer there...) Syntax: <BOOL> dboxtcol (<dboxtcol_colour> *col, BOOL transflag, char *name, <dboxtcol_colourhandler> proc, void *r); Returns: <TRUE> if colour edited and OK clicked. This function displays a dialogue box for the user to edit an RGB colour. /colour/ contains the colour to be edited, /transflag/ is TRUE if transparent colours can be selected, /name/ is the title, /proc/ is the handler function, and /r/ is passed direct to /proc/. /proc/ is called when the user clicks *OK*. The template should be the same as that used by !Paint, called "dboxtcol".DIR$TT�@F����#�colourPAF���b�#colourhandlerDATA�dboxtcol_colour This type is defined in <dboxtcol.h=>dboxtcol>. It is a type holding an RGB colour in the form 0xBBGGRR00. It is defined as an /int/.DATAdboxtcol_colourhandler This type is defined in <dboxtcol.h=>dboxtcol>. It is a function called by dboxtcol when the user has clicked *OK* in the colour selector. The function should be of the form: {wrap off} {fCode;align centre}void myfunc (<dboxtcol_colour> col, void *r);{f;align} {wrap} Where /col/ is the colour as edited by the user, and /r/ is passed straight through.DATADCB <bytes> This stores one or more bytes, separated by commas. The bytes may in fact be contained in a quoted string eg: #wrap off {align centre;fCode}DCB "This is a null-terminated string",0{f;align;wrap} DEFB and EQUB are both psuedonyms for DCB.DATA�DCD <bytes> This stores one or more words, separated by commas. {fCode;align centre}DCD 1,2,3,4,5{f;align} DEFW and EQUW are both pseudonyms for DCD.DATA?default This command is part of the <switch> construct.DATA�#define This directive defines a macro. Macros are tokens which are substituted when encountered later in the source file, before compiling. A macro can be defined with or without a value. Function-like macros can also be defined. eg #define MACRO defines MACRO, but MACRO does not actually stand for anything. eg #define PEOPLE 7 defines PEOPLE to be 7. Every time PEOPLE is encountered (not within quotes), 7 will be substituted so you can use {fCode}number_of_people=PEOPLE;{f} eg #define TAB(x,y) <printf>("\\x1f%c%c",x,y) Every time you use TAB(x,y) printf("\\x1f%c%c",x,y) will be substituted eg. TAB(1,1) converts to printf("\\x1f%c%c",1,1); It is conventional to use capital letters for macro names.DATA}dialog The type *dialog* is defined in <DeskLib:Dialog.h=>Dialog_h> as a type holding a pointer to a <dialog_record>.DIR$$$(JF���~��$�CLOSEKF����"�$CreateLF����%�$�Destroy�LF������$�h�OF���7D�$'HideQF���o�$�LastClicked�RF���C��$�NOCHOICE`SF����e�$PersistlTF�����$orecord�UF����*�$2ShowWF����2�$cShowAttXF����9�$gShowStatic�YF����v�$�StillOpen�ZF�����T&�TL|[F����N�$2WaitForClick�\F����U�$(WindowHandleDATA�dialog_CLOSE The macro 'dialog_CLOSE' is defined in <DeskLib:Dialog.h=>Dialog_h> and is returned by <Dialog_WaitForClick> when the dialogue box is closed by clicking outside window or clicking on close icon.DATADialog_Create Syntax: <dialog> Dialog_Create (char *name, int maxtitlesize); Header: <DeskLib:Dialog.h=>Dialog_h> Returns: Handle of created dialogue box This function creates (but does not show) a dialogue box from the template whose name is given.DATA�Dialog_Destroy Syntax: void Dialog_Destroy (<dialog> d); Header: <DeskLib:Dialog.h=>Dialog_h> This function removes the dialogue box whose handle is given, both from the display and from memory. This handle is now completely invalid.DATA�DeskLib:Dialog.h Version: 1.01 (02 Mar 1994) #line This header declares functions for handling dialogue boxes. Functions: #Indent 8 #Table 6 21 <Dialog_Create> <Dialog_Destroy> <Dialog_Show> <Dialog_ShowAt> <Dialog_ShowStatic> <Dialog_Hide> <Dialog_WaitForClick> <Dialog_WindowHandle> <Dialog_Persist> <Dialog_LastClicked> <Dialog_StillOpen> #EndTable #indent 0 Types: #indent 16 #Table 1 21 <dialog_record> <dialog> #EndTable #indent 0 Macros: #indent 11 #Table 1 21 <dialog_CLOSE> <dialog_NOCHOICE> #EndTable #indent 0 A dialogue is a window that is popped open to get user choices and then goes away. This header simplifies popping up such dialogues, as it handles opening, closing and simple processing of the window for you.DATA'Dialog_Hide Syntax: void Dialog_Hide (<dialog> d); Headers: <TimsLib:Dialog.h=>Dialog_TL> <DeskLib:Dialog.h=>Dialog_h> This function hides the given dialogue box by closing the window, but does not destroy it. It may be subsequently reopened with <Dialog_Show> or <Dialog_ShowStatic>.DATA�Dialog_LastClicked Syntax: <icon_handle> Dialog_LastClicked (<dialog> d); Header: <DeskLib:Dialog.h=>Dialog_h> Returns: Icon number last clicked. This function returns the icon number of the last icon which was clicked in the given dialogue box. If no icons have been clicked yet, it returns <dialog_NOCHOICE>. It is actually defined as a macro returning {/}d->lastclicked{/}.DATA�dialog_NOCHOICE The macro {*}dialog_NOCHOICE{*} is defined in <DeskLib:Dialog.h=>Dialog_h> and is returned by <Dialog_LastClicked> when the user has not yet done anything. It is actually defined as -2.DATADialog_Persist Syntax: <BOOL> Dialog_Persist (<dialog> d); Header: <DeskLib:Dialog.h=>Dialog_h> Returns: <TRUE> if last dialogue box persists. This function checks to see if:{tab} � The last choice was made with *Adjust* � The dialogue box is still openDATAodialog_record The type {*}dialog_record{*} is defined in <DeskLib:Dialog.h=>Dialog> as the following structure: \{ <window_handle> window; <icon_handle> lastclicked; <button_state> button; struct \{{tab} unsigned int stillopen : 1; unsigned int persist : 1; unsigned int isstatic : 1; } state; } dialog_record;DATA2Dialog_Show Syntax: void Dialog_Show (<dialog> d); Header: <DeskLib:Dialog.h=>Dialog_h> This function shows the dialogue box whose handle is given in the centre of the screen. The dialogue box is opened as a transient dialogue box, i.e. it will disappear if you click outside it or press *Escape*.DATAcDialog_ShowAt Syntax: void Dialog_ShowAt (<dialog> d, int x, int y); Header: <DeskLib:Dialog.h=>Dialog_h> This functions shows the dialogue box whose handle is given with the top left of the dialog at the position specified. The dialogue box is opened as a transient dialogue box, i.e. it will disappear if you click outside it or press *Escape*.DATAgDialog_ShowStatic Syntax: void Dialog_ShowStatic (<dialog> d, <window_openpos> openpos); Header: <DeskLib:Dialog.h=>Dialog_h> This function shows the dialogue box whose handle is given as a 'static' dialogue box ie it only closes if the close icon is clicked or if the application closes it. /openpos/ governs the position at which the dbox is shown.DATA�Dialog_StillOpen Syntax: <BOOL> Dialog_StillOpen (<dialog> d); Header: <DeskLib:Dialog.h=>Dialog_h> Returns: <TRUE> if the dialogue box is open This function is actually defined as a macro returning {/}d->state.stillopen{/}.DATA�TimsLib:Dialog.h #Parent ro_tlib_ This is an extension to <DeskLib:Dialog.h=>Dialog_h> which provides one function, <Dialog_Hide>, which is now included in DeskLib anyway.DATA2Dialog_WaitForClick Syntax: int Dialog_WaitForClick (<dialog> d); Header: <DeskLib:Dialog.h=>Dialog_h> Returns: The icon clicked. This function waits for an icon to be clicked in the dialogue box. All other events are processed normally. If the user closes the window, <dialog_CLOSE> is returned.DATA(Dialog_WindowHandle Syntax: <window_handle> Dialog_WindowHandle (<dialog> d); Header: <DeskLib:Dialog.h> Returns: The window handle. This function returns the RISC OS WIMP window handle associated with the given dialogue box. It is actually defined as a macro returning {/}d->window{/}.DATA�difftime Syntax: double difftime (<time_t> t2, time_t t1); Header: <time.h=>time_h> Returns: The interval in seconds. This function calculates the difference between the two calendar times (t2-t1) in seconds.DATA!Dispatch Syntax: int Dispatch (int value, int size, int table[], <dispatch_proc> functions[], int arg0, int arg1, int arg2, int arg3); Header: <DeskLib:Dispatch.h=>Dispatch_h> Returns: -1 if failed. This function searches through the array /table/ (which has /size/ elements) for a value which matches /value/. It then calls the corresponding function in the /functions/ array with arguments as given. If one of the elements in /table/ has the value -1, it is always called, so if you want a default action, make it the last function.DIR$HH aF������$�h�aF������$procDATA�DeskLib:Dispatch.h Version: 1.00 (03 Apr 1992) #line This header declares just one function, a function dispatcher. It also defines one type. Function: <Dispatch> Type: <dispatch_proc>DATAdispatch_proc The type dispatch_proc is defined in <DeskLib:Dispatch.h=>Dispatch_h> as a type capable of holding a pointer to a function to be called by the <Dispatch> function. Functions should have the form: {fCode}void myfunc(); {f}with up to three arguments.DATA>div Syntax: <div_t> div (int x, int y); Header: <stdlib.h=>stdlib> Returns: The quotient and remainder of x/y. This function calculates the quotient and remainder of x/y. Formally this is defined as r=x-(q*y), where r is the remainder and q is the quotient. r is always less than y and of the same sign as q.DIR$((\dF���c�"�tDATA�div_t The type {/}div_t{/} is defined in <stdlib.h=>stdlib> for holding return values from the function <div>. It is defined as the following structure: \{ int quot; /* Quotient */ int rem; /* Remainder */ }DIR$ll�eF���/�.Menu�hF���Yk6&�Time@jF����|R&pointerDATADeskLib:Menu.h Version: 1.03 (Dec 1994) #line This header declares functions for handling RISC OS menus easily. Functions: #Table columns 3 <Menu_New> <Menu_Extend> <Menu_Show> <Menu_ShowLast> <Menu_AddSubMenu> <Menu_CalcHeight> <Menu_SysHandle=>Menu_SysHandle_> <Menu_SDispose> <Menu_FullDispose> <Menu_MakeIndirected> <Menu_MakeWritable> <Menu_SetFlags> <Menu_GetFlags> <Menu_SetText> <Menu_GetText> <Menu_RemoveItem> <Menu_Warn> <Menu_PopUp> <Menu_PopUpAuto> <Menu_FontMenu> <Menu_FontMenu3> <Menu_FontMenuDecode> <Menu_FontMenuDecode3> <Menu_ReviseWidth> #EndTable Macros: #indent 4 #table lines 1 <Menu_FontMenu_NOTICK> <Menu_FontMenu_TICKSYSFONT> #endtable #indent Variables: #indent 10 #Table columns 2 <menu_currentpos> <menu_currentopen> #EndTableDATA�DeskLib:Time.h Version: 1.02 (22 May 1994) #line This header declares functions to do with time: Functions: #indent 10 <Time_Monotonic> <Time_ConvertDateAndTime> <Time_ConvertStandardDateAndTime> #indent 0 Macros: #Table 2 16 <Time_CTIME> <Time_STANDARD> <Time_FANCYDATE> <Time_SHORTTIME> <Time_LONGTIME> <Time_EUROTIME> #EndTable The macros are format strings for <Time_ConvertDateAndTime>.DATADeskLib:Pointer.h Version: 1.00 (28 Sep 1994) #line This header contains high-level pointer handling functions. Functions: #table columns 2 <Pointer_RestrictToWindow> <Pointer_RestrictToIcon> <Pointer_RestrictToRect> <Pointer_Unrestrict> #endtableDATA�do This command defines a /do/ loop. This similar to a <REPEAT=>Basic:REPEAT> loop in Basic (but note it is *while* not *until*. It has the general form: {fCode;align centre}do \<statement>; while (\<condition>);{f;align} \<statement> is the command executed within the loop. It is executed at least once. It may be a compound statement ie several statements enclosed in braces \{}, in which case no semicolon need follow it, but the final semicolon must still be present. \<condition> is evaluated at the end of each time round the loop. If it is false (0) then the loop is finished, else it goes round again. eg. {fCode}do i=<getchar>(); while (i!='Q');{f} This gets characters from the keyboard until you press �Q�.DATA�DeskLib:Drag.h Version: 1.00 (01 Apr 1994) #line This header declares functions for automatically handling drag update and finish events. Functions: #indent 9 #Table 1 24 <Drag_Initialise> <Drag_SetHandlers> #EndTable #indent Type: {align centre} <drag_handler>{align} Variables: #indent 4 #Table 2 24 <drag_currentupdate> <drag_currentcomplete> <drag_currentuserdata> #EndTableDIR$,,�pF����FB&block�rF���� �$�currentcomplete�sF�����$�currentupdate`tF�����$Fhandler�uF���&��$�InitialiseXwF������$USetHandlers�yF���>4B&atype}F����/�$�currentuserdataDATAdrag_block This type is defined by <DeskLib:Wimp.h=>Wimp>. It is a structure containing information to be passed to <Wimp_DragBox>. \{ <window_handle> window; <drag_type> type; <wimp_box> screenrect; wimp_box parent; } /window/ is only needed for drag types 1-4. /parent/ is only needed for types 5-11. Note that there is no support in DeskLib for types 8-11, because this structure does not allocate space for the extra parameters needed by those types (they are complicated to use anyway!).DATA�drag_currentcomplete This variable is declared in <DeskLib:Drag.h=>Drag> and contains the function last passed to <Drag_SetHandlers> as the function to be called at the end of the drag.DATA�drag_currentupdate This variable is declared in <DeskLib:Drag.h=>Drag> and contains the function last passed to <Drag_SetHandlers> as the update function.DATAFdrag_handler This type is defined in <DeskLib:Drag.h=>Drag>. It is used to define functions called by the Drag module during and at the end of a drag. Functions should be of the form: {wrap off} {fCode;align centre}void myfunc (void *ref);{f;align;wrap} where /ref/ is the value passed when setting the drag handlers.DATA�Drag_Initialise Syntax: void Drag_Initialise (<BOOL> usenull); Header: <DeskLib:Drag.h=>Drag> This function must be called to initialise the drag system for use with the <Event> module. /usenull/ should be <TRUE> if you want the Drag module to be able to do things on Null events. You will only usually need this if you are doing any dragging of user-drawn objects. You do not need it for dragging save icons and the like.DATAUDrag_SetHandlers Syntax: void Drag_SetHandlers (<drag_handler> uproc, drag_handler cproc, void *ref); Header: <DeskLib:Drag.h=>Drag> This function sets the functions which will be called during and after the drag event. You should call this after starting the actual drag. Now, every null event, {/}uproc{/}() will be called. When the drag terminates, {/}cproc{/}() will be called. /ref/ will be passed directly to both functions. Either function may be <NULL> in which case it will not be used, and /uproc/ will only be used if /usenull/ was set to <TRUE> when calling <Drag_Initialise>.DATAadrag_type This enumerated type is defined in <DeskLib:Wimp.h=>Wimp>. It is used to define the drag type for <Wimp_DragBox> (no surprise there!). \{ drag_MOVEWINDOW = 1, /* Drag window pos */ drag_RESIZEWINDOW, /* Drag window size */ drag_SCROLLX, /* Drag H scroll */ drag_SCROLLY, /* Drag V scroll */ drag_FIXEDBOX, /* Drag fixed size box */ drag_RUBBERBOX, /* Drag rubber box */ drag_INVISIBLE, /* Drag point */ drag_USERFIXEDBBOX, /* Drag fixed user-drawn box */ drag_USERRUBBERBOX, /* Drag rubber user-drawn box */ drag_USERFIXEDNC /* Drag fixed user-drawn box */ drag_USERRUBBERNC /* Drag rubber user-drawn box */ } The 'NC' types are not cancelled when buttons are released. In addition, a type 12 is available which is not defined in this type. It drags vertical and horizontal scroll bars (but only in RISC OS 3).DATA�drag_currentuserdata This variable is declared in <DeskLib:Drag.h=>Drag> and contains the {/}void *{/} passed to the current handler functions, as set by <Drag_SetHandlers>.DATADragASpr.h Version: 1.01 (30 Apr 1992) #line The \<DragASpr.h> header defines three functions which access the <DragASprite=>SWI:DragASprite_> module included in the RISC OS 3 ROM. #indent 5 <DragASprite_Start> <DragASprite_Stop> <DragASprite_DragIcon>DIR$ppDF����}�$�Start�F������$�StopԃF������$�DragIconDATA�DragASprite_Start Syntax: <os_error> *DragASprite_Start (int <flags=>dspr_flags_>, void *spritearea, char *name, <wimp_rect> *bbox, wimp_rect *parent); Header: <DeskLib:DragASpr.h=>DragASpr> Returns: Pointer to error, or <NULL> if none. This function calls the DragASprite_Start SWI with the arguments placed in the appropriate registers. This SWI causes a sprite to be dragged by the mouse. The arguments are as follows: {tab} /spritearea/ is a pointer to the <sprite area=>SWI:os_spriteop.b> holding the sprite you want to drag, or 0 for the system sprite area, or 1 for the wimp sprite pool. /name/ is a pointer to the sprite name. /bbox/ is a pointer to the bounding box of the sprite, with /parent/ as a pointer to the bounding box for the whole drag (ie the mouse pointer may not move outside this box). /parent/ is only used if the appropriate flag is set. This function only works on RISC OS 3 or later.DATA�DragASprite_Stop Syntax: <os_error> *DragASprite_Stop (void); Header: <DeskLib:DragASpr.h=>DragASpr> Returns: Pointer to error, or <NULL> if none. This function terminates any solid drag begun with <DragASprite_Start>. RISC OS 3 only.DATA�DragASprite_DragIcon Syntax: os_error *DragASprite_DragIcon (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:DragASpr.h=>DragASpr> Returns: Pointer to error, or <NULL> if none. This function is the easy way to use DragASprite. Just call it with a window handle and icon number, and it will call <DragASprite_Start> for you with all the correct parameters. If it cannot do this, it will use a normal dashed <Wimp_DragBox=>SWI:Wimp_DragBox> instead, so it will work on RISC OS 2 and 3.DATAOdraw.h The \<draw.h> header declares functions for handling draw files.DIR$� � ��F����%#Kallocate�F���\$#�append_diag��F���EG'#�bboxtyp��F���'�$#�box0�F����c'#�captyp�F���S>'#�coltyp��F���'�$#[convertBox�F���JP&#�create_diag��F���Q�&#�createObjectt�F���,�(#�dashstrX�F�����(#�dashstrhdr,�F����{'#�dashtyp�F����&#\deleteObjects<�F�����$#1diagp�F����`&#doObjects��F���<$#�drawToScreenh�F����$#error��F���p$%#�extend�F�����&#�extractObject��F���{�'#7fileheader̨F���:�&#�FirstObject��F����(#Jfontliststr��F�����'#fontliststrhdr�F����'#�fontref��F���Z�'#�fontsizeT�F����2%#-free��F���-)#�groupnametypH�F���o)#groustrd�F���C�(#hjointspec̱F���UT'#�jointyp��F�����&#�LastObjectl�F���(�&#�NoObject�F���'�'#�objcoordĴF���:�$#�objecth�F�����&#�objectType�F�����'#objhdr4�F����J(#�path_tagtype��F���J�(#�pathstrh�F�����(#�pathstrhdr�F�����'#/pathstyle$�F����B'#�pathwidth��F�����$#)querybox�F�����$#rebind_diag�F�����$#AredrawstrD�F�����$#registerMemoryFunctionsL�F����l$#�render_diag�F����C$#�screenToDraw��F��� �&#EsetFontTableD�F����y$#shift_diag`�F����8'#�sizetyp��F���6 )#9spristr,�F���Y�(#spristrhdrH�F���_�'#9tagtyp��F���.S)#Atextareaend��F����:)#�textareahdr��F���xE)#dtextareastrend$�F���+1)#textareastrhdr@�F����')#�textcolhdr4�F����8(#�textstr�F����%(#�textstrhdr��F����'#�textstyle��F���3�&#FtranslateText8�F���p�&#�transTable��F����F%#unknown_object_handler��F���M$#averify_diagP�F����&#�verifyObject��F���p'#�windtyp��F�����$#�set_unknown_object_handlerDATAKdraw_allocate This type is define in <drawfdiag.h=>drawfdiag>. It is a function used to allocate memory with prototype as follows: {wrap off} {fCode;align centre}int myfunc (void **anchor, int n);{f;align} {wrap} This should allocate /n/ bytes of store and set {/}*anchor{/} to point to them. Return non-zero if successful.DATA�draw_append_diag Syntax: <BOOL> draw_append_diag (<draw_diag> *diag1, draw_diag *diag2, <draw_error> *error); Header: <drawfdiag.h=>drawfdiag> Returns: <TRUE> if successful. This function merges two diagrams into one. Both diagrams should have been processed by <draw_verify_diag>. {/}diag1{/} must be in a memory block large enough to contin both diagrams. Its length will be updated to its new value and its bounding box will be set to the union of the bounding boxes of the two diagrams.DATA�draw_bboxtyp This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a bounding box. It is defined as a <draw_box>.DATA�draw_box This type is defined in <drawfdiag.h=>drawfdiag>. It is a bounding box defined as the following structure: \{ int x0, y0, x1, y1; }DATA�draw_captyp This type is defined in <drawftypes.h=>drawftypes> as an enumerated type describing a path cap style: { cap_butt = 0, cap_round = 1, cap_square = 2, cap_triangle = 3 }DATA�draw_coltyp This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a colour value. It is defined as an /int/.DATA[draw_convertBox Syntax: void draw_convertBox (draw_box *from, <draw_box> *to, <BOOL> toScreen); Header: <drawfdiag.h=>drawfdiag> This function converts a box to/from screen coordinates. /from/ and /to/ may point to the same box. If /toScreen/ is <TRUE> then conversion is from draw coords to screen coords else it is the other way around.DATA�draw_create_diag Syntax: void draw_create_diag (<draw_diag> *diag, char *creator, <draw_box> bbox); Header: <drawfobj.h=>drawfobj> This function creates an empty diagram (ie just the file header), with the bounding box /bbox/. /diag/ must point at sufficient memory to hold the diagram. The first 12 chars of /creator/ are stored in the file header. {/}diag->length{/} is set appropriately by this function.DATA�draw_createObject Syntax: <BOOL> draw_createObject (<draw_diag> *diag, <draw_objectType> type, <draw_object> after, BOOL rebind, draw_object *obj, <draw_error> *error); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if object created OK. This function creates an object defined in /type/ in the given diagram after the object in /after/. If /rebind/ is TRUE then the diagram bounding box is updated to include the new object. The handle of the new object is returned in /obj/.DATA�draw_dashstr This type is defined in <drawftypes.h=>drawftypes> as a type containing dash pattern data. It is defined as the following structure: \{ int dashstart; int dashcount; int dashelements[6]; }DATA�draw_dashstrhdr This type is defined in <drawftypes.h=>drawftypes> as a type containing dash pattern data header. It is defined as the following structure: \{ int dashstart; int dashcount; }DATA�draw_dashtyp This type is defined in <drawftypes.h=>drawftypes> as an enumerated type containing a dash pattern flag: \{ dash_absent = 0, dash_present = 1 }DATA\draw_deleteObjects Syntax: <BOOL> draw_deleteObjects (<draw_diag> *diag, <draw_object> start, draw_object end, BOOL rebind, <draw_error> *error); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if objects deleted OK. This function deletes the specified range of objects from a diagram. If /rebind/ is TRUE then the bounding box is updated.DATA1draw_diag This type is defined in <drawfdiag.h=>drawfdiag>. It consists of a pointer to the data and a length field: \{ char *data; int length; } The length must be an exact number of words, and is the amount of space used in the diagram, not the size of the memory allocated to it.DATAdraw_doObjects Syntax: <BOOL> draw_doObjects (<draw_diag> *diag, <draw_object> start, draw_object end, <draw_redrawstr> *r, double scale, <draw_error> *error); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if successful. This function renders a specified range of objects from a diagram. /start/ and /end/ specify the objects to be rendered. /r/ is the redraw rectangle and /scale/ is the scale factor. Errors are returned in /error/. This function is similar to <draw_render_diag>, but with the addition of specifying the range.DATA�draw_drawToScreen Syntax: int draw_drawToScreen (int i); Header: <drawfdiag.h=>drawfdiag> Returns: /i/ in screen units. This function-like macro converts from draw units to screen units. It returns ((i) >> 8).DATAdraw_error This type is defined in <drawfdiag.h=>drawfdiag>. It is an error type: #indent 2 \{ enum \{ DrawOSError, DrawOwnError, None } type; union \{ <os_error> os; struct \{ int code; int location; } draw; } err; } #indent Where a routine can produce an error, the error itself is returned in a user structure (or not at all if <NULL> is passed). The error block may contain either an OS error or an internal error. See <drawferror.h=>drawferror> for the internal errors.DATA�draw_extend This type is defined in <drawfdiag.h=>drawfdiag>. It is a function used to extend memory with prototype as follows: {wrap off} {fCode;align centre}int myfunc (void **anchor, int n);{f;align;wrap} This should extend the block of memory which starts at {/}*anchor{/} to a total size of /n/ bytes of store and set {/}*anchor{/} to point to them. Return non-zero if successful.DATA�draw_extractObject Syntax: <BOOL> draw_extractObject (<draw_diag> *diag, <draw_object> object, <draw_objectType> res, <draw_error> *err); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if object extracted OK. This function extracts an object from a diagram into a supplied buffer, /res/. /object/ contains the object to be extracted. The buffer for the result must be large enough.DATA7draw_fileheader This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a file header. It is defined as the following structure: \{ char title[4]; /* "Draw" */ int majorstamp; /* 201 */ int minorstamp; /* 0 */ char progident[12]; <draw_bboxtyp> bbox; }DATA�draw_FirstObject This macro is defined in <drawfobj.h=>drawfobj>. It is a symbolic code used by functions that operate on a range of objects and has the meaning 'from the start'. It is defined as (<draw_object>)-1.DATAJdraw_fontliststr This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a font table object. It is defined as the following structure: {wrap off} \{ <draw_tagtyp> tag; /* Object type = 0 */ <draw_sizetyp> size; /* Multiple of 4 */ <draw_fontref> fontref; char fontname[1]; }DATAdraw_fontliststrhdr This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a font table object header. It is defined as the following structure: \{ <draw_tagtyp> tag; /* Object type = 0 */ <draw_sizetyp> size; /* Multiple of 4 */ }DATA�draw_fontref This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a font reference number. It is defined as a /char/.DATA�draw_fontsize This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a font size value in 1/640 point. It is defined as an /unsigned int/.DATA-draw_free This type is defined in <drawfdiag.h=>drawfdiag>. It is a function used to free memory with prototype as follows: {wrap off} {fCode;align centre}void myfunc (void **anchor);{f;align;wrap} This should free the block of memory which starts at {/}*anchor{/} and set {/}*anchor{/} to 0.DATA�draw_groupnametyp This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a group object name. It is defined as the following structure: \{ char ch[12]; }DATAdraw_groustr This type is defined in <drawftypes.h=>drawftypes> as a type containing a group object. It is defined as the following structure: \{ <draw_tagtyp> tag; /* tag == 6 */ <draw_sizetyp> size; <draw_bboxtyp> bbox; <draw_groupnametyp> name; }DATAhdraw_jointspec This type is defined in <drawftypes.h=>drawftypes> as a type containing path style information. It is defined as the following structure: \{ char join; char endcap; char startcap; char reserved; int mitrelimit; short endtricapwid; short endtricaphei; short starttricapwid; short starttricaphei; }DATA�draw_jointyp This type is defined in <drawftypes.h=>drawftypes> as an enumerated type describing a path join type: \{ join_mitred = 0, join_round = 1, join_bevelled = 2 }DATA�draw_LastObject This macro is defined in <drawfobj.h=>drawfobj>. It is a symbolic code used by functions that operate on a range of objects and has the meaning 'to the end'. It is defined as (<draw_object>)-2.DATA�draw_NoObject This macro is defined in <drawfobj.h=>drawfobj>. It is a symbolic code for no object and is defined as {/}(<draw_object>) -1{/}.DATA�draw_objcoord This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding an object coordinate. It is defined as the following structure: \{ int x, y; }DATA�draw_object This type is defined in <drawfdiag.h=>drawfdiag>. It is an offset from the start of the diagram to the object data. It is defined as an /int/.DATA�draw_objectType This type is defined in <drawfobj.h=>drawfobj>. It is defined as the following union, used for operation on complete objects: \{ <draw_objhdr> *object; <draw_fileheader> *fileHeader; <draw_fontliststr> *fontList; <draw_textstr> *text; <draw_pathstr> *path; <draw_spristr> *sprite; <draw_groustr> *group; <draw_textareahdr> *textarea; char *bytep; int *wordp; }DATAdraw_objhdr This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a object header. It is defined as the following structure: \{ <draw_tagtype> tag; /* Object type */ <draw_sizetyp> size; /* Multiple of 4 */ <draw_bboxtyp> bbox; }DATA�draw_path_tagtype This type is defined in <drawftypes.h=>drawftypes> as an enumerated type containing a tag indentifier within a path object. It is defined as: \{ draw_PathTERM = 0, /* end of path */ draw_PathMOVE = 2, /* move to (x,y) */ draw_PathLINE = 8, /* draw to (x,y) */ draw_PathCURVE = 6, /* bezier curve */ draw_PathCLOSE = 5, /* close subpath */ }DATA�draw_pathstr This type is defined in <drawftypes.h=>drawftypes> as a type containing a path object. It is defined as the following structure: \{ <draw_tagtyp> tag; <draw_sizetyp> size; <draw_bboxtyp> bbox; <draw_coltyp> fillcolour; <draw_coltyp> pathcolour; <draw_pathwidth> pathwidth; <draw_pathstyle> pathstyle; <draw_dashstr> data; /* optional */ int PATH; /* ?!?!?!?! */ }DATA�draw_pathstrhdr This type is defined in <drawftypes.h=>drawftypes> as a type containing a path object, without the actual path components. It is defined as the following structure: \{ <draw_tagtyp> tag; <draw_sizetyp> size; <draw_bboxtyp> bbox; <draw_coltyp> fillcolour; <draw_coltyp> pathcolour; <draw_pathwidth> pathwidth; <draw_pathstyle> pathstyle; }DATA/draw_pathstyle This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a path style description word. It is defined as the following structure: \{ unsigned char joincapwind; unsigned char reserved8; unsigned char tricapwid; unsigned char tricaphei; }DATA�draw_pathwidth This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a width value. It is defined as an /int/.DATA)draw_querybox Syntax: void draw_querybox (<draw_diag> *diag, <draw_box> *box, <BOOL> screenUnits); Header: <drawfdiag.h=>drawfdiag> This function finds the bounding box of /diag/ and returns it in /box/. If /screenUnits/ is <TRUE> then the box is in screen units else it is in draw units.DATAdraw_rebind_diag Syntax: void draw_rebind_diag (<draw_diag> *diag); Header: <drawfdiag.h=>drawfdiag> This function forces the header of a diagram's bounding box to be exactly the union of the objects in it. The diagram should have been processed by <draw_verify_diag>() first.DATAAdraw_redrawstr This type is defined in <drawfdiag.h=>drawfdiag>. It is a redraw structure. It is the same structure as a <wimp_redrawstr> and may be cast from one. \{ int reserved; draw_box box; /* Work area box */ int scx, scy; /* Scroll pos */ draw_box g; /* Graphics window */ }DATAdraw_registerMemoryFunctions Syntax: void draw_registerMemoryFunctions (<draw_allocate> alloc, <draw_extend> extend, <draw_free> free); Header: <drawfdiag.h=>drawfdiag> This function registers three functions to be used to allocate, extend, and free memory, when rendering text area objects. If this function is not called (or if memory cannot be allocated) then rendering a text area will have no effect. Note that the functions <flex_alloc>, <flex_extend> and <flex_free> can be used as the three functions.DATA�draw_render_diag Syntax: <BOOL> draw_render_diag (<draw_diag> *diag, <draw_redrawstr> *r, double scale, <draw_error> *error); Header: <drawfdiag.h=>drawfdiag> Returns: <TRUE> if successful. This function renders the given diagram with the given scale factor, in a given Wimp redraw rectangle. The diagram must have been processed by <draw_verify_diag>(). Very small and negative scale factors will result in a run-time error. /scale/ should be > 0.00009.DATA�draw_screenToDraw Syntax: int draw_screenToDraw (int i); Header: <drawfdiag.h=>drawfdiag> Returns: /i/ in screen units. This function-like macro converts from screen units to draw units. It returns ((i) \<\< 8).DATAEdraw_setFontTable Syntax: void draw_setFontTable (<draw_diag> *diag); Header: <drawfobj.h=>drawfobj> This function scans the given diagram for a font table object and records it. It must be called for <draw_doObjects> to work on a sequence of objects that includes text objects using fonts, but no font table object.DATAdraw_shift_diag Syntax: void draw_shift_diag (<draw_diag> *diag, int xMove, int yMove); Header: <drawfdiag.h=>drawfdiag> This function shifts a diagram by a given distance. All coordinates in the diagram are moved by /xMove/ in the x direction and /yMove/ in the y direction.DATA�draw_sizetyp This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a size value. It is defined as an /int/.DATA9draw_spristr This type is defined in <drawftypes.h=>drawftypes> as a type containing a sprite object. It is defined as the following structure: \{ <draw_tagtyp> tag; /* tag == 5 */ <draw_sizetyp> size; <draw_bboxtyp> bbox; <sprite_header> sprite; int palette[1]; /* optional */ }DATAdraw_spristrhdr This type is defined in <drawftypes.h=>drawftypes> as a type containing a sprite object, without the actual sprite. It is defined as the following structure: \{ <draw_tagtyp> tag; /* tag == 5 */ <draw_sizetyp> size; <draw_bboxtyp> bbox; }DATA9draw_tagtyp This type is defined in <drawftypes.h=>drawftypes> as an enumerated type holding object type numbers: \{ draw_OBJFONTLIST = 0, draw_OBJTEXT = 1, draw_OBJPATH = 2, draw_OBJSPRITE = 3, draw_OBJGROUP = 6, draw_OBJTEXTAREA = 9, draw_OBJTEXTCOL = 10 }DATAAdraw_textareaend This type is defined in <drawftypes.h=>drawftypes> as a type containing text area object data. It is defined as the following structure: \{ int endmark; /* endmark == 0 */ int blank1; int blank2; <draw_coltyp> textcolour; <draw_coltyp> backcolour; char text[1]; }DATA�draw_textareahdr This type is defined in <drawftypes.h=>drawftypes> as a type containing a text area object header. It is defined as the following structure: \{ <draw_tagtyp> tag; <draw_sizetyp> size; <draw_bboxtyp> bbox; }DATAddraw_textareastrend This type is defined in <drawftypes.h=>drawftypes> as a type containing text area object data. It is defined as the following structure: \{ int endmark; /* endmark == 0 */ int blank1; int blank2; <draw_coltyp> textcolour; <draw_coltyp> backcolour; } This is followed immediately by the text itself.DATAdraw_textareastrhdr This type is defined in <drawftypes.h=>drawftypes> as a type containing a text area object header. It is defined as the following structure: \{ <draw_tagtyp> tag; <draw_sizetyp> size; <draw_bboxtyp> bbox; <draw_textcolhdr> column; }DATA�draw_textcolhdr This type is defined in <drawftypes.h=>drawftypes> as a type containing a text column object. It is defined as the following structure: \{ <draw_tagtyp> tag; <draw_sizetyp> size; <draw_bboxtyp> bbox; }DATA�draw_textstr This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a text object. It is defined as the following structure: \{ <draw_tagtype> tag; /* Object type = 1 */ <draw_sizetyp> size; /* Multiple of 4 */ <draw_bboxtyp> bbox; <draw_coltyp> textcolour; <draw_coltyp> background; <draw_textstyle> textstyle; <draw_fontsize> fsizex; <draw_fontsize> fsizey; <draw_objcoord> coord; char text[1]; }DATA�draw_textstrhdr This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a text object, apart from the actual text. It is defined as the following structure: \{ <draw_tagtype> tag; /* Object type = 1 */ <draw_sizetyp> size; /* Multiple of 4 */ <draw_bboxtyp> bbox; <draw_coltyp> textcolour; <draw_coltyp> background; <draw_textstyle> textstyle; <draw_fontsize> fsizex; <draw_fontsize> fsizey; <draw_objcoord> coord; }DATA�draw_textstyle This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a text style word. It is defined as the following structure: \{ <draw_fontref> fontref; char reserved8; short reserved16; }DATAFdraw_translateText Syntax: void draw_translateText (<draw_diag> *diag); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if object extracted OK. This function updates all font reference numbers for text objects following creation of a font table. If the font table has not been changed then this function does nothing.DATA�draw_transTable This is an array of 256 integers, used for font translation. Immediately after a call to <draw_createObject> where the object was a font table, this contains the mapping between old and new font reference numbers, such that draw_transTable[old fontref] = new fontref. <draw_translateText> makes use of this table; it is exported for callers who may want to do something elaborate.DATAdraw_unknown_object_handler This type is defined in <drawfdiag.h=>drawfdiag>. It is a function used for handling unknown objects with the following prototype: {wrap off} {fCode;align centre}<BOOL> myfunc (void *obj, void *hnd, draw_error *error);{f;align;wrap} This handler is called whenever an attempt is made to render an unknown object. It is passed a point to the object /obj/ and a block to write an error status into. If an error occurs, the handler must return <FALSE> and set up the error block, else it must return <TRUE>.DATAadraw_verify_diag Syntax: <BOOL> draw_verify_diag (<draw_diag> *diag, <draw_error> *error); Header: <drawfdiag.h=>drawfdiag> Returns: <TRUE> if diagram is correct. This function verifies a diagram which has been read in from file. Each object in the file is checked and the first error encountered causes return (with /error/ set appropriately)DATA�draw_verifyObject Syntax: <BOOL> draw_verifyObject (<draw_diag> *diag, <draw_object> object, int *size); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if object found and verified. This function verifies the data for an existing object. This ensures that its bounding box is consistent with the data in it - altering it if necessary. The object's size is returned in {/}*size{/} if /size/ is not <NULL>.DATA�draw_windtyp This type is defined in <drawftypes.h=>drawftypes> as an enumerated type describing a winding rule: \{ wind_nonzero = 0, wind_evenodd = 1 }DATA�draw_set_unknown_object_handler Syntax: <draw_unknown_object_handler> draw_set_unknown_object_handler (draw_unknown_object_handler handler, void *handle); Header: <drawfdiag.h=>drawfdiag> Returns: The old handler. This function registers a function to be called when an attempt is made to render an object with an object tag which is not known. The handler can be removed by calling with 0 as a parameter. /handle/ is passed direct to the object handler.DATA�drawfdiag.h This header deals with processing of Draw format files. It can read in files to diagrams and render them. Functions: #Indent 10 #Table 5 21 <drawfdiag_init> <draw_drawToScreen> <draw_screenToDraw> <draw_verify_diag> <draw_append_diag> <draw_render_diag> <draw_shift_diag> <draw_querybox> <draw_convertBox> <draw_rebind_diag> #EndTable #indent 0;align centre <draw_set_unknown_object_handler> <draw_registerMemoryFunctions> #align;Indent 0 Types: #indent 15 #Table 4 21 <draw_diag> <draw_object> <draw_box> <draw_redrawstr> <draw_error> <draw_allocate> <draw_extend> <draw_free> #EndTable #indent 0;align centre <draw_unknown_object_handler>DIR$,,8�F���>7$#�initDATA�drawfdiag_init Syntax: <BOOL> drawfdiag_init (void); Header: <drawfdiag.h=>drawfdiag> Returns: <TRUE> if successful. This function initialises the diagram level interface.DATA drawferror.h This header defines all the following macros, which each represent an error code. The standard error message for each of these errors is also given for your information. draw_BadObject Bad object draw_BadObjectHandle Bad object handle draw_TooManyFonts Too many font definitions draw_BBoxWrong Bounding box coordinates are in the wrong order draw_BadCharacter Bad character in string draw_ObjectTooSmall Object size is too small draw_ObjectTooLarge Object size is too large draw_ObjectNotMult4 Object size is not a multiple of 4 draw_ObjectOverrun Object data is larger than specified size draw_ManyFontTables There is more than one font table draw_LateFontTable The font table appears after text object(s) draw_BadTextStyle Bad text style word draw_MoveMissing Path must start with a move draw_BadPathTag Path contains an invalid tag draw_NoPathElements Path does not contain any line or curve elements draw_PathExtraData There is extra data present at the end of a path object draw_BadSpriteSize The sprite definition size is inconsistent with the object size draw_BadTextColumnEnd Missing end marker in text columns draw_ColumnsMismatch Actual number of columns in a text area object does not match specified number of columns draw_NonZeroReserved Non-zero reserved words in a text area object draw_NotDrawFile This is not a Draw file draw_VersionTooHigh Version number too high draw_BadObjectType Unknown object type draw_CorruptTextArea Corrupted text area (must start with '\\!') draw_TextAreaVersion Text area version number is wrong or missing draw_MissingNewline Text area must end with a newline character draw_BadAlign Text area: bad \\A code (must be L, R, C or D) draw_BadTerminator Text area: bad number or missing terminator draw_ManyDCommands Text area: more than one \\D command draw_BadFontNumber Text area: bad font number draw_UnexpectedCharacter Text area: unexpected character in \\F command draw_BadFontWidth Text area: bad or missing font width in \\F command draw_BadFontSize Text area: bad or missing font size in \\F command draw_NonDigitV Text area: non-digit in \\V command draw_BadEscape Text area: bad escape sequence draw_FewColumns Text area must have at least one column draw_TextColMemory Out of memory when building text area [location field is always 0 for this error]DATA�drawfobj.h This header declares types and functions for processing Draw format files at the object level. Functions: #Indent 2 #Table 5 21 <drawfobj_init> <draw_create_diag> <draw_doObjects> <draw_setFontTable> <draw_verifyObject> <draw_createObject> <draw_deleteObjects> <draw_extractObject> <draw_translateText> #EndTable #Indent 0 Macros: Types: <draw_NoObject> <draw_objectType> <draw_FirstObject> <draw_LastObject> Variables: <draw_transTable>DIR$,, �F���SD&#�initDATA�drawfobj_init Syntax: <BOOL> drawobj_init (void); Header: <drawfobj.h=>drawfobj> Returns: <TRUE> if successful. This function initialises the object level interface.DATA{drawftypes.h This header defines types used by the object level interface for draw files. You do not normally need to <#include=>include> this, <drawfobj.h=>drawfobj> pulls it in. Macros: #Table 4 20 <packmask_join> <packmask_endcap> <packmask_startcap> <packmask_windrule> <packmask_dashed> <packshft_join> <packshft_endcap> <packshft_startcap> <packshft_windrule> <packshft_dashed> #EndTable Types: #Table 15 20 <draw_sizetyp> <draw_coltyp> <draw_pathwidth> <draw_bboxtyp> <draw_jointyp> <draw_captyp> <draw_windtyp> <draw_dashtyp> <draw_pathstyle> <draw_fontref> <draw_textstyle> <draw_fontsize> <fontrec> <draw_tagtyp> <draw_objcoord> <draw_fileheader> <draw_objhdr> <draw_fontliststrhdr> <draw_fontliststr> <draw_textstrhdr> <draw_textstr> <draw_path_tagtype> <Path_movestr> <Path_linestr> <Path_curvestr> <Path_closestr> <Path_termstr> <Largest_path_str> <Path_eleptr> <draw_dashstrhdr> <draw_dashstr> <draw_jointspec> <draw_pathstrhdr> <draw_pathstr> <draw_spristrhdr> <draw_spristr> <draw_groupnametyp> <draw_groustr> <draw_textcolhdr> <draw_textareastrhdr> <draw_textareahdr> <draw_textareastrend> <draw_textareaend> #EndTableDATA�drawmod.h This header provides an interface to the Draw module (not to be confused with !Draw). It calls the <Draw SWIs=>SWI:Draw_>. Functions: #Table 5 23 <drawmod_fill> <drawmod_stroke> <drawmod_do_strokepath> <drawmod_ask_strokepath> <drawmod_do_flattenpath> <drawmod_ask_flattenpath> <drawmod_buf_transformpath> <drawmod_insitu_transformpath> <drawmod_processpath> #endtable Macros: #Table 4 23 <cap_butt> <cap_round> <cap_square> <cap_triang> <join_mitred> <join_round> <join_bevelled> #EndTable Types: #Table 10 23 <drawmod_pathelemptr> <drawmod_filltype> <drawmod_capjoinspec> <drawmod_dashhdr> <drawmod_line> <drawmod_transmat> <drawmod_box> <drawmod_options> <drawmod_buffer> <drawmod_tagtype> <drawmod_filling_options> <drawmod_path_tagtype> <drawmod_path_endstr> <drawmod_path_ptrstr> <drawmod_path_movestr> <drawmod_path_closegapstr> <drawmod_path_closelinestr> <drawmod_path_bezierstr> <drawmod_path_gaptostr> <drawmod_path_linetostr> #EndTableDIR$HHt�F���&�E#�ask_flattenpath��F���.�E#�ask_strokepath�F���ƉF#�boxpF����E#hbuf_transformpath�F���ٟF#�buffer�F���spF#�capjoinspec(F����xF#�dashhdr�F����E#ldo_flattenpathd F�����E#ido_strokepath� F���6�E#fill�F�����F#�filling_options�F���DaF#NfilltypeF�����E#Vinsitu_transformpathhF����}F#linepF�����F#optionstF����F#path_bezierstr�F�����F#�path_closegapstrHF���v�F#�path_closelinestrF�����F#�path_endstr�F����G#�path_gaptostr�F���G#�path_linetostrlF�����F#�path_movestr,F�����F#�path_ptrstr�F�����F#�path_tagtype�F����8F#pathelemptr�F����E#�processpatht!F�����E#astroke�#F���J�F#�tagtype|$F���$�F#�transmatDATA�drawmod_ask_flattenpath Syntax: <os_error> *drawmod_ask_flattenpath (<drawmod_pathelemptr> path, int flatness, int *buflen); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function converts an input path (in {/}path{/}) into a flattened output path, according to the flatness (0 for default). It returns the length of such a path in {/}*buflen{/}.DATA�drawmod_ask_strokepath Syntax: <os_error> *drawmod_ask_strokepath (<drawmod_pathelemptr> path, <drawmod_transmat> *matrix, <drawmod_line> *line_style, int *buflen); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function does the same as <drawmod_stroke>, except that output is to a buffer. This function does not actually return the data, just the length of it (in {/}*buflen{/}). <drawmod_do_strokepath> returns the data.DATA�drawmod_box This type is defined in <drawmod.h=>drawmod> as the following structure: \{ int lowx; int lowY; int highX; int highY; }DATAhdrawmod_buf_transformpath Syntax: <os_error> *drawmod_buf_transformpath (<drawmod_pathelemptr> path, <drawmod_buffer> *buffer, <drawmod_transmat> *matrix); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function puts the path in /path/ througth the transformation matrix in /matrix/ and places the result in /buffer/.DATA�drawmod_buffer This type is defined in <drawmod.h=>drawmod> as a type containing a path buffer. It is defined as: \{ int zeroword; int sizeword; } Typically, you will allocate space for your path and then set a variable of type {/}drawmod_buffer *{/} to point at it. For functions which take a {/}drawmod_buffer *{/} parameter, /zeroword/ should contain 0 and /sizeword/ should indicate how many bytes follow in memory.DATA�drawmod_capjoinspec This type is defined in <drawmod.h=>drawmod>. It is a structure containing the caps and join styles. \{ unsigned char join; unsigned char leadcap; unsigned char trailcap; unsigned char reserved8; int mitrelimit; unsigned short lead_tricap_w; unsigned short leaf_tricap_h; unsigned short trail_tricap_w; unsigned short trail_tricap_h; }DATA�drawmod_dashhdr This type is defined in <drawmod.h=>drawmod> as a type containing dash pattern data header. It is defined as the following structure: \{ int dashstart; int dashcount; }DATAldrawmod_do_flattenpath Syntax: <os_error> *drawmod_do_flattenpath (<drawmod_pathelemptr> path, <drawmod_buffer> *buffer, int flatness); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function converts an input path (in {/}path{/}) into a flattened output path (in {/}buffer{/}), according to the flatness (0 for default).DATAidrawmod_do_strokepath Syntax: <os_error> *drawmod_do_strokepath (<drawmod_pathelemptr> path, <drawmod_transmat> *matrix, <drawmod_line> *line_style, <drawmod_buffer> *buffer); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function does the same as <drawmod_stroke>, except that output is to a buffer (and not filled).DATAdrawmod_fill Syntax: <os_error> *drawmod_fill (<drawmod_pathelemptr> path, <drawmod_filltype> fill, <drawmod_transmat> *matrix, int flat); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function emulates the PostScript 'fill' operator. It performs the following: {tab} � Closes open subpaths. � Flattens the path according to the flatness, /flat/. Use 0 for default. � Transforms path to standard coords. � Fills the resultant path and outputs to VDU. /matrix/ may be 0 to use the identity matrix.DATA�drawmod_filling_options This type is defined in <drawmod.h=>drawmod> as the following enumerated type: \{ option_insitu = 0, option_normalfill = 1, option_subpathfill = 2, option_countsize = 3 } These are the values passed to <drawmod_processpath>. They have the following meaning: {tab} insitu : Output to input path buffer normalfill : Fill path normally subpathfill : Fill subpath-by-subpath countsize : Count required buffer sizeDATANdrawmod_filltype This type is defined in <drawmod.h=>drawmod>. It is an enumerated type containing a fill type: \{ fill_Default = 0x00000000, fill_WNonzero = 0x00000000, fill_WNegative = 0x00000001, fill_WEvenodd = 0x00000002, fill_WPositive = 0x00000003, fill_FNonbext = 0x00000004, fill_FBext = 0x00000008, fill_FNonbint = 0x00000010, fill_FBint = 0x00000020, /* Next four are only for <drawmod_processpath> */ fill_PClose = 0x08000000, fill_PFlatten = 0x10000000, fill_PThicken = 0x20000000, fill_PReflatten = 0x40000000 }DATAVdrawmod_insitu_transformpath Syntax: <os_error> *drawmod_insitu_transformpath (<drawmod_pathelemptr> path, <drawmod_transmat> *matrix); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function puts the path in /path/ through the transformation matrix in /matrix/ and places the result back in /path/.DATAdrawmod_line This type is defined in <drawmod.h=>drawmod> as a type containing line attributes. It is defined as the following structure: \{ int flatness; int thickness; <drawmod_capjoinspec> spec; <drawmod_dashhdr> *dash_pattern; }DATAdrawmod_options This type is defined in <drawmod.h=>drawmod> as the following structure: \{ <drawmod_tagtype> tag; union \{ <drawmod_filling_options> opts; <drawmod_box> *box; <drawmod_buffer> *buffer; } data; }DATAdrawmod_path_bezierstr This type is defined in <drawmod.h=>drawmod>. It is a structure for a bezier curve element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 6 */ int x1,y1,x2,y2,x3,y3; } (x3,y3) is the end point, the others are control points.DATA�drawmod_path_closegapstr This type is defined in <drawmod.h=>drawmod>. It is a structure for a close with gap element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 4 */ }DATA�drawmod_path_closelinestr This type is defined in <drawmod.h=>drawmod>. It is a structure for a close with line element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 5 */ }DATA�drawmod_path_endstr This type is defined in <drawmod.h=>drawmod>. It is a structure for an end of path element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 0 */ unsigned int bytes_free; }DATA�drawmod_path_gaptostr This type is defined in <drawmod.h=>drawmod>. It is a structure for a gap element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 7 */ int x,y; }DATA�drawmod_path_linetostr This type is defined in <drawmod.h=>drawmod>. It is a structure for a line element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 8 */ int x,y; }DATA�drawmod_path_movestr This type is defined in <drawmod.h=>drawmod>. It is a structure for a move element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 2 */ int x, y; }DATA�drawmod_path_ptrstr This type is defined in <drawmod.h=>drawmod>. It is a structure for an continuation element: {wrap off} \{ <drawmod_path_tagtype> tag; /* == 1 */ void *ptr; }DATA�drawmod_path_tagtype This type is defined in <drawmod.h=>drawmod>. It is an enumerated type defining path element types: \{ path_term = 0, /* end of path */ path_ptr = 1, path_move_2 = 2, /* normal move */ path_move_3 = 3, path_closegap = 4, /* close subpath */ path_closeline = 5, /* close with line */ path_bezier = 6, /* bezier curve */ path_gapto = 7, path_lineto = 8 /* line */ }DATAdrawmod_pathelemptr This type is defined in <drawmod.h=>drawmod>. It is a union containing a pointer to any type of path element. \{ <drawmod_path_endstr> *end; <drawmod_path_ptrstr> *ptr; <drawmod_path_movestr> *move2; <drawmod_path_movestr> *move3; <drawmod_path_closegapstr> *closegap; <drawmod_path_closelinestr> *closeline; <drawmod_path_bezierstr> *bezier; <drawmod_path_gaptostr> *gapto; <drawmod_path_linetostr> *lineto; char *bytep; int *wordp; }DATA�drawmod_processpath Syntax: <os_error> *drawmod_processpath (<drawmod_pathelemptr> path, <drawmod_filltype> fill_style, <drawmod_transmat> *matrix, <drawmod_line> *line_style, <drawmod_options> *options, int *buflen); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function is the main drawmod function. All other functions call the same SWI that this calls eventually. /path/ is the path; /matrix/ is the transformation matrix, or 0 for identity; {/}options->data{/} can be one of the options, or an output buffer pointer, or a pointer to a buffer for holding the path's bouding box. {/}options->tag{/} tags the use of each of these.DATAadrawmod_stroke Syntax: <os_error> *drawmod_stroke (<drawmod_pathelemptr> path, <drawmod_filltype> fill_style, <drawmod_transmat> *matrix, <drawmod_line> *line_style); Header: <drawmod.h=>drawmod> Returns: Pointer to error, or <NULL> if none. This function emulates the PostScript 'stroke' operator. It performs the following: {tab} � Flattens the path according to {/}line_style->flatness{/}. � Applies dash pattern if {/}line_style->dash_pattern{/}!=NULL. � Thickens the path, using specified joins/caps. � Fills the resultant path and outputs to VDU. /matrix/ may be 0 to use the identity matrix.DATA�drawmod_tagtype This type is defined in <drawmod.h=>drawmod> as the following enumerated type: \{ tag_fill = 1, tag_box = 2, tag_buf = 3 }DATA�drawmod_transmat This type is defined in <drawmod.h=>drawmod> as a type containing a transformation matrix. It is defined as an array of six integers ie {/}int [6]{/}DIR$,,X%F������"�flags_DATA�DragASprite Flags Bits Meaning 0-1 X position of sprite within bbox 00 - left, 01 - centre, 10 - right 2-3 Y position of sprite within bbox 00 - bottom, 01 - centre, 10 - top 4-5 Parent bounding box 00 - screen, 01 - window, 10 - specified parent 6 Parent bounding box applies to 0 - bbox, 1 - pointer 7 Drop-shadow 0 - absent, 1 - present 8-31 Reserved, should be zero.DIR$HH�*F���l�"�EDOM`+F������"8else�+F���g�/,else_\,F���m��"�elseif0.F����T&�EnableDbug0F������"lendifx0F�����T&�Env1F�����/0Env_�2F���!��"�EOF�3F����t�"�ERANGEt4F����U&"Err�5F���(��/PErr_ 9F���g��/,errhnd_�9F���~�"�errno�:F������/(errno_�;F���˜�$�ERRORT<F����/HError_DMF���ty�"�ESIGNUM0NF�����$%KEvent|QF���ׁ�/(event_�}F����'%}EventMsgF���E��/�EventMsg_\�F���n��$�exit8�F���Є�/LEXIT_��F�����"�expl�F������"YEXPORTDATA�EDOM The macro EDOM is defined in <errno.h=>errno_h> as an integer value which can be stored in <errno> to indicate that the input arguments for a function are out of a suitable domain. In Easy�C it is defined as 1.DATA8else This keyword is part of the <if> construct.DIR$,,�+F�����"�!RootDATA�#else This directive forms part of the <#if=>if>, <#ifdef=>ifdef> and <#ifndef=>ifndef> constructs. An additional form is <#elseif=>elseif>.DATA�#elseif This directive combines the functionality of <#else=>else_> and <#if=>if_>. It has the same form as a #if construct but combines this with #else eg. #fCode <#ifndef=>ifndef> MACRO \<statements1>; #elseif MACRO==1 \<statements2>; #else \<statements3>; #endif #f If MACRO is undefined \<statments1> will be compiled, else if MACRO==1 then \<statements2> will be compiled, else \<statements3> will be compiled.DATA�TimsLib:EnableDbug.h #Parent ro_tlib_ This header should be <#include=>include>d into any source file you want to use the <MallocDbug=>MallocDbug_h> facilities. It must be included after all other header files and defines the following macros: \#define <malloc> <mallocdbug> \#define <free> <freedbug> \#define <StrSave> <strsavedbug> It has no effect if the macro {*}_DEBUG{*} is not defined. See also <TimsLib:MallocDbug.h=>MallocDbug> and <TimsLib:Lib.h=>Lib>.DATAl#endif This directive marks the end of a <#if=>if_>, <#ifdef=>ifdef> or <#ifndef=>ifndef> construct.DATA�TimsLib:Env.h #Parent ro_tlib_ This header provides facilities for handling environment variables. Function: {align centre}<Env_ReadVarVal>DIR$00@1F����T&QReadVarValDATAQEnv_ReadVarVal Syntax: <BOOL> Env_ReadVarVal (char *variable, char *buf, int bufsize); Header: <TimsLib:Env.h=>Env> Returns: <TRUE> if successful. This function reads the value of the environment variable whose name is given in /variable/ and places it in /buf/. /bufsize/ is size of /buf/. <OS_ReadVarVal> does the same thing.DATA�EOF #Parent stdio The macro EOF is defined in <stdio.h=>stdio> as a negative value returned by some I/O functions indicating an end-of-file condition. In Easy C (and every other C implementation I have seen!) it is defined as (-1).DATA�ERANGE The macro ERANGE is defined in <errno.h=>errno_h> as an integer value which can be stored in <errno> to indicate that the results of a function are too big to be stored in the return variable. In Easy C it is defined as 2.DATA"TimsLib:Err.h This header provides facilities for catching errors. Functions: #Indent 8 #Table 1 15 <Err_Check> <Err_Complain> #EndTable #indent 0 The format of reported errors is: {fCode}Filename.Linenumber:Error message{f} This allows you to find the source of errors easily.DIR$PP�5F���U&Check�7F����#U&"ComplainDATAErr_Check Syntax: <BOOL> Err_Check (<os_error> *error); Header: <TimsLib:Err.h=>Err> Returns: <TRUE> if 'error' is not <NULL>. This function-like macro will call <Err_Complain> with the current source file and line. It is intended that it will be used to encapsulate error returning functions as follows: {fCode;align centre}failed=Err_Check(<os_cli>("Load Blob"));{f;align} If {*}os_cli{*} returns an error then it will be reported and /failed/ will equal TRUE, else /failed/ will equal <FALSE> and no action is taken.DATA"Err_Complain Syntax: <BOOL> Err_Complain (char *filename, int line, <os_error> *error); Header: <TimsLib:Err.h=>Err> Returns: <TRUE> if /error/ is not <NULL>. This function will report the error if /error/ is not <NULL>. It is intended to be called by using the macro <Err_Check>.DIR$,,L9F���bI�"�!RootDATA�Error Handling Functions #Parent stdio These functions handle file errors. #Table 2 18 <clearerr> <feof> <ferror> <perror> #EndTableDATA�errno The variable errno is declared in <errno.h=>errno_h>. It is a variable which is used to store error codes which some ANSI C functions return, eg those in <math.h=>math>.DIR$((�:F���?z�"�hDATA�errno.h The \<errno.h\> header declares one variable and defines three macros, all of which are used for reporting and interpreting errors. Macros: #Indent 5 #Table lines 1 <EDOM> <ERANGE> <ESIGNUM> #EndTable #Indent 0 Variable: <errno> DATA�ERROR The macro ERROR is defined in <DeskLib:Core.h=>Core> as a value representing the state that an error exists. It is actually defined as 1.DIR$HH�=F����+�$Check�?F���H�$�CheckFatal�AF����~B&�flagspEF���w��$�h`GF���}T�$cOutOfMemory�HF���m�$�Report\JF�����$�ReportFatalKF���#��$]ReportInternaltLF�����$�ReportFatalInternalDATAError_Check Syntax: <BOOL> Error_Check (<os_error> *err); Header: <DeskLib:Error.h=>Error_h> Returns: <TRUE> if /err/ !=�<NULL> This function will call <Error_Report>, if /err/ is not *NULL*. It is intended that it will be used to encapsulate error returning functions as follows: {wrap off} {fCode;align centre}failed=Error_Check(<os_cli>("Load Blob"));{f;align;wrap} If {*}os_cli{*} returns an error then it will be reported and /failed/ will equal {*}TRUE{*}, else /failed/ will equal <FALSE> and no action is taken.DATA�Error_CheckFatal Syntax: void Error_CheckFatal (<os_error> *err); Header: <DeskLib:Error.h=>Error_h> This function will call <Error_ReportFatal>, if /err/ is not <NULL>. It is intended that it will be used to encapsulate error returning functions as follows: {wrap off} {fCode;align centre}Error_CheckFatal(<os_cli>("Load Blob"));{f;align;wrap} If {*}os_cli{*} returns an error then it will be reported and the program will exit, else no action will be taken.DATA�error_flags This type is defined in <DeskLib:Wimp.h=>Wimp>. It contains the flags needed by <Wimp_ReportError>, both as a value and as individual bits for easy setting. It is defined as the following union: \{ unsigned int value; struct \{ unsigned int ok : 1; unsigned int cancel : 1; unsigned int highlightcancel : 1; unsigned int noprompt : 1; unsigned int noprefix : 1; unsigned int nowait : 1; unsigned int closebox : 1; } data; } {tab} � /ok/ and /cancel/ mean provide an OK/Cancel box respectively. � /noprompt/ means that "Press SPACE or click mouse to continue" will not appear. � /noprefix/ means that the title bar will not contain "Error from". � /nowait/ means that the function will return and leave the window open. � /closebox/ means that one of the boxes will be selected ({/}ok{/} or {/}cancel{/}) and the window closed. Bit 7, which is not provided as a separate variable, silences any beep (RISC OS 3 only).DATA�Error.h Version: 1.054 (13 Jul 1993) #line The {*}Error.h{*} header defines a number of function for reporting errors. These functions are not included in the DeskLib library, but are present in a separate object file. This is so you can change their action without changing the call used to invoke them. Functions: #indent 2 #Table 4 27 <Error_ReportInternal> <Error_ReportFatalInternal> <Error_Report> <Error_ReportFatal> <Error_Check> <Error_CheckFatal> <Error_OutOfMemory> #EndTableDATAcError_OutOfMemory Syntax: <BOOL> Error_OutOfMemory (BOOL fatal, char *place); Header: <DeskLib:Error.h=>Error_h> Returns: 0 (== <FALSE> == <NULL>). This function reports a memory error (ie "Unable to claim enough memory for XXX"), where XXX is the place given. If /fatal/ is <TRUE>, then <Error_ReportFatal> is used, else <Error_Report> is used.DATA�Error_Report Syntax: void Error_Report (int errno, char *report, ...); Header: <DeskLib:Error.h=>Error_h> This function reports an error to the user, under control of the <format string=>pform_>, /report/. The error number is given in /errno/. The default implementation calls <Wimp_ReportError=>SWI:Wimp_ReportError>, but you can change {*}Error.c{*} and recompile to provide any action you want.DATA�Error_ReportFatal Syntax: void Error_ReportFatal (int errno, char *report, ...); Header: <DeskLib:Error.h=>Error_h> This function calls <Error_Report>, and then calls <exit>.DATA]Error_ReportInternal Syntax: void Error_ReportInternal (int errno, char *report, ...); Header: <DeskLib:Error.h=>Error_h> This function is identical to <Error_Report>, except it is used for most errors reported by DeskLib. You should use Error_Report. This call exists so you can treat internal errors differently by changing {*}Error.c{*}.DATA�Error_ReportFatalInternal Syntax: void Error_ReportFatalInternal (int errno, char *report, ...); Header: <DeskLib:Error.h=>Error_h> This function calls <Error_ReportInternal>, and then calls <exit>.DATA�ESIGNUM The macro ESIGNUM is defined in <errno.h=>errno_h> as an integer value which can be stored in <errno> to indicate that an unrecognised signal has been caught by the default signal handler. In Easy C it is defined as 3.DATAKDeskLib:Event.h Version: 1.01 (14 Jul 1993) #line This header declares high-level functions for very easy handling of Wimp events. Functions: #Indent 10 #Table 4 21 <Event_Initialise> <Event_Initialise3> <Event_Claim> <Event_Release> <Event_ReleaseWindow> <Event_Process> <Event_Poll> <Event_CloseDown> #EndTable #Indent 0 Type: {align centre}<event_handler>{align} Variables: #Indent 10 #Table 3 21 <event_mask> <event_taskhandle> <event_wimpversion> <event_taskname> <event_lastevent> #EndTable #Indent 0 Event polls the Wimp for you, then passes the resulting event to one or more of your handler routines, until you indicate that you have processed the event. You do not need to worry about checking values returned by Wimp_Poll, or masking out unwanted events. Default handlers are provided in <DeskLib:Handler.h=>Handler>.DIR$((�UF����RG#�anywindows4VF����`G#�attachmenu4XF���%zG#'attachmenumaker\ZF���v�$%?Claim�]F�����G#�clear_current_menuD^F����$%�CloseDown�^F�����H&�data�`F���J�G#�getmasktaF����MG#�hcF�����$%MhandlerTdF����N$%InitialiseleF����[$%2Initialise3�gF����G#�is_menu_being_recreated0hF����$%�lastevent�hF�����$%�mask�iF�����G#(menu_maker�jF�����G#hmenu_proclF�����$%Poll4mF�����H&�pollblocknF����\H&�pollmask�rF���5�$%�Process$tF���ŖG#;process_`uF�����$%HRelease�vF�����$%�ReleaseWindow�wF���.�G#�setmask�xF����$%}tasknameyF����AH&�type�{F���S�G#wX|F���"�$%�wimpversion}F�����$%�taskhandleDATA�event_anywindows Syntax: <BOOL> event_anywindows (void); Header: <event.h=>event_h> Returns: <TRUE> if there are any active windows.DATA�event_attachmenu Syntax: <BOOL> event_attachmenu (<event_w> win, <menu> m, <event_menu_proc> fn, void *hnd); Header: <event.h=>event_h> Returns: <TRUE> if successful. This function attaches a menu /m/ and its associated handler function /fn/ to a window /win/. When the user invokes a menu from the given window, this menu will be activated. The handler function will be called when the user selects a menu entry. A call with {/}m==0{/} removes the attachment. /hnd/ is passed direct to the handler.DATA'event_attachmenumaker Syntax: <BOOL> event_attachmenumaker (<event_w> win, <event_menu_maker> make, <event_menu_proc> fn, void *hnd); Header: <event.h=>event_h> Returns: <TRUE> if successful. This function attaches a menu maker /make/ and its associated handler function /fn/ to a window /win/. When the user invokes a menu from the given window, the menu maker will be activated. The handler function will be called when the user selects a menu entry. A call with {/}make==0{/} removes the attachment. /hnd/ is passed direct to the handler.DATA?Event_Claim Syntax: <BOOL> Event_Claim (<event_type> type, <window_handle> win, <icon_handle> icon, <event_handler> handler, void *ref); Header: <DeskLib:Event.h=>Event> Returns: TRUE if successful. This function attaches an event handler to a particular event /type/, window /win/, and icon /icon/. Any of these can be {*}event_ANY{*} to be non-specific. /handler/ is your handler function, /ref/ is passed direct to the handler if it is called and can be anything you like. Events are prioritised, with the most specific events being called first - so you can have a general routine handling all icon clicks, and then several ones for specific icons, which will be called first if those icons are clicked. Note that Null_Reason_Code events will not be processed unless you specifically attach a handler to that event.DATA�event_clear_current_menu Syntax: void event_clear_current_menu (void); Header: <event.h=>event_h> This function clears the current menu tree from the screen.DATA�Event_CloseDown Syntax: void Event_CloseDown (void); Header: <DeskLib:Event.h=>Event> This function closes down (quits) the application and the Event system.DATA�event_data This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a union containing the data returned by <Wimp_Poll>. \{ <caret_block> caret; <key_block> key; <pollword_block> pollword; <window_openblock> openblock; <message_block> message; <mouse_block> mouse; <wimp_box> screenrect; int selection[10]; <scroll_rq> scroll; char bytes[256]; int words[64]; }DATA�event_getmask Syntax: <wimp_emask> event_getmask (void); Header: <event.h=>event_h> Returns: The mask currently being used. This function gets the mask used by <wimp_poll> and <wimpt_poll> when polling the Wimp.DATA�event.h This header declares functions for system-independent central processing of window system events. Functions: {indent 12} <event_anywindows> <event_attachmenu> <event_attachmenumaker> <event_clear_current_menu> <event_getmask> <event_is_menu_being_recreated> <event_process=>event_process_> <event_setmask> {indent} Types: {indent 12} <event_w> <event_menu_proc> <event_menu_maker>DATAMevent_handler This type is defined <DeskLib:Event.h=>Event>. It is a function which may be used to process events claimed using <Event_Claim>. The function has the form: {wrap off} {fCode;align centre}<BOOL> *myfunc (event_pollblock *, void *);{f;align} {wrap} And should return <TRUE> if it processes the event passed to it.DATAEvent_Initialise Syntax: void Event_Initialise (char *name); Header: <DeskLib:Event.h=>Event> This function initialises the Wimp and the Event system. /name/ should point to your task name. For RISC OS 3 only applications, <Event_Initialise3> should be called instead.DATA2Event_Initialise3 Syntax: void Event_Initialise3 (char *name, int version, int *messages); Header: <DeskLib:Event.h=>Event> This function initialises the Wimp and the Event system. /name/ should point to your task name, /version/ to the Wimp version number wanted * 100, and /messages/ to a list of user message numbers terminated by 0. Only these messages will be returned to your task. For all versions but 300, messages can be <NULL>, in which case you will receive all messages. The function should only be used on RISC OS 3, with /version/ >= 300.DATA�event_is_menu_being_recreated Syntax: <BOOL> event_is_menu_being_recreated (void); Header: <event.h=>event_h> Returns: <TRUE> if it is.DATA�event_lastevent This variable is defined in <DeskLib:Event.h=>Event>. It is an <event_pollblock> containing the last Wimp event received by the Event system.DATA�event_mask This variable is defined in <DeskLib:Event.h=>Event>. It is used to hold the mask which the Event system used for <Wimp_Poll>. It is of type <event_pollmask>.DATA(event_menu_maker This type is defined in <event.h=>event_h>. It is a function called when the user wants a menu creating. The function is of the form: {wrap off} {fCode;align centre}<menu> myfunc (void *handle);{f;align;wrap} The function should create a menu and return its menu handle.DATAhevent_menu_proc This type is defined in <event.h=>event_h>. It is a function called when the user selects a menu entry. The function is of the form: {wrap off} {fCode;align centre}void myfunc (void *handle, char *hit);{f;align} {wrap} /hit/ is a string containing a character for each level of nesting in a hierarchical menu structure, terminated by 0.DATAEvent_Poll Syntax: void Event_Poll (void); Header: <DeskLib:Event.h=>Event> This function should be called repeatedly once your task is fully initialised. It calls <Wimp_Poll> and then <Event_Process> for you. Use as in: {fCode;align centre}while (<TRUE>) Event_Poll();DATA�event_pollblock This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure containing both the reason code and data returned by <Wimp_Poll>. \{ <event_type> type; <event_data> data; }DATA�event_pollmask This is a union defined by <DeskLib:Wimp.h=>Wimp> used for masking out certain reason codes when calling <Wimp_Poll>. It allows access to the mask as individual bits and as a value. \{ unsigned int value; struct \{ unsigned int null : 1; unsigned int redraw : 1; unsigned int open : 1; unsigned int close : 1; unsigned int ptrleave : 1; unsigned int ptrenter : 1; unsigned int click : 1; unsigned int userdrag : 1; unsigned int key : 1; unsigned int menu : 1; unsigned int scroll : 1; unsigned int losecaret : 1; unsigned int gaincaret : 1; unsigned int nonzeropollword : 1; unsigned int dummy14 : 1; unsigned int dummy15 : 1; unsigned int dummy16 : 1; unsigned int usermessage : 1; unsigned int usermessagerecorded : 1; unsigned int usermessageack : 1; unsigned int dummy20 : 1; unsigned int dummy21 : 1; unsigned int r3ispollwordptr : 1; unsigned int highprioritypoll : 1; unsigned int keepfpregisters : 1; } data; } To mask out an event set the corresponding bit.DATA�Event_Process Syntax: void Event_Process (<event_pollblock> *event); Header: <DeskLib:Event.h=>Event> This function processes an event, whose data is in /event/. It offers in turn to the handlers currently attached, until one of them returns <TRUE>. Note that <Event_Poll> calls <Wimp_Poll> and Event_Process automatically. See also the Desktop C function, <event_process=>event_process_>.DATA;event_process Syntax: void event_process (void); Header: <event.h=>event_h> This function processes one event. If the number of current active windows is 0 then the program exits. One event is polled and processed (ie passed on to the <win> module). Typically this is called in a loop in the main function.DATAHEvent_Release Syntax: <BOOL> Event_Release (<event_type> type, <window_handle> win, <icon_handle> icon, <event_handler> handler, void *ref); Header: <DeskLib:Event.h=>Event> Returns: <TRUE> if successful. This function releases an event handler. You should call this with the same parameters as used for <Event_Claim>.DATA�Event_ReleaseWindow Syntax: void Event_ReleaseWindow (<window_handle> win); Header: <DeskLib:Event.h=>Event> This function releases all handlers attached to a specific window. Note that this is done automatically by <Window_Delete>.DATA�event_setmask Syntax: void event_setmask (<wimp_emask> mask); Header: <event.h=>event_h> This function sets the mask used by <wimp_poll> and <wimpt_poll> when polling the Wimp. The default is to ignore null events only.DATA}event_taskname This variable is defined in <DeskLib:Event.h=>Event>. It is a string containing your application name.DATA�event_type This type is defined in <DeskLib:Wimp.h=>Wimp>. It is an enumerated type giving the reason codes returned by <Wimp_Poll>. \{ event_ANY = -99, event_NULL = 0, event_REDRAW, event_OPEN, event_CLOSE, event_PTRLEAVE, event_PTRENTER, event_CLICK = 6, event_BUTTON = 6, event_USERDRAG, event_KEY, event_MENU, event_SCROLL, event_LOSECARET, event_GAINCARET, event_NONZEROPOLLWORD, event_USERMESSAGE = 17, event_SEND = 17, event_USERMESSAGERECORDED = 18, event_SENDWANTACK = 18, event_USERMESSAGEACK = 19, event_ACK = 19 } {*}event_ANY{*} is used by some DeskLib functions to indicate matching any event/window/icon etc.DATAevent_w This type is defined in <event.h=>event_h>. It is a type containing a window handle and is defined as an /int/.DATA�event_wimpversion This variable is defined in <DeskLib:Event.h=>Event>. It is used to hold the current Wimp version multiplied by 100 eg 311 for RISC OS 3.11.DATA�event_taskhandle This variable is defined in <DeskLib:Event.h=>Event>. It is used to hold the task handle of your application.DATA}DeskLib:EventMsg.h Version: 1.00 (16 Mar 1992) #line This header is an add-on for <DeskLib:Event.h=>Event>. It adds functions to provide a better way of handling <User Messages=>SWI:wimp_sendmessage.1> (reason codes 17-19). Functions: #table columns 2 <EventMsg_Initialise> <EventMsg_Claim> <EventMsg_Release> <EventMsg_ReleaseWindow > <EventMsg_ReleaseMessage> #endtableDIR$���F����6%%)Claim�F���'%%�Initialise��F���#L%%�Release,�F���t^%%ReleaseMessageH�F���V%%ReleaseWindowDATA)EventMsg_Claim Syntax: <BOOL> EventMsg_Claim (<message_action> type, <window_handle> win, <event_handler> handler, void *ref); Header: <DeskLib:EventMsg.h=>EventMsg> Returns: <TRUE> if successful. This function attaches an message handler to a particular message /type/ and window /win/. Either of these can be {*}event_ANY{*} to be non- specific. /handler/ is your handler function, /ref/ is passed direct to the handler if it is called and can be anything you like. Evens are prioritised, with those for specific windows being called first.DATA�EventMsg_Initialise Syntax: void EventMsg_Initialise (void); Header: <DeskLib:EventMsg.h=>EventMsg> This function initialises the EventMsg system.DATA�EventMsg_Release Syntax: <BOOL> EventMsg_Release (<message_action> type, <window_handle> win, <event_handler> handler); Header: <DeskLib:EventMsg.h=>EventMsg> Returns: <TRUE> if successful. This function releases a message handler. If /type/ is {*}event_ANY{*} then only non-message-specific handlers may be released. If /win/ is {*}event_ANY{*} then only non-window-specific handlers may be released.DATAEventMsg_ReleaseMessage Syntax: int EventMsg_ReleaseMessage (<message_action> type); Header: <DeskLib:EventMsg.h=>EventMsg> This function releases all message handlers for the given message. If /type/ is {*}event_ANY{*} then all non-message-specific handlers are released.DATAEventMsg_ReleaseWindow Syntax: int EventMsg_ReleaseWindow (<window_handle> win); Header: <DeskLib:EventMsg.h=>EventMsg> This function releases all message handlers for the given window. If /win/ is {*}event_ANY{*} then all non-window-specific handlers are released.DATA�exit Syntax: void exit (int status); Header: <stdlib.h=>stdlib> This function causes the program to terminate normally, returning status to the host environment. Status should be zero (<EXIT_SUCCESS>), or <EXIT_FAILURE>. This is what the function does: {tab} � Calls functions registered with <atexit>, in reverse order of registration (last first). � Flushes and closes all open streams. � Removes all files created with <tmpfile>. � Returns to the host environment.DIR$LL��F������"FAILURE��F������" SUCCESSDATAEXIT_FAILURE The macro {/}EXIT_FAILURE{/} is defined in <stdlib.h=>stdlib> as a value which may be passed to the <exit> function to indicate that the program has been unsuccessful. In Easy C (and every other C compiler I have used) it is actually defined as 1.DATA EXIT_SUCCESS The macro {/}EXIT_SUCCESS{/} is defined in <stdlib.h=>stdlib> as a value which may be passed to the <exit> function to indicate that the program has been successful. In Easy C (and every other C compiler I have used) it is actually defined as 0.DATA�exp Syntax: double exp (double x); Header: <math.h=>math> Returns: The exponential of x. This function returns e to the power of x, where e = exp(1) = 2.71828183� . An error occurs if x is too big.DATAYEXPORT <label> This allows one of your labels to be <IMPORT>ed into another file.DIR$����F����Z�"�fabs��F������$�FALSEX�F������"�fclose�F���hQ�"�feof��F���#U�"�ferrorX�F������"gfflush��F����b�"�fgetc��F����"Zfgetpos�F���Xq�"�fgets��F���9��"#FILE�F�����/file_��F���o��/,filehnd_��F�����G#1fileicon��F������/(FileIcon_X�F���Ԉ�/(FILENAME_��F������/,fileop_`�F�����/,FilerAction_��F���^�'% FILETYPE��F���M��/,filetype_8�F�����(%EFilter��F������/�Filter_$�F����H#pflex��F��� ��/0flex_�F���<��"'float<�F���ox�"�floor��F������/lFLT_�F���*�"+fmodH�F����*)%�Font@�F�����/@font_[F����~�$fontlist$\F���Đ�/�fontlist_PmF���U�'# fontrecpnF�����$�fontselectpF���_��/@fontselect_�yF������"#fopen�zF���'��/(FOPEN_�{F���w.�")for�F���`��/,formio_�F������/(fpos_�F�����'%}fprintfd�F���Xz�"�fputc(�F���6��"�fputs�F����6�"3freadL�F���j �"�free(�F�����V&~FreeDbug��F�����$freeprocĉF�����"�freopent�F�����"Ffrexp��F����"�fscanf��F����-�"fseek��F���?�"dfsetpos�F����G�"�ftell��F����/1*fwriteDATA�fabs Syntax: double fabs (double x); Header: <math.h=>math> Returns: The absolute value of x. This function returns the absolute value of x ie the magnitude of x. This is always positive, so if x = -5.3 then fabs(x) = 5.3.DATA�FALSE The macro FALSE is defined in <DeskLib:Core.h=>Core> <TimsLib:Core.h=>Core_TL> and <os.h=>os> (Easy C) as a value representing the logical state of False. It is actually defined as 0.DATA�fclose Syntax: int fclose (<FILE> *stream); Header: <stdio.h=>stdio> Returns: Zero if the file is closed, <EOF> if it is not. This function closes the file stream pointed to by /stream/. The stream is now invalid. Any data currently buffered to be written out will be written out before closure. If the buffer was allocated automatically (the usual case), the memory will be released.DATA�feof Syntax: int feof (FILE *stream); Header: <stdio.h=>stdio> Returns: Zero if not at end-of-file. This functions tests to see if the end of the specified file stream has been reached.DATA�ferror Syntax: int ferror (FILE *stream); Header: <stdio.h=>stdio> Returns: Zero if there is no error. This function tests the error flag for the specified stream.DATAgfflush Syntax: int fflush (<FILE> *stream); Header: <stdio.h=>stdio> Returns: <EOF> if any data is written out, or zero if not. This function causes any buffered output data to be written to the file pointed to by /stream/, but only if the last operation on the file was not input. If /stream/ is a null pointer, flushing occurs on all open streams.DATA�fgetc Syntax: int fgetc (<FILE> *stream); Header: <stdio.h=>stdio> Returns: Character read, or <EOF> for an error. This function reads a single character from the stream pointed to by /stream/ and returns it as an /int/.DATAZfgetpos Syntax: int fgetpos (<FILE> *stream, <fpos_t> *pos); Header: <stdio.h=>stdio> Returns: Zero if successful. This function stores the file pointer, for the file pointed to by /stream/, in /pos/. The value stored is not in any specific format (so don't try to use it, folks!). If there is an error, the reason is stored in <errno>.DATA�fgets Syntax: char *fgets (char *str, int n, <FILE> *stream); Header: <stdio.h=>stdio> Returns: Pointer to string read, or a null pointer if there is an error. This function reads a string of characters from the stream into the character array pointed to by /str/. A maximum of (n-1) characters will be read and in any case reading will terminate at a newline character or end-of-file. If there is an error, a null pointer will be returned but the array contents may still have changed.DATA#FILE The type {/}FILE{/} is defined in <stdio.h=>stdio> as an object holding all necessary information about an open file. In Easy C it is defined as the following structure: \{ unsigned char *_ptr; int _icnt; int _ocnt; int _flag; int :32,:32,:32,:32,:32,:32; }DIR$ �F�����%%^access��F����&%IClose̤F���A�%%aDelete0�F����&%�EOF�F�����%%Exists�F���]�&%�GetLength��F���Ҩ&%�GetType��F�����'%kh�F�����%%�handlex�F����3'%�IsDirectory0�F���:�%%wlasterror��F���7F'%TLoadTo��F���p7�"�mode_ܵF����&%qOpenP�F�����%%�position�F����g&%�Read32��F����}&%6Read32R�F���pP&%�Read8��F���J6&%<ReadBytes��F���s�%%�READERROR��F���&'&%jReturnPos��F����&%�Seek��F�����&%SetType�F�����%%ISize\�F���#7U&ZTL��F����[&%nWrite32(�F���|�&%WWrite32R��F���LA&%UWrite8��F���/&%HWriteBytes �F���|'%�Date�F���g�'%�printfDATA^file_access The type {*}file_access{*} is defined in <DeskLib:File.h=>File_h> as an enumerated type which defines the mode in which a file should be opened. The possible values are file_READ, file_WRITE, or file_APPEND; they are defined as follows: \{ file_READ = 0x40, file_WRITE = 0x80, file_APPEND = 0xC0 }DATAIFile_Close Syntax: <os_error> *File_Close (<file_handle> hnd); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function closes the file stream whose handle is given in /hnd/. The stream is now invalid. Any data currently buffered to be written out will be written out before closure.DATAaFile_Delete Syntax: <os_error> *File_Delete (char *filename); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function attempts to remove the file whose name is contained in /filename/. This is equivalent to *Delete or <OS_File 6=>SWI:os_file6>. If the file is open, the function will almost certainly fail.DATA�File_EOF Syntax: <BOOL> File_EOF (<file_handle> hnd); Header: <DeskLib:File.h=>File_h> Returns: <TRUE> if at end-of-file. This function tests to see if the end of the specified file stream has been reached.DATAFile_Exists Syntax: <BOOL> File_Exists (char *filename); Header: <DeskLib:File.h=>File_h> Returns: <TRUE> if the file exists. This function checks if the file whose filename is given exists. It does this by attempting to open the file for reading.DATA�File_GetLength Syntax: <os_error> *File_GetLength (char *filename, int *size_ptr); Headers: <TimsLib:File.h=>File_TL> <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function reads the length of the file /filename/ in bytes and returns it in {/}*size_ptr{/}. It is actually defined as a function-like macro calling SWI <OS_File 5=>SWI:os_file5>.DATA�File_GetType Syntax: int File_GetType (char *filename); Header: <TimsLib:File.h=>File_TL> <DeskLib:File.h=>File_h> Returns: File type of file, or -1 for error. This function reads the <file type=>FileTypes:!Root> of the file /filename/.DATAkDeskLib:File.h Version: 1.03 (26 Jun 1994) #line The {*}File.h{*} header defines a number of functions and types for handling files. These functions are much faster than those in <stdio.h=>stdio>, and use RISC OS file handles. Functions: #indent 6 #Table columns 3 <File_Close> <File_Delete> <File_EOF> <File_Exists> <File_Open> <File_Read8> <File_Read32> <File_Read32R> <File_ReadBytes> <File_ReturnPos> <File_Seek> <File_Size> <File_Write8> <File_Write32> <File_Write32R> <File_WriteBytes> <File_SetType> <File_GetType> <File_GetLength> <File_LoadTo> <File_IsDirectory> <File_Date> <File_printf> #EndTable #Indent 0 Macros: #indent 9 #Table 2 20 <file_READERROR> <FILETYPE> <Filetype Macros=>filetype_> #EndTable #Indent 0 Types: #indent 14 #Table 2 20 <file_position> <file_handle> <file_access> #EndTable #Indent 0 Variable: {align centre}<file_lasterror>DATA�file_handle The type file_handle is defined in <DeskLib:File.h=>File_h> as a type capable of holding a handle for an open file.DATA�File_IsDirectory Syntax: <BOOL> File_IsDirectory (char *pathname); Headers: <TimsLib:File.h=>File_TL> <DeskLib:File.h=>File_h> Returns: <TRUE> if /pathname/ is a directory.DATAwfile_lasterror The variable file_lasterror is declared in <DeskLib:File.h=>File_h>. It is of type <os_error> *. It is used to return errors from the following functions: #table columns 3 <File_Open> <File_Read8> <File_Write8> <File_Seek> <File_Close> <File_Read32> <File_Write32> <File_ReturnPos> <File_EOF> <File_ReadBytes> <File_WriteBytes> #endtableDATATFile_LoadTo Syntax: <os_error> *File_LoadTo (char *filename, void *address, int *size); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This functions loads the file whose filename is given into memory at the address specified. If /size/ is not <NULL>, then the size will be returned in {/}*size{/}.DATA�File Modes The mode parameter is a string specifying the modes in which the file is to be opened. There are three basic modes as follows: #indent 2 *r* File is opened for reading. The file must already exist. *w* File is opened for writing. If the file exists then it will be deleted first. *a* File is opened for appending. All writing takes place at the end of the file. #indent Then there are the two qualifiers, b (binary) and + (update). #indent 2 *b* Normally files are opened in �text mode� this means that what you send out may not be what is present in the file. Similarly, what you read may not be what is in the file (CR/LF combinations are converted to LF). What's written out and what's read in will be the same. Binary mode means that what you read/write is exactly what is in the file. {*}+{*} This allows the file to be updated (ie read and write allowed). #indent The most useful options are probably �wb� for writing, �rb� for reading, and �rb+� for updating.DATAqFile_Open Syntax: <file_handle> File_Open (char *filename, <file_access> access); Header: <DeskLib:File.h=>File_h> Returns: Handle of the file stream, or <NULL>. This function attempts to open the file specified in /filename/ for random access according to /access/. If the function fails, it returns NULL and the error can be obtained from <file_lasterror>.DATA�file_position The type file_position is defined in <DeskLib:File.h=>File_h> as a type suitable for holding a sequential file pointer.DATA�File_Read32 Syntax: int File_Read32 (<file_handle> hnd); Header: <DeskLib:File.h=>File_h> Returns: <file_READERROR> if failed. This function reads a 32-bit value (word/int/long) from the file whose handle is given. If an error occurs, file_READERROR is returned and the error can be obtained from <file_lasterror>. The value is stored with LSB first. This function can also be called with {*}File_ReadWord{*}, {*}File_ReadInt{*} and {*}File_ReadLong{*}.DATA6File_Read32R Syntax: int File_Read32R (<file_handle> hnd); Header: <DeskLib:File.h=>File_h> Returns: <file_READERROR> if failed. This function is identical to <File_Read32>, but reads the bytes MSB first. It can also be called with {*}File_ReadWordR{*}, {*}File_ReadIntR{*}, and {*}File_ReadLongR{*}.DATA�File_Read8 Syntax: int File_Read8 (<file_handle> hnd); Header: <DeskLib:File.h=>File_h> Returns: <file_READERROR> if failed. This function reads an 8-bit value (byte/char) from the file whose handle is given in hnd. If an error occurs, file_READERROR is returned and the error can be obtained from <file_lasterror>. This function can also be called with {*}File_ReadByte{*} and {*}File_ReadChar{*}.DATA<File_ReadBytes Syntax: int File_ReadBytes (<file_handle> hnd, void *buffer, int nbytes); Header: <DeskLib:File.h=>File_h> Returns: Number of bytes NOT successfully read. This function reads the given number of bytes of data from the file whose handle is given, into the area of memory pointed to by buffer.DATA�file_READERROR The macro file_READERROR is defined in <DeskLib:File.h=>File_h> as a value indicating that an error has occured. It is returned by several functions. It is actually defined as (-1).DATAjFile_ReturnPos Syntax: <file_position> File_ReturnPos (<file_handle> hnd); Header: <DeskLib:File.h=>File_h> Returns: File pointer for stream. This function reads the file position indicator for the file whose handle is given in /hnd/. This is the number of characters from the beginning of the file. If an error occurs it is stored in <file_lasterror>.DATA�File_Seek Syntax: <os_error> *File_Seek (<file_handle> hnd, <file_position> pos); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function sets the file position indicator for the file whose handle is given.DATAFile_SetType Syntax: <os_error> *File_SetType (char *filename, int type); Header: <TimsLib:File.h=>File_TL> <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function changes the <file type=>FileTypes:!Root> of the file /filename/ to /type/.DATAIFile_Size Syntax: int File_Size (char *filename); Header: <DeskLib:File.h=>File> Returns: Size of the file. This function reads the size in bytes of the file whose filename is given. A return value of 0 means that the file is of length 0, or an error occured. If an error occured, it can be found from <file_lasterror>.DATAZTimsLib:File.h #Parent ro_tlib_ This header is an extension to <DeskLib:File.h=>File_h>. Functions: #indent 5 #Table 3 18 <File_SetType> <File_GetType> <File_GetLength> <ReadEntries> <File_IsDirectory> #EndTable #indent 0 Macros: #indent 5 #Table 1 18 <MAX_PATH_LEN> <FILETYPE> #EndTable #indent 0 Types: {align centre}<object_info>DATAnFile_Write32 Syntax: <os_error> *File_Write32 (<file_handle> hnd, int word); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function writes a 32-bit value (word/int/long) to the file whose handle is given in hnd. This function can also be called with {*}File_WriteWord{*}, {*}File_WriteInt{*} and {*}File_WriteLong{*}.DATAWFile_Write32R Syntax: <os_error> *File_Write32R (<file_handle> hnd, int word); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function is identical to <File_Write32>, but writes the bytes MSB first. It can also be called with {*}File_WriteWordR{*}, {*}File_WriteIntR{*} and {*}File_WriteLongR{*}.DATAUFile_Write8 Syntax: <os_error> *File_Write8 (<file_handle> hnd, int byte); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function writes an 8-bit value (byte/char) to the file whose handle is given in /hnd/. This function can also be called with {*}File_WriteByte{*} and {*}File_WriteChar{*}.DATAHFile_WriteBytes Syntax: <os_error> *File_WriteBytes (<file_handle> handle, void *buffer, int nbytes); Header: <DeskLib:File.h=>File_h> Returns: Pointer to error, or <NULL> if none. This function writes the given number of bytes of data into the file whose handle is given, from the area of memory pointed to by buffer.DATA�File_Date Syntax: void File_Date (char *filename, char *fivebytedate); Header: <DeskLib:File.h=>file_h> This function reads the datestamp of the file /filename/ into the five byte block pointed to by /fivebytedata/.DATA�File_printf Syntax: int File_printf (<file_handle> f, char *format, ...); Header: <DeskLib:File.h=>File_h> Returns: The number of characters written, or a negative value if there was an error. This function writes output to the file /f/ under control of the <format string=>pform_>. It is equivalent to <fprintf>() but using a RISC OS file handle. String must not be longer than 512 characters after substitutions.DIR$,,��F����h�"�!RootDATA�File Handling Functions #Parent stdio These functions deal with manipulating random access files. #Table 4 16 <fclose> <fflush> <fopen> <freopen> <setbuf> <setvbuf> <fgetpos> <fsetpos> <fseek> <ftell> <rewind> #EndTableDATA1fileicon.h This header declares just one function: Syntax: void fileicon (<wimp_w> win, <wimp_i> icon, int filetype); This function changes the given icon to display the file icon for the given filetype, using "file_xxx" for unknown types. See also the TimsLib function, <FileIcon=>FileIcon_h>.DIR$((�F���dU&>hDATA>TimsLib:FileIcon.h This header provides just one function: Syntax: void FileIcon (<window_handle> win, <icon_handle> icon, int filetype); This function changes the icon specified (which must be an indirected text-only icon) to an indirected sprite-only icon with a sprite representing the filetype specified.DIR$((��F���t��" MAXDATA FILENAME_MAX #Parent stdio The macro FILENAME_MAX is defined in <stdio.h=>stdio> as the length of the longest filename that can be handled by the file I/O functions. It is intended to be used as the subscript for a char array used to hold filenames. In Easy�C it is defined as 80.DIR$,,��F���{��"�!RootDATA�File Operation Functions #Parent stdio These functions operate on whole files: #Table 2 18 <remove> <rename> <tmpfile> <tmpnam> #EndTableDIR$,,��F��� ��"M!RootDATAMFilerAction SendSelectedDirectory SendSelectedFile SendStartOperationDATA FILETYPE This is a function-like macro defined in <TimsLib:File.h=>File_TL> and <DeskLib:File.h=>File_h>. It simply returns a filetype from a load address. It is defined as: {wrap off} {fCode;align centre}<#define=>define> FILETYPE(x) (((x) & 0xFFF00) >> 8)DIR$,,�F���J�(%#!RootDATA#File types There are macros defined for many of the common file types in <DeskLib:File.h=>File_h>. The macros are: filetype_AIM 0x004 filetype_DEVICE 0xFCC filetype_CLEAR 0x690 filetype_CACHE 0xFCF filetype_DEGAS 0x691 filetype_PCEMCONF 0xFD0 filetype_IMG 0x692 filetype_DEBIMAGE 0xFD3 filetype_AMIGAIFF 0x693 filetype_TASKEXEC 0xFD6 filetype_MACPAINT 0x694 filetype_TASKOBEY 0xFD7 filetype_GIF 0x695 filetype_MAKEFILE 0xFE1 filetype_PCX 0x697 filetype_DOS 0xFE4 filetype_QRT 0x698 filetype_DESKTOP 0xFEA filetype_MTV 0x699 filetype_OBEY 0xFEB filetype_CADSOFT 0x69A filetype_TEMPLATE 0xFEC filetype_IRLAM 0x69B filetype_PALETTE 0xFED filetype_BMP 0x69C filetype_TIFF 0xFF0 filetype_TARGA 0x69D filetype_CONFIG 0xFF2 filetype_PBMPlus 0x69E filetype_PRINTOUT 0xFF4 filetype_ZVDA 0x69F filetype_POSCRIPT 0xFF5 filetype_ALARMS 0xAE9 filetype_FONT 0xFF6 filetype_DRAWFILE 0xAFF filetype_BBCFONT 0xFF7 filetype_BBCROM 0xBBC filetype_ABSOLUTE 0xFF8 filetype_AUDIOWRK 0xBD6 filetype_SPRITE 0xFF9 filetype_RENDPIC 0xD58 filetype_MODULE 0xFFA filetype_ARCHIVE 0xDDC filetype_BASIC 0xFFB filetype_PROART 0xDE2 filetype_UTILITY 0xFFC filetype_PICTURE 0xDFA filetype_DATA 0xFFD filetype_PRNTDEFN 0xFC6 filetype_COMMAND 0xFFE filetype_DOSDISC 0xFC8 filetype_TEXT 0xFFF filetype_SUNRASTR 0xFC9DATAEDeskLib:Filter.h Version: 1.01 (22 Oct 1994) #line This header declares functions for the RISC�OS�3 Filter Manager. Functions: #table columns 2 <Filter_RegisterPreFilter> <Filter_RegisterPostFilter> <Filter_DeRegisterPreFilter> <Filter_DeRegisterPostFilter> #endtable #indent 0 Type: {align centre}<filter_handler>DIR$��`�F���)%�DeRegisterPostFilter`�F���k�(%�DeRegisterPreFilter\�F�����(%�handlerH�F����(%�RegisterPostFilter��F�����(%TRegisterPreFilterDATA�Filter_DeRegisterPostFilter Syntax: void Filter_DeRegisterPostFilter (char *filtername, <filter_handler> handler, int R12, <task_handle> task); Header: <DeskLib:Filter.h=>Filter> This function removes a post-filter from the list of post-filters.DATA�Filter_DeRegisterPreFilter Syntax: void Filter_DeRegisterPreFilter (char *filtername, <filter_handler> handler, int R12, <task_handle> task); Header: <DeskLib:Filter.h=>Filter> This function removes a pre-filter from the list of pre-filters.DATA�filter_handler The type {*}filter_handler{*} is defined by <DeskLib:Filter.h=>Filter> as a function type. Functions should be of the form: {wrap off} {fCode;align centre}int myfunc(int event, <event_pollblock> *event, int task);DATA�Filter_RegisterPostFilter Syntax: void Filter_RegisterPostFilter (char *filtername, <filter_handler> handler, int R12, <task_handle> task, int eventmask); Header: <DeskLib:Filter.h=>Filter> This function registers a post-filter routine, which will be called whenever the Wimp is about to return from Wimp_Poll to the specified task. If /task/ is zero, then all tasks are affected.DATATFilter_RegisterPreFilter Syntax: void Filter_RegisterPreFilter (char *filtername, <filter_handler> handler, int R12, <task_handle> task); Header: <DeskLib:Filter.h=>Filter> This function registers a pre-filter routine, which will be called whenever the specified task polls the Wimp. If /task/ is zero, then all tasks are affected.DATApflex.h This header provides memory allocation for interactive programs requiring large chunks of store. Such programs must respond to memory full errors. Functions: #Indent 5 #Table columns 3 <flex_init> <flex_alloc> <flex_free> <flex_size> <flex_extend> <flex_midextend> <flex_budge> <flex_dont_budge> #EndTable #below;Indent 0 Types: {indent 5} <flex_ptr>DIR$00��F���O-H#�alloc`�F����gH#_budge��F����~H#Hdont_budge�F����CH#�extend��F���7:H#�free��F���3#H#�initD�F����[H#Nmidextend��F���3�H#�ptr\�F����=H#�sizeDATA�flex_alloc Syntax: int flex_alloc(<flex_ptr> anchor, int n); Header: <flex.h=>flex> Returns: 0 for failure, 1 for success. This function allocates /n/ bytes of store, obtained from the Wimp free pool and stores its address in the variable pointed to by /anchor/. The allocated store must be accessed through this anchor eg as (*anchor)[0] etc. since the anchor may be altered as memory is moved around.DATA_flex_budge Syntax: int flex_budge (int n, void **a); Header: <flex.h=>flex> Returns: Amount of store acquired. This function is not to be called directly. It should be registered using the function <_kernel_register_slotextend>. It will allow the flex store to be moved if more heap storage is needed. The default state is <flex_dont_budge>.DATAHflex_dont_budge Syntax: int flex_dont_budge (int n, void **a); Header: <flex.h=>flex> Returns: 0 This function is not to be called directly. It should be registered using the function <_kernel_register_slotextend>. It will not allow the flex store to be moved if more heap storage is needed. This is the default state.DATA�flex_extend Syntax: int flex_extend (<flex_ptr> anchor, int newsize); Header: <flex.h=>flex> Returns: 0 for failed, 1 for OK. This function alters the size of the memory block, whose anchor is given, to /newsize/ bytes.DATA�flex_free Syntax: void flex_free (<flex_ptr> anchor); Header: <flex.h=>flex> This function frees the memory whose anchor is given. {/}*anchor{/} will be set to 0.DATA�flex_init Syntax: void flex_init (void); Header: <flex.h=>flex> This function initialises the flex store. It must be called before any other flex functions.DATANflex_midextend Syntax: int flex_midextend (<flex_ptr> anchor, int at, int by); Header: <flex.h=>flex> Returns: 0 for failed, 1 for OK. This function alters the size of the memory block whose anchor is given. If /by/ is positive then /by/ bytes are inserted at offset /at/, else {/}-by{/} bytes are deleted below offset /at/.DATA�flex_ptr This type is defined in <flex.h=>flex> as a type capable of holding a pointer to a pointer to a block of memory allocated by <flex_alloc>. It is actually defined as a {/}void **{/}.DATA�flex_size Syntax: int flex_size (<flex_ptr> anchor); Header: <flex.h=>flex> Returns: Size in bytes, This function finds the size of the memory block whose anchor is given.DATA'float.h The \<float.h> header declares many macros which give information about the limits of floating point variables. #Table 10 16 <FLT_ROUNDS> <FLT_RADIX> <FLT_MANT_DIG> <DBL_MANT_DIG> <LDBL_MANT_DIG> <FLT_DIG> <DBL_DIG> <LDBL_DIG> <FLT_MIN_EXP> <DBL_MIN_EXP> <LDBL_MIN_EXP> <FLT_MIN_10_EXP> <DBL_MIN_10_EXP> <LDBL_MIN_10_EXP> <FLT_MAX_EXP> <DBL_MAX_EXP> <LDBL_MAX_EXP> <FLT_MAX_10_EXP> <DBL_MAX_10_EXP> <LDBL_MAX_10_EXP> <FLT_MAX> <DBL_MAX> <LDBL_MAX> <FLT_EPSILON> <DBL_EPSILON> <LDBL_EPSILON> <FLT_MIN> <DBL_MIN> <LDBL_MIN> #EndTableDATA�floor Syntax: double �oor (double x); Header: <math.h=>math> Returns: The smallest integer equal to or less than x. This function calculates the ��oor� of the given value. This is the smallest integer not greater than x. Basically, if x is an integer value then the function returns x, otherwise it returns the next lowest integer. Note that the result is returned as a double, even though it is an integer value.DIR$llP�F�����":DIG��F���"��">EPSILON��F���:��"�MANT_DIGX�F����ļ"�MAX��F���s��"�MAX_10_EXPx�F���:��"�MAX_EXP��F���gԼ"�MIN��F���:��"�MIN_10_EXP�F���J��"�MIN_EXP��F������"<RADIX�F������"=ROUNDSDATA:FLT_DIG This macro is defined in <float.h=>float>.DATA>FLT_EPSILON This macro is defined in <float.h=>float>.DATA�FLT_MANT_DIG This macro is defined in <float.h=>float>. It gives the number of digits in the mantissa of a variable of type 'float'.DATA�FLT_MAX This macro is defined in <float.h=>float>. It gives the maximum positive value that can be stored in a variable of type 'float'.DATA�FLT_MAX_10_EXP This macro is defined in <float.h=>float>. It gives the maximum base 10 exponent a variable of type 'float' can contain.DATA�FLT_MAX_EXP This macro is defined in <float.h=>float>. It gives the maximum exponent a variable of type 'float' can contain.DATA�FLT_MIN This macro is defined in <float.h=>float>. It gives the minimum positive value that can be stored in a variable of type 'float'.DATA�FLT_MIN_10_EXP This macro is defined in <float.h=>float>. It gives the minimum base 10 exponent a variable of type 'float' can contain.DATA�FLT_MIN_EXP This macro is defined in <float.h=>float>. It gives the minimum exponent a variable of type 'float' can contain.DATA<FLT_RADIX This macro is defined in <float.h=>float>.DATA=FLT_ROUNDS This macro is defined in <float.h=>float>.DATA+fmod Syntax: double fmod (double x, double y); Header: <math.h=>math> Returns: The remainder of x/y. This function calculates the floating point remainder of x/y. Formally this is defined as x�- (i * y), where i is an integer such that the result has the same sign as x and is less than y.DATA�DeskLib:Font.h Version: 1.01 (22 May 1992) #line This header declares functions and types for calling the Font Manager. Functions: #indent 4 #Table 12 22 <Font_CacheAddr> <Font_Caret> <Font_CharBBox> <Font_ConverttoOS> <Font_Converttopoints> <Font_CurrentFont> <Font_FindCaret> <Font_FindCaretJ> <Font_FindFont> <Font_FutureFont> <Font_ListFonts> <Font_LoseAllFonts> <Font_LoseFont> <Font_Paint> <Font_ReadDefn> <Font_ReadInfo> <Font_ReadScaleFactor> <Font_ReadThresholds> <Font_SetFont> <Font_SetFontColours> <Font_SetPalette> <Font_SetThresholds> <Font_StringBBox> <Font_StringWidth> #EndTable #indent Types: #indent 5 #Table columns 3 <font_handle> <font_defn> <font_info> <font_string> <font_colours> <font_state> <font_thresholds> #EndTableDIR$@@�F�����$|!Root�F����լ$�_tree�F���"�Z$�ABSLF����j�$�action_on_bitmap�F�����H&:array$F�����$_BlueGun�F���G)%�CacheAddr F���g�H#�cacheaddress� F����H#�CaretLF����I#8CharBBox�F���c2*%�colours$F���,I#�ConverttoOSF���Z?I#Converttopoints F����HI#�current�F����Q)%�CurrentFont�F����"�$defF����+*%HdefnPF����YI#�findPF����sI#�FindCaret�F���@�I#gFindCaretJDF����c)%�FindFont<F���8�I#futureL F����k)%!FutureFontp!F���� �$aGreenGun�!F�����H#gh<%F���r"*%�handle�%F����<�$�info�&F���x�Z$�JUSTIFYX'F���d�I#$list|)F�����)%4ListFonts�+F���ϯI#�lose�,F�����)%�LoseAllFonts�-F�����)%�LoseFontt.F���u�Z$�OSCOORDS,/F�����I#�output_size0F��� �I#�output_to_buffer2F����;Y$youtput_to_null|4F��� EY$�output_to_screend5F���.y�+}Paint�8F����Y$readdef�:F���5�)%�ReadDefn�=F����Y$ReadInfo�?F���+�Y$^ReadScaleFactorAF���'�Y$lReadThresholdsxBF�����$]RedGun�BF���w�Z$�RUBOUT�CF����Y$1setcolour�EF����Z$WSetFontGF����)%LSetFontColoursdIF���J&Z$�SetPalette�KF���,AZ$�setscalefactor�LF����LZ$YSetThresholds4NF���9\�$�state�OF���"G�$-string(QF���x]Z$|StringBBox�RF����*%�StringWidth�UF���2~Z$�strwidthDXF����e�$�threshold�XF����7*%�thresholds�YF����hU&sTLDATA|font This type is defined in <font.h=>font_h>. It is used to hold a font handle. It is actually defined as an /int/.DATA�font__tree This variable is declared in <fontlist.h=>fontlist>. It is a pointer to the font tree used by the function <fontlist_list_all_fonts>.DATA�font_ABS This macro is defined in <font.h=>font_h>. It is the value of the bit used to indicate in the paint options that absolute coordinates are used. It is defined as 0x04.DATA�font_action_on_bitmap This enumerated type is defined in <font.h=>font_h> as follows: \{ font_CONVERT, font_IGNORE, font_ERROR }DATA:font_array This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding a font array used when loading templates. It is defined as the following structure: \{ char fonts[256]; } The array contains a count, for each font handle (0-255) of how many times it has been found with <Font_FindFont>.DATA_font_BlueGun The macro {*}font_BlueGun{*} is defined in <font.h=>font_h> as 0x01000000.DATA�Font_CacheAddr Syntax: <os_error> *Font_CacheAddr (int *version, int *cacheused, int *cachesize); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function finds the version number, font cache size and amount used. The values are returned in the integers whose pointers are given. /version/ is given multiplied by 100, so version 2.42 is returned as 242.DATA�font_cacheaddress Syntax: <os_error> *font_cacheaddress (int *version, int *cacheused, int *cachesize); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function finds the version number, font cache size and amount used. The values are returned in the integers whose pointers are given. /version/ is given multiplied by 100, so version 2.42 is returned as 242.DATA�Font_Caret/font_caret Syntax: <os_error> *Font_Caret (int col, int height, int flags, int x, int y); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function is called {*}font_caret{*} in Desktop C. Sets the colour, height (in OS coordinates) and position of the caret. If bit 4 of /flags/ is set, then (x,y) is in millipoints, else it is OS units.DATA8Font_CharBBox/font_charbbox Syntax: (DeskLib) <os_error> *Font_CharBBox (<font_handle> f, char c, int flags, <font_info> *info); (Desktop C) <os_error> *font_charbbox (<font=>font_> f, char c, int flags, <font_info> *info); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function gets the bounding box of a character into /info/. On entry, /f/ contains the font handle, /c/ the character to be checked and if /flags/ bit 4 is set the coordinates are in OS units, else they are in millipoints.DATA�font_colours This type is defined in <DeskLib:Font.h=>Font>. It is a structure used for holding font colours: \{ int background, foreground; }DATA�Font_ConverttoOS/font_converttoos Syntax: <os_error> *Font_ConverttoOS (int x, int y, int *xout, int *yout); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function converts internal coordinates (x,y) in millipoints, to OS units (using the current scale factor) and places the result in (*xout,*yout). This function may also be accessed as {*}Font_ConvertToOS{*} in DeskLib. It is called {*}font_converttoos{*} in Desktop C.DATAFont_Converttopoints/font_converttopoints Syntax: <os_error> *Font_Converttopoints (int x, int y, int *xout, int *yout); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function converts OS units (x,y), to internal coordinates in millipoints (using the current scale factor) and places the result in (*xout,*yout). This function may also be accessed as {*}Font_ConvertToPoints{*} in DeskLib. It is called {*}font_converttopoints{*} in Desktop C.DATA�font_current Syntax: <os_error> *font_current (<font_state> *state); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function reads the current font handle and colours into /state/.DATA�Font_CurrentFont Syntax: <os_error> *Font_CurrentFont (<font_state> *state); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function reads the current font handle and colours into /state/.DATAfont_def This type is defined in <font.h=>font_h>. It is a structure used for holding information about a font: \{ char name[16]; int xsize, ysize, xres, yres; int usage, age; } /xsize/ and /ysize/ are in 1/16ths of a point. /xres/ and /yres/ are in dots per inch.DATAHfont_defn This type is defined in <DeskLib:Font.h=>Font>. It is a structure used for holding information about a font: \{ char name[128]; /* May be CR terminated */ int xsize, ysize, xres, yres; int age, usage; } /xsize/ and /ysize/' are in 1/16ths of a point. /xres/ and /yres/ are in dots per inch.DATA�font_find Syntax: <os_error> *font_find (char *name, int xsize, int ysize, int xres, int yres, <font=>font_> *handle); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function returns a handle (in {/}*handle{/}) to a font whose identifier, point size, and screen resolution are given (in {/}name{/}, {/}xsize{/}, {/}ysize{/}, {/}xres{/} and {/}yres{/}). It also sets it as the current font for use by <font_paint> etc. When you no longer need the font, call <font_lose>.DATA�Font_FindCaret/font_findcaret Syntax: <os_error> *Font_FindCaret (<font_string> *string); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. Called {*}font_findcaret{*} in Desktop C. On entry, {/}string->s{/} contains a string and (string->x,string->y) contains the offset in millipoints. This function finds the character nearest to the given offset and returns info about it in the /string/ block: {/}string->term{/} contains the index into the string, {/}string->split{/} gives the number of printable characters before that point, and {/}string->s{/} now points to that character.DATAgFont_FindCaretJ Syntax: <os_error> *Font_FindCaretJ (<font_string> *str, int xoff, int yoff); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function is similar to <Font_FindCaret>, but /xoff/ and /yoff/ contains justification offsets. It is called {*}font_findcaretj{*} in Desktop C.DATA�Font_FindFont Syntax: <os_error> *Font_FindFont (<font_handle> *font, char *name, int xsize, int ysize, int xres, int yres); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function returns a handle (in {/}*font{/}) to a font whose identifier, point size, and screen resolution are given in /name/, /xsize/, /ysize/, /xres/ and /yres/. It also sets it as the current font for use by <Font_Paint> etc. When you no longer need the font, call <Font_LoseFont>.DATAfont_future Syntax: <os_error> *font_future (<font_state> *state); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function reads what the state after the next call to <font_paint> would be. You must first have called <font_strwidth>.DATA!Font_FutureFont Syntax: <os_error> *Font_FutureFont (<font_state> *state); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function reads what the state after the next call to <Font_Paint> would be. You must first have called <Font_StringWidth>.DATAafont_GreenGun The macro {*}font_GreenGun{*} is defined in <font.h=>font_h> as 0x00010000.DATAgfont.h This header declares functions allowing access to the RISC OS font facilities. Functions: #table 14 24 <font_cacheaddress> <font_caret> <font_charbbox> <font_converttoos> <font_converttopoints> <font_current> <font_find> <font_findcaret> <font_findcaretj> <font_future> <font_list> <font_lose> <font_output_size> <font_output_to_buffer> <font_output_to_null> <font_output_to_screen> <font_paint> <font_readdef> <font_readinfo> <font_readscalefactor> <font_readthresholds> <font_setcolour> <font_setfont> <font_setpalette> <font_setscalefactor> <font_setthresholds> <font_stringbbox> <font_strwidth> #endTable #Table 9 24 Macros: <font_JUSTIFY> <font_RUBOUT> <font_ABS> <font_OSCOORDS> <font_BlueGun> <font_GreenGun> <font_RedGun> Types: <font=>font_> <font_def> <font_info> <font_string> <font_state> <font_threshold> <font_action_on_bitmap> #EndTableDATA�font_handle This type is defined in <DeskLib:Font.h=>Font>. It is used to hold a font handle. It is actually defined as an /int/.DATA�font_info This type is defined in <DeskLib:Font.h=>Font> and <font.h=>font_h> (Desktop C). It is a structure used for holding information about a font's bounding box: \{ int minx, miny, maxx, maxy; }DATA�font_JUSTIFY This macro is defined in <font.h=>font_h>. It is the value of the bit used to indicate in the paint options that text should be justified. It is defined as 0x01.DATA$font_list Syntax: <os_error> *font_list (char *name, int *count); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function calls the <SWI Font_ListFonts=>SWI:Font_ListFonts> (in RISC OS 2 mode). /name/ should point to a buffer for the font name, and {/}*count{/} should initially contain 0. After each call, a font name will be returned in /name/ and {/}*count{/} will be incremented; so by successive calls a complete font list can be built up. {/}*count{/} contains -1 after the last font name has been read.DATA4Font_ListFonts Syntax: <os_error> *Font_ListFonts (char *name, int *count); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function calls the SWI <Font_ListFonts=>SWI:Font_ListFonts> (in RISC OS 2 mode). /name/ should point to a buffer for the font name, and {/}*count{/} should initially contain 0. After each call, a font name will be returned in /name/ and {/}*count{/} will be incremented; so by successive calls a complete font list can be built up. {/}*count{/} contains -1 after the last font name has been read.DATA�font_lose Syntax: <os_error> *font_lose (<font=>font_> f); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function tells the Font Manager that a particular font is no longer required.DATA�Font_LoseAllFonts Syntax: void Font_LoseAllFonts (<font_array> *fonts); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function calls <Font_LoseFont> for all fonts in the font usage array /fonts/.DATA�Font_LoseFont Syntax: <os_error> *Font_LoseFont (<font_handle> font); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function tells the Font Manager that a particular font is no longer required.DATA�font_OSCOORDS This macro is defined in <font.h=>font_h>. It is the value of the bit used to indicate in the paint options that OS coordinates are used. It is defined as 0x10.DATA�font_output_size Syntax: <os_error> *font_output_size (<size_t> *size_ptr); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This causes returns the size of Draw file produced so far in {/}*size_ptr{/}.DATA�font_output_to_buffer Syntax: <os_error> *font_output_to_buffer (<drawmod_buffer> *buff_ptr, <BOOL> add_hints, BOOL output_skeleton, <font_action_on_bitmap> action); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This causes further calls to <font_paint> to be output to the buffer, as if they were a draw path. If {/}add_hints{/} is <TRUE> then hints are added, if {/}output_skeleton{/} is TRUE then something else happens (but it's not in the PRM!).DATAyfont_output_to_null Syntax: <os_error> *font_output_to_null (<BOOL> add_hints, BOOL output_skeleton, <font_action_on_bitmap> action); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This causes further calls to <font_paint> to be output to nowhere at all, as if they were a draw path. Subsequently calling the function <font_output_size> will return the amount of buffer space used (so you can do it for real with the correct buffer size). If {/}add_hints{/} is <TRUE> then space is allocated for hints as well, if {/}output_skeleton{/} is TRUE then something else happens (but it's not in the PRM!).DATA�font_output_to_screen Syntax: <os_error> *font_output_to_screen (void); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This causes further calls to <font_paint> to be output to the screen as normal.DATA}Font_Paint/font_paint Syntax: <os_error> *Font_Paint (char *str, int <options=>SWI:font_paint0>, int x, int y); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function is called {*}font_paint{*} in Desktop C. This function writes a string to the screen (in the RISC OS 2 way) using the currently selected font (select with <Font_SetFont>), at position (x,y). Certain control characters in /str/ have an effect as follows: #indent 1;tab 9,low,middle,high Move H position 11,low,middle,high Move V position 17,colour Change colour 18,back,fore,offset Change colours 25,pos,thickness Underline on/off 26,fonthandle Change font 9 and 11 have three-byte values, in millipoints. 17 changes just one colour (as <VDU 17=>VDU.17>). 18 changes both colours and anti-aliasing. 25 - pos and thickness in 1/256ths of font size.DATAfont_readdef Syntax: <os_error> *font_readdef (<font=>font_> f, <font_def> *defn); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function returns a number of details about a font. /f/ contains the font handle. On exit, {/}defn->name{/} contains the font name, {/}defn->usage{/} gives the number of times that <font_find> has found the font, minus the number of times that <font_lose> has been used on it. {/}defn->age{/} is the number of font acceses made since this one was accessed.DATA�Font_ReadDefn Syntax: <os_error> *Font_ReadDefn (<font_handle> font, <font_defn> *defn); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function returns a number of details about a font. /font/ contains the font handle. On exit, {/}defn->name{/} contains the font name, {/}defn->usage{/} gives the number of times that <Font_FindFont> has found the font, minus the number of time that <Font_LoseFont> has been used on it. {/}defn->age{/} is the number of font accesses made since this one was accessed. Note that the font name returned by this function is CR-terminated, so use the <DeskLib:Str=>Str_DL> functions to read it.DATAFont_ReadInfo/font_readinfo Syntax: (DeskLib) <os_error> *Font_ReadInfo (<font_handle> font, <font_info> *info); (Desktop C) <os_error> *font_readinfo (<font=>font_> f, <font_info> *info); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function returns the bounding box in OS units of the font whose handle is given in /font/. The bounding box is the minimal area covering every character in the font. You should use <Font_CharBBox> in preference, so Acorn say.DATA^Font_ReadScaleFactor Syntax: <os_error> *Font_ReadScaleFactor (int *xscale, int *yscale); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. Called {*}font_readscalefactor{*} in Desktop C. This function reads the current scale factors in millipoints/OS unit. The default value is 400.DATAlFont_ReadThresholds Syntax: (DeskLib) <os_error> *Font_ReadThresholds (<font_thresholds> *t); (Desktop C) <os_error> *font_readthresholds (<font_threshold> *t); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function reads the list of threshold values for painting and stores them in /t/.DATA]font_RedGun The macro {*}font_RedGun{*} is defined in <font.h=>font_h> as 0x00000100.DATA�font_RUBOUT This macro is defined in <font.h=>font_h>. It is the value of the bit used to indicate in the paint options that a rub-out box is needed. It is defined as 0x02.DATA1font_setcolour Syntax: <os_error> *font_setcolour (<font=>font_> f, int back, int fore, int offset); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function sets the current font colours (and font if {/}f!=0{/}). The colours for /back/ and /fore/ are logical colours. /offset/ sets the offset from /fore/ to the _real_ foreground colour. Values between /fore/ and {/}fore+offset{/} are used for anti-aliasing. eg To have colour 0 as background, and use 1-7 for anti-aliasing: {fCode;align centre}font_setcolour(0,0,1,6);DATAWFont_SetFont/font_setfont Syntax: (DeskLib) <os_error> *Font_SetFont (<font_handle> font); (Desktop C) <os_error> *font_setfont (<font=>font_> f); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function sets up the font to be used by future calls to the Font Manager.DATALFont_SetFontColours Syntax: <os_error> *Font_SetFontColours (<font_handle> font, int back, int fore, int offset); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function sets the current font colours (and font if {/}font{/}!=0). The colours for /back/ and /fore/ are logical colours. /offset/ sets the offset from /fore/ to the _real_ foreground colour. Values between /fore/ and {/}fore+offset{/} are used for anti-aliasing. eg To have colour 0 as background, and use 1-7 for anti-aliasing: {fCode;align centre}Font_SetFontColours(0,0,1,6);DATA�Font_SetPalette/font_setpalette Syntax: <os_error> *Font_SetPalette (int lback, int lfore, int offset, int pback, int pfore); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This is called {*}font_setpalette{*} in Desktop C. This function sets the anti-alias palette. It should not be used within the Desktop. The first three parameters are those used in <Font_SetFontColours>/<font_setcolour>. /pback/ and /pfore/ are words in the form 0xBBGGRR00 setting the physical background and foreground colours. The palette entries specified are altered to contain a suitable palette for anti-aliasing.DATA�font_setscalefactor Syntax: <os_error> *font_setscalefactor (int x, int y); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function sets the scale factors used by the font manager.DATAYFont_SetThresholds Syntax: (DeskLib) <os_error> *Font_SetThresholds (<font_thresholds> *t); (Desktop C <os_error> *font_setthresholds (<font_threshold> *t); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function sets the list of threshold values for painting from /t/.DATA�font_state This type is defined in <DeskLib:Font.h=>Font> and <font.h=>font_h> (Desktop C). It is a structure used for holding font information. It is defined in DeskLib as: \{ <font_handle> font; <font_colours> colour; int offset; /* anti-alias */ } and in Desktop C as: {tab} \{ <font=>font_> f; int back_colour; int fore_colour; int offset; } See <Font_SetFontColours> for a description of /offset/.DATA-font_string This type is defined in <DeskLib:Font.h=>Font> and <font.h=>font_h> (Desktop C). It is a structure used for holding a font string and caret information: \{ char *s; /* string */ int x; /* in millipoints */ int y; int split; int term; /* index into s */ }DATA|Font_StringBBox/font_stringbbox Syntax: <os_error> *Font_StringBBox (char *str, <font_info> *info); Header: <DeskLib:Font.h=>Font> <font.h=>font_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. Called {*}font_stringbbox{*} in Desktop C. This function gets the bounding box of /str/ into /info/. The string can contain <Font_Paint> style control sequences..DATA�Font_StringWidth Syntax: <os_error> *Font_StringWidth (<font_string> *string); Header: <DeskLib:Font.h=>Font> Returns: Pointer to error, or <NULL> if none. This function calculates how wide a string would be under limits. {/}(string->x,string->y){/} contains the maximum width and height. {/}string->split{/} contains the character at which to split the string (eg 32). {/}string->term{/} contains the index of the terminator. On exit, {/}(string->x, string->y){/} contains the x offset after printing the string. {/}string->split{/} contains the number of split characters, and {/}string->s{/} and {/}string->index{/} are updated to point at the terminating position. Control sequences as in <Font_Paint> may be used.DATA�font_strwidth Syntax: <os_error> *font_strwidth (<font_string> *string); Header: <font.h=>font_h> Returns: Pointer to error, or <NULL> if none. This function calculates how wide a string would be under limits. (string->x,string->y) contains the maximum width and height. {/}string->split{/} contains the character at which to split the string (eg 32). {/}string->term{/} contains the index of the termination. On exit, (string->x, string->y) contains the x offset after printing the string. {/}string->split{/} contains the number of split characters, and {/}string->s{/} and {/}string->index{/} are updated to point at the terminating position. Control sequences as in <font_paint> may be used.DATA�font_threshold This type is defined in <font.h=>font_h>. It is a structure used for holding font thresholds: \{ char offset; char thresholds[15]; }DATA�font_thresholds This type is defined in <DeskLib:Font.h=>Font>. It is a structure used for holding font thresholds: \{ char offset; char thresholds[15]; }DATAsTimsLib:Font.h This header declares no functions, variables, macros or types. Instead, it <#undef=>undef>s the Font_...macros defined by Desktop C's <swis.h=>swis>, and then #includes "<DeskLib:Font.h=>Font>". This avoids clashes between the Font_... names defined in both headers. Basically, if you are using swis.h, then include this instead of DeskLib:Font.h.DATAfontlist.h This header declares functions for creating linked lists of all the available fonts. Functions: {align centre} <fontlist_list_all_fonts> <fontlist_free_font_tree> {align} Type: {align centre} <fontlist_node> {align} Variable: {align centre} <font__tree>DIR$���\F���f��$�free_font_tree�]F���6��$list_all_fonts�^F���ì$node�aF������$�StructDDATA�fontlist_free_font_tree Syntax: void fontlist_free_font_tree (<fontlist_node> *font_tree); Header: <fontlist.h=>fontlist> This function recursively frees the memory used by a font tree.DATAfontlist_list_all_fonts Syntax: <fontlist_node> *fontlist_list_all_fonts (<BOOL> system); Header: <fontlist.h=>fontlist> Returns: Pointer to start of font tree. This function reads in the font list into a font tree. If /system/ is <TRUE> then it includes *System font*.DATAfontlist_node This type is defined in <fontlist.h=>fontlist>. It contains a single part of a font tree. It is defined as the following structure: \{ char name[40]; fontlist_node *son; fontlist_node *brother; int flag; } /son/ points to the son of this node eg the son of *Trinity* is *Medium*. /brother/ points the brother of this node eg the brother of *Trinity* might be *Corpus*, the brother of *Medium* might be *Bold*. If /flag/ is TRUE, then this is a valid font. This would be set for *Medium* but not *Trinity*. The font name is found by adding the names from the first node to this one eg {*}Trinity.Medium{*}. A typical font structure might be: #draw c,f fontlist_StructD #below This is the structure described above.DATA�Draw�Draw ���@|�4Homerton.MediumHomerton.Medium.ObliqueX�?��� ���@|� <����pP����p���sons@���P���������brothers<��`[�%�x�����`bTrinity<����`4���������Corpus<�`a���x���Ѕ`bMedium<����� ����Ѕ��Medium<����2���Ѕ�Bold<�����@����Ѕ��Bold<@A`a@|�x���?`bItalic<@A�@|2���?�Italic�� �:M� `8< �:M�B 8<�8< �:M��8<�l����<ȾB �Ⱦ�<Ⱦ�<������Ⱦ���J�X� `��J��[B ��[��[i��J��[lԏ�[��X�B ��X����[Տ�[ԏW���X���>�djx�u `hg�djx�uB hg�uhg�djxNmhg�ul�>�i�g�pB �>�p�g�p�g�i�>�i�>�p��> �jx� `hg �jx�B hg�hg �jx��hg�l�>���g��B �>���g���g���>���>��� ��d�1�u `� �d�1�uB � �u� �d�1Nm� �ul ��i� �pB ��p� �p� �i ��i ��p� ���1�. `� ��1�.B � �.� ��1n&� �.l ��"� �)B ��)� �)� �" ��" ��)���k6,��X `��k6,��@B ,��@���@�k6,��@l�h@��XB ��X�i@�h@��X��X�����,�(� `����,�߲B ,�߲��߲���,�߲l����(�B �(��������'��(�������x= `������B ������I�����l�����x=B ��x=��������w=��x=DATA fontrec This type is defined in <drawftypes.h=>drawftypes> as a type capable of holding a font record (I think). It is defined as the following structure: \{ int typeface; int typesizex; int typesizey; <draw_coltyp> textcolour; <draw_coltyp> background; }DATA�fontselect.h This header provides a consistent interface to font choosing. Functions: #indent 3;table columns 2 <fontselect_init> <fontselect_closedown> <fontselect_closewindows> <fontselect_selector> <fontselect_attach_menu> #endtable;below {indent} Macros: #indent 4;table columns 2 <fontselect_REOPEN> <fontselect_SETTITLE> <fontselect_SETFONT> #endtable;below {indent} Types: {align centre} <fontselect_fn>DIR$@@XqF���I�$Mattach_menu�rF���L&�$�closedownxsF����)�$�closewindows4tF����^�$fnPuF����"�$�init vF���=N�$fREOPEN�vF���b4�$<selector�xF����R�$gSETFONT,yF���NP�$hSETTITLEDATAMfontselect_attach_menu Syntax: <BOOL> fontselect_attach_menu (<menu> mn, <event_menu_proc> process, void *handle); Header: <fontselect.h=>fontselect> Returns: <TRUE> if successful. This function attaches a menu /mn/ to all four font selector windows. /process/ is called to handle menu selections with the specified handle.DATA�fontselect_closedown Syntax: void fontselect_closedown (void); Header: <fontselect.h=>fontselect> This function closes the font selector windows and frees all memory used by the fontselect system.DATA�fontselect_closewindows Syntax: void fontselect_closewindows (void); Header: <fontselect.h=>fontselect> This function closes the font selector windows and unattaches any handlers.DATAfontselect_fn This type is defined in <fontselect.h=>fontselect>. It does not seem to be documented and I wonder if Acorn know what it's used for? It is a function of the form: {fCode;align centre}<BOOL> myfunc (char *name, double width, double height, <wimp_eventstr> *e);DATA�fontselect_init Syntax: int fontselect_init (void); Header: <fontselect.h=>fontselect> Returns: <TRUE> if successful. This function reads in the font list and initialises the font selector window.DATAffontselect_REOPEN This macro is defined in <fontselect.h=>fontselect>. It is defined as 0x001.DATA<fontselect_selector Syntax: int fontselect_selector (char *title, int flags, char *name, double width, double height, <fontselect_fn> uk_icon); Header: <fontselect.h=>fontselect> Returns: Window handle, or 0 if unsuccessful. This function opens or reopens the font chooser window. Flags:{tab} � If <fontselect_SETFONT> is set then the font name, width and height are set appropriately. � If <fontselect_SETTITLE> is set then the title is set appropriately. � If <fontselect_REOPEN> is set then the window will only open if it already is open (use for updating).DATAgfontselect_SETFONT This macro is defined in <fontselect.h=>fontselect>. It is defined as 0x004.DATAhfontselect_SETTITLE This macro is defined in <fontselect.h=>fontselect>. It is defined as 0x002.DATA#fopen Syntax: <FILE> *fopen (char *filename, char *mode); Header: <stdio.h=>stdio> Returns: Pointer to the stream, or a null pointer if the file cannot be opened. This function attempts to open the file specified in /filename/ for random access according to the <mode=>file_mode_>.DIR$((�zF����~�"�MAXDATA�FOPEN_MAX #Parent stdio The macro FOPEN_MAX is defined in <stdio.h=>stdio> as the number of files that can be opened simultaneously. It may be possible to open more files than this number, but data may be lost. In Easy�C it is defined as 8.DATA)for This command defines an interative loop. It has the general form: {fCode;align centre}for (\<init>; \<cond>; \<iter>) \<statement>;{f;align} \<init> is an initialisation statement. It is called once when the for statement is encountered. More than one statement can be used, separated by commas. \<cond> is a condition. It is evaluated each time before executing the \<statement>. If it evaluates to 0, or false, then the \<statement> is not executed and the next command is executed - the for loop is finished. \<iter> is executed after each time the loop is executed. More than one statement can be used, separated by commas. \<statement> is the command executed within the loop. It can be a compound statement ie several statements enclosed in braces \{} (in which case there is no final semicolon), or it can be nothing ie all the work is done in the for statement. As an example, this loop counts from 1 to 10, printing each number: {fCode;align centre}for (i=1;i\<=10;i++) <printf>("%d\n",i);{f;align} Much more complex loops are possible!DIR$,,0�F���2��"�!RootDATA�Formatted I/O Functions #Parent stdio These functions read and write, from any stream, formatted sequences of values. #Table 3 16 <printf> <fprintf> <sprintf> <scanf> <fscanf> <sscanf> <vfprintf> <vprintf> <vsprintf> #EndTableDIR$((D�F������"�tDATA�fpos_t The type {/}fpos_t{/} is defined in <stdio.h=>stdio> as an object capable of holding any file position. In Easy C it is defined as a /long int/.DATA}fprintf Syntax: int fprintf (<FILE> *stream, char *format, ...); Header: <stdio.h=>stdio> Returns: The number of characters written, or a negative value if there was an error. This function writes output to the stream under control of the <format string=>pform_>. If there are more arguments than conversion specifications, the extra arguments are evaluated but not used.DATA�fputc Syntax: int fputc (int c, <FILE> *stream); Header: <stdio.h=>stdio> Returns: c, or <EOF> if there is an error. This function writes the character in /c/ to the stream specified.DATA�fputs Syntax: int fputs (char *str, <FILE> *stream); Header: <stdio.h=>stdio> Returns: <EOF> if there is an error. This function writes the string pointed to by /str/ to the stream specified. The null terminator is not written.DATA3fread Syntax: <size_t> fread (void *ptr, size_t size, size_t nobj, <FILE> *stream); Header: <stdio.h=>stdio> Returns: The number of objects successfully read. This function reads /nobj/ objects of size specified by /size/ into the array pointed to by /ptr/, from the stream pointed to by /stream/.DATA�free Syntax: void free (void *ptr); Header: <stdlib.h=>stdlib> This function frees memory allocated by either <calloc>, <malloc> or <realloc>. This memory can then be re-used on another occasion by the program.DATA~FreeDbug Syntax: void FreeDbug (void *p,char *filename, int line); Header: <TimsLib:MallocDbug.h=>MallocDbug> This function is identical to <free>(), but remembers the file and line at which the call occurred. This function will normally be called transparently. The macro {*}freedbug{*} is defined to call this function in debug builds, and normal free in release builds.DATAfreeproc The type *freeproc* is defined in <kernel.h=>kernel> as a procedure which can be used to free memory allocated by an <allocproc>. It is defined as: {fCode;align centre}void freeproc (void *);{f;align} The parameter passed is the pointer to the space to be freed.DATA�freopen Syntax: <FILE> *freopen (char *filename, char *mode, FILE *stream); Header: <stdio.h=>stdio> Returns: A null pointer if it fails, otherwise a pointer to the same stream. This function opens the file specified in /filename/, according to the <mode=>file_mode_>, first closing the file previously associated with that stream. If the file cannot be closed properly it is abandoned and the new file is still opened.DATAFfrexp Syntax: double frexp (double x, int *exp); Header: <math.h=>math> Returns: y, where x = y * (1 \<\< *exp). This function splits the value x into a normalised fraction (the result, y) and a power of two (stored in the int pointed to by exp). If x is zero then both *exp and y will be zero, else 0.5 \< y \< 1.0.DATA�fscanf Syntax: int fscanf (<FILE> *stream, char *format, ...); Header: <stdio.h=>stdio> Returns: Number of successful inputs, or <EOF> if there was an input error. This function reads input from the stream under control of the <format string=>sform_>. Each subsequent argument is a pointer to a object in which to place the result. If there are more arguments than conversion specifications, the extra arguments are evaluated but not used.DATAfseek Syntax: int fseek (<FILE> *stream, long int pos, int from); Header: <stdio.h=>stdio> Returns: Zero if successful. This function sets the file position indicator for the file pointed to by stream. The position is set using a combination of /pos/ and /from/. /pos/ gives the offset from the position set in /from/. /from/ should be either <SEEK_SET>, <SEEK_CUR> or <SEEK_END>. For files not opened in binary mode, /pos/ should be either zero, or a value returned by <ftell> with /from/ equal to SEEK_SET.DATAdfsetpos Syntax: int fsetpos (<FILE> *stream, <fpos_t> *pos); Header: <stdio.h=>stdio> Returns: Zero if successful. This function sets the file pointer, for the file pointed to by /stream/, to the value stored in /pos/. This value should have been previously stored by the <fgetpos> function. If there is an error, the reason is stored in <errno>.DATA�ftell Syntax: long int ftell (<FILE> *stream); Header: <stdio.h=>stdio> Returns: File pointer for stream, or -1L if there is an error. This function reads the file position indicator for the file pointed to by /stream/. For binary files this is the number of characters from the beginning of the file, but for text files it could be anything. If there is an error, the reason is stored in <errno>.FREE)��te Syntax: <size_t> fread (void *ptr, size_t size, size_t nobj, <FILE> *stream); Header: <stdio.h=>stdio> Returns: The number of objects written. This function writes /nobj/ objects of size specified by /size/ from the array pointed to by /ptr/, into the file pointed to by /stream/.DIR$xx(�F����oZ&�GBoden��F���zU&�GColx�F���k��"�getc`�F�����"/getchar��F���V��"KgetenvܝF���H��"7gets�F���jR*%�GFX�F���X��/�GFX_�F���X��"gmtime �F���}�+%:Handler\�F��� ��/PHandler_�F���$�heap��F���/lheap_��F������$�help��F���K��/�help_��F���[SV&�HexDigit��F�����+%Hourglass��F������/�Hourglass_��F���o��/(HUGE_DATA�Gareth Boden FidoNet email: 2:250/225.10 Internet email: gdb20@cam.ac.uk Snail-mail: {align centre}45 Cedar Street SOUTHPORT PR8 6NQ U.K.DATA�GCol Syntax: GCol (int action, int colour); Header: <TimsLib:GFX.h=>GFX_TL> This function-like macro uses <Wimp_SetColour> to set the current colour number and <action=>VDU:18a>.DATA�getc Syntax: int getc (<FILE> *stream); Header: <stdio.h=>stdio> Returns: Character read, or <EOF> for an error. This function reads a single character from the stream pointed to by /stream/ and returns it as an /int/. It is virtually identical to <fgetc>. The only difference is that the function might be a macro and the argument may be evaluated more than once so you can't use an expression with side effects. For example: getc(f[i++]) may cause i to be incremented twice.DATA/getchar Syntax: int getchar (void); Header: <stdio.h=>stdio> Returns: Character read, or <EOF> for an error. This function reads a single character from <stdin>. It is identical to <getc>(stdin). It may be implemented as a macro so be careful of using expressions which modify other variables.DATAKgetenv Syntax: char *getenv (char *name); Header: <stdlib.h=>stdlib> Returns: A pointer to the variable contents. This reads the contents of an environment variable, whose name is given. In DOS it reads the DOS environment variables eg /PATH/, whereas in RISC OS it reads the system variable eg {/}Obey$Dir{/}. When reading the variables it converts numbers to strings and expands macros. You should not modify the returned string and it may be overwritten by subsequent calls to /getenv/. This function is equivalent to the SWI <OS_ReadVarVal=>SWI:OS_ReadVarVal>, with R4=3.DATA7gets Syntax: char *gets (char *str); Header: <stdio.h=>stdio> Returns: str, or a null pointer if there is an error. This function reads a string of characters from <stdin> into the string pointed to by /str/. Reading will terminate at a newline character or end-of-file. See also the function <fgets>.DATA�DeskLib:GFX.h Version: 0.70 (30 May 1994) #line This header declares function and macros for graphics manipulation. Functions: #Indent 7 #Table 3 16 <GFX_Plot> <GFX_Rectangle> <GFX_CLG > <GFX_VDU> <GFX_Write0> <GFX_WriteN> <GFX_Wait> #EndTable #indent 0 Function-like macros: #Indent 9 #Table 5 18 <GFX_Move> <GFX_MoveBy> <GFX_PlotPoint> <GFX_PlotPointBy> <GFX_Draw> <GFX_DrawBy> <GFX_RectangleFill> <GFX_Circle> <GFX_CircleFill> <GFX_GCOL> #EndTableDIR$����F���MJ+%�Circle��F���lQ+%�CircleFillx�F�����*%�CLG�F����7+%�Draw��F����=+%�DrawBy��F����W+%�GCOL��F���&+%�Move|�F����)+%�MoveBy@�F����^*%Plot\�F�����*%�plot_�F���F�*%oplotbmod_X�F�����*%�plotmod_D�F���.+%�PlotPoint�F���-3+%%PlotPointByD�F���f�*% RectangleT�F����C+%RectangleFilll�F����nU&UTLĹF����*%vVDU<�F���b+%WaitP�F���O+%�Write0(�F��� +%�WriteNDATA�GFX_Circle Syntax: void GFX_Circle (int x, int y, int r); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to draw a circle outline with centre {/}(x,y){/} and radius /r/, in the current graphics foreground colour.DATA�GFX_CircleFill Syntax: void GFX_CircleFill (int x,int y,int r); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to draw a filled circle with centre {/}(x,y){/} and radius /r/, in the current graphics foreground colour.DATA�GFX_CLG Syntax: void GFX_CLG (void); Header: <DeskLib:GFX.h=>GFX> This function clears the graphics window to the current background graphics colour.DATA�GFX_Draw Syntax: void GFX_Draw (int x, int y); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to draw a line in the current graphics foreground colour from the current graphics cursor position to {/}(x,y){/}.DATA�GFX_DrawBy Syntax: void GFX_DrawBy (int x, int y); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to draw a line in the current graphics foreground colour from the current graphics cursor position to a position {/}(x,y){/} units away.DATA�GFX_GCOL Syntax: GFX_GCOL (int action, int colour); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_VDU> to set the current graphics colour and <action=>VDU:18a>.DATA�GFX_Move Syntax: void GFX_Move (int x, int y); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to move the graphics cursor to the positon {/}(x,y){/}. Equivalent to <MOVE=>Basic:MOVE> in Basic.DATA�GFX_MoveBy Syntax: void GFX_MoveBy (int x, int y); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to move the graphics cursor from the curren position relatively by {/}(x,y){/}.DATAGFX_Plot Syntax: void GFX_Plot (int code, int x, int y); Header: <DeskLib:GFX.h=>GFX> This function does a plot command. It is the same as <PLOT=>Basic:PLOT> in Basic, or the SWI <OS_Plot=>SWI:OS_Plot>. /code/ is the <plot type=>gfx_plot_>, and /x/ and /y/ are coordinates.DATA�Plot Commands The following macros are defined in <DeskLib:GFX.h=>GFX>: Macro Code Meaning #line plot_SOLIDBOTH 0x00 Solid line including both end points plot_SOLIDEXFINAL 0x08 Solid line excluding the final point plot_DOTTEDBOTH 0x10 Dotted line incl. both end points, pattern restarted plot_DOTTEDEXFINAL 0x18 Dotted line excl. final point, pattern restarted plot_SOLIDEXINIT 0x20 Solid line excluding the initial point plot_SOLIDEXBOTH 0x28 Solid line excluding both end points plot_DOTTEDEXINIT 0x30 Dotted line excl. initial point, pattern continued plot_DOTTEDEXBOTH 0x38 Dotted line excl. both end points, pattern continued plot_POINT 0x40 Point plot plot_HORIZLINEFILLNB 0x48 Horizontal line fill (left & right) to non-background plot_TRIANGLEFILL 0x50 Triangle fill plot_HORIZLINEFILLB 0x58 Horizontal line fill (right only) to background plot_RECTANGLEFILL 0x60 Rectangle fill plot_HORIZLINEFILLF 0x68 Horizontal line fill (left & right) to foreground plot_PARALLELFILL 0x70 Parallelogram fill plot_HORIZLINEFILLNF 0x78 Horizontal line fill (right only) to non-foreground plot_FLOODTOBACK 0x80 Flood to non-background plot_FLOODTOFORE 0x88 Flood to foreground plot_CIRCLE 0x90 Circle outline plot_CIRCLEFILL 0x98 Circle fill plot_CIRCLEARC 0xA0 Circular arc plot_SEGMENT 0xA8 Segment plot_SECTOR 0xB0 Sector plot_BLOCK 0xB8 Block copy/move (has different <modifiers=>GFX_plotbmod_>) plot_ELLIPSE 0xC0 Ellipse outline plot_ELLIPSEFILL 0xC8 Ellipse fill plot_GRAPHICSCHAR 0xD0 Font printing (obsolete - don't use) plot_SPRITE 0xE8 Sprite plot Onto each of these can be added a <modifier=>GFX_plotmod_> which affects the way the command behaves.DATAoPlot Code Block Modifiers The following macros are defined in <DeskLib:GFX.h=>GFX> {wrap off} Macro Code Meaning #line plot_BMOVEREL 0 Move relative plot_BMOVERECTREL 1 Move rectangle relative plot_BCOPYRECTREL 2 Copy rectangle relative plot_BMOVEABS 4 Move absolute plot_BMOVERECTABS 5 Move rectangle absolute plot_BCOPYRECTABS 6 Copy rectangle absoluteDATA�Plot Code Modifiers The following macros are defined in <DeskLib:GFX.h=>GFX>. {wrap off} Macro Code Meaning #line plot_MOVECURSORREL 0 Move cursor relative plot_DRAWRELFORE 1 Plot relative in foreground plot_DRAWRELINVERSE 2 Plot relative in inverse plot_DRAWRELBACK 3 Plot relative in background plot_MOVECURSORABS 4 Move cursor absolute plot_DRAWABSFORE 5 Plot absolute in foreground plot_DRAWABSINVERSE 6 Plot absolute in inverse plot_DRAWABSBACK 7 Plot absolute in backgroundDATA�GFX_PlotPoint Syntax: void GFX_PlotPoint (int x, int y); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to plot a single point on the screen in the current graphics foreground colour at {/}(x,y){/}.DATA%GFX_PlotPointBy Syntax: void GFX_PlotPointBy (int x, int y); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to plot a single point on the screen in the current graphics foreground colour at a point whose offset relative to the current graphics cursor position is {/}(x,y){/}.DATA GFX_Rectangle Syntax: void GFX_Rectangle (int x, int y, int w, int h); Header: <DeskLib:GFX.h=>GFX> This function draws a rectangle outline on the screen in the current graphics foreground colour, with one corner at {/}(x,y){/} and another at {/}(x+w, y+h){/}.DATAGFX_RectangleFill Syntax: void GFX_RectangleFill (int x, int y, int w, int h); Header: <DeskLib:GFX.h=>GFX> This macro uses <GFX_Plot> to draw a filled rectangle in the current graphics foreground colour, with one corner at {/}(x,y){/} and another at {/}(x+w, y+h){/}.DATAUTimsLib:GFX.h This header file declares just one function-like macro, <GCol>.DATAvGFX_VDU Syntax: void GFX_VDU (char ch); Header: <DeskLib:GFX.h=>GFX> This function sends the single character specified in /ch/ to the VDU drivers (as if <OS_WriteC=>SWI:OS_WriteC> had been called). /ch/ can contain some <control codes=>VDU:!Root>, as well as printable characters. A macro is defined which enables you to call this function with {fCode}VDU(ch){f}.DATAGFX_Wait Syntax: void GFX_Wait (void); Header: <DeskLib:GFX.h=>GFX> This function waits until the vertical screen refresh has finished. This means that it returns _just after_ the screen has been updated on the monitor, so any alteration made to the screen now will not occur while it is being redrawn (and therefore avoids flicker). It is equivalent to <WAIT=>Basic:WAIT> in Basic. On TV-type monitors the refresh happens 50 times a second, but multiscans, VGA, SVGA and hi-res mono monitors have different refresh rates.DATA�GFX_Write0 Syntax: void GFX_Write0 (char *string); Header: <DeskLib:GFX.h=>GFX> This function writes the given null-terminated string to the VDU stream, as if SWI <OS_Write0=>SWI:OS_Write0> had been called.DATA�GFX_WriteN Syntax: void GFX_WriteN (char *string, int n); Header: <DeskLib:GFX.h=>GFX> This function writes /n/ characters, from the string whose pointer is given, to the VDU stream. It is equivalent to SWI <OS_WriteN=>SWI:OS_WriteN>.DATAgmtime Syntax: <struct�tm> *gmtime (<time_t> *timer); Header: <time.h=>time_h> Returns: Pointer to the broken-down time. This function converts the calendar time pointed to by /timer/ into a broken-down time, expressed in Greenwich Mean Time (GMT).DATA:DeskLib:Handler.h Version: 1.03 (01 Apr 1994) #line This header declares functions which are for use with the <Event> or <EventMsg> systems. They are not intended to be called directly. #indent 5 #table columns 2 <Handler_CloseWindow> <Handler_DeleteWindow> <Handler_OpenWindow> <Handler_NullRedraw> <Handler_ClickOK> <Handler_ModeChange> <Handler_DragNULL> <Handler_DragFinish> <Handler_HatchRedraw> #endtable #indent As a consequence of their use, all the functions have the same prototype (they are all <event_handler>s) and all return <TRUE> if successful.DIR$PP��F���i�+%ClickOK��F���T�+%CloseWindow��F�����+%DeleteWindow�F�����+%�DragFinish��F�����+%�DragNULLX�F���^�+%<HatchRedraw��F���z�+%�ModeChange��F���C�+%gNullRedraw��F���ҿ+%OpenWindowDATAHandler_ClickOK Header: <DeskLib:Handler.h=>Handler> This function handles clicks on 3D buttons. It indents the button, waits for 1/3 second and then un-indents the button. Attach it to a particular window/icon and a Mouse_Click event ({*}event_CLICK{*}) with <Event_Claim>.DATAHandler_CloseWindow Header: <DeskLib:Handler.h=>Handler> This function calls <Wimp_CloseWindow> on the data returned by the Wimp. Attach to the Close_Window_Request event using: {fCode;align centre}<Event_Claim>(event_CLOSE,event_ANY,event_ANY, Handler_CloseWindow,<NULL>);DATAHandler_DeleteWindow Header: <DeskLib:Handler.h=>Handler> This function calls <Window_Delete> on the data returned by the Wimp. Attach to the Close_Window_Request event using: {fCode;align centre}<Event_Claim>(event_CLOSE,event_ANY,event_ANY, Handler_DeleteWindow,<NULL>);DATA�Handler_DragFinish Header: <DeskLib:Handler.h=>Handler> This function calls the drag-complete handler registered with <Drag_SetHandlers> and resets the Drag module.DATA�Handler_DragNULL Header: <DeskLib:Handler.h=>Handler> This function calls the drag handler registered with <Drag_SetHandlers> on each Null event it receives.DATA<Handler_HatchRedraw Header: <DeskLib:Handler.h=>Handler> This function supplies a redraw loop in which the area of window is redraw with a hatch pattern. This is useful when testing programs without having actually written your own proper redraw routine. Attach it to {*}event_REDRAW{*} using <Event_Claim>.DATA�Handler_ModeChange Header: <DeskLib:Handler.h=>Handler> This function is a handler for mode change events. It calls <Screen_CacheModeInfo> every time the screen mode changes. If you have called <Template_UseOutlineFonts>, and the screen resolution has changed, it also calls <Window_ModeChange> (therefore all your windows must be created with <Window_Create>). Attach it to mode change message with: {fCode;align centre}<EventMsg_Claim>(message_MODECHANGE, event_ANY, Handler_ModeChange, <NULL>);DATAgHandler_NullRedraw Header: <DeskLib:Handler.h=>Handler> This function supplies a dummy redraw loop. It just calls <Wimp_RedrawWindow> then gets rectangles from the Wimp until they have all been "redrawn". Attach to the Redraw_Window_Request event using: {fCode;align centre}<Event_Claim>(event_REDRAW,event_ANY,event_ANY, Handler_NullRedraw,<NULL>);DATAHandler_OpenWindow Header: <DeskLib:Handler.h=>Handler> This function calls <Wimp_OpenWindow> on the data returned by the Wimp. Attach to the Open_Window_Request event using: {fCode;align centre}<Event_Claim>(event_OPEN,event_ANY,event_ANY, Handler_OpenWindow,<NULL>);DATA�heap.h This header declares functions for <malloc>-style heap allocation within a <flex> block. Functions: #table columns 3 <heap_init> <heap_alloc> <heap_free> #endtableDIR$ll0�F���~��$�alloc�F���6��$�free��F�����$initDATA�heap_alloc Syntax: void *heap_alloc (unsigned int size); Header: <heap.h=>heap> Returns: Pointer to allocated block. Allocated a block of the given size from the heap. Returns 0 if unable to do so.DATA�heap_free Syntax: void heap_free (void *heapptr); Header: <heap.h=>heap> Frees the block whose pointer is given in /heapptr/. The block must have been previously allocated with <heap_alloc>.DATAheap_init Syntax: void heap_init (<BOOL> heap_shrink); Header: <heap.h=>heap> Initialises the heap allocation system. If {/}heap_shrink{/} is <TRUE> then the flex block will be shrunk when possible. You must call <flex_init> before calling this function.DATA�help.h This header declares functions providing support for interactive help. Functions: #Table columns 2 <help_process> <help_register_handler> <help_genmessage> <help_simplehandler> <help_dboxrawevents> <help_reply> #EndTableDIR$����F���]�$�dboxrawevents��F���u�$�genmessage��F���x��$jprocess��F���ϻ�$�register_handler��F������$�reply|�F�����$msimplehandlerDATA�help_dboxrawevents Syntax: <BOOL> help_dboxrawevents (<dbox> d, void *event, void *handle); Header: <help.h=>help> This function is a routine suitable for passing to <dbox_raw_eventhandler>, for providing help on dialogue boxes. The handle passed should be a message prefix. A single character suffix may be added to it containing the icon number. If this message does not exist (or no icon is pointed at) then just the prefix will be used as the message tag.DATA�help_genmessage Syntax: <BOOL> help_genmessage (char *prefix, char *hit); Header: <help.h=>help> Returns: <TRUE> if this was a menu help message. This function generates a message tag which is looked up with <msgs_lookup> by adding a the prefix to a string of menu selections eg. "MENU01" if the prefix is "MENU" and the second option off the first submenu has been selected. Numbers {*}0-9{*} and letters {*}a-z{*} are used for the selection list. It is then returned as the interactive help message.DATAjhelp_process Syntax: <BOOL> help_process (<wimp_eventstr> *e); Header: <help.h=>help> Returns: <TRUE> if event has been processed. This function processes the given event if it is a menu interactive help message. This should be called by the unknown event handler of the program. For it to work, you must inform <wimpt> that you are aware of RISC OS 3.DATA�help_register_handler Syntax: void help_register_handler (<event_menu_proc> func, void *handle); Header: <help.h=>help> This function registers the handler to be used when help_process is next called. /handle/ is passed straight to /func/. This should be called by the menu-maker function of every menu in the program. When <help_process> is called, the most recently installed handler is assumed to be the correct one. Call with <NULL> if no help is available on this menu.DATA�help_reply Syntax: void help_reply (char *m); Header: <help.h=>help> This function replies to the help message in <wimpt_last_event> with the message specified.DATAmhelp_simplehandler Syntax: void help_simplehandler (void *handle, char *hit); Header: <help.h=>help> This function is a simple handler which can be registered with <help_register_handler> in order to handle simple static menus. /handle/ should be the prefix to pass to <help_genmessage>. All this function does is pass the menu selections to that function.DATA�HexDigit Syntax: char HexDigit (int n); Header: <TimsLib:Lib.h=>Lib> Returns: Character representing n in hex. This function takes a number /n/ in the range 0-15 and returns the appropriate hexadecimal digit (0-F).DATADeskLib:Hourglass.h Version: 2.00 (24 Jul 1993) #line The header \<DeskLib:Hourglass.h> declares functions for handling the <Hourglass=>SWI:Hourglass_>. #Table 3 24 <Hourglass_On> <Hourglass_Start> <Hourglass_Percentage> <Hourglass_Off> <Hourglass_Smash> #EndTableDIR$����F���� ,%Off��F����,%�On��F���o,%=Percentage��F���&,%�SmashL�F����,%uStartDATAHourglass_Off Syntax: void Hourglass_Off(void); Header: <DeskLib:Hourglass.h=>Hourglass> Returns: Pointer to error, or <NULL> if none. This function removes the indication of the delay. It is equivalent to the SWI <Hourglass_Off=>SWI:Hourglass_Off>.DATA�Hourglass_On Syntax: void Hourglass_On (void); Header: <DeskLib:Hourglass.h=>Hourglass> This function changes the mouse pointer to show the user that some delay will occur. It does this by calling the SWI <Hourglass_On=>SWI:Hourglass_On>.DATA=Hourglass_Percentage Syntax: void Hourglass_Percentage (int pc); Header: <DeskLib:Hourglass.h=>Hourglass> Returns: Pointer to error, or <NULL> if none. This function indicates to the user that the delay is /pc/ percent completed. It is equivalent to the SWI <Hourglass_Percentage=>SWI:Hourglass_Percentage>.DATA�Hourglass_Smash Syntax: void Hourglass_Smash (void); Header: <DeskLib:Hourglass.h=>Hourglass> Returns: Pointer to error, or <NULL> if none. This function forces the indication of a delay to be removed. Normally, <Hourglass_Off> must be called for each time <Hourglass_On> or <Hourglass_Start> is called. This function is equivalent to the SWI <Hourglass_Smash=>SWI:Hourglass_Smash>.DATAuHourglass_Start Syntax: void Hourglass_Start (int delay); Header: <DeskLib:Hourglass.h=>Hourglass> Returns: Pointer to error, or <NULL> if none. This function changes the mouse pointer to show the user that some delay will occur. The change will occur delay centiseconds after this call is made. It is equivalent to the SWI <Hourglass_Start=>SWI:Hourglass_Start>.DIR$((��F���&��"�VALDATA�HUGE_VAL The macro HUGE_VAL is defined in <math.h=>math> as a positive double. It is used in result overflows to indicate the sign of the result.DIR$��F���c�.%QIcon��F����/ Icon_HDF���㝄/Liconbar_FF�����/�if�HF���7��/,if_hJF���t�"�ifdef LF���Q}�"�ifndef�MF���b�")IMPORTPF����S�"include(SF������/DINT_�TF�����U&4Interface�VF������/�Interface_�dF���T'�"isalnum�eF�����"�isalpha�fF������"�iscntrldgF����"�isdigit(hF���> �"�isgraphiF�����"�islower�iF�����"�isprint�jF���7!�"5ispunct�kF���A�"�isspacehmF����I�"�isupper(nF����P�"�isxdigit�nF������/(jmp_�oF������/pjoin_rF�����/�k_�wF���ډ0%KbdyF���r��/�Kbd_̃F���9�$7kernel�F���P�>%IKernelSWIsP�F���&��/Lkey_�F����L?%xKeyCodesDATAQDeskLib:Icon.h Version: 1.14 (Dec 1994) #line This header declares functions for high-level icon handling. #Indent 13 <Controlling=>Icon_cont_> <Reading/Writing State=>Icon_state_> <Reading/Writing Contents=>Icon_contents_> <Dragging=>Icon_drag_> <Slider operations=>Icon_slide_> #indent Type: {align centre}<icon_incdecblock>DIR$ �F����x�'WBarIconh�F���b��'�BarIconUser0�F���[!A&�block��F���3W.%ClickWait�F����U0%cont_$�F���0%contents_4�F����'A&�createblock�F���(A&�data�F����,%�Deselect��F�����U&7DisposeData�F�����.%GDisposeIndData$F��� a.%bdrag_�F���6�.%�DragSliderF���ߠ.%OFileIcondF����N8&�flags<F����,%hForceRedraw� F���o�,%�ForceWindowRedraw� F�����-%GetBgCol�F����)-%/GetDouble�F�����-%GetFgCol� F����p-%(GetIntegerF��� �,%�GetSelect�F���.�,%�GetShade�F���yv-%GetText�F����-%�GetTextPtrpF���zs7&handle�F���sf8&�indsprite�F����Y8&�indtext�F�����,%LoseCaret�F���4e-%YprintfF���4�.%�ReadSlider�F���߯.%&ScreenPos F����,%�Select�F�����U&6SelectGroupF�����,%SetBackColour,F���E�-%SSetBgCol�F���+�,%SetCaret�F����8-%cSetDouble� F�����-%HSetFgCol8"F���̡-%�SetFlags�#F�����,%SetForeColour�$F���%0-%<SetInteger0&F�����-%�SetRadios�'F���ڜ,%�SetSelect�(F����,%�SetShade�)F�����.%�SetSlider�*F����F-%KSetText�+F��� U-%�SetTextRJ�-F���N�,%�Shade`.F���;�-%0ShadeGroup�/F����.%�slide_0F����i.%LStartDrag`1F���[x.%StartSolidDragh2F���W.%�state_ 4F���c�U&�TL�5F����U&.TYPE�6F����,%�Unshade�7F���b�.%�UpdateSlider9F����.%�WhichRadio�:F���)D.%9WhichRadioInEsg4<F���6T/%*incdecblock`>F�����/%�InitIncDecHandler�@F����0%KReleaseIncDecHandler0BF����C0%�AlterValidation�CF����n0%�ButtonIsHeldDATAWIcon_BarIcon Syntax: <icon_handle> Icon_BarIcon (char *spr, <window_handle> pos); Header: <DeskLib:Icon.h=>Icon> Returns: Icon handle of created icon. This function places a normal sprite-only icon on the icon bar. /spr/ is a pointer to the sprite name and /pos/ is the side of the icon bar, either <iconbar_LEFT> or <iconbar_RIGHT>.DATA�Icon_BarIconUser Syntax: <icon_handle> Icon_BarIconUser (char *spr, <window_handle> pos, unsigned int *spr_area); Header: <DeskLib:Icon.h=>Icon_h> Returns: Icon handle of created icon. This function places a normal sprite-only icon on the icon bar. /spr/ is a pointer to the sprite name and /pos/ is the side of the icon bar, either <iconbar_LEFT> or <iconbar_RIGHT>. The sprite is taken from the user sprite area pointed to by {/}spr_area{/}.DATA�icon_block This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding a complete icon definition: \{ <wimp_box> workarearect; <icon_flags> flags; <icon_data> data; }DATAIcon_ClickWait Syntax: void Icon_ClickWait (int t); Header: <DeskLib:Icon.h=>Icon> This function waits for /t/ centiseconds. It is a multitasking wait - although your task is halted, the rest of the desktop continues. If an event occurs, the wait is aborted.DATAIcon Controlling Functions #Table columns 2 <Icon_BarIcon> <Icon_BarIconUser> <Icon_ClickWait> <Icon_DisposeIndData> <Icon_ForceRedraw> <Icon_ForceWindowRedraw> <Icon_LoseCaret> <Icon_SetCaret> <Icon_InitIncDecHandler> <Icon_ReleaseIncDecHandler> <Icon_ButtonIsHeld> #EndTableDATAReading/Writing Icon Contents Functions #Indent 4 #Table columns 2 <Icon_GetDouble> <Icon_GetInteger> <Icon_GetText> <Icon_GetTextPtr> <Icon_printf> <Icon_SetDouble> <Icon_SetInteger> <Icon_SetText> <Icon_SetTextRJ> <Icon_FileIcon> <Icon_AlterValidation> #EndTableDATA�icon_createblock This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding a block for creating an icon. \{ <window_handle> window; <icon_block> icondata; }DATA�icon_data This type is defined in <DeskLib:Wimp.h=>Wimp> as a union for accessing icon data: \{ char text[<wimp_MAXNAME>]; <icon_indtext> indirecttext; char spritename[wimp_MAXNAME]; <icon_indsprite> indirectsprite; }DATA�Icon_Deselect Syntax: void Icon_Deselect (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function deselects the icon given, if it is selected.DATA7Icon_DisposeData Syntax: void Icon_DisposeData (<icon_data> *data, <icon_flags> flags); Header: <TimsLib:Icon.h=>Icon_TL> This function calls <free>() on the indirected data for the icon whose data block and flags word are given. Obviously the data must have been originally allocated using <malloc>...DATAGIcon_DisposeIndData Syntax: void Icon_DisposeIndData (<icon_data> *data, <icon_flags> flags); Header: <DeskLib:Icon.h=>Icon> This function finds the indirected data pointer(s) for the icon whose definition is given, and calls <free>() on them. Obviously, this means they should have been <malloc>ed in the first place!DATAbIcon Dragging Functions #Indent 4 <Icon_StartDrag> <Icon_StartSolidDrag> <Icon_DragSlider>DATA�Icon_DragSlider Syntax: int Icon_DragSlider (<window_handle> hnd, <icon_handle> base, icon_handle slider); Header: <DeskLib:Icon.h=>Icon> Returns: New percentage represented. This function should be called when you get a click in either the icon /base/ or /slider/, which together make up a slider. From now on, every time a NULL event is received, you should call <Icon_UpdateSlider>.DATAOIcon_FileIcon Syntax: void Icon_FileIcon (<window_handle> win, <icon_handle> icon, int filetype); Header: <DeskLib:Icon.h=>Icon> This function takes an indirected text-only icon and converts it to an indirected sprite-only icon containing the sprite for the given filetype. If the sprite is not in the Wimp sprite pool then...DATA�icon_flags This type is defined in <DeskLib:Wimp.h=>Wimp> as the following union, which can be used for easy access to icon flags: \{ unsigned int value; struct \{ unsigned int garbage1 : 6; unsigned int font : 1; /* Font flag */ unsigned int garbage2 : 8; unsigned int handle : 8; /* Font handle */ } font; struct \{ unsigned int text : 1; unsigned int sprite : 1; unsigned int border : 1; unsigned int hcentre : 1; unsigned int vcentre : 1; unsigned int filled : 1; unsigned int font : 1; unsigned int needshelp : 1; unsigned int indirected : 1; unsigned int rightjustify : 1; unsigned int allowadjust : 1; unsigned int halfsize : 1; unsigned int buttontype : 4; unsigned int esg : 5; unsigned int selected : 1; unsigned int shaded : 1; unsigned int deleted : 1; unsigned int foreground : 4; unsigned int background : 4; } data; }DATAhIcon_ForceRedraw Syntax: <os_error> *Icon_ForceRedraw (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> Returns: Pointer to error, or <NULL> if none. This function forces the WIMP to redraw just the icon contents. It is equivalent to (and in fact <#define=>define>d as): {fCode;align centre}<Wimp_SetIconState>(hnd,icon,0,0);DATA�Icon_ForceWindowRedraw Syntax: void Icon_ForceWindowRedraw (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function forces the WIMP to redraw the whole of the icon area, including the 3D border.DATAIcon_GetBgCol Syntax: int Icon_GetBgCol (<icon_block> *icon); Header: <DeskLib:Icon.h=>Icon> Returns: Background colour of icon. This function finds the foreground colour of an icon whose definition is passed to it. It copes with outline fonts in icons.DATA/Icon_GetDouble Syntax: double Icon_GetDouble (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> Returns: Value of icon contents. This function reads the text contents of the given icon and returns it converted to a floating-point value. 0 is returned if an error occurs.DATAIcon_GetFgCol Syntax: int Icon_GetFgCol (<icon_block> *icon); Header: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> Returns: Foreground of icon. This function finds the foreground colour of an icon whose definition is passed to it. It copes with outline fonts in icons.DATA(Icon_GetInteger Syntax: int Icon_GetInteger (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> Returns: Value of icon contents. This function reads the text contents of the given icon and returns it converted to an integer value. 0 is returned if an error occurs.DATA�Icon_GetSelect Syntax: <BOOL> Icon_GetSelect (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> Returns: <TRUE> if selected. This function reads whether the specified icon is selected.DATA�Icon_GetShade Syntax: <BOOL> Icon_GetShade (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> Returns: <TRUE> if shaded. This function reads whether the specified icon is shaded.DATAIcon_GetText Syntax: void Icon_GetText (<window_handle> hnd, <icon_handle> icon, char *t); Header: <DeskLib:Icon.h=>Icon> This function copies the text from the specified icon into the array pointed to by /t/. Sprite-only icons have their sprite name copied into the array.DATA�Icon_GetTextPtr Syntax: char *Icon_GetTextPtr (<window_handle> win, <icon_handle> icon); Headers: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> Returns: Pointer to text. This function gets the pointer to the actual indirected text of the given icon. If the given icon is not an indirected text icon, the pointer will be invalid. This allows you to change/read the contents of the icon easily.DATAicon_handle This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding an icon handle. It is defined as an /int/.DATA�icon_indsprite This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding the icon data for an indirected sprite icon. \{ const char *name; void *spritearea; unsigned int nameisname; }DATA�icon_indtext This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding the icon data for an indirected text icon. \{ char *buffer; char *validstring; unsigned int bufflen; }DATAIcon_LoseCaret Syntax: void Icon_LoseCaret (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon_h> This function ensures that the caret is not contained within the icon given. It will not move the caret if it is somewhere else.DATAYIcon_ printf Syntax: void Icon_printf (<window_handle> hnd, <icon_handle> icon, char *format, ...); Header: <DeskLib:Icon.h=>Icon> This function writes output to the icon specified under control of the <format string=>pform_>. It is exactly the same as <sprintf>, but instead of passing in a string, you pass in an indirected text icon.DATA�Icon_ReadSlider Syntax: int Icon_ReadSlider (<window_handle> hnd, <icon_handle> base, icon_handle slider); Header: <DeskLib:Icon.h=>Icon> Returns: Percentage represented This function reads the value represented by the slider specified.DATA&Icon_ScreenPos Syntax: void Icon_ScreenPos (<window_handle> win, <icon_handle> icon, <wimp_rect> *rect); Header: <DeskLib:Icon.h=>Icon> This function gets the coordinates of the specified icon and converts them into screen coordinates, returning them in the block pointed to by /rect/.DATA�Icon_Select Syntax: void Icon_Select (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function selects the given icon, if it is deselected.DATA6Icon_SelectGroup Syntax: void Icon_SelectGroup (<window_handle> win, <icon_handle> icons[], <BOOL> select); Header: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> This function selects or deselects (depending on {/}select{/}) the icons specified in the array /icons/. The array is terminated by -1.DATAIcon_SetBackColour Syntax: void Icon_SetBackColour (<window_handle> win, <icon_handle> icon, int wimpcol); Header: <DeskLib:Icon.h=>Icon> This function sets the background colour of an icon. Note that it does not cope with outline font icons, and will completely muck them up.DATASIcon_SetBgCol Syntax: <os_error> *Icon_SetBgCol (<window_handle> win, <icon_handle> icon, int col); Header: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> Returns: Pointer to error, or <NULL> if none. This function-like macro changes the background colour of the specified icon to /col/. This does not work with outline fonts.DATAIcon_SetCaret Syntax: void Icon_SetCaret (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function sets the caret within the requested icon, at the righthand end of the text. If the icon is not a text icon, no error is generated.DATAcIcon_SetDouble Syntax: void Icon_SetDouble (<window_handle> hnd, <icon_handle> icon, double n, int dp); Header: <DeskLib:Icon.h=>Icon> This function sets the given icon's text to hold the number /n/, given to /dp/ decimal places. The icon is redrawn. If the number is too long it will be chopped off. No error is returned if the icon is not text.DATAHIcon_SetFgCol Syntax: <os_error> *Icon_SetFgCol (<window_handle> win, <icon_handle> icon, int col); Header: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> Returns: Pointer to error, or <NULL> if none. This function changes the foreground colour of the specified icon to /col/. This does not work with outline fonts.DATA�Icon_SetFlags Syntax: <os_error> *Icon_SetFlags (<window_handle> win, <icon_handle> icon, int flags, <BOOL> set); Header: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> Returns: Pointer to error, or <NULL> if none. This function-like macro sets the specified icon's flags according to /flags/ and /set/. The flags given are all either set (if {/}set{/} is <TRUE>) or unset (if {/}set{/} is <FALSE>).DATAIcon_SetForeColour Syntax: void Icon_SetForeColour (<window_handle> win, <icon_handle> icon, int wimpcol); Header: <DeskLib:Icon.h=>Icon> This function sets the foreground colour of an icon. Note that it does not cope with outline font icons, and will completely muck them up.DATA<Icon_SetInteger Syntax: void Icon_SetInteger (<window_handle> hnd, <icon_handle> icon, int n); Header: <DeskLib:Icon.h=>Icon> This function sets the given icon's text to hold the number /n/. The icon is redrawn. If the number is too long it will be chopped off. No error is returned if the icon is not text.DATA�Icon_SetRadios Syntax: void Icon_SetRadios (<window_handle> hnd, <icon_handle> first, icon_handle last, icon_handle icon); Header: <DeskLib:Icon.h=>Icon> This function selects the icon whose window and icon handle is given in /hnd/ and /icon/ respectively. All other icons from /first/ to /last/ will be selected. It is intended that this function is used to select one option from a group of radio icons.DATA�Icon_SetSelect Syntax: void <Icon_SetSelect> (<window_handle> hnd, <icon_handle> icon, int s); Header: <DeskLib:Icon.h=>Icon> This function sets or deselects the icon specified, depending on whether /s/ is 1 or 0.DATA�Icon_SetShade Syntax: void <Icon_SetShade> (<window_handle> hnd, <icon_handle> icon, int s); Header: <DeskLib:Icon.h=>Icon> This function shades or unshades the icon specified, depending on whether /s/ is 1 or 0.DATA�Icon_SetSlider Syntax: int Icon_SetSlider (<window_handle> hnd, <icon_handle> base, icon_handle slider, int pos); Header: <DeskLib:Icon.h=>Icon> Returns: Position set This function sets the slider to represent the percentage given in /pos/.DATAKIcon_SetText Syntax: void Icon_SetText (<window_handle> hnd, <icon_handle> icon, char *t); Header: <DeskLib:Icon.h=>Icon> This function copies the string pointed to by /t/ into the indirected text of the specified icon. If /t/ is a null pointer, icon text is set to "�". If the icon is not the right type, no error occurs.DATA�Icon_SetTextRJ Syntax: void Icon_SetTextRJ (<window_handle> hnd, <icon_handle> icon, char *t); Header: <DeskLib:Icon.h=>Icon> This function copies the string pointed to by /t/ into the indirected text of the specified icon. If /t/ is a null pointer, icon text is set to "". If the icon is not the right type, no error occurs. If the text does not fit in the icon buffer, it is chopped off at the LEFT and prefixed by "...".DATA�Icon_Shade Syntax: void Icon_Shade (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function shades the specified icon if it is unshaded. In addition the caret will be removed.DATA0Icon_ShadeGroup Syntax: void Icon_ShadeGroup (<window_handle> win, <icon_handle> icons[], <BOOL> shade); Header: <TimsLib:Icon.h=>Icon_TL> <DeskLib:Icon.h=>Icon> This function shades or unshades (depending on {/}shade{/}) the icons specified in the array /icons/. The array is terminated by -1.DATA�Slider Operations Functions #Table 2 21 <Icon_DragSlider> <Icon_ReadSlider> <Icon_SetSlider> <Icon_UpdateSlider> #EndTableDATALIcon_StartDrag Syntax: void Icon_StartDrag (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function starts a drag operation of the given icon. It calculates the values needed and calls the SWI <Wimp_DragBox=>SWI:Wimp_DragBox>. It does not use DragASprite, for that use <DragASprite_DragIcon>.DATAIcon_StartSolidDrag Syntax: os_error *Icon_StartSolidDrag (window_handle hnd, icon_handle icon); Header: <DeskLib:Icon.h=>Icon> Returns: Pointer to error, or <NULL> if none. This is simply a <#define=>define>d alternative name for <DragASprite_DragIcon>.DATA�Reading/Writing Icon State Functions #indent 1 #Table columns 2 <Icon_Deselect> <Icon_GetSelect> <Icon_GetShade> <Icon_Select> <Icon_SetRadios> <Icon_SetSelect> <Icon_SetShade> <Icon_Shade> <Icon_Unshade> <Icon_WhichRadio> <Icon_WhichRadioInEsg> <Icon_SetForeColour> <Icon_SetBackColour> <Icon_SetFgCol> <Icon_SetBgCol> <Icon_ShadeGroup> <Icon_SelectGroup> <Icon_GetFgCol> <Icon_GetBgCol> <Icon_ScreenPos> <Icon_SetFlags> #EndTableDATA�TimsLib:Icon.h This header is an extension to <DeskLib:Icon.h=>Icon>. Functions: #indent 4 #Table 4 20 <Icon_DisposeData> <Icon_SetFlags> <Icon_ShadeGroup> <Icon_SelectGroup> <Icon_SetFgCol> <Icon_SetBgCol> <Icon_GetFgCol> <Icon_GetTextPtr> #EndTable #indent 0 Macros: #indent 4 #Table 3 20 <NO_ICON_DATA> <TXT_ONLY> <SPR_ONLY> <TXT_AND_SPR> <ICON_TYPE> #EndTable #indent 0DATA.ICON_TYPE Syntax: int ICON_TYPE (int flags); Header: <TimsLib:Icon.h=>Icon_TL> Returns: Icon type. This function-like macro extracts the icon type from the icon flags and returns a value 0-3 (<NO_ICON_DATA>, <TXT_ONLY>, <SPR_ONLY>, or <TXT_AND_SPR>). It is defined as {fCode}((flags) & 3){f}.DATA�Icon_Unshade Syntax: void Icon_Unshade (<window_handle> hnd, <icon_handle> icon); Header: <DeskLib:Icon.h=>Icon> This function unshades the specified icon if it is shaded.DATA�Icon_UpdateSlider Syntax: int Icon_UpdateSlider (<window_handle> hnd, <icon_handle> base, icon_handle slider, int pos); Header: <DeskLib:Icon.h=>Icon> Returns: New slider position This function should be called on NULL events while the slider is being dragged. It calculates a new slider percentage from the mouse position and, if different from /pos/, alters the icon to show the new length.DATA�Icon_WhichRadio Syntax: int Icon_WhichRadio (<window_handle> hnd, <icon_handle> first, icon_handle last); Header: <DeskLib:Icon.h=>Icon> Returns: Icon number of selected icon. This function checks through a group of icon from /first/ to /last/ and returns the icon number of the first icon it finds which is selected. If none are selected, it returns the value of /last/. It is intended that this function be used to find which out of a range of options is chosen.DATA9Icon_WhichRadioInEsg Syntax: int Icon_WhichRadioInEsg (<window_handle> win, int esg); Header: <DeskLib:Icon.h=>Icon> Returns: Icon number of selected icon. This function checks through all the icons in window /win/ with ESG /esg/ and returns the icon number of the first icon it finds which is selected.DATA*icon_incdecblock This type is defined in <DeskLib:Icon.h=>Icon> as the following structure, used for holding data for IncDec handlers: {wrap off} \{ <window_handle> window; /* window holding icons */ <icon_handle> texticon; /* text icon holding integer */ <icon_handle> incrementicon; /* increment icon handle */ <icon_handle> decrementicon; /* decrement icon handle */ <BOOL> loop; /* loop beyond limits */ unsigned int step; /* step to inc/dec */ int min; /* lower limit */ int max; /* upper limit */ }DATA�Icon_InitIncDecHandler Syntax: <icon_incdecblock> *Icon_InitIncDecHandler(<window_handle> window, <icon_handle> texticon, icon_handle incrementicon, icon_handle decrementicon, <BOOL> loop, unsigned int step, int min, int max,int start); Header: <DeskLib:Icon.h=>Icon> Returns: Result of the claims This function claims handler for clicks on the icons /incrementicon/ and /decrementicon/, which affect the icon /texticon/, altering the integer number in it in the range /min/ to /max/. If /loop/ is <TRUE> then the value loops around past the limits. /step/ is the change for each click on the icons and /start/ is the initial value.DATAKIcon_ReleaseIncDecHandler Syntax: <BOOL> Icon_ReleaseIncDecHandler (<icon_incdecblock> *incdecblock); Header: <DeskLib:Icon.h=>Icon> Returns: <TRUE> if successful Given the block previously returned by <Icon_InitIncDecHandler>, this releases the handlers installed by that function and frees the memory used by the block.DATA�Icon_AlterValidation Syntax: void Icon_AlterValidation (<window_handle> win, <icon_handle> icon, char *val); Header: <DeskLib:Icon.h=>Icon> This function alters the validation string of the given icon to that contained in /val/ and redraws the icon (to account for border type changes etc). If the new validation string is bigger than the space used by the old one, you're in trouble.DATA�Icon_ButtonIsHeld Syntax: <BOOL> Icon_ButtonIsHeld (void); Header: <DeskLib:Icon.h=>Icon> Returns: <TRUE> if a mouse button is downDIR$LL�DF���W�7&�LEFTPEF���9�7&�RIGHTDATA�iconbar_LEFT This macro is defined in <Wimp.h=>Wimp> as a macro containing the window handle of the left side of the icon bar, as used when creating an icon. It is defined as -2.DATA�iconbar_RIGHT This macro is defined in <Wimp.h=>Wimp> as a macro containing the window handle of the right side of the icon bar, as used when creating an icon. It is defined as -1.DATA�if This command is the same in just about every computer language invented. It has the form: {fCode;align centre}if (\<condition>) \<statement1>; else \<statement2>;{f;align} \<condition> is evaluated. If it is non-zero (true) then statement1 is executed. If it is zero (false) then statement2 is executed. Both statements may be compound statements ie several statements enclosed in \{}, in that case they will not be followed by semicolons. eg #fCode if (a=='L') <puts>("Load"); else if (a=='S') puts("Save"); else puts("Don't know"); #f This prints �Load� if a is �L�, �Save� if a is �S�, or �Don�t know� otherwise.DIR$,,�HF����j�"�!RootDATA�#if This directive has the form: #fCode #if \<expression> \<statements1>; <#else=>else_> \<statements2>; #endif #f \<expression> is any constant expression using the normal operators. It may only involve constant values (macros and numbers), not variables or functions. If it evaluates to 1 (true) then \<statements1> is compiled else \<statements2> is compiled. The 'else' part is optional.DATA�#ifdef This directive tests if a particular macro is defined with <#define=>define>. It has the form: #fCode #ifdef \<macroname> \<statements1> #<else=>else_> \<statements2> #endif #f If \<macroname> is defined, then \<statements1> is compiled. The '#else' bit is optional. If it is present, the if \<macroname> is not defined, \<statements2> is compiled. After '#endif', normal compilation resumes.DATA�#ifndef This directive tests if a particular macro is not defined with <#define=>define>. It has the form: #fCode #ifndef \<macroname> \<statements1> <#else=>else_> \<statements2> #endif #f If \<macroname> is not defined, then \<statements1> is compiled. The '#else' bit is optional. If it is present, the if \<macroname> is defined, \<statements2> is compiled. After '#endif', normal compilation resumes.DATA)IMPORT <label> This allows references to a label which is defined externally ie in a different file. eg #fCode #pragma asm IMPORT puts .printhello STMFD sp!,\{r0-r12,lk} <ADR> a1,string BL <puts> LDMFD sp!,\{r0-r12,pc}^ .string <DCB> "Hello Word",0 #pragma endasm void main (void) \{ printhello(); } #f This program above prints �Hello World� on the screen, using <puts> which is imported from the run time library.DATA #include This is followed by a filename, either in angle brackets \<> or in quote marks "". The named file is inserted into the source code at this point. This is normally used to insert so-called "header files" which contain external function declarations. It is these header files which are the subject of most of this help! eg. \#include \<<stdio.h=>stdio>> \#include "<DeskLib:Event.h=>Event>" The difference between the brackets and quote marks is that those in quote marks are: #Tab � Searched for in the same place as your source file. eg if your source file is "Source.c.prog", then "Source.h" is searched. � Included in the Make file dependency list by 'Create' (Easy C). Both types are searched for: � At the path specified when compiling. � In the system header file path.DIR$DDlSF���� �"�MAXTF���h�"�MINDATA�INT_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in an int. In Easy C it is defined as 0x7fffffff (2147483647).DATA�INT_MIN This macro is defined in <limits.h> and represents the minimum value which can be stored in an int. In Easy C it is defined as 0x80000000 (-2147483648).DATA4TimsLib:Interface.h This header defines function-like macros for accessing some Interface Manager SWIs. Function-like macros: #table columns 2 <Interface_SlabButton> <Interface_Render3dWindow> <Interface_Initialise> <Interface_Closedown> <Interface_SetWorkareaPointer> <Interface_RemoveWorkareaPointer> <Interface_Poll> <Interface_SendHelp> <Interface_Plot3dIcon> <Interface_BoundingBox> #endtable Type: {align centre}<wimp_pointer>{align} Interface Manager is a PD module by Simon Huntingdon which provides many useful functions for Wimp programming.DIR$��xXF����U&8BoundingBox�YF�����U&$Closedown�ZF���a�U&'Initialise�[F���x�U&JPlot3dIconH]F����U&Polld^F����U&KRender3dWindow�_F���;�U&<SendHelp�`F���\�U&RSetWorkareaPointer@bF���L�U&8SlabButtonxcF����U&[RemoveWorkareaPointerDATA8Interface_BoundingBox Syntax: <os_error> *Interface_BoundingBox (<icon_block> *icon); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_BoundingBox. For more information see the documentation supplied with Interface.DATA$Interface_Closedown Syntax: <os_error> *Interface_Closedown (void); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_Closedown. For more information see the documentation supplied with Interface.DATA'Interface_Initialise Syntax: <os_error> *Interface_Initialise (void); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_Initialise. For more information see the documentation supplied with Interface.DATAJInterface_Plot3dIcon Syntax: <os_error> *Interface_Plot3dIcon (<window_state> *state, <icon_block> *ic); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_Plot3dIcon. For more information see the documentation supplied with Interface.DATAInterface_Poll Syntax: <os_error> *Interface_Poll (int poll); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_Poll. For more information see the documentation supplied with Interface.DATAKInterface_Render3dWindow Syntax: <os_error> *Interface_Render3dWindow (<window_redrawblock> *redraw); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_Render3dWindow. For more information see the documentation supplied with Interface.DATA<Interface_SendHelp Syntax: <os_error> *Interface_SendHelp (<message_header> *message_block); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_SendHelp. For more information see the documentation supplied with Interface.DATARInterface_SetWorkareaPointer Syntax: <os_error> *Interface_SetWorkareaPointer (<wimp_pointer> *pointer); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_SetWorkareaPointer. For more information see the documentation supplied with Interface.DATA8Interface_SlabButton Syntax: <os_error> *Interface_SlabButton (<mouse_block> *mouse); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_SlabButton. For more information see the documentation supplied with Interface. DATA[Interface_RemoveWorkareaPointer Syntax: <os_error> *Interface_RemoveWorkareaPointer (<wimp_pointer> *pointer); Header: <TimsLib:Interface.h=>Interface> Returns: Pointer to error, or <NULL> if none. This function-like macro calls the SWI Interface_RemoveWorkareaPointer. For more information see the documentation supplied with Interface.DATAisalnum #Parent ctype Syntax: int isalnum (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c == 'A'-'Z','a'-'z', or '0'-'9'. This function tests if the given character is alphanumeric. #align centre isalnum(c) = ( <isalpha> (c) || <isdigit> (c) );DATA�isalpha #Parent ctype Syntax: int isalpha (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c == 'A'-'Z', or 'a'-'z'. This function tests if the given character is alphabetic.DATA�iscntrl #Parent ctype Syntax: int iscntrl (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c is a control character. This function tests if the given character is a control character.DATA�isdigit #Parent ctype Syntax: int isdigit (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c == '0'-'9'. This function tests if the given character is a numeric character (digit).DATA�isgraph #Parent ctype Syntax: int isgraph (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c is a graphic character. This function tests if the given character is any printing character except space ('�').DATA�islower #Parent ctype Syntax: int islower (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c == 'a'-'z'. This function tests if the given character is any lower case letter.DATA�isprint #Parent ctype Syntax: int isprint (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c is any printing character. This function tests if the given character is any printing character including space (' ').DATA5ispunct #Parent ctype Syntax: int ispunct (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c is any punctuation character. This function tests if the given character is any non-alphanumeric printing character except space ('�'). #align centre ispunct(c) = ( <isgraph> (c) && !<isalnum> (c) );DATA�isspace #Parent ctype Syntax: int isspace (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c is a white space character. This function tests if the given character is any white space character ie one of the following: #indent 6 #Table Columns 2 Space (' ') Form feed ('\\f') Newline ('\\n') Carriage return ('\\r') Horizontal tab ('\\t') Vertical tab ('\\v') #EndTableDATA�isupper #Parent ctype Syntax: int isupper (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c == 'A'-'Z'. This function tests if the given character is any upper case letter.DATA�isxdigit #Parent ctype Syntax: int isxdigit (int c); Header: <ctype.h=>ctype> Returns: Non-zero if c == '0'-'9', or 'A'-'F'. This function tests if the given character is any hexadecimal digit.DIR$((oF���l�"�bufDATA�jmp_buf The type jmp_buf is defined in <setjmp.h=>setjmp_h> as an object capable of holding information about the current environment. In Easy C it is defined as a pointer to an array of 22 ints.DIR$ppXpF���'F#�bevelled�pF���F#�mitred�qF���F#�roundDATA�join_bevelled This macro is defined in <drawmod.h=>drawmod>. It is a value representing a bevelled join. It is defined as ((unsigned char)0x02).DATA�join_mitred This macro is defined in <drawmod.h=>drawmod>. It is a value representing a mitred join. Is it defined as ((unsigned char)0x00).DATA�join_round This macro is defined in <drawmod.h=>drawmod>. It is a value representing a rounded join. Is it defined as ((unsigned char)0x01).DIR$���rF�����$�arith_dtF����*�$�env_DvF���zɯ$umem_�vF������$.os_DATA�Arithmetic Functions These functions have been optimised to make them very fast. #Indent 5 #Table 3 20 <_kernel_sdiv> <_kernel_sdiv10> <_kernel_srem> <_kernel_udiv> <_kernel_udiv10> <_kernel_urem> #EndTable #Indent 0 The division functions also calculate the remainder and return it in the second argument (a2). Although this is not accessible from C, using this feature when interfacing from Assembly Language could be a potential timesaver.DATA�Environment Management Functions #Table 9 <_kernel_current_stack_chunk> <_kernel_unwind> <_kernel_procname> <_kernel_language> <_kernel_command_string=>_kernel_command_str> <_kernel_setreturncode> <_kernel_exit> <_kernel_raise_error> <_kernel_exittraphandler> <_kernel_hostos> <_kernel_fpavailable> <_kernel_last_oserror=>_kernel_last_oserro> <_kernel_getenv> <_kernel_setenv> <_kernel_escape_seen> <_kernel_irqs_on> <_kernel_irqs_off> <_kernel_irqs_disabled> #EndTableDATAuMemory Management Functions #Indent 2 <_kernel_alloc> <_kernel_register_allocs> <_kernel_register_slotextend>DATA.Operating System Calls Functions #Indent 2 #Table 7 <_kernel_swi> <_kernel_swi_c> <_kernel_osbyte> <_kernel_osrdch> <_kernel_oswrch> <_kernel_osbget> <_kernel_osbput> <_kernel_osgbpb> <_kernel_osword> <_kernel_osfind> <_kernel_osfile> <_kernel_osargs> <_kernel_oscli> <_kernel_system> #EndTableDATADeskLib:Kbd.h Version: 1.01 (24 Jul 1993) #line This header declares functions for reading keypresses: Functions: #indent 1 #Table columns 3 <Kbd_KeyDown> <Kbd_GET> <Kbd_GetModifiers> #EndTable #indent Types: #indent 9 #Table 1 20 <kbd_neginkey> <kbd_modifiers> #EndTableDIR$���yF���O�0%@GET{F��� �0%�GetModifiers�|F�����0%EKeyDown8~F���a�0%�modifiers�F�����0%�neginkey��F��� V&TLDATA@Kbd_GET Syntax: char Kbd_GET (void); Header: <DeskLib:Kbd.h=>Kbd> Returns: ASCII code of next key pressed. This function reads a character from the current input stream. It waits until one is available, so may halt the program temporarily. This function is identical to OS_ReadC, or <GET=>Basic:GET> in Basic.DATA�Kbd_GetModifiers Syntax: <modifiers> Kbd_GetModifiers (<BOOL> lr); Header: <TimsLib:Kbd.h=>Kbd_TL> Syntax: <kbd_modifiers> Kbd_GetModifiers (<BOOL> lr); Header: <DeskLib:Kbd.h=>Kbd> Returns: The status of the modifier keys. This function finds out the state of various modifier ({*}Shift{*}, {*}Ctrl{*} etc) keys. If /lr/ is <TRUE> then the structure returned will correctly contain the state of the individual left and right keys, else either will count.DATAEKbd_KeyDown Syntax: <BOOL> Kbd_KeyDown (int keynum); Header: <DeskLib:Kbd.h=>Kbd> Returns: <TRUE> if the key is being pressed. This function checks to see if the given key is currently being pressed (not depressed - we're not interested in its mental state). /keynum/ is (-1)-<internal key number=>SWI:os_byte121a>DATA�kbd_modifiers This type is defined in <DeskLib:Kbd.h=>Kbd>. It is a structure used to hold the status of the modifier keys as follows: \{ unsigned alt : 1; unsigned ctrl : 1; unsigned shift : 1; unsigned left_alt : 1; unsigned left_ctrl : 1; unsigned left_shift : 1; unsigned right_alt : 1; unsigned right_ctrl : 1; unsigned right_shift : 1; }DATA�kbd_neginkey This enumerated type is defined in <DeskLib:Kbd.h=>Kbd>. It contains the negative inkey codes returned by the keys you are most likely to need to test for in a Wimp environemnt. \{ inkey_ADJUST = -12, /* Adjust button */ inkey_MENU = -11, /* Menu button */ inkey_SELECT = -10, /* Select button */ inkey_RALT = -9, /* Right ALT key */ inkey_LALT = -6, /* Left ALT key */ inkey_ALT = -3, /* Either ALT key */ inkey_RCTRL = -8, /* Right CTRL key */ inkey_LCTRL = -5, /* Left CTRL key */ inkey_CTRL = -2, /* Either CTRL key */ inkey_RSHIFT = -7, /* Right SHIFT key */ inkey_LSHIFT = -4, /* Left SHIFT key */ inkey_SHIFT = -1 /* Either SHIFT key */ }DATATimsLib:Kbd.h This header declares one function and type for the purpose of reading the status of the modifier keys (Shift, Ctrl etc). This is useful in handling mouse clicks sometimes (eg Shift- Select on !Printers). Function: <Kbd_GetModifiers> Type: <modifiers>DATA7kernel.h The \<kernel.h> header declares many functions which access the built in features of RISC OS. Obviously, programs using these functions will not be portable between different computers unless the same functions are available on both. It also defines ten types and two macros. Functions: #Indent 4 #Table 2 25 <Environment Management=>k_env_> <Operating System Calls=>k_os_> <Memory Management=>k_mem_> <Arithmetic=>k_arith_> #EndTable #Indent 0 Macros: #Indent 11 #Table 1 20 <_kernel_NONX> <_kernel_ERROR> #EndTable #Indent 0 Types: #Indent 7 #Table 5 23 <_kernel_oserror> <_kernel_stack_chunk> <_extended_fp_number> <_kernel_unwindblock> <_kernel_swi_regs> <_kernel_osgbpb_block=>_kernel_osgbpb_bloc> <_kernel_osfile_block=>_kernel_osfile_bloc> <allocproc> <freeproc> <_kernel_ExtendProc> #EndTableDATAIDeskLib:KernelSWIs.h Version: 1.02 (3 Jul 1994) #line This header declares three low-level functions. Functions: #indent 3 #Table columns 2 <OS_Byte=>OS_Byte_> <OS_Word> <OS_ReadVarVal> <OS_ReadModeVariable> #EndTable #indent Types: #indent 4 #Table columns 2 <osbyte_number> <osword_number> <mode_variable> #EndTableDIR$LL��F����LF&�blockd�F�����E&�pressDATA�key_block This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure containing information returned by a Key_Pressed event. \{ <caret_block> caret; <key_press> code; }DATA�key_press This type is defined in <DeskLib:Wimp.h=>Wimp> as a type capable of holding a key code as returned by the Wimp. It is actually defined as an /int/.DATAxDeskLib:KeyCodes.h Version: 1.00 (24 Jan 1992) This header defines all the keycodes (as used by the WIMP) of special keys using the following macros: #table 34 19 BACKSPACE RETURN ESCAPE HOME DELETE F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PRINT TAB COPY CURSORLEFT CURSORRIGHT CURSORDOWN CURSORUP PAGEDOWN PAGEUP INSERT SHIFT_BACKSPACE � SHIFT_RETURN � SHIFT_ESCAPE � SHIFT_HOME � SHIFT_DELETE � SHIFT_F1 SHIFT_F2 SHIFT_F3 SHIFT_F4 SHIFT_F5 SHIFT_F6 SHIFT_F7 SHIFT_F8 SHIFT_F9 SHIFT_F10 SHIFT_F11 SHIFT_F12 SHIFT_PRINT SHIFT_TAB SHIFT_COPY SHIFT_CURSORLEFT SHIFT_CURSORRIGHT SHIFT_CURSORDOWN SHIFT_CURSORUP SHIFT_PAGEDOWN SHIFT_PAGEUP SHIFT_INSERT CTRL_BACKSPACE � CTRL_RETURN � CTRL_ESCAPE � CTRL_HOME � CTRL_DELETE � CTRL_F1 CTRL_F2 CTRL_F3 CTRL_F4 CTRL_F5 CTRL_F6 CTRL_F7 CTRL_F8 CTRL_F9 CTRL_F10 CTRL_F11 CTRL_F12 CTRL_PRINT CTRL_TAB CTRL_COPY CTRL_CURSORLEFT CTRL_CURSORRIGHT CTRL_CURSORDOWN CTRL_CURSORUP CTRL_PAGEDOWN CTRL_PAGEUP CTRL_INSERT CTRL_A CTRL_B CTRL_C CTRL_D CTRL_E CTRL_F CTRL_G CTRL_H CTRL_I CTRL_J CTRL_K CTRL_L CTRL_M CTRL_N CTRL_O CTRL_P CTRL_Q CTRL_R CTRL_S CTRL_T CTRL_U CTRL_V CTRL_W CTRL_X CTRL_Y CTRL_Z CTRL_SHIFT_BACKSPACE � CTRL_SHIFT_RETURN � CTRL_SHIFT_ESCAPE � CTRL_SHIFT_HOME � CTRL_SHIFT_DELETE � CTRL_SHIFT_F1 CTRL_SHIFT_F2 CTRL_SHIFT_F3 CTRL_SHIFT_F4 CTRL_SHIFT_F5 CTRL_SHIFT_F6 CTRL_SHIFT_F7 CTRL_SHIFT_F8 CTRL_SHIFT_F9 CTRL_SHIFT_F10 CTRL_SHIFT_F11 CTRL_SHIFT_F12 CTRL_SHIFT_PRINT CTRL_SHIFT_TAB CTRL_SHIFT_COPY CTRL_SHIFT_CURSORLEFT CTRL_SHIFT_CURSORRIGHT CTRL_SHIFT_CURSORDOWN CTRL_SHIFT_CURSORUP CTRL_SHIFT_PAGEDOWN CTRL_SHIFT_PAGEUP CTRL_SHIFT_INSERT #endtable All macros are preceded by 'keycode_'. Those marked with a '�' are defined as UNDEFINED, ie -1. They return the same code as their base key eg SHIFT-RETURN gives the same code as just RETURN. To detect the SHIFT version, you need to use <Kbd_KeyDown>.DIR$00��F������/,L_ȕF����<�"�labs��F���Ȣ�/0Largest_�F����/�LC_p�F���Z<�"jlconvܞF���}��/,LDBL_��F����"�ldexp��F����}�"jLDF�F���bA�"�ldivԦF���T��/(ldiv_�F����m�"%LDR�F����N�%PLeafNamed�F���F(V&Libx�F������/`lib_<�F���먻"olimits��F������/linkdir_4�F���X�?%LinkList<�F���\��/ LinkList_�F���л"6locale8�F�����"�localeconv�F������"�localtime�F���Q�".log4�F����-�"log10L�F������/DLONG_��F���3�"�longjmpDIR$,,[E F����^�7�tmpnamFREE��D pnam #Parent stdio The macro L_tmpnam is defined in <stdio.h=>stdio> as the length of the longest filename that will be used by the function <tmpnam>. In Easy C it is defined as the same as <FILENAME_MAX=>FILENAME_M>.DATA�labs Syntax: long int labs (long int x); Header: <stdlib.h=>stdlib> Returns: The absolute value of x. This function is identical to the function <abs>, except that all numbers involved are long ints.DIR$00̖F����(#3path_strDATA3Largest_path_str This type is defined in <drawftypes.h=>drawftypes> as a type whose size is the same as that of the largest path component. It is defined as the following union: \{ <Path_movestr> a; <Path_linestr> b; <Path_curvestr> c; <Path_closestr> d; <Path_termstr> e; }DIR$��̘F����B�"�ALLP�F���F�"�COLLATE�F����I�"�CTYPE��F���JL�"�MONETARY0�F���O�"�NUMERICԛF����Q�"�TIMEDATA�LC_ALL This macro is defined in <locale.h=>locale>. It is used with the <setlocale> function and represents all information.DATA�LC_COLLATE This macro is defined in <locale.h=>locale>. It is used with the <setlocale> function and represents information regarding string collation.DATA�LC_CTYPE This macro is defined in <locale.h=>locale>. It is used with the <setlocale> function and represents information regarding character type.DATA�LC_MONETARY This macro is defined in <locale.h=>locale>. It is used with the <setlocale> function and represents information regarding monetary formatting.DATA�LC_NUMERIC This macro is defined in <locale.h=>locale>. It is used with the <setlocale> function and represents information regarding numeric string format.DATA�LC_TIME This macro is defined in <locale.h=>locale>. It is used with the <setlocale> function and represents information regarding time formatting.DATAjstruct lconv This structure is defined in <locale.h=>locale>. It contains information about the current locale, mainly various country-dependent symbols. \{ char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; }DIR$,,�F���I͵";DIGD�F���P͵"?EPSILON��F������"�MANT_DIG�F���μ"�MAX��F������"�MAX_10_EXPH�F���4��"�MAX_EXPԢF����ڼ"�MINl�F�����"�MIN_10_EXP�F���ՠ�"�MIN_EXPDATA;LDBL_DIG This macro is defined in <float.h=>float>.DATA?LDBL_EPSILON This macro is defined in <float.h=>float>.DATA�LDBL_MANT_DIG This macro is defined in <float.h=>float>. It gives the number of digits in the mantissa of a variable of type 'long double'.DATA�LDBL_MAX This macro is defined in <float.h=>float>. It gives the maximum positive value that can be stored in a variable of type 'long double'.DATA�LDBL_MAX_10_EXP This macro is defined in <float.h=>float>. It gives the maximum base 10 exponent a variable of type 'long double' can contain.DATA�LDBL_MAX_EXP This macro is defined in <float.h=>float>. It gives the maximum exponent a variable of type 'long double' can contain.DATA�LDBL_MIN This macro is defined in <float.h=>float>. It gives the minimum positive value that can be stored in a variable of type 'long double'.DATA�LDBL_MIN_10_EXP This macro is defined in <float.h=>float>. It gives the minimum base 10 exponent a variable of type 'long double' can contain.DATA�LDBL_MIN_EXP This macro is defined in <float.h=>float>. It gives the minimum exponent a variable of type 'long double' can contain.DATA�ldexp Syntax: double ldexp (double x, int y); Header: <math.h=>math> Returns: x multiplied by (2 to the power of y) This function calculates x * (1 \<\< y). This is a calculation quite frequently performed so is a useful shortcut.DATAjLDF <register>,<address> This is equivalent to <LDR>, but for floating point registers and values.DATA�ldiv Syntax: <ldiv_t> ldiv (long int x, long int y); Header: <stdlib.h=>stdlib> Returns: The quotient and remainder of x/y. This function is identical to the function <div>, except that all numbers involved are long ints.DIR$((��F���>t�"�tDATA�ldiv_t The type {/}ldiv_t{/} is defined in <stdlib.h=>stdlib> for holding return values from the function <ldiv>. It is defined as the following structure: \{ long int quot; /* Quotient */ long int rem; /* Remainder */ }DATA%LDR <register>,<address> This sets the given register to contain the contents of the given address (usually a label). The contents are a word, unless LDRB is used in which case only a byte is loaded. #fCode LDR R0,label ... .label <DCD> 10 #f r0 will contain 10.DATAPLeafName Syntax: char *LeafName (char *pathname); Header: <DeskLib:Str.h=>Str_DL> Returns: Pointer to leaf name. This function scans through /pathname/ until it reaches the final '.' and then returns a pointer to the next character, ie the leaf name if /pathname/ is a full pathname. If no '.' is found, it returns /pathname/.DATATimsLib:Lib.h This header defines all the useful miscellaneous bits which couldn't be found a home elsewhere... Functions: #Indent 6 #Table 5 15 <StrSave> <StrSaveDbug> <MakeCR> <MakeASCIIZ> <HexDigit> <NumFromHexDigit> <stricmp> <strnicmp> <SplitPathname> #EndTableDIR$``جF���>(�"S!Root,�F����n�":copyright_h�F����6�"�create_�F���m^�"�delete_��F����e�"�extract_��F����L�"�history_��F���!y�"Bidentification_ĵF���'V�"Binsert_�F���pD�"zlist_��F���h>�"�verify_DATASLibraries Libraries are files containing one or more object files which can be linked in with applications. Object files inserted into libraries are called 'modules', and may contain one or more functions. The fewer functions in a module, the less unnecessary code will be pulled in when you use one of them, however linking will be slower. Easy C provides a library facility as described below: The directives are used with the 'library' command. They are prefixed by "-". Help can be got by using <*Help library>. A summary of the directibes used is shown below. #Indent 15 #Table columns 3 <\-create=>lib_create_> <\-verify=>lib_verify_> <\-list=>lib_list_> <\-history=>lib_history_> <\-insert=>lib_insert_> <\-delete=>lib_delete_> <\-extract=>lib_extract_> <\-copyright=>lib_copyright_> <\-identification=>lib_identification_> #EndTableDATA:-copyright Abbreviation: -co Syntax: -copyright=\<text> This directive specifies the copyright message for a library. If there are spaces in it, it must be enclosed in quotes. It can only be used with the <\-create=>lib_create_> directive. #wrap off eg {fCode}*library NewLib -create -co="(C) G Boden 94"DATA�-create Abbreviation: -c This directive allows a new library to be created containing no functions. #wrap off eg {fCode}*library NewLib -createDATA�-delete Abbreviation: -d Syntax: -delete=\<modulename> This directive deletes object file(s) (modules) from a library. #wrap off eg {fCode}*library NewLib -delete=module1DATA�-extract Abbreviation: -e Syntax: -extract=\<modulename> This directive extracts an object file (module) from a library and saves it on disc. #wrap off eg {fCode}*library NewLib -extract=utilsDATA�-history Abbreviation: -h Syntax: -history=\<state> This directive controls the library history mechanism. Switch it on or off using -history=on or -history=off. To display it just use -history. #wrap off eg {fCode}*library ROSLib -historyDATAB-identification Abbreviation: -id Syntax: -identification=\<text> This directive specifies the identification text for a library. If there are spaces in it, it must be enclosed in quotes. It can only be used with the <\-create=>lib_create_> directive. #wrap off eg {fCode}*library NewLib -create -id="My Library"DATAB-insert Abbreviation: -i Syntax: -insert=\<objectfile> This directive inserts object file(s) (module) into a library. The module should be in AOF format, but does not have to be generated from Easy C (eg it could be from Pascal, Desktop Assembler etc). #wrap off eg {fCode}*library NewLib -insert=module1,module2DATAz-list Abbreviation: -l This directive lists the contents of a library. #wrap off eg {fCode}*library ROSLib -listDATA�-verify Abbreviation: -v This directive verifies the integrity of a library. In addition it displays information about a library. #wrap off eg {fCode}*library STDCLib -verifyDATAolimits.h #Parent ansi_ The \<limits.h\> header declares many macros which indicate the maximum and minimum values which may be placed in integer variables. #Table 6 14 <CHAR_BIT> <SCHAR_MIN> <SCHAR_MAX> <UCHAR_MAX> <CHAR_MIN> <CHAR_MAX> <MB_LEN_MAX> <SHRT_MIN> <SHRT_MAX> <USHRT_MAX> <INT_MIN> <INT_MAX> <UINT_MAX> <LONG_MIN> <LONG_MAX> <ULONG_MAX> #EndTableDIR$ĺF���L��"�!Root��F���E��"�base_P�F���t��"�debug_ܽF������"�desktop_|�F������"�image_\�F�����"blibrary_��F������"�map_��F������"�throwback_DATA�Linker Directives This information is for Easy C only: These are only used when compiling from the command line using the 'link' command. They are prefixed by "-". Help can be got by using <*Help link>. A summary of the directives used is shown below. #indent 6 #Table 3 16 <\-image=>linkdir_image_> <\-library=>linkdir_library_> <\-base=>linkdir_base_> <\-debug=>linkdir_debug_> <\-map=>linkdir_map_> <\-throwback=>linkdir_throwback_> <\-desktop=>linkdir_desktop_> #EndTableDATA�-base Abbreviation: -b Syntax: -base=\<address> Default: -base=&8000 This qualifier allows you to specify the base address of the executable code produced.DATA�-debug Abbreviation: -d Default: -nodebug This qualifier causes the linker to include debugging information with the linked file.DATA�-desktop Abbreviation: -des Default: -desktop This qualifier causes the linker to accept full pathnames instead of using its usual naming conventions.DATA�-image Abbreviation: -i Syntax: -image=\<pathname> This qualifier allows you to specify the filename of the executable file produced. Normally it is the same as the object name and placed in the current directory.DATAb-library Abbreviation: -l Syntax: -library=\<libraries> Default: -library=STDCLib This qualifier allows you to specify the libraries linked with the object file. STDCLib contains the standard ANSI functions and other essential bits, and ROSLib is the RISC OS functions. In addition DeskLib has its own library. eg {fCode}-library=STDCLib,ROSLibDATA�-map Abbreviation: -m Syntax: -map=\<pathname> Default: -nomap This qualifier causes the linker to produce a map file. This is normally stored in subdirectory "map", but you can specify your own pathname.DATA�-throwback Abbreviation: -th Default: -nothrowback This qualifier causes the linker to produce "Throwback" output to a suitable external editor.DATADeskLink:LinkList.h Version: 1.33 (30 May 1994) #line This header declares functions and one type for handling linked lists easily. Functions: #indent 6 #Table columns 2 <LinkList_AddToHead> <LinkList_AddToTail> <LinkList_InsertBefore> <LinkList_InsertAfter> <LinkList_InList> <LinkList_ListLength> <LinkList_Unlink> <LinkList_FirstItem> <LinkList_LastItem> <LinkList_Init> <LinkList_InitItem> <LinkList_NextItem> <LinkList_PreviousItem> #EndTable #indent Type: {align centre}<linklist_header>{align} Items in a linked list are defined as structures, whose first member should be a {*}linklist_header{*}. The rest of the structure may contain the data required in the list but this method ensures that item pointers can be used as {*}linklist_header{*} pointers.DIR$ \�F���J�?%�AddToHeadD�F�����?%�AddToTail,�F�����V&Append0�F����V&�First$�F����?%'FirstItemL�F���j�V&�Free��F�����V&KFreeData$�F�����?%uheader��F����?%&Init��F���M�?%(InitItem��F����?%_InListL�F���s�?%4InsertAfter��F���Ɠ?%7InsertBefore��F�����V&�Last��F���Ʊ?%#LastItem��F���D�?%�ListLengthp�F�����V&nNext��F���>�?%NNextItem0�F�����V&Prepend8�F���P�V&vPrevious��F���f�?%_PreviousItem�F����V&~TL��F����?%oUnlinkDATA�LinkList_AddToHead Syntax: void LinkList_AddToHead (<linklist_header> *anchor, linklist_header *item); Header: <DeskLib:LinkList.h=>LinkList> This function adds an item to the head of the linked list whose anchor is given.DATA�LinkList_AddToTail Syntax: void LinkList_AddToTail (<linklist_header> *anchor, linklist_header *item); Header: <DeskLib:LinkList.h=>LinkList> This function adds an item to the tail of the linked list whose anchor is given.DATALinkList_Append Syntax: void LinkList_Append (void *anchor, void *item); Header: <TimsLib:LinkList.h=>LinkList_TL> This function-like macro adds the item whose pointer is given to the end of the list whose anchor is given, using <LinkList_AddToTail>.DATA�LinkList_First Syntax: void *LinkList_First (void *anchor); Header: <TimsLib:LinkList.h=>LinkList_TL> Returns: Pointer to the first item. This function-like macro returns a pointer to the first item of the list whose anchor is given.DATA'LinkList_FirstItem Syntax: void *LinkList_FirstItem (<linklist_header> *anchor); Header: <DeskLib:LinkList.h=>LinkList> Returns: Pointer to first item. This function returns a pointer to the first item in the list whose anchor is given. It is actually defined as a function-like macro.DATA�LinkList_Free Syntax: void LinkList_Free (<linklist_header> *anchor); Header: <TimsLib:LinkList.h=>LinkList_TL> This function de-allocates the memory used by all the members of the list whose anchor is given (using <free>), and then de-allocate the space used by the anchor (again using free). Note that it will not deallocate any memory whose pointer is contained within a list item.DATAKLinkList_FreeData Syntax: void LinkList_FreeData (<linklist_header> *anchor); Header: <TimsLib:LinkList.h=>LinkList_TL> This function de-allocates the memory used by all the members of the list whose anchor is given (using <free>). Note that it will not deallocate any memory whose pointer is contained within a list item.DATAulinklist_header This type is defined in <DeskLib:LinkList.h=>LinkList> as a type capable of holding pointers to the previous and next records in a linked list. It is also used as an anchor for the linked list, holding pointers to the first and last items. typedef struct \{ struct linklist_header *next; struct linklist_header *previous; } linklist_header;DATA&LinkList_Init Syntax: void LinkList_Init (<linklist_header> *anchor); Header: <DeskLib:LinkList.h=>LinkList> This function initialises a list anchor. This should be called before the anchor is used. It is defined as a function-like macro and simply initialises both pointers to <NULL>.DATA(LinkList_InitItem Syntax: void LinkList_InitItem (<linklist_header> *item); Header: <DeskLib:LinkList.h=>LinkList> This function initialises a list item. This should be called before the item is used. It is defined as a function-like macro and simply initialises both pointers to <NULL>.DATA_LinkList_InList Syntax: <BOOL> LinkList_InList (<linklist_header> *anchor, linklist_header *item); Header: <DeskLib:LinkList.h=>LinkList> Returns: <TRUE> if item is in list. This function scans through a linked list (whose anchor is given) to see if any of the pointers point to the item given. Note that it does not check the item contents!DATA4LinkList_InsertAfter Syntax: void LinkList_InsertAfter (<linklist_header> *anchor, linklist_header *pos, linklist_header *item); Header: <DeskLib:LinkList.h=>LinkList> This function inserts the item whose pointer is given in the linked list whose anchor is given, after the item pointed to by /pos/.DATA7LinkList_InsertBefore Syntax: void LinkList_InsertBefore (<linklist_header> *anchor, linklist_header *pos, linklist_header *item); Header: <DeskLib:LinkList.h=>LinkList> This function inserts the item whose pointer is given in the linked list whose anchor is given, before the item pointed to by /pos/.DATA�LinkList_Last Syntax: void *LinkList_Last (void *anchor); Header: <TimsLib:LinkList.h=>LinkList_TL> Returns: Pointer to the lastt item. This function-like macro returns a pointer to the last item of the list whose anchor is given.DATA#LinkList_LastItem Syntax: void *LinkList_LastItem (<linklist_header> *anchor); Header: <DeskLib:LinkList.h=>LinkList> Returns: Pointer to last item. This function returns a pointer to the last item in the list whose anchor is given. It is actually defined as a function-like macro.DATA�LinkList_ListLength Syntax: int LinkList_ListLength (<linklist_header> *anchor); Header: <DeskLib:LinkList.h=>LinkList> Returns: Number of items in list. This function scans through a linked list (whose anchor is given) and counts the number of items it finds. Consequently it may be quite slow in computing terms so if you need this information regularly, alter your program to keep track of it as it changes.DATAnLinkList_Next This is just a <#define=>define>d alternative name for the function <LinkList_NextItem>.DATANLinkList_NextItem Syntax: void *LinkList_NextItem (void *item); Header: <DeskLib:LinkList.h=>LinkList> Returns: Pointer to next item, or <NULL>. This function returns the next item along the list from the given item. If this item is the last one, NULL is returned. This function is actually defined as a function-like macro.DATALinkList_Prepend Syntax: void LinkList_Prepend (void *anchor, void *item); Header: <TimsLib:LinkList.h=>LinkList_TL> This function-like macro adds the item whose pointer is given to the start of the list whose anchor is given, using <LinkList_AddToHead>.DATAvLinkList_Previous This is just a <#define=>define>d alternative name for the function <LinkList_PreviousItem>.DATA_LinkList_PreviousItem Syntax: void *LinkList_PreviousItem (void *item); Header: <DeskLib:LinkList.h=>LinkList> Returns: Pointer to previous item, or <NULL>. This function returns the previous item along the list from the given item. If this item is the first one, NULL is returned. This function is actually defined as a function-like macro.DATA~TimsLib:LinkList.h This header is an extension to <DeskLib:LinkList.h=>LinkList>, providing some useful extra facilities. Functions: #Indent 4 #Table 2 21 <LinkList_Free> <LinkList_FreeData> <LinkList_Next> <LinkList_Previous> #EndTable #indent 0 Function-like macros: #Indent 6 #Table 2 21 <LinkList_First> <LinkList_Last> <LinkList_Append> <LinkList_Prepend> #ENdtableDATAoLinkList_Unlink Syntax: void LinkList_Unlink (<linklist_header> *anchor, linklist_header *item); Header: <DeskLib:LinkList.h=>LinkList> This function unlinks the item from the list whose anchor is given. It does this by making the item before this one point to the item after this one and vice versa. Once unlinked, you can free the memory used by this item.DATA6locale.h The header \<locale.h> declares functions, a type and some macros relating to the current locale. Functions: #Table 1 <localeconv> <setlocale> #EndTable #Indent 0 Type: <struct lconv=>lconv> Macros: #Table 2 <LC_ALL> <LC_COLLATE> <LC_CTYPE> <LC_MONETARY> <LC_NUMERIC> <LC_TIME> #EndTableDATA�localeconv Syntax: <struct lconv=>lconv> *localeconv (void); Header: <locale.h=>locale> Returns: Pointer to locale information. This function returns information about the current locale in a structure.DATA�localtime Syntax: <struct�tm> *localtime (<time_t> *timer); Header: <time.h=>time_h> Returns: Pointer to the broken-down time. This function converts the calendar time pointed to by /timer/ into a broken-down time expressed in local time.DATA.log Syntax: double log (double x); Header: <math.h=>math> Returns: The natural logarithm of x. This function calculates the natural logarithm of x, ie the power to which e ( = <exp>(1) = 2.71828183� ) must be raised in order to obtain x. Frequently called �LN� in non-C environments eg Basic.DATAlog10 Syntax: double log10 (double x); Header: <math.h=>math> Returns: The base ten logarithm of x. This function calculates the base 10 logarithm of x, ie the power to which 10 must be raised in order to obtain x. Frequently called �LOG� in non-C environments eg Basic.DIR$DD��F�����"�MAX<�F���%�"�MINDATA�LONG_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in a long int. In Easy C it is defined as 0x7fffffff (2147483647).DATA�LONG_MIN This macro is defined in <limits.h> and represents the minimum value which can be stored in a long int. In Easy C it is defined as 0x80000000 (-2147483648).DATA�longjmp Syntax: void longjmp (<jmp_buf> env, int n); Header: <setjmp.h=>setjmp_h> This function jumps to the position of the most recent <setjmp> call. It jumps in to the code by pretending to return from the setjmp call, and returns the value given in n (instead of zero, which is returned if setjmp is called directly). The environment should be that which is passed to the setjmp call. Please try not to use this - write structured programs instead!DIR$����F������/�m_4�F����cZ&�maelstrom��F����ð$Kmagnify8�F���}��/,magnify_��F������/,make_�F���UMV&�MakeASCIIZ�F����GV&�MakeCR�F���Oj�(�malloc�F�����V&MallocDbug�F�����/,MallocDbug_�F�����"fmath0F�����$�MAX�F���a��/0MAX_�F������/LMB_�F���Y��"mblen� F�����"�mbstowcsl F���l��"�mbtowc,F����@%^Mem�F�����/�Mem_P"F������"-memchr�#F���"#�"tmemcmp�$F������" memcpy&F���/��"pmemmove�'F�����V&�MemoryDumpp(F���̉�"�memseth)F���K�G#�menuD+F������/�Menu_<�F������/�message_�F�����$�MIN��F���4��"�mktime��F���P��"HmodfܮF���#V&�modifiersd�F���i�C%�Module�F���l��/LModule_��F������/,mouse_�F���@�C%5Msgs�F���/�Msgs_�F����>%�mode_variableDIR$��P�F���~�"wexp/log_��F���]l�"[hyper_$�F���z��"dmisc_��F����3�";power_��F���]b�"ntrig_DATAwExponential/Logarithmic Functions #Parent math #indent 6 #Table 1 <exp> <frexp> <ldexp> <log> <log10> #EndTableDATA[Hyperbolic Functions #Parent math #indent 5 #Table 1 <cosh> <sinh> <tanh> #EndTableDATAdMiscellaneous Functions #Parent math #Table 1 <ceil> <fabs> <floor> <fmod > <modf> #EndTableDATA;Power Functions #Parent math #Indent 7 <pow> <sqrt>DATAnTrigonometric Functions #Parent math #Table 1 <acos> <asin> <atan> <atan2> <cos> <sin> <tan> #EndTableDATA�Maelstrom Software #Sprite 0,0 maelstrom Maelstrom Software are: � <Gareth Boden=>GBoden> � Stephen Crouch � Ainsley Pereira � Andrew Pepperell � Brett GibsonDATAKmagnify.h This header declares just one function: <magnify_select>DIR$,,d�F���wݰ$�selectDATA�magnify_select Syntax: void magnify_select (int *mul, int *div, int maxmul, int maxdiv, void (*proc)(void *), void *handle); Header: <magnify.h=>magnify> This function displays a dialogue box (called "magnifier") to set magnification factors. /mul/ and /div/ are the initial values of the ration, and /maxmul/ and /maxdiv/ are their respective limits. The template "magnifier" must be loaded and have a similar definition to those used in !Draw or !Paint. /mul/ and /div/ are updated automatically. The function /proc/ is called each time the magnification changes. The function should be of the form: {fCode;align centre}void proc (void *handle);DIR$,,$�F�����"�!RootDATA�Make Files Make Files provide an easy way to deal with compiling and linking multiple source files. In Easy C, Make Files can be created automatically for you. Simply drag the files you want to compile and link to the Source and Object windows and then click Create. When you perform a Make, the Make facility only compiles/links those parts which are not up to date. Easy C Make files have the following format: Macro definitions Targets Dependencies Macro definitions are in the form: {fCode}MACRONAME = \<definition>{f} Targets specify what executable files are created from what objects. They are in the form: {fCode}\<target> : \<list of objects>{f} The list of objects are object names (specified in the proper RISC OS way eg "o.object") separated by spaces. Dependencies are in the form: {fCode}\<object file> : \<header file>{f} If the specified header file is altered then the Make facility recognises that the object file needs to be recompiled/linked.DATA�MakeASCIIZ Syntax: void MakeASCIIZ (char *s, int max_len); Header: <TimsLib:Lib.h=>Lib> This function converts the carriage return-terminated string pointed to by /s/ into a zero-terminated string. <MakeCR>() converts the other way.DATA�MakeCR Syntax: void MakeCR (char *s, int max_len); Header: <TimsLib:Lib.h=>Lib> This function converts the zero-terminated string pointed to by /s/ into a carriage return-terminated string. <MakeASCIIZ>() converts the other way.DATA�malloc Syntax: void *malloc (<size_t> size); Header: <stdlib.h=>stdlib> Returns: Pointer to space, or <NULL> if failed. This function allocates an area of memory of size specified. The contents of the space are undefined.DATATimsLib:MallocDbug.h This header provides facilities for tracking memory allocation. Functions: #Indent 7 #Table columns 3 <MallocDbug=>mallocdbug_> <FreeDbug> <MemoryDump> #EndTable #indent 0 Macros: #indent 16 #table 1 15 <mallocdbug=>mallocdbug_> <freedbug> #endtable #indent 0 On exit from your program, you can call <MemoryDump>, which will tell you any memory which has been mallocd but not freed. This module use <Trace=>Trace_TL> to do all its output and so will not work unless you have a copy of VDUStream.DIR$,,F���-�V&�!RootDATA�MallocDbug Syntax: void *MallocDbug (<size_t> size, char *filename, int line); Header: <TimsLib:MallocDbug.h=>MallocDbug> Returns: Pointer to the allocated block. This function is identical to <malloc>(), but remembers the file and line at which the call occurred. This function will normally be called transparently. The macro {*}mallocdbug{*} is defined to call this function in debug builds, and normal malloc in release builds.DATAfmath The \<math.h\> header declares a number of functions for floating point arithmetic. All the functions accept and return /double/ values. In addition, one macro is defined. Functions: #Indent 3 #Table 3 25 <Trigonometric=>m_trig_> <Hyperbolic=>m_hyper_> <Exponential/Logarithmic=>m_exp/log_> <Power=>m_power_> <Miscellaneous=>m_misc_> #EndTable #Indent 0 Macro: <HUGE_VAL> If the input arguments are outside a suitable range for the function (the domain), the value of the macro <EDOM> is stored in <errno>. Similarly, if the result is too big to be stored in a /double/, the function returns the value of the macro <HUGE_VAL> with the same sign as the true result - ie -{*}HUGE_VAL{*} if the result is negative. The value of the macro <ERANGE> is stored in <errno>. If the result is too small to be stored in a /double/, the function returns zero.DATA�MAX This macro is defined in <TimsLib:Core.h=>Core_TL> and <DeskLib:Core.h=>Core>. It is used to find the maximum of two values. MAX(x,y) will give you /x/ if x>y, or /y/ if x\<=y.DIR$00F���UU&�PATH_LENDATA�MAX_PATH_LEN This macro is defined in <TimsLib:File.h=>File_TL> as the maximum length of a pathname. It is actually defined as (256).DIR$LL�F�����"CUR_MAXF������"�LEN_MAXDATAMB_CUR_MAX The macro {/}MB_CUR_MAX{/} is defined in <stdlib.h=>stdlib> as a macro which represents the maximum number of bytes in a multibyte character specified by the current locale. Its value is never greater than <MB_LEN_MAX>. In Easy C it is defined as 1.DATA�MB_LEN_MAX This macro is defined in <limits.h> and represents the maximum length in bytes of a multibyte character. In Easy C it is defined as 1.DATAmblen Syntax: int mblen (char *s, <size_t> n); Header: <stdlib.h=>stdlib> Returns: See below. If /s/ is not a null pointer, then this function determines the number of bytes comprising the the multibyte character pointed to by /s/. It returns a 0 if /s/ points to a null character, or the number of bytes. If /s/ is not a valid multibyte character it returns - 1. At most /n/ bytes will be examined. If /s/ is a null pointer, this function returns zero if multibyte character encodings do not have state-dependent encodings.DATA�mbstowcs Syntax: <size_t> mbstowcs (<wchar_t> *pwcs, char *s, size_t n); Header: <stdlib.h=>stdlib> Returns: See below. Converts a sequence of multibyte characters that begins in the initial shift state from the array pointed to by /s/ into a sequence of corresponding codes and stores not more than /n/ codes into the array pointed to by /pwcs/. No multibyte character that follows a null character (which is converted into a code with value zero) will be examined or converted. Each multibyte character is converted as if by a call to the <mbtowc> function. If an invalid multibyte character is found, this returns -1, otherwise it returns the number of array elements modified.DATA�mbtowc Syntax: int mbtowc (<wchar_t> *pwc, char *s, <size_t> n); Header: <stdlib.h=>stdlib> Returns: See below. If /s/ is not a null pointer, then this function determines the number of bytes comprising the the multibyte character pointed to by /s/ and also determines the value of type /wchar_t/ which corresponds to that character and stores it in {/}*pwc{/}, if /pwc/ is not <NULL>. It returns a 0 if /s/ points to a null character, or the number of bytes. If /s/ is not a valid multibyte character it returns -1. At most /n/ bytes of the array will be examined. If /s/ is a null pointer, this function returns zero if multibyte character encodings do not have state-dependent encodings.DATA^DeskLib:Mem.h Version: 1.01 (22 May 1994) #line This header declares functions and types for dynamic memory management. Functions: #Indent 2 #Table columns 3 <Mem_Initialise> <Mem_Alloc> <Mem_MidExtend> <Mem_MoveAnchor> <Mem_Free> <Mem_Compact> <Mem_Size> <Mem_CheckHeap> #EndTable #Indent 0 Types: #Indent 14 #Table 1 21 <mem_anchor> <mem_compaction> #EndTable #Indent 0 Variable: {align centre}<mem_autocompact>{align} The advantage of these function over the standard ANSI functions <malloc> etc, is that these adjust the program's WimpSlot as needed, both increasing and decreasing it.DIR$��F����@%�Alloc�F����Y@%�anchor�F���p�@%�autocompact�F���UL@%�CheckHeap�F���C@%�CompactLF���kҵ"�compaction�F���>@%Free�F����@%�Initialise�F����'@%�MidExtend�F����7@%MoveAnchor�!F����H@%�SizeDATA�Mem_Alloc Syntax: <BOOL> Mem_Alloc (<mem_anchor> *anchor, int size); Header: <DeskLib:Mem.h=>Mem> Returns: <TRUE> if succeeded. This function attempts to allocate the given amount of memory ({/}size{/} bytes) in the Mem heap. The anchor whose pointer is given will point to this block, or will contain <NULL> if the function fails. The allocated block is guaranteed to be word-aligned. Depending on the setting of <mem_autocompact>, this function may relocate other Mem blocks.DATA�mem_anchor The type {*}mem_anchor{*} is defined in <DeskLib:Mem.h=>Mem> as a type capable of holding a pointer to a block of memory allocated by <Mem_Alloc>. It is actually defined as a {/}void *{/}.DATA�mem_autocompact This variable is declared by <DeskLib:Mem.h=>Mem> and defines the extent to which Mem will auto-compact. It can take values: mem_NOCOMPACT = 0 : Compact only when <Mem_Compact> is called. mem_FASTCOMPACT {wrap off} mem_PARTCOMPACT = 1 : ** DEFAULT SETTING ** {wrap} Compact only when necessary to allocate memory. mem_FULLCOMPACT = 2 : Compact every time space is freed. Changes to this variable take immediate effect.DATA�Mem_CheckHeap Syntax: <BOOL> Mem_CheckHeap (void); Header: <DeskLib:Mem.h=>Mem> Returns: <TRUE> if heap is valid. This functions checks the heap data structure, ie checks that all links are intact and anchors are consistent.DATA�Mem_Compact Syntax: void Mem_Compact (void); Header: <DeskLib:Mem.h=>Mem> This function compacts the Mem workspace, moving all free space to the end of the workspace and freeing memory back to the rest of the WIMP if possible. Anchors will be updated to reflect the new positions of blocks. Ideally, this should be called before each time you poll the WIMP. It may also be called by other Mem functions, depending on the setting of <mem_autocompact>.DATA�mem_compaction This type is defined by <DeskLib:Mem.h=>Mem>. It is an enumerated type used for the <mem_autocompact> variable.DATAMem_Free Syntax: void Mem_Free (<mem_anchor> *anchor); Header: <DeskLib:Mem.h=>Mem> This function releases a block of memory whose anchor is pointed to. The anchor will now contain <NULL>. This call may relocate other blocks, according to <mem_autocompact>.DATA�Mem_Initialise Syntax: <BOOL> Mem_Initialise (void); Header: <DeskLib:Mem.h=>Mem> Returns: <FALSE> if it fails. This function initialises the Mem system ready for use.DATA�Mem_MidExtend Syntax: <BOOL> Mem_MidExtend (<mem_anchor> *anchor, int at, int by); Header: <DeskLib:Mem.h=>Mem> Returns: <TRUE> if successful. This function attempts to alter the size of a Mem block, by inserting a block of /by/ bytes at offset /at/ within the block. If /by/ is negative then the {/}-by{/} bytes _below_ /at/ will be deleted. Either way, existing data (except that deleted) is preserved. This call may relocate other blocks, depending on the value of <mem_autocompact>.DATAMem_MoveAnchor Syntax: void Mem_MoveAnchor (<mem_anchor> *from, <mem_anchor> *to); Header: <DeskLib:Mem.h=>Mem> This function copies moves an anchor from one variable to another. This is necessary because, due to the relocating nature of Mem chunks, anchors are automatically updated. If you simply copy the value, the new anchor will not be updated. If this function works, the anchor pointed to by /from/ will contain <NULL>, and the anchor pointed to by /to/ will contain the previous contents of /from/.DATA�Mem_Size Syntax: int Mem_Size (<mem_anchor> *anchor); Header: <DeskLib:Mem.h=>Mem> Returns: Size in bytes This function finds the size of a Mem block whose anchor pointer is given.DATA-memchr Syntax: void *memchr (void *ptr, int c, <size_t> n); Header: <string.h=>string> Returns: Pointer to the found character, or a null pointer if not found. This function searches for /c/ (converted to an {/}unsigned char{/}) in the first /n/ characters of the object pointed to by /ptr/.DATAtmemcmp Syntax: int memcmp (void *ptr1, void *ptr2, <size_t> n); Header: <string.h=>string> Returns: Greater than, less than or equal to zero, depending if the object pointed to by {/}ptr1{/} is greater than, less than or equal to the object pointed to by {/}ptr2{/}. This function compares the first /n/ characters of each object and returns a value accordingly.DATA memcpy Syntax: void *memcpy (void *ptr1, void *ptr2, <size_t> n); Header: <string.h=>string> Returns: ptr1 This function copies /n/ characters from {/}ptr2{/} to {/}ptr1{/}. The areas to be copied must not overlap. If you want to copy between overlapping objects, use <memmove>.DATApmemmove Syntax: void *memmove (void *ptr1, void *ptr2, <size_t> n); Header: <string.h=>string> Returns: ptr1 This function copies /n/ characters from {/}ptr2{/} to {/}ptr1{/}. The areas to be copied may overlap, because it first of all copies from {/}ptr2{/} to a temporary buffer and then copies from there to {/}ptr1{/}. This makes it slower than <memcpy>.DATA�MemoryDump Syntax: void MemoryDump (void); Header: <TimsLib:MallocDbug.h=>MallocDbug> This function scans through the memory allocated by <MallocDbug=>MallocDbug_> and prints a list of blocks not deallocated with <FreeDbug>.DATA�memset Syntax: void *memset (void *ptr, int c, <size_t> n); Header: <string.h=>string> Returns: ptr This function sets the first /n/ characters of the object pointed to by /ptr/, to the value in /c/ (converted to an {/}unsigned char{/}).DATA�menu The type menu is defined in <menu.h=>menu_h> (Desktop C) and <TimsLib:Menu.h=>Menu_TL> as a type capable of holding an abstract menu handle. In Desktop C it is defined as the following structure: \{ <wimp_menuhdr> *m; /* The actual menu */ int nitems; void *entryspace; /* Submenus/Indirected */ int nbytes; int maxentrywidth; } and in TimsLib it is defined as an /int/, although it can be cast as a <menu_ptr> for low-level manipulation.DIR$��(4F����W&AddDialogBox85F��� �W&`AddDynamicDialogBox�6F���#�A%�AddSubMenu|7F�����W&adjust_pressed�8F�����W&�AttachMenul:F����W&sAttachMenuMaker�<F�����E& block?F����4B%-CalcHeight0@F���\W&_ColourMenu�AF�����W&�current_icon\BF����W&�current_window0CF�����C%�currentopen�CF����|C%�currentpos�DF����%A%�desc_(FF�����W&oDetachMenu�GF�����$Hdispose�HF���B8A%�ExtenddJF����"�$extend_lKF�����W&�FadeEntryLF����E&/flagsLPF����"B%#GetFlagspQF����.B%�GetText@RF��� �$h�SF���X�W&<handler�TF�����E&itemWF���(/�$%make_sprite8XF���E>�$tmake_writeable�YF���&�W&'maker�ZF���NB%�MakeWritable�\F����A%SNew�^F����P�$�new_�`F����JW&kNew__bF�����G#bptrpbF����kB%�RemoveItemlcF����HB%SDisposetdF����W&selection�eF����B%�SetFlags gF���vc�$asetflags_�hF����(B%�SetTextTiF����GA%?Show�jF�����W&PShow_�kF����OA%ShowLast�lF���<r�$�submenu�nF�����E&isubmenu_pF���E�W&�submenupos�pF�����$�syshandle�qF����BB%;SysHandle_$sF���m�W&9SysHandle__`tF�����W&�TickEntryuF�����,�TL�xF���\�W&�UnFadeEntryTyF�����W&�UnTickEntryzF����sB%tWarn|{F���̌A%�PopUpl|F�����A%PopUpAuto�}F�����A%�MakeIndirected�~F����cB%�FullDisposexF����B%�ReviseWidthx�F���pC%�FontMenu�F��� C%�FontMenu3��F����(C%+FontMenuDecodeЄF���Y/C%FontMenuDecode3ԅF���FfC%�FontMenu_NOTICKx�F����pC%�FontMenu_TICKSYSFONTDATAMenu_AddDialogBox Syntax: void Menu_AddDialogBox (<menu> m, int entry, <window_handle> win); Header: <TimsLib:Menu.h=>Menu_TL> This function attaches a window whose handle is given in /win/ as a submenu item (dialogue box) to the menu /m/ at the entry specified.DATA`Menu_AddDynamicDialogBox Syntax: void Menu_AddDynamicDialogBox (<window_handle> win); Header: <TimsLib:Menu.h=>Menu_TL> This function shows a window as a dialogue box. It should only be called by a menu selection handler when a menu warning message is received. The handler should create the window needed and pass its handle to this function.DATA�Menu_AddSubMenu Syntax: void Menu_AddSubMenu (<menu_ptr> menu, int entry, menu_ptr submenu); Header: <DeskLib:Menu.h=>DL_Menu> This function adds a submenu to existing menu at position /entry/ (the first entry being 0).DATAmenu_adjust_pressed This variable of type <BOOL> is defined in <TimsLib:Menu.h=>Menu_TL>. It contains <TRUE> if the menu is being shown because it is being recreated due to an adjust click. A menu maker can set this to <FALSE> to prevent the menu opening.DATA�Menu_AttachMenu Syntax: <BOOL> Menu_AttachMenu (<menu> m, <window_handle> win, <icon_handle> icon, <menu_handler> handler, void *ref); Header: <TimsLib:Menu.h=>Menu_TL> Returns: <TRUE> if successful. This function attaches a menu to a particular window and icon. Either of these can be {*}event_ANY{*} if they are required to be non-specific. The menu /m/ will be shown whenever the user clicks in the places specified. A selection off the menu will be handled by the /handler/.DATAsMenu_AttachMenuMaker Syntax: <BOOL> Menu_AttachMenuMaker (<menu_maker> maker, <window_handle> win, <icon_handle> icon, <menu_handler> handler, void *ref); Header: <TimsLib:Menu.h=>Menu_TL> Returns: <TRUE> if successful. This function attaches a menu to a particular window and icon. However, unlike <Menu_AttachMenu>, a new menu is created using the /maker/ rather than an existing menu shown. Either of these can be {*}event_ANY{*} if they are required to be non-specific. The function /maker/ will be shown whenever the user clicks in the places specified. A selection off the menu will be handled by the /handler/.DATA menu_block This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure holding a complete menu header (apart from the menu items): \{ char title [wimp_MAXNAME]; char titlefore,titleback; char workfore,workback; unsigned int width; unsigned int height; unsigned int gap; } This should be immediately followed in memory by the <menu_item>s. /titlefore/ - /workback/ are the colours of the menu. For a standard menu they should be 7,2,7 and 1 respectively. /gap/ should be 0, and /height/ should be 44.DATA-Menu_CalcHeight Syntax: int Menu_CalcHeight (<menu_ptr> menu); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Height in OS coords. This function calculates the height of a menu in OS coords. The only use for this is calculating position for icon bar menus, but <Menu_Show> can do this for you...DATA_Menu_ColourMenu Syntax: <menu> Menu_ColourMenu (char *t, char *last_item); Header: <TimsLib:Menu.h=>Menu_TL> Returns: Menu handle of the menu. This function creates a menu containing all 16 Wimp colours, with title /t/ and additional last item {/}last_item{/} eg "None". If {/}last_item{/} is <NULL> then only the 16 colour items are listed.DATA�menu_current_icon This variable of type <icon_handle> is defined in <TimsLib:Menu.h=>Menu_TL>. It contains the icon over which the last menu was popped up ie the current menu if it is still open.DATA�menu_current_window This variable of type <window_handle> is defined in <TimsLib:Menu.h=>Menu_TL>. It contains the window over which the last menu was popped up ie the current menu if it is still open.DATA�menu_currentopen The variable {*}menu_currentopen{*} is defined in <DeskLib:Menu.h=>DL_Menu> as a variable holding the <menu_ptr> of the last menu opened.DATA�menu_currentpos This variable is defined in <DeskLib:Menu.h=>DL_Menu>. It is of type <wimp_point>, and holds the position of the most recent menu shown with <Menu_Show>.DATA�Menu Descriptor A menu descriptor defines a sequence of entries in a menu. It consists of a string with each entry, separated by either ',' or '|'. Each entry may be prefixed by one or more of the following: ! Tick this entry ~ Shade this entry (cannot be selected) > This entry has a dialogue box Entries may not contain ',' or '|' and may not start with '!','~', or '>', for obvious reasons.DATAoMenu_DetachMenu Syntax: void Menu_DetachMenu (<window_handle> win, <icon_handle> icon); Header: <TimsLib:Menu.h=>Menu_TL> This function detaches any menus or menu makers from the given window (and optionally, the icon may also be specified). If /window/ is {*}event_ANY{*} then only handlers installed with the window set to {*}event_ANY{*} will be detached.DATAHmenu_dispose Syntax: void menu_dispose (<menu> *m, int rec); Header: <menu.h=>menu_h> (Desktop C) Syntax: void Menu_Dispose (<menu> m, <BOOL> rec); Header: <TimsLib:Menu.h=>Menu_TL> (TimsLib) This function disposes of the menu pointed to by /m/. If /rec/ is non-zero then all submenus are recursively disposed of also.DATA�Menu_Extend Syntax: <menu_ptr> Menu_Extend (menu_ptr menu, char *desc); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Pointer to menu. This function adds the <menu description=>menu_desc_> in /desc/ to the bottom of the menu whose pointer is given. If it cannot succeed, it returns the pointer to the original menu. See also the Desktop C function, <menu_extend=>menu_extend_>.DATAmenu_extend Syntax: void menu_extend (<menu> m, char *desc); Header: <menu.h=>menu_h> This function adds the <menu description=>menu_desc_> given to the bottom of the menu specified. A menu which is already a submenu of another menu cannot be extended.DATA�Menu_FadeEntry Syntax: void Menu_FadeEntry (<menu> m, int entry); Header: <TimsLib:Menu.h=>Menu_TL> This function-like macro shades the given entry in the given menu.DATA/menu_flags This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a type giving easy access to individual menu flags and their combined value. It is defined as the following union: \{ unsigned int value; struct \{ unsigned int ticked : 1; unsigned int dotted : 1; unsigned int writable : 1; unsigned int notifysub : 1; unsigned int openshaded : 1; unsigned int dummy2 : 2; unsigned int last : 1; unsigned int indtitle : 1; unsigned int dummy13 : 13; unsigned int shaded : 1; unsigned int dummy1 : 1; unsigned int foreground : 4; unsigned int background : 4; } data; } {tab} � /notifysub/ will cause the task to receive a message rather than opening a submenu. � /openshaded/ allows the submenu to be opened even if this entry is shaded. � /last/ should be set for the last entry in the menu. � /indtitle/ in the _first menu entry_ allows the title to be indirected. � /foreground/, /background/ and /shaded are useless and have no purpose. What are they doing here?DATA#Menu_GetFlags Syntax: void Menu_GetFlags (<menu_ptr> menu, int entry, int *tick, int *shade); Header: <DeskLib:Menu.h=>DL_Menu> This function reads the state of /entry/ in the given menu. It will set {/}*tick{/} or {/}*shade{/} to 1 if the entry is ticked or shaded, as appropriate.DATA�Menu_GetText Syntax: char *Menu_GetText (<menu_ptr> menu, int entry); Header: <DeskLib:Menu.h=>DL_Menu> Returs: Pointer to text. This function returns a pointer to the text of the given menu entry.DATAmenu.h The \<menu.h> header declares a number of functions for handling menus. It also defines one type relating to menus. Functions: {indent 9} #Table 4 <menu_dispose> <menu_extend=>menu_extend_> <menu_make_sprite> <menu_make_writeable> <menu_new=>menu_new_> <menu_setflags=>menu_setflags_> <menu_submenu> <menu_syshandle> #EndTable #indent 0 Type: {align centre}<menu> DATA<menu_handler This type is defined in <TimsLib:Menu.h=>Menu_TL>. It is a function used when selections are made from a menu. It has the form: {fCode;align centre}void myfunc (void *reference, int *hit);{f;align} where /reference/ is a user defined value and /hit/ is a -1 terminated list of menu selections.DATAmenu_item This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure containing the definition of a menu item: \{ <menu_flags> menuflags; <menu_submenu=>menu_submenu_> submenu; <icon_flags> iconflags; <icon_data> icondata; } If the entry has no submenu/window, {/}submenu.value{/} should be set to -1. Some bits of the iconflags are ignored: {tab} � Icon is always vertically centred. � Icon never needs help for redrawing � Button type is always 9 � ESG is always 0 � Deleted bit is ignoredDATA%menu_make_sprite Syntax: void menu_make_sprite (<menu> m, int entry, char *spr); Header: <menu.h=>menu_h> This function makes one menu entry in the specified menu into a sprite. Entry is the entry number and /spr/ is a pointer to the sprite name. The sprite is from the <resspr_area>.DATAtmenu_make_writeable Syntax: void menu_make_writeable (<menu> m, int entry, char *buf, int buflen, char *valstr); Header: <menu.h=>menu_h> This function makes one of the entries in the given menu into a writeable entry. /buf/ is a pointer to a buffer (of length {/}buflen{/}) to hold the text. /valstr/ points to the <validation string=>SWI:wimp_validationstring>.DATA'menu_maker This type is defined in <TimsLib:Menu.h=>Menu_TL>. It is a function used when a menu needs to be created. It has the form: {fCode;align centre}<menu> myfunc (void *reference);{f;align} where /reference/ is a user defined value and the function returns the new menu's handle.DATA�Menu_MakeWritable Syntax: void Menu_MakeWritable (<menu_ptr> menu, int entry, char *t, int size, char *v); Header: <DeskLib:Menu.h=>DL_Menu> Syntax: void Menu_MakeWritable (<menu> m, int entry, char *t, int size, char *v); Header: <TimsLib:Menu.h=>Menu_TL> This function makes a menu item writeable. Item /entry/ will become an indirected writeable icon, with data pointer /t/, validation string /v/, and maximum length /size/.DATASMenu_New Syntax: <menu_ptr> Menu_New(char *t, char *desc); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Menu pointer, or <NULL> if failed. This function creates a new menu. The title of the menu is given in the string pointed to by /t/, and the <menu descriptor=>menu_desc_> is given in /desc/. The menu can be displayed using <Menu_Show>. NB: This function needs <DeskLib:Screen.h=>Screen> functions. You must have called <Screen_CacheModeInfo> before using Menu functions. See also the Desktop C function, <menu_new=>menu_new_>. See also the TimsLib function, <Menu_New=>Menu_New__>.DATA�menu_new Syntax: <menu> menu_new (char *t, char *desc); Header: <menu.h=>menu_h> Returns: The menu handle of the menu. This function creates a new menu. The title of the menu is given in the string pointed to by /t/, and the <menu descriptor=>menu_desc_> is given in /desc/. The entries are indexed from 1. A handler needs to be attached using <event_attachmenu>. Example: {fCode;align centre}m=menu_new("Edit",">Info,Create,Quit"); DATAkMenu_New Syntax: <menu> Menu_New (char *t, char *desc); Header: <TimsLib:Menu.h=>Menu_TL> Returns: The menu handle of the menu. This function creates a new menu. The title of the menu is given in the string pointed to by /t/, and the <menu descriptor=>menu_desc_> is given in /desc/. Example: {fCode;align centre}m=Menu_New("Edit",">Info,Create,Quit");DATAbmenu_ptr This type is defined in <DeskLib:Wimp.h=>Wimp> as a pointer to type <menu_block>.DATA�Menu_RemoveItem Syntax: void Menu_RemoveItem (<menu_ptr> menu, int entry); Header: <DeskLib:Menu.h=>DL_Menu> This function removes one item from a menu, provided there is more than one item in it, and shuffles the others up to fill the space.DATAMenu_SDispose Syntax: void Menu_SDispose (<menu_ptr> menu); Header: <DeskLib:Menu.h=>DL_Menu> This is a VERY simple dispose function. It does not free memory used by submenus, or by indirected icon text. In fact it is just a macro which calls <free>().DATAmenu_selection This variable of type <BOOL> is defined in <TimsLib:Menu.h=>Menu_TL>. It contains <TRUE> if the menu handler is being called as the result of an active selection off a menu (ie a click) or <FALSE> if it is due to a submenu being opened (a menu warning event).DATA�Menu_SetFlags Syntax: void Menu_SetFlags (<menu_ptr> menu, int entry, int tick, int shade); Header: <DeskLib:Menu.h=>DL_Menu> Syntax: void Menu_SetFlags (<menu> m, int entry, <BOOL> tick, BOOL shade); Header: <TimsLib:Menu.h=>Menu_TL> This function alters the state of /entry/ on the menu given. Setting /tick/ or /shade/ to 1 sets the entry to have those states, 0 unticks and/or unshades.DATAamenu_setflags Syntax: void menu_setflags (<menu> m, int entry, int tick, int fade); Header: <menu.h=>menu_h> This function sets the flags for a particular menu entry (specified by {/}m{/} and {/}entry{/}). If /tick/ is non-zero then the entry is ticked, and if /fade/ is non-zero then the entry is faded (shaded) so that it can not be selected.DATA�Menu_SetText Syntax: void Menu_SetText (<menu_ptr> menu, int entry, char *text); Header: <DeskLib:Menu.h=>DL_Menu> This function sets the text for a given menu entry to be that pointed to by /text/.DATA?Menu_Show Syntax: void Menu_Show (<menu_ptr> menu, int x, int y); Header: <DeskLib:Menu.h=>DL_Menu> This function shows the given menu on screen, at the given /x/ and /y/ position. If /y/ is -1 then the height is correct for icon bar icons (very handy). See also the TimsLib function, <Menu_Show=>Menu_Show_>.DATAPMenu_Show Syntax: void Menu_Show (<menu> m, <wimp_point> mouse_pos, <BOOL> iconbar); Header: <TimsLib:Menu.h=>Menu_TL> This function shows the menu /m/ on screen, using the mouse position given. If /iconbar/ is <TRUE> then the vertical mouse position is ignored and the menu is placed in the correct position over the icon bar.DATAMenu_ShowLast Syntax: void Menu_ShowLast (void); Header: <DeskLib:Menu.h=>DL_Menu> This function shows the last menu shown with <Menu_Show>, in the same place as before. It is intended that this should be called when *Adjust* is clicked on a menu.DATA�menu_submenu Syntax: void menu_submenu (<menu> m, int entry, menu submenu); Header: <menu.h=>menu_h> (Desktop C) <TimsLib:Menu.h=>Menu_TL> (TimsLib) Known in TimsLib as {*}Menu_SubMenu{*}. This function attaches the submenu whose menu handle is given to the menu /m/, at the entry specified. If /submenu/ is zero then the existing submenu is removed. Once attached, a submenu cannot be extended, or deleted (on its own).DATAimenu_submenu This type is defined in <DeskLib:Wimp.h=>Wimp>. It is used as part of a menu definition to indicate the submenu or subwindow attached to a particular entry. It is defined as the following union: \{ <menu_ptr> menu; <window_handle> window; int value; } /value/ should be set to -1 if no submenu/subwindow is to be attached.DATA�menu_submenupos This variable of type <wimp_point> is defined in <TimsLib:Menu.h=>Menu_TL>. It contains the position passed by any MenuWarning messages ie the position a submenu should be opened at in response to the message.DATA�menu_syshandle Syntax: void *menu_syshandle (<menu> m); Header: <menu.h=>menu_h> Returns: A pointer to a <wimp_menustr>. This function gets the menu pointer for a given menu. See also the TimsLib function, <Menu_SysHandle=>Menu_SysHandle__>.DATA;Menu_SysHandle Syntax: <menu_ptr> Menu_SysHandle (menu_ptr m); Header: <DeskLib:Menu.h=>DL_Menu> Returns: The value passed, /m/! This is a pointless function, retained only for compatibility with Desktop C's <menu_syshandle>, since {*}menu_ptr{*}s in DeskLib are pointer to the underlying Wimp definition.DATA9Menu_SysHandle Syntax: <menu_ptr> Menu_SysHandle (<menu> m); Header: <TimsLib:Menu.h=>Menu_TL> Returns: Pointer to the menu. This function returns a pointer to the menu structure itself, for you to modify if needed. It is actually defined as a function like macro returning /m/ cast as a {*}menu_ptr{*}.DATA�Menu_TickEntry Syntax: void Menu_TickEntry (<menu> m, int entry); Header: <TimsLib:Menu.h=>Menu_TL> This function-like macro ticks the given entry in the given menu.DATA�TimsLib:Menu.h This header is a complete replacement for both Desktop C's <menu.h=>menu_h> and DeskLib's <Menu.h=>DL_Menu>. It provides superior menu handling facilities to the standard DeskLib functions, allowing menus to be attached in a similar way to the <Event> module. Functions: #indent 4 #Table 9 20 <Menu_New=>Menu_New__> <Menu_ColourMenu> <Menu_Dispose> <Menu_SubMenu> <Menu_AddDialogBox> <Menu_SetFlags> <Menu_TickEntry> <Menu_UnTickEntry> <Menu_FadeEntry> <Menu_UnFadeEntry> <Menu_MakeWritable> <Menu_Show=>Menu_Show_> <Menu_SysHandle=>Menu_SysHandle__> <Menu_AttachMenu> <Menu_AttachMenuMaker> <Menu_AddDynamicDialogBox> <Menu_DetachMenu> #EndTable #indent Types: #indent 11 #table lines 1 <menu> <menu_handler> <menu_maker> #endtable #indent Variables: #table columns 3 <menu_adjust_pressed> <menu_current_window> <menu_current_icon> <menu_selection> <menu_submenupos> #EndTableDATA�Menu_UnFadeEntry Syntax: void Menu_UnFadeEntry (<menu> m, int entry); Header: <TimsLib:Menu.h=>Menu_TL> This function-like macro unshades the given entry in the given menu.DATA�Menu_UnTickEntry Syntax: void Menu_UnTickEntry (<menu> m, int entry); Header: <TimsLib:Menu.h=>Menu_TL> This function-like macro unticks the given entry in the given menu.DATAtMenu_Warn Syntax: void Menu_Warn (<menu_ptr> menu, int entry, <BOOL> yn, <event_handler> handler, void *ref); Header: <DeskLib:Menu.h=>DL_Menu> This function claims the Menu Warning message using <EventMsg> and attaches the given handler to the given menu entry, making it Menu Warning messages. If /yn/ is <TRUE> it attaches the handler, otherwise it removes it.DATA�Menu_PopUp Syntax: void Menu_PopUp (<menu_ptr> menu, <window_handle> win, <icon_handle> icon); Header: <DeskLib:Menu.h=>DL_Menu> This function pops the menu /menu/ up just beside the given icon, as recommended in the style guide.DATAMenu_PopUpAuto Syntax: void Menu_PopUpAuto (<menu_ptr> menu); Header: <DeskLib:Menu.h=>DL_Menu> This function pops the menu /menu/ up just beside the icon which is determined by the last Wimp event processed by the <Event> module. If no info can be found, nothing happens.DATA�Menu_MakeIndirected Syntax: void Menu_MakeIndirected (<menu_ptr> menu, int entry, char *buf, int size); Header: <DeskLib:Menu.h=>DL_Menu> This function converts the given menu entry into an indirected item using the buffer /buf/ of length /size/.DATA�Menu_FullDispose Syntax: void Menu_FullDispose (<menu_ptr> menu); Header: <DeskLib:Menu.h=>DL_Menu> This frees up the memory used by a menu. It doesn't recursively dispose of submenus but it _does_ dispose of indirected menu data.DATA�Menu_ReviseWidth Syntax: void Menu_ReviseWidth (<menu_ptr> menu); Header: <DeskLib:Menu.h=>DL_Menu> This function rescans through a menu definition and revises its width based on the title and item lengths. At least one item must be in the menu.DATA�Menu_FontMenu Syntax: <menu_ptr> Menu_FontMenu (<BOOL> sysfont, char *tick); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Pointer to menu, or 0 if failed. This function creates a font menu, including 'System font' if /sysfont/ is <TRUE>. /tick/ indicates the font name to be ticked, or <Menu_FontMenu_NOTICK>, or <Menu_FontMenu_TICKSYSFONT>. If you don't need to be RISC OS 2 compatible, use <Menu_FontMenu3>.DATA�Menu_FontMenu3 Syntax: <menu_ptr> Menu_FontMenu3 (<BOOL> sysfont, char *tick); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Pointer to menu, or 0 if failed. This function creates a font menu, including 'System font' if /sysfont/ is <TRUE>. /tick/ indicates the font name to be ticked, or <Menu_FontMenu_NOTICK>, or <Menu_FontMenu_TICKSYSFONT>. This function won't work on RISC OS 2.DATA+Menu_FontMenuDecode Syntax: char *Menu_FontMenuDecode (int *sel); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Font name, or 0 if an error. This function, given a list of selections from the font menu, returns the font name. If you only need to support RISC OS 3, use <Menu_FontMenuDecode3>.DATAMenu_FontMenuDecode3 Syntax: char *Menu_FontMenuDecode3 (int *sel); Header: <DeskLib:Menu.h=>DL_Menu> Returns: Font name, or 0 if an error. This function, given a list of selections from the font menu, returns the font name. This is RISC OS 3 only.DATA�Menu_FontMenu_NOTICK This macro is defined in <DeskLib:Menu.h=>DL_Menu>. It specifies that no entry on the font menu should be ticked and is defined as 0.DATA�Menu_FontMenu_TICKSYSFONT This macro is defined in <DeskLib:Menu.h=>DL_Menu>. It specifies that the 'System font' entry on the font menu should be ticked and is defined as ((char *) 1).DIR$���F�����F&action��F����H&�block��F���G&`dataload�F���M/G&�dataopen��F����F&�datasaveT�F����G&�datasaveack�F���F�F&�destineeĜF���m�F&=header�F���%JG&Zhelpreply`�F����DG&helprequestx�F���UcG&fmenuwarn�F����a%bpopuprequestD�F���E�a%tpopupstate��F����QG&�print|�F����5G&�ramfetch(�F���m?G&�ramtransmitܦF����%G&dataloadack�F���'�G&aiconizeT�F�����G&�windowinfoDATAmessage_action This type is defined in <DeskLib:Wimp.h>. It is an enumerated type containing values for common Wimp messages. {wrap off} \{ message_QUIT = 0, /* Quit */ message_CLOSEDOWN = 0, message_DATASAVE = 1, /* DataSave */ message_DATASAVEACK = 2, /* DataSaveAck */ message_DATASAVEOK = 2, message_DATALOAD = 3, /* DataLoad */ message_DATALOADACK = 4, /* DataLoadAck */ message_DATALOADOK = 4, message_DATAOPEN, /* DataOpen */ message_RAMFETCH, /* RAMFetch */ message_RAMTRANSMIT, /* RAMTransmit */ message_PREQUIT, /* PreQuit */ message_PALETTECHANGE, /* PaletteChange */ message_SAVEDESK, /* SaveDesktop */ message_DEVICECLAIM, /* DeviceClaim */ message_DEVICEINUSE, /* DeviceInUse */ message_DATASAVED, /* DataSaved */ message_FILEROPENDIR = 0x400, /* FilerOpenDir */ message_FILERCLOSEDIR, /* FilerCloseDir */ message_HELPREQUEST = 0x502, /* HelpRequest */ message_HELPREPLY, /* HelpReply */ message_NOTIFY = 0x40040, /* Notify */ message_MENUWARNING = 0x400C0, /* MenuWarning */ message_MENUWARN = 0x400C0, message_MODECHANGE, /* ModeChange */ message_TASKINITIALISE = 0x400C2, /* TaskInitialise */ message_INITTASK = 0x400C2, message_TASKCLOSEDOWN = 0x400C3, /* TaskCloseDown */ message_CLOSETASK = 0x400C3, message_SLOTSIZE = 0x400C4, /* SlotSize */ message_SLOTCHANGE = 0x400C4, message_SETSLOT = 0x400C5, /* SetSlot */ message_TASKNAMERQ, /* TaskNameRq */ message_TASKNAMEIS, /* TaskNameIs */ message_TASKSTARTED, /* TaskStarted */ message_MENUSDELETED, /* MenusDeleted */ message_WINDOWINFO = 0x400CC, /* WindowInfo */ message_POPUPRQ = 0x46D40, message_POPUPREQUEST = 0x46D40, message_POPUPSTATE, message_POPUPCLOSED, message_PRINTFILE = 0x80140, /* PrintFile */ message_WILLPRINT, /* WillPrint */ message_PRINTTYPEODD = 0x80145, /* PrintTypeOdd */ message_PRINTTYPEKNOWN, /* PrintTypeKnown */ message_PRINTERCHANGE /* SetPrinter */ }DATA�message_block This type is defined in <DeskLib:Wimp.h=>Wimp>. It is the structure used for Wimp messages. \{ <message_header> header; union \{ char bytes [236]; int words [59]; <message_datasave> datasave; <message_datasaveack> datasaveack; <message_dataload> dataload; <message_dataopen> dataopen; <message_ramfetch> ramfetch; <message_ramtransmit> ramtransmit; <message_helprequest> helprequest; <message_helpreply> helpreply; <message_print> print; <message_menuwarn> menuwarn; <message_iconize> iconize; <message_windowinfo> windowinfo; } data; } As can be seen, certain messages have their own types predefined. For others, define your own and cast {/}data.bytes{/} into this type, or just access the data directly from {/}data.bytes{/} or {/}data.words{/}. <dataloadack=>message_dataloadack> is strangely absent.DATA`message_dataload This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data from a DataLoad message. \{ <window_handle> window; <icon_handle> icon; <wimp_point> pos; int size; int filetype; char filename[212]; } The receiver of this message should load the file and send a DataLoadAck message.DATA�message_dataopen This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data from a DataOpen message. It is defined as a <message_dataload>.DATA�message_datasave This is a type defined in <DeskLib:Wimp.h=>Wimp> as a type suitable for holding data from a DataSave message. It is defined as the following structure: \{ <window_handle> window; <icon_handle> icon; <wimp_point> pos; int estsize; int filetype; char leafname[12]; } This message indicates that the sender wants to save data to the receiver. The receiver should respond with a DataSaveAck or RamFetch message. The /window/, /icon/, and /pos/ come from <Wimp_GetPointerInfo>. The rest should be filled in by the saving task. /filetype/ can be 0x1000 for a directory, 0x2000 for an application, or 0xffffffff for untyped.DATA�message_datasaveack This is a structure defined in <DeskLib:Wimp.h=>Wimp>, used for holding data from a DataSaveAck message. \{ <window_handle> window; <icon_handle> icon; <wimp_point> pos; int estsize; int filetype; char filename[212]; } This message acknowledges a DataSave message. The receiver should respond with a DataLoad message. /estsize/ will be -1 if the file is not 'safe'.DATA�message_destinee This type is defined in <DeskLib:Wimp.h=>Wimp> as a type capable of holding a message destination handle (either a window or task handle). It is defined as an /int/.DATA=message_header This type is defined in <DeskLib:Wimp.h=>Wimp> as a type suitable for holding a Wimp message header. It is defined as the following structure: \{ unsigned int size; <task_handle> sender; unsigned int myref; unsigned int yourref; <message_action> action; }DATAZmessage_helpreply This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for a HelpReply message. \{ char text[200]; } This message is used to provide interactive help. You reply to a HelpRequest message with this message which indicates the help to be displayed. "|M" within the text indicates a line break.DATAmessage_helprequest This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for a HelpRequest message. \{ <mouse_block> where; } This message is used to provide interactive help. /where/ tells you for which window and icon help is required.DATAfmessage_menuwarn This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for a MenuWarning message. \{ int id; <wimp_point> openpos; int selection[10]; } {tab} � /id/ is the number given to Wimp_CreateMenu. � /openpos/ is the position to open submenu at. � /selection/ is a list of selections, terminated by -1DATAbmessage_popuprequest This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to contain information passed by a message_POPUPREQUEST event: \{ <window_handle> window; <wimp_point> openpos; } You should cast the <event_pollblock>.data.message.data union into this type. See the PopUp documentation for more details.DATAtmessage_popupstate This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to contain information passed by a message_POPUPSTATE event: \{ <popup_handle> handle; char name[12]; <popup_returndata> data; } You should cast the <event_pollblock>.data.message.data union into this type. See the PopUp documentation for more details.DATA�message_print This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for a PrintTypeOdd message. \{ int filler[5]; int filetype; char filename[212]; }DATA�message_ramfetch This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for a RAMFetch message. \{ char *buffer; int buffsize; }DATA�message_ramtransmit This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for a RAMTransmit message. \{ char *buffer; int byteswritten; }DATAmessage_dataloadack This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data from a DataLoadAck message. \{ <window_handle> window; <icon_handle> icon; <wimp_point> pos; int size; int filetype; char filename[212]; }DATAamessage_iconize This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for an Iconize message. \{ <window_handle> window; <task_handle> task; char title[20]; } {tab} � /window/ is the window to iconize. � /task/ is the task owning the window. � /title/ is 20 bytes of title string (last part of first word).DATA�message_windowinfo This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure holding data for an WindowInfo message. \{ <window_handle> window; int dummy; char spritename[8]; char title[20]; } {tab} � /window/ is the window to iconize. � /dummy/ is reserved and must be 0. � /spritename/ is the sprite to use. � /title/ is 20 bytes of title string (last part of first word).DATA�MIN This macro is defined in <TimsLib:Core.h=>Core_TL> and <DeskLib:Core.h=>Core>. It is used to find the minimum of two values. MIN(x,y) will give you /x/ if x\<y, or /y/ if x>=y.DATA�mktime Syntax: <time_t> mktime (<struct�tm> *tptr); Header: <time.h=>time_h> Returns: The calendar time. This function takes the broken-down time (expressed as local time) pointed to by /tptr/ and converts in into a calendar time value. {/}tptr->tm_wday{/} and {/}tptr->tm_yday{/} are ignored on entry. The values in the broken-down time structure may be altered so that they fit within the normal ranges. Also {/}tm_wday{/} and {/}tm_yday{/} will be set to the correct values.DATAHmodf Syntax: double modf (double x, double *i); Header: <math.h=>math> Returns: The fractional part of x. This function splits the floating point number in x into an integer part and a fractional part. It stores the integer part (as a double!) in the variable pointed to by i. The function returns the fractional part.DATA�modifiers This type is defined in <TimsLib:Kbd.h=>Kbd_TL>. It is a structure used to hold the status of the modifier keys as follows: \{ unsigned alt : 1; unsigned ctrl : 1; unsigned shift : 1; unsigned left_alt : 1; unsigned left_ctrl : 1; unsigned left_shift : 1; unsigned right_alt : 1; unsigned right_ctrl : 1; unsigned right_shift : 1; }DATA�DeskLib:Module.h Version: 1.00 (23 Nov 1993) #line This header declares a few veneers for the <OS_Module=>SWI:OS_Module> SWI. {align centre}<Module_Claim> <Module_Free>DIR$LLd�F���B�C%3Claim��F����C%FreeDATA3Module_Claim Syntax: <os_error> *Module_Claim (unsigned size, void **block); Header: <DeskLib:Module.h=>Module> Returns: Pointer to error, or <NULL> if none. This function claims an area of RMA space of size specified and returns a pointer to it in {/}*block{/}. /block/ is a pointer to a pointer.DATAModule_Free Syntax: <os_error> *Module_Free (void *block); Header: <DeskLib:Module.h=>Module> Returns: Pointer to error, or <NULL> if none. This function releases a block of RMA space previously claimed using <Module_Claim>. /block/ is the pointer to the block.DIR$,,ԳF����B&blockDATAmouse_block This type is defined by <DeskLib:Wimp.h=>Wimp>. It is a structure used to contain information on the mouse position and status, as follows: \{ <wimp_point> pos; <button_state> button; <window_handle> window; <icon_handle> icon; }DATA5DeskLib:Msgs.h Version: 1.01 (04 Aug 1993) #line This header declares functions for handling message files. Note that these functions do not use <MessageTrans=>SWI:MessageTrans_>. Functions: #indent 4 #Table columns 3 <Msgs_Lookup> <Msgs_printf> <Msgs_LoadFile> <Msgs_DropGroup> <Msgs_Report> <Msgs_ReportFatal> #EndTable #indent 0 Acorn recommend that message files should be used for all textual messages eg menus, errors etc within programs so that versions in other languages can be produced easily by users without access to the program source code.DIR$��иF���&D%DropGroup�F�����$�hػF���ͱ$linitD�F���bD%�LoadFileD�F���<�C%�Lookup��F����$�lookup_��F���A�$xMSG_MAXL�F���c�C%printfP�F���f�$vreadfile��F����-D%�Report��F���95D%�ReportFatal��F�����${TAG_MAX,�F����X&�TLDATAMsgs_DropGroup Syntax: void Msgs_DropGroup (char *group); Header: <DeskLib:Msgs.h=>Msgs> This function deletes a complete message group from memory. /group/ points to the group name. ie this function deletes all messages of the form: {fCode}group.*{f}, where "*" is any tag.DATA�msgs.h This header declares functions for handling message files. Functions: #indent 8;table lines 1 <msgs_init> <msgs_readfile> <msgs_lookup=>msgs_lookup_> #endtable #indent Macros: #indent 9;table lines 1 <msgs_TAG_MAX> <msgs_MSG_MAX> #endtable #indent Acorn recommend that message files should be used for all textual messages eg menus, errors etc within programs so that versions in other languages can be produced easily by users without access to the program source code.DATAlmsgs_init Syntax: void msgs_init (void); Header: <msgs.h=>msgs_h> This function reads in the messages in the resource file "Messages". It expects lines of the form: {wrap off} {fCode;align centre}tag1/tag2/tag3:Message text until newline{f;align;wrap} Where {/}tag1{/}, {/}tag2{/} and {/}tag3{/} (up to 8 can be used) are all identifiers for the message.DATA�Msgs_LoadFile Syntax: <BOOL> Msgs_LoadFile (char *leaf); Header: <DeskLib:Msgs.h=>Msgs> This function adds the message in the file specified into the current list of messages, with new messages overwriting old ones of the same name. Expects lines of the form: {fCode;align centre}group.tag: message text until newline{f;align} Leading spaces are stripped. Comments can be included if the line starts with "#". The file is found using the <resource_pathname>, and /leaf/ which contains the leafname.DATA�Msgs_Lookup Syntax: <BOOL> Msgs_Lookup (char *tag, char *result, int maxlength); Header: <DeskLib:Msgs.h=>Msgs> Returns: <TRUE> if successful. See also the Desktop C function, <msgs_lookup=>msgs_lookup_>. This function looks in the message list (loaded with <Msgs_LoadFile>) for the tag specified. It then copies up to /maxlength/ characters of the associated message into /result/. Tags should be of the form: {fCode} group.tag:{f} Messages can include other messages by enclosing their tag in \<>s: {fCode} err.pref:Nasty error alert: err.wally:\<err.pref> There's a wally about.{f} Using this function on "err.wally" will return "Nasty error alert: There's a wally about." DATA�msgs_lookup Syntax: char *msgs_lookup (char *tag); Header: <msgs.h=>msgs_h> Returns: Pointer to the message text. This function finds the given tag in the list of messages and returns the message associated with it. /tag/ can be followed by a colon and a message - this is used as a default if the tag is not found eg {wrap off} {fCode;align centre}msgs_lookup("ERROR01:Whoops!");{f;align} {wrap} This will return "Whoops!" if the tag ERROR01 cannot be found.DATAxmsgs_MSG_MAX This macro is defined in <msgs.h=>msgs_h> as the maximum length of a message. It is defined as 255.DATAMsgs_printf Syntax: void Msgs_printf (char *out, char *format, ...); Header: <DeskLib:Msgs.h=>Msgs> This function is equivalent to <sprintf>, but the format string is a tag which is looked up by <Msgs_Lookup> to get the real <format string=>pform_>.DATAvmsgs_readfile Syntax: void msgs_readfile (char *name); Header: <msgs.h=>msgs_h> This function reads in the messages in the resource file /name/. It expects lines of the form: {wrap off} {fCode;align centre}tag1/tag2/tag3:Message text until newline{f;align;wrap} Where {/}tag1{/}, {/}tag2{/} and {/}tag3{/} (up to 8 can be used) are all identifiers for the message.DATA�Msgs_Report Syntax: void Msgs_Report (int errno, char *report, ...); Header: <DeskLib:Msgs.h=>Msgs> This function calls <Error_Report>, but /report/ is a message tag which is looked up to get the real <format string=>pform_>.DATA�Msgs_ReportFatal Syntax: void Msgs_ReportFatal (int errno, char *report, ...); Header: <DeskLib:Msgs.h=>Msgs> This function calls <Error_ReportFatal>, but /report/ is a message tag which is looked up to get the real <format string=>pform_>.DATA{msgs_TAG_MAX This macro is defined in <msgs.h=>msgs_h> as the maximum length of a message tag. It is defined as 10.DATA�TimsLib:Msgs.h This header declares one macro called {*}msgs_lookup{*}. This allows you to call a Desktop C-style <msgs_lookup=>msgs_lookup_> function and it maps this call onto a call to DeskLib's <Msgs_Lookup>.DATA�mode_variable This type is defined in <DeskLib:KernelSWIs.h=>KernelSWIs>. It is an enumerated type giving names to the mode variable numbers. \{ modevar_MODEFLAGS = 0, modevar_RIGHTCOLUMN, modevar_BOTTOMROW, modevar_NCOLOUR, modevar_XEIGFACTOR, modevar_YEIGFACTOR, modevar_LINELENGTH, modevar_SCREENSIZE, modevar_YSHIFTFACTOR, modevar_LOG2BPP, modevar_LOG2BPC, modevar_XWINDOWLIMIT, modevar_YWINDOWLIMIT }DIR$ll,�F���5��/0NO_ �F������$�NOERROR��F����]�"�NULL��F���aV&$NumFromHexDigit��F������/,object_8�F����o�"Ioffsetof��F���tb�$�os�F����/Pos_�%F������/,osbyte_�3F������$OSCLI�4F���⹄/,osword_DIR$00\�F���ڙU&�ICON_DATADATA�NO_ICON_DATA This macro is defined in <TimsLib:Icon.h=>Icon_TL>. It is the value the returned by <ICON_TYPE> when the icon in question is a 'no text, no sprite' icon. It is defined as 0.DATA�NOERROR The macro NOERROR is defined in <DeskLib:Core.h=>Core> as a value representing the state that no error exists. It is actually defined as 0.DATA�NULL The macro NULL is defined in <stdio.h=>stdio>, <stdlib.h=>stdlib>, <stddef.h=>stddef>, <string.h=>string>, <DeskLib:Core.h=>Core>, and <TimsLib:Core.h=>Core_TL> and used as a null pointer. In Easy�C it is actually defined as 0.DATA$NumFromHexDigit Syntax: int NumFromHexDigit (char digit); Header: <TimsLib:Lib.h=>Lib> Returns: Value of the hexadecimal character. This function takes a character /digit/ which is a hexadecimal digit (0-F). It returns the value of this (0-15). -1 is returned if /digit/ is invalid.DIR$,,��F���Q]U&:infoDATA:object_info This type is defined in <TimsLib:File.h=>File_TL>. It contains information on a file as returned by the function <ReadEntries>. It is defined as the following structure: \{ unsigned load; unsigned exec; unsigned length; unsigned attr; unsigned type; char name[1]; }DATAIoffsetof Syntax: offsetof(type, id); This function-like macro is defined in <stddef.h=>stddef> for the purpose of finding the offset in bytes from the beginning of a structure to one of its members. The parameters are /type/, the structure type eg. /struct mystruct/ or /FILE/; and /id/, the member within the structure.DATA�os.h The \<os.h> header declares functions for accessing Operating System routines. It is intended as an alternative to \<kernel.h>. Functions: #Indent 10 #Table 3 12 <os_swi > <os_byte> <os_word> <os_gbpb> <os_file> <os_args> <os_find> <os_cli> <os_read_var_val> #EndTable #Indent 0 Macros: #Indent 7 #Table columns 4 <BOOL> <TRUE> <FALSE> <OS_CLI=>os_macros_> <OS_Byte=>os_macros_> <OS_Word=>os_macros_> <OS_File=>os_macros_> <OS_Args=>os_macros_> <OS_GBPB=>os_macros_> <OS_Find=>os_macros_> <os_X=>os_macros_> #EndTable #Indent 0 Types: #Indent 7 #Table columns 4 <os_regset> <os_error> <os_gbpbstr> <os_filestr> #EndTableDIR$PPT�F���N��$�adval��F����C�$@args4�F�����$�byte��F���1�>%�Byte_��F����3�$�circle��F���\=�$�circlefill��F����B�$�clg\�F���\�$ucli��F���/F�$�cls��F���eR�$colour��F���f�$&cursor��F���r�$�draw��F����y�$drawby��F���,��$�error|�F���J3�$Pfile��F����(�$�filestrx�F������$�fill4�F���4O�$Lfind��F����'�$Pgbpb�F����"�$Agbpbstr�F���٦�$�gcol�F������$}get��F������$sinkey�F������$�macros_��F������$�mode�F���G��$�move`F���$��$�moveby@F�����$*originlF���T��$�palette\F�����$plottF����%�$point|F����)�$�posP F���,l�$�read_var_valF���h�>%2ReadVarVal@F���C>�$9rectangle| F���jj�$Grectanglefill�F������$regset�F���v�$ernd4F���3-�$�soundF����x�$ swi(F���䜲$�swi_�F���eF�$�swix�F����u�$tab�F������$<tint�F������$vduF������$�vduq F���>��$-vduw0!F������$�vpos"F���2�$word$F����9?%pReadModeVariableDATA�os_adval Syntax: int os_adval (int buf); Header: <roslib.h=>roslib> Returns: A value, depending on the value of /buf/. This function reads the contents and status of various buffers, depending on the value of /buf/: #indent 4;tab 7 X coordinate of mouse (do not use) 8 Y coordinate of mouse (do not use) 246 Bytes free in mouse buffer 252 Bytes free in printer buffer 253 Bytes free in RS423 output buffer 254 Bytes in RS423 input buffer 255 Bytes in keyboard buffer #indent It is recommended by Acorn that you do not use os_adval 7 and 8 to read the mouse position, but call the OS_Mouse SWI instead. This call is equivalent to <OS_Byte=>SWI:OS_Byte> 128.DATA@os_args Syntax: <os_error> *os_args (<os_regset> *r); Header: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function calls the <OS_Args=>SWI:OS_Args> SWI which performs various functions. The registers R0-R9 are set to the values in /r/ before the call.DATA�os_byte Syntax: <os_error> *os_byte (int r0, int *r1, int *r2); Header: <roslib.h=>roslib> (Easy C) <os.h=>os.h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function calls the <OS_Byte=>SWI:OS_Byte> SWI with the register R0 set to the value passed in r0, and registers R1 and R2 set to the values pointed to by {/}r1{/} and {/}r2{/}. Values may also be returned in the ints pointed to by {/}r1{/} and {/}r2{/}.DATA�OS_Byte Syntax: <os_error> *OS_Byte (<osbyte_number> r0, int r1in, int r2in, int *r1out, int *r2out); Header: <DeskLib:KernelSWIs.h=>KernelSWIs> Returns: Pointer to error, or <NULL> if none. This function calls the <OS_Byte=>SWI:OS_Byte> SWI with the register R0 set the the value passed in {/}r0{/}, and registers R1 and R2 set to the values passed in {/}r1in{/} and {/}r2in{/}. Values may be returned in the /ints/ pointed to by {/}r1out{/} and {/}r2out{/}.DATA�os_circle Syntax: void os_circle (int x, int y, int r); Header: <roslib.h=>roslib> This function draws a circle with centre at screen coordinates {/}(x,y){/} and radius /r/. Equivalent to <CIRCLE=>Basic:CIRCLE> in Basic.DATA�os_circlefill Syntax: void os_circlefill (int x, int y, int r); Header: <roslib.h=>roslib> This function draws a filled circle with centre at screen coordinates {/}(x,y){/} and radius /r/. Equivalent to <CIRCLE FILL=>Basic:CIRCLE> in Basic.DATA�os_clg Syntax: void os_clg (void); Header: <roslib.h=>roslib> This functions clears the graphics window to the current background graphics colour (set using <os_gcol>).DATAuos_cli Syntax: <os_error> *os_cli (char *command); Header: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) Returns: Pointer to error, or <NULL> if none. This functions passes the string given to the operating system CLI to be executed as if it had been typed in as a "star command". For instance, {fCode}os_cli("Modules"){f} has the same effect as <*Modules>.DATA�os_cls Syntax: void os_cls (void); Header: <roslib.h=>roslib> This function clears the text window to the current background text colour (set using <os_colour>).DATAos_colour Syntax: void os_colour (int c); Header: <roslib.h=>roslib> This function sets the current text colour to the value in /c/. For /c/ \< 127 this alters the text foreground colour to /c/, and for /c/ \> 127 this alters the text background colour to /c/ - 128.DATA&os_cursor Syntax: void os_cursor (int n); Header: <roslib.h=>roslib> This function changes the appearance of the text cursor depending on /n/. Possible values are: #indent 2;tab 0 Hide cursor 1 Show cursor 2 Steady cursor 3 Flashing cursor{indent} Equivalent to <VDU 23,1=>VDU:23,1>.DATA�os_draw Syntax: void os_draw (int x, int y); Header: <roslib.h=>roslib> This function draws a line in the current foreground graphics colour from the current position to {/}(x,y){/}. Equivalent to <DRAW=>Basic:DRAW> in Basic.DATAos_drawby Syntax: void os_drawby (int x, int y); Header: <roslib.h=>roslib> This function draws a line in the current foreground graphics colour from the current position relatively by {/}(x,y){/} coordinates. Equivalent to <DRAW BY=>Basic:DRAW> in Basic.DATA�os_error The type {*}os_error{*} is defined in <roslib.h=>roslib> (Easy C), <os.h=>os> (Desktop C) and <DeskLib:Core.h=>Core> as an object holding a standard RISC OS error block. It is defined as the following structure in roslib.h: \{ int errnum; /* Error number */ char errmess[255]; /* Error message */ } and in os.h and DeskLib:Core.h it is defined as: \{ int errnum; /* Error number */ char errmess[252]; /* Error message */ }DATAPos_file Syntax: <os_error> *os_file (<os_filestr> *blk); Header: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function calls the <OS_File=>SWI:OS_File> SWI which performs various functions on whole files. The parameters for the call are set from and returned in /blk/.DATA�os_filestr The type os_filestr is defined in <roslib.h=>roslib> (Easy C) and <os.h=>os> (Desktop C) as an object holding information to be passed to the function <os_file>. It is defined as the following structure: #indent 10 #table columns 2 Easy C: \{ int action; char *objname; int loadaddr; int execaddr; int startaddr; int endaddr; int reserved[4]; } Desktop C \{ int action; char *name; int loadaddr; int execaddr; int start; int end; int reserved[4]; } #endtableDATA�os_fill Syntax: void os_fill (int x, int y); Header: <roslib.h=>roslib> This functions flood fills an area with the current foreground graphics colour, starting at {/}(x,y){/}.DATALos_find Syntax: <os_error> *os_find (<os_regset> *r); Header: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function calls the <OS_Find=>SWI:OS_Find> SWI which handles opening and closing of random access files. The registers R0-R9 are set from and returned in /r/.DATAPos_gbpb Syntax: <os_error> *os_gbpb (<os_gbpbstr> *blk); Header: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) Returns: Pointer to error, or <NULL> if none. This function calls the <OS_GBPB=>SWI:OS_GBPB> SWI which performs a myriad of different operations. The parameters for the call are set from and returned in /blk/.DATAAos_gbpbstr The type os_gbpbstr is defined in <roslib.h=>roslib> (Easy C) and <os.h=>os> (Desktop C) as an object holding data to be passed to the function <os_gbpb>. It is defined as the following structure: #indent 9 #table columns 2 Easy C: \{ int action; int handle; void *startaddr; int number; int pointer; int buf_len; char *wildcard; int reserved[3]; } Desktop C: \{ int action; int file_handle; void *data_addr; int number; int seq_point; int buf_len; char *wild_fld; int reserved[3]; } #endtableDATA�os_gcol Syntax: void os_gcol (int a, int c); Header: <roslib.h=>roslib> This function changes the current graphics foreground colour (in {/}c{/}) and <action=>VDU:18a> ({/}a{/}). If /c/ \>�128 then the background colour is set to /c/ -�128.DATA}os_get Syntax: int os_get (void); Header: <roslib.h=>roslib> Returns: The character read. This function reads a character from the current input stream. It waits until one is available, so may halt the program temporarily. If an escape condition occurs, the function returns a value greater than 255. This function is identical to OS_ReadC, or <GET=>Basic:GET> in Basic.DATAsos_inkey Syntax: int os_inkey (int n); Header: <roslib.h=>roslib> Returns: n>=0 The character read. n\<0 -1 if the key is being pressed, or 0 if not. n==256 The Operating System version. This function either reads a character from the input stream within a time limit, tests a specific key, or reads the Operating System version. To read a character within a time limit, /n/ should be the time limit in centiseconds (up to 32767 - it can be 0). The program will wait until a character is input, for a maximum of /n/ centiseconds, and return the ASCII value of the key. To test a specific key, /n/ should be a value from -255 to -1, and the key represented by that value will be tested. The value should be (-1 - <key nr=>SWI:os_byte121a>) To read the OS version, /n/ =�-256. This function is equivalent to <OS_Byte=>SWI:OS_Byte> 129, or <INKEY=>Basic:INKEY> in Basic.DATA�os.h Macros Eight macros are defined relating to SWI numbers. The following macros are defined as the number of their namesake's SWI: #Indent 7 #Table columns 3 {*}OS_CLI{*} {*}OS_Byte{*} {*}OS_Word{*} {*}OS_File{*} {*}OS_Args{*} {*}OS_GBPB{*} {*}OS_Find{*} #EndTable #Indent 0 The macro {*}os_X{*} is the value of the 'X bit' in SWI numbers. It should be logically ORed with the SWI number to call the X form of the SWI.DATA�os_mode Syntax: void os_mode (int m); Header: <roslib.h=>roslib> This function changes the current <screen mode=>VDU:22a> to the one specified in /m/. It is equivalent to <MODE=>Basic:MODE> in Basic, or <VDU 22=>VDU:22>.DATA�os_move Syntax: void os_move (int x, int y); Header: <roslib.h=>roslib> This function moves the graphics cursor to the position given by (x,y). Equivalent to <MOVE=>Basic:MOVE> in Basic.DATA�os_moveby Syntax: void os_moveby (int x, int y); Header: <roslib.h=>roslib> This function moves the graphics cursor from the current position relatively by {/}(x,y){/}. Equivalent to <MOVE BY=>Basic:MOVE> in Basic.DATA*os_origin Syntax: void os_origin (int x, int y); Header: <roslib.h=>roslib> This function moves the current graphics origin (ie the position of (0,0) on the screen) to {/}(x,y){/}. The coordinates are given relative to the screen bottom left. Equivalent to <ORIGIN=>Basic:ORIGIN> in Basic.DATA�os_palette Syntax: void os_palette (int c, int m, int r, int g, int b); Header: <roslib.h=>roslib> This function redefined the colour specified in c either to the physical colour in /m/ (if /m/ \<�16) or to the colour whose red, green, and blue components are given by /r/, /g/, and /b/. /m/ can be one of the following: #indent 2;tab 0-15 Colour /c/ is redefined to be the physical colour in /m/. 16 Colour /c/ is redefined to {/}(r,g,b){/}. 17 First flash colour for /c/ is {/}(r,g,b){/}. 18 Second flash colour for /c/ is {/}(r,g,b){/}. 24 Border colour is {/}(r,g,b){/}. /c/ is ignored. 25 Mouse colour /c/ is {/}(r,g,b){/}. #indent 128 added to any of the above sets the supremacy bit. This command is equivalent to <VDU 19=>VDU:19>.DATAos_plot Syntax: void os_plot (int n, int x, int y); Header: <roslib.h=>roslib> This function does lots of things. It is the same as <PLOT=>Basic:PLOT> in Basic, or the SWI <OS_Plot=>SWI:OS_Plot>. /n/ is the <plot type=>SWI:os_plot.index>, and /x/ and /y/ are coordinates.DATAos_point Syntax: int os_point (int x, int y); Header: <roslib.h=>roslib> Returns: The colour of the pixel. This function reads the logical colour of pixel at coordinates {/}(x,y){/}. If the coordinates are outside the graphics window then it returns -1.DATA�os_pos Syntax: int os_pos (void); Header: <roslib.h=>roslib> Returns: The cursor position. This function reads the X coordinate of the text cursor, from the left hand edge of the current text window.DATA�os_read_var_val Syntax: void os_read_var_val (char *name, char *buf, int len); Header: <os.h=>os> This function gets the value of system variable whose name is specified and places it in the character array pointed to by /buf/. The length of the array is given by /len/. When reading the variables it converts numbers to strings and expands macros. This function is equivalent to the SWI <OS_ReadVarVal=>SWI:OS_ReadVarVal>, with R4=3.DATA2OS_ReadVarVal Syntax: <BOOL> OS_ReadVarVal (char *var, char *buf, int bufsize); Header: <DeskLib:KernelSWIs.h=>KernelSWIs> Returns: <TRUE> if successful. This function reads the value of the system variable whose name is given in /var/ and returns it in the buffer /buf/, whose size is /bufsize/.DATA9os_rectangle Syntax: void os_rectangle (int x, int y, int w, int h); Header: <roslib.h=>roslib> This function draws a rectangle on the screen, with the bottom left at position {/}(x,y){/} and width and height as given by /w/ and /h/. Equivalent to {fCode}<RECTANGLE=>Basic:RECTANGLE> x,y,w,h{f} in Basic.DATAGos_rectanglefill Syntax: void os_rectanglefill (int x, int y, int w, int h); Header: <roslib.h=>roslib> This function draws a filled rectangle on the screen, with bottom left at {/}(x,y){/} and width and height specified by /w/ and /h/. It is equivalent to {fCode}<RECTANGLE FILL=>Basic:RECTANGLE> x,y,w,h{f} in Basic.DATAos_regset The type os_regset is defined in <roslib.h=>roslib> (Easy C) and <os.h=>os> (Desktop C) as an object capable of holding the registers R0-R9 so that they can be passed to the operating system. It is defined as the structure: \{ int r[10]; }DATAeos_rnd Syntax: unsigned os_rnd (int n); Header: <roslib.h=>roslib> Returns: A random number, or 0 if /n/ is negative. This function generates random numbers in the range 0 to /n/ -�1. If /n/ is negative then it reseeds the random number generator. After reseeding with the same number, the same sequence of random numbers will always be generated.DATA�os_sound Syntax: <os_error> *os_sound (int c, int a, int p, int d); Header: <roslib.h=>roslib> Returns: Pointer to error, or <NULL> if none. This function generates a sound with channel, amplitude, pitch and duration set by /c/, /a/, /p/ and /d/ respectively. Amplitude may be either 0-15 for linear control, or 0x100 to 0x17F for logarithmic control in which case bit 7 set means smooth pitch changes. In the logarithmic scale a change of 0x10 means a doubling or halving of volume. <Pitch=>sound_pitch_> may be either 0-255 in quarter-semitone steps, or 0x100 to 0x7FF for fine control (4096 steps per octave!) in which case bits 0-11 represent the note and bits 12-14 represent the octave. Duration is in twentieths of a second.DATA os_swi Syntax: void os_swi (int n, <os_regset> *r); Header: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) This function calls a <SWI=>SWI:!Root>, whose number is given in /n/. The registers R0-R9 are set to and returned in the values in /r/. If an error occurs it is reported by the operating system and your program will halt execution. A number of macros allowing the SWI numbers to be made more readable to humans are defined in <swis.h=>swis> (Easy C). Desktop C provides <other SWI calls=>os_swi_>.DATA�Desktop C os_swi() Calls These functions all perform SWIs. The functions are of the form: <os_error> *os_swiN[r](int n, [\{int}], [\{int *}]); Where /N/ is the number of registers (0-4,6) to be passed to the call (and returned). If /r/ is present then registers are returned as well. The registers to be passed to the SWI are given as integer arguments. The registers to be passed back are given as integer pointers. If the SWI number has its X bit set, then the X form of the SWI will be called and a pointer to an error returned if there is one. Otherwise, the normal form will be called and the function returns <NULL>. You should always use the X form.DATA�os_swix Syntax: <os_error> *os_swix (int n, <os_regset> *r); Header: <roslib.h=>roslib> Returns: Pointer to an error, or <NULL> if none. This function calls a <SWI=>SWI:!Root>, whose number is given in /n/. The registers R0-R9 are set to and returned in the values in /r/. If an error occurs it is returned by the function and not reported by the operating system. A number of macros allowing the SWI numbers to be made more readable to humans are defined in <swis.h=>swis>.DATAos_tab Syntax: void os_tab (int x, int y); Header: <roslib.h=>roslib> This function moves the text cursor to position {/}(x,y){/}. If /x/ or /y/ are outside the current text window, the function does not move the cursor. This is equivalent to <VDU 31,x,y=>VDU:31>.DATA<os_tint Syntax: void os_tint (int c, int t); Header: <roslib.h=>roslib> This function sets the tint (ie the amount of white added) for a colour (256 colour modes only). The colour for which the tint is set is specified by c, which may be any of the following: #indent 4;tab 0 Text foreground colour 1 Text background colour 2 Graphics foreground colour 3 Graphics background colour. #indent The tint, given in /t/, should be either 0x00, 0x40, 0x80 or 0xC0. The higher it is, the brighter the colour is. This function is equivalent to <VDU 23,17=>VDU:23,17,0>.DATAos_vdu Syntax: void os_vdu (int <c=>VDU:!Root>); Header: <roslib.h=>roslib> This function sends the single character specified in /c/ to the VDU drivers (as if <OS_WriteC=>SWI:OS_WriteC> had been called). /c/ is a single byte, although it is stored in an /int/.DATA�os_vduq Syntax: void os_vduq (int c, ...); Header: <roslib.h=>roslib> This function sends a sequence of bytes to the VDU drivers. Each byte takes one argument. It is identical in operation to <os_vdu>, but can send more than one byte.DATA-os_vduw Syntax: void os_vduw (int n); Header: <roslib.h=>roslib> This function send the 16-bit value in /n/ to the VDU driver as two bytes, lower byte first (little endian). It would typically be used for sending screen coordinates to the VDU drivers, as these are always two-byte quantities.DATA�os_vpos Syntax: int os_vpos (void); Header: <roslib.h=>roslib> Returns: The cursor position. This function reads the Y coordinate of the text cursor, from the top edge of the current text window.DATAos_word/OS_Word Syntax: <os_error> *os_word (int r0, void *r1); Headers: <roslib.h=>roslib> (Easy C) <os.h=>os> (Desktop C) Syntax: <os_error> *OS_Word (<osword_number> r0, void *r1); Header: <DeskLib:KernelSWIs.h=>KernelSWIs> Returns: Pointer to an error, or <NULL> if none. This function calls the <OS_Word=>SWI:OS_Word> SWI with the register R0 set to the value passed in {/}r0{/}, and the register R1 set to the pointer {/}r1{/}, which points to a parameter block. Values are read from and returned in the parameter block.DATApOS_ReadModeVariable Syntax: <os_error> *OS_ReadModeVariable (int mode, <mode_variable> var, int *value); Header: <DeskLib:KernelSWIs.h=>KernelSWIs> Returns: Pointer to error, or <NULL> if none. This function reads a <mode variable=>SWI:OS_ReadModeVariable.variables> for the screen mode /mode/ (-1 for the current mode) and returns its value in {/}*value{/}.DIR$,,�%F���[>%� numberDATA� osbyte_number This type is defined in <DeskLib:KernelSWIs=>KernelSWIs>. It is an enumerated type giving names to most <OS_Byte=>OS_Byte_> calls: \{ osbyte_DISPLAYOSVERSION = 0, osbyte_SPECIFYINPUT = 2, osbyte_SPECIFYOUTPUT, osbyte_CURSORKEYSTATUS, osbyte_WRITEPRINTERDRIVERTYPE, osbyte_WRITEPRINTERIGNORECHAR, osbyte_WRITERS423RXRATE, osbyte_WRITERS423TXRATE, osbyte_WRITEDURATION1STFLASHCOLOUR, osbyte_WRITEDURATION2NDFLASHCOLOUR, osbyte_WRITEKEYREPEATDELAY, osbyte_WRITEKEYREPEATRATE, osbyte_DISABLEEVENT, osbyte_ENABLEEVENT, osbyte_FLUSHBUFFER, osbyte_RESETFUNCTIONKEYS = 18, osbyte_WAITFORVSYNC, osbyte_RESETFONTDEFINITIONS, osbyte_FLUSHSELECTEDBUFFER, osbyte_RESETGROUPOFFONTDEFINITIONS = 25, osbyte_RW_COUNTRYNUMBER = 70, osbyte_RW_ALPHABET = 71, osbyte_RW_KEYBOARD = 71, osbyte_SELECTPOINTER = 106, osbyte_ACTIVATEMOUSE = 106, osbyte_WRITESHADOWSTATE, osbyte_READVDUSTATUS = 117, osbyte_REFLECTKEYBOARDSTATUSINLEDS, osbyte_KEYBOARDSCAN = 121, osbyte_KEYBOARDSCANNOSHIFT, osbyte_CLEARESCAPECONDITION = 124, osbyte_SETESCAPECONDITION, osbyte_ACKNOWLEDGEESCAPECONDITION, osbyte_CHECKFOREOF, osbyte_GETBUFFERORMOUSESTATUS, osbyte_SCANFORKEY = 129, osbyte_READOSIDENTIFIER = 129, osbyte_READTEXTCURSORPOSITION = 134, osbyte_READCHARACTERATTEXTCURSOR = 135, osbyte_READSCREENMODE = 135, osbyte_INSERTCHARACTERCODEINTOBUFFER = 138, osbyte_WRITEFSOPTIONS, osbyte_ISSUEMODULESERVICECALL = 143, osbyte_SETTVCHARACTERISTICS, osbyte_GETCHARACTERFROMBUFFER, osbyte_EXAMINEBUFFERSTATUS = 152, osbyte_INSERTCHARACTERINTOBUFFER, osbyte_RW_ASYNCCOMMSSTATE = 156, osbyte_READVDUVARIABLE = 160, osbyte_READCMOSRAM, osbyte_WRITECMOSRAM, osbyte_RW_GENERALGRAPHICSINFO, osbyte_READOUTPUTCURSORPOSITION = 165, osbyte_RW_50HZCOUNTER = 176, osbyte_READINPUTSOURCE, osbyte_RW_RS423INPUTINTERPTRETATION = 181, osbyte_RW_NOIGNORESTATE, osbyte_RW_RS423BUSYFLAG = 191, osbyte_READRS423CONTROLBYTE, osbyte_RW_FLASHCOUNTER, osbyte_READDURATION2NDFLASHCOLOUR, osbyte_READDURATION1STFLASHCOLOUR, osbyte_RW_KEYREPEATDELAY, osbyte_RW_KEYREPEATRATE, osbyte_RW_EXECFILEHANDLE, osbyte_RW_SPOOLFILEHANDLE, osbyte_RW_BREAKESCAPEEFFECT, osbyte_RW_KEYBOARDDISABLEFLAG, osbyte_RW_KEYBOARDSTATUSBYTE, osbyte_RW_RS423INPUTBUFFERMINSPACE, osbyte_RW_RS423IGNOREFLAG, osbyte_RW_BELLCHANNEL = 211, osbyte_RW_BELLVOLUME, osbyte_RW_BELLFREQUENCY, osbyte_RW_BELLDURATION, osbyte_RW_FUNCTIONKEYSTRINGLENGTH = 216, osbyte_RW_PAGEDMODELINECOUNT, osbyte_RW_BYTESINVDUQUEUE, osbyte_RW_TABKEYCODE, osbyte_RW_ESCAPECHARACTER, osbyte_RW_INTERPRETATIONOFBUFFERCODES_C0_CF, osbyte_RW_INTERPRETATIONOFBUFFERCODES_D0_DF, osbyte_RW_INTERPRETATIONOFBUFFERCODES_E0_EF, osbyte_RW_INTERPRETATIONOFBUFFERCODES_F0_FF, osbyte_RW_FUNCTIONKEYINTERPRETATION, osbyte_RW_SHIFTFUNCTIONKEYINTERPRETATION, osbyte_RW_CTRLFUNCTIONKEYINTERPRETATION, osbyte_RW_CTRLSHIFTFUNCTIONKEYINTERPRETATION, osbyte_RW_ESCAPEKEYSTATUS, osbyte_RW_ESCAPEEFFECTS, osbyte_RW_CHARACTERDESTINATIONSTATUS = 236, osbyte_RW_CURSORKEYSTATUS, osbyte_RW_NUMERICKEYPADINTERPRETATION, osbyte_READCOUNTRYFLAG = 240, osbyte_READRS423BAUDRATES = 242, osbyte_READTIMERSWITCHSTATE, osbyte_READPRINTERDRIVERTYPE = 245, osbyte_RW_PRINTERIGNORECHARACTER, osbyte_RW_BREAKKEYACTIONS, osbyte_READVDUDRIVERSCREENBANK = 250, osbyte_READDISPLAYSCREENBANK, osbyte_READLASTBREAKTYPE = 253, osbyte_RW_EFFECTOFSHIFTCTRLONNUMERICKEYPAD, osbyte_RW_BOOTOPTION }DATAOSCLI This macro is defined in <TimsLib:Core.h=>Core_TL> and <DeskLib:Core.h=>Core>. It is a handy veneer to the OS_CLI SWI. OSCLI(command) calls OS_CLI with R0=command. It is actually defined as:{wrap off} {fCode}<#define=>define> OSCLI(cmd) (<SWI>(1,0,OS_CLI,(cmd)))DIR$,,�4F��� o>%numberDATAosword_number This type is defined in <DeskLib:KernelSWIs=>KernelSWIs>. It is an enumerated type giving names to most <OS_Word_> calls: \{ osword_READLINE = 0, osword_READSYSCLOCK, osword_WRITESYSCLOCK, osword_READINTERVALTIMER, osword_WRITEINTERVALTIMER, osword_READPIXELCOLOUR = 9, osword_READCHARACTERDEFN, osword_READPALETTE, osword_WRITEPALETTE, osword_READGFXCURSORS, osword_READCMOSCLOCK, osword_WRITECMOSCLOCK, osword_DEFINEPOINTERANDMOUSE = 21, osword_WRITESCREENBASE }DIR$�:F���6��/�packmask_\@F������/�packshft_8EF�����/Lpalette_pGF��� ^D%�PaneKF���a��/lPane_�\F���>��/�Path_�cF����`%PDriver�gF���ּ�/�PDriver_̉F���a�"perror�F���b��/,pform_X�F������/�pf_�F����?�$�pointer�F�����/pointer_4�F������/,pollword_X�F���la%fPopUp��F���/�popuptc_̭F���w��/$popup_��F����7�"�pow|�F���_/,ppdir_��F���f��"pragma�F����/Lpragma_��F���{�$sprintl�F����/�printdriver_��F���8Ä/,printer_$�F���[��"1printfX�F���yÄ/Hprintfeat_��F���CĄ/�print_hF���OƄ/(ptrdiff_xF�����"�putc8F������"0putcharhF������"�putsDIR$���;F���,'#�dashed�<F����'#�endcap�=F����'#�joinx>F����'#�startcapl?F���'#�windruleDATA�packmask_dashed This macro is defined in <drawftypes.h=>drawftypes>. It is a value which when logically ANDed with a path style desciption word will mask out all bits but those containing the dash pattern flag. It is defined as 0x80.DATA�packmask_endcap This macro is defined in <drawftypes.h=>drawftypes>. It is a value which when logically ANDed with a path style desciption word will mask out all bits but those containing the end cap style. It is defined as 0x0C.DATA�packmask_join This macro is defined in <drawftypes.h=>drawftypes>. It is a value which when logically ANDed with a path style desciption word will mask out all bits but those containing the join style. It is defined as 0x03.DATA�packmask_startcap This macro is defined in <drawftypes.h=>drawftypes>. It is a value which when logically ANDed with a path style desciption word will mask out all bits but those containing the start cap style. It is defined as 0x30.DATA�packmask_windrule This macro is defined in <drawftypes.h=>drawftypes>. It is a value which when logically ANDed with a path style desciption word will mask out all bits but those containing the winding rule. It is defined as 0x40.DIR$��AF����-'#�dashed�AF���$'#�endcap�BF���!'#�join�CF���o''#�startcapdDF����*'#�windruleDATA�packshft_dashed This macro is defined in <drawftypes.h=>drawftypes>. It is a value which is the left shift required on a dash pattern flag to move it into the correct bit for the path style description word.DATA�packshft_endcap This macro is defined in <drawftypes.h=>drawftypes>. It is a value which is the left shift required on a end cap style to move it into the correct bit for the path style description word.DATA�packshft_join This macro is defined in <drawftypes.h=>drawftypes>. It is a value which is the left shift required on a join style to move it into the correct bit for the path style description word.DATA�packshft_startcap This macro is defined in <drawftypes.h=>drawftypes>. It is a value which is the left shift required on a start cap style to move it into the correct bit for the path style description word.DATA�packshft_windrule This macro is defined in <drawftypes.h=>drawftypes>. It is a value which is the left shift required on a winding rule to move it into the correct bit for the path style description word.DIR$LL�EF���Y�7&�block�FF����7&�entryDATA�palette_block This is defined in <DeskLib:Wimp.h=>Wimp> as the following structure: \{ <palette_entry> colour[16]; palette_entry border; palette_entry mouse1; palette_entry mouse2; palette_entry mouse3; }DATA�palette_entry This type is defined in <DeskLib:Wimp.h=>Wimp> as the following union: \{ int value; struct \{ char gcol; char red; char green; char blue; } data; }DATA�DeskLib:Pane.h Version: 1.11 (30th March 1994) #line This header file provides facilities for using linked windows ie when you open one window another one opens as well eg the status bar on StrongED, the toolbox on Draw. Functions: #Indent 6 #Table 4 21 <Pane_CreateAndLink> <Pane_Delete> <Pane_GetSysHandle> <Pane_Hide> <Pane_Link> <Pane_OpenEventHandler> <Pane_SetFlags> <Pane_Show> #EndTable #Indent 0 Macros: #Indent 13 #Table 3 21 <pane_OPEN=>pane_flags_> <pane_FIXED=>pane_flags_> <pane_RESIZE=>pane_flags_> <pane_HORIZ=>pane_flags_> <pane_VERT=>pane_flags_> #EndTable #Indent 0 Types: {align centre}<pane_data>{align} To use windows with panes, first link two windows using <Pane_Link> or <Pane_CreateAndLink>. You can then open and close then using <Pane_Show> and <Pane_Hide> instead of <Window_Show> and <Window_Hide>. It is best to install <Pane_OpenEventHandler> using <Event_Claim> for easy window opening.DIR$ll�LF���&uD%5CreateAndLink�NF���xE% data�QF���L{D%�Delete�RF���_�D%�flags_<UF���~�D%"GetSysHandle`VF���H�D%�HideWF����D%�Link�XF���H�D%yOpenEventHandler@ZF�����D%�SetFlags�[F���1�D%�ShowDATA5Pane_CreateAndLink Syntax: <window_handle> Pane_CreateAndLink (char *mastname, char *panename, int mastmaxsize, int panemaxsize, <wimp_point> *offset, wimp_point *size, int <flags=>pane_flags_>); Header: <DeskLib:Pane.h=>Pane> Returns: Window handle of master window. This function creates and links the two windows given in /mastname/ and /panename/ with title sizes as for <Template_Clone>. /offset/ contains the offset from the master window to the pane window. If /offset/ or /size/ are <NULL> then the offset between the templates as defined is used.DATA pane_data This type is defined in <DeskLib:Pane.h=>Pane>. It contains details about a linked window pair in the following structure: \{ <window_handle> master; <window_handle> pane; <wimp_point> offset; <wimp_point> size; union \{ int value; struct \{{tab} unsigned isopen : 1; /* Currently open */ unsigned fixed : 1; /* Pane stays in place */ unsigned resize : 1; /* Pane shrinks */ unsigned horiz : 1; /* Horizontal pane */ unsigned vert : 1; /* Vertical pane */ unsigned dummy : 27; } data; } flags; } /resize/ means that the pane is resized with the main window. Horizontal/Vertical defines the way the pane window shrinks (only if /resize/ set). /fixed/ means that the pane keeps the same relative position to the main window.DATA�Pane_Delete Syntax: void Pane_Delete (<window_handle> win); Header: <DeskLib:Pane.h=>Pane> /win/ is the master window handle. This function unlinks it from its pane and calls <Window_Delete> for both windows.DATA�Pane flags These determine the status of the master/pane window combination. The individual bits have the following meaning: #tab ,align centre,align centre,align left Bit Value Macro 0 1 pane_OPEN 1 2 pane_FIXED 2 4 pane_RESIZE 3 8 pane_HORIZ 4 16 pane_VERT The macros are defined as the individual bit values. {*}pane_OPEN{*} indicates that the combination is currently open. {*}pane_FIXED{*} indicates that the pane stays in place relative to the top left of the main window. {*}pane_RESIZE{*} indicates that the pane is resized with the main window, and {*}pane_HORIZ{*} and {*}pane_VERT{*} indicate the direction in which these resize.DATA"Pane_GetSysHandle Syntax: <pane_data> *Pane_GetSysHandle (<window_handle> master); Header: <DeskLib:Pane.h=>Pane> Returns: Pointer to structure, or <NULL>. This function gets a pointer to the data associated with the /master/ window. It returns <NULL> if the window is not linked.DATA�Pane_Hide Syntax: void Pane_Hide(<window_handle> window); Header: <DeskLib:Pane.h=>Pane> This function calls <Window_Hide> both the given master window and its pane.DATA�Pane_Link Syntax: void Pane_Link (<window_handle> mast, window_handle pane, <wimp_point> *offset, wimp_point *size, int <flags=>pane_flags_>); Header: <DeskLib:Pane.h=>Pane> This function links the master and pane windows whose window handles are given. /offset/ specifies the offset between the master and pane windows. If /offset/ or /size/ are <NULL> then this information is taken from the window definitions themselves.DATAyPane_OpenEventHandler Header: <DeskLib:Pane.h=>Pane> This function calls <Wimp_OpenWindow> on both the window given and its associated pane window. Attach to the Open_Window_Request event for the master window using: {fCode;align centre}<Event_Claim> (event_OPEN,[master],event_ANY, Pane_OpenEventHandler,<NULL>);{f;align} where [master] is the master window handle.DATA�Pane_SetFlags Syntax: int Pane_SetFlags (<window_handle> win, int <flags=>pane_flags_>); Header: <DeskLib:Pane.h=>Pane> Returns: Current flags or <NULL> or undefined. This function sets the flags of the linked windows. The master window handle is given in /win/ and the flags in /flags/. If {/}flags==-1{/} then the current flags are returned. If the master window is not linked then *NULL* is returned.DATA�Pane_Show Syntax: void Pane_Show (<window_handle> window, <window_openpos> openpos); Header: <DeskLib:Pane.h=>Pane> This function calls <Window_Show> for both the given master window and its associated pane.DIR$���]F���4�(#�closestrx^F�����(#Icurvestr�_F���K�(#QeleptraF����l(#�linestrbF����X(#�movestrcF�����(#�termstrDATA�Path_closestr This type is defined in <drawftypes.h=>drawftypes> as a type containing data for a close component of a path. It is defined as the following structure: {wrap off} \{ draw_path_tagtype tag; /* tag == 5 */ }DATAIPath_curvestr This type is defined in <drawftypes.h=>drawftypes> as a type containing data for a bezier curve component of a path. It is defined as the following structure: {wrap off} \{ <draw_path_tagtype> tag; /* tag == 6 */ int x1,y1; /* control point */ int x2,y2; /* control point */ int x3,y3; }DATAQPath_eleptr This type is defined in <drawftypes.h=>drawftypes> as a type containing a pointer to a path component. It is defined as the following union: \{ <Path_movestr> *move; <Path_linestr> *line; <Path_curvestr> *curve; <Path_closestr> *close; <Path_termstr> *term; char *bytep; int *wordp; }DATA�Path_linestr This type is defined in <drawftypes.h=>drawftypes> as a type containing data for a line component of a path. It is defined as the following structure: {wrap off} \{ <draw_path_tagtype> tag; /* tag == 8 */ int x,y; }DATA�Path_movestr This type is defined in <drawftypes.h=>drawftypes> as a type containing data for a move component of a path. It is defined as the following structure: \{ <draw_path_tagtype> tag; /* tag == 2 */ int x,y; }DATA�Path_termstr This type is defined in <drawftypes.h=>drawftypes> as a type containing data for an end-of-path component of a path. It is defined as the following structure: {wrap off} \{ draw_path_tagtype tag; /* tag == 0 */ }DATADeskLib:PDriver.h Version: 1.11 (26 Oct 1993) #line This header provides functions and types for accessing RISC OS printer driver SWIs from C. Functions: #indent 2 #Table 9 23 <PDriver_Info> <PDriver_PrinterName> <PDriver_CheckFeatures> <PDriver_PageSize> <PDriver_SelectJob> <PDriver_CurrentJob> <PDriver_EndJob> <PDriver_AbortJob> <PDriver_GiveRectangle> <PDriver_DrawPage> <PDriver_GetRectangle> <PDriver_CancelJob> <PDriver_ScreenDump> <PDriver_EnumerateJobs> <PDriver_CancelJobWithError> <PDriver_SelectIllustration> <PDriver_InsertIllustration> #EndTable #indent Macros: #indent 1 #Table 7 23 <printdriver_POSTSCRIPT> <printdriver_FX80> <printdriver_LASERJET> <printdriver_INTEGREX> <printfeat_COLOUR> <printfeat_LIMITED> <printfeat_DISCRETE> <printfeat_NOFILL> <printfeat_NOTHICKNESS> <printfeat_NOOVERWRITE> <printfeat_SCREENDUMP> <printfeat_TRANSFORMS> <printfeat_ILLUSTRATIONS> #EndTable #indent Types: #indent 8 #Table 2 23 <print_job> <print_transformation> <print_features> <printer_info> #EndTableDIR$���jF���ť_%dAbortJob�kF����_%yCancelJobhmF���� `%yCancelJobWithError�nF����X_%CheckFeatures�pF�����_%DCurrentJob,rF�����_%`DrawPage�uF����_%%EndJob�vF����`%�EnumerateJobsXxF�����_%%GetRectangle�zF����_%�GiveRectanglep}F���\�^%rInfo�~F����5`%TInsertIllustration8�F���0k_%�PageSizêF����G_%oPrinterName<�F����_%�ScreenDump��F���0`%�SelectIllustration`�F���b}_%lSelectJobDATAdPDriver_AbortJob Syntax: <os_error> *PDriver_AbortJob (<print_job> job); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function ends a print job abnormally. It should be called immediately you get an error while printing (even before showing an error message). No further printer output will be produced.DATAyPDriver_CancelJob Syntax: <os_error> *PDriver_CancelJob (<print_job> job); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function causes subsequent attempts to output to the print job given to do nothing other than generate the error 'Print cancelled'. An application is expected to respond to this by aborting the print job.DATAyPDriver_CancelJobWithError Syntax: <os_error> *PDriver_CancelJobWithError (<print_job> job, os_error *error); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function cancels a print job so that any attempt to output to it will do nothing other than generate the error given in /error/. This function is RISC OS 3 only, folks!DATAPDriver_CheckFeatures Syntax: <os_error> *PDriver_CheckFeatures (<print_features> m, print_features val); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function checks the features of a printer. If those bits which are set in /m/ have the same values in both the current printer's features and in /val/ then no error is generated. ie if the current printer driver's features are called /feat/, this function checks that: {fCode;align centre}feat & m == val & mDATADPDriver_CurrentJob Syntax: <os_error> *PDriver_CurrentJob <print_job> *current); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function gets the file handle of the current job and stores it in the variable pointed to by /current/. Zero is stored if no print job is active.DATA`PDriver_DrawPage Syntax: <os_error> *PDriver_DrawPage (int copies, <wimp_rect> *rect, int seq, char *page, int *finish, int *rect_id); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function should be called after all rectangles have been specified using <PDriver_GiveRectangle>. /copies/ contains the number of copies to print, /seq/ should be zero, or contain the page number, /page/ should be <NULL> or give the page number in text form. On return, /rect/ contains the rectangle to be printed (in OS units) _within_ the rectangle whose id is returned in {/}rect_id{/}. /finish/ contains the number of copies still to be printed hence it is zero when the job is finished. After plotting the page using normal plotting routines (which the printer driver will intercept), you should call <PDriver_GetRectangle>.DATA%PDriver_EndJob Syntax: <os_error> *PDriver_EndJob (<print_job> job); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function ends a print job normally. This may result in further printer output (a PostScript printer driver outputs a trailer).DATA�PDriver_EnumerateJobs Syntax: <os_error> *PDriver_EnumerateJobs (<print_job> *job); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function enumerates all the existing print jobs. You get the complete list you should call the function with {/}*job{/}=0, {/}*job{/} will be updated to contain the next handle, you should then call the function again with that handle.DATA%PDriver_GetRectangle Syntax: <os_error> *PDriver_GetRectangle (<wimp_rect> *rect, int *finish, int *rect_id); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function should be called after <PDriver_DrawPage>, and then called repeatedly until /finish/ returns zero. On return, /rect/ contains the rectangle to be printed (in OS units) _within_ the rectangle whose id is returned in {/}rect_id{/}. /finish/ contains the number of copies still to be printed hence it is zero when the job is finished.DATA�PDriver_GiveRectangle Syntax: <os_error> *PDriver_GiveRectangle (int rect_id, <wimp_rect> *rect, <print_transformation> *matrix, <wimp_point> *pos, int backcol); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function allows an application to tell the printer driver what it wants to print. {/}rect_id{/} is a user-defined value to identify each rectangle you send. /rect/ defines the rectangle to be printed in OS units. /matrix/ is the transformation matrix. /pos/ is the position on the page in millipoints (of the bottom left). /backcol/ specifies the background colour, in the form 0xBBGGRR00. An application should make one or more calls to this function, before calling <PDriver_DrawPage>.DATArPDriver_Info Syntax: <os_error> *PDriver_Info (<printer_info> *block); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function gets information on the printer driver. It allows the application to change the way it outputs its data to suit the printer. The information is returned in the structure pointed to by /block/.DATATPDriver_InsertIllustration Syntax: <os_error> *PDriver_InsertIllustration (int handle, void *drawpath, <wimp_point> *bot_left, wimp_point *bot_right, wimp_point *top_left); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. If the function is supported (check the <PDriver_Info>), it inserts an external file into the current job's output. /handle/ is the file handle of the illustration. /drawpath/ is a pointer to a clipping path, or 0. {/}bot_left{/}, {/}bot_right{/}, {/}top_left{/} define the position of the illustration in 1/256ths of an OS unit.DATA�PDriver_PageSize Syntax: <os_error> *PDriver_PageSize (<wimp_point> *size, <wimp_rect> *print); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function finds how large the paper and print area is. On exit, /size/ contains the paper size in millipoints, and /print/ contains the printable rectangle (origin at bottom left, coordinates in millipoints).DATAoPDriver_PrinterName Syntax: char *PDriver_PrinterName (void); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to name. This function returns the name of the current printer. If it is to be used, a copy of it should be taken since it can change in a multiple printer driver system ({*}!Printers{*}). _It must not under any circumstances be written to_.DATA�PDriver_ScreenDump Syntax: <os_error> *PDriver_ScreenDump (<print_job> job); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function makes the printer driver output a screen dump to the job given. Note that none of the standard Acorn driver support this feature (check the features first using <PDriver_CheckFeatures> or <PDriver_Info>).DATA�PDriver_SelectIllustration Syntax: <os_error> *PDriver_SelectIllustration (<print_job> new, char *title, print_job *old); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function does the same as <PDriver_SelectJob>, except that if a new print job is started: {tab} � It must be only one page long. � Output may differ eg EPS instead of PostScript. RISC OS 3 only.DATAlPDriver_SelectJob Syntax: <os_error> *PDriver_SelectJob (<print_job> new, char *title, print_job *old); Header: <DeskLib:PDriver.h=>PDriver> Returns: Pointer to error, or <NULL> if none. This function makes a given print job the current one. The job is identified by /new/ which must be a file (eg {/}printer:{/}) previously opened for output (eg by <File_Open>). /title/ gives a human-readable name for the job. The current print job is suspended and the new job (re)started. The old job handle (if any) is returned in the variable pointed to by /old/. NB If /new/ is zero then the current job is suspended.DATAperror Syntax: void perror (char *str); Header: <stdio.h=>stdio> This function writes a description of the error in <errno> to the stream <stderr>. If /str/ is not a null pointer then it prefixes the error description with the string pointed to by /str/ and a colon (':').DIR$,,�F���+�"C!RootDATACprintf() Format String The format string is composed of a sequence of characters. All characters except '%' are copied directly to the output. '%' marks the beginning of a conversion specification. If a literal percent is required, then "%%" should be used. A conversion specification results in one argument from the argument list being printed according to the specification. The structure of a conversion specification is shown below: #wrap off %[<flags=>pf_flags_>][<field width=>pf_fw_>][<.precision=>pf_prec_>][<modifier=>pf_mod_>]\<<conversion char=>pf_conv_>\> DIR$���F���Na�"�conv_��F���)�"�flags_��F���O'�"�fw_p�F����:�"�mod_�F���n+�"�prec_DATA�Format String Conversion Character One of the following: d,i The int argument is output as a signed decimal. o,u,x,X The unsigned int argument is output as octal (o), unsigned decimal (u), or unsigned hexadecimal (x or X). x causes hexadecimal to be output in lower case, and X in upper case. f The double argument is output as a signed decimal. If no <precision=>pf_prec_> is specified it defaults to 6. e,E The double argument is output in standard form notation (scientific). If no precision is specified it defaults to 6. g,G The double argument is output in style f or e/E. The style used is the one which produces the neatest output. c The int argument is converted to an unsigned char and output. s The char* argument is output as a string. p The argument is a void* pointer, the value of which (not the value it points to) is printed. n The number of characters written so far is written into the int pointed to by the argument.DATA�Format String Flags The following flags may be used: - Left-justify the result. + Begin signed results with either + or -. (space) If no sign is used, use a space instead. # Alters the output depending on the <conversion character=>pf_conv_>. For o conversion it adds a leading 0. For x conversion it adds a leading '0x'. For e, E, f, g, and G conversion the result will always contain a decimal point. For G and g, trailing zeros will not be removed. 0 For d, i, o, u, x, X, e, E, f, g, and G conversions, leading zeros will be used as padding instead of spaces. This will have no effect if the '-' flag is used, neither will it have any effect if a precision is specified for d, i, o, u, x, and X conversions..DATA�Format String Field Width This is an unsigned integer value. If the converted value has fewer characters than the field width, it will be padded by spaces (on the left unless the <'-' flag=>pf_flags_> is present).DATA�Format String Length Modifier One of the following: h For d, i, o, u, x or X conversion specifies that the argument is a short int. For n conversion specifies that the pointer is to a short int. l For d, i, o, u, x, or X conversion specifies that the argument is a long int. For n conversion specifies that the pointer is to a long int. L For e, E, f, g or G conversion specifies that the argument is a long double.DATA�Format String Precision This is a period ('.') followed by an integer. The value has an effect depending on the <conversion character=>pf_conv_> as follows: e, E, f: The precision is the number of digits to appear after the decimal point. g, G: The precision is the number of significant digits to be output. s: The precision is the maximum number of characters to be output from the string. d, i, o, u, x, and X: The precision is the minimum number of digits to appear.DATA�pointer.h This header declares functions for setting the pointer shape. Functions: #indent 1 #table lines 1 <pointer_set_shape> <pointer_reset_shape> #endtable Macro: {align centre} <wimp_spritearea>DIR$�F���!K�$�reset_shape��F���TF�$Pset_shape��F���nB&shapeblock��F�����R&RestrictToWindow�F���ܾR&?RestrictToIconX�F�����R&RestrictToRect\�F�����R&�UnrestrictDATA�pointer_reset_shape Syntax: void pointer_reset_shape (void); Header: <pointer.h=>pointer> This function resets the pointer to be shape 1 (the default pointer).DATAPpointer_set_shape Syntax: <os_error> *pointer_set_shape (<sprite_area> *area, <sprite_id> *spr, int active_x, int active_y); Header: <pointer.h=>pointer> Returns: Pointer to error, or <NULL> if none. This function sets the pointer (using pointer 2) to be the sprite specified. The active point is given in (active_x,active_y).DATApointer_shapeblock This is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure used by <Wimp_SetPointerShape> which defines the shape and size of the pointer. \{ int shapenumber; char *shapedata; unsigned int width; unsigned int height; <wimp_point> active; } /shapenumber/ should be 0 to switch the pointer off, or 2 to define your own pointer. /active/ defines the offset (in pixels from the top-left) of the active point. /shapedata/ can be -1 for no change.DATAPointer_RestrictToWindow Syntax: <os_error> *Pointer_RestrictToWindow (<window_handle> win); Header: <DeskLib:Pointer.h=>DL_Pointer> Returns: Pointer to error, or <NULL> if none. This function restricts the pointer to the rectangle which is the window specified in /win/.DATA?Pointer_RestrictToIcon Syntax: <os_error> *Pointer_RestrictToIcon (<window_handle> win, <icon_handle> icon); Header: <DeskLib:Pointer.h=>DL_Pointer> Returns: Pointer to error, or <NULL> if none. This function restricts the pointer to the rectangle which is the bounding box of the icon /icon/ in window /win/.DATAPointer_RestrictToRect Syntax: <os_error> *Pointer_RestrictToRect (<wimp_rect> rect); Header: <DeskLib:Pointer.h=>DL_Pointer> Returns: Pointer to error, or <NULL> if none. This function restricts the pointer to the rectangle which is given in /rect/.DATA�Pointer_Unrestrict Syntax: <os_error> *Pointer_Unrestrict (void); Header: <DeskLib:Pointer.h=>DL_Pointer> Returns: Pointer to error, or <NULL> if none. This function removes any restriction on the pointer.DIR$,,`�F����YF&�blockDATA�pollword_block This is a type defined by <DeskLib:Wimp.h=>Wimp> which contains the data returned by a PollWord_NonZero event. {wrap off} \{ int address; /* Address of poll word */ int contents; /* Contents of poll word */ }DATAfDeskLib:PopUp.h Version: 1.00 (20 May 1993) #line This header provides functions and types relating to Jason Williams' PopUp system. Functions: #indent 5 #Table 3 21 <PopUp_Open> <PopUp_Close> <PopUp_ShowMenuLeaf> <PopUp_ShowPtr> <PopUp_ShowStandalone> <PopUp_ShowStatic> #EndTable #indent Macros: #indent 3 #Table 6 21 <popup_ISLEAF> <popup_ISSTATIC> <popup_STANDALONE> <popup_MENULEAF> <popup_STATIC> <popuptc_RGB> <popuptc_HSV> <popuptc_CMYK> <popuptc_TRANSPARENT0> <popuptc_TRANSPARENT1> <popuptc_TRANSPARENT256> #EndTable #indent Types: #indent 7 #Table 9 21 <popup_handle> <popup_magnify> <popup_proginfo> <popup_report> <popup_saveas> <popup_saveasreturn> <popup_wimpcolour> <colour_rgb> <colour_hsv> <colour_cmyk > <popup_truecolour> <popup_header> <popup_data> <popup_returndata> <message_popuprequest> <message_popupstate> <popup_block> #EndTableDIR$����F����^a%�CMYK@�F���n[a%�HSV�F���Xa%�RGB��F����aa%�TRANSPARENT0H�F���0ka%;TRANSPARENT1��F���2sa%HTRANSPARENT256DATA�popuptc_CMYK This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the colour model number representing the CMYK model. It is defined as 2.DATA�popuptc_HSV This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the colour model number representing the HSV model. It is defined as 1.DATA�popuptc_RGB This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the colour model number representing the RGB model. It is defined as 0.DATA�popuptc_TRANSPARENT0 This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value to OR into the colour model number which represents no transparency. It is defined as 0x00000.DATA;popuptc_TRANSPARENT1 This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value to OR into the colour model number which represents one transparency. It is defined as 0x10000. For example, a '!Draw' style colour would be given by: {wrap off} {fCode;align centre}<popuptc_RGB> | popuptc_TRANSPARENT1DATAHpopuptc_TRANSPARENT256 This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value to OR into the colour model number which represents full transparency. It is defined as 0x20000. For example, a full transparency HSV colour would be given by: {wrap off} {fCode;align centre}<popuptc_HSV> | popuptc_TRANSPARENT256DIR$$$�F���}�a%block�F���� a%�Close�F�����a%kdatal�F����xa%�handle�F�����a%:headerT�F����Ea%�ISLEAF8�F���fJa%�ISSTATIC�F��� |a%magnify(�F���Ra%�MENULEAFйF���a%GOpen�F����a%)proginfoD�F����a%�report�F�����a%�returndata��F���:�a%+saveas(�F�����a%�saveasreturn��F���.a%mShowMenuLeaf$�F���I8a%�ShowPtr��F��� >a%ShowStandalone��F����Ba%�ShowStatic��F����Na%�STANDALONE��F��� Ua%�STATIC8�F�����a%jtruecolour��F���"�a%�wimpcolourDATApopup_block This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to contain complete information about a PopUp request as sent to <PopUp_Open>. \{ <popup_header> header; <popup_data> data; } See the PopUp documentation for more details.DATA�PopUp_Close Syntax: void PopUp_Close (<popup_handle> handle); Header: <DeskLib:PopUp.h=>PopUp> This simply calls the SWI PopUp_Close. It closes any PopUp given that PopUp's handle. This functions should only be necessary for STATIC PopUps.DATAkpopup_data This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a union used to send data to the PopUp manager. \{ <popup_magnify> magnify; <popup_proginfo> proginfo; <popup_report> report; <popup_saveas> saveas; <popup_wimpcolour> wimpcolour; <popup_truecolour> truecolour; } See the PopUp documentation for more details.DATA�popup_handle This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a type capable of holding a unique identifier for each PopUp opened. It is defined as an /int/.DATA:popup_header This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to pass standard vital information to PopUp. \{ char name[12]; /* PopUp name */ <wimp_point> openpos; char flags; char reserved1,reserved2,reserved3; } See the PopUp documentation for more details.DATA�popup_ISLEAF This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the flag bit indicating that a PopUp should be opened as a menu leaf dialogue box. It is preferable to use the macro <popup_MENULEAF>.DATA�popup_ISSTATIC This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the flag bit indicating that a PopUp should be opened as a static dialogue box. It is preferable to use the macro <popup_STATIC>.DATApopup_magnify This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information for the "Magnify" popup, as follows: \{ int mul,div; int minmul,maxmul; int mindiv,maxdiv; } See the PopUp documentation for more details.DATA�popup_MENULEAF This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the flag byte needed to open a PopUp as a menu leaf. It is defined as 0x01.DATAGPopUp_Open Syntax: <popup_handle> PopUp_Open (<popup_block> *blk); Header: <DeskLib:PopUp.h=>PopUp> Returns: Handle of created PopUp. This simply calls the SWI PopUp_Open. You shoud use one of the PopUpShow functions instead. See <PopUp_ShowMenuLeaf>, <PopUp_ShowPtr>, <PopUp_ShowStandalone>, and <PopUp_ShowStatic>.DATA)popup_proginfo This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information for the "ProgInfo" popup, as follows: \{ char appname[32]; char purpose[32]; char author[32]; char version[32]; } See the PopUp documentation for more details.DATA�popup_report This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information for the "Report" popup, as follows: \{ struct \{ unsigned int cancel : 1; unsigned int ok : 1; unsigned int reserved : 6; unsigned int userhandle : 24; } flags; char oktext[12]; char canceltext[12]; char appname[12]; char message[188]; } See the PopUp documentation for more details.DATA�popup_returndata This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used when receiving data from the PopUp manager. \{ <popup_magnify> magnify; <popup_report> report; <popup_saveas> saveasreturn; <popup_wimpcolour> wimpcolour; <popup_truecolour> truecolour; } Note that this structure is actually wrong. The third line should be a <popup_saveasreturn>. And it should be a union not a structure. See the PopUp documentation for more details.DATA+popup_saveas This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information for the "SaveAs" popup, as follows: \{ char iconsprite[12]; char filename[212]; } This PopUp returns a <popup_saveasreturn>. See the PopUp documentation for more details.DATA�popup_saveasreturn This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information returned by the "SaveAs" popup, as follows: \{ struct \{ unsigned int wasdragged : 1; unsigned int shiftdown : 1; unsigned int reserved : 30; } flags; int reserved; char filename[212]; } See the PopUp documentation for more details.DATAmPopUp_ShowMenuLeaf Syntax: <popup_handle> PopUp_ShowMenuLeaf (char *name, <popup_data> *def, <message_menuwarn> *msg); Header: <DeskLib:PopUp.h=>PopUp> Returns: Handle of PopUp. This functions shows a MENU-LEAF PopUp. /name/ is the PopUp name, /def/ is the data for the PopUp and /msg/ contains the message_MENUWARN which caused you to call this function.DATA�PopUp_ShowPtr Syntax: <popup_handle> PopUp_ShowPtr (char *name, <BOOL> static, <popup_data> *def); Header: <DeskLib:PopUp.h=>PopUp> Returns: Handle of PopUp. This functions shows either a standalone transient (Menu) PopUp or a static PopUp. /name/ is the PopUp name, /def/ is the data for the PopUp and /static/ contains <TRUE> if the PopUp should be static. You should use <PopUp_Showstandalone> or <PopUp_ShowStatic> instead.DATAPopUp_ShowStandalone Syntax: <popup_handle> PopUp_ShowStandalone (char *name, <popup_data> *def); Header: <DeskLib:PopUp.h=>PopUp> Returns: Handle of PopUp. This is a function-like macro which simply calls <PopUp_ShowPtr> with /static/ set to <FALSE>.DATA�PopUp_ShowStatic Syntax: <popup_handle> PopUp_ShowStatic (char *name, <popup_data> *def); Header: <DeskLib:PopUp.h=>PopUp> Returns: Handle of PopUp. This is a function-like macro which simply calls <PopUp_ShowPtr> with /static/ set to <TRUE>.DATA�popup_STANDALONE This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the flag byte needed to open a stand-alone PopUp. It is defined as 0x00.DATA�popup_STATIC This macro is defined in <DeskLib:PopUp.h=>PopUp>. It is the value of the flag byte needed to open a PopUp as a static dialogue box. It is defined as 0x02.DATAjpopup_truecolour This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information for the "TrueColour" popup, as follows: \{ int colourmodel; union \{ <colour_rgb> rgb; <colour_hsv> hsv; <colour_cmyk> cmyk; } colour; int transparency; } See the PopUp documentation for more details.DATA�popup_wimpcolour This type is defined in <DeskLib:PopUp.h=>PopUp>. It is a structure used to hold information for "WimpColour" popup, as follows: \{ char colour; /* Wimp colour 0-15 */ } See the PopUp documentation for more details.DATA�pow Syntax: double pow (double x, double y); Header: <math.h=>math> Returns: The value of x raised to the power y. This function calculates x to the power of y. If x is negative, then y must be an integer. DIR$,,��F���Q�"L!RootDATALPreprocessor Directives These directives are within the source code itself, they are all start with "#". The directives are: #Indent 10 #Table 5 15 <#define=>define> <#include=>include> <#if=>if_> <#ifdef=>ifdef> <#ifndef=>ifndef> <#else=>else_> <#elseif=>elseif> <#endif=>endif> <#undef=>undef> <#pragma=>pragma> #EndTableDATA#pragma This is an addition to the orignal C standard. It does different things in different compilers. The general form is: {fCode;align centre}#pragma \<command>{f;align} The commands in Easy C are: #align centre <#pragma asm=>pragma_asm_> <#pragma endasm=>pragma_endasm_>DIR$LL`�F�����"Iasm_��F������"Lendasm_DATAI#pragma asm Unlike Desktop C, Easy C contains an integrated ARM assembler. {fCode}#pragma asm{f} marks the start of a section of assembly language. It may be placed at any position where a function definition may be placed. Registers can take normal names ({/}R0-R15{/}) or the APCS standard names ({/}a1{/} etc, {/}f1{/} etc, {/}sp{/}, {/}lk{/} and {/}pc{/}). Expressions are in the normal C format and all pre-processing applies to the assembly language section as well. Labels are prefixed by a full stop and they may be referred to outside of the Assembly language section as a function, unless they finish in a '$' character. To make them available externally, use <EXPORT> \<labelname>. SWIs can be called by name or number, without using quotes eg {fCode}SWI <OS_WriteS=>SWI:OS_WriteS>{f}, {fCode}SWI 0x12344{f}. Note that to store data, variables must be used - the assembled code is read-only. This is not really a problem... The following pseudo-instructions are available: #indent 10 #Table 2 9 <IMPORT> <EXPORT> <ALIGN> <DCB> <DCD> <ADR> <LDR> <STR> <LDF> <STF> #EndTableDATAL#pragma endasm This marks the end of a section of assembly language.DATAsprint.h This header file declares function and types for accessing RISC OS printer drivers from C. Functions: #indent 8 #Table columns 2 <print_info> <print_setinfo> <print_checkfeatures> <print_pagesize> <print_setpagesize> <print_selectjob> <print_currentjob> <print_endjob> <print_abortjob> <print_canceljob> <print_reset> <print_selectillustration> <print_giverectangle> <print_drawpage> <print_getrectangle> <print_screendump> #EndTable #indent Types: #indent 5 #Table columns 3 <print_identity> <print_features> <print_infostr> <print_box> <print_pagesizestr> <print_transmatstr> <print_positionstr> #EndTableDIR$���F����E`%�FX80��F����S`%�INTEGREXh�F����M`%�LASERJET �F����@`%�POSTSCRIPTDATA�printdriver_FX80 The macro {*}printdriver_FX80{*} is defined by <DeskLib:PDriver.h=>PDriver>. It is the drivertype of <printer_info> representing an Epson printer.DATA�printdriver_INTEGREX The macro {*}printdriver_INTEGREX{*} is defined by <DeskLib:PDriver.h=>PDriver>. It is the drivertype of <printer_info> representing a ColourJet printer.DATA�printdriver_LASERJET The macro {*}printdriver_LASERJET{*} is defined by <DeskLib:PDriver.h=>PDriver>. It is the drivertype of <printer_info> representing a LaserJet printer.DATA�printdriver_POSTSCRIPT The macro {*}printdriver_POSTSCRIPT{*} is defined by <DeskLib:PDriver.h=>PDriver>. It is the drivertype of <printer_info> representing a PostScript printer.DIR$,,�F���ԏ`%infoDATAprinter_info This structure is defined by <DeskLib:PDriver.h=>PDriver> as a structure containing the information returned by <PDriver_Info>. \{ unsigned int version : 16; int drivertype : 16; <wimp_point> resolution; <print_features> features; char *description; wimp_point halftone_res; int id_number; } /version/ is the version number * 100. /resolution/ gives x and y res in dpi. {/}halftone_res{/} in repeats per inch. {/}id_number{/} is for internal use only.DATA1printf Syntax: int printf (char *format, ...); Header: <stdio.h=>stdio> Returns: The number of characters written, or a negative value if there was an error. This function writes output to <stdout> under control of the <format string=>pform_>. It is identical to <fprintf>(stdout, format, ...);DIR$HH��F����W`%�COLOURd�F���-]`%�DISCRETE@�F���es`%�ILLUSTRATIONS �F���tZ`%�LIMITED��F���.``%�NOFILL��F���Zf`%�NOOVERWRITE��F���|c`%�NOTHICKNESS��F���(j`%�SCREENDUMP|�F����n`%"TRANSFORMSDATA�printfeat_COLOUR This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver can print in colour.DATA�printfeat_DISCRETE This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver can only print a discrete set of colours.DATA�printfeat_ILLUSTRATIONS This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver supports <PDriver_InsertIllustration>.DATA�printfeat_LIMITED This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver can only print a limited set of colours.DATA�printfeat_NOFILL This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver can't handle filled shapes properly.DATA�printfeat_NOOVERWRITE This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver can't handle overwriting of one colour by another properly.DATA�printfeat_NOTHICKNESS This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver can't handle thick lines properly.DATA�printfeat_SCREENDUMP This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If set, it indicates that the printer driver supports screen dumps with <PDriver_ScreenDump>.DATA"printfeat_TRANSFORMS This macro is defined by <DeskLib:PDriver.h=>PDriver> as a value representing a bit in the features word. If clear, it indicates that the printer driver does not support any transformations except scalings, translations and rotations by multiples of 90 degrees.DIR$��H�F���T�$Labortjob��F���#��$�box(�F�����$acanceljob��F������$�checkfeaturest�F���)ܴ$-currentjob��F����-�$Ldrawpage��F�����$ endjob�F����e�$@features@�F����w�$features_`�F���#F�$getrectanglet�F���`�$�giverectangleT�F����T�$�identity<�F������$cinfo�F���₵$�infostr�F���my`%�job8F���P��$cpagesize�F���a��$ pagesizestr�F������$�positionstr<F�����$�reset�F����N�$iscreendumpTF������$selectillustration� F���=ϴ$:selectjobF���;��$Rsetinfod F������$_setpagesize�F�����`%KtransformationF������$XtransmatstrDATALprint_abortjob Syntax: <os_error> *print_abortjob (int job); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function ends a print job abnormally. It should be called immediately you get an error while printing (even before showing an error message). No further printer output will be produced.DATA�print_box This type is defined in <print.h=>print>. It is a structure containing an abitrary rectangle. \{ int x0, y0, x1, y1; }DATAaprint_canceljob Syntax: <os_error> *print_canceljob (int job); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function causes subsequent attempts to output to the print job given to do nothing other than generate the error 'Print cancelled'. An application is expected to respond to this by aborting the print job.DATA�print_checkfeatures Syntax: <os_error> *print_checkfeatures (int mask, int value); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function checks the features of a printer. If those bits which are set in /mask/ have the same values in both the current printer's features and in /value/ then no error is generated. ie if the current printer driver's features are called /feat/, this function checks that: {align centre}feat & mask == value & maskDATA-print_currentjob Syntax: <os_error> *print_currentjob (int *current); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function gets the file handle of the current job and stores it in the variable pointed to by /current/. Zero is stored if no print job is active.DATALprint_drawpage Syntax: <os_error> *print_drawpage (int copies, int seq, char *page, <print_box> *rect, int *finish, int *rect_id); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function should be called after all rectangles have been specified using <print_giverectangle>. /copies/ contains the number of copies to print, /seq/ should be zero, or contain the page number, /page/ should be <NULL> or give the page number in text form. On return, /rect/ contains the rectangle to be printed (in OS units) _within_ the rectangle whose id is returned in {/}rect_id{/}. /finish/ contains the number of copies still to be printed hence it is zero when the job is finished. After plotting the page using normal plotting routines (which the printer driver will intercept), you should call <print_getrectangle>.DATA print_endjob Syntax: <os_error> *print_endjob (int job); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function ends a print job normally. This may result in further printer output (a PostScript printer driver outputs a trailer).DATA@print_features This is a union defined by <DeskLib:PDriver.h=>PDriver> to contain printer driver features, both as a value and as individual bits. It is also an <enumerated type=>print_features_> defined by <print.h=>print> (Desktop C). \{ int value; struct \{ unsigned int colour : 1; unsigned int limited : 1; unsigned int discrete : 1; unsigned int filler1 : 5; unsigned int nofill : 1; unsigned int nothickness : 1; unsigned int nooverwrite : 1; unsigned int filler2 : 5; unsigned int filler3 : 8; unsigned int screendump : 1; unsigned int transforms : 1; unsigned int illustrations : 1; unsigned int filler4 : 5; } data; }DATAprint_features \{ print_colour = 0x0000001, print_limited = 0x0000002, print_discrete = 0x0000004, print_NOFILL = 0x0000100, print_NOTHICKNESS = 0x0000200, print_NOOVERWRITE = 0x0000400, print_SCREENDUMP = 0x1000000, print_TRANSFORM = 0x2000000 }DATAprint_getrectangle Syntax: <os_error> *print_getrectangle (<print_box> *rect, int *finish, int *rect_id); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function should be called after <print_drawpage>, and then called repeatedly until /finish/ returns zero. On return, /rect/ contains the rectangle to be printed (in OS units) _within_ the rectangle whose id is returned in {/}rect_id{/}. /finish/ contains the number of copies still to be printed hence it is zero when the job is finished.DATA�print_giverectangle Syntax: <os_error> *print_giverectangle (int rect_id, <print_box> *rect, <print_transmatstr> *matrix, <print_positionstr> *pos, int backcol); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function allows an application to tell the printer driver what it wants to print. {/}rect_id{/} is a user-defined value to identify each rectangle you send. /rect/ defines the rectangle to be printed in OS units. /matrix/ is the transformation matrix. /pos/ is the position on the page in millipoints (of the bottom left). /backcol/ specifies the background colour, in the form 0xBBGGRR00. An application should make one or more calls to this function, before calling <print_drawpage>.DATA�print_identity This type is defined in <print.h=>print>. It is an enumerated type listing the different printer types available. It is defined as follows: \{ print_PostScript = 0, print_FX80compatible = 1 }DATAcprint_info Syntax: <os_error> *print_info (<print_infostr> *block); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function gets information on the printer driver. It allows the application to change the way it outputs its data to suit the printer. The information is returned in the structure pointed to by /block/.DATA�print_infostr This structure is defined by <printer.h=>printer> as a structure containing the information returned by <printer_info>. \{ short int version; short int identity; int xres,yres; int features; char *description; int xhalf, yhalf; int number; } /version/ is the version number * 100. (xres,yres) gives x and y res in dpi. (xhalf,yhalf) halftone res in repeats per inch. /number/ is for internal use only.DATA�print_job The type {*}print_job{*} is defined in <DeskLib:PDriver.h=>PDriver> as a type capable of holding a print job handle. It is actually defined as an /int/.DATAcprint_pagesize Syntax: <os_error> *print_pagesize (<print_pagesizestr> *size); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function finds how large the paper and print area is. On exit, /size/ contains the paper size in millipoints, and the printable rectangle (origin at bottom left, coordinates in millipoints).DATA print_pagesizestr This type is defined in <print.h=>print>. It is a structure containing a page and its margins. \{ int xsize, ysize; <print_box> bbox; } {/}(xsize,ysize){/} is the page size in millipoints. /bbox/ is the actual printable area.DATA�print_positionstr This type is defined in <printer.h=>printer>. It is a structure giving an abitrary coordinate: \{ int dx, dy; }DATA�print_reset Syntax: <os_error> *print_reset (void); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function aborts all print jobs.DATAiprint_screendump Syntax: <os_error> *print_screendump (int job); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function makes the printer driver output a screen dump to the job given. Note that none of the standard Acorn drivers support this feature (check the features first using <print_checkfeatures> or <print_info>).DATAprint_selectillustration Syntax: <os_error> *print_selectillustration (int new, char *title, int *old); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function does the same as <print_selectjob>, except that if a new print job is started: {tab} � It must be only one page long. � Output may differ eg EPS instead of PostScript. RISC OS 3 only.DATA:print_selectjob Syntax: <os_error> *print_selectjob (int new, char *title, int *old); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function makes a given print job the current one. The job is identified by /new/ which must be a file (eg {*}printer:{*}) previously opened for output. /title/ gives a human-readable name for the job. The current print job is suspended and the new job (re)started. The old job handle (if any) is returned in the variable pointed to by /old/. NB If /new/ is zero then the current job is suspended.DATARprint_setinfo Syntax: <os_error> *print_setinfo (<print_infostr> *block); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function reconfigures the printer driver. The version, identity and description fields are not used. Leave bit 0 clear in the features field for monochrome, set bit 0 for colour.DATA_print_setpagesize Syntax: <os_error> *print_setpagesize (<print_pagesizestr> *size); Header: <print.h=>print> Returns: Pointer to error, or <NULL> if none. This function sets how large the paper and print area is. /size/ contains the paper size in millipoints, and the printable rectangle (origin at bottom left, coordinates in millipoints).DATAKprint_transformation This type is defined in <DeskLib:PDriver.h=>PDriver> as a type capable of specifying an arbitrary transformation. It is the structure: \{ int xx; int xy; int yx; int yy; } The coordinates (x,y) are mapped to: ((x*xx+y*yx) / (1\<\<16) ,(x*xy+y*yy) / (1\<\<16))DATAXprint_transmatstr This type is defined in <printer.h=>printer> as a type capable of specifying an arbitrary transformation. It is the structure: \{ int xx; int xy; int yx; int yy; } The coordinates (x,y) are mapped to: {wrap off} {align centre}((x*xx+y*yx) / (1\<\<16) ,(x*xy+y*yy) / (1\<\<16))DIR$((�F����~�"�tDATA�ptrdiff_t The type {/}ptrdiff_t{/} is defined in <stddef.h=>stddef> as an object capable of holding the result of subtracting one pointer from another. It is actually defined in both Desktop C and Easy C as a /signed int/.DATA�putc Syntax: int putc (int c, <FILE> *stream); Header: <stdio.h=>stdio> Returns: c, or <EOF> if there is an error. This function writes the character in /c/ to the stream specified. It is virtually identical to <fputc>. The only difference is that the function might be a macro and the argument may be evaluated more than once so you can't use an expression with side effects. For example putc(i++) may cause i to be incremented twice.DATA0putchar Syntax: int putchar (int c); Header: <stdio.h=>stdio> Returns: c, or <EOF> if there is an error. This function writes the character in /c/ to <stdout>. It is identical to <putc>(c,stdout). It may be implemented as a macro so be careful of using expressions which modify other variables.DATA�puts Syntax: int puts (char *str); Header: <stdio.h=>stdio> Returns: <EOF> if there is an error. This function writes the string pointed to by /str/, followed by a newline, to <stdout>. The null terminator is not written.DIR$���F�����"�qsort�F���u<�"�raisexF����H�"�rand0F���DŽ/(RAND_F����LU&dReadEntriesdF���;\�"�realloc�#F���c��"Mremove8%F�����"�rename�&F������$�res�'F���uIb%{Resource)F����DŽ/�Resource_/F���L;�$�resspr�/F���#Ȅ/Lresspr_�1F���[Ȅ/tres_p5F�����"return�7F����P�"�rewindT8F����Ȅ/,riscos_:F����Ȅ/�rl_�=F�����$%roslib$@F���aɄ/�ro_DATA�qsort Syntax: void qsort (void *base, <size_t> num, size_t size, int (*func) (void *, void *)); Header: <stdlib.h=>stdlib> This function sorts an array of /num/ objects, each of which is /size/ bytes long, and whose first object is pointed to by /base/ into ascending order. The function which must be defined by you is called with pointers to objects. If the first is less than, equal to, or greater than the second then the function should return less than, equal to, or greater than zero.DATA�raise Syntax: int raise (int sig); Header: <signal.h=>signal> Returns: Zero if successful This function sends the signal /sig/ to the executing program.DATA�rand Syntax: int rand (void); Header: <stdlib.h=>stdlib> Returns: A psuedo-random number. This function generates a psuedo-random number in the range from 0 to <RAND_MAX>.DIR$((XF���Z��"�MAXDATA�RAND_MAX The macro {/}RAND_MAX{/} is defined in <stdlib.h=>stdlib> as the maximum value returned by the function <rand>. In Easy C it is defined as 0x7fffffff.DATAdReadEntries Syntax: int ReadEntries (char *pathname, <object_info> *buf, int num, int *off, int buf_size, char *fspec); Header: <TimsLib:File.h=>File_TL> Returns: Number of objects read. This function reads entries from a directory. /pathname/ contains the directory name, /buf/ is a store of size {/}buf_size{/} for the object info read. /num/ is the number of objects to read and {/}*off{/} is the offset to start from. /fpsec/ determines the leaf names to match - if it is <NULL> then "*" is used. {/}*off{/} is automatically updated after each call. This function is equivalent to SWI OS_GBPB 10.DATA�realloc Syntax: void *realloc (void *ptr, size_t size); Header: <stdlib.h=>stdlib> Returns: Pointer to space, or <NULL> if failed. This function changes the size of a space initially allocated with <calloc>, <malloc>, or realloc. It takes a pointer to the space in /ptr/, and a new size in /size/. The contents of the space are unaltered (although they may be chopped off the new size is smaller). Any new bytes allocated have undefined values. The space may be moved rather than just extended and so this function returns a new pointer. If /ptr/ is <NULL> then this function behaves as <malloc>, else if /size/ is zero then this function behaves as <free>. If the space cannot be reallocated then the contents are unchanged. However, the function will return NULL so you will not be able to access the memory using the original pointer. Therefore, do not use the following code: {fCode}do \{ {fCode}size -= 1024; {fCode}space = (char *) realloc (space,size); {fCode}} while (space==NULL);{f} Use instead: {fCode}do \{ {fCode}size -= 1024; {fCode}newspace = (char *) realloc (space, size); {fCode}} while (newspace==NULL); space=newspace;DATAMremove Syntax: int remove (char *filename); Header: <stdio.h=>stdio> Returns: Zero if the file is removed. This function attempts to remove the file whose name is contained in filename. This is equivalent to <*Delete=>*Help Delete> or <OS_File 6=>SWI:os_file6>. If the file is open, the function will almost certainly fail.DATA�rename Syntax: int rename (char *old, char *new); Header: <stdio.h=>stdio> Returns: Zero if the file is renamed. This function renames the file whose name is in old, to the name in new. This is equivalent to <*Rename=>*Help Rename> or <OS_FSControl 25=>SWI:OS_FSControl>. If the file in new already exists the attempt will fail. If the attempt fails, the file will still be called by its old name.DATA�res.h This header declares functions for handling resource files (ie files within the application directory). Functions: #Indent 4 #Table 2 21 <res_init> <res_findname> <res_openfile> #EndTableDATA{DeskLib:Resource.h Version: 1.02 (Dec 1994) #line This header declares functions for handling resource files (ie files within the application directory). Functions: #indent 3 #Table columns 2 <Resource_Initialise> <Resource_InitialisePath> <Resource_LoadSprites> #EndTable #Indent 0 Variables: #indent 6 #table lines 1 <resource_pathname> <resource_sprites> #endtableDIR$���)F���a%b%�Initialise�*F���8-b%�InitialisePathL+F���Xb%Wpathname�,F���2fb%�sprites�-F����b%tLoadSpritesDATA�Resource_Initialise Syntax: void Resource_Initialise (char *name); Header: <DeskLib:Resource.h=>Resource> This function sets the variable <resource_pathname> to "\<Name$Dir>."DATA�Resource_InitialisePath Syntax: void Resource_InitialisePath (char *name); Header: <DeskLib:Resource.h=>Resource> This function sets the variable <resource_pathname> to "Name:".DATAWresource_pathname The variable {/}resource_pathname{/} is defined in <DeskLib:Resource.h=>Resource>. It is a string ({/}char *{/}) which is used as a prefix for all pathnames used by DeskLib for loading resource files. It is set to be either "\<Name$Dir>." or "Name:" by the function <Resource_Initialise> or <Resource_InitialisePath>.DATA�resource_sprites The variable {*}resource_sprites{*} indicates a sprite area containing sprites belonging to your task. If you have not loaded any with <Resource_LoadSprites>, it will point to the wimp sprite area. It is of type <sprite_area>.DATAtResource_LoadSprites Syntax: void Resource_LoadSprites (void); Header: <DeskLib:Resource.h=>Resource> This function loads the 'Sprites' file and sets up <resource_sprites> to point to it. You must have already called <Resource_Initialise> or <Resource_InitialisePath>. To use the sprites in your windows, call {fCode}<Template_UseSpriteArea>(resource_sprites);{f}DATA�resspr This header declares functions for accessing sprite resources. Functions: #indent 1 #table columns 2 <resspr_init> <resspr_area> #endtableDIR$LL�/F���"B�$�area�0F����$�$�initDATA�resspr_area Syntax: <sprite_area> *resspr_area (void); Header: <resspr.h=>resspr> This function returns a pointer to the sprite area into which your sprites were loaded.DATA�resspr_init Syntax: void resspr_init (void); Header: <resspr.h=>resspr> This function must be called before any other *resspr* functions and before using <template_init>. It reads in your sprites (I assume <res_init> must be called first).DIR$tt2F���ɹ�$�findname3F���p��$BinitP4F���辵$openfileDATA�res_findname Syntax: int res_findname (char *leaf, char *buf); Header: <res.h=>res> Returns: <TRUE> (always!). This function adds the prefix specified when calling <res_init>, to the leaf name given and places the result in /buf/.DATABres_init Syntax: void res_init (char *progname); Header: <res.h=>res> This function initialises the Resource system. You should call it with the name of your program. It will use "\<MyProg$Dir>." to prefix resource files, if you pass "MyProg" to it (so you must have defined the system variable in your !Run file.DATAres_openfile Syntax: <FILE> *res_openfile (char *leaf, char *mode); Header: <res.h=>res> Returns: Pointer to the file, or <NULL>. This function calls <res_findname> on the given leaf name, and then calls <fopen> to attempt to open the file according to the <mode=>file_mode_>.DATAreturn This keyword immediately jumps out of a function back to the point at which it was called. It may be followed by a value for the function to return, if the function is defined as one returning values. eg #fCode void test1 (int a, int *b) \{ if (a==2) return; b[0]=a; } #f This function sets the first element in the array /b/ to the value of /a/, so long as /a/ is not 2. #fCode int square (int a) \{ return a*a; } #f This function returns the square of /a/.DATA�rewind Syntax: void rewind (<FILE> *stream); Header: <stdio.h=>stdio> This function sets the file pointer for the stream to the beginning of the file. It is equivalent to <fseek>(stream, 0, <SEEK_SET>);DIR$,,�8F���4{Z&�!RootDATA�RISC OS Functions RISC OS Functions are provided by each of the Archimedes C compilers, and also by the freeware libraries "DeskLib" and "TimsLib". #Sprite 208,128 !ansic;indent 22 <Desktop C (Acorn)=>ro_ansic_> #Sprite 208,236 !easyc <Easy C (Beebug)=>ro_easyc_> #Sprite 208,344 !desklib <DeskLib (Freeware)=>ro_dlib_> #Sprite 208,452 !timslib <TimsLib (Freeware)=>ro_tlib_> DIR$���:F�����$�file_0;F���,�$�graph_�<F���x��$�io_l=F����$�misc_DATA�File Handling Functions #Parent roslib These functions all act on files in some way. #Table lines 1 <os_args> <os_file> <os_find> <os_gbpb> #EndTableDATA�Graphics Functions #Parent roslib These functions all affect the screen display in some way. #indent 5 #Table 9 16 <os_circle> <os_circlefill> <os_clg> <os_cls> <os_colour> <os_cursor> <os_draw> <os_drawby> <os_fill> <os_gcol> <os_mode> <os_move> <os_moveby> <os_origin> <os_palette> <os_plot> <os_point> <os_pos> <os_rectangle> <os_rectanglefill> <os_tab> <os_tint> <os_vdu> <os_vduq> <os_vduw> <os_vpos> #EndTableDATA�Input/Output Functions These functions are all concerned with input and/or output. #Table 1 16 <os_adval> <os_get> <os_inkey> #EndTableDATA�Miscellaneous Functions #Parent roslib #Table columns 3 <os_byte> <os_cli> <os_rnd> <os_sound> <os_swi> <os_swix> <os_word> #EndTableDATA%roslib.h #Parent ro_easyc_ The \<roslib.h\> header defines quite a few functions which access the built in features in RISC OS. Obviously, programs using these functions will not be portable between different computers unless the same functions are available on both. It also defines four types. Functions: #Indent 12 #Table 2 23 <Graphics=>rl_graph_> <File handling=>rl_file_> <Input/Output=>rl_io_> <Miscellaneous=>rl_misc_> #EndTable #Indent 0 Types: #Indent 6 #Table lines 1 <os_error> <os_filestr> <os_gbpbstr> <os_regset> #EndTableDIR$���@F���[�Z&�ansic_�EF�����Z&bdlib_�JF����}Z&easyc_LF���{�Z&�tlib_DATA�Desktop C RISC OS Functions #Parent riscos_ #Indent 6 #Sprite 0,0 !ansic Desktop C functions are grouped into 50 header files. All the routines are contained in the {*}RISCOS_Lib{*} library. #Indent 7 #Table columns 4 <akbd.h=>akbd> <alarm.h=>alarm> <baricon.h=>baricon_h> <bbc.h=>bbc> <colourmenu.h=>colourmenu> <colourtran.h=>colourtran_h> <coords.h=>coords> <dbox.h=>dbox_h> <dboxfile.h=>dboxfile> <dboxquery.h=>dboxquery> <dboxtcol.h=>dboxtcol> <drawfdiag.h=>drawfdiag> <drawferror.h=>drawferror> <drawfobj.h=>drawfobj> <drawftypes.h=>drawftypes> <drawmod.h=>drawmod> <event.h=>event_h> <fileicon.h=>fileicon> <flex.h=>flex> <font.h=>font_h> <fontlist.h=>fontlist> <fontselect.h=>fontselect> <heap.h=>heap> <help.h=>help> <kernel.h=>kernel> <magnify.h=>magnify> <menu.h=>menu_h> <msgs.h=>msgs_h> <os.h=>os> <pointer.h=>pointer> <print.h=>print> <res.h=>res> <resspr.h=>resspr> <saveas.h=>saveas> <sprite.h=>sprite_h> <template.h=>template_h> <trace.h=>trace> <txt.h=>txt_h> <txtedit.h=>txtedit> <txtopt.h=>txtopt> <txtscrap.h=>txtscrap> <txtwin.h=>txtwin> <typdat.h=>typdat> <visdelay.h=>visdelay> <werr.h=>werr> <wimp.h=>wimp_h> <wimpt.h=>wimpt> <win.h=>win> <xferrecv.h=>xferrecv> <xfersend.h=>xfersend> #EndTableDATAbDeskLib RISC OS Functions #Parent riscos_ #Indent 6 #Sprite 0,0 !desklib Version: 2.16 DeskLib functions are grouped into 49 header files. All the routines are contained in the DeskLib library. #indent 3 #Table columns 4 <Clear.h=>Clear> <ColourMenu.h=>ColourMenu_DL> <ColourTran.h=>ColourTran> <Coord.h=>Coord> <Core.h=>Core> <Dialog.h=>Dialog_h> <Dispatch.h=>Dispatch_h> <Drag.h=>Drag> <DragASpr.h=>DragASpr> <Error.h=>Error_h> <Event.h=>Event> <EventMsg.h=>EventMsg> <File.h=>File_h> <Filter.h=>Filter> <Font.h=>Font> <GFX.h=>GFX> <Handler.h=>Handler> <Hourglass.h =>Hourglass> <Icon.h=>Icon> <Kbd.h=>Kbd> <KernelSWIs.h=>KernelSWIs> <KeyCodes.h=>KeyCodes> <LinkList.h=>LinkList> <Mem.h=>Mem> <Menu.h=>DL_Menu> <Module.h=>Module> <Msgs.h=>Msgs> <Pane.h=>Pane> <PDriver.h=>PDriver> <Pointer.h=>DL_Pointer> <PopUp.h=>PopUp> <Resource.h=>Resource> <Save.h=>Save> <Screen.h=>Screen> <Serial.h=>Serial> <Slider.h=>Slider> <Sound.h=>Sound> <Sprite.h=>Sprite_DL> <Str.h=>Str_DL> <StringCR.h=>StringCR> <SWI.h=>SWI> <Template.h=>Template> <TextFile.h=>TextFile> <Time.h=>DL_Time> <Validation.h=>Validation> <WAssert.h=>WAssert> <Wimp.h=>Wimp> <WimpSWIs.h=>WimpSWIs> <Window.h=>Window> #EndTable #indent 0 To include one of the DeskLib header files use:{wrap off} {fCode;align centre}<#include=>include> "DeskLib:XXX.h"{f;align;wrap} where XXX is the name of the header file.DATAEasy C RISC OS Functions #indent 6 #Sprite 0,0 !easyc RISC OS functions are grouped into three header files. kernel.h accesses routines in the <Shared�C Library=>SWI:SharedCLibrary_> module. #Indent 7 #Table 2 17 <kernel.h=>kernel> <roslib.h=>roslib> <swis.h=>swis> #EndTableDATA�TimsLib RISC OS Functions #Parent riscos_ #Indent 6 #Sprite 0,0 !timslib TimsLib functions are grouped into 28 header files. TimsLib is intended to be used in conjunction with <DeskLib=>ro_dlib_>. #indent 0 Much of TimsLib is intended for use with DeskLib version 2.04 and is now redundant with DeskLib version 2.16. #Indent 4 #Table columns 4 <AskUser.h=>AskUser_h> <Check.h=>Check> {/}<Coord.h=>Coord_TL>{/} <Core.h=>Core_TL> {/}<Dialog.h=>Dialog_TL>{/} <EnableDbug.h=>EnableDbug> <Env.h=>Env> <Err.h=>Err> {/}<File.h=>File_TL>{/} <FileIcon.h=>FileIcon_h> {/}<Font.h=>Font_TL>{/} {/}<GFX.h=>GFX_TL>{/} {/}<Icon.h=>Icon_TL>{/} <Interface.h=>Interface> <Kbd.h=>Kbd_TL> <Lib.h=>Lib> {/}<LinkList.h=>LinkList_TL>{/} <MallocDbug.h=>MallocDbug> <Menu.h=>Menu_TL> {/}<Msgs.h=>Msgs_TL>{/} <SaveAs.h=>SaveAs_TL> <SWIs.h=>SWIs_TL> <Time.h=>Time_TL> <Trace.h=>Trace_TL> <WimpExt.h=>WimpExt> {/}<Window.h=>Window_TL>{/} <XferRecv.h=>XferRecv_TL> <XferSend.h=>XferSend_TL> #EndTable #indent 0 To include one of the TimsLib header files use: {fCode;align centre}<#include=>include> "TimsLib:XXX.h"{f;align} where XXX is the name of the header file. Some of the headers are extensions to DeskLib, ie they themselves include the DeskLib header then add more functions. These are shown in /italics/. Many of the functions have different effects depending on the macro {*}_DEBUG{*}. More information can be found in the "!Help" and "ReadMe" files within TimsLib.DIR$d d _F���YOd%�Save�`F����b�$$saveas�cF���<ʄ/�SaveAs_�kF����ʄ/@save_F���s˄/,scale_�F������"#scanf��F����˄/DSCHAR_��F����ed%Screen��F����˄/�screen_T�F���k̄/Hscroll_��F���=�$;SCrouch̋F����̄/`SEEK_ȎF���("e%6Serial�F���̈́/lSerial_��F�����"�setbuf��F�����"�setjmpX�F����΄/(setjmp_��F����*�"�setlocale �F������"�setvbufԭF����΄/,sform_T�F���τ/�sf_x�F���yτ/DSHRT_�F���kh�"ZSIGABRTx�F����k�"YSIGFPEԼF����n�"YSIGILL0�F����r�"YSIGINT��F�����"�signal8�F����τ/,signal_T�F���3v�"ZSIGSEGV��F����{�"ZSIGSTAK�F���$y�"ZSIGTERMh�F���NЄ/�sig_,�F������"�sin��F���aͽ"�sinh��F���2��" sizeof��F����Є/(size_��F�����%Slider��F���ф/�Slider_��F����ф/sl_��F���y�e%�Soundt�F���E҄/Lsound_�F����mV&HSplitPathnameL�F���|��"�sprintf��F���mI�%�sprite`�F���ô�%�spritemem_flags4�F����҄/Lspritepool_�F���Rӄ/�sprite_d� F���.݄/,SPR_H� F���w<�"�sqrt� F����S�"�srand|� F�����"�sscanf � F���%�"�stdarg� F�����"�stddef� F���\��"�stderr�� F�����"�stdinh� F����/�"�stdio� F������"hstdlib\� F���2��"�stdout(� F������"jSTF�� F���Su�"MSTR�� F���q��"�strcat�� F����.�%+strcatcr� F���(��"!strchr0� F���~-�"Qstrcmp�� F���>�%strcmpcr�� F���@<�"�strcoll� F���N��"�strcpy�� F����9�%strcpycr�� F���5��"�strcspn�� F����T�%strdup�� F����ބ/,streamio_�� F������"�strerror�� F�����"lstrftime$� F���] �%�stricmp�� F���E�%]stricmpcr� F����D�"�string�� F����{�%�StringCR<� F���+��"�strlen,� F���4��%�strlencr� F���O�"strncat0� F����Q�"�strncmp�� F���/��"=strncpy� F���VD�%<strncpycrD� F���=�%�strnicmp�� F����&�%lstrnicmpcrP� F���%��"�strpbrkP� F���!��",strrchr|� F����4V&\StrSave�� F����?V&�StrSaveDbug�� F������"strspn�� F������"Jstrstr�� F���j�"�strtod�� F���t1�"dstrtok� F���l�"(strtol8� F���T;�"0strtoulh� F�����"}struct� F����^�"�struct�tm� F��� f�"strxfrm� F���7�/Pstr_$ F�����%zSWI� F������$Jswis� F���9�/(SWIs_� F������"switch� F���z�/,SWI_<8 F�����"�systemDATA�DeskLib:Save.h Version: 1.02 (18 Jun 1994) #line This header declares functions and types for automatic handling of data export by icon drag ie "Save as" windows. Functions: #indent 6 #table columns 2 <Save_InitSaveWindowHandler> <Save_ReleaseSaveHandlers> <Save_SetFiletype> #endtable #indent Types: #indent 5 #Table columns 3 <save_filesaver> <save_ramsaver> <save_result> <save_resulthandler> <save_saveblock> #EndTable DATA$saveas Syntax: <BOOL> saveas (int type, char *name, int size, <xfersend_saveproc> save, <xfersend_sendproc> send, <xfersend_printproc> print, void *hnd); Header: <saveas.h=>saveas_h> Returns: <TRUE> if successful. See also the TimsLib function, <SaveAs=>SaveAs_>. This function opens a dialogue box (must be called "xfer_send" and similar to those in Draw, Edit and Paint). /type/ contains the file type, /name/ the file name, /size/ the estimated file size, /save/ is the function used for saving to a file, /send/ is the function used for RAM transfer, /print/ is the function used for printing, and /hnd/ is passed straight to those functions. This function also deals with all the messages needed to perform the data transfer. /send/ or /print/ can be 0 to use the /save/ routine instead.DIR$���dF����1X&�!Root�gF�����"h�hF�����"read_leaf�iF���t=X&ReadLeafname�jF����X&�TLDATA�SaveAs Syntax: <BOOL> SaveAs (int type, char *name, int size, <xfersend_saveproc> save, void *hnd); Header: <TimsLib:SaveAs.h=>SaveAs_TL> Returns: <TRUE> if file is successfully saved. This function opens a "Save as:" dialogue box and handles all the dragging and messages needed to save the file. /type/ contains the file type, /name/ the file name, /size/ the estimated file size, /save/ is the function used for saving and /hnd/ is passed straight to that function. The template "xfer_send" must be loaded with <Template_LoadFile> and should have the following icons: 0 'OK' icon. Button type 'Click'. 2 Filename icon. Indirected text, size 256. Button type 'Writeable'. 3 File icon. Indirected text, size 16. Button type 'Click/Drag'.DATAsaveas.h This header declares functions for manipulating save dialogue boxes (or as Acorn put it, "export of data by dragging icon from dialogue box". Functions: <saveas > <saveas_read_leafname_during_send=>saveas_read_leaf>DATAsaveas_read_leafname_during_send Syntax: void saveas_read_leafname_during_send (char *name, int length); Header: <saveas.h=>saveas_h> This function reads the leaf name of the file name in the "xfer_send" dialogue box. 'length' contains the length of the name buffer.DATASaveAs_ReadLeafname Syntax: void SaveAs_ReadLeafname (char *name, int length); Header: <TimsLib:SaveAs.h=>SaveAs_TL> This function reads the leafname of the file saved using <SaveAs=>SaveAs_>. The name is stored in name, an array of length /length/.DATA�TimsLib:SaveAs.h This header declares functions for easy handling of standard "save as" dialogue boxes. Functions: #table columns 2 <SaveAs=>SaveAs_> <SaveAs_ReadLeafname> #endtableDIR$@@�lF���Ec%{filesaverDnF���B�0<InitSaveWindowHandler4�F����20]ramsaver�uF����c%�ReleaseSaveHandlerstwF���TCc%result|xF���CQc%bresulthandler�yF����c%�saveblock�}F����3d%qSetFiletypeDATA{save_filesaver This type is defined in <DeskLib:Save.h=>Save>. It defines a function type used for saving data. The function is of the form: {wrap off} {fCode;align centre}<BOOL> myfunc (char *f, void *ref);{f;align;wrap} The function should save data to file /f/, /ref/ is passed straight from <Save_InitSaveWindowHandler>. It should return <TRUE> if an error occurred.DATA<Save_InitSaveWindowHandler Syntax: <save_saveblock> *Save_InitSaveWindowHandler (<window_handle> w, <BOOL> is_menu, BOOL is_win, BOOL release, <icon_handle> drag, icon_handle ok, icon_handle cancel, icon_handle name, <save_filesaver> filesave, <save_ramsaver> ramsave, <save_resulthandler> res_handle, <size_t> estsize, int filetype, void *ref); Header: <DeskLib:Save.h=>Save> Returns: Pointer to save block. This function handles everything to do with saving. Once your save window is created all you need to do is call this with: {tab} � The window handle of the save window � If the save window is on a menu or just a window � If the save handlers should be released afterwards � The icon handles of the draggable icon, OK, Cancel and filename � The handlers for saving to file, RAM transfer, and afterwards � The estimated file size (pretty useless really) � A user value ({/}ref{/}) which is passed directly to the handlers. Points to note: � The filename must be indirected text and should contain a default name. � /ramsave/ and {/}res_handle{/} are optional (<NULL> if not required). � /release/ can be <FALSE> if you want to only call this function once when the window is created. In this case you may need to access the returned structure yourself. � The save window can have a close icon, but this is not good style.FREE]����_ramsaver This type is defined in <DeskLib:Save.h=>Save>. It defines a function type used for saving data. The function is of the form: {fCode;align centre}int myfunc (<task_handle> source, void *ref, task_handle destin, void *buf, unsigned int size, int count);{f;align} The function should use <Wimp_TransferBlock> to transfer data to /buf/ in the task /destin/. /size/ gives the size of /buf/ ie the amount to transfer and /count/ is the amount transferred to far. /source/ is your task handle. The function should return the number of bytes transferred, or negative if an error occurred.DATA�Save_ReleaseSaveHandlers Syntax: void Save_ReleaseSaveHandlers (<save_saveblock> *saveblock); Header: <DeskLib:Save.h=>Save> This function releases the save handlers. You will only need to call this if for some reason the Save module cannot detect the menu closing or the window closing. For instance, under RISC OS 2 menu closing cannot be detected and so you will have to call this sometime.DATAsave_result This type is defined in <DeskLib:Save.h=>Save>. It is an enumerated type containing the possible results of a save attempt. \{ save_SAVEOK = 0, save_RECEIVERFAILED, save_FILESAVERFAILED, save_RAMSAVERFAILED }DATAbsave_resulthandler This type is defined in <DeskLib:Save.h=>Save>. It defines a function type called after saving. The function is of the form: {wrap off} {fCode;align centre}void myfunc (<save_result> result, void *ref);{f;align;wrap} The function should act on the result code given, /ref/ is passed straight from <Save_InitSaveWindowHandler>.DATA�save_saveblock This type is defined in <DeskLib:Save.h=>Save>. It is a rather large structure which contains all the information needed to handle a save operation. You will not generally need to access this structure internally, but for the interested it is: \{ <window_handle> window; union \{ unsigned int value; struct \{ unsigned int is_menu : 1; unsigned int is_save_window : 1; unsigned int we_are_dragging : 1; unsigned int quit_after_save : 1; unsigned int release_after : 1; unsigned int padding : 27; } data; } flags; {tab} <icon_handle> dragsprite; <icon_handle> okbutton; <icon_handle> cancelbutton; <icon_handle> filenameicon; <save_filesaver> filesaver; <save_ramsaver> ramsaver; <save_resulthandler> resulthandler; <size_t> estimatedsize; int filetype void *ref; int ram_progress; unsigned int last_message_ref; }DATAqSave_SetFiletype Syntax: void Save_SetFiletype (<save_saveblock> *block, int filetype); Header: <DeskLib:Save.h=>Save> This function sets the sprite in the save window to be "file_..." ie the correct file icon for the filetype, and also alters the saveblock so that the filetype is used. NB The drag icon is set to non-indirected sprite-only by this function.DIR$,,,F���\�H&�blockDATA�scale_block This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding data for use by <Wimp_ReadPixTrans>. \{ wimp_point mul; wimp_point div; }DATA#scanf Syntax: int scanf (char *format, ...); Header: <stdio.h=>stdio> Returns: Number of successful inputs, or <EOF> if there was an input error. This function reads input from <stdin> under control of the <format string=>sform_>. It is identical to <fscanf>(stdin, format, ...); DIR$DD@�F�����"�MAX�F�����"�MINDATA�SCHAR_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in a signed char. In Easy C it is defined as 0x7f (127).DATA�SCHAR_MIN This macro is defined in <limits.h> and represents the minimum value that can be stored in a signed char. In Easy C it is defined as 0x80 (-128).DATADeskLib:Screen.h Version: 1.00 (23 Mar 1992) #line This header declares one function, which reads several mode variables. Function: <Screen_CacheModeInfo> Variables: #indent 2 #Table lines 2 <screen_mode> <screen_size> <screen_eig> <screen_delta> <screen_bpp> #EndTableDIR$��p�F�����d%�bpp�F����md%�CacheModeInfo��F���̀d%�deltax�F����zd%�eig<�F���qqd%~mode��F���%td%�sizeDATA�screen_bpp This variable is defined in <DeskLib:Screen.h=>Screen>. It is used to hold the current number of bits per pixel. {align centre}Colours = 1 \<\< BPPDATA�Screen_CacheModeInfo Syntax: <BOOL> Screen_CacheModeInfo (void); Header: <DeskLib:Screen.h=>Screen> Returns: <TRUE> (always!) This function sets up the variables <screen_mode>, <screen_eig>, <screen_bpp>, <screen_size> and <screen_delta>. It should be called before you try to use any of these variables and every time the mode changes. The function <Handler_ModeChange> is provided for this purpose.DATA�screen_delta This variable is defined in <DeskLib:Screen.h=>Screen>. It is used to hold the current screen delta values (as a <wimp_point>). {align centre}OS units = Pixels * Delta valueDATA�screen_eig This variable is defined in <DeskLib:Screen.h=>Screen>. It is used to hold the current screen eigen values (as a <wimp_point>). {align centre}OS Units = Pixels \<\< Eigen valueDATA~screen_mode This variable is defined in <DeskLib:Screen.h=>Screen>. It is used to hold the current screen mode number.DATA�screen_size This variable is defined in <DeskLib:Screen.h=>Screen>. It is used to hold the current screen size (as a <wimp_point>) in OS units.DIR$HH��F���yoH&�rqp�F���Y�X&typeDATA�scroll_rq This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure containing the data returned by a Scroll_Request event. \{ <window_openblock> openblock; <wimp_point> direction; }DATAscroll_type This type is defined in <TimsLib:Window.h=>Window_TL>. It is an enumerated type containing the three ways a window can scroll. \{ scroll_X = 3, scroll_Y = 4, scroll_2D = 12 } The last one is a scroll in both directions at once (RISC OS 3 only).DATA;Stephen Crouch Internet email: sc93@ecs.soton.ac.ukDIR$``,�F����8�"�CUR�F���y;�"�END�F���5�"�SETDATA�SEEK_CUR #Parent stdio The macro SEEK_CUR is defined in <stdio.h=>stdio> and is a value used as an argument for the function <fseek>. It causes the file pointer to be repositioned relative to the current position.DATA�SEEK_END #Parent stdio The macro SEEK_END is defined in <stdio.h=>stdio> and is a value used as an argument for the function <fseek>. It causes the file pointer to be repositioned relative to the end of the file.DATA�SEEK_SET #Parent stdio The macro SEEK_SET is defined in <stdio.h=>stdio> and is a value used as an argument for the function <fseek>. It causes the file pointer to be repositioned relative to the start of the file.DATA6DeskLib:Serial.h Version: 1.10 (12 Dec 1993) #line This header declares functions for serial I/O. Functions: #Table 7 20 <Serial_Activate> <Serial_Deactivate> <Serial_GetStatus> <Serial_SetStatus> <Serial_GetFormat> <Serial_SetFormat> <Serial_GetTxRate> <Serial_GetRxRate> <Serial_SetTxRate> <Serial_SetRxRate> <Serial_GetByte> <Serial_PutByte> <Serial_SendBreak> <Serial_NonZeroPollWordOnReceive> #EndTable Macros: #indent 12 #Table 1 20 <Status bits=>Serial_stat_> <Data format bits=>Serial_data_> #EndTable #indent Types: {align centre}<serial_rate>DIR$lll�F�����d%�Activated�F���.e%data_p�F����d%�Deactivatel�F�����d%�GetByteL�F����d%�GetFormat�F�����d%�GetRxRate�F���*�d%�GetStatusȚF���-�d%�GetTxRate��F�����d%�PutBytel�F����)e%�rateP�F�����d%�SendBreak$�F���x�d%�SetFormat�F�����d%�SetRxRate�F���%�d%SetStatus�F�����d%�SetTxRate�F����e%�stat_��F�����d%NonZeroPollWordOnReceiveDATA�Serial_Activate Syntax: <os_error> *Serial_Activate (void); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function activates the serial drivers. It is equivalent to SWI <OS_Byte=>SWI:OS_Byte> 2,2.DATAData format bits The following macros are defined in <DeskLib:Serial.h=>Serial> for use when reading/writing the data format. The macros for the required bits should be added together. serial_8BITWORD 0x00000000 serial_7BITWORD 0x00000001 serial_6BITWORD 0x00000002 serial_5BITWORD 0x00000003 serial_1STOPBIT 0x00000000 serial_2STOPBITS 0x00000004 serial_NOPARITY 0x00000000 serial_PARITY 0x00000008 serial_ODDPARITY 0x00000000 serial_EVENPARITY 0x00000010 serial_MARKPARITY 0x00000020 serial_SPACEPARITY 0x00000030DATA�Serial_Deactivate Syntax: <os_error> *Serial_Deactivate (void); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function deactivates the serial drivers. It is equivalent to SWI <OS_Byte=>SWI:OS_Byte> 2,0.DATA�Serial_GetByte Syntax: int Serial_GetByte (void); Header: <DeskLib:Serial.h=>Serial> Returns: Byte read, or -1. This function reads a single byte from the serial input buffer. If none are available it returns -1.DATA�Serial_GetFormat Syntax: int Serial_GetFormat (void); Header: <DeskLib:Serial.h=>Serial> Returns: Current data format. This function gets the current <data format=>Serial_data_> used for serial I/O.DATA�Serial_GetRxRate Syntax: <serial_rate> Serial_GetRxRate (void); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function returns the current speed of serial input.DATA�Serial_GetStatus Syntax: int Serial_GetStatus (void); Header: <DeskLib:Serial.h=>Serial> Returns: Current status. This function gets the current status of the serial port. It is equivalent to OS_SerialOp 0.DATA�Serial_GetTxRate Syntax: <serial_rate> Serial_GetTxRate (void); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function returns the current speed of serial output.DATA�Serial_PutByte Syntax: <BOOL> Serial_PutByte (int c); Header: <DeskLib:Serial.h=>Serial> Returns: <TRUE> if unable to send byte. This function inserts a single byte into the serial output buffer.DATA�serial_rate This type is defined in <DeskLib:Serial.h=>Serial>. It is an enumerated type containing the values used when setting/reading baud rates: \{ serial_9600BAUD = 0, serial_75BAUD, serial_150BAUD, serial_300BAUD, serial_1200BAUD, serial_2400BAUD, serial_4800BAUD, serial_19200BAUD = 8, serial_50BAUD, serial_110BAUD, serial_134_5BAUD, serial_600BAUD, serial_1800BAUD, serial_3600BAUD, serial_7200BAUD }DATA�Serial_SendBreak Syntax: <os_error> *Serial_SendBreak (int len); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function transmits a break of the specified length.DATA�Serial_SetFormat Syntax: os_error *Serial_SetFormat (int form); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function sets the current <data format=>Serial_data_> used for serial I/O.DATA�Serial_SetRxRate Syntax: <os_error> *Serial_SetRxRate (<serial_rate> rate); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function sets the current speed of serial input.DATASerial_SetStatus Syntax: <os_error> *Serial_SetStatus (int eor, int and); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function sets the current status of the serial port. {align centre}NEW_STATUS = (OLD_STATUS AND and) EOR eorDATA�Serial_SetTxRate Syntax: <os_error> *Serial_SetTxRate (<serial_rate> rate); Header: <DeskLib:Serial.h=>Serial> Returns: Pointer to error, or <NULL> if none. This function sets the current speed of serial output.DATA�Status bits The following macros are defined in <DeskLib:Serial.h=>Serial> for use when reading/writing the status. The macros for the required bits should be added together. serial_USEXONXOFF 0x00000001 serial_IGNOREDCDBIT 0x00000002 serial_IGNOREDSRBIT 0x00000004 serial_DTROFF 0x00000008 serial_IGNORECTSBIT 0x00000010 serial_DONTUSERTSFLOWCONTROL 0x00000020 serial_SUPPRESSINPUT 0x00000040 serial_RTSHIGH 0x00000080 serial_XOFFRECEIVED 0x00010000 serial_XOFFSENT 0x00020000 serial_DCDHIGH 0x00040000 serial_NOCARRIER 0x00040000 serial_DSRHIGH 0x00080000 serial_RIHIGH 0x00100000 serial_CTSHIGH 0x00200000 serial_XOFFSENTMANUALLY 0x00400000 serial_SPACEINRECEIVEBUFFER 0x00800000DATASerial_NonZeroPollWordOnReceive Syntax: void Serial_NonZeroPollWordOnReceive (int value, void *pollword); Header: <DeskLib:Serial.h=>Serial> This function alters the word pointed to by /pollword/ to /value/ whenever an insertion into the serial input buffer occurs.DATA�setbuf Syntax: void setbuf (<FILE> *stream, char *buf); Header: <stdio.h=>stdio> This function causes the file pointed to by /stream/ to be fully buffered in the buffer pointed to by /buf/, which is a character array of size <BUFSIZ>. If /buf/ is a null pointer then the file is unbuffered. This function is equivalent to: {align centre}<setvbuf> (FILE *stream, char *buf, <_IOFBF>, BUFSIZ);{align} or: {align centre}setvbuf (FILE *stream, NULL, <_IONBF>, 0);{align} if /buf/ is a null pointer.DATA�setjmp Syntax: int setjmp (<jmp_buf> env); Header: <setjmp.h=>setjmp_h> Returns: Zero when called directly. This function marks a position to jump to with <longjmp>.DIR$((��F�����"hDATAsetjmp.h The \<setjmp.h> header declares two functions and one type used for making non-local jumps (ie jumps out of the current statement block). Functions: #Indent 11 #Table 1 15 <setjmp> <longjmp> #EndTable #Indent 0 Types: #Indent 11 <jmp_buf>DATA�setlocale Syntax: char *setlocale (int cat, char *loc); Header: <locale.h=>locale> Returns: Old setting. This function sets a particular category 'cat' of the locale to the string pointer to by 'loc'. For instance, to set the monetary information to that suitable for the UK, one would use: #align centre setlocale(<LC_MONETARY>,"uk"); #align The old setting can be read by setting 'loc' to <NULL>.DATA�setvbuf Syntax: int setvbuf (<FILE> *stream, char *buf, int mode, <size_t> size); Header: <stdio.h=>stdio> Returns: Zero if successful. This function sets the buffering type for a particular stream. The mode gives the buffering type, one of the macros <_IOFBF>, <_IOLBF>, or <_IONBF>. If /buf/ is a null pointer then setvbuf allocates its own buffer, else /buf/ points to a character array and /size/ indicates the size of it.DIR$,,�F������"Q!RootDATAQscanf() Format String The format string is composed of a sequence of characters. All characters except '%' are expected to be matched directly in the input. '%' marks the beginning of a conversion specification. If a literal percent is required, then "%%" should be used. A conversion specification results in one argument from the argument list having its contents altered according to the input received. The structure of a conversion specification is shown below: {wrap off; align centre}%[<*=>sf_star_>][<field width=>sf_fw_>][<modifier=>sf_mod_>]\<<conversion char=>sf_conv_>\> DIR$��ܰF���*��"�conv_t�F���ݲ�"�fw_�F���b��"�mod_��F������"�star_DATA�Format String Conversion Character One of the following: d A decimal integer read from the input stream is placed in the int pointed to by the argument. i An integer (decimal, octal, or hex) read from the input stream is placed in the int pointed to by the argument. o An octal integer read from the input stream is placed in the unsigned int pointed to by the argument. u A decimal integer read from the input stream is placed in the unsigned int pointed to by the argument. x A hexadecimal integer read from the input stream is placed in the unsigned int pointed to by the argument. e,f,g A floating point number read from the input stream is placed in the float pointed to by the argument. The number may be in Scientific (standard) form. s A sequence of non-white-space characters see <isspace>) are placed in the character array pointed to by the argument. A terminating null character is added automatically. c A sequence of characters of length specified in the <field width=>sf_fw_> (1 if no field width given) is placed in the character array pointed to by the argument. No null character is added. p A pointer value in an compiler-defined format is placed in the void * pointer to by the argument (the argument is a void�**). This is not very useful! n The number of characters read so far is placed in the int pointed to by the argument. [...] A sequence of those characters specified inside the brackets. If the first character specified is a caret ('^') then sequence must contain only the characters NOT contained inside the brackets. If the character ']' is required as once of the specified characters it must be the first one ie use []...] or [^]...].DATA�Format String Field Width This is a decimal integer which gives the maximum input field width. Only this many characters will be accepted from the input.DATA�Format String Length Modifier One of the following: h For d, i, n, o, u, or x conversion specifies that the argument is a pointer to a short int. l For d, i, n, o, u, or x conversion specifies that the argument is a pointer to a long int. For e, f, or g conversion specifies that the argument is a pointer to a double. L For e, f, or g conversion specifies that the argument is a pointer to a long double.DATA�Format String '*' The optional '*' character indicates that the current conversion should take place but the result should not be placed in the variable specified by the argument.DIR$DD��F���)�"�MAXl�F������"�MINDATA�SHRT_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in a short int. In Easy C it is defined as 0x7fffffff (2147483647).DATA�SHRT_MIN This macro is defined in <limits.h> and represents the minimum value which can be stored in a short int. In Easy C it is defined as 0x80000000 (-2147483648).DATAZSIGABRT This macro is defined in <signal.h=>signal>. In Easy C it is defined as 1.DATAYSIGFPE This macro is defined in <signal.h=>signal>. In Easy C it is defined as 2.DATAYSIGILL This macro is defined in <signal.h=>signal>. In Easy C it is defined as 3.DATAYSIGINT This macro is defined in <signal.h=>signal>. In Easy C it is defined as 4.DATA�signal.h The \<signal.h> header declares functions, macros and one type for handling signals. Functions: #Indent 4 #Table 3 27 <__default_signal_handler> <__error_signal_marker> <__ignore_signal_handler> <signal=>signal_> <raise> #EndTable #Indent 0 Type: #indent 4 <sig_atomic_t> #indent Macros: #Table 2 9 <SIG_DFL> <SIG_ERR> <SIG_IGN> <SIGABRT> <SIGFPE> <SIGILL> <SIGINT> <SIGSEGV> <SIGTERM> <SIGSTAK> #EndTableDIR$,,d�F���&7�"�!RootDATA�signal Syntax: void (*signal(int sig, void (*func)(int)))(int); Header: <signal.h=>signal> Returns: /func/ of most recent call. This function sets that any future occurrences of the signal /sig/ will use the signal handler /func/.DATAZSIGSEGV This macro is defined in <signal.h=>signal>. In Easy C it is defined as 5.DATAZSIGSTAK This macro is defined in <signal.h=>signal>. In Easy C it is defined as 7.DATAZSIGTERM This macro is defined in <signal.h=>signal>. In Easy C it is defined as 6.DIR$���F����@�"eatomic_tT�F����Q�"�DFL��F���]�"�ERR��F���ee�"�IGNDATAesig_atomic_t This type is defined in <signal.h=>signal>. In Easy C it is defined as an /int/.DATA�SIG_DFL This macro is defined in <signal.h=>signal>. It is defined to be a pointer to the default signal handler ie {/}&<__default_signal_handler>{/}.DATA�SIG_ERR This macro is defined in <signal.h=>signal>. It is defined to be a pointer to the error signal handler ie {/}&<__error_signal_marker>{/}.DATA�SIG_IGN This macro is defined in <signal.h=>signal>. It is defined to be a pointer to the ignore signal handler ie {/}&<__ignore_signal_handler>{/}.DATA�sin Syntax: double sin (double x); Header: <math.h=>math> Returns: The sine of x in radians. This function calculates the principal value of the sine of x.DATA�sinh Syntax: double sinh (double x); Header: <math.h=>math> Returns: The hyperbolic sine of x in radians. This function calculates the hyperbolic sine of x. An error occurs if x is too big.DATA sizeof This is (the only?) built in function of C. It tells you the size in bytes of something, this can be a specific <variable=>c_var_> or a <type=>c_types_>. eg: sizeof(int) /* Equals 4 */ sizeof(a.b) /* Depends */ sizeof(char) /* Equals 1 */DIR$((��F������"�tDATA�size_t The type {/}size_t{/} is defined in <stdio.h=>stdio>, <stdlib.h=>stdlib>, <stddef.h=>stddef>, and <string.h=>string>, and is used for several functions to indicate the size of things. It is defined in Easy C as an /unsigned int/.DATADeskLib:Slider.h Version: 1.00 (12 Mar 1994) #line This header declares functions for easy handling of slider icons. These are better than those found in <DeskLib:Icon.h=>Icon>. Functions: #Indent 10 #Table 2 20 <Slider_Redraw> <Slider_ReadValue> <Slider_SetValue> <Slider_Drag> #EndTable #Indent 0 Type: {align centre}<slider_info> The slider functions need <screen_delta> to be kept up to date. <Handler_ModeChange> should be called on a mode change, with <Screen_CacheModeInfo> called at the start of your program.DIR$����F���0�e%�DragL�F����e%{info��F���-qe%+ReadValue��F���;he%lRedraw`�F���.e%+SetValueDATA�Slider_Drag Syntax: <os_error> *Slider_Drag (<slider_info> *slider, <BOOL> *closed, int *value, void *ref); Header: <DeskLib:Slider.h=>Slider> Returns: Pointer to error, or <NULL> if none. This function starts dragging the specified slider and should be called when the user clicks on the slider. It returns when dragging stops, the update function tell it to, or the window is closed. It multitasks by calling <Event_Process>. The update function will be called (with {/}ref{/}) if the value changes. If /closed/ is not NULL then {/}*closed{/} is set to TRUE if the window is closed while dragging. If /value/ is not NULL then {/}*value{/} is set to the slider value in user units on exit.DATA{slider_info This structure is defined in <DeskLib:Slider.h=>Slider> and contains full information about a slider which DeskLib is to handle. \{ <window_handle> window; <icon_handle> icon; int value; /* Internal slider position */ struct \{ int min; int max; } limits; /* Values returned by slider */ struct \{ int foreground; int background; } colour; /* Colours of slider */ struct \{ int x; int y; } border; /* Border size */ struct \{ <sprite_areainfo> *spritearea; /* <NULL> */ <sprite_header> *sprite; } knob; /* Not currently used */ struct \{ int vertical :1; /* Orientation */ int rgb :1; /* Colours are RGB */ int dragging :1; /* Currently dragging */ int clickstop :1; /* Drag whole units */ int reserved :28; /* Zero */ } flags; int ( *update )( void *, void * ); int reference; /* Whatever you like */ } If /clickstop/ is set that means that the slider is only redrawn when its value in user units (ie between /limits/) changes. Otherwise, it can be dragged a pixel at a time. /update/ is a function called whenever the slider value in user units changes. Its first argument is a pointer to the slider_info structure. The second argument is passed through from <Slider_SetValue> or <Slider_Drag>. It should return non-zero to stop the drag.DATA+Slider_ReadValue Syntax: int Slider_ReadValue (<slider_info> *slider); Header: <DeskLib:Slider.h=>Slider> Returns: Slider value in user units. This function reads the position of the specified slider, converted into user units between {/}slider->limits.min{/} and {/}slider->limits.max{/}.DATAlSlider_Redraw Syntax: <os_error> *Slider_Redraw (<slider_info> *slider, <wimp_rect> *clip); Header: <DeskLib:Slider.h=>Slider> Returns: Pointer to error, or <NULL> if none. This function redraws a slider icon. /slider/ contains the slider info and /clip/ contains the area of screen being redrawn (in OS coords). Call this function from your redraw loop.DATA+Slider_SetValue Syntax: <os_error> *Slider_SetValue (<slider_info> *slider, int value, int *valueset, void *ref); Header: <DeskLib:Slider.h=>Slider> Returns: Pointer to error, or <NULL> if none. This function sets /slider/ to /value/ (in user units). If the slider is currently being dragged, then the function does nothing. The update function will be called (with /ref/) if the value has changed. If /value/ is outside the limits then it will be clamped to them. If /valueset/ is not <NULL> then it the actual value set will be returned in it.DIR$��F��� "�"Varith_��F���H��"�data_��F���ho�"oenv_T�F�����"�mbchar_4�F������"Xmbstr_��F���Cb�"Qmem_��F���D�"�rand_��F���t�"tstrconv_DATAVArithmetic Functions #Indent 8 #Table 2 10 <abs> <div> <labs> <ldiv> #EndTableDATA�Data Processing Functions These functions work on arrays of objects whose size is given. They both require an external function (defined by you) which handles comparing the objects. #Indent 7 #Table 1 <bsearch> <qsort> #EndTableDATAoEnvironment Management Functions #Indent 4 #Table 1 <abort> <atexit> <exit> <getenv> <system> #EndTableDATA�Multibyte Character Functions #indent 13 #Table 1 10 <mblen> <mbtowc> <wctomb> #EndTable #indent 0 The behaviour of the multibyte character functions is affected by the <LC_CTYPE> category of the current locale. For a state-dependent encoding, each function is placed into its initial state by a call for which its character pointer argument, /s/, is a null pointer. Subsequent calls with /s/ as other than a null pointer cause the internal state of the function to be altered as necessary. A call with /s/ as a null pointer causes these functions to return a non-zero value if encoding have state dependency, and a zero otherwise. After the <LC_CTYPE> category is changed, the shift state of these functions is indeterminate.DATAXMultibyte String Functions #indent 6 #Table 1 12 <mbstowcs> <wcstombs> #EndTableDATAQMemory Management Functions The following functions are used for allocating storage space for data. The functions can be cast to return any type of pointer. No checking is done when storing data in the space so make sure you only store data in allocated space! #Indent 11 #Table 2 15 <calloc> <free> <malloc> <realloc> #EndTableDATA�Random Number Functions These functions are concerned with generating psuedo-random sequences of values. #Indent 6 #Table 1 15 <rand> <srand> #EndTableDATAtString Conversion Functions #Indent 6 #Table 3 12 <atof> <atoi> <atol> <strtod> <strtol> <strtoul> #EndTableDATA�DeskLib:Sound.h Version: 0.01 (28 Mar 1993) #line This header declares just one function: {align centre}<Sound_SysBeep>DIR$LL��F�����"�pitch_|�F���\��%�SysBeepDATA�Pitch Values Octave 0 1 2 3 4 5 6 7 8 Note A 0x0C00 0x1C00 0x2C00 0x3C00 0x4C00 0x5C00 0x6C00 0x7C00 0x29 0x59 0x89 0xB9 0xE9 A# 0x0D55 0x1D55 0x2D55 0x3D55 0x4D55 0x5D55 0x6D55 0x7D55 0x2D 0x5D 0x8D 0xBD 0xED B 0x0EAA 0x1EAA 0x2EAA 0x3EAA 0x4EAA 0x5EAA 0x6EAA 0x7EAA 0x01 0x31 0x61 0x91 0xC1 0xF1 C 0x1000 0x2000 0x3000 0x4000 0x5000 0x6000 0x7000 0x05 0x35 0x65 0x95 0xC5 0xF5 C# 0x0155 0x1155 0x2155 0x3155 0x4155 0x5155 0x6155 0x7155 0x09 0x39 0x69 0x99 0xC9 0xF9 D 0x02AA 0x12AA 0x22AA 0x32AA 0x42AA 0x52AA 0x62AA 0x72AA 0x0D 0x3D 0x6D 0x9D 0xCD 0xFD D# 0x0400 0x1400 0x2400 0x3400 0x4400 0x5400 0x6400 0x7400 0x11 0x41 0x71 0xA1 0xD1 E 0x0555 0x1555 0x2555 0x3555 0x4555 0x5555 0x6555 0x7555 0x15 0x45 0x75 0xA5 0xD5 F 0x06AA 0x16AA 0x26AA 0x36AA 0x46AA 0x56AA 0x66AA 0x76AA 0x19 0x49 0x79 0xA9 0xD9 F# 0x0800 0x1800 0x2800 0x3800 0x4800 0x5800 0x6800 0x7800 0x1D 0x4D 0x7D 0xAD 0xDD G 0x0955 0x1955 0x2955 0x3955 0x4955 0x5955 0x6955 0x7955 0x21 0x51 0x81 0xB1 0xE1 G# 0x0AAA 0x1AAA 0x2AAA 0x3AAA 0x4AAA 0x5AAA 0x6AAA 0x7AAA 0x25 0x55 0x85 0xB5 0xE5 Middle C is the C in octave 4 (0x4000 or 0x35).DATA�Sound_SysBeep Syntax: void Sound_SysBeep (void); Header: <DeskLib:Sound.h=>Sound> This function sounds the system beep (VDU 7).DATAHSplitPathname Syntax: void SplitPathname (char *path, char *dir, char *leaf); Header: <TimsLib:Lib.h=>Lib> This function splits the pathname in /path/ into directory name and leaf name and stores them in /dir/ and /leaf/ respectively. Either /dir/ or /leaf/ may be <NULL>, in which case that part is discarded.DATA�sprintf Syntax: int sprintf (char *out, char *format, ...); Header: <stdio.h=>stdio> Returns: The number of characters written. This function writes output into the string pointed to by /out/ under control of the <format string=>pform_>. In operation it is similar to <fprintf>, but output is directed to a string instead of to a stream. The terminating null byte is added automatically.DATA�sprite This type is defined in <DeskLib:Sprite.h=>Sprite_DL>. It is defined as a pointer to type {/}struct <sprite_info>{/}.DATA�spritemem_flags This enumerated type is defined in <DeskLib:Sprite.h=>Sprite_DL>. It contains details of what type of sprite you want. {wrap off} \{ sprite_HASNOMASKPAL = 0x00, /* Sprite has no mask or palette */ sprite_HASNOPALMASK = 0x00, sprite_HASMASK = 0x01, /* Sprite has a mask only */ sprite_HASPAL = 0x02, /* Sprite has a palette only */ sprite_HASMASKPAL = 0x03, /* Has both mask and palette */ sprite_HASPALMASK = 0x03 }DIR$LL��F����1�%�SYSTEMX�F���s6�%�WIMPDATA�spritepool_SYSTEM This macro is defined in <DeskLib:Sprite.h=>Sprite_DL>. When a sprite area is required, this can be used to access the System sprite area. PLEASE DO NOT USE SYSTEM SPRITES. PLEASE. PLEASE.DATA�spritepool_WIMP This macro is defined in <DeskLib:Sprite.h=>Sprite_DL>. When a sprite area is required, this can be used to access the Wimp sprite area. It is defined as 1.DIR$���F���X��$�!RootX F����W�%�Append F���(��$5areaH F������$;area_� F�����$�area_load F����$area_merge8 F�����$9area_reinitt F����%�$Qarea_save� F���O�% areainfo� F���hD�$}boxT F���5�$�change_size F���M*�$�colour� F�����$copy� F���XF�%�Copy_h F����|�$�create F����%�%�Create_ F������$Ecreate_maskP F���8��$�create_rp F����%�%�CreateMask F���De�%wCreatePalette� F�����$hdelete� F���C,�%#Delete_ F������$�delete_row� F���1��%�DeleteColumn$" F���@3�%�DeleteRow�# F���{^�%�DL�) F���(��$�factors* F�����$=flip_x\+ F�����$=flip_y�, F����D�%=FlipX�- F������%=FlipY/ F����C�$,getH1 F���eq�%Get_L3 F����`�$get_given\5 F���/o�$�get_given_rp<7 F����O�$�get_rp�8 F����6�$�getnamep; F���� �%}GetName_�< F���=��$ZhL? F������$oheader�A F���~)�% IconMemorySize�C F�����$�id��F�����T6�info8F F���S�%�InitArea4G F������$�insert_row�H F���+*�%�InsertRow\J F����%gLoad�K F�����%7LoadFile�L F���b��$�mainarea�M F���'0�$�maskstatepN F����.�%�MAXNAMEO F�����%�MemorySizeQ F�����%�Merge�R F����\�%�outputstate�S F����9�$*outputtomaskU F���0>�$ outputtoscreenV F��� 4�$)outputtosprite<W F���J��$�palflagX F���4:�$�pgm�X F�����$�pixtranspY F������%�PlotP[ F�����%�PlotGrey0^ F������%0PlotMask`` F������%PlotMaskScaledpb F������%]PlotScaled�d F���J��$�ptrpe F���Y�$�putLg F����#�$�put_given(i F���/z�$put_maskDk F��� ��$0put_mask_pgmtl F���z��$Dput_mask_trans�m F���B��$3put_pgm�n F���C8�$,put_scaledr F������$Hput_trans`s F�����%�ReadControlLu F�����%�ReadInfo�v F���=�$�readmasklx F������%1ReadMask_�y F���� �$�readpixelD{ F���As�%�ReadPixel_<| F���)�%JReadSaveAreaSize�} F������$Freadsize�~ F������%Redirect܁ F����6�%.remove_mask� F���m�%&RemovePalette4� F���7U�$-removewastaged� F�����$�renameL� F���!9�%�Rename_� F����-�$�restorestate�� F���y�$�ro3_Ċ F�����%Save܋ F����d�%�scalefactors�� F������$@screenload�� F�����%�ScreenLoad_|� F�����$8screensave�� F���%�ScreenSave_l� F���J��$�select� F������$zselect_rpp� F������$Wsimple_ȕ F���LD�$sizeof_screencontext� F���L�$Asizeof_spritecontext(� F����4�$ustate�� F���_@�$rtransmat� F���_�$�type� F�����%6UnRedirectH� F�����%�WimpPlot0� F����&�$�writemaskȞ F���ܐ�%YWriteMask_$� F�����$�writepixel�� F����|�%dWritePixel_� F������$aarea_initialise�� F������$garea_readinfo� F���Fm�$�put_greyscaled� F���H��$put_mask_given�� F���&��$!put_mask_scaled � F���ө�$�put_char_scaled� F���n��$�insert_columnа F������$�delete_column`� F����f%_LoadFiles�� F�����%�RemoveMask�� F������%�InsertColumnDATA�sprite.h Sprite Functions These functions operate on sprites in the system or a user area, and can access the sprites either by name or by a pointer to the sprite. #indent 4 #Table columns 2 <sprite_select> <sprite_select_rp> <sprite_delete> <sprite_rename> <sprite_copy> <sprite_put> <sprite_put_given> <sprite_put_scaled> <sprite_put_greyscaled> <sprite_put_mask> <sprite_put_mask_given> <sprite_put_mask_scaled> <sprite_put_char_scaled> <sprite_create_mask> <sprite_remove_mask> <sprite_insert_row> <sprite_delete_row> <sprite_insert_column> <sprite_delete_column> <sprite_flip_x> <sprite_flip_y> <sprite_readsize> <sprite_readpixel> <sprite_writepixel> <sprite_readmask> <sprite_writemask> <sprite_restorestate> <sprite_outputtosprite> <sprite_outputtomask> <sprite_outputtoscreen> <sprite_sizeof_spritecontext> <sprite_sizeof_screencontext> <sprite_removewastage> <sprite_change_size> #EndTableDATA�Sprite_Append Syntax: <os_error> *Sprite_Append (<sprite_area> area, char *name1, char *name2, int dir); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function joins two sprites together. {/}name2{/} is deleted and joined onto {/}name1{/}. If /dir/ is 0 they are joined horizontally and must have the same height, if /dir/ is 1 they are joined vertically and must have the same width.DATA5sprite_area This type is defined in <sprite.h=>sprite_h> (Desktop C) and <DeskLib:Sprite.h=>Sprite_DL>. It is defined as the following structure in Desktop C: \{ int size; int number; int sproff; int freeoff; } and in DeskLib it is defined as a pointer to type <sprite_areainfo>.DATA;sprite.h Sprite Area Functions #table columns 2 <sprite_area_initialise> <sprite_area_readinfo> <sprite_area_reinit> <sprite_area_load> <sprite_area_merge> <sprite_area_save> <sprite_getname> <sprite_get> <sprite_get_rp> <sprite_get_given> <sprite_get_given_rp> <sprite_create > <sprite_create_rp> #endtableDATA�sprite_area_load Syntax: <os_error> *sprite_area_load (<sprite_area> *area, char *filename); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function loads all the sprites in the specified file into the sprite area whose pointer is given. Any sprites already in the area are deleted. It is equivalent to {*}OS_SpriteOp{*} 10, or *SLoad when used with the system area.DATAsprite_area_merge Syntax: <os_error> *sprite_area_merge (<sprite_area> *area, char *filename); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function loads all the sprites in the specified file into the sprite area whose pointer is given. The sprites are added to any sprites already in the area. If any new sprites have the same name as existing sprites, the old ones are deleted. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 11 or *SMerge when used with the system area.DATA9sprite_area_reinit Syntax: <os_error> *sprite_area_reinit (<sprite_area> *area); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function re-initialises the sprite area. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 9, or *SNew when used with the system sprite area.DATAQsprite_area_save Syntax: <os_error> *sprite_area_save (<sprite_area> *area, char *filename); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function saves all the sprites in a sprite area to a file. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 12 or *SSave when used with the system area.DATA sprite_areainfo This type is defined in <DeskLib:Sprite.h=>Sprite_DL>. It is defined as the following structure: \{ unsigned int areasize; unsigned int numsprites; unsigned int firstoffset; unsigned int freeoffset; }DATA}sprite_box This type is defined in <sprite.h=>sprite_h> as the following structure: \{ int x0, y0, x1, y1; }DATA�sprite_change_size Syntax: <os_error> *sprite_change_size (<sprite_area> *area, <sprite_id> *spr, <BOOL> rows, int at, int number); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function removes or inserts rows or columns. /rows/ determines whether this operates on rows or columns. If /number/ is -ve then rows/columns are deleted. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp>s 57 and 58.DATA�sprite_colour This type is defined in <sprite.h=>sprite_h> as the following structure: \{ int colour; int tint; }DATAsprite_copy Syntax: <os_error> *sprite_copy (<sprite_area> *area, <sprite_id> *spr, char *name); Header: <sprite.h=>sprite> Returns: Pointer to error, or <NULL> if none. This function creates an exact copy of the sprite whose ID is given by /spr/, in the specified sprite area. The new sprite's name is taken from the string pointed to by /name/. If a sprite of that name already exists, an error is returned. It is identical to <OS_SpriteOp=>SWI:OS_SpriteOp> 27, or *SCopy if used with the system sprite area.DATA�Sprite_Copy Syntax: <os_error> *Sprite_Copy (<sprite_area> area, char *old, char *new); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function creates an exact copy of the sprite in the given area whose name is given in /old/ so that its new name is that given in /new/. An error is returned if a sprite of the new name already exists. It is identical to SWI <OS_SpriteOp=>SWI:OS_SpriteOp> 27.DATA�sprite_create Syntax: <os_error> *sprite_create (<sprite_area> *area, char *name, <sprite_palflag> x, int w, int h, int m); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a new, blank, sprite with the given name in the sprite area specified. The width and height of the sprite in pixels are given by /w/ and /h/ respectively. The screen mode of the sprite is given in /m/.DATA�Sprite_Create Syntax: <os_error> *Sprite_Create (<sprite_area> area, char *name, int palflag, int w, int h, int mode); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function creates a new, blank, sprite with the given name in the sprite area specified. The width and height of the sprite in pixels are given by /w/ and /h/ respectively. The screen mode of the sprite is given in /mode/. The sprite will have a palette if /palflag/ is <TRUE>.DATAEsprite_create_mask Syntax: <os_error> *sprite_create_mask (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a mask for the specified sprite with all pixels set to be solid. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 29.DATA�sprite_create_rp Syntax: <os_error> *sprite_create_rp (<sprite_area> *area, char *name, <sprite_palflag> x, int w, int h, int m, <sprite_ptr> *addr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a new, blank, sprite with the given name in the sprite area specified. It is identical to the function <sprite_create>, but returns the address of the sprite in the {/}sprite_ptr{/} pointed to by /addr/.DATA�Sprite_CreateMask Syntax: <os_error> *Sprite_CreateMask (<sprite_area> area, char *name); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function creates a mask for the given sprite.DATAwSprite_CreatePalette Syntax: int Sprite_CreatePalette (<sprite_area> area, char *name, <BOOL> big); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function creates a palette for the given sprite. If /big/ is true then a 256 entry palette is created (RISC OS 3 only). This is equivalent to <OS_SpriteOp=>SWI:OS_Spriteop> 37.DATAhsprite_delete Syntax: <os_error> *sprite_delete (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function deletes the sprite whose ID is given in /spr/, in the area specified. It is identical to <OS_SpriteOp=>SWI:OS_SpriteOp> 25, or *SDelete if used with the system sprite area.DATA#Sprite_Delete Syntax: <os_error> *Sprite_Delete (<sprite_area> area, char *name); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function deletes the sprite whose name is given, in the area specified. It is identical to SWI OS_SpriteOp 25.DATA�sprite_delete_row Syntax: <os_error> *sprite_delete_row (<sprite_area> *area, <sprite_id> *spr, int row); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function deletes a row in the sprite at the position identified (the bottom row is row 0), shifting all rows above it (if any) down one. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 32.DATA�Sprite_DeleteColumn Syntax: <os_error> *Sprite_DeleteColumn (<sprite_area> area, char *name, int pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function deletes a column in the sprite at the position identified (the left column is row 0), shifting all rows after it (if any) left one. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 46.DATA�Sprite_DeleteRow Syntax: <os_error> *Sprite_DeleteRow (<sprite_area> area, char *name, int pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function deletes a row in the sprite at the position identified (the bottom row is row 0), shifting all rows above it (if any) down one. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 32.DATA�DeskLib:Sprite.h Version: 0.28 (22 Oct 1994) #line This library declares functions and types for simple handling of sprites. Functions only operate on named sprites in a user sprite area. Functions: #table columns 3 <Sprite_ScreenSave=>Sprite_ScreenSave_> <Sprite_ScreenLoad=>Sprite_ScreenLoad_> <Sprite_InitArea> <Sprite_Load> <Sprite_LoadFile> <Sprite_LoadFiles> <Sprite_Merge> <Sprite_Save> <Sprite_Create=>Sprite_Create_> <Sprite_Delete=>Sprite_Delete_> <Sprite_Rename=>Sprite_Rename_> <Sprite_Copy=>Sprite_Copy_> <Sprite_Get=>Sprite_Get_> <Sprite_Plot> <Sprite_ReadInfo> <Sprite_Redirect> <Sprite_UnRedirect> <Sprite_ReadSaveAreaSize> <Sprite_ReadControl> <Sprite_GetName=>Sprite_GetName_> <Sprite_CreateMask> <Sprite_RemoveMask> <Sprite_InsertRow> <Sprite_DeleteRow> <Sprite_FlipX> <Sprite_Append> <Sprite_CreatePalette> <Sprite_RemovePalette> <Sprite_ReadPixel=>Sprite_ReadPixel_> <Sprite_WritePixel=>Sprite_WritePixel_> <Sprite_ReadMask=>Sprite_ReadMask_> <Sprite_WriteMask=>Sprite_WriteMask_> <Sprite_InsertColumn> <Sprite_DeleteColumn> <Sprite_FlipY> <Sprite_PlotMask> <Sprite_PlotMaskScaled> <Sprite_PlotScaled> <Sprite_PlotGrey> <Sprite_WimpPlot> <Sprite_MemorySize> <Sprite_IconMemorySize> #endtable Macros: #indent 4 #Table 1 24 <sprite_MAXNAME> <spritepool_SYSTEM> <spritepool_WIMP> #EndTable #indent Types: #indent 7 #Table 3 24 <sprite> <sprite_area> <sprite_areainfo> <sprite_header> <sprite_info> <sprite_outputstate> <spritemem_flags> <sprite_scalefactors> #EndTableDATA�sprite_factors This type is defined in <sprite.h=>sprite_h>. It is a structure containing scale factors: \{ int xmag,ymag,xdiv,ydiv; }DATA=sprite_flip_x Syntax: <os_error> *sprite_flip_x (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function flips the specified sprite about the x axis, ie reverses it top-to-bottom. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 33.DATA=sprite_flip_y Syntax: <os_error> *sprite_flip_y (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function flips the specified sprite about the y axis, ie reverses it left-to-right. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 47.DATA=Sprite_FlipX Syntax: <os_error> *Sprite_FlipX (<sprite_area> area, char *name); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function flips the specified sprite about the X axis, ie reverses it top-to-bottom. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 33.DATA=Sprite_FlipY Syntax: <os_error> *Sprite_FlipY (<sprite_area> area, char *name); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function flips the specified sprite about the Y axis, ie reverses it left-to-right. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 47.DATA,sprite_get Syntax: <os_error> *sprite_get (<sprite_area> *area, char *name, <sprite_palflag> x); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a new sprite with the name given, in the sprite area specified. Whether the palette is included depends on /x/. The contents of the sprite are taken from the screen rectangle delimited by the current and previous graphics cursor positions. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 14, or *SGet if used with the system sprite area.DATASprite_Get Syntax: <os_error> *Sprite_Get (<sprite_area> area, char *name, int palflag, int xlo, int ylo, int xhi, int yhi); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function creates a new sprite with the name given, in the sprite area specified. Whether the palette is included depends on /palflag/. The contents of the sprite are taken from the screen rectangle delimited by /xlo/ - /yhi/. This function is equivalent to <OS_SpriteOp=>SWI:OS_Spriteop> 16.DATAsprite_get_given Syntax: <os_error> *sprite_get_given (<sprite_area> *area, char *name, <sprite_palflag> palflag, int xlo, int ylo, int xhi, int yhi); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a new sprite with the name given, in the sprite area specified. Whether the palette is included depends on /x/. The contents of the sprite are taken from the screen rectangle delimited by {/}xlo-yhi{/}. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 16.DATA�sprite_get_given_rp Syntax: <os_error> *sprite_get_given_rp (<sprite_area> *area, char *name, <sprite_palflag> x, int xlo, int ylo, int xhi, int yhi, <sprite_ptr> *addr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a new sprite with the name given, in the sprite area specified. It is identical to the function <sprite_get_given>, but returns the address of the sprite in the {/}sprite_ptr{/} pointed to by /addr/.DATA�sprite_get_rp Syntax: <os_error> *sprite_get_rp (<sprite_area> *area, char *name, <sprite_palflag> x, <sprite_ptr> *addr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function creates a new sprite with the name given, in the sprite area specified. It is identical to the function <sprite_get>, but returns the address of the sprite in the /sprite_ptr/ pointed to by /addr/.DATA�sprite_getname Syntax: <os_error> *sprite_getname (<sprite_area> *area, void *buffer, int *length, int index); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. See also the DeskLib function, <Sprite_GetName=>Sprite_GetName_>. This function returns the name of the sprite whose position in the specified sprite area is given by /index/ (numbered from 1). The name is placed in the area pointed to by /buffer/. On entry the integer pointed to by /length/ should contain the length of this buffer. On exit, it will contain the length of the name read. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 13.DATA}Sprite_GetName Syntax: int Sprite_GetName (<sprite_area> area, char *name, int n); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Length of name. This function reads the name of a sprite in a given area. The sprite's number must be given, the first sprite being 1 and the name is returned in the buffer pointer to by /name/, which should be <sprite_MAXNAME>+1 bytes long.DATAZsprite.h The \<sprite.h> header declares quite a few functions for handling sprites. Functions: #indent 7 #Table 2 24 <Simple Functions=>sprite_simple_> <Sprite Area Functions=>sprite_area_> <Sprite Functions=>sprite_> <RISC OS 3 Functions=>sprite_ro3_> #EndTable #indent Macros: #indent 7 <sprite_mainarea> #indent Types: #indent 7 #Table columns 3 <sprite_palflag> <sprite_factors> <sprite_pixtrans> <sprite_area> <sprite_header> <sprite_ptr> <sprite_type> <sprite_id> <sprite_info> <sprite_colour> <sprite_maskstate> <sprite_state> <sprite_pgm> <sprite_transmat> <sprite_box> #endtableDATAosprite_header This type is defined in <sprite.h=>sprite_h> (Desktop C) and <DeskLib:Sprite.h=>Sprite_DL>. It is defined as the following structure in Desktop C: \{ int next; char name[12]; int width; int height; int lbit; int rbit; int image; int mask; int mode; } and in DeskLib it is defined as: {tab} \{ int offset_next; char name[<sprite_MAXNAME>]; int width; int height; int leftbit; int rightbit; int imageoffset; int maskoffset; int screenmode; }DATA Sprite_IconMemorySize Syntax: int Sprite_IconMemorySize (<window_block> *win, <icon_handle> icon, int m, <spritemem_flags> flags, <wimp_point> *size); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Size in bytes. This function takes a window definition /win/, an icon number /icon/, a screen mode /m/ and some flags /flags/, puts them in the Magimix and finds how much memory is needed for a sprite the same size as that icon in that mode with those flags. If /size/ is not <NULL>, it'll tell you the icon size too!DATA�sprite_id This is a type defined in <sprite.h=>sprite_h> as the following structure: \{ union \{ char * name; <sprite_ptr> addr; } s; <sprite_type> tag; }FREE���te_info This type is defined in <sprite.h=>sprite_h> (Desktop C) and <DeskLib:Sprite.h=>Sprite_DL>. It is defined as the following structure in Desktop C: \{ int width; int hDATA�L_tmpnam #Parent stdio The macro L_tmpnam is defined in <stdio.h=>stdio> as the length of the longest filename that will be used by the function <tmpnam>. In Easy C it is defined as the same as <FILENAME_MAX>. }DATA�Sprite_InitArea Syntax: <os_error> *Sprite_InitArea (<sprite_area> area); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function initialises the sprite area. It is equivalent to SWI OS_SpriteOp 9.DATA�sprite_insert_row Syntax: <os_error> *sprite_insert_row (<sprite_area> *area, <sprite_id> *spr, int row); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function inserts a row in the given sprite and the position identified, shifting all rows above it (if any) up one. Row 0 is at the bottom. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 31.DATA�Sprite_InsertRow Syntax: <os_error> *Sprite_InsertRow (<sprite_area> area, char *name, int pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function inserts a row in the given sprite and the position identified, shifting all rows above it (if any) up one. Row 0 is at the bottom. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 31.DATAgSprite_Load Syntax: <os_error> *Sprite_Load (<sprite_area> area, char *filename); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function loads all the sprites in the specified file into the sprite area whose pointer is given. Any sprites already in the area are deleted. It is equivalent to OS_SpriteOp 10.DATA7Sprite_LoadFile Syntax: <sprite_area> Sprite_LoadFile (char *filename); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to sprite area created. This function allocates space for a sprite area with <malloc>, initialises it and load the specified file into it. The easy way to load a sprite file.DATA�sprite_mainarea This macro is defined in <sprite.h=>sprite_h>. It can be used as a sprite area pointer to indicate the system sprite area. It is defined as: {fCode;align centre}((sprite_area *) 0)DATA�sprite_maskstate This enumerated type is defined in <sprite.h=>sprite> as follows: \{ sprite_masktransparent = 0, sprite_masksolid = 1 }DATA�sprite_MAXNAME This macro is defined in <DeskLib:Sprite.h=>Sprite_DL> as a value representing the longest sprite name which can be used. It is defined as 12.DATA�Sprite_MemorySize Syntax: int Sprite_MemorySize (int w, int h, int m, <spritemem_flags> flags); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Size in bytes. This function calculates the amount of memory needed to hold the sprite whose width, height and mode are specified (in {/}w{/}, {/}h{/} and {/}m{/}). The status of the mask and palette are determined by the /flags/. Remember that for a sprite area, you need to find the sizes of all the sprites and add sizeof(<sprite_areainfo>).DATA�Sprite_Merge Syntax: <os_error> *Sprite_Merge (<sprite_area> area, char *filename); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function loads all the sprites in the specified file into the sprite area whose pointer is given. The sprites are added to any sprites already in the area. If any new sprites have the same name as existing sprites, the old ones are deleted. This function is equivalent to OS_SpriteOp 11.DATA�sprite_outputstate This type is defined in <DeskLib:Sprite.h=>Sprite_DL>. It is defined as the following structure: \{ int callno; <sprite_area> spritearea; <sprite> sprite; void *savearea; }DATA*sprite_outputtomask Syntax: <os_error> *sprite_outputtomask (<sprite_area> *area, <sprite_id> *spr, int *savearea, <sprite_state> *state); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function redirects VDU output to a sprite mask, saving the old state.DATA sprite_outputtoscreen Syntax: <os_error> *sprite_outputtoscreen (int *savearea, <sprite_state> *state); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function redirects VDU output back to the screen, saving the old state.DATA)sprite_outputtosprite Syntax: <os_error> *sprite_outputtosprite (<sprite_area> *area, <sprite_id> *spr, int *savearea, <sprite_state> *state); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function redirects VDU output to a sprite, saving the old state.DATA�sprite_palflag This is an enumerated type defined in <sprite.h=>sprite_h>. It is used to indicate whether the sprite has a palette. \{ sprite_nopalette = 0, sprite_haspalette }DATA�sprite_pgm This type is defined in <sprite.h=>sprite_h> as the following structure: {wrap off} \{ int p0[2], p1[2], p2[2], p3[2]; }DATA�sprite_pixtrans This is a type defined in <sprite.h=>sprite_h> such that a pointer to this type is a pointer to a pixel translation table. Hence it is defined as a /char/ (ie the pointer is a {/}char *{/}).DATA�Sprite_Plot Syntax: <os_error> *Sprite_Plot (<sprite_area> area, char *name, int x, int y, int a); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function plots the sprite identified on the screen with its bottom left corner at {/}(x,y){/}. The plot <action=>VDU:18a>, given in /a/, is the same as that used for <GCOL=>Basic:GCOL> except that values 8-15 indicate that the mask should be used. Values above 16 have no meaning.DATA�Sprite_PlotGrey Syntax: <os_error> *Sprite_PlotGrey (<sprite_area> area, char *name, <wimp_point> *pos, <sprite_scalefactors> sc, void *pixtran); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function is similar to <Sprite_PlotScaled>, except that it anti-aliases the sprite as it scales it. The sprite must have been defined in a 16 colour mode, and the palette must be a linear grey-scale. This call is slow and should only be used when the quality is more important than speed. If this quality is needed for something that will be redrawn more than once, it is advisable to redraw it once into another sprite, using <Sprite_Redirect>, and then redraw to screen using this sprite.DATA0Sprite_PlotMask Syntax: <os_error> *Sprite_PlotMask (<sprite_area> area, char *name, <wimp_point> *pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function plots a sprite mask in the current background graphics colour and action (set using <GFX_GCOL>), at the current graphics cursor position. All 1 bits in the mask are plotted, 0 bits are not. If the specified sprite has no mask, a rectangle the size of the sprite is plotted instead. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 48.DATASprite_PlotMaskScaled Syntax: <os_error> *Sprite_PlotMaskScaled (<sprite_area> area, char *name, <wimp_point> *p, <sprite_scalefactors> sc); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function plots a sprite mask in the current background graphics colour and action (set using <GFX_GCOL>) at {/}(x,y){/}. All 1 bits in the mask are plotted, 0 bits are not. The mask is scaled according to the scaled factors pointed to by /sc/. This function is equivalent to OS_Sprite 50.DATA]Sprite_PlotScaled Syntax: <os_error> *Sprite_PlotScaled (<sprite_area> area, char *name, <wimp_point> *pos, <sprite_scalefactors> sc, void *pixtran); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function will plot the sprite identified on the screen with its bottom left corner at position /pos/ using the current graphics colour and action. In addition the sprite will be scaled using the scaling factors pointed to by /sc/, and using the pixel translation table given by /pixtran/. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 52.DATA�sprite_ptr This type is defined in <sprite.h=>sprite_h> as a type capable of holding a pointer to a sprite. It is actually defined as a {/}void *{/}.DATA�sprite_put Syntax: <os_error> *sprite_put (<sprite_area> *area, <sprite_id> *spr, int a); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function puts the sprite identified on the screen with its bottom left corner at the current graphics cursor position. The plot <action=>VDU:18a>, given in /a/, is the same as that used for <os_gcol> except that values 8-15 indicate that the mask should be used. Values above 16 have no meaning.DATA�sprite_put_given Syntax: <os_error> *sprite_put_given (<sprite_area> *area, <sprite_id> *spr, int a, int x, int y); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function puts the sprite identified on the screen with its bottom left corner at {/}(x,y){/}. The plot <action=>VDU:18a>, given in /a/, is the same as that used for <os_gcol> except that values 8-15 indicate that the mask should be used. Values above 16 have no meaning.DATAsprite_put_mask Syntax: <os_error> *sprite_put_mask (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a sprite mask in the current background graphics colour and action (set using <os_gcol>), at the current graphics cursor position. All 1 bits in the mask are plotted, 0 bits are not. If the specified sprite has no mask, a rectangle the size of the sprite is plotted instead. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 48.DATA0sprite_put_mask_pgm Syntax: <os_error> *sprite_put_mask_pgm (<sprite_area> *area, <sprite_id> *spr, <sprite_box> *box, <sprite_pgm> pgm); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a box from the mask in background colours to a parallelogram.DATADsprite_put_mask_trans Syntax: <os_error> *sprite_put_mask_trans (<sprite_area> *area, <sprite_id> *spr, <sprite_box> *box, <sprite_transmat> t); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a box from the mask in background colours through a transformation matrix.DATA3sprite_put_pgm Syntax: <os_error> *sprite_put_pgm (<sprite_area> *area, <sprite_id> *spr, int action, <sprite_box> *box, <sprite_pgm> *t, <sprite_pixtrans> *p); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a box from the sprite to a parallelogram.DATA,sprite_put_scaled Syntax: <os_error> *sprite_put_scaled (<sprite_area> *area, <sprite_id> *spr, int a, int x, int y, <sprite_factors> *fact, <sprite_pixtrans> pixt[]); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function will plot the sprite identified on the screen with its bottom left corner at position {/}(x,y){/}. The plot <action=>VDU:18a>, given in /a/, is the same as that used for <os_gcol> except that values 8-15 indicate that the mask should be used. Values above 16 have no meaning. In addition the sprite will be scaled using the scaling factors pointed to by /fact/, and using the pixel translation table given by /pixt/. If either of these values are *NULL*, they will not be used. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 52.DATAHsprite_put_trans Syntax: <os_error> *sprite_put_trans (<sprite_area> *area, <sprite_id> *spr, int action, <sprite_box> *box, <sprite_transmat> *t, <sprite_pixtrans> p); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a box from the sprite through a transformation matrix.DATA�Sprite_ReadControl Syntax: int Sprite_ReadControl (<sprite_area> area, int *size, <sprite> *first, void *free); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Number of sprites in area. This function reads information about a sprite area, /area/. If /size/, /first/ or /free/ is <NULL> then that value is not returned. On exit, {/}*size{/} contains the size of the area, {/}*first{/} contains a pointer to the first sprite, and {/}*free{/} contains a pointer to the first free word.DATA�Sprite_ReadInfo Syntax: <os_error> *Sprite_ReadInfo (<sprite_area> area, char *name, <sprite_info> *info); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function returns information (in {/}info{/}) about the sprite specified, giving its width and height in pixels, whether the sprite has a mask and the screen mode in which the sprite was defined.DATA�sprite_readmask Syntax: <os_error> *sprite_readmask (<sprite_area> *area, <sprite_id> *spr, int x, int y, <sprite_maskstate> *mask); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. DeskLib: See <Sprite_ReadMask=>Sprite_ReadMask_> This function reads the state of a given pixel in the specified sprite mask. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 43.DATA1Sprite_ReadMask Syntax: <BOOL> Sprite_ReadMask (<sprite_area> area, char *name, <wimp_point> *pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: <TRUE> if solid. This function reads the state of a given pixel in the specified sprite mask. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 43.DATA�sprite_readpixel Syntax: <os_error> *sprite_readpixel (<sprite_area> *area, <sprite_id> *spr, int x, int y, <sprite_colour> *result); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. See also the DeskLib function, <Sprite_ReadPixel=>Sprite_ReadPixel_>. This function reads the colour of a given pixel in the specified sprite. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 41.DATA�Sprite_ReadPixel Syntax: int Sprite_ReadPixel (<sprite_area> area, char *name, <wimp_point> *pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Colour of pixel. This function returns the colour of the pixel at /pos/ in the given sprite.DATAJSprite_ReadSaveAreaSize Syntax: <os_error> *Sprite_ReadSaveAreaSize (<sprite_area> area, char *name, int *size); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function calculates how large a save area must be for a given sprite, and return it in the /int/ pointed to by /size/.DATAFsprite_readsize Syntax: <os_error> *sprite_readsize (<sprite_area> *area, <sprite_id> *spr, <sprite_info> *resultinfo); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function reads the size information for the specified sprite. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 40.DATASprite_Redirect Syntax: <os_error> *Sprite_Redirect (<sprite_area> area, char *name, void *save, <sprite_outputstate> *old); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function causes VDU output to be sent to a sprite (given in {/}area{/} and {/}name{/}) instead of the screen. /save/ is a pointer to a block whose size is that returned by the function <Sprite_ReadSaveAreaSize>. The first four bytes of this block must be set to zero. Alternatively, it may be 0 for no save area. This block is used to store the current VDU state for restoration by <Sprite_UnRedirect> in the event of another redirection. The old state is returned in /old/. The Wimp must not be called whilst output is switched in this way. Dunno why....DATA.sprite_remove_mask Syntax: <os_error> *sprite_remove_mask (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function removes the mask definition for the given sprite. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 30.DATA&Sprite_RemovePalette Syntax: int Sprite_RemovePalette (<sprite_area> area, char *name); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function removes the palette for the given sprite. This is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 37.DATA-sprite_removewastage Syntax: <os_error> *sprite_removewastage (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function removes the left hand wastage from a sprite. It is equivalent to <OS_SpriteOp=>SWI:OS_SPriteOp> 54.DATA�sprite_rename Syntax: <os_error> *sprite_rename (<sprite_area> *area, <sprite_id> *spr, char *name); Header: <sprite.h=>sprite> Returns: Pointer to error, or <NULL> if none. This function renames specified sprite in the given sprite area so that its new name is that pointed to by /name/. An error is returned if a sprite of the new name already exists in that sprite area. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 26, or *SRename if used with the system sprite area.DATA�Sprite_Rename Syntax: <os_error> *Sprite_Rename (<sprite_area> area, char *old, char *new); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function renames the sprite in the given area whose name is given in /old/ so that its new name is that given in /new/. An error is returned if a sprite of the new name already exists. It is identical to SWI <OS_SpriteOp=>SWI:OS_SpriteOp> 26.DATA�sprite_restorestate Syntax: <os_error> *sprite_restorestate (<sprite_state> state); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function restores the old state after one of the sprite redirection calls.DATA�sprite.h RISC OS 3 Functions These functions can only be used on RISC OS 3. {align centre} <sprite_change_size> <sprite_put_mask_trans> <sprite_put_mask_pgm> <sprite_put_trans> <sprite_put_pgm >DATASprite_Save Syntax: <os_error> *Sprite_Save (<sprite_area> area, char *filename); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function saves all the sprites in a sprite area to a file. It is equivalent to SWI OS_SpriteOp 12.DATA�sprite_scalefactors This type is defined in <DeskLib:Sprite.h=>Sprite_DL> as the following structure: \{ <wimp_point> multiply; <wimp_point> divide; } Using this structure any scale can be created.DATA@sprite_screenload Syntax: void sprite_screenload (char *file); Header: <sprite.h=>sprite_h> This function loads the first sprite in the given sprite file and displays it at the bottom left of the screen, in the correct mode and palette. This function is equivalent to the SWI <OS_SpriteOp 3=>SWI:os_spriteop3>.DATA�Sprite_ScreenLoad Syntax: <os_error> *Sprite_ScreenLoad (char *filename); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function loads the first sprite in the given sprite file and displays it at the bottom left of the screen, in the correct mode and palette. This function is equivalent to the SWI <OS_SpriteOp 3=>SWI:os_Spriteop3>.DATA8sprite_screensave Syntax: void sprite_screensave (char *file, <sprite_palflag> flg); Header: <sprite.h=>sprite_h> This function saves the current graphics window with a palette if requested as the spritefile whose name is given. This function is equivalent to the SWI <OS_SpriteOp 2=>SWI:os_spriteop2>.DATA�Sprite_ScreenSave Syntax: <os_error> *Sprite_ScreenSave (char *filename, <BOOL> palflag); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function saves the current graphics window with a palette if requested as the spritefile whose name is given. If /palflag/ is <TRUE> then the palette is saved with the sprite. This function is equivalent to the SWI <OS_SpriteOp 2=>SWI:OS_SpriteOp2>.DATA�sprite_select Syntax: <os_error> *sprite_select (<sprite_area> *area, <sprite_id> *spr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function selects the specified sprite for plotting (perhaps using <os_plot>) with plot code 0xED (and similar). It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 24, or *SChoose when used with the system area.DATAzsprite_select_rp Syntax: <os_error> *sprite_select_rp (<sprite_area> *area, <sprite_id> *spr, <sprite_ptr> *addr); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function selects a sprite for plotting. It is identical to the function <sprite_select>, but returns the address of the sprite in the {/}sprite_ptr{/} pointed to by /addr/.DATAWsprite.h Simple Functions #align centre <sprite_screenload> <sprite_screensave>DATAsprite_sizeof_screencontext Syntax: <os_error> *sprite_sizeof_screencontext (int *size); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function gets the size of the save area needed to save the screen context and returns it in {/}*spr{/}.DATAAsprite_sizeof_spritecontext Syntax: <os_error> *sprite_sizeof_spritecontext (<sprite_area> *area, <sprite_id> *spr, int *size); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function gets the size of the save area needed to save the sprite context and returns it in {/}*spr{/}.DATAusprite_state This type is defined in <sprite.h=>sprite_h> as the following structure: \{ int r[4]; }DATArsprite_transmat This type is defined in <sprite.h=>sprite_h> as a {/}int [6]{/} ie an array of 6 integers.DATA�sprite_type This is a type defined in <sprite.h=>sprite_h> as the following enumerated type: \{ sprite_id_name = 0, sprite_id_addr = 0x74527053 } It is used to indicate whether a sprite name or address is used in a <sprite_id>.DATA6Sprite_UnRedirect Syntax: <os_error> *Sprite_UnRedirect (<sprite_outputstate> *old); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function restores VDU output back to a saved state. This state should be that returned in /old/ by <Sprite_Redirect>, I think!DATA�Sprite_WimpPlot Syntax: <os_error> *Sprite_WimpPlot (<sprite_area> area, char *name, <wimp_point> *pos, <convert_block> *convert, int action); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function plots the specified sprite at work area coordinates /pos/ for the window whose convert block is given, with graphics action /action/. All relevant scaling/colour translation occurs to plot the sprite as the Wimp would do were it an icon.DATA�sprite_writemask Syntax: <os_error> *sprite_writemask (<sprite_area> *area, <sprite_id> *spr, int x, int y, <sprite_maskstate> *mask); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. DeskLib: See <Sprite_WriteMask=>Sprite_WriteMask_>. This function writes the state of a given pixel in the specified sprite mask. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 44.DATAYSprite_WriteMask Syntax: <os_error> *Sprite_WriteMask (<sprite_area> area, char *name, <wimp_point> *pos, <BOOL> solid); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function sets the state of a given pixel in the specified sprite mask. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 43.DATA�sprite_writepixel Syntax: <os_error> *sprite_writepixel (<sprite_area> *area, <sprite_id> *spr, int x, int y, <sprite_colour> *colour); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. DeskLib: See <Sprite_WritePixel=>Sprite_WritePixel_>. This function writes the colour of a given pixel in the specified sprite. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 42.DATAdSprite_WritePixel Syntax: os_error *Sprite_WritePixel (<sprite_area> area, char *name, <wimp_point> *pos, int col, int tint); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function sets the colour and tint of the pixel at /pos/ in the given sprite. It is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 42.DATAasprite_area_initialise Syntax: void sprite_area_initialise (<sprite_area> *ptr, int size); Header: <sprite.h=>sprite_h> This function initialises an area of memory pointed to by /ptr/, whose size is given in /size/, for use as a sprite area. There is no {*}OS_SpriteOp{*} call to do this, so this is a useful function which saves you some work.DATAgsprite_area_readinfo Syntax: <os_error> *sprite_area_readinfo (<sprite_area> *area, sprite_area *result); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function reads all the information contained in the control block of the sprite area pointed to by /area/, and places it in the sprite area pointed to by /result/.DATA�sprite_put_greyscaled Syntax: <os_error> *sprite_put_greyscaled (<sprite_area> *area, <sprite_id> *spr, int x, int y, <sprite_factors> *fact, <sprite_pixtrans> *pixt); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function is similar to <sprite_put_scaled>, except that it anti-aliases the sprite as it scales it. The sprite must have been defined in a 16 colour mode, and the palette must be a linear grey-scale. This call is slow and should only be used when the quality is more important than speed. If this quality is needed for something that will be redrawn more than once, it is advisable to redraw it once into another sprite, using <sprite_outputtosprite>, and then redraw to screen using this sprite.DATAsprite_put_mask_given Syntax: <os_error> *sprite_put_mask_given (<sprite_area> *area, <sprite_id> *spr, int x, int y); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a sprite mask in the current background graphics colour and action (set using <os_gcol>), at {/}(x,y){/}. All 1 bits in the mask are plotted, 0 bits are not. If the specified sprite has no mask, a rectangle the size of the sprite is plotted instead. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 49.DATA!sprite_put_mask_scaled Syntax: <os_error> *sprite_put_mask_scaled (<sprite_area> *area, <sprite_id> *spr, int x, int y, <sprite_factors> *fact); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a sprite mask in the current background graphics colour and action (set using <os_gcol>) at {/}(x,y){/}. All 1 bits in the mask are plotted, 0 bits are not. The mask is scaled according to the scaled factors pointed to by /fact/. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 50.DATA�sprite_put_char_scaled Syntax: <os_error> *sprite_put_char_scaled (char c, int x, int y, <sprite_factors> *fact); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function plots a text character, whose character code is given in /c/, on the screen in the current graphics foreground colour and action, with its bottom left at {/}(x,y){/}. It is scaled according to the scaling factors given by /fact/. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 51.DATA�sprite_insert_column Syntax: <os_error> *sprite_insert_column (<sprite_area> *area, <sprite_id> *spr, int column); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function inserts a column in the given sprite at the position identified, shifting all columns after it (if any) to the right. The left-hand column is numbered zero. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 45.DATA�sprite_delete_column Syntax: <os_error> *sprite_delete_column (<sprite_area> *area, <sprite_id> *spr, int column); Header: <sprite.h=>sprite_h> Returns: Pointer to error, or <NULL> if none. This function deletes a column in the sprite at the position identified (the left column is row 0), shifting all rows after it (if any) left one. It is equivalent to <OS_SpriteOp=>SWI:os_spriteop> 46.DATA_Sprite_LoadFiles Syntax: <sprite_area> Sprite_LoadFiles (int num, ...); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to sprite area created. This function allocates space for a sprite area with <malloc>, initialises it and loads /num/ sprite files into it, all of whose names are passed as parameters in the variable argument list.DATA�Sprite_RemoveMask Syntax: <os_error> *Sprite_RemoveMask (<sprite_area> area, char *name); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function removes the mask from the given sprite.DATA�Sprite_InsertColumn Syntax: <os_error> *Sprite_InsertColumn (<sprite_area> area, char *name, int pos); Header: <DeskLib:Sprite.h=>Sprite_DL> Returns: Pointer to error, or <NULL> if none. This function inserts a column in the given sprite at the position identified, shifting all columns after it (if any) to the right. The left-hand column is numbered zero. This function is equivalent to <OS_SpriteOp=>SWI:OS_SpriteOp> 45.DIR$,,�� F����U&�ONLYDATA�SPR_ONLY This macro is defined in <TimsLib:Icon.h=>Icon_TL>. It is the value the returned by <ICON_TYPE> when the icon in question is a 'sprite only' icon. It is defined as 2.DATA�sqrt Syntax: double sqrt (double x); Header: <math.h=>math> Returns: The square root of x. This function calculates the square root of x. x must not be negative.DATA�srand Syntax: void srand (unsigned int s); Header: <stdlib.h=>stdlib> This function seeds the psuedo-random number generating function with the value in /s/. The seed defines what sequence of numbers <rand> will give - after calling /srand/ with the same value the same sequence will be generated. At the start of execution the sequence generated is as if srand(1) had been called.DATA�sscanf Syntax: int sscanf (char *in, char *format, ...); Header: <stdio.h=>stdio> Returns: The number of successful inputs or <EOF> if there was an input error. This function reads input from the string pointed to by /in/ under control of the <format string=>sform_>. In operation it is similar to <fscanf>, but input is read from a string instead of a stream. The end of the string counts as the end of file.DATA�stdarg.h The \<stdarg.h> header declares three functions and one type for handling variable argument lists. Functions: #Indent 6 #Table 1 14 <va_start> <va_arg> <va_end> #EndTable #Indent 0 Type: #Indent 6 <va_list> #Indent 0DATA�stddef.h The \<stddef.h> header declares a few types and two macros. Macros: #Indent 5 #Table 1 14 <offsetof> <NULL> #EndTable #Indent 0 Types: #Indent 5 #Table 1 14 <ptrdiff_t> <size_t> <wchar_t> #EndTableDATA�stderr The macro stderr is defined in <stdio.h=>stdio> and is a pointer to type <FILE>. It can be used as a stream for reporting errors in functions such as <fprintf>.DATA�stdin The macro stdin is defined in <stdio.h=>stdio> and is a pointer to type <FILE>. It refers to the standard input stream (keyboard by default) and can be used in functions such as <fscanf>.DATA�stdio.h #Parent ansi_ The \<stdio.h\> header declares many functions concerned with input and output. In addition, it declares three types and a number of macros. Functions: #Indent 5 #Table 3 23 <File operations=>fileop_> <File handling=>filehnd_> <Character I/O=>chario_> <Formatted I/O=>formio_> <Stream I/O=>streamio_> <Error handling=>errhnd_> #EndTable #Indent 0 Macros: #Indent 5 #Table 6 14 <NULL> <_IOFBF> <_IOLBF> <_IONBF> <BUFSIZ> <EOF> <FOPEN_MAX> <FILENAME_MAX> <L_tmpnam> <SEEK_CUR> <SEEK_END> <SEEK_SET> <TMP_MAX> <stdin> <stdout> <stderr> #EndTable #Indent 0 Types: #Indent 5 #Table 1 15 <FILE> <fpos_t> <size_t> #EndTableDATAhstdlib.h The \<stdlib.h> header declares many functions of general utility. In addition, it declares four types and five macros. Functions: #Indent 2 #Table 4 24 <String conversion=>sl_strconv_> <Random numbers=>sl_rand_> <Memory management=>sl_mem_> <Environment management=>sl_env_> <Data processing=>sl_data_> <Arithmetic=>sl_arith_> <Multibyte character=>sl_mbchar_> <Multibyte string=>sl_mbstr_> #EndTable #Indent 0 Macros: #Indent 5 #Table 2 <EXIT_FAILURE> <EXIT_SUCCESS> <MB_CUR_MAX> <NULL> <RAND_MAX> #EndTable #Indent 0 Types: #Indent 11 #Table 1 <div_t> <ldiv_t> <size_t> <wchar_t> #EndTableDATA�stdout The macro stdout is defined in <stdio.h=>stdio> and is a pointer to type <FILE>. It refers to the standard output stream (screen by default) and can be used in functions such as <fprintf>.DATAjSTF <register>,<address> This is equivalent to <STR>, but for floating point registers and values.DATAMSTR <register>,<address> This sets the given address (usually a label) to contain the contents of the given register. The contents are a word, unless STRB is used in which case only a byte is stored. #fCode MOV R0,#10 STR R0,label ... .label <DCD> 0 #f The contents at 'label' will now be 10.DATA�strcat Syntax: char *strcat (char *str1, char *str2); Header: <string.h=>string> Returns: str1 This function appends {/}str2{/} to the end of {/}str1{/}, overwriting the null byte at the end of {/}str1{/}. The two strings should not overlap.DATA+strcatcr Syntax: char *strcatcr (char *s1, char *s2); Header: <DeskLib:Str.h=>Str_DL> Returns: s1 This function appends {/}s2{/} to the end of {/}s1{/}, overwriting the terminator at the end of {/}s1{/}. The two strings should not overlap, and the resulting string will be null-terminated.DATA!strchr Syntax: char *strchr (char *str, int c); Header: <string.h=>string> Returns: Pointer to the found character, or a null pointer if not found. This function searches for /c/ (converted to an {/}unsigned char{/}) in the string pointed to by /str/ (including null terminator).DATAQstrcmp Syntax: int strcmp (char *str1, char *str2); Header: <string.h=>string> Returns: Greater than, less than or equal to zero, depending if the string pointed to by {/}str1{/} is greater than, less than or equal to the string pointed to by {/}str2{/}. This functions compares the two strings and returns a value accordingly.DATAstrcmpcr Syntax: int strcmpcr (char *s1, char *s2); Header: <DeskLib:Str.h=>Str_DL> Returns: 0 if the strings match -1 if s1\<s2 (alphabetically) +1 if s1>s2 (alphabetically) This function compares the two strings and returns a value accordingly.DATA�strcoll Syntax: int strcoll (char *str1, char *str2); Header: <string.h=>string> Returns: Greater than, less than or equal to zero, depending if the string pointed to by {/}str1{/} is greater than, less than or equal to the string pointed to by {/}str2{/}. This function interprets the two strings according to the <LC_COLLATE> category of the current locale and then compares them.DATA�strcpy Syntax: char *strcpy (char *str1, char *str2); Header: <string.h=>string> Returns: str1 This function copies the whole of the string in {/}str2{/} to {/}str1{/} (including the null terminator).DATAstrcpycr Syntax: char *strcpycr (char *s1, char *s2); Header: <DeskLib:Str.h=>Str_DL> Returns: s1 This function copies the whole of the string in {/}s2{/} to {/}s1{/}. The terminator of {/}s1{/} will be null, regardless of the the {/}s2{/} terminator.DATA�strcspn Syntax: <size_t> strcspn (char *str1, char *str2); Header: <string.h=>string> Returns: The number of characters. This function finds the number of characters at the start of {/}str1{/} which are not present in {/}str2{/}.DATAstrdup Syntax: char *strdup (char *str); Header: <DeskLib:Str.h=>Str_DL> Returns: Address of new string. This function allocates memory and copies the string pointed to by /str/ into that memory. It then returns a pointer to it, or <NULL> if memory could not be allocated.DIR$,,$� F����*�"�!RootDATA�Stream I/O Functions #Parent stdio These functions read and write any number of data items of any size, into an array. #Table 1 18 <fread> <fwrite> #EndTableDATA�strerror Syntax: char *strerror (int err); Header: <string.h=>string> Returns: Pointer to the error message. This function converts the error number in /err/ into an error message string. *Do not alter the returned string*.DATAlstrftime Syntax: <size_t> strftime (char *s, size_t len, char *format, <struct�tm> *tptr); Header: <time.h=>time> Returns: The number of characters written. This function writes the time pointed to by /tptr/ to the character array pointed to by /s/ under control of the <format string=>tform_>. No more than len characters will be written to the string.DATA�stricmp Syntax: int stricmp (char *str1, char *str2); Header: <TimsLib:Lib.h=>Lib> <DeskLib:Str.h=>Str_DL> Returns: Greater than, less than or equal to zero, depending if the string pointed to by str1 is greater than, less than or equal to the string pointed to by str2. This functions compares the two strings and returns a value accordingly. It is not case senstive, unlike <strcmp>.DATA]stricmpcr Syntax: int stricmpcr (char *str1, char *str2); Header: <DeskLib:Str.h=>Str_DL> Returns: Greater than, less than or equal to zero, depending if the string pointed to by str1 is greater than, less than or equal to the string pointed to by str2. This function is equivalent to <stricmp>, but works with any control code terminator.DATA�string.h The \<string.h\> header declares quite a few functions mainly to do with strings (no surprise there!). It also declares one type and defines a macro. Functions: #Indent 5 #Table 3 23 <Copying=>str_copy_> <Appending=>str_cat_> <Comparison=>str_cmp_> <Searching=>str_find_> <Miscellaneous=>str_misc_> #EndTable #Indent 0 Macro: Type: <NULL> <size_t>DATA�DeskLib:StringCR.h Version: 1.13 (30 May 1993) #line This header is obsolete. It now simply <#include=>include>s <DeskLib:Str.h=>Str_DL>.DATA�strlen Syntax: <size_t> strlen (char *str); Header: <string.h=>string> Returns: Length of the string. This function works out the length of the string pointed to by /str/ (ie the number of characters before the null terminator).DATA�strlencr Syntax: int strlencr (char *s); Header: <DeskLib:Str.h=>Str_DL> Returns: Length of the string. This function works out the length of the string pointed to by /s/ (ie the number of characters before the terminator).DATAstrncat Syntax: char *strncat (char *str1, char *str2, <size_t> n); Header: <string.h=>string> Returns: str1 This function appends up to /n/ characters of {/}str2{/} to the end of {/}str1{/}. Characters after a null byte are not added. The strings should not overlap.DATA�strncmp Syntax: int strncmp (char *str1, char *str2, <size_t> n); Header: <string.h=>string> Returns: Greater than, less than or equal to zero, depending if the string pointed to by {/}str1{/} is greater than, less than or equal to the string pointed to by {/}str2{/}. This function compares up to /n/ characters and returns a value as appropriate. Characters after a null byte are not compared.DATA=strncpy Syntax: char *strncpy (char *str1, char *str2, <size_t> n); Header: <string.h=>string> Returns: str1 This function copies up to /n/ characters from {/}str2{/} to {/}str1{/}. If a null character is reached, the remaining characters are filled with nulls. {/}str1{/} and {/}str2{/} should not overlap.DATA<strncpycr Syntax: char *strncpycr (char *s1, char *s2, <size_t> n); Header: <DeskLib:Str.h=>Str_DL> Returns: s1 This function copies up to n characters from {/}s2{/} to {/}s1{/}. If a terminator character is reached, the remaining characters are filled with nulls. {/}s1{/} and {/}s2{/} should not overlap.DATA�strnicmp Syntax: int strnicmp (char *str1, char *str2, <size_t> n); Header: <TimsLib:Lib.h=>Lib> <DeskLib:Str.h=>Str_DL> Returns: Greater than, less than or equal to zero, depending if the string pointed to by str1 is greater than, less than or equal to the string pointed to by str2. This functions compares up to /n/ characters and returns a value accordingly. It is not case senstive, unlike <strncmp>.DATAlstrnicmpcr Syntax: int strnicmpcr (char *str1, char *str2, <size_t> n); Header: <DeskLib:Str.h=>Str_DL> Returns: Greater than, less than or equal to zero, depending if the string pointed to by str1 is greater than, less than or equal to the string pointed to by str2. This function is equivalent to <strnicmp>, but works with any control code terminator.DATA�strpbrk Syntax: char *strpbrk (char *str1, char *str2); Header: <string.h=>string> Returns: Pointer to the found character, or null pointer if none found. This function finds the first character in {/}str1{/} which is also present in {/}str2{/}.DATA,strrchr Syntax: char *strrchr (char *str, int c); Header: <string.h=>string> Returns: Pointer the found character, or a null pointer if not found. This function searches for the last occurence of /c/ (converted to a {/}char{/}) in the string pointed to by /str/ (including null terminator).DATA\StrSave Syntax: char *StrSave (char *src, int length); Header: <TimsLib:Lib.h=>Lib> Returns: Pointer to the new copy of the string. This function copies a string /str/, allocating space for the destination. If /length/ > 0 then /length/ bytes will be allocated, else if /length/ = 0 just enough space to hold the string will be allocated.DATA�StrSaveDbug Syntax: char *StrSaveDbug (char *src, int length, char *file, int line); Header: <TimsLib:Lib.h=>Lib> Returns: Pointer to the new copy of the string. This function is identical to <StrSave>, but adds source file and line information. It is intended to be used with the macro /strsavedbug/, which is called by StrSave if <EnableDbug> is <#include=>include>d. Basically, this is never called - always call StrSave.DATAstrspn Syntax: <size_t> strspn (char *str1, char *str2); Header: <string.h=>string> Returns: The number of characters. This function finds the number of characters at the start of {/}str1{/} which are also present in {/}str2{/}. See also <strcspn>.DATAJstrstr Syntax: char *strstr (char *str1, char *str2); Header: <string.h=>string> Returns: Pointer to the found string, or a null pointer if not found. This function searches for the string pointed to by {/}str2{/} in the string pointed to by {/}str1{/}. If {/}str2{/} is an empty string, the function returns {/}str1{/}.DATA�strtod Syntax: double strtod (char *str, char **end); Header: <stdlib.h=>stdlib> Returns: The converted value. This function converts the string pointed to by /str/ to a /double/. It does this by splitting the string into three bits - white space at the start, then the number, then the rest of the string which is unrecognised. The middle bit is converted to a /double/ and returned, and a pointer to the last bit is returned in the {/}char�*{/} pointed to by /end/. If the string could not be converted, zero is returned. If it could but was too big to be returned, +/- <HUGE_VAL> is returned and <ERANGE> is stored in <errno>. If it is too small to return, zero is returned and ERANGE is stored in errno.DATAdstrtok Syntax: char *strtok (char *str1, char *str2); Header: <string.h=>string> Returns: Pointer to the token, or a null pointer if none found. This is a useful function! The first time you call it, you pass it a string in {/}str1{/} and a separator in {/}str2{/}. Subsequent calls do not need to pass {/}str1{/}, it is remembered. The function searches the string in {/}str1{/} for a character which is contained in {/}str2{/}. It then stores a null byte here and returns a pointer to the start of {/}str1{/} so the returned string is everything up to this point. For subsequent calls, the searching starts after the null byte placed last time. Example: #Tab strtok("ADFS::Bob.$.Maelstrom",":") = "ADFS" strtok(<NULL>,".") = ":Bob" strtok(NULL," ") = "$.Maelstrom" This makes it very easy to extract filing systems, drives and pathnames, doesn't it?!DATA(strtol Syntax: long int strtol (char *str, char **end, int base); Header: <stdlib.h=>stdlib> Returns: The converted value. This function converts the string pointed to by /str/ to a /long int/. It does this by splitting the string into three bits - white space at the start, then the number in the given base (2- 36), then the rest of the string which is unrecognised. The middle bit is converted to a /long int/ and returned, and a pointer to the last bit is returned in the {/}char�*{/} pointed to by /end/. If the string could not be converted, zero is returned. If it could but was too big to be returned, <LONG_MAX> or <LONG_MIN> is returned, and <ERANGE> is stored in <errno>. For base 16, the string may have "0x" or "0X" preceding the number. The letters a-z (A-Z) are given values 10-35.DATA0strtoul Syntax: long int strtoul (char *str, char **end, int base); Header: <stdlib.h=>stdlib> Returns: The converted value. This function converts the string pointed to by /str/ to an /unsigned long int/. It does this by splitting the string into three bits - white space at the start, then the number in the given base (2-36), then the rest of the string which is unrecognised. The middle bit is converted to an /unsigned long int/ and returned, and a pointer to the last bit is returned in the {/}char�*{/} pointed to by /end/. If the string could not be converted, zero is returned. If it could but was too big to be returned, <ULONG_MAX> is returned, and <ERANGE> is stored in <errno>. For base 16, the string may have �0x� or �0X� preceding the number. The letters a-z (A-Z) are given values 10-35.DATA}struct This keyword defines a complex variable type called a structure. The definition has the general form: struct \<name> \{ \<variable1> \<variable2> ... \<variableN> } \<vars>; \<name> is a name for structure. It can be used to declare further structures of the same type without actually defining the \{} bit again. A structure contains one or more normal <variables=>c_var_> described in the normal way. \<vars> are the structures created in the way a list of variables follows the type in a normal variable declaration. Variables within the structure are accessed using the form: {/}structure.variable{/}. Structures may be nested to give {/}structure1.structure2.variable{/} etc. If you are given a pointer to a structure this form becomes clumsy ie {/}(*pointer).variable{/}. You can use {/}pointer->variable{/} instead.DATA�struct tm The type {/}struct tm{/} is defined in <time.h=>time_h> as a structure capable of holding any broken-down time. It is defined as follows: \{ int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; /* Day of the week */ int tm_yday; /* Day of the year */ int tm_isdst; /* DST indicator */ } The Daylight Saving Indicator is used to represent locale specific time changes eg British Summer Time.DATAstrxfrm Syntax: <size_t> strxfrm (char *str1, char *str2, size_t n); Header: <string.h=>string> Returns: Length of the transformed string, not including the null terminator. This functions converts the string pointed to by {/}str2{/} to the same form as <strcoll> does when comparing strings. Up to /n/ characters are transformed and placed in the string pointed to by {/}str1{/}. The upshot of all this is that if two strings are transformed using this and then compared, the result is the same as using <strcoll> on them directly.DIR$PP< F�����"�cat_� F�����"�cmp_� F���Ơ�"�copy_T F����u�%#DecodeHexx F������%CDL� F��� y�"�find_� F����g�%MakeASCIIZ� F����a�%�MakeCR� F����n�%MakeHex� F������"^misc_DATA�Appending Functions #Parent string These functions add one string to the end of another. #indent 6 #Table 1 15 <strcat> <strncat> #EndTableDATA�Comparison Functions #Parent string These functions compare the two strings by ASCII values and indicate the equality or inequality of the two strings. #Table 2 <memcmp> <strcmp> <strcoll> <strncmp> <strxfrm> #EndTableDATA�Copying Functions #Parent string These functions copy characters from one array to another. #Table 2 16 <memcpy> <memmove> <strcpy> <strncpy> #EndTableDATA#Str_DecodeHex Syntax: int Str_DecodeHex (char digit); Header: <DeskLib:Str.h=>Str_DL> Returns: Value of the hexadecimal character. This function takes a character /digit/ which is a hexadecimal digit (0-F). It returns the value of this (0-15). -1 is returned if /digit/ is invalid.DATACDeskLib:Str.h Version: 1.12 (17 May 1993) #line This header declares useful string functions. It is a replacement for <DeskLib:StringCR.h=>StringCR>, which is now obsolete. #indent 4 #Table columns 3 <strlencr> <strcmpcr> <stricmp> <stricmpcr> <strnicmp> <strnicmpcr> <strcatcr> <strcpycr> <strncpycr> <LeafName> <strdup> <Str_MakeCR> <Str_MakeASCIIZ> <Str_MakeHex> <Str_DecodeHex> #EndTable #indent The "cr" functions are identical to their ANSI equivalents, but accept any terminator \< 32, not just null terminators. The "i" functions are case insensitive functions.DATA�Searching Functions #Parent string The following functions search for either individual characters or strings within other strings. #indent 4 #Table 3 16 <memchr> <strchr> <strcspn> <strpbrk> <strrchr> <strspn> <strstr> <strtok> #EndTableDATAStr_MakeASCIIZ Syntax: void Str_MakeASCIIZ (char *s, int max_len); Header: <DeskLib:Str.h=>Str_DL> This function converts the carriage return-terminated string pointed to by /s/ into a zero-terminated string. <Str_MakeCR>() converts the other way.DATA�Str_MakeCR Syntax: void Str_MakeCR (char *s, int max_len); Header: <DeskLib:Str.h=>Str_DL> This function converts the zero-terminated string pointed to by /s/ into a carriage return-terminated string. <Str_MakeASCIIZ>() converts the other way.DATAStr_MakeHex Syntax: char Str_MakeHex (int n); Header: <DeskLib:Str.h=>Str_DL> Returns: Character representing 'n' in hex. This function takes a number /n/ in the range 0-15 and returns the appropriate hexadecimal digit (0-F). If /n/ is out of range, '?' is returned.DATA^Miscellaneous Functions #Parent string #Table 1 <memset> <strerror> <strlen> #EndTableDATAzDeskLib:SWI.h Version: 1.02 (30 May 1994) #line This header declares just one function: SWI. It also declares lots of <macros=>SWI_macros_>. #line Syntax: <os_error> *SWI (int numregsin, int numregsout, int n, ... ); Header: DeskLib:SWI.h Returns: Pointer to error, or <NULL> if none. This function calls a <SWI=>SWI:!Root>, whose number is given in /n/. The variable argument list (...) contains the register contents. First, /numregsin/ values to be placed into the registers before calling the SWI. Then, /numregsout/ pointers to variables used for holding the registers on exit from the SWI. A register can be ignored by using <NULL>. Examples: {wrap off} {fCode}SWI(0,0,0x406C0); /* Calls <Hourglass_On=>SWI:Hourglass_On> */{f} {fCode}SWI(2,4,0x32,x,y,NULL,NULL,&colour,&tint); /* Calls <OS_ReadPoint=>SWI:OS_ReadPoint> to read point (x,y), returns colour and tint */{f}DATAJswis.h #Parent ro_easyc_ The \<swis.h\> header defines 469 macros for calling SWI routines. The idea is that you use one of these as an argument for either the <_kernel_swi> or <os_swi> function. Each macro is the name of an SWI call and represents the SWI number. #Indent 9 #Table columns 3 <OS=>SWI:OS_> <IIC=>SWI:IIC_> <Font=>SWI:Font_> <Wimp=>SWI:Wimp_> <Sound=>SWI:Sound_> <ADFS=>SWI:ADFS_> <Podule=>SWI:Podule_> <Debugger=>SWI:Debugger_> <FPEmulator =>SWI:FPEmulator_> <FileCore=>SWI:FileCore_> <Shell=>SWI:Shell_> <Hourglass=>SWI:Hourglass_> <Draw=>SWI:Draw_> <ColourTrans=>SWI:ColourTrans_> <Super=>SWI:Super_> <FilerAction=>FilerAction_> <MessageTrans =>SWI:MessageTrans_> <PDumper=>SWI:PDumper_> <ResourceFS=>SWI:ResourceFS_> <DragASprite=>SWI:DragASprite_> <Filter=>SWI:Filter_> <TaskManager=>SWI:TaskManager_> <Squash=>SWI:Squash_> <DeviceFS=>SWI:DeviceFS_> <Buffer=>SWI:Buffer_> <BASICTrans=>SWI:BasicTrans_> <Parallel=>SWI:Parallel_> <Territory=>SWI:Territory_> <ScreenBlanker=>SWI:ScreenBlanker_> <TaskWindow=>SWI:TaskWindow_> <Free=>SWI:Free_> <DOSFS=>SWI:DOSFS_> #EndTableDIR$(( F���)BX&�TLDATA�TimsLib:SWIs.h This header is an alternative for Desktop C's <swis.h=>swis>, with the Wimp, Font and Hourglass SWIs removed for compatibility with DeskLib/TimsLib.DATAswitch This command allows you to select one action from several on the basis of a value. It is equivalent to BASIC's <CASE=>Basic:CASE>. The form is: #fCode switch (\<expression>) \{ case \<constant1>: \<statements1>; case \<constant2>: \<statements2>; ... default: \<statements> } #f For each constant, if it is the same as the value of the expression evaluated at the start, all statements from this point on are evaluated. So if \<expression> is equal to \<constant1> both \<statements1> and \<statements2> are executed (this makes the <break> command useful). The statements should, of course, be separated by semicolons, but several can appear without using braces \{}. The {/}default:{/} part is optional, and is executed if none of the constants match.DIR$,, F���o��%;"macros_DATA;"SWI Number Macros The following macros are all defined in <DeskLib:SWI.h=>SWI> to be the number of the SWI they are named after: #Table 118 36 SWI_OS_WriteC SWI_OS_WriteS SWI_OS_Write0 SWI_OS_NewLine SWI_OS_ReadC SWI_OS_CLI SWI_OS_Byte SWI_OS_Word SWI_OS_File SWI_OS_Args SWI_OS_BGet SWI_OS_BPut SWI_OS_GBPB SWI_OS_Find SWI_OS_ReadLine SWI_OS_Control SWI_OS_GetEnv SWI_OS_Exit SWI_OS_SetEnv SWI_OS_IntOn SWI_OS_IntOff SWI_OS_CallBack SWI_OS_EnterOS SWI_OS_BreakPt SWI_OS_BreakCtrl SWI_OS_UnusedSWI SWI_OS_UpdateMEMC SWI_OS_SetCallBack SWI_OS_Mouse SWI_OS_Heap SWI_OS_Module SWI_OS_Claim SWI_OS_Release SWI_OS_ReadUnsigned SWI_OS_GenerateEvent SWI_OS_ReadVarVal SWI_OS_SetVarVal SWI_OS_GSInit SWI_OS_GSRead SWI_OS_GSTrans SWI_OS_BinaryToDecimal SWI_OS_FSControl SWI_OS_ChangeDynamicArea SWI_OS_GenerateError SWI_OS_ReadEscapeState SWI_OS_EvaluateExpression SWI_OS_SpriteOp SWI_OS_ReadPalette SWI_OS_ServiceCall SWI_OS_ReadVduVariables SWI_OS_ReadPoint SWI_OS_UpCall SWI_OS_CallAVector SWI_OS_ReadModeVariable SWI_OS_RemoveCursors SWI_OS_RestoreCursors SWI_OS_SWINumberToString SWI_OS_SWINumberFromString SWI_OS_ValidateAddress SWI_OS_CallAfter SWI_OS_CallEvery SWI_OS_RemoveTickerEvent SWI_OS_InstallKeyHandler SWI_OS_CheckModeValid SWI_OS_ChangeEnvironment SWI_OS_ClaimScreenMemory SWI_OS_ReadMonotonicTime SWI_OS_SubstituteArgs SWI_OS_PrettyPrint SWI_OS_Plot SWI_OS_WriteN SWI_OS_AddToVector SWI_OS_WriteEnv SWI_OS_ReadArgs SWI_OS_ReadRAMFsLimits SWI_OS_ClaimDeviceVector SWI_OS_ReleaseDeviceVector SWI_OS_DelinkApplication SWI_OS_RelinkApplication SWI_OS_HeapSort SWI_OS_ExitAndDie SWI_OS_ReadMemMapInfo SWI_OS_ReadMemMapEntries SWI_OS_SetMemMapEntries SWI_OS_AddCallBack SWI_OS_ReadDefaultHandler SWI_OS_SetECFOrigin SWI_OS_SerialOp SWI_OS_ReadSysInfo SWI_OS_Confirm SWI_OS_ChangedBox SWI_OS_CRC SWI_OS_ReadDynamicArea SWI_OS_PrintChar SWI_OS_ConvertStandardDateAndTime SWI_OS_ConvertDateAndTime SWI_OS_ConvertHex1 SWI_OS_ConvertHex2 SWI_OS_ConvertHex4 SWI_OS_ConvertHex6 SWI_OS_ConvertHex8 SWI_OS_ConvertCardinal1 SWI_OS_ConvertCardinal2 SWI_OS_ConvertCardinal3 SWI_OS_ConvertCardinal4 SWI_OS_ConvertInteger1 SWI_OS_ConvertInteger2 SWI_OS_ConvertInteger3 SWI_OS_ConvertInteger4 SWI_OS_ConvertBinary1 SWI_OS_ConvertBinary2 SWI_OS_ConvertBinary3 SWI_OS_ConvertBinary4 SWI_OS_ConvertSpacedCardinal1 SWI_OS_ConvertSpacedCardinal2 SWI_OS_ConvertSpacedCardinal3 SWI_OS_ConvertSpacedCardinal4 SWI_OS_ConvertSpacedInteger1 SWI_OS_ConvertSpacedInteger2 SWI_OS_ConvertSpacedInteger3 SWI_OS_ConvertSpacedInteger4 SWI_OS_ConvertFixedNetStation SWI_OS_ConvertNetStation SWI_OS_ConvertFixedFileSize SWI_OS_ConvertFileSize SWI_IIC_Control SWI_Econet_CreateReceive SWI_Econet_ExamineReceive SWI_Econet_ReadReceive SWI_Econet_AbandonReceive SWI_Econet_WaitForReception SWI_Econet_EnumerateReceive SWI_Econet_StartTransmit SWI_Econet_PollTransmit SWI_Econet_AbandonTransmit SWI_Econet_DoTransmit SWI_Econet_ReadLocalStationAndNet SWI_Econet_ConvertStatusTOString SWI_Econet_ConvertStatusToError SWI_Econet_ReadProtection SWI_Econet_SetProtection SWI_Econet_ReadStationNumber SWI_Econet_PrintBanner SWI_Econet_ReleasePort SWI_Econet_AllocatePort SWI_Econet_DeAllocatePort SWI_Econet_ClaimPort SWI_Econet_StartImmediate SWI_Econet_DoImmediate SWI_NetFS_ReadFSNumber SWI_NetFS_SetFSNumber SWI_NetFS_ReadFSName SWI_NetFS_SetFSName SWI_NetFS_ReadCurrentContext SWI_NetFS_SetCurrentContext SWI_NetFS_ReadFSTimeouts SWI_NetFS_SetFSTimeouts SWI_NetFS_DoFSOp SWI_NetFS_EnumerateFSList SWI_NetFS_EnumerateFS SWI_NetFS_ConvertDate SWI_NetFS_DoFSOpToGivenFS SWI_Sound_Configure SWI_Sound_Enable SWI_Sound_Stereo SWI_Sound_Speaker SWI_Sound_Volume SWI_Sound_SoundLog SWI_Sound_LogScale SWI_Sound_InstallVoice SWI_Sound_RemoveVoice SWI_Sound_AttachVoice SWI_Sound_ControlPacked SWI_Sound_Tuning SWI_Sound_Pitch SWI_Sound_Control SWI_Sound_AttachNamedVoice SWI_Sound_ReadControlBlock SWI_Sound_WriteControlBlock SWI_Sound_QInit SWI_Sound_QSchedule SWI_Sound_QRemove SWI_Sound_QFree SWI_Sound_QSDispatch SWI_Sound_QTempo SWI_Sound_QBeat SWI_Sound_QInterface SWI_NetPrint_ReadPSNumber SWI_NetPrint_SetPSNumber SWI_NetPrint_ReadPSName SWI_NetPrint_SetPSName SWI_NetPrint_ReadPSTimeouts SWI_NetPrint_SetPSTimeouts SWI_ADFS_DiscOp SWI_ADFS_HDC SWI_ADFS_Drives SWI_ADFS_FreeSpace SWI_ADFS_Retries SWI_ADFS_DescribeDisc SWI_Podule_ReadID SWI_Podule_ReadHeader SWI_Podule_EnumerateChunks SWI_Podule_ReadChunk SWI_Podule_ReadBytes SWI_Podule_WriteBytes SWI_Podule_CallLoader SWI_Podule_RawRead SWI_Podule_RawWrite SWI_Podule_HardwareAddress SWI_WaveSynth_Load SWI_Debugger_Disassemble SWI_FPEmulator_Version SWI_FileCore_DiscOp SWI_FileCore_Create SWI_FileCore_Drives SWI_FileCore_FreeSpace SWI_FileCore_FloppyStructure SWI_FileCore_DescribeDisc SWI_Shell_Create SWI_Shell_Destroy SWI_Draw_ProcessPath SWI_Draw_ProcessPathFP SWI_Draw_Fill SWI_Draw_FillFP SWI_Draw_Stroke SWI_Draw_StrokeFP SWI_Draw_StrokePath SWI_Draw_StrokePathFP SWI_Draw_FlattenPath SWI_Draw_FlattenPathFP SWI_Draw_TransformPath SWI_Draw_TransformPathFP SWI_RamFS_DiscOp SWI_RamFS_Drives SWI_RamFS_FreeSpace SWI_RamFS_DescribeDisc #EndTable In addition, {*}XOS_Bit{*} is defined (OR this with the SWI number to set the X bit), and {*}SWI_OS_WriteI{*} is also defined.DATA�system Syntax: int system (char *str); Header: <stdlib.h=>stdlib> Returns: 0 for success, -2 for failure. This function passes the string given to the host environment to be executed. After execution the command returns success or failure; any other value is command specific. If /str/ is a null pointer then the function returns non-zero if this function can be used for executing commands (you should check this before doing so). On RISC OS this function passes the string given to the CLI to be executed as if it had been typed in as a �star command�. For instance, {fCode}system("Modules"){f} has the same effect as <*Modules>.DIR$�> F���<��"�tan�? F���UԽ"�tanh4@ F����/,task_�@ F���S�5&�Template�B F���J�/(template_L` F���x�5&�TextFileLa F����/�TextFile_�f F���~�/Htform_�j F�����/Ltf_q F���g5�"�time�q F����/�Time_� F����"tmpfile�� F���]L�"�tmpnam`� F���N�/(TMP_4� F����Y�"�tolower � F����`�"�toupper� F���"��$�trace�� F������$�tracefl� F�����/�trace_�� F���܆�$�TRUEx� F���}7�$�txt� F������$JtxteditL� F���L�/�txtedit_� F���M��$�txtopt�� F���X�/Ttxtopt_� F�����$�txtscrapй F�����/Ttxtscrap_�� F���]�$�txtwin�� F�����/�txtwin_� F���o�/�TXT_� F���0��$�typdat�� F���o��"�typedefDATA�tan Syntax: double tan (double x); Header: <math.h=>math> Returns: The tangent of x in radians. This function calculates the principal value of the tangent of x.DATA�tanh Syntax: double tanh (double x); Header: <math.h=>math> Returns: The hyperbolic tangent of x in radians. This function calculates the hyperbolic tangent of x.DIR$,,`@ F���w7&~handleDATA~task_handle This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding a task handle. It is defined as an /int/.DATA�DeskLib:Template.h Version: 1.05 (Dec 1994) #line This header declares functions for loading, cacheing and retriveing window templates. Functions: #indent 5 #Table columns 2 <Template_Initialise> <Template_Find> <Template_Clone> <Template_Free> <Template_Delete> <Template_ClearAll> <Template_LoadFile> <Template_UseOutlineFonts> <Template_UseSpriteArea> <Template_LinkSpriteArea> #EndTable #indent Macros: #indent 4 #Table columns 2 <template_TITLEMIN> <template_TITLEDEFAULT> #EndTableDIR$((�E F���d��$�!Root�F F�����H&block�G F�����"�Clear�H F�����4&\Clone0K F�����$�copy�K F�����4&MDeleteDM F���5g�$�Find�N F����n�$�find_�O F�����4&oFreeQ F����t�$�h�R F���jZ�$�init�S F����g4&�Initialise|T F����$�loadedHU F����5&pLoadFile�V F����_�$readfile�W F���ə�$HsyshandleY F������$�use_fancyfonts�Y F����C5&jUseOutlineFontsh[ F����4&TITLEDEFAULTp\ F�����4&TITLEMINt] F���y5&�ClearAll<^ F���n5&CUseSpriteArea�_ F�����5&�LinkSpriteAreaDATA�template This type is defined in <template.h=>template_h>. It is an element of a linked list. \{ template *next; char *workspace; int workspacesize; char *font; char name[12]; <wimp_wind> window; }DATAtemplate_block This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding data for use by <Wimp_LoadTemplate>. \{ <window_block> *buffer; char *workfree; char *workend; <font_array> *font; char *name; unsigned int index; }DATA�Template_Clear Syntax: void Template_ClearAll (void); Header: <DeskLib:Template.h=>Template> This function deletes all the templates from memory. It is equivalent to Template_Delete used on every template loaded.DATA\Template_Clone Syntax: <window_block> *Template_Clone (char *name, int maxtitlesize); Header: <DeskLib:Template.h=>Template> Returns: Pointer to window, or <NULL> if not found. This function makes a copy of the named template and returns a pointer to the copy. /maxtitlesize/ is the number of bytes that should ever be allocated for the title, since once the window is created it cannot be changed. The value 0 (or <template_TITLEDEFAULT>) will allocate 260 bytes, and -1 (<template_TITLEMIN>) will allocate whatever was set in the template file. This is the recommended value for most windows.DATA�template_copy Syntax: <template=>template_> *template_copy (template *from); Header: <template.h=>template_h> Returns: Pointer to copy. This function creates a copy of a template /from/.DATAMTemplate_Delete Syntax: void Template_Delete (char *name); Header: <DeskLib:Template.h=>Template> This function deletes the named template from those available and frees the memory used by it. If any windows are open using this template, you are in major trouble, matey boy! <Template_Clone>'d templates will be OK, though!.DATA�Template_Find Syntax: <window_block> *Template_Find (char *name); Header: <DeskLib:Template.h=>Template> Returns: Pointer to the window definition. See also the Desktop C function, <template_find=>template_find_>. This function tries to find the named template, and return a pointer to it. This is the original, so don't mess it up please! The template must have been loaded with <Template_LoadFile>.DATA�template_find Syntax: <template=>template_> *template_find (char *name); Header: <template.h=>template_h> Returns: Pointer to found template. This function tries to find the named template.DATAoTemplate_Free Syntax: void Template_Free (<window_block> **windowdef); Header: <DeskLib:Template.h=>Template> This function frees the memory used by a window definition created by <Template_Clone>. You must pass in a pointer to a {*}window_block *{*}. The memory will be freed (including indirected space), and the {*}window_block *{*} will be set to <NULL>.DATA�template.h This header declares functions used for loading/manipulating templates. The templates are assumed to be held in a file "Templates" in the application's directory. Functions: #Indent 5 #Table 4 21 <template_init> <template_readfile> <template_find=>template_find_> <template_loaded> <template_copy> <template_use_fancyfonts> <template_syshandle> #EndTable #Indent 0 Types: {align centre}<template=>template_>DATA�template_init Syntax: void template_init (void); Header: <template.h=>template_h> This function must be called before any operations which use templates (including dialogue boxes and everything).DATA�Template_Initialise Syntax: void Template_Initialise (void); Header: <DeskLib:Template.h=>Template> This function initialises the Template manager ready for use. It must be called before using any other Template functions.DATA�template_loaded Syntax: <BOOL> template_loaded (void); Header: <template.h=>template_h> Returns: <TRUE> if any templates are loaded. This function sees if there is anything in the template list.DATApTemplate_LoadFile Syntax: void Template_LoadFile (char *leaf); Header: <DeskLib:Template.h=>Template> Loads all templates in the given file. The file is found using the <resource_pathname>, and /leaf/ which contains the leafname. Loading more than one file adds the templates. If you want to use outline fonts, you must call <Template_UseOutlineFonts> first.DATAtemplate_readfile Syntax: <BOOL> template_readfile (char *name); Header: <template.h=>template_h> Returns: <FALSE> if no sprites are used. This function reads the template file whose leaf name is given in /name/. It calls <resspr_area> so you must have called <resspr_init>.DATAHtemplate_syshandle Syntax: <wimp_wind> *template_syshandle (char *name); Header: <template.h=>template_h> Returns: Pointer to underlying window. This function gets a pointer to the underlying window used to create a template. Any changes made to this structure will affect future windows generated using this template.DATA�template_use_fancyfonts Syntax: void template_use_fancyfonts (void); Header: <template.h=>template_h> This function must be called once before <template_init>, if you wish to use templates containing outline fonts.DATAjTemplate_UseOutlineFonts Syntax: void Template_UseOutlineFonts (void); Header: <DeskLib:Template.h=>Template> This function must be called before <Template_LoadFile> if you want to use outline fonts in windows. You shouldn't use outline fonts for general text icons because users with more recent versions of RISC OS will probably want to use their own.DATAtemplate_TITLEDEFAULT This macro is defined in <DeskLib:Template.h=>Template>. It is a value to be passed to functions which copy template definitions which tells them to reserve the default amount of space for the indirected title (currently 260 bytes).DATAtemplate_TITLEMIN This macro is defined in <DeskLib:Template.h=>Template>. It is a value to be passed to functions which copy template definitions which tells them to reserve the same space as specified in the template file for the indirected title.DATA�Template_ClearAll Syntax: void Template_ClearAll (void); Header: <DeskLib:Template.h=>Template> This function removes all template definitions from memory and releases all fonts used by them.DATACTemplate_UseSpriteArea Syntax: void Template_UseSpriteArea (<sprite_area> *area); Header: <DeskLib:Template.h=>Template> This function sets the sprite area which will be used by all future <Template_Find> or <Template_Clone>d templates. It should be set to <NULL> to use the Wimp sprite pool, which is the default.DATA�Template_LinkSpriteArea Syntax: void Template_LinkSpriteArea (char *name, <sprite_area> area); Header: <DeskLib:Template.h=>Template> This sets the window /name/ to use the sprite area /area/.DATA�DeskLib:TextFile.h Version: 1.00 (07 Apr 1992) #line This header declares several functions for handling textfiles. Functions: #table columns 2 <TextFile_GetToken> <TextFile_Lowercase> <TextFile_ReadToDelimeter> <TextFile_SkipBlanks> #endtableDIR$���a F����5&�GetTokenpc F�����5&�Lowercase4d F����P6&�SkipBlanks,e F���eF6&xReadToDelimeterDATA�TextFile_GetToken Syntax: void TextFile_GetToken (<FILE> *f, char delim, char *token, <BOOL> lower); Header: <DeskLib:TextFile.h=>TextFile> This function reads in a token from a file /f/. A token is defined as a sequence of up to 32 characters, terminated in a newline or /delim/. Leading blank space is skipped. If /lower/ is <TRUE> then the token is converted to lower case.DATA�TextFile_Lowercase Syntax: char TextFile_Lowercase (char x); Header: <DeskLib:TextFile.h=>TextFile> Returns: /x/ converted to lower case. This function is actually defined as a macro.DATA�TextFile_SkipBlanks Syntax: void TextFile_SkipBlanks (<FILE> *f); Header: <DeskLib:TextFile.h=>TextFile> This function reads characters from the given file until end of file, or until a non-blank character (ie not space or tab) is found.DATAxTextFile_ReadToDelimeter Syntax: void TextFile_ReadToDelimeter (<FILE> *f, char delim, char *line, int maxlen); Header: <DeskLib:TextFile.h=>TextFile> This function reads in characters from the file /f/ until the end of file or a character /delim/ is reached, or /maxlen/ characters have been read (including the null terminator). The characters are read into /line/.DIR$HH�f F���2�"�!Root�h F���j�6&�_DATA�strftime() Format String The format string is composed of a sequence of characters. All characters except '%' are copied directly to the output. '%' marks the beginning of conversion specification. If a literal percent is required, then �%%� should be used. A conversion specification results in part of the time being printed according to the specification. The structure of a conversion specification is a '%' followed by a <conversion character=>tf_conv_>.DATA�Time_ConvertDateAndTime() Format String The format string is composed of a sequence of characters. All characters except '%' are copied directly to the output. '%' marks the beginning of conversion specification. If a literal percent is required, then "%%" should be used. A conversion specification results in part of the time being printed according to the specification. The structure of a conversion specification is a '%' followed by a <conversion string=>tf_conv__>.DIR$LL�j F����#�"�conv_�n F�����6&kconv__DATA�Format String Conversion Character One of the following: a,A,w The weekday is output as an abbreviated name (a), full name (A), or decimal (w) with 0=Sunday, 6=Saturday. b,B,m The month is output as an abbreviated name (b), full name (B), or decimal (w) with 1=January, 12=December. c The date and time are output in local format. d The day of the month is output (01-31). H,I The hour is output in 24 (H) or 12 (I) hour format. j The day of the year is output (001-366). M The minute is output as a decimal (00-59). p The 12 hour status (ie AM or PM) is output. S The second is output as a decimal (00-61). U,W The week of the year is output as a decimal (00-53), counting Sunday (U) or Monday (W) as the first day of the week. x The date is output in local format. X The time is output in local format. y,Y The year is output as a decimal, without century (y) or with century (Y). Z The timezone name is output (or nothing if none).DATAkFormat String Conversion String One of the following: CS Centiseconds as a decimal (00-99) SE Seconds as a decimal (00-59) MI Minutes as a decimal (00-59) 12,24 Hours in 12 or 24 hour format AM,PM Outputs "am" or "pm" as appropriate WE,W3,WN Weekday as full name, 3 letter name or number DY Day of the month (01-31) ST "st", "nd", "rd" or "th" as appropriate MO,M3,MN Month as full name, 3 letter name or number CE Century number YR Year without century (00-99) WK Week number DN Day of the year 0 Null byte Conversion strings producing numbers may be prefixed with 'Z' to suppress leading zeroes.DATA�time Syntax: <time_t> time (time_t *timer); Header: <time.h=>time_h> Returns: The current calendar time. This function returns the current calendar time.DIR$���s F���J�6&�ConvertDateAndTimeLu F���:�6&CTIMEhv F����7&EUROTIMElw F���O�6&FANCYDATE�x F��� _�"�hz F����7&LONGTIME${ F���lw6&�Monotonic�| F���MX&�ReadMonotonic�} F���`7&SHORTTIME�~ F�����6&STANDARD� F���R�"t� F��� EX&YTLD� F�����6&�ConvertStandardDateAndTimeDATA�Time_ConvertDateAndTime Syntax: <os_error> *Time_ConvertDateAndTime (char *block, char *buffer, int len, char *format); Header: <DeskLib:Time.h=>DL_Time> Returns: Pointer to error, or <NULL> if none. This function writes the five-byte time (centiseconds since 1900) in /block/ to the character array pointed to by /buffer/ under control of the <format string=>tform__>. No more than /len/ characters will be written to the string.DATATime_CTIME This macro is defined in <DeskLib:Time.h=>DL_Time> for use with the <Time_ConvertDateAndTime> function. It produces times of the form: {fCode;align centre}Fri Jul 15 16:52:00 1994{f;align} It is defined as: {fCode;align centre}"%W3 %M3 %DY %z24:%MI:%SE %CE%YR"DATATime_EUROTIME This macro is defined in <DeskLib:Time.h=>DL_Time> for use with the <Time_ConvertDateAndTime> function. It produces times of the form: {fCode;align centre}16:52:00{f;align} It is defined as: {fCode;align centre}"z24:%MI:%SE"{f;align}DATATime_FANCYDATE This macro is defined in <DeskLib:Time.h=>DL_Time> for use with the <Time_ConvertDateAndTime> function. It produces times of the form: {fCode;align centre}Friday, 16th of July, 1994{f;align} It is defined as: {fCode;align centre}"%WE, %zDY%ST of %MO, %CE%YR"DATA�time.h The \<time.h> header declares a number of functions relating to reading the system date and time. It also defines one macro and three types. Functions: #Indent 4 #Table columns 5 <asctime> <clock> <ctime> <difftime> <gmtime> <localtime> <mktime> <strftime> <time> #EndTable #indent 0 Macro: <CLOCKS_PER_SEC> Types: #Indent 4 #Table 1 15 <clock_t> <time_t> <struct�tm> #EndTableDATATime_LONGTIME This macro is defined in <DeskLib:Time.h=>DL_Time> for use with the <Time_ConvertDateAndTime> function. It produces times of the form: {fCode;align centre}4:52:00pm{f;align} It is defined as: {fCode;align centre}"%z12:%MI:%SE%pm"{f;align}DATA�Time_Monotonic Syntax: int Time_Monotonic (void); Header: <DeskLib:Time.h=>DL_Time> Returns: Time since power-on, in centiseconds. This function returns an integer representing the time since the computer was switched on, in centiseconds. This is equivalent to <TIME=>Basic:TIME> in Basic, or the SWI <OS_ReadMonotonicTime=>SWI:OS_ReadMonotonicTime>. The time wraps around about every 16 months, so this should not be a problem!DATA�Time_ReadMonotonic Syntax: Time_ReadMonotonic (unsigned *time); Header: <TimsLib:Time.h=>Time_TL> This function-like macro calls the SWI <OS_ReadMonotonicTime=>SWI:OS_ReadMonotonicTime> and returns the time in {/}*time{/}.DATATime_SHORTTIME This macro is defined in <DeskLib:Time.h=>DL_Time> for use with the <Time_ConvertDateAndTime> function. It produces times of the form: {fCode;align centre}4:52pm{f;align} It is defined as: {fCode;align centre}"%z12:%MI%pm"{f;align}DATATime_STANDARD This macro is defined in <DeskLib:Time.h=>DL_Time> for use with the <Time_ConvertDateAndTime> function. It produces times of the form: {fCode;align centre}16:52:00 15-Jul-1994{f;align} It is defined as: {fCode;align centre}"%24:%mi:%se %dy-%m3-%ce%yr"DATAtime_t The type {/}time_t{/} is defined in <time.h=>time_h> as an object capable of holding any given calendar time value. The calendar time value is in fact the number of Unix seconds since 1/1/1970. In Easy C and Desktop C it is defined as an /unsigned int/.DATAYTimsLib:Time.h This header defines one function-like macro, <Time_ReadMonotonic>.DATA�Time_ConvertStandardDateAndTime Syntax: <os_error> *Time_ConvertStandardDateAndTime (char *block, char *buffer, int len); Header: <DeskLib:Time.h=>DL_Time> Returns: Pointer to error, or <NULL> if none. This function writes the five-byte time (centiseconds since 1900) in /block/ to the character array pointed to by /buffer/ using the <format string=>Tform__> stored in Sys$DateFormat. No more than /len/ characters will be written to the string.DATAtmpfile Syntax: <FILE> *tmpfile (void); Header: <stdio.h=>stdio> Returns: Pointer to the file stream. This function creates a temporary file which will be automatically deleted on closure or when the program finishes normally (but not necessarily upon abnormal termination). It is opened with <�wb+� mode=>file_mode_>. If the file cannot be created then <NULL> is returned.DATA�tmpnam Syntax: char *tmpnam (char *name); Header: <stdio.h=>stdio> Returns: Pointer to filename. The function generates a original (ie not used for an exisiting file) filename. It will generate up to <TMP_MAX> unique names. If /name/ points to an array then the name is copied into this array (which should have length of at least <L_tmpnam>). If /name/ is a null pointer then tmpnam creates its own array, but subsequent calls may overwrite the name.DIR$((�� F����_�"�MAXDATA�TMP_MAX #Parent stdio The macro TMP_MAX is defined in <stdio.h=>stdio> as the minimum number of unique filenames which can be generated by the function <tmpnam>.DATA�tolower #Parent ctype Syntax: int tolower (int c); Header: <ctype.h=>ctype> Returns: c, converted to lower case. If c is upper case, this function returns the lower case equivalent, else the character is returned unchanged.DATA�toupper #Parent ctype Syntax: int toupper (int c); Header: <ctype.h=>ctype> Returns: c, converted to upper case. If c is lower case, this function returns the upper case equivalent, else the character is returned unchanged.DATA�trace.h This header declares functions for tracing/debugging programs. Functions: #Indent 9 #Table lines 1 <tracef> <trace_is_on> <trace_on > <trace_off> #EndTable #Indent 0 You must #define TRACE 1 in order to use these functions. All calls to *tracef* should be surrounded with: {fCode} \#if TRACE ... ... \#endif{f} to ensure that tracing is not compiled in to the final version (wasting time and memory).DATA�tracef Syntax: void tracef (char *format, ...); Header: <trace.h=>trace> This function outputs tracing info according to the <printf>-style <format string=>pform_>.DIR$��� F�����$vis_ond� F����$]offČ F���e�$Zon � F����UX&�TLDATAvtrace_is_on Syntax: int trace_is_on (void); Header: <trace.h=>trace> Returns: <TRUE> if tracing is turned on.DATA]trace_off Syntax: void trace_off (void); Header: <trace.h=>trace> Turns tracing off.DATAZtrace_on Syntax: void trace_on (void); Header: <trace.h=>trace> Turns tracing on.DATA�TimsLib:Trace.h This header declares just one function, Trace. In addition it defines macros for each of the Stream SWIs. Syntax: void Trace (char *report, ...); This function takes a printf-style <format string=>pform_> and prints it using the VDUStream module. The VDUStream module is at present only available if you have the ArtWorks Software Developer's Kit. Very useful I'm sure...DATA�TRUE The macro TRUE is defined in <DeskLib:Core.h=>Core>, <TimsLib:Core.h=>Core_TL> and <os.h=>os> (Desktop C) as a value representing the logical state of True. It is actually defined as 1.DATA�txt The type 'txt' is defined in <txt.h=>txt_h> as an abstract handle on a text object. It is actually a pointer to a structure.DATAJtxtedit.h This header file is a partner for <txt.h=>txt_h>, providing text editing facilities. It provides you with most of the features of RISC OS 2 !Edit. Functions: #indent 2 #Table 9 20 <txtedit_init> <txtedit_install> <txtedit_new> <txtedit_dispose> <txtedit_mayquit> <txtedit_prequit> <txtedit_menu> <txtedit_menuevent> <txtedit_doimport> <txtedit_doinsertfile> <txtedit_register_update_handler> <txtedit_register_save_handler> <txtedit_register_close_handler> <txtedit_register_shutdown_handler> <txtedit_register_undofail_handler> <txtedit_register_open_handler> <txtedit_getstates> #EndTable #indent Types: #indent 4 #Table 4 25 <txtedit_seltype> <txtedit_state> <txtedit_update_handler> <txtedit_close_handler> <txtedit_save_handler> <txtedit_shutdown_handler> <txtedit_undofail_handler> <txtedit_open_handler> #EndTableDIR$��(� F������$Hclose_handlerp� F������$�dispose$� F���K��$doimportD� F�����$Udoinsertfile�� F����F�$!getstates�� F���Ǭ�$�initt� F�����$�installh� F������$2mayquit�� F��� ��$�menu�� F�����$�menueventx� F���û�$�new,� F���G��$Aopen_handlerp� F���C��$prequit�� F����"�$Cregister_close_handlerЦ F����>�$Fregister_open_handler� F����$Hregister_save_handler`� F������$�save_handler� F���FN�$�seltype�� F�����$�shutdown_handler�� F����i�$�state�� F������$Eundofail_handler� F����y�$�update_handlerp� F���A�$fregister_update_handlerز F����+�$xregister_shutdown_handlerP� F����2�$�register_undofail_handlerDATAHtxtedit_close_handler This type is defined in <txtedit.h=>txtedit>. It is a function of the form: {fCode;align centre}void myfunc (char *filename, <txtedit_state> *s, void *handle);{f;align} /handle/ is the value passed when registering the function. /filename/ is the window title filename, and /s/ is the text state.DATA�txtedit_dispose Syntax: void txtedit_dispose (<txtedit_state> *s); Header: <txtedit.h=>txtedit> This function destroys the text whose state is given, no questions asked.DATAtxtedit_doimport Syntax: <BOOL> txtedit_doimport (<txtedit_state> *s, int filetype, int estsize); Header: <txtedit.h=>txtedit> Returns: <TRUE> if successful. This function imports data into the specified txtedit object, from a file whose type and estimated size are as given.DATAUtxtedit_doinsertfile Syntax: void txtedit_doinsertfile (<txtedit_state> *s, char *filename, <BOOL> newtitle); Header: <txtedit.h=>txtedit> This function inserts the named file into the text object whose state is pointed to by /s/. If /newtitle/ is <TRUE> then the text object will now be known by the file name of the inserted file.DATA!txtedit_getstates Syntax: <txtedit_state> *txtedit_getstates (void); Header: <txtedit.h=>txtedit> Returns: Pointer to start of list. This function gets a pointer to the start of the list of editable texts. Each entry can be found as {/}s->next{/} where /s/ is the previous entry.DATA�txtedit_init Syntax: void txtedit_init (void); Header: <txtedit.h=>txtedit> This function initialises the txtedit module. It must be called before other txtedit functions.DATA�txtedit_install Syntax: <txtedit_state> *txtedit_install (<txt> t); Header: <txtedit.h=>txtedit> Returns: Pointer to the state. This installs an event handler for /txt t/, making it editable. /t/ must have been created with <txt_new>.DATA2txtedit_mayquit Syntax: <BOOL> txtedit_mayquit (void); Header: <txtedit.h=>txtedit> Returns: <TRUE> if we may safely quit. This function checks to see if we can safely quit editing. If a text is being edited, a dialogue box is displayed using <dboxquery>, so the template "query" must be loaded.DATA�txtedit_menu Syntax: <menu> txtedit_menu (<txtedit_state> *s); Header: <txtedit.h=>txtedit> Returns: Pointer to menu structure. This function creates a menu for the text whose state is given. The menu is the same as that for RISC OS 2 !Edit.DATA�txtedit_menuevent Syntax: void txtedit_menuevent (<txtedit_state> *s, char *hit); Header: <txtedit.h=>txtedit> This function processes a menu hit for a given text. It should be called from your menu event handler.DATA�txtedit_new Syntax: <txtedit_state> *txtedit_new (char *name); Header: <txtedit.h=>txtedit> Returns: Pointer to the state. This function creates a new text object, loads the file whose name is given into it, and makes it editable. If the file cannot be loaded, it return 0 and no text is created. If /name/ is a null pointer then a empty text is created. If the file is already being edited, the existing state is returned.DATAAtxtedit_open_handler This type is defined in <txtedit.h=>txtedit>. It is a function of the form: {fCode;align centre}void myfunc (char *filename, <txtedit_state> *s, void *handle);{f;align} /handle/ is the value passed when registering the function. /filename/ is the filename of the text, and /s/ is its state.DATAtxtedit_prequit Syntax: void txtedit_prequit (void); Header: <txtedit.h=>txtedit> This function is intended to deal with a <Message_PreQuit=>SWI:Wimp_um8>. It calls <txtedit_mayquit>, and if we may then it disposes of all texts and tells the Task Manager we're clear to go.DATACtxtedit_register_close_handler Syntax: <txtedit_close_handler> txtedit_register_close_handler (txtedit_close_handler h, void *handle); Header: <txtedit.h=>txtedit> Returns: The old handler. This function registers a handler to be called whenever a text window is closed. If {/}h==0{/} then the handler is removed.DATAFtxtedit_register_open_handler Syntax: <txtedit_open_handler> txtedit_register_open_handler (txtedit_open_handler h, void *handle); Header: <txtedit.h=>txtedit> Returns: The old handler. This function registers a handler to be called whenever a new editable text is created. If {/}h==0{/} then the handler is removed.DATAHtxtedit_register_save_handler Syntax: <txtedit_save_handler> txtedit_register_save_handler (txtedit_save_handler h, void *handle); Header: <txtedit.h=>txtedit> Returns: The old handler. This function registers a handler to be called whenever a text window is saved to a file. If {/}h==0{/} then the handler is removed.DATA�txtedit_save_handler This type is defined in <txtedit.h=>txtedit>. It is a function of the form: {fCode;align centre}<BOOL> myfunc (char *filename, <txtedit_state> *s, void *handle);{f;align} /handle/ is the value passed when registering the function. /filename/ is the window title filename, and /s/ is the text state. This function should return <FALSE> to abort the save operation.DATA�txtedit_seltype This type is defined in <txtedit.h=>txtedit>. It is defined as the following enumerated type: \{ txtedit_CHARSEL = 1, txtedit_WORDSEL = 2, txtedit_LINESEL = 4 }DATA�txtedit_shutdown_handler This type is defined in <txtedit.h=>txtedit>. It is a function of the form: {wrap off} {fCode;align centre}void myfunc (void *handle);{f;align} {wrap} /handle/ is the value passed when registering the function.DATA�txtedit_state This type is defined in <txtedit.h=>txtedit> as a type holding information about an editable text. It is defined as the following structure: \{ <txt> t; <txt_marker> selpivot; <txtedit_seltype> seltype; int selectrecent; int selectctl; char filename[256]; <typdat> ty; int deletepending; <txtedit_state> *next; <BOOL> overwrite; BOOL wordtab; BOOL wordwrap; } The fields are pretty self-explanatory, I think.DATAEtxtedit_undofail_handler This type is defined in <txtedit.h=>txtedit>. It is a function of the form: {fCode;align centre}void myfunc (char *filename, <txtedit_state> *s, void *handle);{f;align} /handle/ is the value passed when registering the function. /filename/ is the filename of the text, and /s/ is its state.DATA�txtedit_update_handler This type is defined in <txtedit.h=>txtedit>. It is a function of the form: {fCode;align centre}<BOOL> myfunc (char *filename, <txtedit_state> *s,void *handle);{f;align} /handle/ is the value passed when registering the function. /filename/ is the window title filename, and /s/ is the text state. The function should return <FALSE> to undo the last modification.DATAftxtedit_register_update_handler Syntax: <txtedit_update_handler> txtedit_register_update_handler (txtedit_update_handler h, void *handle); Header: <txtedit.h=>txtedit> Returns: The old handler. This function registers a handler to be called whenever a text window is modified ie whenever the title changes. If {/}h=0{/} then the handler is removed.DATAxtxtedit_register_shutdown_handler Syntax: <txtedit_shutdown_handler> txtedit_register_shutdown_handler (txtedit_shutdown_handler h, void *handle); Header: <txtedit.h=>txtedit> Returns: The old handler. This function registers a handler to be called whenever <txtedit_prequit> is called and a shutdown is allowed to proceed. If {/}h==0{/} then the handler is removed.DATA�txtedit_register_undofail_handler Syntax: <txtedit_undofail_handler> txtedit_register_undofail_handler (txtedit_undofail_handler h, void *handle); Header: <txtedit.h=>txtedit> Returns: The old handler. This function registers a handler to be called whenever the modification made to an edited file cannot be undone (in conjunction with an update handler). If {/}h==0{/} then the handler is removed.DATA�txtopt.h This header declares two functions dealing with text editing options. Functions: {align centre} <txtopt_set_name> <txtopt_get_name>DIR$TTԶ F������$<get_name� F���O��$set_nameDATA<txtopt_get_name Syntax: char *txtopt_get_name (void); Header: <txtopt.h=>txtopt> Returns: Pointer to the name. This function gets the first part of the name used as a system variable for setting text editing options (the last part being "$Options"). It defaults to "Edit" ie the variable is "Edit$Options".DATAtxtopt_set_name Syntax: void txtopt_set_name (char *name); Header: <txtopt.h=>txtopt> This function sets the first part of the name used as a system variable for setting text editing options (the last part being "$Options"). It defaults to "Edit$Options".DATA�txtscrap.h This header declares functions to coordinate a unique txt selection among mant txt objects. Functions: {align centre} <txtscrap_setselect> <txtscrap_selectowner>DIR$TT$� F�����$�selectowner� F�����$�setselectDATA�txtscrap_selectowner Syntax: <txt> txtscrap_selectowner (void); Header: <txtscrap.h=>txtscrap> Returns: Handle of the txt holding selection. This function returns the current holder of the selection, or 0 if none.DATA�txtscrap_setselect Syntax: void txtscrap_setselect (<txt> t, <txt_index> from, txt_index to); Header: <txtscrap.h=>txtscrap> This function calls {fCode}<txt_setselect>(t,from,to){f} and remembers /t/. If another txt object currently holds the selection then this is first cleared. If /from/ >= /to/ then the selection will be unset and /t/ will not be remembered. A txt must be not destroyed while still holding the selection.DATA�txtwin.h This header declares functions for multiple windows containing the same text object. Functions: #table columns 2 <txtwin_new> <txtwin_number> <txtwin_dispose> <txtwin_setcurrentwindow> #endtableDIR$��$� F���~*�$�dispose� F���x�$new� F����$�$�number�� F����/�$YsetcurrentwindowDATA�txtwin_dispose Syntax: void txtwin_dispose (<txt> t); Header: <txtwin.h=>txtwin> This function removes a window on the text /t/. It has no effect if only one window is left on /t/.DATAtxtwin_new Syntax: void txtwin_new (<txt> t); Header: <txtwin.h=>txtwin> This function creates an extra window on a given text object. The created window will be in the same style as for <txt_new>, with the same title information. The window will be made visible.DATA�txtwin_number Syntax: int txtwin_number (<txt> t); Header: <txtwin.h=>txtwin> Returns: Number of windows. This function informs you of the number of window currently on a given text /t/.DATAYtxtwin_setcurrentwindow Syntax: void txtwin_setcurrentwindow (<txt> t); Header: <txtwin.h=>txtwin> This function ensures that the last window to which the last event was delivered is the current window on the given text. This should be called when making menus, since the same menu structure is attached to all windows on the same text.DIR$���� F�����U&�AND_SPRX� F����+�$�arrayseg�� F���#�$�bufsize�� F���w��$�charat�� F������$�charatdotp� F����A�$charoption�� F����,�$�charoptions� F�����$@charsatdotX� F�����$�delete�� F���y�$�dispose�� F���p��$�disposemarkerx� F���nj�$�dotp� F����u�$�event_procD� F���-Y�$Ieventcode�� F�����$qeventhandler� F�����$�get�� F������$-h(� F�����$~hide�� F���QI�$�index,� F���g��$�indexofmarker� F���� �"�init�� F���yx�$�insertchar0� F����{�$�insertstring�� F����H�$xlastrefH� F����P�$�marker�� F����f�$�mouseeventflag|� F���(u�$�movedotl� F������$�movedottomarker� F������$�movehorizontal�� F���!�"movemarker�� F������$)movevertical� F����$vnew�� F������$�newmarkerd� F���"�U&�ONLY� F���-��$�queue�� F�����$@readeventhandler$� F������$�replaceatend� F������$replacechars4� F���P��$�selectend� F�����$�selectset�� F���%��$�selectstart�� F���[)�$.setbufsize�� F���b9�$�setcharoptions�� F���Mf�$�setdisplayok�� F����!�"setdot�� F���]\�$�setlastref�� F���:��$setselect�� F�����$�settitle�� F�����$�showH� F����p�$sizeH� F���&3�$�syshandle� F�����$�unget� F�����$*visiblecolcount� F������$visiblelinecountDATA�TXT_AND_SPR This macro is defined in <TimsLib:Icon.h=>Icon_TL>. It is the value the returned by <ICON_TYPE> when the icon in question is a 'text and sprite' icon. It is defined as 3.DATA�txt_arrayseg Syntax: void txt_arrayseg (<txt> t, <txt_index> at, char **a, int *n); Header: <txt.h=>txt_h> This function gives a direct pointer into the memory used to hold the characters in a text. /at/ is the index into the text, {/}*a{/} will point at the character whose index in the text is /at/, and {/}*n{/} will contain the number of contiguous bytes after /at/. You may alter the text...DATA�txt_bufsize Syntax: int txt_bufsize (<txt> t); Header: <txt.h=>txt_h> Returns: Size of the buffer. This function informs you how many characters can be stored in the buffer, before more memory needs to be requested from the OS.DATA�txt_charat Syntax: char txt_charat (<txt> t, <txt_index> i); Header: <txt.h=>txt_h> Returns: The character. This function reads the character at the given index in the array. It returns 0 if the index is at/beyond the end.DATA�txt_charatdot Syntax: char txt_charatdot (<txt> t); Header: <txt.h=>txt_h> Returns: The character at "dot". This function reads the character at the "dot".DATAtxt_charoption This type is defined in <txt.h=>txt_h>. It is the following enumerated type: {wrap off} \{ txt_DISPLAY = 1, /* display changes as made */ txt_CARET = 2, /* display current textpos */ txt_UPDATED = 4 /* set if changed */ } It defines the values of flag bits.DATA�txt_charoptions Syntax: <txt_charoption> txt_charoptions (<txt> t); Header: <txt.h=>txt_h> Returns: The currently set options.DATA@txt_charsatdot Syntax: void txt_charsatdot (<txt> t, char *buffer, int *n); Header: <txt.h=>txt_h> Returns: The character. This function copies at most {/}*n{/} characters from the "dot" in the array, into a supplied buffer. If {/}*n{/} characters cannot be copied, {/}*n{/} is updated to report how many were.DATA�txt_delete Syntax: void txt_delete (<txt> t, int n); Header: <txt.h=>txt_h> This function deletes /n/ characters from the "dot" onwards.DATA�txt_dispose Syntax: void txt_dispose (<txt> *t); Header: <txt.h=>txt_h> This function destroys a text and the window associated with it.DATA�txt_disposemarker Syntax: void txt_disposemarker (<txt> t, <txt_marker> *mark); Header: <txt.h=>txt_h> This function disposes of the given marker. This MUST be done when the marker is no longer in use, otherwise it will still be updated.DATA�txt_dot Syntax: <txt_index> txt_dot (<txt> t); Header: <txt.h=>txt_h> Returns: Index into the character array. This function returns the position of the "dot" ie the current editing position of the text. 0 is before the first character.DATA�txt_event_proc This type is defined in <txt.h=>txt_h>. It is the function type for text event handlers. Functions should be of the form: {wrap off} {fCode;align centre}void myfunc (<txt> t, void *hnd);DATAItxt_eventcode This type is defined in <txt.h=>txt_h> as an /int/.DATAqtxt_eventhandler Syntax: void txt_eventhandler (<txt> t, <txt_event_proc> func, void *hnd); Header: <txt.h=>txt_h> This function registers an eventhandler function for a given text, which will be called whenever there is a value ready which can be picked up by <txt_get>. /hnd/ is passed straight to the handler. If {/}func=0{/} then no function is registered.DATA�txt_get Syntax: <txt_eventcode> txt_get (<txt> t); Header: <txt.h=>txt_h> Returns: The event code. This function gives the next user event code to the caller. The returned code can be ASCII, or various other values for function keys.DATA-txt.h This header declares functions for handling texts, ie windows like !Edit's, or other similar slow text displays (but not nice fast ones like !StrongED!). Functions: #Table 15 <txt_new> <txt_show> <txt_hide> <txt_settitle> <txt_dispose> <txt_bufsize> <txt_setbufsize> <txt_charoptions> <txt_setcharoptions> <txt_lastref> <txt_setlastref> <txt_setdisplayok> <txt_dot> <txt_size> <txt_setdot> <txt_movedot> <txt_insertchar> <txt_insertstring> <txt_delete> <txt_replacechars> <txt_charatdot> <txt_charat> <txt_charsatdot> <txt_replaceatend> <txt_movevertical> <txt_movehorizontal> <txt_visiblelinecount> <txt_visiblecolcount> <txt_newmarker> <txt_movemarker> <txt_movedottomarker> <txt_indexofmarker> <txt_disposemarker> <txt_selectset> <txt_selectstart> <txt_selectend> <txt_setselect> <txt_get> <txt_queue> <txt_unget> <txt_eventhandler> <txt_readeventhandler> <txt_arrayseg> <txt_syshandle> <txt_init> #EndTable Types: #indent 5 #Table 3 21 <txt> <txt_charoption> <txt_index> <txt_marker> <txt_eventcode> <txt_mouseeventflag> <txt_event_proc> #EndTableDATA~txt_hide Syntax: void txt_hide (<txt> t); Header: <txt.h=>txt_h> This function hides a text which has been displayed.DATA�txt_index This type is defined in <txt.h=>txt_h> as an index into the character array. It is actually defined as an /int/.DATA�txt_indexofmarker Syntax: <txt_index> txt_indexofmarker (<txt> t, <txt_marker> *mark); Header: <txt.h=>txt_h> Returns: Index of marker. This function gives the current index into the array of a given marker.DATA�txt_init Syntax: void txt_init (void); Header: <txt.h=>txt_h> This function initialises the txt module of the library.DATA�txt_insertchar Syntax: void txt_insertchar (<txt> t, char c); Header: <txt.h=>txt_h> This function inserts a character into the text just after the "dot".DATA�txt_insertstring Syntax: void txt_insertstring (<txt> t, char *s); Header: <txt.h=>txt_h> This function inserts the given character string into a text.DATAxtxt_lastref Syntax: int txt_lastref (<txt> t); Header: <txt.h=>txt_h> Returns: Current value of {*}last_ref{*}.DATA�txt_marker This type is defined in <txt.h=>txt_h>. It contains a marker position. Markers are indices into the array. Once set, a marker will point to the same character in the array regardless of insertions or deletions. If the character is deleted, the next character is pointed to. It is defined as the following structure: \{ int a; int b; } Self-explanatory I think. Not.DATA�txt_mouseeventflag This is an enumerated type defined in <txt.h=>txt_h> as follows: \{ � txt_MSELECT = 0x01000000, txt_MEXTEND = 0x02000000, txt_MSELOLD = 0x04000000, txt_MEXTOLD = 0x08000000, txt_MEXACT = 0x10000000, txt_EXTRACODE = 0x40000000, txt_MOUSECODE = ~0x7fffffff } A mouse event produces an event code with bit 31 set and bits 24-28 as the mouseeventflags value.DATA�txt_movedot Syntax: void txt_movedot (<txt> t, <txt_index> by); Header: <txt.h=>txt_h> This function moves the "dot" by a given distance in the array. It the resultant position is outside the array, it is set to the beginning/end.DATA�txt_movedottomarker Syntax: void txt_movedottomarker (<txt> t, <txt_marker> *mark); Header: <txt.h=>txt_h> This function moves the "dot" to a given marker.DATA�txt_movehorizontal Syntax: void txt_movehorizontal (<txt> t, int by); Header: <txt.h=>txt_h> This function moves the "dot" by a specified number of columns, keeping the caret in the same vertical position.DATAtxt_movemarker Syntax: void txt_movemarker (<txt> t, <txt_marker> *mark, <txt_index> to); Header: <txt.h=>txt_h> This function changes an exisiting marker to point to 'to'. The marker must have been initialised to point at this text object.DATA)txt_movevertical Syntax: void txt_movevertical (<txt> t, int by, int movetext) Header: <txt.h=>txt_h> This function moves the "dot" by a specified number of text lines, keeping the caret in the same horizontal position. If /movetext/ is non-zero then the text moves rather than the caret.DATAvtxt_new Syntax: <txt> txt_new (char *title); Header: <txt.h=>txt_h> Returns: Pointer to the newly created text. This function creates a new text object, containing no characters, with a given title (to appear in its window). This function does not result in the text being displayed on the screen. 0 is returned if there is not enough space to create the object.DATA�txt_newmarker Syntax: void txt_newmarker (<txt> t, <txt_marker> *mark); Header: <txt.h=>txt_h> This function initialises a new marker, pointed to by /mark/. It is set to be at the current "dot" position.DATA�TXT_ONLY This macro is defined in <TimsLib:Icon.h=>Icon_TL>. It is the value the returned by <ICON_TYPE> when the icon in question is a 'text only' icon. It is defined as 1.DATA�txt_queue Syntax: int txt_queue (<txt> t); Header: <txt.h=>txt_h> Returns: Number of buffered event codes. This function reads how many event codes are currently buffered for a given text.DATA@txt_readeventhandler Syntax: void txt_readeventhandler (<txt> t, <txt_event_proc> *func, void **hnd); Header: <txt.h=>txt_h> This function reads the currently registered eventhandler function associated with a given text, and returns both its pointer and its handle (in {/}*func{/} and {/}*hnd{/} respectively).DATA�txt_replaceatend Syntax: void txt_replaceatend (<txt> t, int ntodel, char *s, int ntoins); Header: <txt.h=>txt_h> This function deletes /ntodel/ characters from the end of the array and then inserts /ntoins/ characters from /s/.DATAtxt_replacechars Syntax: void txt_replacechars (<txt> t, int ntodel, char *a, int ntoins); Header: <txt.h=>txt_h> This function deletes /ntodel/ characters from the "dot" onwards, and inserts /ntoins/ characters at the same point. The inserted characters are pointed to by /a/.DATA�txt_selectend Syntax: <txt_index> txt_selectend (<txt> t); Header: <txt.h=>txt_h> Returns: Index of a selection end. This function gives the index into the array of the end of the current selection.DATA�txt_selectset Syntax: <BOOL> txt_selectset (<txt> t); Header: <txt.h=>txt_h> Returns: <TRUE> if there is a selection. This function tells you whether there is a selection made in a text.DATA�txt_selectstart Syntax: <txt_index> txt_selectstart (<txt> t); Header: <txt.h=>txt_h> Returns: Index of a selection start. This function gives the index into the array of the start of the current selection.DATA.txt_setbufsize Syntax: <BOOL> txt_setbufsize (<txt> t, int size); Header: <txt.h=>txt_h> Returns: <TRUE> if successful. This function allocates more space for the text buffer. It increases the buffer size, such that at least /size/ characters can be stored, before requiring more from the OS.DATA�txt_setcharoptions Syntax: void txt_setcharoptions (<txt> t, <txt_charoption> m, txt_charoption f); Header: <txt.h=>txt_h> This function sets the current options as follows: {wrap off} {fCode;align centre}Current = (Previous & ~m) | (m & f)DATA�txt_setdisplayok Syntax: void txt_setdisplayok (<txt> t); Header: <txt.h=>txt_h> This function sets the display flag in charoptions for a given text. You may have unset the display flag during a long update to the text.DATAtxt_setdot Syntax: void txt_setdot (<txt> t, <txt_index> i); Header: <txt.h=>txt_h> This function sets the "dot" at a given index in the array of characters. If 'i' is outside the bounds of the array it is set to the beginning/end as appropriate.DATA�txt_setlastref Syntax: void txt_setlastref (<txt> t, int x); Header: <txt.h=>txt_h> This function sets the value of {*}last_ref{*} to /x/. A subsequent {*}Message_DataSaved{*} can mark the data as unmodified.DATAtxt_setselect Syntax: void txt_setselect (<txt> t, <txt_index> start, txt_index end); Header: <txt.h=>txt_h> Returns: Index of a selection end. This function sets a selection in a given text, from /start/ to /end/. If {/}start>=end{/} then the selection will be unset.DATA�txt_settitle Syntax: void txt_settitle (<txt> t, char *title); Header: <txt.h=>txt_h> This function changes the title of the window used to display a text object. Long titles may be truncated when displayed.DATA�txt_show Syntax: void txt_show (<txt> t); Header: <txt.h=>txt_h> This function displays a given text object in a free standing window of its own. /t/ should have been created using <txt_new>.DATAtxt_size Syntax: <txt_index> txt_size (<txt> t); Header: <txt.h=>txt_h> Returns: Index into the character array. This function returns the maximum position of the "dot" ie the current editing position of the text. 0 is before the first character.DATA�txt_syshandle Syntax: int txt_syshandle (<txt> t); Header: <txt.h=>txt_h> Returns: Handle for the text. This function obtains a system-dependent handle on the object underlying a text.DATA�txt_unget Syntax: void txt_unget (<txt> t, <txt_eventcode> code); Header: <txt.h=>txt_h> This function puts an event code back on the front of the event queue for a given text.DATA*txt_visiblecolcount Syntax: int txt_visiblecolcount (<txt> t); Header: <txt.h=>txt_h> Returns: Number of visible columns. This function gives the number of columns currently visible. If a fixed pitch font is in use, then this actually returns the number of columns, else it makes a guess!DATAtxt_visiblelinecount Syntax: int txt_visiblelinecount (<txt> t); Header: <txt.h=>txt_h> Returns: Number of visible lines. This function gives the number of lines visible or partially visible on the display. It takes into account the window size and font etc.DATA�typdat.h This defines just one type: *typdat*. It is a load/execute address pair as follows: \{ int ex; int ld; } Wow.DATA�typedef In addition to the built in types, you can define your own with /typedef/. Simply prefix a normal variable declaration with /typedef/ and a new type is defined with the name normally used as the variable name. eg {fCode;align centre}typedef int block[6];{f;align} /block/ is now a new defined as an array of 6 integers. It can be used anytime eg: {fCode;align centre}block a,b,c;{f;align} Declares three blocks /a/, /b/ and /c/.DIR$,,|F�����/(UCHAR_�F�����/(UINT_�F�����/(ULONG_�F������"�undef@F������"ungetcTF������"�union F������$=UNUSEDD F���F�/(UNUSED_�F���k�/(USHRT_DIR$((�F���b�"�MAXDATA�UCHAR_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in an unsigned char (the minimum value which can be stored in an unsigned char is always 0). In Easy C it is defined as 0xffU (255).DIR$((�F���� �"�MAXDATA�UINT_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in an unsigned int (the minimum value is always 0). In Easy C it is defined as 0xffffffffU (4294967295).DIR$((�F�����"�MAXDATA�ULONG_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in an unsigned long int (the minimum value is always 0). In Easy C it is defined as 0xffffffffU (4294967295).DATA�#undef This directive undefines a macro. Any future references to this macro will throw up errors (except of course <#if=>if_>, <#ifdef=>ifdef> and <#ifndef=>ifndef>.DATAungetc Syntax: int ungetc (int c, <FILE> *stream); Header: <stdio.h=>stdio> Returns: /c/, or <EOF> if there is an error. This function pushes the character in /c/ back onto the input stream specified. Any subsequent read operations on that stream will return the characters pushed back (in reverse order). If you call a file positioning function (<fseek>, <fsetpos> or <rewind>) the pushed back characters are discarded. You mustn't call /ungetc/ too many times in succession or it will fail. NB /c/ must not equal EOF.DATA�union A union is similar to a <structure=>struct>. It is defined in the same way, but all variables are mapped into the same memory space. This means you can access a value in different ways eg. union \{ int word : 16; char byte[2]; } my_union; This declares {/}my_union.word{/} as a 16-bit integer. The two �8-bit� parts can be accessed as {/}my_union.byte[0]{/} and {/}my_union.byte[1]{/} respectively.DATA=UNUSED The macro *UNUSED* is defined in <TimsLib:Core.h=>Core_TL> and <DeskLib:Core.h=>Core>. It is used to avoid compiler warnings when you don't actually use one of the parameters passed to a function, eg: {wrap off} {fCode}<BOOL> mouseclick (<event_pollblock> *e, void *ref) \{ UNUSED(ref); ... }DIR$((l F���g��$MARGDATAMUNUSED_ARG The macro {*}UNUSED_ARG{*} is defined in <TimsLib:Core.h=>Core_TL> and <DeskLib:Core.h=>Core>. It is used to avoid compiler warnings when you don't actually use one of the parameters passed to a function, eg: {wrap off} {fCode}<BOOL> mouseclick (<event_pollblock> *e, void *ref) \{ UNUSED_ARG(ref); ... }DIR$((�F����"�MAXDATA�USHRT_MAX This macro is defined in <limits.h> and represents the maximum value which can be stored in an unsigned short int (the minimum value is always 0). In Easy C it is defined as 0xffffffffU (4294967295).DIR$��@F���U{T&]VALID�F���7&�Validation4F�����/0Validation_�F�����/�va_`F����WT&tVERIFY�F���d�/,VERIFY_LF����"Kvfprintf�F����<�$�visdelay`F�����/�visdelay_� F�����"8vprintf"F����$�"FvsprintfDATA]VALID Syntax: BOOL VALID (void *pointer); Header: <TimsLib:Check.h=>Check> Returns: <TRUE> if the pointer is valid. /pointer/ is checked and if it is not valid (ie memory can not be read/written at this location) then <FALSE> is returned. If {*}_DEBUG{*} is defined then the <Trace=>Trace_TL> module is used to produce helpful information.DATA�DeskLib:Validation.h Version: 1.00 (22 Mar 1992) #line This header file declares just one function: {align centre}<Validation_ScanString>DIR$00dF���<&7&�ScanStringDATA�Validation_ScanString Syntax: int Validation_ScanString (char *string, char tag); Header: <DeskLib:Validation.h=>Validation> Returns: Offset within string, 0 if not found. This function scans the string for the character in /tag/, and returns the offset of the next character. The tag character must be either the first character in the string, or immediately follow a semicolon.DIR$��pF���藿"�arg�F������"�end�F���t��"�start�F���+6�"�listDATA�va_arg Syntax: type va_arg (<va_list> ap, type); Header: <stdarg.h=>stdarg> Returns: The argument fetched. This function (which is actually defined as a function-like macro), fetches the next argument from the variable argument list. /ap/ is the same as it was for the <va_start> call. /type/ indicates the expected type of the next argument, and is the type of the value returned.DATA�va_end Syntax: void va_end (<va_list> ap); Header: <stdarg.h=>stdarg> This function (which is actually defined as a function-like macro), finishes argument line processing. /ap/ should be the same as was passed to <va_start>.DATA�va_start Syntax: void va_start (<va_list> ap, arg); Header: <stdarg.h=>stdarg> This function (which is actually defined as a function-like macro), sets up argument line processing. /ap/ is used as workspace for the function and subsequent calls. /arg/ is the argument before the variable argument list. Example: {fCode}int printf (char *format, ...) \{ va_list ap; va_start(ap,format); ... }{f}DATA�va_list This type is de�ned in <stdarg.h=>stdarg> and is used to allow the compiler to keep track of where it is in variable argument lists. In Easy C it is de�ned: {align centre;fCode}typedef char *va_list[1];DATAtVERIFY Syntax: VERIFY (<BOOL> expr); Header: <TimsLib:Check.h=>Check> If the macro {*}_DEBUG{*} is not defined, /expr/ is evaluated but no further action is taken. Otherwise, /expr/ is evaluated and if it is <FALSE> then an error box is displayed detailing the assertion failure. This is useful if /expr/ contains a function call which must be made, for example.DIR$,,F����fT&KVALIDDATAKVERIFY_VALID Syntax: VERIFY_VALID (void *pointer); Header: <TimsLib:Check.h=>Check> /pointer/ is checked and if it is not valid (ie memory can not be read/written at this location) then an assertion failure occurs. If the macro {*}_DEBUG{*} is not defined then wording more appropriate to a public release version is used.DATAKvfprintf Syntax: int vfprintf (<FILE> *stream, char *format, <va_list> args); Header: <stdio.h=>stdio> Returns: The number of characters output, or a negative value if there was an error. This function is identical to <fprintf>, but the arguments are replaced by /args/, which should have been initialised by <va_start>. DATA�visdelay.h The \<visdelay.h> header declares functions for handling the <Hourglass=>SWI:Hourglass_>. #Table 2 <visdelay_begin> <visdelay_end> <visdelay_init> <visdelay_percent> #EndTableDIR$���F����B�$�begin�F����F�$�end�F����J�$init�F����Q�$percentDATA�visdelay_begin Syntax: void visdelay_begin (void); Header: <visdelay.h=>visdelay> This function changes the mouse pointer to show the use that some delay will occur. At the moment it performs the same as the SWI <Hourglass_On=>SWI:Hourglass_On>.DATA�visdelay_end Syntax: void visdelay_end (void); Header: <visdelay.h=>visdelay> This function removes the indication of the delay. At the moment it is the same as the SWI <Hourglass_Off=>SWI:Hourglass_Off>.DATAvisdelay_init Syntax: void visdelay_init (void); Header: <visdelay.h=>visdelay> This function initialises the visdelay system. At the moment it does absolutely nothing, as the Hourglass needs no initialisation. However, it allows for future expansion.DATAvisdelay_percent Syntax: void visdelay_percent (int p); Header: <visdelay.h=>visdelay> This function indicates to the user that the delay is /p/ percent completed. At the moment it performs the same as the SWI <Hourglass_Percentage=>SWI:Hourglass_Percentage>.DATA8vprintf Syntax: int vprintf (char *format, <va_list> args); Header: <stdio.h=>stdio> Returns: The number of characters output, or a negative value if there was an error. This function is identical to <printf>, but the arguments are replaced by /args/, which should have been initialised by <va_start>. DATAFvsprintf Syntax: int vsprintf (char *out, char *format, <va_list> args); Header: <stdio.h=>stdio> Returns: The number of characters output, or a negative value if there was an error. This function is identical to <sprintf>, but the arguments are replaced by /args/, which should have been initialised by <va_start>. DIR$PP�%F���8�f%tWAssert'F���g�/(wchar_L(F�����"Ewcstombs�*F������"4wctomb�,F����a�$ werr�-F���*�"kwhileD0F���^�G&�Wimp2F����gX&�WimpExt�3F�����/�WimpExt_�8F�����H&�WimpSWIs�=F�����$�wimptP?F�����/Pwimpt_�OF���F��/HWimp_x9F������$iwin�;F���WEL&.Window>F�����/�Window_�pF���B�/pwin_�F�����/�w_DATAtDeskLib:WAssert.h Version: 1.01 (19 Jul 1994) #line This header is the Wimp version of <assert.h=>assert>. It declares one function, assert, which is identical in use to the ANSI version. This has actually been fixed now and the function only works if the macro _DEBUG is defined when you include this header, rather than the opposite way round as it was before.DIR$((<'F���F��" tDATA wchar_t The type {/}wchar_t{/} is defined in <stddef.h=>stddef>, and <stdlib.h=>stdlib> as an object capable of holding distinct codes for all member of the largest extended character supported by the compiler. In Easy C and Desktop C it is defined as an /int/.DATAEwcstombs Syntax: <size_t> wcstombs (char *s, <wchar_t> *pwcs, size_t n); Header: <stdlib.h=>stdlib> Returns: See below. Converts a sequence of codes that correspond to multibyte characters from the array pointed to by /pwcs/ into a sequence of multibyte characters into the array pointed to by /s/, stopping if a multibyte character would exceed the limit of /n/ total bytes or if a null character is stored. Each code is converted as if by a call to the <wctomb> function. If an invalid code is found, this returns -1, otherwise it returns the number of bytes modified.DATA4wctomb Syntax: int wctomb (char *s, <wchar_t> wchar); Header: <stdlib.h=>stdlib> Returns: See below. If /s/ is not a null pointer, then this function determines the number of bytes needed to represent the multibyte character corresponding to the code whose value is /wchar/ and stores the multibyte character in /s/, if /s/ is not <NULL>. If /s/ is not a valid multibyte character it returns -1, otherwise it returns the length. If /s/ is a null pointer, this function returns zero if multibyte character encodings do not have state-dependent encodings.DATA werr.h This header declares just one function: Syntax: void werr (int fatal, char *format, ...); This function reports an error to the user, under control of the <format string=>pform_>, /format/. If /fatal/ is non-zero then the program exits after the error.DATAkwhile This command defines a /while/ loop. It is also used as part of a <do> loop. A /while/ loop has the general form: {fCode;align centre}while (\<condition>) \<statement>;{f;align} \<condition> is evaluated each time, and if it evaluates to a non-zero value, ie is true, the \<statement> is executed. This repeated until the condition is false. \<statement> is the command executed within the loop. It can be a compound statement ie several statements enclosed in braces \{}, in which case there is no final semicolon. eg for an infinite loop: {fCode;align centre}while (1) <puts>("Infinite!");{f;align}DATA�DeskLib:Wimp.h Version: 1.12 (26 Jun 1993) #line This header defines LOTS of types for handling the Wimp. #Table 6 23 <Wimp colours/palettes=>w_colpal_> <Wimp icon data=>w_icondat_> <Window data=>w_windat_> <Mouse/pointer info=>w_mouseinf_> <Wimp drag data =>w_dragdat_> <Wimp errors=>w_wimperr_> <Menus=>w_menus_> <Caret/keypress data=>w_caret_> <Wimp message data=>w_messdat_> <Wimp events=>w_events_> <Miscellaneous=>w_misc_> #EndTableDATA�TimsLib:WimpExt.h #parent ro_tlib_ This header defines four function-like macros for accessing some WimpExtension SWIs. Function-like macros: #indent 4 #table columns 2 <WimpExt_Initialise> <WimpExt_Closedown> <WimpExt_Redraw> <WimpExt_PlotBorder> #endtable #indent WimpExtension is a PD module produced by DoggySoft which provides many useful functions for Wimp programming. However, WimpExtension 2 is now available...DIR$��L4F���rX&Closedown`5F����mX& Initialise�6F����zX&9PlotBorder�7F����uX&"RedrawDATAWimpExt_Closedown Syntax: <os_error> *WimpExt_Closedown (void); Header: <TimsLib:WimpExt.h=>WimpExt> Returns: Pointer to error, or <NULL> if none. This function calls the SWI WimpExt_Closedown. For more information see the documentation provided with WimpExtension.DATA WimpExt_Initialise Syntax: <os_error> *WimpExt_Initialise (unsigned flags); Header: <TimsLib:WimpExt.h=>WimpExt> Returns: Pointer to error, or <NULL> if none. This function calls the SWI WimpExt_Initialise. For more information see the documentation provided with WimpExtension.DATA9WimpExt_PlotBorder Syntax: <os_error> *WimpExt_PlotBorder (<window_handle> win, <icon_block> *icon); Header: <TimsLib:WimpExt.h=>WimpExt> Returns: Pointer to error, or <NULL> if none. This function calls the SWI WimpExt_PlotBorder. For more information see the documentation provided with WimpExtension.DATA"WimpExt_Redraw Syntax: <os_error> *WimpExt_Redraw (<window_redrawblock> *redraw); Header: <TimsLib:WimpExt.h=>WimpExt> Returns: Pointer to error, or <NULL> if none. This function calls the SWI WimpExt_Redraw. For more information see the documentation provided with WimpExtension.DATA�DeskLib:WimpSWIs.h Version: 1.07 (22 Oct 1994) #line This header declares functions for low-level handling of the Wimp. For most features, an easier-to-use high-level function is available. These calls are equivalent to the <SWIs=>SWI:Wimp_> of the same name. #Table 17 22 <Wimp_Initialise> <Wimp_CreateWindow> <Wimp_CreateIcon> <Wimp_DeleteWindow> <Wimp_DeleteIcon> <Wimp_OpenWindow> <Wimp_CloseWindow> <Wimp_Poll> <Wimp_Poll3> <Wimp_RedrawWindow> <Wimp_UpdateWindow> <Wimp_GetRectangle> <Wimp_GetWindowState> <Wimp_GetWindowInfo> <Wimp_SetIconState> <Wimp_GetIconState> <Wimp_GetPointerInfo> <Wimp_DragBox> <Wimp_ForceRedraw> <Wimp_SetCaretPosition> <Wimp_GetCaretPosition> <Wimp_CreateMenu> <Wimp_DecodeMenu> <Wimp_WhichIcon> <Wimp_SetExtent> <Wimp_SetPointerShape> <Wimp_OpenTemplate> <Wimp_CloseTemplate> <Wimp_LoadTemplate> <Wimp_ProcessKey> <Wimp_CloseDown> <Wimp_StartTask> <Wimp_ReportError> <Wimp_GetWindowOutline> <Wimp_PollIdle> <Wimp_PollIdle3> <Wimp_PlotIcon> <Wimp_SetMode> <Wimp_SetPalette> <Wimp_ReadPalette> <Wimp_SetColour> <Wimp_SendMessage> <Wimp_CreateSubMenu> <Wimp_SpriteOp> <Wimp_BaseOfSprites> <Wimp_BlockCopy> <Wimp_SlotSize> <Wimp_ReadPixTrans> <Wimp_CommandWindow> <Wimp_TransferBlock> <Wimp_SetFontColours> #EndTableDATA�wimpt.h This header declares functions for low-level Wimp handling. Functions: #Table 9 21 <wimpt_bpp> <wimpt_checkmode> <wimpt_complain> <wimpt_dx> <wimpt_dy> <wimpt_fake_event> <wimpt_forceredraw> <wimpt_init> <wimpt_last_event> <wimpt_last_event_was_a_key> <wimpt_mode> <wimpt_noerr> <wimpt_poll> <wimpt_programname> <wimpt_reporterror> <wimpt_task> <wimpt_wimpversion> #EndTableDIR$PP�AF���r��$�bppTBF������$�checkmode CF���P��$�complain DF���m��$�dx�DF���t�$�dy�EF�����$�fake_event@FF���� �$�forceredraw�FF�����$Pinit HF�����$�last_event�HF���|�$�last_event_was_a_key�IF����!�$�mode�JF���'�$�noerrTKF����1�$=poll�LF����6�$�programnameTMF���J;�$reporterrorXNF���/?�$�task�NF����B�$�wimpversionDATA�wimpt_bpp Syntax: int wimpt_bpp (void); Header: <wimpt.h=>wimpt> Returns: Bits per screen pixel. The value is only valid if <wimpt_checkmode> is called at redraw events.DATA�wimpt_checkmode Syntax: <BOOL> wimpt_checkmode (void); Header:<wimpt.h=>wimpt> Returns: <TRUE> if screen mode has changed. This function registers with the wimpt module the current screen mode.DATA�wimpt_complain Syntax: <os_error> *wimpt_complain (os_error *e); Header: <wimpt.h=>wimpt> Returns: Pointer to error, or <NULL> if none. This function reports the error if {/}e!=0{/}, and returns it. Use this function if the error is not fatal.DATA�wimpt_dx Syntax: int wimpt_dx (void); Header: <wimpt.h=>wimpt> Returns: OS units per screen pixel (X). The value is only valid if <wimpt_checkmode> is called at redraw events.DATA�wimpt_dy Syntax: int wimpt_dy (void); Header: <wimpt.h=>wimpt> Returns: OS units per screen pixel (Y). The value is only valid if <wimpt_checkmode> is called at redraw events.DATA�wimpt_fake_event Syntax: void wimpt_fake_event (<wimp_eventstr> *blk); Header: <wimpt.h=>wimpt> This function posts an event to be collected by <wimpt_poll>.DATA�wimpt_forceredraw Syntax: void wimpt_forceredraw (void); Header: <wimpt.h=>wimpt> This function forces a redraw of the whole screen.DATAPwimpt_init Syntax: int wimpt_init (char *programname); Header: <wimpt.h=>wimpt> Returns: Wimp version number * 100. This function sets up your program as a Wimp task. It remembers screen mode and sets up signal handlers so that task exits cleanly. Calls <wimp_taskinit> and stores task_id returned. Also installs exit-handler.DATA�wimpt_last_event Syntax: <wimp_eventstr> *wimpt_last_event (void); Header: <wimpt.h=>wimpt> Returns: Pointer to event. This function returns the last event returned by <wimpt_poll>.DATA�wimpt_last_event_was_a_key Syntax: int wimpt_last_event_was_a_key (void); Header: <wimpt.h=>wimpt> Returns: Non-zero if last event was keystroke. This function informs you if the last event returned by <wimpt_poll> was a key stroke.DATA�wimpt_mode Syntax: int wimpt_mode (void); Header: <wimpt.h=>wimpt> Returns: The current screen mode. This function reads the current screen mode. It is only valid if <wimpt_checkmode> is called at redraw events.DATA�wimpt_noerr Syntax: void wimpt_noerr (<os_error> *e); Header: <wimpt.h=>wimpt> This function reports the error whose pointer is given, if {/}e!=0{/}.DATA=wimpt_poll Syntax: <os_error> *wimpt_poll (<wimp_emask> mask, <wimp_eventstr> *result); Header: <wimpt.h=>wimpt> Returns: Pointer to error, or <NULL> if none. This function polls for an event from the Wimp. You should use this rather than <wimp_poll=>wimp_poll_> if you _really_ need to use low-level calls.DATA�wimpt_programname Syntax: char *wimpt_programname (void); Header: <wimpt.h=>wimpt> Returns: Pointer to program name. This function returns the program name passed to <wimpt_init>.DATAwimpt_reporterror Syntax: void wimpt_reporterror (<os_error> *err, <wimp_errflags> flags); Header: <wimpt.h=>wimpt> This function reports an OS error in a dialoue box. It is similar to <wimp_reporterror>, but includes the program name automatically.DATA�wimpt_task Syntax: wimp_t wimpt_task (void); Header: <wimpt.h=>wimpt> Returns: task handle. This function informs the caller of its task handle.DATA�wimpt_wimpversion Syntax: void wimpt_wimpversion (int version); Header: <wimpt.h=>wimpt> This function should be called before calling <wimpt_init>. It tells wimpt what version of the Wimp you want (200, 300, 310 or 311).DIR$HH$hF���іJ&�BaseOfSprites�iF���<R�$�baseofsprites_�jF������$Obbits�kF�����J&�BlockCopy�mF���_�$�blockcopy_�nF���0�$�box�oF����<�$�caretstr�pF����1�$�close_templatetqF���<��$�close_wind0rF�����I&kCloseDown�sF���W8�$�closedown_\tF���Z�I&�CloseTemplatePuF���_I&CloseWindowlvF�����7&=colour�wF����)�")command_tag�xF����)�"�commandwind�yF���~K&FCommandWindow�{F���5��$�commandwindow_�|F����a7&�coord4}F������$Acorrupt_fp_state_on_pollx~F���*�"CorruptFPStateOnPoll�F���BI�$�create_icon��F������$�create_menul�F��� �$%create_submenu��F���ӱ�$create_wind��F����H&BCreateIcon�F���3�I&SCreateMenu@�F����vJ&}CreateSubMenu��F���.�H&RCreateWindow�F�����$Kdecode_menu`�F���)�I&�DecodeMenu�F���*M�$�delete_icon�F�����$�delete_wind��F����I&�DeleteIcon��F�����H&:DeleteWindowԐF����l�$�drag_box��F����fI&�DragBoxH�F������$�dragstr �F���"�$ dragtype@�F����4�$�emask�F����*�"�errflags�F����.�$�etype��F������$�eventdatax�F������$�eventstr(�F������$�font_array��F�����$force_redraw��F����rI&�ForceRedraw��F���a��$�get_caret_post�F���jg�$get_icon_info��F���s/�$�get_point_info��F������$get_rectangle��F������$get_wind_info��F�����$get_wind_state��F�����I&;GetCaretPositionܦF���}VI&6GetIconState�F���]I&mGetPointerInfo��F����;I&)GetRectangle��F����FI&�GetWindowInfo��F���*�I&�GetWindowOutlineH�F���� �$getwindowoutline_\�F���CI&�GetWindowStateX�F���yu�$+h��F�����$�i�F�����$�ibtypeIJF��� �$�icon��F�����$icondata�F������$�iconflags�F���{&�$�icreate��F�����H&Initialise��F����$�initialise_��F���5�$�load_template��F���s�I&!LoadTemplate��F���P7&�MAXNAMEh�F���F��$menuflagsp�F�����$menuhdrt�F������$�menuitem\�F���m��$cmenuptr��F������$�menustr��F����A�$�mousestr��F���=I�$msgaction��F���be�$�msgdataload��F����n�$�msgdataopenL�F����X�$�msgdatasaveH�F���@]�$msgdatasaveokH�F����,�"�msgdevice$�F����H�$�msghdr�F������$�msghelpreply��F����y�$�msghelprequestp�F���|��$�msgprint0�F���po�$�msgramfetch��F���>��$�msgramtransmit��F���-�"�msgsavedeskT�F���z��$+msgstr��F����)H&�NUMBEROFEVENTS�F���K.�$�open_template��F������$�open_wind��F�����$�openstrp�F����I&�OpenTemplate�F����I&OpenWindow�F���_��$palettestr�F������$�paletteword��F����#J&PlotIcon�F������$�ploticon_�F���X7&�point��F����V&�pointer��F����I&�Polld�F����I&�Poll3H�F����"�$9poll_��F���?J&-PollIdle��F����J&RPollIdle3�F���q(�$?pollidle_H�F�����$cProcessKey��F������$�pshapestr��F���5J&4ReadPalette��F���]��$�readpalette_��F���+�J&KReadPixTrans��F������$!readpixtrans_�F���Uf7&�rect��F������$;redraw_wind�F���6�$�redrawstr�F���,*I&�RedrawWindowT�F�����I&3ReportError��F����Y�$reporterror_��F����.�"-ReportErrorR��F������$Lsave_fp_state_on_poll�F����.�"SaveFPStateOnPoll�F����hJ&�SendMessage�F����a�$sendmessage_�F����i�$+sendwmessage�F���Q��$�set_caret_pos�F���\�$�set_extent�F���PV�$Lset_icon_state�F���P5�$�set_point_shape�F�����I&�SetCaretPosition� F����\J&SetColour�F���Ħ�$�setcolour_hF���=�I&SetExtent� F������$�SetFontColours F���/NI&`SetIconState�F����(J&cSetMode�F����C�$�setmode_�F���x/J&vSetPaletteF������$�setpalette_�F�����I&CSetPointerShape$F���̓�$XSlotSize|F����U�$�spriteareaPF�����J&8SpriteOp�F���+H�$�spriteop_dF����L�$�spriteop_full@F�����I&�StartTaskF����@�$�starttask_�F����0�"�td F���$=�$�taskcloseD!F���C�$�taskinit�"F���j��$template�#F����K&9TransferBlock0&F���w��$`transferblock_�'F���� �$types_�*F������$[update_wind,F���7I&UpdateWindow$.F������$�w�.F������$Gwcolours0F���31�"wflags 2F������$�which_block�2F���nr�$which_icon�3F����~. WhichIcon�5F���W�$�wind�7F�����$�winfo�8F����+�$�wstateDATA�Wimp_BaseOfSprites Syntax: <os_error> *Wimp_BaseOfSprites (void **rom_base, void **ram_base); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_baseofsprites=>wimp_baseofsprites_> This function returns the addresses of the ROM and RAM parts of the Wimp sprite pool. The RAM address moves around as its contents change. Acorn recommend that you should not use this function.DATA�wimp_baseofsprites Syntax: void *wimp_baseofsprites (void); Header: <wimp.h=>wimp_h> Returns: Pointer to Wimp sprite area. This function returns the sprite pointer of the Wimp sprite area.DATAOwimp_bbits This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp button state bits: \{ wimp_BRIGHT = 0x001, wimp_BMID = 0x002, wimp_BLEFT = 0x004, wimp_BDRAGRIGHT = 0x010, wimp_BDRAGLEFT = 0x040, wimp_BCLICKRIGHT = 0x100, wimp_BCLICKLEFT = 0x400 }DATA�Wimp_BlockCopy Syntax: <os_error> *Wimp_BlockCopy (<window_handle> win, <wimp_box> *source, int x, int y); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_blockcopy=>wimp_blockcopy_>. This function copies a block of work area space (defined by /win/ and {/}source{/}) to another position {/}(x,y){/}. Note that the space copied does not actually have to be visible - the Wimp will ask you to redraw bits that it cannot copy directly.DATA�wimp_blockcopy Syntax: <os_error> *wimp_blockcopy (<wimp_w> win, <wimp_box> *src, int x, int y); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function copies a block of work area from /src/ to {/}(x,y){/}.DATA�wimp_box This type is defined in <wimp.h=>wimp_h> (Desktop C) and <DeskLib:Wimp.h=>Wimp> as a type holding a box in terms of two corners. It is defined in Desktop C as: \{ int x0,y0,x1,y1; } and in DeskLib as a <wimp_rect>.DATA�wimp_caretstr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a caret position: \{ <wimp_w> w; <wimp_i> i; int x,y; int height; int index; }DATA�wimp_close_template Syntax: <os_error> *wimp_close_template (void); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function closes the currently open template file.DATA�wimp_close_wind Syntax: <os_error> *wimp_close_wind (<wimp_w> win); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions closes the given window.DATAkWimp_CloseDown Syntax: <os_error> *Wimp_CloseDown (<task_handle> task); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. See the Desktop C function, <wimp_closedown=>wimp_closedown_>. This function must be called immediately before the program finishes. /task/ contains the task handle returned by <Wimp_Initialise>.DATA�wimp_closedown Syntax: <os_error> *wimp_closedown (void); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function deregisters your program with the Wimp.DATA�Wimp_CloseTemplate Syntax: <os_error> *Wimp_CloseTemplate (void); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function closes the template file previously opened with <Wimp_OpenTemplate>.DATAWimp_CloseWindow Syntax: <os_error> *Wimp_CloseWindow (<window_handle> window); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function removes the specified window from the list of active windows (ones that are to be displayed).DATA=wimp_colour This type is defined in DeskLib:Wimp.h as the following union: \{ int value; struct \{ unsigned int wimpcolour : 4; unsigned int gcolaction : 3; unsigned int foreback : 1; unsigned int padding : 24; } data; }DATA)wimp_command_tag This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values for <wimp_commandwindow=>wimp_commandwindow_>: { wimp_command_TITLE = 0, wimp_command_ACTIVE = 1, wimp_command_CLOSE_PROMPT = 2, wimp_command_CLOSE_NOPROMPT = 3 }DATA�wimp_commandwind This type is defined in <wimp.h=>wimp_h>. It is a structure for command windows: { <wimp_command_tag> tag; char *title; }DATAFWimp_CommandWindow Syntax: <os_error> *Wimp_CommandWindow (int x); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_commandwindow=>wimp_commandwindow_>. This function opens a text window in which VDU�4-type output can be displayed. The exact action depends on /x/: {tab} x>1 x is a pointer to the window title. The command window is opened the next time a character is printed on the screen. x==1 window becomes active but is not drawn. x==0 window is closed with a prompt. x==-1 window is closed without a prompt.DATA�wimp_commandwindow Syntax: <os_error> *wimp_commandwindow (<wimp_commandwind> commandwindow); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions opens a text window for VDU4 output.DATA�wimp_coord This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding a coordinate. It is defined as a <wimp_point>.DATAAwimp_corrupt_fp_state_on_poll Syntax: <os_error> *wimp_corrupt_fp_state_on_poll (void); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions disables saving of FP state on calls to <wimp_poll=>wimp_poll_> and <wimp_pollidle=>wimp_pollidle_>; use only if you never use FP at all.DATAWimp_CorruptFPStateOnPoll Syntax: <os_error> *Wimp_CorruptFPStateOnPoll(void); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function tells DeskLib not to save the floating point status when calling <Wimp_Poll>.DATA�wimp_create_icon Syntax: <os_error> *wimp_create_icon (<wimp_icreate> *blk, <wimp_i> *icon); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions creates an icon from /blk/ and returns the handle in {/}*icon{/}.DATA�wimp_create_menu Syntax: <os_error> *wimp_create_menu (<wimp_menustr> *m, int x, int y); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function displays the menu /m/ at position {/}(x,y){/}.DATA%wimp_create_submenu Syntax: <os_error> *wimp_create_submenu (<wimp_menustr> *sub, int x, iny y); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function creates the menu /sub/ as a submenu. Called in response to a <Message_MenuWarning=>SWI:wimp_um400c0>.DATAwimp_create_wind Syntax: <os_error> *wimp_create_wind (<wimp_wind> *blk, <wimp_w> *win); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions creates a window whose definition is in /blk/. The window handle is returned in {/}*win{/}.DATABWimp_CreateIcon Syntax: <os_error> *Wimp_CreateIcon (<icon_createblock> *block, <icon_handle> *icon); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function tells the Wimp what the characteristics of an icon are (in {/}block{/}). The icon handle is returned in /icon/.DATASWimp_CreateMenu Syntax: <os_error> *Wimp_CreateMenu (<menu_block> *menu, int xpos, int ypos); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function is used to create a menu structure. The top-level menu is initially displayed by the Wimp with its top-left corner at {/}(xpos,ypos){/}.DATA}Wimp_CreateSubMenu Syntax: <os_error> *Wimp_CreateSubMenu (<menu_block> *menu, int xpos, int ypos); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function is called when a MenuWarning message is received. The three arguments used can be obtained from the information returned by this message, or you can alter them if required.DATARWimp_CreateWindow Syntax: <os_error> *Wimp_CreateWindow (<window_block> *blk, <window_handle> *w); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function tells the Wimp what the characteristics of a window are. The window definition is held in /blk/ and the handle is returned in /w/.DATAKwimp_decode_menu Syntax: <os_error> *wimp_decode_menu (<wimp_menustr> *m, void *sel, void *buf); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function takes a list of menu selections in /sel/, and a menu definition in /m/, and creates a textual version of the selections, separated by dots.DATA�Wimp_DecodeMenu Syntax: <os_error> *Wimp_DecodeMenu (<menu_block> *menu, int *selections, char *result); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function converts a list of menu selections (pointed to by /selections/) for a given menu, to a text string of the form: {wrap off} {align centre}Selection1.Selection2.Selection3{align} {wrap} eg "Options.Confirm" for a Filer menu.DATA�wimp_delete_icon Syntax: <os_error> *wimp_delete_icon (<wimp_w> win, <wimp_i> icon); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions deletes the given icon.DATA�wimp_delete_wind Syntax: <os_error> *wimp_delete_wind (<wimp_w> w); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions deletes the given window.DATA�Wimp_DeleteIcon Syntax: <os_error> *Wimp_DeleteIcon (<window_handle> win, <icon_handle> icon); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function removes the definition of the specified icon. If it is not the last icon in that window it is just marked as deleted, but if it is the last one then the space occupied by it is freed. This call does not affect the screen, unless deleting an icon from the icon bar. You must call <Wimp_ForceRedraw>.DATA:Wimp_DeleteWindow Syntax: <os_error> *Wimp_DeleteWindow (<window_handle> window); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function closes the specified window (if it is still open), and then removes the definition of the window. The memory used is freed.DATA�wimp_drag_box Syntax: <os_error> *wimp_drag_box (<wimp_dragstr> *result); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function starts the Wimp dragging a box.DATA�Wimp_DragBox Syntax: <os_error> *Wimp_DragBox (<drag_block> *draginfo); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function initiates a dragging operation. /draginfo.window/ contains the window handle (types 1-4), /draginfo.type/ contains the drag type, /draginfo.screenrect/ contains the box to be dragged, and /draginfo.parent/ contains the bounding box (types 5-11).DATA�wimp_dragstr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold user drag box data: \{ <wimp_w> window; <wimp_dragtype> type; <wimp_box> box; <wimp_box> parent; }DATA wimp_dragtype This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp drag types: \{ wimp_MOVE_WIND, wimp_SIZE_WIND, wimp_DRAG_HBAR, wimp_DRAG_VBAR, wimp_USER_FIXED, wimp_USER_RUBBER, wimp_USER_HIDDEN }DATA�wimp_emask This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the bits in the Wimp event mask: \{ wimp_EMNULL, wimp_EMREDRAW, wimp_EMOPEN, wimp_EMCLOSE, wimp_EMPTRLEAVE, wimp_EMPTRENTER, wimp_EMBUT, wimp_EMUSERDRAG, wimp_EMKEY, wimp_EMMENU, wimp_EMSCROLL, wimp_EMLOSECARET, wimp_EMGAINCARET, wimp_EMSEND = 17, wimp_EMSENDWANTACK = 18, wimp_EMACK }DATA�wimp_errflags This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp error flags: { wimp_EOK = 1, wimp_ECANCEL = 2, wimp_EHICANCEL = 4 }DATA�wimp_etype This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp event types: \{ wimp_ENULL, wimp_EREDRAW, wimp_EOPEN, wimp_ECLOSE, wimp_EPTRLEAVE, wimp_EPTRENTER, wimp_EBUT, wimp_EUSERDRAG, wimp_EKEY, wimp_EMENU, wimp_ESCROLL, wimp_ELOSECARET, wimp_EGAINCARET, wimp_ESEND = 17, wimp_ESENDWANTACK = 18, wimp_EACK }DATA�wimp_eventdata This type is defined in <wimp.h=>wimp_h>. It is a union used to hold data returned by the Wimp. \{ <wimp_openstr> o; <wimp_box> dragbox; int menu[10]; <wimp_caretstr> c; <wimp_msgstr> msg; struct \{ <wimp_mousestr> m; <wimp_bbits> b; } but; struct \{ <wimp_caretstr> c; int chcode; } key; struct \{ <wimp_openstr> o; int x,y; } scroll; }DATA�wimp_eventstr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold an event type and data. \{ <wimp_etype> e; <wimp_eventdata> data; }DATA�wimp_font_array This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a font array: \{ char f[256]; }DATAwimp_force_redraw Syntax: <os_error> *wimp_force_redraw (<wimp_redrawstr> *redraw); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function marks an area of a window as invalid. If {/}redraw->w=-1{/} then use screen coordinates.DATA�Wimp_ForceRedraw Syntax: <os_error> *Wimp_ForceRedraw (<window_redrawblock> *block); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function forces an area of screen to be redraw later using Redraw_Window_Request events. {/}block->window{/} contains the window handle, and {/}block->rect{/} contains the area of work area to redraw. If {/}block->window{/} contains -1, then {/}block->rect{/} contains a screen area to redraw.DATA�wimp_get_caret_pos Syntax: <os_error> *wimp_get_caret_pos (<wimp_caretstr> *blk); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function gets the caret position into /blk/.DATAwimp_get_icon_info Syntax: <os_error> *wimp_get_icon_info (<wimp_w> win, <wimp_i> icon, <wimp_icon> *result); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function gets the current state of the specified icon and returns it in {/}*result{/}.DATA�wimp_get_point_info Syntax: <os_error> *wimp_get_point_info (<wimp_mousestr> *result); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function gets the current state of the mouse pointer in {/}*result{/}.DATAwimp_get_rectangle Syntax: <os_error> *wimp_get_rectangle (<wimp_redrawstr> *blk, <BOOL> *more); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions returns <TRUE> in {/}*more{/} if there is more to be drawn <wimp_get_rectangle>.DATAwimp_get_wind_info Syntax: <os_error> *wimp_get_wind_info (<wimp_winfo> *result); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions gets the complete definition of {/}result->w{/} and returns it in {/}*result{/}.DATAwimp_get_wind_state Syntax: <os_error> *wimp_get_wind_state (<wimp_w> win, wimp_wstate *result); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions gets the state of the window /win/ and returns it in {/}*result{/}.DATA;Wimp_GetCaretPosition Syntax: <os_error> *Wimp_GetCaretPosition (<caret_block> *caret); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function returns details of the caret's state in the block pointed to by /caret/. {/}caret->height{/} is -1 for not displayed.DATA6Wimp_GetIconState Syntax: <os_error> *Wimp_GetIconState (<window_handle> win, <icon_handle> icon, <icon_block> *iconinfo); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function returns the specified icon's definition in the block pointed to by /iconinfo/.DATAmWimp_GetPointerInfo Syntax: <os_error> *Wimp_GetPointerInfo (<mouse_block> *ptrinfo); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function returns information about the position of the pointer and the instantaneous state of the mouse buttons. The information is returned in the structure pointed by /ptrinfo/.DATA)Wimp_GetRectangle Syntax: <os_error> *Wimp_GetRectangle (<window_redrawblock> *blk, <BOOL> *more); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function is used repeatedly following a call to either <Wimp_RedrawWindow> or <Wimp_UpdateWindow>.DATA�Wimp_GetWindowInfo Syntax: <os_error> *Wimp_GetWindowInfo (<window_info> *info); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function returns the given window's complete state including all icons.DATA�Wimp_GetWindowOutline Syntax: <os_error> *Wimp_GetWindowOutline (<window_outline> *outline); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_getwindowoutline=>wimp_getwindowoutline_> This function returns the given window's bounding box ie the box which completely covers the specified window, including its border. The window must be open...DATAwimp_getwindowoutline Syntax: <os_error> *wimp_getwindowoutline (<wimp_redrawstr> *r); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function gets the outline of the window passed in {/}r->w{/}. The outline is returned in {/}r->box{/}.DATA�Wimp_GetWindowState Syntax: <os_error> *Wimp_GetWindowState (<window_handle> window, <window_state> *state); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function returns the given window's state.DATA+wimp.h The \<wimp.h> header declares functions and <types=>wimp_types_> for handling the Wimp. Functions: #table columns 2 <Miscellaneous=>w_init_> <Window Handling=>w_open_> <Template Handling=>w_temp_> <Icon Handling=>w_icon_> <Colour Handling=>w_col_> <Font Handling=>w_font_> #endtableDATA�wimp_i This type is defined in <wimp.h=>wimp_h> as a type capable of containing a Wimp icon handle. It is actually defined as an /int/.DATA�wimp_ibtype This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp icon button types: \{ wimp_BIGNORE, wimp_BNOTIFY, wimp_BCLICKAUTO, wimp_BCLICKDEBOUNCE, wimp_BSELREL, wimp_BSELDOUBLE, wimp_BDEBOUNCEDRAG, wimp_BRELEASEDRAG, wimp_BDOUBLEDRAG, wimp_BSELNOTIFY, wimp_BCLICKDRAGDOUBLE, wimp_BCLICKSEL, wimp_BWRITABLE = 15 }DATA�wimp_icon This type is defined in <wimp.h=>wimp_h>. It is a structure containing an icon definition: \{ <wimp_box> box; <wimp_iconflags> flags; <wimp_icondata> data; }DATAwimp_icondata This type is defined in <wimp.h=>wimp_h>. It is a union containing Wimp icon data for all icon types: \{ char text[12]; char sprite_name[12]; struct \{ char *name; void *spritearea; <BOOL> nameisname; } indirectsprite; struct \{ char *buffer; char *validstring; int bufflen; } indirecttext; }DATA�wimp_iconflags This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp icon flags: \{ wimp_ITEXT, wimp_ISPRITE, wimp_IBORDER, wimp_IHCENTRE, wimp_IVCENTRE, wimp_IFILLED, wimp_IFONT, wimp_IREDRAW, wimp_INDIRECT, wimp_IRJUST, wimp_IESG_NOC, wimp_IHALVESPRITE, wimp_IBTYPE, wimp_ISELECTED, wimp_INOSELECT, wimp_IDELETED, wimp_IFORECOL, wimp_IBACKCOL }DATA�wimp_icreate This type is defined in <wimp.h=>wimp_h>. It is a structure containing data for the function <wimp_create_icon=>wimp_create_icon_>. \{ <wimp_w> w; <wimp_icon> i; }DATAWimp_Initialise Syntax: <os_error> *Wimp_Initialise (unsigned int *version, char *name, <task_handle> *task, int *mess); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. See the Desktop C function <wimp_initialise=>wimp_initialise_>. This function registers a task with the Wimp, and must be called ONCE when the task starts up. /version/ points to the minimum Wimp version this task is for (in the form version * 100). /name/ points to a short description of the task (20 characters). /mess/ points to an array of message numbers the task wants to receive (only if version>=300). If /version/ is not 300 then 0 means all messages are important. On exit, the actual Wimp version is returned in /version/ and the task handle in /task/.DATA�wimp_initialise Syntax: <os_error> *wimp_initialise (int *v); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions closes and deletes all windows, returning the Wimp version in {/}*v{/}.DATA�wimp_load_template Syntax: <os_error> *wimp_load_template (<wimp_template> *template); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function loads a template from the currently open template file.DATA!Wimp_LoadTemplate Syntax: <os_error> *Wimp_LoadTemplate (<template_block> *template); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function loads a template. You must previously have called <Wimp_OpenTemplate> to open a template file.DATA�wimp_MAXNAME This macro is defined in <DeskLib:Wimp.h=>Wimp>. It is a value representing the length of wimp names (icon text, sprite names etc). It is defined as 12.DATAwimp_menuflags This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the menu flag bits: \{ wimp_MTICK = 1, wimp_MSEPARATE = 2, wimp_MWRITEABLE = 4, wimp_MSUBLINKMSG = 8, wimp_MLAST = 0x80 }DATAwimp_menuhdr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a Wimp menu header. \{ char title[12]; char tit_fcol; char tit_bcol; char work_fcol; char work_bcol; int width, height; int gap; }DATA�wimp_menuitem This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a menu item: \{ <wimp_menuflags> flags; <wimp_menuptr> submenu; <wimp_iconflags> iconflags; <wimp_icondata> data; }DATAcwimp_menuptr This type is defined in <wimp.h=>wimp_h>. It is a pointer to a <wimp_menustr>.DATA�wimp_menustr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a menu: \{ <wimp_menuhdr> hdr; } This is followed in memory immediately by the menu items, as <wimp_menuitem>s.DATA�wimp_mousestr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold mouse data: \{ int x,y; <wimp_bbits> bbits; <wimp_w> w; /* window handle */ <wimp_i> i; /* icon handle */ }DATAwimp_msgaction This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp message types: \{ wimp_MCLOSEDOWN, wimp_MDATASAVE, wimp_MDATASAVEOK, wimp_MDATALOAD, wimp_MDATALOADOK, wimp_MDATAOPEN, wimp_MRAMFETCH, wimp_MRAMTRANSMIT, wimp_MPREQUIT, wimp_PALETTECHANGE, wimp_SAVEDESK, wimp_FilerOpenDir, wimp_FilerCloseDir, wimp_Notify, wimp_MMENUWARN, wimp_MMODECHANGE, wimp_MINITTASK, wimp_MCLOSETASK, wimp_MSLOTCHANGE, wimp_MSETSLOT, wimp_MTASKNAMERQ, wimp_MTASKNAMEIS, wimp_MTASKSTARTED, wimp_MHELPREQUEST, wimp_MHELPREPLY, wimp_MPrintFile, wimp_MWillPrint, wimp_MPrintTypeOdd, wimp_MPrintTypeKnown, wimp_MPrinterChange }DATA�wimp_msgdataload This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_DataLoad=>SWI:wimp_um3>: \{ <wimp_w> w; <wimp_i> i; int x,y; int size; int type; char name[212]; }DATA�wimp_msgdataopen This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_DataOpen=>SWI:wimp_um5>. It is defined as a <wimp_msgdataload>.DATA�wimp_msgdatasave This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_DataSave=>SWI:wimp_um1>: \{ <wimp_w> w; <wimp_i> i; int x,y; int estsize; int type; char leaf[12]; }DATAwimp_msgdatasaveok This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_DataSaveAck=>SWI:wimp_um2>: \{ <wimp_w> w; <wimp_i> i; int x,y; int estsize; int type; char name[212]; }DATA�wimp_msgdevice This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a Message_DeviceClaim or Message_DeviceInUse: { int major; int minor; char information[228]; }DATA�wimp_msghdr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a message header: \{ int size; <wimp_t> task; int my_ref; int your_ref; <wimp_msgaction> action; }DATA�wimp_msghelpreply This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_HelpReply=>SWI:wimp_um503>: \{ char text[200]; }DATA�wimp_msghelprequest This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_HelpRequest=>swi:wimp_um502>: { <wimp_mousestr> m; }DATA�wimp_msgprint This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for all print messages. \{ int filler[5]; int type; char name[256-44]; }DATA�wimp_msgramfetch This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_RAMFetch=>SWI:Wimp_um6>: \{ char *addr; int nbytes; }DATA�wimp_msgramtransmit This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a <Message_RAMTransmit=>SWI:wimp_um7>: \{ char *addr; int nbyteswritten; }DATA�wimp_msgsavedesk This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for a Message_SaveDesktop: { int filehandle; }DATA+wimp_msgstr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a complete Wimp message. \{ <wimp_msghdr> hdr; union \{ char chars[236]; int words[59]; <wimp_msgdatasave> datasave; <wimp_msgdatasaveok> datasaveok; <wimp_msgdataload> dataload; <wimp_msgdataopen> dataopen; <wimp_msgramfetch> ramfetch; <wimp_msgramtransmit> ramtransmit; <wimp_msghelprequest> helprequest; <wimp_msghelpreply> helpreply; <wimp_msgprint> print; } data; }DATA�wimp_NUMBEROFEVENTS This is a macro defined in <DeskLib:Wimp.h=>Wimp>. It has the value 20, as events are numbered 0-19.DATA�wimp_open_template Syntax: <os_error> *wimp_open_template (char *name); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function opens the named template file for subsequent use by <wimp_load_template>.DATA�wimp_open_wind Syntax: <os_error> *wimp_open_wind (<wimp_openstr> *blk); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions opens the given window.DATA�wimp_openstr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a window position: \{ <wimp_w> w; <wimp_box> box; int x,y; <wimp_w>behind; }DATA�Wimp_OpenTemplate Syntax: <os_error> *Wimp_OpenTemplate (char *name); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function opens the specified template file and reads in some header information. Only one template file may be open at a time. You can now call <Wimp_LoadTemplate> to load each template and then <Wimp_CloseTemplate> to close the file.DATAWimp_OpenWindow Syntax: <os_error> *Wimp_OpenWindow (<window_openblock> *block); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function updates the list of active windows (ones that are to be displayed).DATAwimp_palettestr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a complete Wimp palette: {wrap off} \{ <wimp_paletteword> c[16]; <wimp_paletteword> screenborder; <wimp_paletteword> mouse1, mouse2, mouse3; }DATA�wimp_paletteword This type is defined in <wimp.h=>wimp_h>. It is a union used to hold a palette word: \{ struct \{ char gcol; char red; char green; char blue; } bytes; int word; }DATAWimp_PlotIcon Syntax: <os_error> *Wimp_PlotIcon (<icon_block> *fakeicon); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_ploticon=>wimp_ploticon_>. This function can be used to plot an icon in a window during a window redraw or update loop. The icon doesn't exist as part of the window definition - instead its definition is given directly. In RISC OS 3 this can be called outside a redraw loop - in which case all coordinates are screen coords, not work area coords.DATA�wimp_ploticon Syntax: <os_error> *wimp_ploticon (<wimp_icon> *icon); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function plots the icon whose definition is given. It is not necessarily a real icon...DATA�wimp_point This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure for holding an {/}(x,y){/} pair. It is defined as: \{ int x, y; }DATA�wimp_pointer This type is defined in <TimsLib:Interface.h=>Interface> as the following structure: \{ int window_handle; int x0,y0,x1,y1; char ptr_validation[24]; } See the documentation provided with Interface for more details.DATA�Wimp_Poll Syntax: <os_error> *Wimp_Poll (<event_pollmask> mask, <event_pollblock> *event); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. See also the Desktop C function, <wimp_poll=>wimp_poll_>. This function polls the Wimp to see whether certain events have occurred. You must call it in the main loop of any program you write to run under the Wimp. The results of the poll are returned in /event/.DATA�Wimp_Poll3 Syntax: <os_error> *Wimp_Poll3 (<event_pollmask> mask, <event_pollblock> *event, void *word); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function polls the Wimp to see whether certain events have occurred. You must call it in the main loop of any program you write to run under the Wimp. The results of the poll are returned in /event/. /word/ contains the poll word (ignored if mask.data.r3ispollwordptr is zero).DATA9wimp_poll Syntax: <os_error> *wimp_poll (<wimp_emask> mask, <wimp_eventstr> *result); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions polls the next event from the Wimp. /mask/ masks out the events you do not want to receive. The event is returned in {/}*result{/}.DATA-Wimp_PollIdle Syntax: <os_error> *Wimp_PollIdle (<event_pollmask> mask, <event_pollblock> *block, int earliest); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. See the Desktop C function, <wimp_pollidle=>wimp_pollidle_> This function polls the Wimp to see whether certain events have occurred. You must call it in the main loop of any program you write to run under the Wimp. The results of the poll are returned in /event/. /earliest/ contains the earliest monotonic time that a null event will be returned.DATARWimp_PollIdle3 Syntax: <os_error> *Wimp_PollIdle3 (<event_pollmask> mask, <event_pollblock> *block, int earliest, void *word); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function polls the Wimp to see whether certain events have occurred. You must call it in the main loop of any program you write to run under the Wimp. The results of the poll are returned in /event/. /earliest/ contains the earliest monotonic time that a null event will be returned. /word/ contains the poll word (ignored if {/}mask.data.r3ispollwordptr{/} is zero).DATA?wimp_pollidle Syntax: <os_error> *wimp_pollidle (<wimp_emask> *mask, <wimp_eventstr> *result, int earliest); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function is like <wimp_poll=>wimp_poll_>, but does not return before the monotonic time /earliest/ unless something happens.DATAcWimp_ProcessKey/wimp_processkey Syntax: <os_error> *Wimp_ProcessKey (int ch); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> <wimp.h=>wimp_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. This is called {*}wimp_processkey{*} in Desktop C. This function causes the Wimp to offer the given character to other applications. It should be used for two purposes: {tab} � Pass on keypresses you don't understand. � Insert keypresses into the keypress buffer. You should not insert more than a couple of characters at a time in this way. These characters take precedence over characters actually typed.DATA�wimp_pshapestr This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold pointer shape data: \{ int shape_num; char *shape_data; int width, height; int activex, activey; }DATA4Wimp_ReadPalette Syntax: <os_error> *Wimp_ReadPalette (<palette_block> *palette); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_readpalette=>wimp_readpalette_> This function reads the whole palette into the block pointed to by /palette/.DATA�wimp_readpalette Syntax: <os_error> *wimp_readpalette (wimp_palettestr *pal); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function reads the current Wimp palette into /pal/.DATAKWimp_ReadPixTrans Syntax: <os_error> *Wimp_ReadPixTrans (int index, void *area, void *sprite, <scale_block> *scale, char *trans); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_readpixtrans=>wimp_readpixtrans_> This function find out how the Wimp would plot the given sprite. For high quality sprite plotting, you should use <ColourTrans=>ColourTran> instead. {tab} 0 \<= /index/ \<= 255 : sprite in system area 256 \<= /index/ \<= 511 : sprite in user area, /sprite/ points to name. 512 \<= /index/ \<= 767 : sprite in user area, /sprite/ points to sprite {tab} /area/ contains the sprite area pointer, 1 for Wimp area, or 0 for system area. /sprite/ contains pointer to sprite. On exit, /scale/ and /trans/ will contain information on how the Wimp will plot the sprite.DATA!wimp_readpixtrans Syntax: <os_error> *wimp_readpixtrans (<sprite_area> *area, <sprite_id> *id, <sprite_factors> *factors, <sprite_pixtrans> *pixtrans); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function tells you how the Wimp will plot a sprite.DATA�wimp_rect This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding a rectangle in terms of two corners. It is defined as: \{ <wimp_point> min; <wimp_point> max; }DATA;wimp_redraw_wind Syntax: <os_error> *wimp_redraw_wind (<wimp_redrawstr> *blk, <BOOL> *more); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions redraws the window outline and icons. It returns <TRUE> in {/}*more{/} if there is more to be drawn with <wimp_get_rectangle>.DATA�wimp_redrawstr This type is defined in <wimp.h=>wimp_h>. It is a structure containing data for <wimp_redraw_wind> etc. \{ <wimp_w> w; <wimp_box> box; int scx, scy; <wimp_box> g; }DATA�Wimp_RedrawWindow Syntax: <os_error> *Wimp_RedrawWindow (<window_redrawblock> *blk, <BOOL> *more); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function is used to start a redraw of the parts of a window that are not up to date. It must be called as the first Wimp operation after the Wimp_Poll which returned a Redraw_Window_Request. Wimp_RedrawWindow draws the window outline, issues VDU 5, and then exits via <Wimp_GetRectangle>, which returns the coordinates of the first invalid rectangle of the work area. It also returns a flag /more/ saying whether there is anything to redraw.DATA3Wimp_ReportError Syntax: <os_error> *Wimp_ReportError (os_error *err, int flags, char *name); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_reporterror=>wimp_reporterror_> This function provides a built-in means for reporting errors that may occur (but <DeskLib:Msgs.h=>Msgs> has better ways). The error is given in /err/. The flags are passed as an /int/ (but this can be cast from an <error_flags>). /name/ is the task name to be placed in the title bar and must be less than 20 characters.DATAwimp_reporterror Syntax: <os_error> *wimp_reporterror (os_error *err, <wimp_errflags> flags, char *name); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function reports the error in /err/. /name/ appears in the title bar.DATA-Wimp_ReportErrorR Syntax: int Wimp_ReportErrorR (<os_error> *err, int flags, char *name); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Icon selected, 0 for none. This function is identical to <Wimp_ReportError> but in addition reports whether OK (1) or Cancel (2) was selected.DATALwimp_save_fp_state_on_poll Syntax: <os_error> *wimp_save_fp_state_on_poll (void); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions activates saving of FP state on calls to <wimp_poll=>wimp_poll_> and <wimp_pollidle=>wimp_pollidle_>; this is needed if you use ANY floating point at all.DATAWimp_SaveFPStateOnPoll Syntax: <os_error> *Wimp_SaveFPStateOnPoll(void); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function tells DeskLib to save the floating point status when calling <Wimp_Poll>.DATA�Wimp_SendMessage Syntax: <os_error> *Wimp_SendMessage (<event_type> type, <message_block> *msg, <message_destinee> dest, <icon_handle> ic); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_sendmessage=>wimp_sendmessage_>. This function sends a message to a task or broadcasts to all tasks. /type/ contains the message code, /msg/ contains the message data. /dest/ contains the task handle/window handle to send the message to, or 0 to broadcast it. If /dest/ is the icon bar then /ic/ contains the icon number. Often this is used to send user messages, but it can be used for any WIMP event.DATAwimp_sendmessage Syntax: <os_error> *wimp_sendmessage (<wimp_etype> code, <wimp_msgstr> *msg, <wimp_t> dest); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function send the message /msg/ to the given destination with the event code specified.DATA+wimp_sendwmessage Syntax: <os_error> *wimp_sendwmessage (<wimp_etype> code, <wimp_msgstr> *msg, <wimp_w> win, <wimp_i> icon); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function send the message /msg/ to the given window/icon with the event code specified.DATA�wimp_set_caret_pos Syntax: <os_error> *wimp_set_caret_pos (<wimp_caretstr> *blk); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function sets the caret position.DATA�wimp_set_extent Syntax: <os_error> *wimp_set_extent (<wimp_redrawstr> *redraw); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function alters the extent of a window's work area.DATALwimp_set_icon_state Syntax: <os_error> *wimp_set_icon_state (<wimp_w> win, <wimp_i> icon, <wimp_iconflags> v, <wimp_iconflags> m); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions sets the icon state of the given icon as:{wrap off} {fCode;align centre}new_state = (old_state & ~m) ^ v;DATA�wimp_set_point_shape Syntax: <os_error> *wimp_set_point_shape (<wimp_pshapestr> *pointer); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function sets the pointer shape.DATA�Wimp_SetCaretPosition Syntax: <os_error> *Wimp_SetCaretPosition (<caret_block> *caret); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function removes the caret from its old position and redraws it in a new position, as defined by /caret/. If {/}caret->height{/} is -1 then the offset and height are calculated from the window, icon and index. If {/}caret->index{/} is -1 then the index and height are calculated from the window, icon and offset.DATAWimp_SetColour Syntax: <os_error> *Wimp_SetColour (int col); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See the funtion <wimp_setcolour=>wimp_setcolour_> This function sets the current graphics colour and plot action to one of the 16 standard Wimp colours. /col/ has the following format: _Bits_ _Meaning_ 0-3 Wimp <colour number=>w_colpal_> 4-6 GCOL <action=>VDU:18a> 7 0=foreground, 1=background. Cast /col/ as a <wimp_colour> for ease of use.DATA�wimp_setcolour Syntax: <os_error> *wimp_setcolour (int col); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function sets the current Wimp colour.DATAWimp_SetExtent Syntax: <os_error> *Wimp_SetExtent (<window_handle> window, <wimp_box> *ext); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function sets the work area extent of the specified window to be the box given in /ext/.DATA�Wimp_SetFontColours Syntax: <os_error> *Wimp_SetFontColours (int foreground, int background); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> <wimp.h=>wimp_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. Called {*}wimp_setfontcolours{*} in Desktop C. This function sets the anti-aliased font colours from the two Wimp colours given. The colours will not be preserved over calls to <Wimp_Poll>.DATA`Wimp_SetIconState Syntax: <os_error> *Wimp_SetIconState (<window_handle> win, <icon_handle> icon, int value, int mask); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function sets the given icon state (ie its flags) as follows: {wrap off;align centre} new-state = (old-state AND NOT mask) EOR valueDATAcWimp_SetMode Syntax: <os_error> *Wimp_SetMode (int <mode=>VDU.22a>); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See <wimp_setmode=>wimp_setmode_> This function changes the display mode used by the Wimp. It should not be used under normal circumstances as your program should run in any mode.DATA�wimp_setmode Syntax: <os_error> *wimp_setmode (int mode); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function sets the screen mode.DATAvWimp_SetPalette Syntax: <os_error> *Wimp_SetPalette (<palette_block> *palette); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See the function <wimp_setpalette=>wimp_setpalette_>. This function sets the whole palette from the block pointed to by /palette/. In non-16 colour modes, you must also redraw the screen.DATA�wimp_setpalette Syntax: <os_error> *wimp_setpalette (<wimp_palettestr> *pal); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function sets the current Wimp palette to /pal/.DATACWimp_SetPointerShape Syntax: <os_error> *Wimp_SetPointerShape (<pointer_shapeblock> *shape); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function sets the shape and active point of the pointer. You should use <Wimp_SpriteOp> with R0=36 in preference to this function.DATAXWimp_SlotSize Syntax: <os_error> *Wimp_SlotSize (int *current, int *next, int *free); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> <wimp.h=>wimp_h> (Desktop C) Returns: Pointer to error, or <NULL> if none. Called {*}wimp_slotsize{*} in Desktop C. This function can be used to read or set the size of the current slot (ie your program's slot size) and the next slot (the default slot size). To alter one of the values, place the new value in one of the variables whose pointer is given (you cannot alter the free space). To just read it, use -1 instead. On exit, the new values will be returned.DATA�wimp_spritearea This macro is defined in <pointer.h=>pointer>, for use with the function <pointer_set_shape>, to select the Wimp sprite area. It is defined as: {fCode;align centre}((<sprite_area> *) -1)DATA8Wimp_SpriteOp Syntax: <os_error> *Wimp_SpriteOp (<_kernel_swi_regs> *registers); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See also <wimp_spriteop=>wimp_spriteop_> This function allows operations on Wimp sprites without having to specify the sprite area pointer. {/}registers.r[0]{/} contains the reason code, {/}r[2]{/} contains a pointer to the sprite name, and {/}r[3]{/} onwards contain the parameters. Only read operations are allowed. This call is based on the SWI <OS_SpriteOp=>SWI:OS_SpriteOp>.DATA�wimp_spriteop Syntax: <os_error> *wimp_spriteop (int reason, char *name); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function calls the SWI <Wimp_SpriteOp=>SWI:Wimp_SpriteOp>.DATA�wimp_spriteop_full Syntax: <os_error> *wimp_spriteop_full (os_regset *r); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function calls the SWI <Wimp_SpriteOp=>SWI:Wimp_SpriteOp>.DATA�Wimp_StartTask Syntax: <os_error> *Wimp_StartTask (char *command); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: see <wimp_starttask=>wimp_starttask_>. This function is used to start a task from within a program. The text in /command/ can be any * Command which will cause a Wimp program to be executed. Control will return to your program when the new task exits, or calls <Wimp_Poll>.DATA�wimp_starttask Syntax: <os_error> *wimp_starttask (char *command); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function executes the given star command as a Wimp task.DATA�wimp_t This type is defined in <wimp.h=>wimp_h> as a type capable of containing a Wimp task handle. It is actually defined as an 'int'.DATA�wimp_taskclose Syntax: <os_error> *wimp_taskclose (wimp_t t); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function deregisters your program with the Wimp. /t/ is your task handle.DATA�wimp_taskinit Syntax: <os_error> *wimp_taskinit (char *name, int *version, wimp_t *t); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions registers your application with the Wimp. /name/ is the name of your program, {/}*version{/} is the Wimp version number (* 100) you expect. On exit, {/}*version{/} contains the actual Wimp version and {/}*t{/} contains your task handle.DATAwimp_template This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold template data: \{ int reserved; <wimp_wind> *buf; char *work_free; char *work_end; <wimp_font_array> *font; char *name; int index; }DATA9Wimp_TransferBlock Syntax: <os_error> *Wimp_TransferBlock (<task_handle >source, void *sourcebuf, task_handle dest, void *destbuf, unsigned int length); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. Desktop C: See the function <wimp_transferblock=>wimp_transferblock_> This function copies a block of memory from the source task's address space ({/}sourcebuf{/}) to the desination task ({/}destbuf{/}). The task handles are given in /source/ and /dest/ respectively. The length of data to transfer is given in /length/.DATA`wimp_transferblock Syntax: <os_error> *wimp_transferblock (<wimp_t> sourcetask, char *sourcebuf, <wimp_t> desttask, char *destbuf, int buflen); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function transfers a block of memory from the source to the destination task and buffers. The length is given in /buflen/.DATAwimp.h Type definitions: #table columns 3 wimp_flags <wimp_iconflags> <wimp_bbits> <wimp_icondata> <wimp_wind> <wimp_icon> <wimp_openstr> <wimp_etype> <wimp_redrawstr> <wimp_caretstr> <wimp_msghdr> <wimp_msgdatasaveok> <wimp_msgdataopen> <wimp_msgramtransmit> <wimp_msghelpreply> <wimp_msgstr> <wimp_eventstr> <wimp_menuflags> <wimp_menuitem> <wimp_dragstr> <wimp_pshapestr> <wimp_template> <wimp_palettestr> <wimp_wcolours> <wimp_ibtype> <wimp_dragtype> <wimp_box> <wimp_winfo> <wimp_icreate> <wimp_wstate> <wimp_emask> <wimp_mousestr> <wimp_msgaction> <wimp_msgdatasave> <wimp_msgdataload> <wimp_msgramfetch> <wimp_msghelprequest> <wimp_msgprint> <wimp_eventdata> <wimp_menuhdr> <wimp_menuptr> <wimp_menustr> <wimp_which_block> <wimp_font_array> <wimp_paletteword> #endtableDATA[wimp_update_wind Syntax: <os_error> *wimp_redraw_wind (<wimp_redrawstr> *blk, <BOOL> *more); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This functions redraws the window outline and icons. It returns <TRUE> in {/}*more{/} if there is more to be drawn with <wimp_get_rectangle>. This can be called at any time.DATAWimp_UpdateWindow Syntax: <os_error> *Wimp_UpdateWindow (<window_redrawblock> *blk, <BOOL> *more); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function is used to start a redraw of the parts of a window that are not up to date. On entry, /blk/ contains the area of window to be updated. The function exits via <Wimp_GetRectangle>, which returns the coodinates of the first visible rectangle of the work area. It also returns a flag /more/ saying whether there is anything to redraw.DATA�wimp_w This type is defined in <wimp.h=>wimp_h> as a type capable of containing a Wimp window handle. It is actually defined as an /int/.DATAGwimp_wcolours This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the numbers of the Wimp window colours: \{ wimp_WCTITLEFORE, wimp_WCTITLEBACK, wimp_WCWKAREAFORE, wimp_WCWKAREABACK, wimp_WCSCROLLOUTER, wimp_WCSCROLLINNER, wimp_WCTITLEHI, wimp_WCRESERVED }DATAwimp_wflags This type is defined in <wimp.h=>wimp_h>. It is an enumerated type containing the values of the Wimp window flags: { wimp_WMOVEABLE, wimp_REDRAW_OK, wimp_WPANE, wimp_WTRESPASS, wimp_WSCROLL_R1, wimp_SCROLL_R2, wimp_REAL_COLOURS, wimp_BACK_WINDOW, wimp_HOT_KEYS, wimp_WOPEN, wimp_WTOP, wimp_WFULL, wimp_WCLICK_TOGGLE, wimp_WFOCUS, wimp_WBACK, wimp_WQUIT, wimp_WTITLE, wimp_WTOGGLE, wimp_WVSCR, wimp_WSIZE, wimp_WHSCR, wimp_WNEW }DATA�wimp_which_block This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold data for <wimp_which_icon>: \{ <wimp_w> window; int bit_mask; int bit_set; }DATAwimp_which_icon Syntax: <os_error> *wimp_which_icon (<wimp_which_block> *blk, <wimp_i> *res); Header: <wimp.h=>wimp_h> Returns: Pointer to error, or <NULL> if none. This function searches for icons which match a given state and creates a list in /res/.DATA Wimp_WhichIcon Syntax: <os_error> *Wimp_WhichIcon (<window_handle> win, <icon_handle> *icons, int mask, int settings); Header: <DeskLib:WimpSWIs.h=>WimpSWIs> Returns: Pointer to error, or <NULL> if none. This function searches for icons that match a given flag word. All icons in the given window will be checked, and the list placed in the array pointed to by /icons/. /mask/ determines which bits are to be checked, /settings/ says what should be looked for. Checks if: {fCode}iconflags & mask == settings & maskDATA�wimp_wind This type is defined in <wimp.h=>wimp_h>. It is a structure containing a window definition: \{ <wimp_box> box; int scx, scy; <wimp_w> behind; <wimp_wflags> flags; char colours[8]; <wimp_box> ex; <wimp_iconflags> titleflags; <wimp_iconflags> workflags; void *spritearea; int minsize; <wimp_icondata> title; int nicons; } This should be followed in memory by the icon definitions. /colours/ can be indexed with <wimp_wcolours>.DATA�wimp_winfo This type is defined in <wimp.h=>wimp_h>. It is a structure holding window information as returned by the function <wimp_get_wind_info>. \{ <wimp_w> w; <wimp_wind> info; }DATA�wimp_wstate This type is defined in <wimp.h=>wimp_h>. It is a structure used to hold a window state: \{ <wimp_openstr> o; <wimp_wflags> flags; }DATAiwin.h This header declares functions for central management of RISC OS windows. Functions: #Table 9 21 <win_init> <win_setmenuh> <win_getmenuh> <win_processevent> <win_activeinc> <win_activedec> <win_activeno> <win_give_away_caret> <win_settitle> <win_read_event_handler> <win_claim_idle_events> <win_idle_event_claimer> <win_claim_unknown_events> <win_unknown_event_claimer> <win_register_event_handler> <win_add_unknown_event_processor> <win_remove_unknown_event_processor> #EndTable #Table 4 21 Macros: <win_ICONBAR> <win_ICONBARLOAD> Types: <win_event_handler> <win_unknown_event_processor> #EndTableDATA.DeskLib:Window.h Version: 1.10 (Dec 1994) #line This header declares high-level functions for handling windows. (Oh, and one type too!) Functions: #Indent 2 #Table columns 2 <Window_Create> <Window_Show> <Window_CreateAndShow> <Window_Hide> <Window_Delete> <Window_GetInfo> <Window_GetInfo3> <Window_ParentName> <Window_AutoHelp> <Window_HelpHandler> <Window_ModeChange> <Window_SetTitle> <Window_BringToFront> <Window_ConstrainMouse> <Window_SetExtent> <Window_ForceRedraw> <Window_GetCoords> #EndTable #Indent 0 Type: #indent 2 <window_openpos>DIR$���BF���r�K&�AutoHelp�EF���X�A&hblockHF����wA&'colourindices4IF���jK&�Create�JF����uK&�CreateAndShow�KF�����K&NDeleteMF�����X&DeleteIncMenus NF���`A&�flags�SF���:�X&�ForceCompleteRedraw�TF���z�K&oGetInfo<VF����n7&�handle�VF����L&fHelpHandler(YF����K& Hide4ZF���;�7&�ICONBAR�ZF���c�A&�info�[F���!sA&�minsizex\F���5L&yModeChange�]F����X&�Move�^F�����A&'openblock�_F����ZK&�openpos�aF�����A&�outlinehbF����K&YParentName�cF���j�A&"redrawblock�dF�����X&�Resize�eF����X&�Scroll�fF���؞X&�SetFocus`gF����&L&*SetTitle�hF����oK&Show�iF��� �A&�statexjF���Q�X&TL�kF���~�K&uGetInfo3mF����aL&�BringToFront�mF���Y�L&ConstrainMouse�nF���N�L&�ForceRedraw�oF���3�L&�GetCoordsDATA�Window_AutoHelp Syntax: <BOOL> Window_AutoHelp (<window_handle> win, <icon_handle> icon); Header: <DeskLib:Window.h=>Window> Returns: <TRUE> if successful. This function adds an event handler (see <Event>) for the given window and icon. Every HelpRequest message will then by answer by getting a message from your message file (see <Msgs>). The message tag is given as: {fCode} templatename.iconnumber{f} eg{fCode} mainwind.-1{f} (no icon). You can use an icon number of "*" in the messages file to respond to all help requests without specific help. All this function does is: {fCode;align centre}<Event_Claim>(event_USERMESSAGERECORDED, win, icon, <Window_HelpHandler>, <NULL>);DATAhwindow_block This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure holding a complete window definition (except for the icons) as used by <Wimp_CreateWindow>: \{ <wimp_box> screenrect; <wimp_point> scroll; <window_handle> behind; <window_flags> flags; char colours[8]; <wimp_box> workarearect; <icon_flags> titleflags; icon_flags workflags; void *spritearea; <window_minsize> minsize; <icon_data> title; unsigned int numicons; } Immediately after this in memory are placed the icon definitions as a series of <icon_block>s.DATA'window_colourindices This enumerated type is defined in <DeskLib:Wimp.h=>Wimp> as follows: \{ windowcol_TITLEFORE = 0, windowcol_TITLEBACK, windowcol_WORKFORE, windowcol_WORKBACK, windowcol_SCROLLBACK, windowcol_SCROLLFORE, windowcol_TITLEHILITE }DATA�Window_Create Syntax: <window_handle> Window_Create (char *name, int maxtitlesize); Header: <DeskLib:Window.h=>Window> Returns: Window handle of new window. This function finds the named window template (loaded with <Template_LoadFile>) and creates a copy of the window which it then passes to the wimp using <Wimp_CreateWindow>. For details of /maxtitlesize/, see <Template_Clone>.DATA�Window_CreateAndShow Syntax: <window_handle> Window_CreateAndShow (char *name, int maxtitlesize, <window_openpos> pos); Header: <DeskLib:Window.h=>Window> Returns: New window handle. This function combines <Window_Create> and <Window_Show>.DATANWindow_Delete Syntax: void Window_Delete (<window_handle> win); Header: <DeskLib:Window.h=>Window> This function deletes any window. If the window was created with <Window_Create>, then the memory used by the window is freed. This function also removes any Event handler attached to the window (see <DeskLib:Event.h=>Event>).DATAWindow_DeleteIncMenus Syntax: void Window_DeleteIncMenus (<window_handle> win); Header: <TimsLib:Window.h=>Window_TL> This function detaches all menus from the given window and then deletes the window. It does this by calling <Menu_DetachMenu> and then <Window_Delete>.DATA�window_flags This type is defined in <DeskLib:Wimp.h=>Wimp>. It provides easy access to window flags, both as individual bits and to their overall value. It is defined as the following union: \{ struct \{ unsigned int hastitle : 1; unsigned int moveable : 1; unsigned int hasvscroll : 1; unsigned int hashscroll : 1; unsigned int autoredraw : 1; unsigned int pane : 1; unsigned int nobounds : 1; unsigned int nobackclose : 1; unsigned int scrollrq : 1; unsigned int scrollrqdebounced : 1; unsigned int realcolours : 1; unsigned int backwindow : 1; unsigned int hotkeys : 1; unsigned int keeponscreen : 1; unsigned int ignoreright : 1; unsigned int ignorebottom : 1; unsigned int open : 1; unsigned int top : 1; unsigned int fullsize : 1; unsigned int istoggling : 1; unsigned int focus : 1; unsigned int forceonce : 1; unsigned int dummy22 : 1; unsigned int dummy23 : 1; unsigned int backicon : 1; unsigned int closeicon : 1; unsigned int titlebar : 1; unsigned int toggleicon : 1; unsigned int vscroll : 1; unsigned int adjusticon : 1; unsigned int hscroll : 1; unsigned int newflags : 1; } data; int value; } Note that {/}data.newflags{/} should always be <TRUE>, and {/}data.hastitle{/}, /hasvscroll/, /hashscroll/, and /nobackclose/ should not be used in that case.DATA�Window_ForceCompleteRedraw Syntax: void Window_ForceCompleteRedraw (<window_handle> window); Header: <TimsLib:Window.h=>Window_TL> This function forces a redraw of the entire work area of the given window.DATAoWindow_GetInfo Syntax: void Window_GetInfo (<window_handle> win, <window_info> *res); Header: <DeskLib:Window.h=>Window> This function is simply a front end to <Wimp_GetWindowInfo>. However, no icon definitions are returned. The window information is placed in the block pointed to be /res/. On RISC OS 3 you should use the better <Window_GetInfo3> instead.DATA�window_handle This type is defined in <DeskLib:Wimp.h=>Wimp> as a type holding a window handle. It is defined as an /int/.DATAfWindow_HelpHandler Syntax: <BOOL> Window_HelpHandler (<event_pollblock> *event, void *ref); Header: <DeskLib:Window.h=>Window> Returns: <TRUE> if a help reply sent. This function is an event handler which can be used with either <Event_Claim> or <EventMsg_Claim>. It responds to HelpRequest messages by getting a message from your message file (see <Msgs>). The message tag is given as: {fCode} templatename.iconnumber{f} eg. {fCode} infowind.4 mainwind.-1{f} (no icon). You can use an icon number of "*" in the messages file to respond to all help requests without specific help.DATA Window_Hide Syntax: void Window_Hide (<window_handle> win); Header: <DeskLib:Window.h=>Window> This function removes the specified window from the display, but does not delete its definition. It is equivalent (and is in fact a macro for) <Wimp_CloseWindow>.DATA�window_ICONBAR This macro is defined in <Wimp.h=>Wimp> as a macro containing the window handle of the icon bar. It is defined as -2.DATA�window_info This type is defined by <DeskLib:Wimp.h=>Wimp>. It is a structure holding window information as returned by the function <Wimp_GetWindowInfo>. \{ <window_handle> window; <window_block> block; }DATA�window_minsize This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure holding the minimum width/height of the window as 16-bit integers: \{ int x : 16; int y : 16; }DATAyWindow_ModeChange Syntax: void Window_ModeChange (void); Header: <DeskLib:Window.h=>Window> This function will go through all of your templates (which must ALL have been created using <Window_Create>) and re-find the outline fonts. This needs to be done on a mode change. Fonts in window titles are not fixed with this function. See the function <Handler_ModeChange>.DATA�Window_Move Syntax: void Window_Move (<window_handle> win); Header: <TimsLib:Window.h=>Window_TL> This function causes the window be be dragged, as if the user had dragged on the title bar.DATA'window_openblock This type is defined in <DeskLib:Wimp.h=>Wimp> as a type capable of holding the data used by <Wimp_OpenWindow>. It is defined as the following structure: \{ <window_handle> window; <wimp_box> screenrect; <wimp_point> scroll; window_handle behind; }DATA�window_openpos This type is defined in <DeskLib:Window.h=>Window.>. It is an enumerated type used by DeskLib functions to decide where to open a window: {wrap off} \{ open_WHEREVER, /* As specified in template */ open_CENTERED, open_CENTEREDUNDERPOINTER, open_OVERCARET, /* over the caret, failing that then centred */ open_UNDERPOINTER, open_NEARLAST /* Slightly offset from the last window opened */ }DATA�window_outline This type is defined in <DeskLib:Wimp.h=>Wimp> as a structure suitable for use with the function <Wimp_GetWindowOutline>. \{ <window_handle> window; <wimp_box> screenrect; }DATAYWindow_ParentName Syntax: void Window_ParentName (<window_handle> win, char *name); Header: <DeskLib:Window.h=>Window> This function finds the template name from which this window was created and places it in the buffer pointed to by /name/. This only works if the window was created with <Window_Create>. The name is 8 characters only.DATA"window_redrawblock This type is defined in <DeskLib:Wimp.h=>Wimp>. It is a structure containing information suitable for <Wimp_RedrawWindow> and <Wimp_GetRectangle>. \{ <window_handle> window; <wimp_box> rect; <wimp_point> scroll; <wimp_box> cliprect; }DATA�Window_Resize Syntax: void Window_Resize (<window_handle> win); Header: <TimsLib:Window.h=>Window_TL> This function causes the window be be resized, as if the user had dragged on the resize icon.DATA�Window_Scroll Syntax: void Window_Scroll (<window_handle> win, <scroll_type> scroll); Header: <TimsLib:Window.h=>Window_TL> This function causes the window be be dragged according to the scroll type.DATA�Window_SetFocus Syntax: void Window_SetFocus (<window_handle> window); Header: <TimsLib:Window.h=>Window_TL> This function causes the given window to gain the input focus, but does not actually place the caret.DATA*Window_SetTitle Syntax: void Window_SetTitle (<window_handle> win, char *title); Header: <DeskLib:Window.h=>Window> This function changes the title in the given window to be that pointed to by /title/. If the title is not indirected, the text cannot be changed (but no error is generated).DATAWindow_Show Syntax: void Window_Show (<window_handle> win, <window_openpos> pos); Header: <DeskLib:Window.h=>Window> This function shows the window whose handle is given on the screen. It can be used with any window, not just those created with <Window_Create>.DATA�window_state This type is defined by <DeskLib:Wimp.h=>Wimp>. It is a structure holding a window state as returned by <Wimp_GetWindowState>. \{ <window_openblock> openblock; <window_flags> flags; }DATATimsLib:Window.h This header provides a few handy window-based functions. Functions: #Table 3 19 <Window_Move> <Window_Resize> <Window_Scroll> <Window_DeleteIncMenus> <Window_ForceCompleteRedraw> <Window_SetFocus> #EndTable Types: {align centre}<scroll_type>DATAuWindow_GetInfo3 Syntax: void Window_GetInfo3 (<window_handle> win, <window_info> *res); Header: <DeskLib:Window.h=>Window> This function is simply a front end to <Wimp_GetWindowInfo>. However, no icon definitions are returned. The window information is placed in the block pointed to be /res/. This is the fast version, on RISC OS 2 you must use <Window_GetInfo>.DATA�Window_BringToFront Syntax: void Window_BringToFront (<window_handle> win); Header: <DeskLib:Window.h=>Window> Brings the window /win/ to the front of the window stack.DATAWindow_ConstrainMouse Syntax: <os_error> *Window_ConstrainMouse (<window_handle> win); Header: <DeskLib:Window.h=>Window> Returns: Pointer to error, or <NULL> if none. Restricts the pointer to the bounds of window /win/. Actually just a macro for <Pointer_RestrictToWindow>.DATA�Window_ForceRedraw Syntax: void Window_ForceRedraw (<window_handle> win, int x0, int y0, int x1, int y1); Header: <DeskLib:Window.h=>Window> Forces a redraw of the rectangle of the window /win/ delimited by {/}(x0,y0){/} and {/}(x1,y1){/}.DATA�Window_GetCoords Syntax: void Window_GetCoords (<window_handle> win, <convert_block> *blk); Header: <DeskLib:Window.h=>Window> Fills /blk/ with the correct information for window /win/.DIR$pp�sF������$�activedec�tF������$gactiveincDvF������$�activenowF������$�claim_idle_events�wF���v��$�claim_unknown_events�xF���"�$ event_handler�yF����w�$�getmenuhtzF���b��$�give_away_caret�{F����3�"BICONBAR8|F����3�"GICONBARLOAD�|F�����$�idle_event_claimerL}F����n�$�init�}F���k}�$�processevent�~F���r��$Nread_event_handler �F�����$�register_event_handler�F���t�$�setmenuh�F������$*settitle�F���7��$�unknown_event_claimer�F����)�$Bunknown_event_processor8�F��� �$�add_unknown_event_processor�F���5�$�remove_unknown_event_processorDATA�win_activedec Syntax: void win_activedec (void); Header: <win.h=>win> This function decrements by one the win module's idea of the number of active windows. <event_process>() calls <exit>() when this reaches zero.DATAgwin_activeinc Syntax: void win_activeinc (void); Header: <win.h=>win> This function increments by one the win module's idea of the number of active windows. <event_process=>event_process_>() calls <exit>() when this reaches zero, so if you want to remain running with no active windows, you must increment it yourself. <baricon>() calls this for you.DATA�win_activeno Syntax: int win_activeno (void); Header: <win.h=>win> Returns: Number of active windows. This function returns the number of active windows owned by your program.DATA�win_claim_idle_events Syntax: void win_claim_idle_events (<wimp_w> w); Header: <win.h=>win> This function causes "idle" events to be delivered to the given window. To cancel this, call it with /w/ = -1.DATA�win_claim_unknown_events Syntax: void win_claim_unknown_events (<wimp_w> w); Header: <win.h=>win> Causes any unknown or non-window-specific events to be passed to given window. Call with /w/ = -1 to cancel this.DATA win_event_handler This type is defined in <win.h=>win>. It is a function with the following prototype: {wrap off} {fCode;align centre}void myfunc (<wimp_eventstr> *e, void *handle);{f;align} {wrap} It is a function used to process events for a given window.DATA�win_getmenuh Syntax: void *win_getmenuh (<wimp_w> win); Header: <win.h=>win> Returns: Pointer to the attached menu. This functions gets the menu attached to the given window.DATA�win_give_away_caret Syntax: void win_give_away_caret (void); Header: <win.h=>win> This function gives the caret away to the open window at the top of the window stack (if that window is owned by your program). If the top window is interested it will take the caret else nothing happens. Polling must be done using <wimpt> or a higher level eg <event_process=>event_process_>.DATABwin_ICONBAR This macro is defined in <win.h=>win> as (-3).DATAGwin_ICONBARLOAD This macro is defined in <win.h=>win> as (-99).DATA�win_idle_event_claimer Syntax: <wimp_w> win_idle_event_claimer (void); Header: <win.h=>win> Returns: Handle of window claiming idle events. -1 is returned if no window is claiming idle events.DATA�win_init Syntax: <BOOL> win_init (void); Header: <win.h=>win> Returns: <TRUE> if successful. This function initialises the win system.DATA�win_processevent Syntax: <BOOL> win_processevent (<wimp_eventstr> *e); Header: <win.h=>win> Returns: <TRUE> if event processed. This function delivers an event to its relevant window. It is called by <event_process=>event_process_>.DATANwin_read_event_handler Syntax: <BOOL> win_read_event_handler (<wimp_w> win, <win_event_handler> *func, void **handle); Header: <win.h=>win> Returns: <TRUE> if the given window is registered. This function reads the event handler for a given window and returns it and its handle in {/}*func{/} and {/}*handle{/} respectively.DATA�win_register_event_handler Syntax: void win_register_event_handler (<wimp_w> win, <win_event_handler> func, void *handle); Header: <win.h=>win> This function installs an event handler function for a given window. /handle/ is passed straight to the handler function. To remove a handler, call with /func/ = <NULL>. To catch key events for icon bar icons, register a handler for the window <win_ICONBAR>. To catch load event for an icon on the icon bar use <win_ICONBARLOAD>.DATA�win_setmenuh Syntax: void win_setmenuh (<wimp_w> win, void *handle); Header: <win.h=>win> This functions attaches the given menu structure (pointed to by /handle/) to the given window. This is used by <event_attachmenu>.DATA*win_settitle Syntax: void win_settitle (<wimp_w> win, char *newtitle); Header: <win.h=>win> This function changes the _INDIRECTED TEXT_ title icon of the given window. Any windows created from the same template will have their titles changed, unless they were copied using <template_copy>.DATA�win_unknown_event_claimer Syntax: <wimp_w> win_unknown_event_claimer (void); Header: <win.h=>win> Returns: Handle of window claiming events. Tells you which window is claiming unknown events (or -1 for none).DATABwin_unknown_event_processor This type is defined in <win.h=>win>. It is a function used for processing unknown events (Shock! Horror!) with a similar prototype to: {wrap off} {fCode;align centre}<BOOL> myfunc (<wimp_eventstr> *e, void *handle);{f;align;wrap} It should return <TRUE> if it has processed the event.DATA�win_add_unknown_event_processor Syntax: void win_add_unknown_event_processor (<win_unknown_event_processor> func, void *handle); Header: <win.h=>win> This function adds a handler for unknown events onto the front of the queue of such handlers. Known events are: ENULL, EREDRAW, ECLOSE, EOPEN, EPTRLEAVE, EPTRENTER, EKEY, ESCROLL, EBUT and ESEND/ESENDWANTACK for the following msg types: MCLOSEDOWN, MDATASAVE, MDATALOAD, MHELPREQUEST.DATA�win_remove_unknown_event_processor Syntax: void win_remove_unknown_event_processor (<win_unknown_event_processor> func, void *handle); Header: <win.h=>win> This function removes a handler for unknown events from the queue of such handlers.DIR$��܋F����2E&zcaret_X�F�����$�col_�F���~�D&8colpal_$�F���6!E&Edragdat_l�F����CE&�events_�F�����$dfont_l�F����A�$�icon_l�F����E&Ricondat_��F����88&�id_bord_��F���+�7&Zid_but_�F���s8&�id_flag_�F���@+8&�id_val_�F�����$�init_��F�����E&�menus_0�F���Z<E&Amessdat_t�F����ME&�misc_X�F�����A&�mouseinf_�F���̤�$�open_��F����*�$Ytemp_ܢF���A(�"<wimperr_�F���7E&�windat_�F��� �A&�mouseinf_macDATAzWimp caret/keypress data Types: #table columns 2 <key_press> <caret_block> <key_block> <pollword_block> #endtableDATA�Colour Handling #align centre <wimp_readpalette=>wimp_readpalette_> <wimp_setpalette=>wimp_setpalette_> <wimp_setcolour=>wimp_setcolour_>DATA8Wimp colours/palettes Types: #indent 6 #Table columns 3 <wimp_colour> <palette_entry> <palette_block> #EndTable #indent Macros: The following macros are defined to represent the Wimp colours 0-15. WHITE and GREY0 are equivalent, as are BLACK AND GREY7. #indent 6 #Table columns 2 colour_WHITE colour_GREY0 colour_GREY1 colour_GREY2 colour_GREY3 colour_GREY4 colour_GREY5 colour_GREY6 colour_GREY7 colour_BLACK colour_DARK_BLUE colour_YELLOW colour_GREEN colour_RED colour_CREAM colour_ARMY_GREEN colour_ORANGE colour_LIGHT_BLUE colour_TRANSPARENT #EndTableDATAEWimp drag data Types: {align centre} <drag_type> <drag_block>DATA�Wimp events Types: #Table 3 17 <event_type> <event_pollmask> <scroll_rq> <event_data> <event_pollblock> #EndTable Macros: <wimp_NUMBEROFEVENTS>DATAdFont Handling #{align centre <wimp_setfontcolours> <wimp_set_caret_pos> <wimp_get_caret_pos>DATA�Icon Handling #table columns 2 <wimp_create_icon> <wimp_delete_icon> <wimp_set_icon_state> <wimp_get_icon_info> <wimp_drag_box> <wimp_which_icon> <wimp_processkey> <wimp_ploticon=>wimp_ploticon_> <wimp_readpixtrans=>wimp_readpixtrans_> #endtableDATARWimp icon data Types: #Table 2 15 <icon_flags> <icon_indtext> <icon_indsprite> <icon_data> <icon_block> <icon_createblock> #EndTable Macros: #Table 4 25 <Button types=>w_id_but_> <Icon flag bits=>w_id_flag_> <Validation characters=>w_id_val_> <Border types=>w_id_bord_> <iconbar_RIGHT> <iconbar_LEFT> <window_ICONBAR> #EndTableDATA�Wimp icon border types These macros are defined in <DeskLib:Wimp.h=>Wimp>. They are the border types used by the Interface module (not RISC OS 3!). #indent 6 iconborder_PLINTH 0 iconborder_SURROUND 1 iconborder_OKBUTTON 2 iconborder_INDENT 3DATAZWimp icon button types These macros are defined in <DeskLib:Wimp.h=>Wimp>. #tab ,align right, iconbtype_NEVER 0 iconbtype_ALWAYS 1 iconbtype_AUTOREPEAT 2 iconbtype_CLICK 3 iconbtype_RELEASE 4 iconbtype_DOUBLECLICK 5 iconbtype_CLICKDRAG 6 iconbtype_RELEASEDRAG 7 iconbtype_DOUBLEDRAG 8 iconbtype_MENU 9 iconbtype_DOUBLECLICKDRAG 10 iconbtype_RADIO 11 iconbtype_RESERVED1 12 iconbtype_RESERVED2 13 iconbtype_WRITECLICKDRAG 14 iconbtype_WRITABLE 15 DATA�Wimp icon flag bits These macros are defined in <DeskLib:Wimp.h=>Wimp>. icon_TEXT 0x00000001 /* contains text */ icon_SPRITE 0x00000002 /* is a sprite */ icon_BORDER 0x00000004 /* has a border */ icon_HCENTRE 0x00000008 /* horizontally centred */ icon_VCENTRE 0x00000010 /* vertically centred */ icon_FILLED 0x00000020 /* filled background */ icon_FONT 0x00000040 /* anti-aliased font */ icon_NEEDSHELP 0x00000080 /* redraw needs help */ icon_INDIRECTED 0x00000100 /* data is 'indirected' */ icon_RJUSTIFY 0x00000200 /* right justified */ icon_ALLOWADJUST 0x00000400 /* multiple select with adjust */ icon_HALVESPRITE 0x00000800 /* plot sprites half-size */ icon_BUTTONTYPE 0x00001000 /* 4-bit field: button type */ icon_SELECTED 0x00200000 /* selected by user (inverted) */ icon_SHADED 0x00400000 /* cannot be selected (shaded) */ icon_DELETED 0x00800000 /* has been deleted */ icon_FORECOLOUR 0x01000000 /* 4-bit field: foreground colour */ icon_BACKCOLOUR 0x10000000 /* 4-bit field: background colour */ DATA�Wimp icon validation characters These macros are defined in <DeskLib:Wimp.h=>Wimp>. #indent 3 iconvalid_ALLOW 'A' iconvalid_BORDERTYPE 'R' iconvalid_DISPLAY 'D' iconvalid_FONTCOLOURS 'F' iconvalid_LINESPACE 'L' iconvalid_SPRITENAME 'S'DATA�Task Management Functions #Table 11 24 <wimp_initialise=>wimp_initialise_> <wimp_taskinit> <wimp_poll=>wimp_poll_> <wimp_pollidle=>wimp_pollidle_> <wimp_get_point_info> <wimp_set_point_shape> <wimp_closedown=>wimp_closedown_> <wimp_taskclose> <wimp_starttask=>wimp_starttask_> <wimp_setmode=>wimp_setmode_> <wimp_spriteop=>wimp_spriteop_> <wimp_spriteop_full> <wimp_baseofsprites=>wimp_baseofsprites_> <wimp_reporterror=>wimp_reporterror_> <wimp_sendmessage=>wimp_sendmessage_> <wimp_sendwmessage> <wimp_slotsize> <wimp_transferblock=>wimp_transferblock_> <wimp_commandwindow=>wimp_commandwindow_> <wimp_save_fp_state_on_poll> <wimp_corrupt_fp_state_on_poll> #EndTableDATA�Wimp menus Types: #table columns 2 <menu_ptr> <menu_flags> <menu_submenu=>menu_submenu_> <menu_item> <menu_block> #endtableDATAAWimp message data Types: #Table 7 21 <message_action> <message_block> <message_destinee> <message_header> <message_datasave> <message_datasaveack> <message_dataload> <message_dataopen> <message_ramfetch> <message_ramtransmit> <message_helprequest> <message_helpreply> <message_print> <message_menuwarn> #EndTableDATA�Miscellaneous Types: #Table 5 16 <wimp_point> <wimp_coord> <wimp_rect> <wimp_box> <window_handle> <icon_handle> <task_handle> <font_array> <template_block> <scale_block> #EndTable Macros: {align centre}<wimp_MAXNAME>DATA�Mouse/pointer info Types: #table columns 2 <button_state> <mouse_block> <pointer_shapeblock> #endtable <Macros=>w_mouseinf_mac> DATA�Window Handling Functions #Table 8 22 <wimp_create_wind> <wimp_delete_wind> <wimp_open_wind> <wimp_close_wind> <wimp_redraw_wind> <wimp_update_wind> <wimp_get_rectangle> <wimp_get_wind_state> <wimp_get_wind_info> <wimp_force_redraw> <wimp_create_menu> <wimp_decode_menu> <wimp_set_extent> <wimp_getwindowoutline=>wimp_getwindowoutline_> <wimp_blockcopy=>wimp_blockcopy_> <wimp_create_submenu> #EndTableDATAYTemplate Handling <wimp_open_template> <wimp_close_template> <wimp_load_template>DATA<Wimp errors Just one type is defined: <error_flags>.DATA�Window data Types: #Table 5 23 <window_flags> <window_minsize> <window_colourindices> <window_block> <window_openblock> <window_state> <window_info> <window_redrawblock> <window_outline> #EndTableDATA�Mouse/Pointer macros button_ADJUST 0x00000001 button_MENU 0x00000002 button_SELECT 0x00000004 button_DRAGADJUST 0x00000010 button_DRAGSELECT 0x00000040 button_CLICKADJUST 0x00000100 button_CLICKSELECT 0x00000400DIR$��`�F���V��$~xferrecv�F�����/�xferrecv_��F������$�xfersendt�F���� �/$XferSend_DATA~xferrecv.h The \<xferrecv.h> header declares functions for general purpose import of data by an icon drag. Functions: #indent 2 #Table columns 2 <xferrecv_checkinsert> <xferrecv_insertfileok> <xferrecv_checkprint> <xferrecv_printfileok> <xferrecv_checkimport> <xferrecv_doimport> <xferrecv_file_is_safe> #EndTable #indent Types: {align centre} <xferrecv_buffer_processor>DIR$��x�F���<��$�buffer_processor0�F���J��$Vcheckimport��F���W�$�checkinsert�F���Y}�$AcheckprintT�F���6��$�doimport��F����X&�Epilog��F������$ file_is_safeȱF���;k�$�insertfileok��F������$�printfileok��F���Q�X&1PrologܴF�����X&�TLDATA�xferrecv_buffer_processor This type is defined in <xferrecv.h=>xferrecv>. It is a function used to empty a buffer during data transfer. The function has the form: {wrap off} {fCode;align centre}<BOOL> myfunc (char **buffer, int *size);{f;align;wrap} It should empty the buffer; or it should extend it and return new values for its pointer and size. The function should return <FALSE> if it is unable to do either of these things.DATAVxferrecv_checkimport Syntax: int xferrecv_checkimport (int *size); Header: <xferrecv.h=>xferrecv> Returns: The file type. This function checks to see if the last Wimp event was a <DataSave=>SWI:wimp_um1> message onto your application. If so it returns the filetype and stores the estimated size in {/}*size{/}. If not it returns -1.DATA�xferrecv_checkinsert Syntax: int xferrecv_checkinsert (char **name); Header: <xferrecv.h=>xferrecv> Returns: File type, or -1. This function checks to see if the last Wimp event was a request to import a file (ie a <DataOpen=>SWI:wimp_um5> or <DataLoad=>SWI:wimp_um3> message). If so it returns the filetype and stores the file name pointer in {/}*name{/}. If not, it returns -1.DATAAxferrecv_checkprint Syntax: int xferrecv_checkprint (char **name); Header: <xferrecv.h=>xferrecv> Returns: File type. This function sets up an acknowledge to a PrintTypeOdd message and gets the file name and file type. You can then either print the file directly to "printer:" or output it to "\<Printer$Temp>".DATA�xferrecv_doimport Syntax: int xferrecv_doimport (char *buf, int size, <xferrecv_buffer_processor> *p; Header: <xferrecv.h=>xferrecv> Returns: Number of bytes transferred, or -1. This function replies to a <DataSave=>SWI:wimp_um1> message and loads data into a user-defined buffer of the given size. When this buffer is full, /p/ is called to empty it. This function supports RAM and scrap file transfer protocols.DATA�XferRecv_Epilog Syntax: void XferRecv_Epilog (void); Header: <TimsLib:XferRecv.h=>XferRecv_TL> This function should be after you have loaded a file. It sends a DataLoadAck message.DATA xferrecv_file_is_safe Syntax: <BOOL> xferrecv_file_is_safe (void); Header: <xferrecv.h=>xferrecv> Returns: <TRUE> if it is. This function checks if the file was received from a safe source ie the supplied filename will not change in the foreseeable future.DATA�xferrecv_insertfileok Syntax: void xferrecv_insertfileok (void); Header: <xferrecv.h=>xferrecv> This function deletes "\<Wimp$Scrap>" (if used) and sends a <DataLoadAck=>SWI:wimp_um4> message. Call this after loading the file.DATA�xferrecv_printfileok Syntax: void xferrecv_printfileok (int type); Header: <xferrecv.h=>xferrecv> This function replies to a PrintTypeOdd message with a PrintTypeKnown message. If printed indirectly, you should pass the file type back.DATA1XferRecv_Prolog Syntax: void XferRecv_Prolog (int *filetype, char *filename); Header: <TimsLib:XferRecv.h=>XferRecv_TL> This function should be called when you get a DataLoad or DataOpen message. It sets up an acknowledgement message. You should now load the file and then call <XferRecv_Epilog>.DATA�TimsLib:XferRecv.h This header declares two functions for handling received files ie files dragged to your application. Functions: #Table 1 20 <XferRecv_Prolog> <XferRecv_Epilog> #EndTableDATA�xfersend Syntax: <BOOL> xfersend (int filetype, char *name, int size, <xfersend_saveproc> save, <xfersend_sendproc> send, <xfersend_printproc> print, <wimp_eventstr> *e, void *handle); Header: <xfersend.h=>xfersend_h> Returns: <TRUE> if successful. See also the TimsLib function, <XferSend=>XferSend_>. This function should be called to initiate data transfer following a drag. Pass in the filetype and suggested name, and the three handler functions. /e/ is the event which started the export, /handle/ is a user-defined handle which is passed directly to the handlers, and /size/ is the estimated size of the file. If /send/ is 0 then no RAM transfer is used. If /print/ is 0 then 'save' is used instead.DIR$$$��F�����X&!Root��F����6�"%clear_unknownsȽF��� 7�"�close_on_xferT�F���7�":file_is_safe��F���7�"�h��F���!7�"�pipeP�F���,7�"�printFailed��F���47�"�printPrinted��F���<7�"�printproc��F���G7�"`read_last_ref��F�����X&�saveproc��F���[7�"(sendbuf��F���d7�"�sendprocl�F���l7�"�set_fileissafe`�F����X&�TLDATAXferSend Syntax: <BOOL> XferSend (int filetype, char *name, int size, <xfersend_saveproc> save, <event_pollblock> *e, void *handle); Header: <TimsLib:XferSend.h=>XferSend_TL> Returns: <TRUE> if successful. This function should be called to initiate data transfer following a drag. Pass in the filetype and suggested name, and handler function. /e/ is the event which started the export, /handle/ is a user-defined handle which is passed directly to the handlers, and /size/ is the estimated size of the file.DATA%xfersend_clear_unknowns Syntax: void xfersend_clearunknowns (void); Header: <xfersend.h=>xfersend_h> This function clears up any stray event processors left lying around by xfersend. It should be called whenever a transfer is finished (either normally or as the result of an error).DATA�xfersend_close_on_xfer Syntax: void xfersend_close_on_xfer (<BOOL> close, <wimp_w> win); Header: <xfersend.h=>xfersend_h> This function allows you to set a window to automatically close after data transfer. If 'close' is <TRUE> then the window 'win' will be closed after data transfer. You would normally use this to close, for example, the Save window after a file is saved.DATA:xfersend_file_is_safe Syntax: <BOOL> xfersend_file_is_safe (void); Header: <xfersend.h=>xfersend_h> Returns: <TRUE> if safe. This function checks whether the file's name can be reliably assumed not to change. Returns <TRUE> if the file recipient will not modify it, so you can change your window title.DATA�xfersend.h This header declares function for general purpose export of data by an icon drag. Functions: #Table 4 24 <xfersend > <xfersend_pipe > <xfersend_sendbuf > <xfersend_file_is_safe> <xfersend_set_fileissafe> <xfersend_close_on_xfer > <xfersend_clear_unknowns> <xfersend_read_last_ref > #EndTable Types: #Table 2 24 <xfersend_saveproc> <xfersend_sendproc> <xfersend_printproc> #EndTable Macros: #Table 1 24 <xfersend_printPrinter> <xfersend_printFailed> #EndTableDATA�xfersend_pipe Syntax: <BOOL> xfersend_pipe (int filetype, char *name, int size, <xfersend_saveproc> save, <xfersend_sendproc> send, <xfersend_printproc> print, void *handle, <wimp_t> task); Header: <xfersend.h=>xfersend_h> Returns: <TRUE> if successful. This function has the same effect as <xfersend>, but does not need to be passed a wimp event, simply a task handle 'task' to pass data to.DATA�xfersend_printFailed This macro is defined by <xfersend.h=>xfersend_h> as a value signifying that an error occurred while trying to print. It is defined as -2.DATA�xfersend_printPrinted This macro is defined by <xfersend.h=>xfersend_h> as a value signifying that a file was printed directly. It is defined as -1.DATA�xfersend_printproc This type is defined in <xfersend.h=>xfersend_h>. It is a function used to print a file. The function has the form: int myfunc (char *filename, void *handle); 'handle' is the handle passed to <xfersend> earlier. The function should either print the file directly, or save it into the given filename from where the printer driver will print it. It should return either the file type saved (if it was saved), <xfersend_printPrinted>, or <xfersend_printFailed>.DATA`xfersend_read_last_ref Syntax: int xfersend_read_last_ref (void); Header: <xfersend.h=>xfersend_h> Returns: my_ref value of last message sent. The my_ref value is needed for unsafe files. If they are made safe, you are send a DataSaved message with the reference (of course, this is irrelevant if you app modifies the data after saving...).DATA�xfersend_saveproc This type is defined in <xfersend.h=>xfersend_h> and <TimsLib:XferSend.h=>XferSend_TL>. It is a function used to save data to be transferred into a given file. The function has the form: {fCode;align centre}<BOOL> myfunc (char *filename, void *handle);{f;align} /filename/ is the name of the file to be saved, /handle/ is the handle passed to <xfersend> earlier. The function should return <TRUE> if it is successful.DATA(xfersend_sendbuf Syntax: <BOOL> xfersend_sendbuf (char *buffer, int size); Header: <xfersend.h=>xfersend_h> Returns: <TRUE> if successful. This function sends the buffer whose pointer and size are given to a receiver. This function should be called by an <xfersend_sendproc>.DATA�xfersend_sendproc This type is defined in <xfersend.h=>xfersend_h>. It is a function used to send a buffer of data. The function has the form: <BOOL> myfunc (void *handle, int *maxbuf); 'handle' is the handle passed to <xfersend> earlier. The function should call <xfersend_sendbuf> to send one buffer-full of data no bigger than '*maxbuf'. It should return <TRUE> if the data was successfully transmitted.DATA�xfersend_set_fileissafe Syntax: void xfersend_set_fileissafe (<BOOL> sf); Header: <xfersend.h=>xfersend_h> This function sets whether a file's name will remain unchanged during data transfer. If 'sf' is <TRUE> then the file is safe.DATA�TimsLib:XferSend.h This header declares a function for general purpose export of data by an icon drag. Function: <XferSend=>XferSend_> Type: <xfersend_saveproc>DIR$����F���Je�"�110X�F���Oe�"�120��F���[e�"�125h�F���fe�"�130�F����̳%�200DATA�Changes from version 1.00 -> 1.10 � Help for <TimsLib=>ro_tlib_> now added. � Version numbers added to <DeskLib=>ro_dlib_> help. � Help added for <DeskLib:Pane.h=>Pane>.DATA�Changes from version 1.10 -> 1.20 � Help for DeskLib updated to version 2.10 <Changes from version 1.00 -\> 1.10=>110>DATA�Changes from version 1.20 -> 1.25 Various changes at the request of Stallion: � Help added for <float.h=>float> � Help added for <locale.h=>locale> � Help added for <signal.h=>signal> � Author information removed � Comments on Desktop C removed Other changes: � Comment about obsolescence of TimsLib added � Various additions to help <Changes from version 1.10 -\> 1.20=>120>DATA�Changes from version 1.25 -> 1.30 No longer being sold by Stallion Software. � Maelstrom Software info added. <Changes from version 1.20 -\> 1.25=>125>DATA�Changes from version 1.30 -> 2.00 #wrap off � Now upgraded to StrongHelp 2 format � Help for DeskLib updated to version 2.16 � Lots of corrections and additions #align centre <Changes from version 1.25 -\> 1.30=>130>DATAC#Commands Background Wimp 1 Spritefile Sprites22 fStd #End DATA]save_ramsaver This type is defined in <DeskLib:Save.h=>Save>. It defines a function type used for saving data. The function is of the form: {fCode;align centre}int myfunc (<task_handle> source, void *ref, task_handle destin, void *buf, unsigned int size, int count);{f;align} The function should use <Wimp_TransferBlock> to transfer data to /buf/ in the task /destin/. /size/ gives the size of /buf/ ie the amount to transfer and /count/ is the amount transferred so far. /source/ is your task handle. The function should return the number of bytes transferred, or negative if an error occurred.FREEV�s_InitSaveWindowHandler Syntax: <save_saveblock> *Save_InitSaveWindowHandler (<window_handle> w, <BOOL> is_menu, BOOL is_win, BOOL release, <icon_handle> drag, icon_handle ok, icon_handle cancel, icon_handle name, <save_filesaver> filesave, <save_ramsaver> ramsave, <save_resulthandler> res_handle, <size_t> estsize, void *ref); Header: <DeskLib:Save.h=>Save> Returns: Pointer to save block. This function handles everything to do with saving. Once your save window is created all you need to do is call this with: {tab} � The window handle of the save window � If the save window is oDATA�sprite_info This type is defined in <sprite.h=>sprite_h> (Desktop C) and <DeskLib:Sprite.h=>Sprite_DL>. It is defined as the following structure in Desktop C: \{ int width; int height; int mask; int mode; } and the following structure in DeskLib: \{ unsigned int width; unsigned int height; unsigned int maskstatus; unsigned int mode; }aDATA*fwrite Syntax: <size_t> fwrite (void *ptr, size_t size, size_t nobj, <FILE> *stream); Header: <stdio.h=>stdio> Returns: The number of objects written. This function writes /nobj/ objects of size specified by /size/ from the array pointed to by /ptr/, into the file pointed to by /stream/.e.
00000000 48 45 4c 50 28 00 00 00 c9 00 00 00 e0 94 05 00 |HELP(...........| 00000010 2c 00 00 00 00 fd ff ff 00 00 00 00 d0 02 00 00 |,...............| 00000020 00 01 00 00 00 00 00 00 24 00 00 00 44 49 52 24 |........$...DIR$| 00000030 d8 02 00 00 d8 02 00 00 04 03 00 00 46 fd ff ff |............F...| 00000040 ac 58 5a 26 d1 01 00 00 13 00 00 00 00 00 00 00 |.XZ&............| 00000050 21 52 6f 6f 74 00 00 00 d8 04 00 00 46 fd ff ff |!Root.......F...| 00000060 5a 55 84 2f 3c 09 00 00 13 01 00 00 00 00 00 00 |ZU./<...........| 00000070 5f 00 00 00 58 53 00 00 45 f9 ff ff 38 1c 82 e5 |_...XS..E...8...| 00000080 c4 43 00 00 13 00 00 00 00 00 00 00 53 70 72 69 |.C..........Spri| 00000090 74 65 73 32 32 00 00 00 1c 97 00 00 46 fd ff ff |tes22.......F...| 000000a0 12 5a 84 2f 34 03 00 00 13 01 00 00 00 00 00 00 |.Z./4...........| 000000b0 5b 61 5d 00 b8 cd 00 00 46 fd ff ff 6e 5d 84 2f |[a].....F...n]./| 000000c0 2c 01 00 00 13 01 00 00 00 00 00 00 5b 62 5d 00 |,...........[b].| 000000d0 e4 3d 01 00 46 fd ff ff fb 62 84 2f b0 04 00 00 |.=..F....b./....| 000000e0 13 01 00 00 00 00 00 00 5b 63 5d 00 00 06 02 00 |........[c].....| 000000f0 46 fd ff ff f4 6e 84 2f c0 04 00 00 13 01 00 00 |F....n./........| 00000100 00 00 00 00 5b 64 5d 00 38 27 03 00 46 fd ff ff |....[d].8'..F...| 00000110 30 7f 84 2f 48 03 00 00 13 01 00 00 00 00 00 00 |0../H...........| 00000120 5b 65 5d 00 c8 8b 03 00 46 fd ff ff 46 85 84 2f |[e].....F...F../| 00000130 e0 06 00 00 13 01 00 00 00 00 00 00 5b 66 5d 00 |............[f].| 00000140 b0 94 04 00 46 fd ff ff b7 93 84 2f 78 02 00 00 |....F....../x...| 00000150 13 01 00 00 00 00 00 00 5b 67 2d 68 5d 00 00 00 |........[g-h]...| 00000160 88 e6 04 00 46 fd ff ff a9 98 84 2f 14 04 00 00 |....F....../....| 00000170 13 01 00 00 00 00 00 00 5b 69 2d 6b 5d 00 00 00 |........[i-k]...| 00000180 84 91 05 00 46 fd ff ff 81 a2 84 2f 30 03 00 00 |....F....../0...| 00000190 13 01 00 00 00 00 00 00 5b 6c 5d 00 bc eb 05 00 |........[l].....| 000001a0 46 fd ff ff e1 a8 84 2f e4 04 00 00 13 01 00 00 |F....../........| 000001b0 00 00 00 00 5b 6d 5d 00 c0 cb 06 00 46 fd ff ff |....[m].....F...| 000001c0 1a b5 84 2f 6c 01 00 00 13 01 00 00 00 00 00 00 |.../l...........| 000001d0 5b 6e 2d 6f 5d 00 00 00 e4 36 07 00 46 fd ff ff |[n-o]....6..F...| 000001e0 1b ba 84 2f 14 04 00 00 13 01 00 00 00 00 00 00 |.../............| 000001f0 5b 70 5d 00 50 16 08 00 46 fd ff ff bf c6 84 2f |[p].P...F....../| 00000200 8c 02 00 00 13 01 00 00 00 00 00 00 5b 71 2d 72 |............[q-r| 00000210 5d 00 00 00 b4 51 08 00 46 fd ff ff f9 c9 84 2f |]....Q..F....../| 00000220 64 0d 00 00 13 01 00 00 00 00 00 00 5b 73 5d 00 |d...........[s].| 00000230 c0 3a 0a 00 46 fd ff ff d1 e2 84 2f 1c 04 00 00 |.:..F....../....| 00000240 13 01 00 00 00 00 00 00 5b 74 5d 00 50 00 0b 00 |........[t].P...| 00000250 46 fd ff ff 7e ef 84 2f 2c 01 00 00 13 01 00 00 |F...~../,.......| 00000260 00 00 00 00 5b 75 5d 00 c0 0c 0b 00 46 fd ff ff |....[u].....F...| 00000270 98 f0 84 2f 80 01 00 00 13 01 00 00 00 00 00 00 |.../............| 00000280 5b 76 5d 00 50 23 0b 00 46 fd ff ff 40 f2 84 2f |[v].P#..F...@../| 00000290 50 02 00 00 13 01 00 00 00 00 00 00 5b 77 5d 00 |P...........[w].| 000002a0 c4 a4 0c 00 46 fd ff ff 9b 08 85 2f 9c 00 00 00 |....F....../....| 000002b0 13 01 00 00 00 00 00 00 5b 78 2d 7a 5d 00 00 00 |........[x-z]...| 000002c0 0c cf 0c 00 46 fd ff ff ff 0a 85 2f 98 00 00 00 |....F....../....| 000002d0 13 01 00 00 00 00 00 00 5b 31 2d 39 5d 00 00 00 |........[1-9]...| 000002e0 f0 d3 0c 00 46 ff ff ff 7d 3d 5a 26 43 00 00 00 |....F...}=Z&C...| 000002f0 13 00 00 00 00 00 00 00 21 43 6f 6e 66 69 67 75 |........!Configu| 00000300 72 65 00 00 44 41 54 41 d1 01 00 00 43 0a 23 53 |re..DATA....C.#S| 00000310 70 72 69 74 65 20 31 36 2c 31 36 20 21 63 3f 0a |prite 16,16 !c?.| 00000320 23 69 6e 64 65 6e 74 20 38 0a 23 74 61 62 20 2c |#indent 8.#tab ,| 00000330 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a 2d 09 2a |align centre.-.*| 00000340 48 65 6c 70 20 4f 6e 20 43 2a 09 2d 0a 2d 09 62 |Help On C*.-.-.b| 00000350 79 20 3c 47 61 72 65 74 68 20 42 6f 64 65 6e 3d |y <Gareth Boden=| 00000360 3e 47 42 6f 64 65 6e 3e 09 2d 0a 2d 09 3c 56 65 |>GBoden>.-.-.<Ve| 00000370 72 73 69 6f 6e 20 32 2e 30 30 3d 3e 32 30 30 3e |rsion 2.00=>200>| 00000380 09 2d 0a 23 69 6e 64 65 6e 74 20 32 0a 0a 3d 20 |.-.#indent 2..= | 00000390 3c 4d 61 65 6c 73 74 72 6f 6d 20 53 6f 66 74 77 |<Maelstrom Softw| 000003a0 61 72 65 3d 3e 4d 61 65 6c 73 74 72 6f 6d 3e 20 |are=>Maelstrom> | 000003b0 3d 0a 23 69 6e 64 65 6e 74 20 30 3b 6c 69 6e 65 |=.#indent 0;line| 000003c0 3b 69 6e 64 65 6e 74 0a 3c 54 68 65 20 43 20 4c |;indent.<The C L| 000003d0 61 6e 67 75 61 67 65 3d 3e 63 5f 3e 0a 0a 3c 41 |anguage=>c_>..<A| 000003e0 4e 53 49 20 46 75 6e 63 74 69 6f 6e 73 3d 3e 61 |NSI Functions=>a| 000003f0 6e 73 69 5f 3e 0a 3c 52 49 53 43 20 4f 53 20 46 |nsi_>.<RISC OS F| 00000400 75 6e 63 74 69 6f 6e 73 3d 3e 72 69 73 63 6f 73 |unctions=>riscos| 00000410 5f 3e 0a 0a 3c 50 72 65 70 72 6f 63 65 73 73 6f |_>..<Preprocesso| 00000420 72 20 44 69 72 65 63 74 69 76 65 73 3d 3e 70 70 |r Directives=>pp| 00000430 64 69 72 5f 3e 0a 3c 43 6f 6d 70 69 6c 65 72 20 |dir_>.<Compiler | 00000440 44 69 72 65 63 74 69 76 65 73 3d 3e 63 6f 6d 70 |Directives=>comp| 00000450 64 69 72 5f 3e 20 0a 3c 4c 69 6e 6b 65 72 20 44 |dir_> .<Linker D| 00000460 69 72 65 63 74 69 76 65 73 3d 3e 6c 69 6e 6b 64 |irectives=>linkd| 00000470 69 72 5f 3e 0a 3c 4d 61 6b 65 20 46 69 6c 65 73 |ir_>.<Make Files| 00000480 3d 3e 6d 61 6b 65 5f 3e 0a 3c 4c 69 62 72 61 72 |=>make_>.<Librar| 00000490 69 65 73 3d 3e 6c 69 62 5f 3e 0a 23 69 6e 64 65 |ies=>lib_>.#inde| 000004a0 6e 74 20 30 3b 6c 69 6e 65 20 20 20 20 0a 7b 61 |nt 0;line .{a| 000004b0 6c 69 67 6e 20 63 65 6e 74 72 65 7d a9 20 41 63 |lign centre}. Ac| 000004c0 6f 72 6e 20 55 73 65 72 2f 47 20 42 6f 64 65 6e |orn User/G Boden| 000004d0 20 31 39 39 35 00 00 00 44 49 52 24 3c 09 00 00 | 1995...DIR$<...| 000004e0 3c 09 00 00 14 0e 00 00 46 ff ff ff ab 02 bf 22 |<.......F......"| 000004f0 a5 00 00 00 13 00 00 00 00 00 00 00 5f 64 65 66 |............_def| 00000500 61 75 6c 74 5f 73 69 67 6e 61 6c 5f 68 61 6e 64 |ault_signal_hand| 00000510 6c 65 72 00 bc 0e 00 00 46 ff ff ff 0f 09 bf 22 |ler.....F......"| 00000520 9f 00 00 00 13 00 00 00 00 00 00 00 5f 65 72 72 |............_err| 00000530 6f 72 5f 73 69 67 6e 61 6c 5f 6d 61 72 6b 65 72 |or_signal_marker| 00000540 00 00 00 00 5c 0f 00 00 46 ff ff ff 4b 0d bf 22 |....\...F...K.."| 00000550 a3 00 00 00 13 00 00 00 00 00 00 00 5f 69 67 6e |............_ign| 00000560 6f 72 65 5f 73 69 67 6e 61 6c 5f 68 61 6e 64 6c |ore_signal_handl| 00000570 65 72 00 00 00 10 00 00 46 ff ff ff 11 66 b0 24 |er......F....f.$| 00000580 0b 01 00 00 13 00 00 00 00 00 00 00 65 78 74 65 |............exte| 00000590 6e 64 65 64 5f 66 70 5f 6e 75 6d 62 65 72 00 00 |nded_fp_number..| 000005a0 0c 11 00 00 46 ff ff ff 7e 6b c4 22 d6 00 00 00 |....F...~k."....| 000005b0 13 00 00 00 00 00 00 00 49 4f 46 42 46 00 00 00 |........IOFBF...| 000005c0 e4 11 00 00 46 ff ff ff d2 6f c4 22 d5 00 00 00 |....F....o."....| 000005d0 13 00 00 00 00 00 00 00 49 4f 4c 42 46 00 00 00 |........IOLBF...| 000005e0 bc 12 00 00 46 ff ff ff 9b 74 c4 22 d2 00 00 00 |....F....t."....| 000005f0 13 00 00 00 00 00 00 00 49 4f 4e 42 46 00 00 00 |........IONBF...| 00000600 90 13 00 00 46 ff ff ff 0a d9 af 24 27 02 00 00 |....F......$'...| 00000610 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 61 |........kernel_a| 00000620 6c 6c 6f 63 00 00 00 00 b8 15 00 00 46 ff ff ff |lloc........F...| 00000630 17 4a ae 24 08 01 00 00 13 00 00 00 00 00 00 00 |.J.$............| 00000640 6b 65 72 6e 65 6c 5f 63 6f 6d 6d 61 6e 64 5f 73 |kernel_command_s| 00000650 74 72 00 00 c0 16 00 00 46 ff ff ff 1a 31 ae 24 |tr......F....1.$| 00000660 af 00 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000670 65 6c 5f 63 75 72 72 65 6e 74 5f 73 74 61 63 6b |el_current_stack| 00000680 5f 63 68 75 6e 6b 00 00 70 17 00 00 46 ff ff ff |_chunk..p...F...| 00000690 ee 49 b0 24 b0 00 00 00 13 00 00 00 00 00 00 00 |.I.$............| 000006a0 6b 65 72 6e 65 6c 5f 45 52 52 4f 52 00 00 00 00 |kernel_ERROR....| 000006b0 20 18 00 00 46 ff ff ff 71 ae ae 24 15 01 00 00 | ...F...q..$....| 000006c0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 65 |........kernel_e| 000006d0 73 63 61 70 65 5f 73 65 65 6e 00 00 38 19 00 00 |scape_seen..8...| 000006e0 46 ff ff ff c8 55 ae 24 ca 00 00 00 13 00 00 00 |F....U.$........| 000006f0 00 00 00 00 6b 65 72 6e 65 6c 5f 65 78 69 74 00 |....kernel_exit.| 00000700 04 1a 00 00 46 ff ff ff 77 65 ae 24 f4 00 00 00 |....F...we.$....| 00000710 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 65 |........kernel_e| 00000720 78 69 74 74 72 61 70 68 61 6e 64 6c 65 72 00 00 |xittraphandler..| 00000730 f8 1a 00 00 46 ff ff ff 6e ba b0 24 d6 01 00 00 |....F...n..$....| 00000740 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 45 |........kernel_E| 00000750 78 74 65 6e 64 50 72 6f 63 00 00 00 d0 1c 00 00 |xtendProc.......| 00000760 46 ff ff ff dc 7f ae 24 0b 01 00 00 13 00 00 00 |F......$........| 00000770 00 00 00 00 6b 65 72 6e 65 6c 5f 66 70 61 76 61 |....kernel_fpava| 00000780 69 6c 61 62 6c 65 00 00 dc 1d 00 00 46 ff ff ff |ilable......F...| 00000790 ee 8e ae 24 db 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000007a0 6b 65 72 6e 65 6c 5f 67 65 74 65 6e 76 00 00 00 |kernel_getenv...| 000007b0 b8 1f 00 00 46 ff ff ff b2 77 ae 24 d8 00 00 00 |....F....w.$....| 000007c0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 68 |........kernel_h| 000007d0 6f 73 74 6f 73 00 00 00 90 20 00 00 46 ff ff ff |ostos.... ..F...| 000007e0 05 b9 ae 24 94 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000007f0 6b 65 72 6e 65 6c 5f 69 72 71 73 5f 64 69 73 61 |kernel_irqs_disa| 00000800 62 6c 65 64 00 00 00 00 24 21 00 00 46 ff ff ff |bled....$!..F...| 00000810 a5 b5 ae 24 d2 00 00 00 13 00 00 00 00 00 00 00 |...$............| 00000820 6b 65 72 6e 65 6c 5f 69 72 71 73 5f 6f 66 66 00 |kernel_irqs_off.| 00000830 f8 21 00 00 46 ff ff ff 0c b2 ae 24 a0 00 00 00 |.!..F......$....| 00000840 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 69 |........kernel_i| 00000850 72 71 73 5f 6f 6e 00 00 98 22 00 00 46 ff ff ff |rqs_on..."..F...| 00000860 ec 45 ae 24 c9 00 00 00 13 00 00 00 00 00 00 00 |.E.$............| 00000870 6b 65 72 6e 65 6c 5f 6c 61 6e 67 75 61 67 65 00 |kernel_language.| 00000880 64 23 00 00 46 ff ff ff eb 84 ae 24 5d 01 00 00 |d#..F......$]...| 00000890 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6c |........kernel_l| 000008a0 61 73 74 5f 6f 73 65 72 72 6f 00 00 c4 24 00 00 |ast_oserro...$..| 000008b0 46 ff ff ff 88 4d b0 24 a7 00 00 00 13 00 00 00 |F....M.$........| 000008c0 00 00 00 00 6b 65 72 6e 65 6c 5f 4e 4f 4e 58 00 |....kernel_NONX.| 000008d0 6c 25 00 00 46 ff ff ff d1 79 af 24 5a 01 00 00 |l%..F....y.$Z...| 000008e0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6f |........kernel_o| 000008f0 73 61 72 67 73 00 00 00 c8 26 00 00 46 ff ff ff |sargs....&..F...| 00000900 93 15 af 24 58 01 00 00 13 00 00 00 00 00 00 00 |...$X...........| 00000910 6b 65 72 6e 65 6c 5f 6f 73 62 67 65 74 00 00 00 |kernel_osbget...| 00000920 20 28 00 00 46 ff ff ff c1 21 af 24 58 01 00 00 | (..F....!.$X...| 00000930 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6f |........kernel_o| 00000940 73 62 70 75 74 00 00 00 78 29 00 00 46 ff ff ff |sbput...x)..F...| 00000950 da f1 ae 24 0d 02 00 00 13 00 00 00 00 00 00 00 |...$............| 00000960 6b 65 72 6e 65 6c 5f 6f 73 62 79 74 65 00 00 00 |kernel_osbyte...| 00000970 88 2b 00 00 46 ff ff ff 82 8d af 24 c1 01 00 00 |.+..F......$....| 00000980 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6f |........kernel_o| 00000990 73 63 6c 69 00 00 00 00 4c 2d 00 00 46 ff ff ff |scli....L-..F...| 000009a0 24 55 b0 24 0b 01 00 00 13 00 00 00 00 00 00 00 |$U.$............| 000009b0 6b 65 72 6e 65 6c 5f 6f 73 65 72 72 6f 72 00 00 |kernel_oserror..| 000009c0 58 2e 00 00 46 ff ff ff 79 69 af 24 bf 01 00 00 |X...F...yi.$....| 000009d0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6f |........kernel_o| 000009e0 73 66 69 6c 65 00 00 00 18 30 00 00 46 ff ff ff |sfile....0..F...| 000009f0 c0 8c b0 24 6c 01 00 00 13 00 00 00 00 00 00 00 |...$l...........| 00000a00 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c 65 5f 62 6c |kernel_osfile_bl| 00000a10 6f 63 00 00 84 31 00 00 46 ff ff ff 10 5a af 24 |oc...1..F....Z.$| 00000a20 a2 01 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000a30 65 6c 5f 6f 73 66 69 6e 64 00 00 00 28 33 00 00 |el_osfind...(3..| 00000a40 46 ff ff ff 42 31 af 24 c9 01 00 00 13 00 00 00 |F...B1.$........| 00000a50 00 00 00 00 6b 65 72 6e 65 6c 5f 6f 73 67 62 70 |....kernel_osgbp| 00000a60 62 00 00 00 f4 34 00 00 46 ff ff ff 3d 80 b0 24 |b....4..F...=..$| 00000a70 81 01 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000a80 65 6c 5f 6f 73 67 62 70 62 5f 62 6c 6f 63 00 00 |el_osgbpb_bloc..| 00000a90 78 36 00 00 46 ff ff ff a3 03 af 24 fc 00 00 00 |x6..F......$....| 00000aa0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6f |........kernel_o| 00000ab0 73 72 64 63 68 00 00 00 74 37 00 00 46 ff ff ff |srdch...t7..F...| 00000ac0 64 45 af 24 b5 01 00 00 13 00 00 00 00 00 00 00 |dE.$............| 00000ad0 6b 65 72 6e 65 6c 5f 6f 73 77 6f 72 64 00 00 00 |kernel_osword...| 00000ae0 2c 39 00 00 46 ff ff ff a5 0d af 24 2b 01 00 00 |,9..F......$+...| 00000af0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 6f |........kernel_o| 00000b00 73 77 72 63 68 00 00 00 58 3a 00 00 46 ff ff ff |swrch...X:..F...| 00000b10 09 41 ae 24 c2 00 00 00 13 00 00 00 00 00 00 00 |.A.$............| 00000b20 6b 65 72 6e 65 6c 5f 70 72 6f 63 6e 61 6d 65 00 |kernel_procname.| 00000b30 1c 3b 00 00 46 ff ff ff 71 5e ae 24 c6 00 00 00 |.;..F...q^.$....| 00000b40 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 72 |........kernel_r| 00000b50 61 69 73 65 5f 65 72 72 6f 72 00 00 e4 3b 00 00 |aise_error...;..| 00000b60 46 ff ff ff ea 11 b0 24 1d 01 00 00 13 00 00 00 |F......$........| 00000b70 00 00 00 00 6b 65 72 6e 65 6c 5f 73 64 69 76 00 |....kernel_sdiv.| 00000b80 04 3d 00 00 46 ff ff ff e8 1b b0 24 b0 00 00 00 |.=..F......$....| 00000b90 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 73 |........kernel_s| 00000ba0 64 69 76 31 30 00 00 00 b4 3d 00 00 46 ff ff ff |div10....=..F...| 00000bb0 10 a7 ae 24 8c 01 00 00 13 00 00 00 00 00 00 00 |...$............| 00000bc0 6b 65 72 6e 65 6c 5f 73 65 74 65 6e 76 00 00 00 |kernel_setenv...| 00000bd0 40 3f 00 00 46 ff ff ff e3 4d ae 24 ab 00 00 00 |@?..F....M.$....| 00000be0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 73 |........kernel_s| 00000bf0 65 74 72 65 74 75 72 6e 63 6f 64 65 00 00 00 00 |etreturncode....| 00000c00 ec 3f 00 00 46 ff ff ff ca 25 b0 24 44 01 00 00 |.?..F....%.$D...| 00000c10 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 73 |........kernel_s| 00000c20 72 65 6d 00 30 41 00 00 46 ff ff ff fa 5b b0 24 |rem.0A..F....[.$| 00000c30 15 01 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000c40 65 6c 5f 73 74 61 63 6b 5f 63 68 75 6e 6b 00 00 |el_stack_chunk..| 00000c50 48 42 00 00 46 ff ff ff d2 cc ae 24 df 01 00 00 |HB..F......$....| 00000c60 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 73 |........kernel_s| 00000c70 77 69 00 00 28 44 00 00 46 ff ff ff 65 dc ae 24 |wi..(D..F...e..$| 00000c80 ec 01 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000c90 65 6c 5f 73 77 69 5f 63 00 00 00 00 14 46 00 00 |el_swi_c.....F..| 00000ca0 46 ff ff ff 5c 70 b0 24 f6 00 00 00 13 00 00 00 |F...\p.$........| 00000cb0 00 00 00 00 6b 65 72 6e 65 6c 5f 73 77 69 5f 72 |....kernel_swi_r| 00000cc0 65 67 73 00 0c 47 00 00 46 ff ff ff 8f a8 af 24 |egs..G..F......$| 00000cd0 95 02 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000ce0 65 6c 5f 73 79 73 74 65 6d 00 00 00 a4 49 00 00 |el_system....I..| 00000cf0 46 ff ff ff e8 2f b0 24 2e 01 00 00 13 00 00 00 |F..../.$........| 00000d00 00 00 00 00 6b 65 72 6e 65 6c 5f 75 64 69 76 00 |....kernel_udiv.| 00000d10 d4 4a 00 00 46 ff ff ff 7e 35 b0 24 bc 00 00 00 |.J..F...~5.$....| 00000d20 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 75 |........kernel_u| 00000d30 64 69 76 31 30 00 00 00 90 4b 00 00 46 ff ff ff |div10....K..F...| 00000d40 85 36 ae 24 2d 01 00 00 13 00 00 00 00 00 00 00 |.6.$-...........| 00000d50 6b 65 72 6e 65 6c 5f 75 6e 77 69 6e 64 00 00 00 |kernel_unwind...| 00000d60 c0 4c 00 00 46 ff ff ff 72 6a b0 24 c3 00 00 00 |.L..F...rj.$....| 00000d70 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 75 |........kernel_u| 00000d80 6e 77 69 6e 64 62 6c 6f 63 6b 00 00 84 4d 00 00 |nwindblock...M..| 00000d90 46 ff ff ff 34 3f b0 24 55 01 00 00 13 00 00 00 |F...4?.$U.......| 00000da0 00 00 00 00 6b 65 72 6e 65 6c 5f 75 72 65 6d 00 |....kernel_urem.| 00000db0 dc 4e 00 00 46 ff ff ff b3 f8 af 24 88 02 00 00 |.N..F......$....| 00000dc0 13 00 00 00 00 00 00 00 6b 65 72 6e 65 6c 5f 72 |........kernel_r| 00000dd0 65 67 69 73 74 65 72 5f 73 6c 6f 74 65 78 74 65 |egister_slotexte| 00000de0 6e 64 00 00 64 51 00 00 46 ff ff ff 49 e5 af 24 |nd..dQ..F...I..$| 00000df0 f4 01 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |............kern| 00000e00 65 6c 5f 72 65 67 69 73 74 65 72 5f 61 6c 6c 6f |el_register_allo| 00000e10 63 73 00 00 44 41 54 41 a5 00 00 00 5f 5f 64 65 |cs..DATA....__de| 00000e20 66 61 75 6c 74 5f 73 69 67 6e 61 6c 5f 68 61 6e |fault_signal_han| 00000e30 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |dler.Syntax:.voi| 00000e40 64 a0 5f 5f 64 65 66 61 75 6c 74 5f 73 69 67 6e |d.__default_sign| 00000e50 61 6c 5f 68 61 6e 64 6c 65 72 20 28 69 6e 74 20 |al_handler (int | 00000e60 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 69 67 |n);.Header:.<sig| 00000e70 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e 0a 0a |nal.h=>signal>..| 00000e80 54 68 69 73 20 69 73 20 6d 6f 72 65 20 6e 6f 72 |This is more nor| 00000e90 6d 61 6c 6c 79 20 72 65 66 65 72 72 65 64 20 74 |mally referred t| 00000ea0 6f 20 62 79 20 74 68 65 20 6d 61 63 72 6f 20 3c |o by the macro <| 00000eb0 53 49 47 5f 44 46 4c 3e 2e 00 00 00 44 41 54 41 |SIG_DFL>....DATA| 00000ec0 9f 00 00 00 5f 5f 65 72 72 6f 72 5f 73 69 67 6e |....__error_sign| 00000ed0 61 6c 5f 6d 61 72 6b 65 72 0a 53 79 6e 74 61 78 |al_marker.Syntax| 00000ee0 3a 09 76 6f 69 64 a0 5f 5f 65 72 72 6f 72 5f 73 |:.void.__error_s| 00000ef0 69 67 6e 61 6c 5f 6d 61 72 6b 65 72 20 28 69 6e |ignal_marker (in| 00000f00 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 |t n);.Header:.<s| 00000f10 69 67 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e |ignal.h=>signal>| 00000f20 0a 0a 54 68 69 73 20 69 73 20 6d 6f 72 65 20 6e |..This is more n| 00000f30 6f 72 6d 61 6c 6c 79 20 72 65 66 65 72 72 65 64 |ormally referred| 00000f40 20 74 6f 20 62 79 20 74 68 65 20 6d 61 63 72 6f | to by the macro| 00000f50 20 3c 53 49 47 5f 45 52 52 3e 2e 00 44 41 54 41 | <SIG_ERR>..DATA| 00000f60 a3 00 00 00 5f 5f 69 67 6e 6f 72 65 5f 73 69 67 |....__ignore_sig| 00000f70 6e 61 6c 5f 68 61 6e 64 6c 65 72 0a 53 79 6e 74 |nal_handler.Synt| 00000f80 61 78 3a 09 76 6f 69 64 a0 5f 5f 69 67 6e 6f 72 |ax:.void.__ignor| 00000f90 65 5f 73 69 67 6e 61 6c 5f 68 61 6e 64 6c 65 72 |e_signal_handler| 00000fa0 20 28 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 72 | (int n);.Header| 00000fb0 3a 09 3c 73 69 67 6e 61 6c 2e 68 3d 3e 73 69 67 |:.<signal.h=>sig| 00000fc0 6e 61 6c 3e 0a 0a 54 68 69 73 20 69 73 20 6d 6f |nal>..This is mo| 00000fd0 72 65 20 6e 6f 72 6d 61 6c 6c 79 20 72 65 66 65 |re normally refe| 00000fe0 72 72 65 64 20 74 6f 20 62 79 20 74 68 65 20 6d |rred to by the m| 00000ff0 61 63 72 6f 20 3c 53 49 47 5f 49 47 4e 3e 2e 00 |acro <SIG_IGN>..| 00001000 44 41 54 41 0b 01 00 00 5f 65 78 74 65 6e 64 65 |DATA...._extende| 00001010 64 5f 66 70 5f 6e 75 6d 62 65 72 0a 54 68 69 73 |d_fp_number.This| 00001020 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00001030 20 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b | in <kernel.h=>k| 00001040 65 72 6e 65 6c 3e 2e 20 49 74 20 63 6f 6e 74 61 |ernel>. It conta| 00001050 69 6e 73 20 61 20 31 32 20 62 79 74 65 20 66 6c |ins a 12 byte fl| 00001060 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d |oating point num| 00001070 62 65 72 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ber as the follo| 00001080 77 69 6e 67 20 75 6e 69 6f 6e 3a 0a 0a 20 20 5c |wing union:.. \| 00001090 7b 0a 20 20 20 20 73 74 72 75 63 74 0a 20 20 20 |{. struct. | 000010a0 20 5c 7b 0a 20 20 20 20 20 20 69 6e 74 20 73 20 | \{. int s | 000010b0 3a 20 31 3b 0a 20 20 20 20 20 20 69 6e 74 20 75 |: 1;. int u| 000010c0 20 3a 20 31 36 3b 0a 20 20 20 20 20 20 69 6e 74 | : 16;. int| 000010d0 20 78 20 3a 20 31 35 3b 0a 20 20 20 20 20 20 75 | x : 15;. u| 000010e0 6e 73 69 67 6e 65 64 20 6d 68 69 2c 6d 6c 6f 3b |nsigned mhi,mlo;| 000010f0 0a 20 20 20 20 7d 20 69 3b 0a 20 20 20 20 69 6e |. } i;. in| 00001100 74 20 77 5b 33 5d 3b 0a 20 20 7d 00 44 41 54 41 |t w[3];. }.DATA| 00001110 d6 00 00 00 5f 49 4f 46 42 46 0a 23 50 61 72 65 |...._IOFBF.#Pare| 00001120 6e 74 20 73 74 64 69 6f 0a 54 68 65 20 6d 61 63 |nt stdio.The mac| 00001130 72 6f 20 5f 49 4f 46 42 46 20 69 73 20 64 65 66 |ro _IOFBF is def| 00001140 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 |ined in <stdio.h| 00001150 3d 3e 73 74 64 69 6f 3e 20 61 73 20 61 20 76 61 |=>stdio> as a va| 00001160 6c 75 65 20 75 73 65 64 20 61 73 20 61 6e 20 61 |lue used as an a| 00001170 72 67 75 6d 65 6e 74 20 66 6f 72 20 74 68 65 20 |rgument for the | 00001180 66 75 6e 63 74 69 6f 6e 20 3c 73 65 74 76 62 75 |function <setvbu| 00001190 66 3e 2e 20 49 74 20 63 61 75 73 65 73 20 69 6e |f>. It causes in| 000011a0 70 75 74 2f 6f 75 74 70 75 74 20 74 6f 20 62 65 |put/output to be| 000011b0 20 66 75 6c 6c 79 20 62 75 66 66 65 72 65 64 2e | fully buffered.| 000011c0 20 49 6e 20 45 61 73 79 a0 43 20 69 74 20 69 73 | In Easy.C it is| 000011d0 20 64 65 66 69 6e 65 64 20 61 73 20 30 78 31 30 | defined as 0x10| 000011e0 30 2e 00 00 44 41 54 41 d5 00 00 00 5f 49 4f 4c |0...DATA...._IOL| 000011f0 42 46 0a 23 50 61 72 65 6e 74 20 73 74 64 69 6f |BF.#Parent stdio| 00001200 0a 54 68 65 20 6d 61 63 72 6f 20 5f 49 4f 4c 42 |.The macro _IOLB| 00001210 46 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |F is defined in | 00001220 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e |<stdio.h=>stdio>| 00001230 20 61 73 20 61 20 76 61 6c 75 65 20 75 73 65 64 | as a value used| 00001240 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 | as an argument | 00001250 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |for the function| 00001260 20 3c 73 65 74 76 62 75 66 3e 2e 20 49 74 20 63 | <setvbuf>. It c| 00001270 61 75 73 65 73 20 69 6e 70 75 74 2f 6f 75 74 70 |auses input/outp| 00001280 75 74 20 74 6f 20 62 65 20 6c 69 6e 65 20 62 75 |ut to be line bu| 00001290 66 66 65 72 65 64 2e 20 49 6e 20 45 61 73 79 a0 |ffered. In Easy.| 000012a0 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 |C it is defined | 000012b0 61 73 20 30 78 32 30 30 2e 00 00 00 44 41 54 41 |as 0x200....DATA| 000012c0 d2 00 00 00 5f 49 4f 4e 42 46 0a 23 50 61 72 65 |...._IONBF.#Pare| 000012d0 6e 74 20 73 74 64 69 6f 0a 54 68 65 20 6d 61 63 |nt stdio.The mac| 000012e0 72 6f 20 5f 49 4f 4e 42 46 20 69 73 20 64 65 66 |ro _IONBF is def| 000012f0 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 |ined in <stdio.h| 00001300 3d 3e 73 74 64 69 6f 3e 20 61 73 20 61 20 76 61 |=>stdio> as a va| 00001310 6c 75 65 20 75 73 65 64 20 61 73 20 61 6e 20 61 |lue used as an a| 00001320 72 67 75 6d 65 6e 74 20 66 6f 72 20 74 68 65 20 |rgument for the | 00001330 66 75 6e 63 74 69 6f 6e 20 3c 73 65 74 76 62 75 |function <setvbu| 00001340 66 3e 2e 20 49 74 20 63 61 75 73 65 73 20 69 6e |f>. It causes in| 00001350 70 75 74 2f 6f 75 74 70 75 74 20 74 6f 20 62 65 |put/output to be| 00001360 20 75 6e 62 75 66 66 65 72 65 64 2e 20 49 6e 20 | unbuffered. In | 00001370 45 61 73 79 a0 43 20 69 74 20 69 73 20 64 65 66 |Easy.C it is def| 00001380 69 6e 65 64 20 61 73 20 30 78 34 30 30 2e 00 00 |ined as 0x400...| 00001390 44 41 54 41 27 02 00 00 5f 6b 65 72 6e 65 6c 5f |DATA'..._kernel_| 000013a0 61 6c 6c 6f 63 0a 53 79 6e 74 61 78 3a 09 75 6e |alloc.Syntax:.un| 000013b0 73 69 67 6e 65 64 20 5f 6b 65 72 6e 65 6c 5f 61 |signed _kernel_a| 000013c0 6c 6c 6f 63 20 28 75 6e 73 69 67 6e 65 64 20 6d |lloc (unsigned m| 000013d0 69 6e 77 6f 72 64 73 2c 20 76 6f 69 64 20 2a 2a |inwords, void **| 000013e0 62 6c 6f 63 6b 29 3b 0a 48 65 61 64 65 72 3a 09 |block);.Header:.| 000013f0 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 |<kernel.h=>kerne| 00001400 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 |l>..Returns:.The| 00001410 20 73 69 7a 65 20 6f 66 20 62 6c 6f 63 6b 20 61 | size of block a| 00001420 6c 6c 6f 63 61 74 65 64 2e 0a 0a 54 68 69 73 20 |llocated...This | 00001430 66 75 6e 63 74 69 6f 6e 20 74 72 69 65 73 20 74 |function tries t| 00001440 6f 20 61 6c 6c 6f 63 61 74 65 20 61 20 62 6c 6f |o allocate a blo| 00001450 63 6b 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 66 20 |ck of memory of | 00001460 27 73 65 6e 73 69 62 6c 65 20 73 69 7a 65 27 20 |'sensible size' | 00001470 61 73 20 6e 65 61 72 20 74 6f 20 2f 6d 69 6e 77 |as near to /minw| 00001480 6f 72 64 73 2f 20 61 73 20 70 6f 73 73 69 62 6c |ords/ as possibl| 00001490 65 2e 20 54 68 65 20 62 6c 6f 63 6b 20 77 69 6c |e. The block wil| 000014a0 6c 20 6e 6f 74 20 62 65 20 73 6d 61 6c 6c 65 72 |l not be smaller| 000014b0 20 74 68 61 6e 20 32 4b 20 77 6f 72 64 73 20 28 | than 2K words (| 000014c0 41 63 6f 72 6e 27 73 20 64 65 66 69 6e 69 74 69 |Acorn's definiti| 000014d0 6f 6e 20 6f 66 20 73 65 6e 73 69 62 6c 65 20 73 |on of sensible s| 000014e0 69 7a 65 29 2e 20 49 66 20 74 68 69 73 20 6d 75 |ize). If this mu| 000014f0 63 68 20 6d 65 6d 6f 72 79 20 63 61 6e 6e 6f 74 |ch memory cannot| 00001500 20 62 65 20 61 6c 6c 6f 63 61 74 65 64 2c 20 69 | be allocated, i| 00001510 74 20 77 69 6c 6c 20 61 6c 6c 6f 63 61 74 65 20 |t will allocate | 00001520 61 73 20 6d 75 63 68 20 61 73 20 70 6f 73 73 69 |as much as possi| 00001530 62 6c 65 2e 20 54 68 65 20 70 6f 69 6e 74 65 72 |ble. The pointer| 00001540 20 74 6f 20 74 68 65 20 62 6c 6f 63 6b 20 69 73 | to the block is| 00001550 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 65 | returned in the| 00001560 20 70 6f 69 6e 74 65 72 20 70 6f 69 6e 74 65 64 | pointer pointed| 00001570 20 74 6f 20 62 79 20 2f 62 6c 6f 63 6b 2f 2e 20 | to by /block/. | 00001580 54 68 69 73 20 77 69 6c 6c 20 62 65 20 3c 4e 55 |This will be <NU| 00001590 4c 4c 3e 20 69 66 20 61 20 74 68 65 20 73 69 7a |LL> if a the siz| 000015a0 65 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 20 69 |e of the block i| 000015b0 73 20 7a 65 72 6f 2e 00 44 41 54 41 08 01 00 00 |s zero..DATA....| 000015c0 5f 6b 65 72 6e 65 6c 5f 63 6f 6d 6d 61 6e 64 5f |_kernel_command_| 000015d0 73 74 72 69 6e 67 0a 53 79 6e 74 61 78 3a 09 63 |string.Syntax:.c| 000015e0 68 61 72 20 2a 5f 6b 65 72 6e 65 6c 5f 63 6f 6d |har *_kernel_com| 000015f0 6d 61 6e 64 5f 73 74 72 69 6e 67 20 28 76 6f 69 |mand_string (voi| 00001600 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 |d);.Header:.<ker| 00001610 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a |nel.h=>kernel>..| 00001620 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00001630 20 74 6f 20 74 68 65 20 73 74 72 69 6e 67 2e 0a | to the string..| 00001640 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 00001650 65 74 75 72 6e 73 20 61 20 70 6f 69 6e 74 65 72 |eturns a pointer| 00001660 20 74 6f 20 74 68 65 20 73 74 72 69 6e 67 20 77 | to the string w| 00001670 68 69 63 68 20 77 61 73 20 75 73 65 64 20 74 6f |hich was used to| 00001680 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 | start the progr| 00001690 61 6d 2e 20 49 74 20 6d 61 79 20 62 65 20 61 20 |am. It may be a | 000016a0 63 6f 70 79 20 6f 66 20 74 68 65 20 73 74 72 69 |copy of the stri| 000016b0 6e 67 20 74 68 61 74 20 69 73 20 75 73 65 64 2e |ng that is used.| 000016c0 44 41 54 41 af 00 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 000016d0 63 75 72 72 65 6e 74 5f 73 74 61 63 6b 5f 63 68 |current_stack_ch| 000016e0 75 6e 6b 0a 53 79 6e 74 61 78 3a 09 3c 5f 6b 65 |unk.Syntax:.<_ke| 000016f0 72 6e 65 6c 5f 73 74 61 63 6b 5f 63 68 75 6e 6b |rnel_stack_chunk| 00001700 3e 20 2a 5f 6b 65 72 6e 65 6c 5f 63 75 72 72 65 |> *_kernel_curre| 00001710 6e 74 5f 73 74 61 63 6b 5f 63 68 75 6e 6b 20 28 |nt_stack_chunk (| 00001720 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |void);.Header:.<| 00001730 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c |kernel.h=>kernel| 00001740 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00001750 74 65 72 20 74 6f 20 74 68 65 20 63 75 72 72 65 |ter to the curre| 00001760 6e 74 20 73 74 61 63 6b 20 63 68 75 6e 6b 2e 00 |nt stack chunk..| 00001770 44 41 54 41 b0 00 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 00001780 45 52 52 4f 52 0a 54 68 65 20 6d 61 63 72 6f 20 |ERROR.The macro | 00001790 7b 2a 7d 5f 6b 65 72 6e 65 6c 5f 45 52 52 4f 52 |{*}_kernel_ERROR| 000017a0 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 |{*} is defined i| 000017b0 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 |n <kernel.h=>ker| 000017c0 6e 65 6c 3e 20 61 73 20 61 20 76 61 6c 75 65 20 |nel> as a value | 000017d0 74 6f 20 62 65 20 72 65 74 75 72 6e 65 64 20 62 |to be returned b| 000017e0 79 20 63 65 72 74 61 69 6e 20 66 75 6e 63 74 69 |y certain functi| 000017f0 6f 6e 73 20 74 6f 20 69 6e 64 69 63 61 74 65 20 |ons to indicate | 00001800 61 6e 20 65 72 72 6f 72 2e 20 49 74 20 69 73 20 |an error. It is | 00001810 64 65 66 69 6e 65 64 20 61 73 20 28 2d 32 29 2e |defined as (-2).| 00001820 44 41 54 41 15 01 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 00001830 65 73 63 61 70 65 5f 73 65 65 6e 0a 53 79 6e 74 |escape_seen.Synt| 00001840 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 6c 5f |ax:.int _kernel_| 00001850 65 73 63 61 70 65 5f 73 65 65 6e 20 28 76 6f 69 |escape_seen (voi| 00001860 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 |d);.Header:.<ker| 00001870 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a |nel.h=>kernel>..| 00001880 52 65 74 75 72 6e 73 3a 09 31 20 69 66 20 74 68 |Returns:.1 if th| 00001890 65 72 65 20 68 61 73 20 62 65 65 6e 20 61 6e 20 |ere has been an | 000018a0 65 73 63 61 70 65 2e 0a 0a 54 68 69 73 20 66 75 |escape...This fu| 000018b0 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 20 74 6f |nction checks to| 000018c0 20 73 65 65 20 69 66 20 74 68 65 72 65 20 68 61 | see if there ha| 000018d0 73 20 62 65 65 6e 20 61 6e 20 65 73 63 61 70 65 |s been an escape| 000018e0 20 28 73 69 6e 63 65 20 74 68 65 20 70 72 65 76 | (since the prev| 000018f0 69 6f 75 73 20 63 61 6c 6c 20 74 6f 20 74 68 69 |ious call to thi| 00001900 73 20 66 75 6e 63 74 69 6f 6e 29 2e 20 54 68 69 |s function). Thi| 00001910 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 |s function will | 00001920 6e 65 76 65 72 20 6d 69 73 73 20 61 6e 20 65 73 |never miss an es| 00001930 63 61 70 65 2e 00 00 00 44 41 54 41 ca 00 00 00 |cape....DATA....| 00001940 5f 6b 65 72 6e 65 6c 5f 65 78 69 74 0a 53 79 6e |_kernel_exit.Syn| 00001950 74 61 78 3a 09 76 6f 69 64 20 5f 6b 65 72 6e 65 |tax:.void _kerne| 00001960 6c 5f 65 78 69 74 20 28 76 6f 69 64 29 3b 0a 48 |l_exit (void);.H| 00001970 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 |eader:.<kernel.h| 00001980 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 54 68 69 73 20 |=>kernel>..This | 00001990 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 |function calls t| 000019a0 68 65 20 53 57 49 20 3c 4f 53 5f 45 78 69 74 3d |he SWI <OS_Exit=| 000019b0 3e 53 57 49 3a 4f 53 5f 45 78 69 74 3e 20 77 69 |>SWI:OS_Exit> wi| 000019c0 74 68 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f |th the return co| 000019d0 64 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 |de specified by | 000019e0 61 20 63 61 6c 6c 20 74 6f 20 3c 5f 6b 65 72 6e |a call to <_kern| 000019f0 65 6c 5f 73 65 74 72 65 74 75 72 6e 63 6f 64 65 |el_setreturncode| 00001a00 3e 2e 00 00 44 41 54 41 f4 00 00 00 5f 6b 65 72 |>...DATA...._ker| 00001a10 6e 65 6c 5f 65 78 69 74 74 72 61 70 68 61 6e 64 |nel_exittraphand| 00001a20 6c 65 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ler.Syntax:.void| 00001a30 20 5f 6b 65 72 6e 65 6c 5f 65 78 69 74 74 72 61 | _kernel_exittra| 00001a40 70 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 3b |phandler (void);| 00001a50 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c |.Header:.<kernel| 00001a60 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 54 68 69 |.h=>kernel>..Thi| 00001a70 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 |s function reset| 00001a80 73 20 74 68 65 20 2a 49 6e 54 72 61 70 48 61 6e |s the *InTrapHan| 00001a90 64 6c 65 72 2a 20 66 6c 61 67 20 77 68 69 63 68 |dler* flag which| 00001aa0 20 70 72 65 76 65 6e 74 73 20 72 65 63 75 72 73 | prevents recurs| 00001ab0 69 76 65 20 74 72 61 70 73 2e 20 49 74 20 69 73 |ive traps. It is| 00001ac0 20 75 73 65 64 20 69 6e 73 69 64 65 20 74 72 61 | used inside tra| 00001ad0 70 20 68 61 6e 64 6c 65 72 73 20 77 68 69 63 68 |p handlers which| 00001ae0 20 64 6f 20 6e 6f 74 20 72 65 74 75 72 6e 20 64 | do not return d| 00001af0 69 72 65 63 74 6c 79 2e 44 41 54 41 d6 01 00 00 |irectly.DATA....| 00001b00 5f 6b 65 72 6e 65 6c 5f 45 78 74 65 6e 64 50 72 |_kernel_ExtendPr| 00001b10 6f 63 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d 5f |oc.The type {*}_| 00001b20 6b 65 72 6e 65 6c 5f 45 78 74 65 6e 64 50 72 6f |kernel_ExtendPro| 00001b30 63 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 |c{*} is defined | 00001b40 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 |in <kernel.h=>ke| 00001b50 72 6e 65 6c 3e 20 61 73 20 61 20 70 72 6f 63 65 |rnel> as a proce| 00001b60 64 75 72 65 20 77 68 69 63 68 20 63 61 6e 20 62 |dure which can b| 00001b70 65 20 75 73 65 64 20 74 6f 20 65 78 74 65 6e 64 |e used to extend| 00001b80 20 74 68 65 20 68 65 61 70 20 75 73 65 64 20 62 | the heap used b| 00001b90 79 20 74 68 65 20 6b 65 72 6e 65 6c 2e 20 49 74 |y the kernel. It| 00001ba0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a | is defined as:.| 00001bb0 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 |{wrap off}.{fCod| 00001bc0 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 69 |e;align centre}i| 00001bd0 6e 74 20 5f 6b 65 72 6e 65 6c 5f 45 78 74 65 6e |nt _kernel_Exten| 00001be0 64 50 72 6f 63 20 28 69 6e 74 2c 20 76 6f 69 64 |dProc (int, void| 00001bf0 20 2a 2a 29 3b 7b 66 3b 61 6c 69 67 6e 3b 77 72 | **);{f;align;wr| 00001c00 61 70 7d 0a 0a 54 68 65 20 70 72 6f 63 65 64 75 |ap}..The procedu| 00001c10 72 65 20 73 68 6f 75 6c 64 20 61 6c 6c 6f 63 61 |re should alloca| 00001c20 74 65 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 |te the amount of| 00001c30 20 73 70 61 63 65 20 72 65 71 75 65 73 74 65 64 | space requested| 00001c40 20 69 6e 20 74 68 65 20 69 6e 74 65 67 65 72 20 | in the integer | 00001c50 61 72 67 75 6d 65 6e 74 2c 20 61 6e 64 20 72 65 |argument, and re| 00001c60 74 75 72 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 |turn a pointer t| 00001c70 6f 20 69 74 20 69 6e 20 74 68 65 20 7b 2f 7d 76 |o it in the {/}v| 00001c80 6f 69 64 20 2a 7b 2f 7d 20 77 68 6f 73 65 20 70 |oid *{/} whose p| 00001c90 6f 69 6e 74 65 72 20 69 73 20 67 69 76 65 6e 2e |ointer is given.| 00001ca0 20 49 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 | It should retur| 00001cb0 6e 20 74 68 65 20 73 69 7a 65 20 6f 66 20 73 70 |n the size of sp| 00001cc0 61 63 65 20 61 6c 6c 6f 63 61 74 65 64 2e 00 00 |ace allocated...| 00001cd0 44 41 54 41 0b 01 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 00001ce0 66 70 61 76 61 69 6c 61 62 6c 65 0a 53 79 6e 74 |fpavailable.Synt| 00001cf0 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 6c 5f |ax:.int _kernel_| 00001d00 66 70 61 76 61 69 6c 61 62 6c 65 20 28 76 6f 69 |fpavailable (voi| 00001d10 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 |d);.Header:.<ker| 00001d20 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a |nel.h=>kernel>..| 00001d30 52 65 74 75 72 6e 73 3a 09 30 20 69 66 20 66 6c |Returns:.0 if fl| 00001d40 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 69 73 20 |oating point is | 00001d50 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a |not available...| 00001d60 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 |This function te| 00001d70 73 74 73 20 66 6f 72 20 74 68 65 20 70 72 65 73 |sts for the pres| 00001d80 65 6e 63 65 20 6f 66 20 65 69 74 68 65 72 20 74 |ence of either t| 00001d90 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e |he floating poin| 00001da0 74 20 63 6f 2d 70 72 6f 63 65 73 73 6f 72 20 6f |t co-processor o| 00001db0 72 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 |r the floating p| 00001dc0 6f 69 6e 74 20 65 6d 75 6c 61 74 6f 72 20 6d 6f |oint emulator mo| 00001dd0 64 75 6c 65 20 28 46 50 45 29 2e 00 44 41 54 41 |dule (FPE)..DATA| 00001de0 db 01 00 00 5f 6b 65 72 6e 65 6c 5f 67 65 74 65 |...._kernel_gete| 00001df0 6e 76 0a 53 79 6e 74 61 78 3a 09 3c 5f 6b 65 72 |nv.Syntax:.<_ker| 00001e00 6e 65 6c 5f 6f 73 65 72 72 6f 72 3e 20 2a 5f 6b |nel_oserror> *_k| 00001e10 65 72 6e 65 6c 5f 67 65 74 65 6e 76 20 28 63 68 |ernel_getenv (ch| 00001e20 61 72 20 2a 6e 61 6d 65 2c 20 63 68 61 72 20 2a |ar *name, char *| 00001e30 62 75 66 2c 20 75 6e 73 69 67 6e 65 64 20 6c 65 |buf, unsigned le| 00001e40 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 |n);.Header:.<ker| 00001e50 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a |nel.h=>kernel>..| 00001e60 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00001e70 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00001e80 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00001e90 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 |his function get| 00001ea0 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 |s the value of t| 00001eb0 68 65 20 73 79 73 74 65 6d 20 76 61 72 69 61 62 |he system variab| 00001ec0 6c 65 20 77 68 6f 73 65 20 6e 61 6d 65 20 69 73 |le whose name is| 00001ed0 20 73 70 65 63 69 66 69 65 64 20 61 6e 64 20 70 | specified and p| 00001ee0 6c 61 63 65 73 20 69 74 20 69 6e 20 74 68 65 20 |laces it in the | 00001ef0 63 68 61 72 61 63 74 65 72 20 61 72 72 61 79 20 |character array | 00001f00 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 62 |pointed to by /b| 00001f10 75 66 2f 2e 20 54 68 65 20 6c 65 6e 67 74 68 20 |uf/. The length | 00001f20 6f 66 20 74 68 65 20 61 72 72 61 79 20 69 73 20 |of the array is | 00001f30 67 69 76 65 6e 20 62 79 20 2f 6c 65 6e 2f 2e 0a |given by /len/..| 00001f40 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 00001f50 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |s equivalent to | 00001f60 74 68 65 20 53 57 49 20 3c 4f 53 5f 52 65 61 64 |the SWI <OS_Read| 00001f70 56 61 72 56 61 6c 3d 3e 53 57 49 3a 4f 53 5f 52 |VarVal=>SWI:OS_R| 00001f80 65 61 64 56 61 72 56 61 6c 3e 20 28 61 6e 64 20 |eadVarVal> (and | 00001f90 76 65 72 79 20 73 69 6d 69 6c 61 72 20 74 6f 20 |very similar to | 00001fa0 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 67 65 |the function <ge| 00001fb0 74 65 6e 76 3e 29 2e 00 44 41 54 41 d8 00 00 00 |tenv>)..DATA....| 00001fc0 5f 6b 65 72 6e 65 6c 5f 68 6f 73 74 6f 73 0a 53 |_kernel_hostos.S| 00001fd0 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e |yntax:.int _kern| 00001fe0 65 6c 5f 68 6f 73 74 6f 73 20 28 76 6f 69 64 29 |el_hostos (void)| 00001ff0 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 |;.Header:.<kerne| 00002000 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 |l.h=>kernel>..Re| 00002010 74 75 72 6e 73 3a 09 4e 75 6d 62 65 72 20 69 6e |turns:.Number in| 00002020 64 69 63 61 74 69 6e 67 20 4f 70 65 72 61 74 69 |dicating Operati| 00002030 6e 67 20 53 79 73 74 65 6d 2e 0a 0a 54 68 69 73 |ng System...This| 00002040 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 | function is equ| 00002050 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 42 |ivalent to <OS_B| 00002060 79 74 65 3d 3e 53 57 49 3a 4f 53 5f 42 79 74 65 |yte=>SWI:OS_Byte| 00002070 3e 20 30 2c 31 2e 20 49 74 20 72 65 74 75 72 6e |> 0,1. It return| 00002080 73 20 36 20 66 6f 72 20 52 49 53 43 20 4f 53 2e |s 6 for RISC OS.| 00002090 44 41 54 41 94 00 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 000020a0 69 72 71 73 5f 64 69 73 61 62 6c 65 64 0a 53 79 |irqs_disabled.Sy| 000020b0 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 |ntax:.int _kerne| 000020c0 6c 5f 69 72 71 73 5f 64 69 73 61 62 6c 65 64 20 |l_irqs_disabled | 000020d0 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 000020e0 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 |<kernel.h=>kerne| 000020f0 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 4e 6f 6e |l>..Returns:.Non| 00002100 2d 7a 65 72 6f 20 69 66 20 49 52 51 20 69 6e 74 |-zero if IRQ int| 00002110 65 72 72 75 70 74 73 20 61 72 65 20 65 6e 61 62 |errupts are enab| 00002120 6c 65 64 2e 44 41 54 41 d2 00 00 00 5f 6b 65 72 |led.DATA...._ker| 00002130 6e 65 6c 5f 69 72 71 73 5f 6f 66 66 0a 53 79 6e |nel_irqs_off.Syn| 00002140 74 61 78 3a 09 76 6f 69 64 20 5f 6b 65 72 6e 65 |tax:.void _kerne| 00002150 6c 5f 69 72 71 73 5f 6f 66 66 20 28 76 6f 69 64 |l_irqs_off (void| 00002160 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e |);.Header:.<kern| 00002170 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 44 |el.h=>kernel>..D| 00002180 69 73 61 62 6c 65 20 69 6e 74 65 72 72 75 70 74 |isable interrupt| 00002190 73 2e 20 54 68 69 73 20 63 61 6e 20 6f 6e 6c 79 |s. This can only| 000021a0 20 62 65 20 75 73 65 64 20 66 72 6f 6d 20 63 6f | be used from co| 000021b0 64 65 20 72 75 6e 6e 69 6e 67 20 69 6e 20 53 56 |de running in SV| 000021c0 43 20 6d 6f 64 65 2e 20 59 6f 75 20 73 68 6f 75 |C mode. You shou| 000021d0 6c 64 20 6e 6f 74 20 64 69 73 61 62 6c 65 20 69 |ld not disable i| 000021e0 6e 74 65 72 72 75 70 74 73 20 69 66 20 70 6f 73 |nterrupts if pos| 000021f0 73 69 62 6c 65 2e 00 00 44 41 54 41 a0 00 00 00 |sible...DATA....| 00002200 5f 6b 65 72 6e 65 6c 5f 69 72 71 73 5f 6f 6e 0a |_kernel_irqs_on.| 00002210 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 5f 6b 65 |Syntax:.void _ke| 00002220 72 6e 65 6c 5f 69 72 71 73 5f 6f 6e 20 28 76 6f |rnel_irqs_on (vo| 00002230 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 |id);.Header:.<ke| 00002240 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a |rnel.h=>kernel>.| 00002250 0a 45 6e 61 62 6c 65 20 69 6e 74 65 72 72 75 70 |.Enable interrup| 00002260 74 73 2e 20 54 68 69 73 20 63 61 6e 20 6f 6e 6c |ts. This can onl| 00002270 79 20 62 65 20 75 73 65 64 20 66 72 6f 6d 20 63 |y be used from c| 00002280 6f 64 65 20 72 75 6e 6e 69 6e 67 20 69 6e 20 53 |ode running in S| 00002290 56 43 20 6d 6f 64 65 2e 44 41 54 41 c9 00 00 00 |VC mode.DATA....| 000022a0 5f 6b 65 72 6e 65 6c 5f 6c 61 6e 67 75 61 67 65 |_kernel_language| 000022b0 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 5f |.Syntax:.char *_| 000022c0 6b 65 72 6e 65 6c 5f 6c 61 6e 67 75 61 67 65 20 |kernel_language | 000022d0 28 69 6e 74 20 70 63 29 3b 0a 48 65 61 64 65 72 |(int pc);.Header| 000022e0 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 |:.<kernel.h=>ker| 000022f0 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |nel>..Returns:.P| 00002300 6f 69 6e 74 65 72 20 74 6f 20 6e 61 6d 65 2e 0a |ointer to name..| 00002310 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 |.This function g| 00002320 65 74 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 |ets the name of | 00002330 74 68 65 20 6c 61 6e 67 75 61 67 65 20 69 6e 20 |the language in | 00002340 77 68 6f 73 65 20 63 6f 64 65 20 74 68 65 20 61 |whose code the a| 00002350 64 64 72 65 73 73 20 2f 70 63 2f 20 6c 69 65 73 |ddress /pc/ lies| 00002360 2e 00 00 00 44 41 54 41 5d 01 00 00 5f 6b 65 72 |....DATA]..._ker| 00002370 6e 65 6c 5f 6c 61 73 74 5f 6f 73 65 72 72 6f 72 |nel_last_oserror| 00002380 0a 53 79 6e 74 61 78 3a 09 3c 5f 6b 65 72 6e 65 |.Syntax:.<_kerne| 00002390 6c 5f 6f 73 65 72 72 6f 72 3e 20 2a 5f 6b 65 72 |l_oserror> *_ker| 000023a0 6e 65 6c 5f 6c 61 73 74 5f 6f 73 65 72 72 6f 72 |nel_last_oserror| 000023b0 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000023c0 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e |.<kernel.h=>kern| 000023d0 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |el>..Returns:.Po| 000023e0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000023f0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00002400 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00002410 6e 20 72 65 74 75 72 6e 73 20 61 20 70 6f 69 6e |n returns a poin| 00002420 74 65 72 20 74 6f 20 74 68 65 20 65 72 72 6f 72 |ter to the error| 00002430 20 62 6c 6f 63 6b 20 64 65 73 63 72 69 62 69 6e | block describin| 00002440 67 20 74 68 65 20 6c 61 73 74 20 4f 53 20 65 72 |g the last OS er| 00002450 72 6f 72 20 74 68 61 74 20 6f 63 63 75 72 65 64 |ror that occured| 00002460 20 28 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 | (since the last| 00002470 20 63 61 6c 6c 20 74 6f 20 74 68 69 73 20 66 75 | call to this fu| 00002480 6e 63 74 69 6f 6e 29 2e 0a 0a 54 68 65 20 62 6c |nction)...The bl| 00002490 6f 63 6b 20 72 65 74 75 72 6e 65 64 20 6d 61 79 |ock returned may| 000024a0 20 62 65 20 6f 76 65 72 77 72 69 74 74 65 6e 20 | be overwritten | 000024b0 62 79 20 61 6e 6f 74 68 65 72 20 65 72 72 6f 72 |by another error| 000024c0 2e 00 00 00 44 41 54 41 a7 00 00 00 5f 6b 65 72 |....DATA...._ker| 000024d0 6e 65 6c 5f 4e 4f 4e 58 0a 54 68 65 20 6d 61 63 |nel_NONX.The mac| 000024e0 72 6f 20 7b 2a 7d 5f 6b 65 72 6e 65 6c 5f 4e 4f |ro {*}_kernel_NO| 000024f0 4e 58 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 |NX{*} is defined| 00002500 20 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b | in <kernel.h=>k| 00002510 65 72 6e 65 6c 3e 20 61 73 20 61 20 76 61 6c 75 |ernel> as a valu| 00002520 65 20 75 73 65 64 20 74 6f 20 69 6e 64 69 63 61 |e used to indica| 00002530 74 65 20 74 6f 20 53 57 49 20 63 61 6c 6c 69 6e |te to SWI callin| 00002540 67 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 |g functions that| 00002550 20 65 72 72 6f 72 73 20 61 72 65 20 74 6f 20 62 | errors are to b| 00002560 65 20 72 65 70 6f 72 74 65 64 2e 00 44 41 54 41 |e reported..DATA| 00002570 5a 01 00 00 5f 6b 65 72 6e 65 6c 5f 6f 73 61 72 |Z..._kernel_osar| 00002580 67 73 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 5f |gs.Syntax:.int _| 00002590 6b 65 72 6e 65 6c 5f 6f 73 61 72 67 73 20 28 69 |kernel_osargs (i| 000025a0 6e 74 20 72 30 2c 20 75 6e 73 69 67 6e 65 64 20 |nt r0, unsigned | 000025b0 72 31 2c 20 69 6e 74 20 72 32 29 3b 0a 48 65 61 |r1, int r2);.Hea| 000025c0 64 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e |der:.<kernel.h=>| 000025d0 6b 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 |kernel>..Returns| 000025e0 3a 09 28 72 30 3d 72 31 3d 30 29 3a 20 43 75 72 |:.(r0=r1=0): Cur| 000025f0 72 65 6e 74 20 46 53 20 6e 75 6d 62 65 72 2c 20 |rent FS number, | 00002600 65 6c 73 65 3a 0a 09 56 61 6c 75 65 20 72 65 74 |else:..Value ret| 00002610 75 72 6e 65 64 20 69 6e 20 52 32 20 62 79 20 4f |urned in R2 by O| 00002620 53 5f 41 72 67 73 2c 20 6f 72 0a 09 2d 31 20 69 |S_Args, or..-1 i| 00002630 66 20 66 61 69 6c 65 64 20 28 69 65 20 63 61 72 |f failed (ie car| 00002640 72 79 20 66 6c 61 67 20 73 65 74 29 0a 09 2d 32 |ry flag set)..-2| 00002650 20 69 66 20 61 6e 20 4f 53 20 65 72 72 6f 72 20 | if an OS error | 00002660 6f 63 63 75 72 72 65 64 2e 0a 0a 54 68 69 73 20 |occurred...This | 00002670 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 |function calls t| 00002680 68 65 20 3c 4f 53 5f 41 72 67 73 3d 3e 53 57 49 |he <OS_Args=>SWI| 00002690 3a 4f 53 5f 41 72 67 73 3e 20 53 57 49 20 77 69 |:OS_Args> SWI wi| 000026a0 74 68 20 72 65 67 69 73 74 65 72 73 20 52 30 2d |th registers R0-| 000026b0 52 32 20 73 65 74 20 74 6f 20 74 68 6f 73 65 20 |R2 set to those | 000026c0 67 69 76 65 6e 2e 00 00 44 41 54 41 58 01 00 00 |given...DATAX...| 000026d0 5f 6b 65 72 6e 65 6c 5f 6f 73 62 67 65 74 0a 53 |_kernel_osbget.S| 000026e0 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e |yntax:.int _kern| 000026f0 65 6c 5f 6f 73 62 67 65 74 20 28 75 6e 73 69 67 |el_osbget (unsig| 00002700 6e 65 64 20 68 61 6e 64 6c 65 29 3b 0a 48 65 61 |ned handle);.Hea| 00002710 64 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e |der:.<kernel.h=>| 00002720 6b 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 |kernel>..Returns| 00002730 3a 09 54 68 65 20 62 79 74 65 20 72 65 61 64 2c |:.The byte read,| 00002740 20 2d 31 20 66 6f 72 20 45 4f 46 2c 20 2d 32 20 | -1 for EOF, -2 | 00002750 66 6f 72 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 |for error...This| 00002760 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 | function calls | 00002770 74 68 65 20 3c 4f 53 5f 42 47 65 74 3d 3e 53 57 |the <OS_BGet=>SW| 00002780 49 3a 4f 53 5f 42 47 65 74 3e 20 53 57 49 20 77 |I:OS_BGet> SWI w| 00002790 68 69 63 68 20 72 65 61 64 73 20 61 20 62 79 74 |hich reads a byt| 000027a0 65 20 66 72 6f 6d 20 74 68 65 20 6f 70 65 6e 20 |e from the open | 000027b0 66 69 6c 65 20 77 68 6f 73 65 20 68 61 6e 64 6c |file whose handl| 000027c0 65 20 69 73 20 67 69 76 65 6e 2e 0a 0a 4e 6f 74 |e is given...Not| 000027d0 65 20 74 68 61 74 20 74 68 69 73 20 69 73 20 61 |e that this is a| 000027e0 20 52 49 53 43 20 4f 53 20 66 69 6c 65 20 68 61 | RISC OS file ha| 000027f0 6e 64 6c 65 2c 20 6e 6f 74 20 6f 6e 65 20 67 65 |ndle, not one ge| 00002800 6e 65 72 61 74 65 64 20 62 79 20 74 68 65 20 3c |nerated by the <| 00002810 66 6f 70 65 6e 3e 20 66 75 6e 63 74 69 6f 6e 2e |fopen> function.| 00002820 44 41 54 41 58 01 00 00 5f 6b 65 72 6e 65 6c 5f |DATAX..._kernel_| 00002830 6f 73 62 70 75 74 0a 53 79 6e 74 61 78 3a 09 69 |osbput.Syntax:.i| 00002840 6e 74 20 5f 6b 65 72 6e 65 6c 5f 6f 73 62 70 75 |nt _kernel_osbpu| 00002850 74 20 28 69 6e 74 20 63 2c 20 75 6e 73 69 67 6e |t (int c, unsign| 00002860 65 64 20 68 61 6e 64 6c 65 29 3b 0a 48 65 61 64 |ed handle);.Head| 00002870 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b |er:.<kernel.h=>k| 00002880 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a |ernel>..Returns:| 00002890 09 2d 32 20 69 66 20 61 6e 20 4f 53 20 65 72 72 |.-2 if an OS err| 000028a0 6f 72 20 6f 63 63 75 72 65 64 2c 20 65 6c 73 65 |or occured, else| 000028b0 20 30 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 | 0...This functi| 000028c0 6f 6e 20 63 61 6c 6c 73 20 74 68 65 20 3c 4f 53 |on calls the <OS| 000028d0 5f 42 50 75 74 3d 3e 53 57 49 3a 4f 53 5f 42 50 |_BPut=>SWI:OS_BP| 000028e0 75 74 3e 20 53 57 49 20 77 68 69 63 68 20 77 72 |ut> SWI which wr| 000028f0 69 74 65 73 20 61 20 62 79 74 65 20 74 6f 20 74 |ites a byte to t| 00002900 68 65 20 6f 70 65 6e 20 66 69 6c 65 20 77 68 6f |he open file who| 00002910 73 65 20 68 61 6e 64 6c 65 20 69 73 20 67 69 76 |se handle is giv| 00002920 65 6e 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 |en...Note that t| 00002930 68 69 73 20 69 73 20 61 20 52 49 53 43 20 4f 53 |his is a RISC OS| 00002940 20 66 69 6c 65 20 68 61 6e 64 6c 65 2c 20 6e 6f | file handle, no| 00002950 74 20 6f 6e 65 20 67 65 6e 65 72 61 74 65 64 20 |t one generated | 00002960 62 79 20 74 68 65 20 3c 66 6f 70 65 6e 3e 20 66 |by the <fopen> f| 00002970 75 6e 63 74 69 6f 6e 2e 44 41 54 41 0d 02 00 00 |unction.DATA....| 00002980 5f 6b 65 72 6e 65 6c 5f 6f 73 62 79 74 65 0a 53 |_kernel_osbyte.S| 00002990 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e |yntax:.int _kern| 000029a0 65 6c 5f 6f 73 62 79 74 65 20 28 69 6e 74 20 72 |el_osbyte (int r| 000029b0 30 2c 20 69 6e 74 20 72 31 2c 20 69 6e 74 20 72 |0, int r1, int r| 000029c0 32 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 |2);.Header:.<ker| 000029d0 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a |nel.h=>kernel>..| 000029e0 52 65 74 75 72 6e 73 3a 09 56 61 6c 75 65 73 20 |Returns:.Values | 000029f0 72 65 74 75 72 6e 65 64 2c 20 6f 72 20 65 72 72 |returned, or err| 00002a00 6f 72 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 09 |or as follows:..| 00002a10 28 2d 31 29 09 43 61 72 72 79 20 66 6c 61 67 20 |(-1).Carry flag | 00002a20 69 73 20 73 65 74 20 28 63 61 6c 6c 20 66 61 69 |is set (call fai| 00002a30 6c 65 64 29 0a 09 28 2d 32 29 09 4f 53 20 65 72 |led)..(-2).OS er| 00002a40 72 6f 72 20 6f 63 63 75 72 73 2e 0a 0a 54 68 69 |ror occurs...Thi| 00002a50 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 |s function calls| 00002a60 20 74 68 65 20 3c 4f 53 5f 42 79 74 65 3d 3e 53 | the <OS_Byte=>S| 00002a70 57 49 3a 4f 53 5f 42 79 74 65 3e 20 53 57 49 20 |WI:OS_Byte> SWI | 00002a80 77 69 74 68 20 74 68 65 20 72 65 67 69 73 74 65 |with the registe| 00002a90 72 20 52 30 20 73 65 74 20 74 6f 20 74 68 65 20 |r R0 set to the | 00002aa0 76 61 6c 75 65 20 70 61 73 73 65 64 20 69 6e 20 |value passed in | 00002ab0 7b 2f 7d 72 30 7b 2f 7d 2c 20 61 6e 64 20 72 65 |{/}r0{/}, and re| 00002ac0 67 69 73 74 65 72 73 20 52 31 20 61 6e 64 20 52 |gisters R1 and R| 00002ad0 32 20 73 65 74 20 74 6f 20 74 68 65 20 76 61 6c |2 set to the val| 00002ae0 75 65 73 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ues pointed to b| 00002af0 79 20 7b 2f 7d 72 31 7b 2f 7d 20 61 6e 64 20 7b |y {/}r1{/} and {| 00002b00 2f 7d 72 32 7b 2f 7d 2e 0a 0a 54 68 65 20 2f 69 |/}r2{/}...The /i| 00002b10 6e 74 2f 20 72 65 74 75 72 6e 65 64 20 63 6f 6e |nt/ returned con| 00002b20 74 61 69 6e 73 20 52 31 20 69 6e 20 69 74 73 20 |tains R1 in its | 00002b30 62 6f 74 74 6f 6d 20 62 79 74 65 2c 20 52 32 20 |bottom byte, R2 | 00002b40 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 62 79 |in the second by| 00002b50 74 65 2c 20 61 6e 64 20 31 20 69 6e 20 74 68 65 |te, and 1 in the| 00002b60 20 74 68 69 72 64 20 62 79 74 65 20 69 66 20 74 | third byte if t| 00002b70 68 65 20 63 61 72 72 79 20 66 6c 61 67 20 69 73 |he carry flag is| 00002b80 20 73 65 74 2e 00 00 00 44 41 54 41 c1 01 00 00 | set....DATA....| 00002b90 5f 6b 65 72 6e 65 6c 5f 6f 73 63 6c 69 0a 53 79 |_kernel_oscli.Sy| 00002ba0 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 |ntax:.int _kerne| 00002bb0 6c 5f 6f 73 63 6c 69 20 28 63 68 61 72 20 2a 63 |l_oscli (char *c| 00002bc0 6f 6d 6d 61 6e 64 29 3b 0a 48 65 61 64 65 72 3a |ommand);.Header:| 00002bd0 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e |.<kernel.h=>kern| 00002be0 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 30 20 |el>..Returns:.0 | 00002bf0 69 66 20 73 75 63 63 65 73 73 66 75 6c 2c 20 2d |if successful, -| 00002c00 32 20 69 66 20 61 6e 20 4f 53 20 65 72 72 6f 72 |2 if an OS error| 00002c10 20 6f 63 63 75 72 72 65 64 2e 0a 0a 54 68 69 73 | occurred...This| 00002c20 20 66 75 6e 63 74 69 6f 6e 20 70 61 73 73 65 73 | function passes| 00002c30 20 74 68 65 20 73 74 72 69 6e 67 20 67 69 76 65 | the string give| 00002c40 6e 20 74 6f 20 74 68 65 20 6f 70 65 72 61 74 69 |n to the operati| 00002c50 6e 67 20 73 79 73 74 65 6d 20 43 4c 49 20 74 6f |ng system CLI to| 00002c60 20 62 65 20 65 78 65 63 75 74 65 64 20 61 73 20 | be executed as | 00002c70 69 66 20 69 74 20 68 61 64 20 62 65 65 6e 20 74 |if it had been t| 00002c80 79 70 65 64 20 69 6e 20 61 73 20 61 20 22 73 74 |yped in as a "st| 00002c90 61 72 20 63 6f 6d 6d 61 6e 64 22 2e 20 46 6f 72 |ar command". For| 00002ca0 20 69 6e 73 74 61 6e 63 65 2c 20 7b 66 43 6f 64 | instance, {fCod| 00002cb0 65 7d 5f 6b 65 72 6e 65 6c 5f 6f 73 63 6c 69 28 |e}_kernel_oscli(| 00002cc0 22 4d 6f 64 75 6c 65 73 22 29 7b 66 7d 20 68 61 |"Modules"){f} ha| 00002cd0 73 20 74 68 65 20 73 61 6d 65 20 65 66 66 65 63 |s the same effec| 00002ce0 74 20 61 73 20 3c 2a 4d 6f 64 75 6c 65 73 3e 2e |t as <*Modules>.| 00002cf0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00002d00 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 75 73 |should not be us| 00002d10 65 64 20 74 6f 20 72 75 6e 20 6f 74 68 65 72 20 |ed to run other | 00002d20 70 72 6f 67 72 61 6d 73 20 2d 20 75 73 65 20 3c |programs - use <| 00002d30 5f 6b 65 72 6e 65 6c 5f 73 79 73 74 65 6d 3e 20 |_kernel_system> | 00002d40 66 6f 72 20 74 68 61 74 2e 00 00 00 44 41 54 41 |for that....DATA| 00002d50 0b 01 00 00 5f 6b 65 72 6e 65 6c 5f 6f 73 65 72 |...._kernel_oser| 00002d60 72 6f 72 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d |ror.The type {*}| 00002d70 5f 6b 65 72 6e 65 6c 5f 6f 73 65 72 72 6f 72 7b |_kernel_oserror{| 00002d80 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |*} is defined in| 00002d90 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e | <kernel.h=>kern| 00002da0 65 6c 3e 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 |el> as an object| 00002db0 20 68 6f 6c 64 69 6e 67 20 61 20 73 74 61 6e 64 | holding a stand| 00002dc0 61 72 64 20 52 49 53 43 20 4f 53 20 65 72 72 6f |ard RISC OS erro| 00002dd0 72 20 62 6c 6f 63 6b 2e 20 49 74 20 69 73 20 64 |r block. It is d| 00002de0 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f |efined as the fo| 00002df0 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 |llowing structur| 00002e00 65 3a 0a 0a 5c 7b 0a 20 20 20 20 69 6e 74 20 65 |e:..\{. int e| 00002e10 72 72 6e 75 6d 3b 09 2f 2a 20 45 72 72 6f 72 20 |rrnum;./* Error | 00002e20 6e 75 6d 62 65 72 20 20 2a 2f 0a 20 20 20 20 63 |number */. c| 00002e30 68 61 72 20 65 72 72 6d 65 73 73 5b 32 35 32 5d |har errmess[252]| 00002e40 3b 09 2f 2a 20 45 72 72 6f 72 20 6d 65 73 73 61 |;./* Error messa| 00002e50 67 65 20 2a 2f 0a 7d 00 44 41 54 41 bf 01 00 00 |ge */.}.DATA....| 00002e60 5f 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c 65 0a 53 |_kernel_osfile.S| 00002e70 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e |yntax:.int _kern| 00002e80 65 6c 5f 6f 73 66 69 6c 65 20 28 69 6e 74 20 6f |el_osfile (int o| 00002e90 70 2c 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c |p, char *name, <| 00002ea0 5f 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c 65 5f 62 |_kernel_osfile_b| 00002eb0 6c 6f 63 6b 3d 3e 5f 6b 65 72 6e 65 6c 5f 6f 73 |lock=>_kernel_os| 00002ec0 66 69 6c 65 5f 62 6c 6f 63 3e 20 2a 62 6c 6b 29 |file_bloc> *blk)| 00002ed0 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 |;.Header:.<kerne| 00002ee0 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 |l.h=>kernel>..Re| 00002ef0 74 75 72 6e 73 3a 09 43 6f 6e 74 65 6e 74 73 20 |turns:.Contents | 00002f00 6f 66 20 72 65 67 69 73 74 65 72 20 52 30 2c 20 |of register R0, | 00002f10 6f 72 20 65 72 72 6f 72 3a 0a 09 2d 31 20 69 66 |or error:..-1 if| 00002f20 20 66 61 69 6c 65 64 20 28 69 65 20 63 61 72 72 | failed (ie carr| 00002f30 79 20 66 6c 61 67 20 73 65 74 29 0a 09 2d 32 20 |y flag set)..-2 | 00002f40 69 66 20 61 6e 20 4f 53 20 65 72 72 6f 72 20 6f |if an OS error o| 00002f50 63 63 75 72 72 65 64 2e 0a 0a 54 68 69 73 20 66 |ccurred...This f| 00002f60 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 68 |unction calls th| 00002f70 65 20 3c 4f 53 5f 46 69 6c 65 3d 3e 53 57 49 3a |e <OS_File=>SWI:| 00002f80 4f 53 5f 46 69 6c 65 3e 20 53 57 49 20 77 68 69 |OS_File> SWI whi| 00002f90 63 68 20 70 65 72 66 6f 72 6d 73 20 76 61 72 69 |ch performs vari| 00002fa0 6f 75 73 20 66 75 6e 63 74 69 6f 6e 73 20 6f 6e |ous functions on| 00002fb0 20 77 68 6f 6c 65 20 66 69 6c 65 73 2e 20 52 30 | whole files. R0| 00002fc0 20 69 73 20 73 65 74 20 66 72 6f 6d 20 2f 6f 70 | is set from /op| 00002fd0 2f 2c 20 61 6e 64 20 52 31 20 69 73 20 73 65 74 |/, and R1 is set| 00002fe0 20 74 6f 20 74 68 65 20 6e 61 6d 65 20 67 69 76 | to the name giv| 00002ff0 65 6e 2e 20 52 65 67 69 73 74 65 72 73 20 52 32 |en. Registers R2| 00003000 2d 52 35 20 61 72 65 20 73 65 74 20 66 72 6f 6d |-R5 are set from| 00003010 20 2f 62 6c 6b 2f 2e 00 44 41 54 41 6c 01 00 00 | /blk/..DATAl...| 00003020 5f 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c 65 5f 62 |_kernel_osfile_b| 00003030 6c 6f 63 6b 0a 54 68 65 20 74 79 70 65 20 7b 2a |lock.The type {*| 00003040 7d 5f 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c 65 5f |}_kernel_osfile_| 00003050 62 6c 6f 63 6b 7b 2a 7d 20 69 73 20 64 65 66 69 |block{*} is defi| 00003060 6e 65 64 20 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 |ned in <kernel.h| 00003070 3d 3e 6b 65 72 6e 65 6c 3e 20 61 73 20 61 20 74 |=>kernel> as a t| 00003080 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 20 68 |ype capable of h| 00003090 6f 6c 64 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 |olding informati| 000030a0 6f 6e 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 |on to be passed | 000030b0 74 6f 20 74 68 65 20 3c 5f 6b 65 72 6e 65 6c 5f |to the <_kernel_| 000030c0 6f 73 66 69 6c 65 3e 20 66 75 6e 63 74 69 6f 6e |osfile> function| 000030d0 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 000030e0 61 73 3a 0a 0a 5c 7b 0a 20 20 20 20 69 6e 74 20 |as:..\{. int | 000030f0 6c 6f 61 64 3b 09 2f 2a 20 6c 6f 61 64 20 61 64 |load;./* load ad| 00003100 64 72 65 73 73 20 2a 2f 0a 20 20 20 20 69 6e 74 |dress */. int| 00003110 20 65 78 65 63 3b 09 2f 2a 20 65 78 65 63 75 74 | exec;./* execut| 00003120 69 6f 6e 20 61 64 64 72 65 73 73 20 2a 2f 0a 20 |ion address */. | 00003130 20 20 20 69 6e 74 20 73 74 61 72 74 3b 09 2f 2a | int start;./*| 00003140 20 73 74 61 72 74 20 61 64 64 72 65 73 73 2f 6c | start address/l| 00003150 65 6e 67 74 68 20 2a 2f 0a 20 20 20 20 69 6e 74 |ength */. int| 00003160 20 65 6e 64 3b 09 2f 2a 20 65 6e 64 20 61 64 64 | end;./* end add| 00003170 72 65 73 73 2f 61 74 74 72 69 62 75 74 65 73 20 |ress/attributes | 00003180 2a 2f 0a 7d 44 41 54 41 a2 01 00 00 5f 6b 65 72 |*/.}DATA...._ker| 00003190 6e 65 6c 5f 6f 73 66 69 6e 64 0a 53 79 6e 74 61 |nel_osfind.Synta| 000031a0 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 6c 5f 6f |x:.int _kernel_o| 000031b0 73 66 69 6e 64 20 28 69 6e 74 20 6f 70 2c 20 63 |sfind (int op, c| 000031c0 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 |har *name);.Head| 000031d0 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b |er:.<kernel.h=>k| 000031e0 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a |ernel>..Returns:| 000031f0 09 4f 70 65 6e 69 6e 67 20 66 69 6c 65 3a 09 30 |.Opening file:.0| 00003200 20 69 66 20 66 61 69 6c 65 64 2c 20 65 6c 73 65 | if failed, else| 00003210 20 66 69 6c 65 20 68 61 6e 64 6c 65 2e 0a 09 43 | file handle...C| 00003220 6c 6f 73 69 6e 67 20 66 69 6c 65 3a 09 30 20 69 |losing file:.0 i| 00003230 66 20 73 75 63 63 65 73 73 66 75 6c 2c 0a 09 20 |f successful,.. | 00003240 09 2d 31 20 69 66 20 66 61 69 6c 65 64 2c 0a 09 |.-1 if failed,..| 00003250 20 09 2d 32 20 69 66 20 4f 53 20 65 72 72 6f 72 | .-2 if OS error| 00003260 20 6f 63 63 75 72 65 64 2e 0a 0a 54 68 69 73 20 | occured...This | 00003270 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 |function calls t| 00003280 68 65 20 3c 4f 53 5f 46 69 6e 64 3d 3e 53 57 49 |he <OS_Find=>SWI| 00003290 3a 4f 53 5f 46 69 6e 64 3e 20 53 57 49 20 77 68 |:OS_Find> SWI wh| 000032a0 69 63 68 20 68 61 6e 64 6c 69 6e 67 20 6f 70 65 |ich handling ope| 000032b0 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 69 6e 67 |ning and closing| 000032c0 20 6f 66 20 72 61 6e 64 6f 6d 20 61 63 63 65 73 | of random acces| 000032d0 73 20 66 69 6c 65 73 2e 20 54 68 65 20 72 65 67 |s files. The reg| 000032e0 69 73 74 65 72 20 52 30 20 69 73 20 73 65 74 20 |ister R0 is set | 000032f0 74 6f 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 |to the value in | 00003300 2f 6f 70 2f 2c 20 52 31 20 73 68 6f 75 6c 64 20 |/op/, R1 should | 00003310 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 66 69 6c |point to the fil| 00003320 65 6e 61 6d 65 2e 00 00 44 41 54 41 c9 01 00 00 |ename...DATA....| 00003330 5f 6b 65 72 6e 65 6c 5f 6f 73 67 62 70 62 0a 53 |_kernel_osgbpb.S| 00003340 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e |yntax:.int _kern| 00003350 65 6c 5f 6f 73 67 62 70 62 20 28 69 6e 74 20 6f |el_osgbpb (int o| 00003360 70 2c 20 75 6e 73 69 67 6e 65 64 20 68 61 6e 64 |p, unsigned hand| 00003370 6c 65 2c 20 3c 5f 6b 65 72 6e 65 6c 5f 6f 73 67 |le, <_kernel_osg| 00003380 62 70 62 5f 62 6c 6f 63 6b 3d 3e 5f 6b 65 72 6e |bpb_block=>_kern| 00003390 65 6c 5f 6f 73 67 62 70 62 5f 62 6c 6f 63 3e 20 |el_osgbpb_bloc> | 000033a0 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*blk);.Header:.<| 000033b0 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c |kernel.h=>kernel| 000033c0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 30 09 69 66 |>..Returns:.0.if| 000033d0 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 09 2d 31 | successful...-1| 000033e0 09 69 66 20 66 61 69 6c 65 64 20 28 69 65 20 63 |.if failed (ie c| 000033f0 61 72 72 79 20 66 6c 61 67 20 73 65 74 29 2e 0a |arry flag set)..| 00003400 09 2d 32 09 69 66 20 61 6e 20 4f 53 20 65 72 72 |.-2.if an OS err| 00003410 6f 72 20 6f 63 63 75 72 65 64 2e 0a 0a 54 68 69 |or occured...Thi| 00003420 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 |s function calls| 00003430 20 74 68 65 20 3c 4f 53 5f 47 42 50 42 3d 3e 53 | the <OS_GBPB=>S| 00003440 57 49 3a 4f 53 5f 47 42 50 42 3e 20 53 57 49 20 |WI:OS_GBPB> SWI | 00003450 77 68 69 63 68 20 70 65 72 66 6f 72 6d 73 20 61 |which performs a| 00003460 20 6d 79 72 69 61 64 20 6f 66 20 64 69 66 66 65 | myriad of diffe| 00003470 72 65 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e |rent operations.| 00003480 20 54 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 | The parameters | 00003490 66 6f 72 20 74 68 65 20 63 61 6c 6c 20 61 72 65 |for the call are| 000034a0 20 73 65 74 20 66 72 6f 6d 20 61 6e 64 20 72 65 | set from and re| 000034b0 74 75 72 6e 65 64 20 69 6e 20 2f 62 6c 6b 2f 2e |turned in /blk/.| 000034c0 20 54 68 65 20 61 63 74 69 6f 6e 20 28 69 6e 20 | The action (in | 000034d0 52 30 29 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 |R0) depends on t| 000034e0 68 65 20 76 61 6c 75 65 20 6f 66 20 2f 6f 70 2f |he value of /op/| 000034f0 2e 00 00 00 44 41 54 41 81 01 00 00 5f 6b 65 72 |....DATA...._ker| 00003500 6e 65 6c 5f 6f 73 67 62 70 62 5f 62 6c 6f 63 6b |nel_osgbpb_block| 00003510 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d 5f 6b 65 |.The type {*}_ke| 00003520 72 6e 65 6c 5f 6f 73 67 62 70 62 5f 62 6c 6f 63 |rnel_osgbpb_bloc| 00003530 6b 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 |k{*} is defined | 00003540 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 |in <kernel.h=>ke| 00003550 72 6e 65 6c 3e 20 61 73 20 61 6e 20 6f 62 6a 65 |rnel> as an obje| 00003560 63 74 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f |ct capable of ho| 00003570 6c 64 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f |lding informatio| 00003580 6e 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 74 |n to be passed t| 00003590 6f 20 74 68 65 20 3c 5f 6b 65 72 6e 65 6c 5f 6f |o the <_kernel_o| 000035a0 73 67 62 70 62 3e 20 66 75 6e 63 74 69 6f 6e 2e |sgbpb> function.| 000035b0 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | It is defined a| 000035c0 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 |s the following | 000035d0 73 74 72 75 63 74 75 72 65 3a 0a 0a 5c 7b 0a 20 |structure:..\{. | 000035e0 20 20 20 76 6f 69 64 20 2a 64 61 74 61 70 74 72 | void *dataptr| 000035f0 3b 09 2f 2a 20 6d 65 6d 6f 72 79 20 61 64 64 72 |;./* memory addr| 00003600 65 73 73 20 6f 66 20 64 61 74 61 2a 2f 0a 20 20 |ess of data*/. | 00003610 20 20 69 6e 74 20 6e 62 79 74 65 73 3b 0a 20 20 | int nbytes;. | 00003620 20 20 69 6e 74 20 66 69 6c 65 70 74 72 3b 0a 20 | int fileptr;. | 00003630 20 20 20 69 6e 74 20 62 75 66 5f 6c 65 6e 3b 0a | int buf_len;.| 00003640 20 20 20 20 63 68 61 72 20 2a 77 69 6c 64 5f 66 | char *wild_f| 00003650 6c 64 3b 09 2f 2a 20 70 6f 69 6e 74 73 20 74 6f |ld;./* points to| 00003660 20 77 69 6c 64 63 61 72 64 65 64 20 6e 61 6d 65 | wildcarded name| 00003670 20 2a 2f 0a 7d 00 00 00 44 41 54 41 fc 00 00 00 | */.}...DATA....| 00003680 5f 6b 65 72 6e 65 6c 5f 6f 73 72 64 63 68 0a 53 |_kernel_osrdch.S| 00003690 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 72 6e |yntax:.int _kern| 000036a0 65 6c 5f 6f 73 72 64 63 68 20 28 76 6f 69 64 29 |el_osrdch (void)| 000036b0 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 |;.Header:.<kerne| 000036c0 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 |l.h=>kernel>..Re| 000036d0 74 75 72 6e 73 3a 09 54 68 65 20 63 68 61 72 61 |turns:.The chara| 000036e0 63 74 65 72 20 72 65 61 64 2e 0a 0a 54 68 69 73 |cter read...This| 000036f0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 | function calls | 00003700 74 68 65 20 7b 2a 7d 4f 53 5f 52 65 61 64 43 7b |the {*}OS_ReadC{| 00003710 2a 7d 20 53 57 49 2c 20 77 68 69 63 68 20 72 65 |*} SWI, which re| 00003720 61 64 73 20 61 20 63 68 61 72 61 63 74 65 72 20 |ads a character | 00003730 66 6f 72 20 74 68 65 20 6b 65 79 62 6f 61 72 64 |for the keyboard| 00003740 20 62 75 66 66 65 72 2c 20 77 61 69 74 69 6e 67 | buffer, waiting| 00003750 20 66 6f 72 20 6f 6e 65 20 74 6f 20 62 65 20 70 | for one to be p| 00003760 72 65 73 73 65 64 20 69 66 20 6e 65 63 65 73 73 |ressed if necess| 00003770 61 72 79 2e 44 41 54 41 b5 01 00 00 5f 6b 65 72 |ary.DATA...._ker| 00003780 6e 65 6c 5f 6f 73 77 6f 72 64 0a 53 79 6e 74 61 |nel_osword.Synta| 00003790 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 6c 5f 6f |x:.int _kernel_o| 000037a0 73 77 6f 72 64 20 28 69 6e 74 20 72 30 2c 20 69 |sword (int r0, i| 000037b0 6e 74 20 2a 72 31 29 3b 0a 48 65 61 64 65 72 3a |nt *r1);.Header:| 000037c0 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e |.<kernel.h=>kern| 000037d0 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 30 09 |el>..Returns:.0.| 000037e0 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 09 |if successful...| 000037f0 2d 31 09 69 66 20 66 61 69 6c 65 64 20 28 69 65 |-1.if failed (ie| 00003800 20 63 61 72 72 79 20 66 6c 61 67 20 73 65 74 29 | carry flag set)| 00003810 2e 0a 09 2d 32 09 69 66 20 61 6e 20 4f 53 20 65 |...-2.if an OS e| 00003820 72 72 6f 72 20 6f 63 63 75 72 65 64 2e 0a 0a 54 |rror occured...T| 00003830 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 00003840 6c 73 20 74 68 65 20 3c 4f 53 5f 57 6f 72 64 3d |ls the <OS_Word=| 00003850 3e 53 57 49 3a 4f 53 5f 57 6f 72 64 3e 20 53 57 |>SWI:OS_Word> SW| 00003860 49 20 77 69 74 68 20 74 68 65 20 72 65 67 69 73 |I with the regis| 00003870 74 65 72 20 52 30 20 73 65 74 20 74 6f 20 74 68 |ter R0 set to th| 00003880 65 20 76 61 6c 75 65 20 70 61 73 73 65 64 20 69 |e value passed i| 00003890 6e 20 7b 2f 7d 72 30 7b 2f 7d 2c 20 61 6e 64 20 |n {/}r0{/}, and | 000038a0 74 68 65 20 72 65 67 69 73 74 65 72 20 52 31 20 |the register R1 | 000038b0 73 65 74 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 |set to the point| 000038c0 65 72 20 7b 2f 7d 72 31 7b 2f 7d 2c 20 77 68 69 |er {/}r1{/}, whi| 000038d0 63 68 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 70 |ch points to a p| 000038e0 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 2e 20 |arameter block. | 000038f0 56 61 6c 75 65 73 20 61 72 65 20 72 65 61 64 20 |Values are read | 00003900 66 72 6f 6d 20 61 6e 64 20 72 65 74 75 72 6e 65 |from and returne| 00003910 64 20 69 6e 20 74 68 65 20 70 61 72 61 6d 65 74 |d in the paramet| 00003920 65 72 20 62 6c 6f 63 6b 2e 00 00 00 44 41 54 41 |er block....DATA| 00003930 2b 01 00 00 5f 6b 65 72 6e 65 6c 5f 6f 73 77 72 |+..._kernel_oswr| 00003940 63 68 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 5f |ch.Syntax:.int _| 00003950 6b 65 72 6e 65 6c 5f 6f 73 77 72 63 68 20 28 69 |kernel_oswrch (i| 00003960 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt c);.Header:.<| 00003970 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c |kernel.h=>kernel| 00003980 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 2d 32 20 69 |>..Returns:.-2 i| 00003990 66 20 61 6e 20 4f 53 20 65 72 72 6f 72 20 6f 63 |f an OS error oc| 000039a0 63 75 72 73 2c 20 65 6c 73 65 20 30 2e 0a 0a 54 |curs, else 0...T| 000039b0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 000039c0 6c 73 20 74 68 65 20 3c 4f 53 5f 57 72 69 74 65 |ls the <OS_Write| 000039d0 43 3d 3e 53 57 49 3a 4f 53 5f 57 72 69 74 65 43 |C=>SWI:OS_WriteC| 000039e0 3e 20 53 57 49 20 77 69 74 68 20 74 68 65 20 72 |> SWI with the r| 000039f0 65 67 69 73 74 65 72 20 52 30 20 73 65 74 20 74 |egister R0 set t| 00003a00 6f 20 2f 63 2f 2e 20 54 68 69 73 20 68 61 73 20 |o /c/. This has | 00003a10 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 77 72 |the result of wr| 00003a20 69 74 69 6e 67 20 74 68 65 20 63 68 61 72 61 74 |iting the charat| 00003a30 65 72 20 69 6e 20 2f 63 2f 20 74 6f 20 74 68 65 |er in /c/ to the| 00003a40 20 63 75 72 72 65 6e 74 20 6f 75 74 70 75 74 20 | current output | 00003a50 73 74 72 65 61 6d 2e 00 44 41 54 41 c2 00 00 00 |stream..DATA....| 00003a60 5f 6b 65 72 6e 65 6c 5f 70 72 6f 63 6e 61 6d 65 |_kernel_procname| 00003a70 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 5f |.Syntax:.char *_| 00003a80 6b 65 72 6e 65 6c 5f 70 72 6f 63 6e 61 6d 65 20 |kernel_procname | 00003a90 28 69 6e 74 20 70 63 29 3b 0a 48 65 61 64 65 72 |(int pc);.Header| 00003aa0 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 |:.<kernel.h=>ker| 00003ab0 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |nel>..Returns:.P| 00003ac0 6f 69 6e 74 65 72 20 74 6f 20 6e 61 6d 65 2e 0a |ointer to name..| 00003ad0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 |.This function g| 00003ae0 65 74 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 |ets the name of | 00003af0 74 68 65 20 70 72 6f 63 65 64 75 72 65 20 63 6f |the procedure co| 00003b00 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 61 64 64 |ntaining the add| 00003b10 72 65 73 73 20 2f 70 63 2f 2e 00 00 44 41 54 41 |ress /pc/...DATA| 00003b20 c6 00 00 00 5f 6b 65 72 6e 65 6c 5f 72 61 69 73 |...._kernel_rais| 00003b30 65 5f 65 72 72 6f 72 0a 53 79 6e 74 61 78 3a 09 |e_error.Syntax:.| 00003b40 76 6f 69 64 20 5f 6b 65 72 6e 65 6c 5f 72 61 69 |void _kernel_rai| 00003b50 73 65 5f 65 72 72 6f 72 20 28 3c 5f 6b 65 72 6e |se_error (<_kern| 00003b60 65 6c 5f 6f 73 65 72 72 6f 72 3e 20 2a 65 72 72 |el_oserror> *err| 00003b70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e |);.Header:.<kern| 00003b80 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 54 |el.h=>kernel>..T| 00003b90 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e |his function gen| 00003ba0 65 72 61 74 65 73 20 61 6e 20 65 78 74 65 72 6e |erates an extern| 00003bb0 61 6c 20 65 72 72 6f 72 20 77 69 74 68 20 74 68 |al error with th| 00003bc0 65 20 65 72 72 6f 72 20 62 6c 6f 63 6b 20 70 6f |e error block po| 00003bd0 69 6e 74 65 72 20 74 6f 20 62 79 20 2f 65 72 72 |inter to by /err| 00003be0 2f 2e 00 00 44 41 54 41 1d 01 00 00 5f 6b 65 72 |/...DATA...._ker| 00003bf0 6e 65 6c 5f 73 64 69 76 0a 53 79 6e 74 61 78 3a |nel_sdiv.Syntax:| 00003c00 09 69 6e 74 20 5f 6b 65 72 6e 65 6c 5f 73 64 69 |.int _kernel_sdi| 00003c10 76 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 |v (int x, int y)| 00003c20 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 |;.Header:.<kerne| 00003c30 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 |l.h=>kernel>..Re| 00003c40 74 75 72 6e 73 3a 09 54 68 65 20 71 75 6f 74 69 |turns:.The quoti| 00003c50 65 6e 74 20 6f 66 20 79 2f 78 2e 0a 0a 54 68 69 |ent of y/x...Thi| 00003c60 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 |s function calcu| 00003c70 6c 61 74 65 73 20 74 68 65 20 73 69 67 6e 65 64 |lates the signed| 00003c80 20 71 75 6f 74 69 65 6e 74 20 6f 66 20 79 2f 78 | quotient of y/x| 00003c90 2e 20 49 74 20 69 73 20 69 6e 74 65 6e 64 65 64 |. It is intended| 00003ca0 20 66 6f 72 20 75 73 65 20 62 79 20 6e 6f 6e 2d | for use by non-| 00003cb0 43 20 70 72 6f 67 72 61 6d 73 20 75 73 69 6e 67 |C programs using| 00003cc0 20 74 68 65 20 53 68 61 72 65 64 20 43 20 4c 69 | the Shared C Li| 00003cd0 62 72 61 72 79 2e 20 49 6e 20 43 20 79 6f 75 20 |brary. In C you | 00003ce0 63 61 6e 20 73 69 6d 70 6c 79 20 75 73 65 20 74 |can simply use t| 00003cf0 68 65 20 64 69 76 69 73 69 6f 6e 20 73 69 67 6e |he division sign| 00003d00 21 00 00 00 44 41 54 41 b0 00 00 00 5f 6b 65 72 |!...DATA...._ker| 00003d10 6e 65 6c 5f 73 64 69 76 31 30 0a 53 79 6e 74 61 |nel_sdiv10.Synta| 00003d20 78 3a 09 69 6e 74 20 5f 6b 65 72 6e 65 6c 5f 73 |x:.int _kernel_s| 00003d30 64 69 76 31 30 20 28 69 6e 74 20 78 29 3b 0a 48 |div10 (int x);.H| 00003d40 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 |eader:.<kernel.h| 00003d50 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 |=>kernel>..Retur| 00003d60 6e 73 3a 09 78 20 64 69 76 69 64 65 64 20 62 79 |ns:.x divided by| 00003d70 20 31 30 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 | 10...This funct| 00003d80 69 6f 6e 20 64 69 76 69 64 65 73 20 2f 78 2f 20 |ion divides /x/ | 00003d90 62 79 20 31 30 20 61 6e 64 20 72 65 74 75 72 6e |by 10 and return| 00003da0 73 20 74 68 65 20 73 69 67 6e 65 64 20 72 65 73 |s the signed res| 00003db0 75 6c 74 2e 44 41 54 41 8c 01 00 00 5f 6b 65 72 |ult.DATA...._ker| 00003dc0 6e 65 6c 5f 73 65 74 65 6e 76 0a 53 79 6e 74 61 |nel_setenv.Synta| 00003dd0 78 3a 09 3c 5f 6b 65 72 6e 65 6c 5f 6f 73 65 72 |x:.<_kernel_oser| 00003de0 72 6f 72 3e 20 2a 5f 6b 65 72 6e 65 6c 5f 73 65 |ror> *_kernel_se| 00003df0 74 65 6e 76 20 28 63 68 61 72 20 2a 6e 61 6d 65 |tenv (char *name| 00003e00 2c 20 63 68 61 72 20 2a 76 61 6c 29 3b 0a 48 65 |, char *val);.He| 00003e10 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d |ader:.<kernel.h=| 00003e20 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e |>kernel>..Return| 00003e30 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00003e40 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00003e50 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00003e60 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 65 20 |nction sets the | 00003e70 76 61 6c 75 65 20 6f 66 20 74 68 65 20 73 79 73 |value of the sys| 00003e80 74 65 6d 20 76 61 72 69 61 62 6c 65 20 77 68 6f |tem variable who| 00003e90 73 65 20 6e 61 6d 65 20 69 73 20 73 70 65 63 69 |se name is speci| 00003ea0 66 69 65 64 20 74 6f 20 74 68 65 20 73 74 72 69 |fied to the stri| 00003eb0 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |ng pointed to by| 00003ec0 20 2f 76 61 6c 2f 2e 20 49 66 20 2f 76 61 6c 2f | /val/. If /val/| 00003ed0 20 69 73 20 4e 55 4c 4c 20 74 68 65 6e 20 74 68 | is NULL then th| 00003ee0 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 |e variable is de| 00003ef0 6c 65 74 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e |leted...This fun| 00003f00 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c |ction is equival| 00003f10 65 6e 74 20 74 6f 20 74 68 65 20 53 57 49 20 3c |ent to the SWI <| 00003f20 4f 53 5f 53 65 74 56 61 72 56 61 6c 3d 3e 53 57 |OS_SetVarVal=>SW| 00003f30 49 3a 4f 53 5f 53 65 74 56 61 72 56 61 6c 3e 2e |I:OS_SetVarVal>.| 00003f40 44 41 54 41 ab 00 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 00003f50 73 65 74 72 65 74 75 72 6e 63 6f 64 65 0a 53 79 |setreturncode.Sy| 00003f60 6e 74 61 78 3a 09 76 6f 69 64 20 5f 6b 65 72 6e |ntax:.void _kern| 00003f70 65 6c 5f 73 65 74 72 65 74 75 72 6e 63 6f 64 65 |el_setreturncode| 00003f80 20 28 75 6e 73 69 67 6e 65 64 20 6e 29 3b 0a 48 | (unsigned n);.H| 00003f90 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 |eader:.<kernel.h| 00003fa0 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 54 68 69 73 20 |=>kernel>..This | 00003fb0 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 00003fc0 65 20 72 65 74 75 72 6e 20 63 6f 64 65 20 74 6f |e return code to| 00003fd0 20 62 65 20 75 73 65 64 20 62 79 20 3c 5f 6b 65 | be used by <_ke| 00003fe0 72 6e 65 6c 5f 65 78 69 74 3e 2e 00 44 41 54 41 |rnel_exit>..DATA| 00003ff0 44 01 00 00 5f 6b 65 72 6e 65 6c 5f 73 72 65 6d |D..._kernel_srem| 00004000 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 5f 6b 65 |.Syntax:.int _ke| 00004010 72 6e 65 6c 5f 73 72 65 6d 20 28 69 6e 74 20 78 |rnel_srem (int x| 00004020 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 |, int y);.Header| 00004030 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 |:.<kernel.h=>ker| 00004040 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 |nel>..Returns:.T| 00004050 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 |he remainder of | 00004060 79 2f 78 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |y/x...This funct| 00004070 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 20 74 |ion calculates t| 00004080 68 65 20 73 69 67 6e 65 64 20 72 65 6d 61 69 6e |he signed remain| 00004090 64 65 72 20 6f 66 20 79 2f 78 2e 20 46 6f 72 6d |der of y/x. Form| 000040a0 61 6c 6c 79 20 74 68 69 73 20 69 73 20 64 65 66 |ally this is def| 000040b0 69 6e 65 64 20 61 73 20 72 3d 79 2d 28 69 2a 78 |ined as r=y-(i*x| 000040c0 29 2c 20 77 68 65 72 65 20 2f 72 2f 20 69 73 20 |), where /r/ is | 000040d0 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 61 6e |the remainder an| 000040e0 64 20 2f 69 2f 20 69 73 20 61 6e 20 69 6e 74 65 |d /i/ is an inte| 000040f0 67 65 72 20 73 75 63 68 20 74 68 61 74 20 2f 72 |ger such that /r| 00004100 2f 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 73 |/ has the same s| 00004110 69 67 6e 20 61 73 20 2f 79 2f 20 61 6e 64 20 69 |ign as /y/ and i| 00004120 73 20 6c 65 73 73 20 74 68 61 6e 20 2f 78 2f 2e |s less than /x/.| 00004130 44 41 54 41 15 01 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 00004140 73 74 61 63 6b 5f 63 68 75 6e 6b 0a 54 68 69 73 |stack_chunk.This| 00004150 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00004160 20 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b | in <kernel.h=>k| 00004170 65 72 6e 65 6c 3e 2e 20 49 74 20 63 6f 6e 74 61 |ernel>. It conta| 00004180 69 6e 73 20 61 20 73 74 61 63 6b 20 63 68 75 6e |ins a stack chun| 00004190 6b 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |k in the followi| 000041a0 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 |ng structure:.. | 000041b0 20 5c 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 | \{. unsigned| 000041c0 20 6c 6f 6e 67 20 73 63 5f 6d 61 72 6b 3b 20 20 | long sc_mark; | 000041d0 2f 2a 20 30 78 66 36 30 36 39 30 66 66 20 2a 2f |/* 0xf60690ff */| 000041e0 0a 20 20 20 20 73 74 72 75 63 74 20 73 74 61 63 |. struct stac| 000041f0 6b 5f 63 68 75 6e 6b 20 2a 73 63 5f 6e 65 78 74 |k_chunk *sc_next| 00004200 2c 73 63 5f 70 72 65 76 3b 0a 20 20 20 20 75 6e |,sc_prev;. un| 00004210 73 69 67 6e 65 64 20 6c 6f 6e 67 20 73 63 5f 73 |signed long sc_s| 00004220 69 7a 65 3b 0a 20 20 20 20 69 6e 74 20 28 2a 73 |ize;. int (*s| 00004230 63 5f 64 65 61 6c 6c 6f 63 61 74 65 29 20 28 29 |c_deallocate) ()| 00004240 3b 0a 20 20 7d 00 00 00 44 41 54 41 df 01 00 00 |;. }...DATA....| 00004250 5f 6b 65 72 6e 65 6c 5f 73 77 69 0a 53 79 6e 74 |_kernel_swi.Synt| 00004260 61 78 3a 09 3c 5f 6b 65 72 6e 65 6c 5f 6f 73 65 |ax:.<_kernel_ose| 00004270 72 72 6f 72 3e 20 2a 5f 6b 65 72 6e 65 6c 5f 73 |rror> *_kernel_s| 00004280 77 69 20 28 69 6e 74 20 6e 2c 20 3c 5f 6b 65 72 |wi (int n, <_ker| 00004290 6e 65 6c 5f 73 77 69 5f 72 65 67 73 3e 20 2a 69 |nel_swi_regs> *i| 000042a0 6e 2c 20 5f 6b 65 72 6e 65 6c 5f 73 77 69 5f 72 |n, _kernel_swi_r| 000042b0 65 67 73 20 2a 6f 75 74 29 3b 0a 48 65 61 64 65 |egs *out);.Heade| 000042c0 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 |r:.<kernel.h=>ke| 000042d0 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |rnel>..Returns:.| 000042e0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000042f0 2c 20 6f 72 20 4e 55 4c 4c 20 69 66 20 6e 6f 6e |, or NULL if non| 00004300 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00004310 6e 20 63 61 6c 6c 73 20 61 20 53 57 49 2c 20 77 |n calls a SWI, w| 00004320 68 6f 73 65 20 6e 75 6d 62 65 72 20 69 73 20 67 |hose number is g| 00004330 69 76 65 6e 20 69 6e 20 2f 6e 2f 2e 20 54 68 65 |iven in /n/. The| 00004340 20 72 65 67 69 73 74 65 72 73 20 52 30 2d 52 39 | registers R0-R9| 00004350 20 61 72 65 20 73 65 74 20 74 6f 20 74 68 65 20 | are set to the | 00004360 76 61 6c 75 65 73 20 69 6e 20 2f 69 6e 2f 2c 20 |values in /in/, | 00004370 61 6e 64 20 72 65 74 75 72 6e 65 64 20 69 6e 20 |and returned in | 00004380 2f 6f 75 74 2f 2e 0a 0a 54 68 69 73 20 6e 6f 72 |/out/...This nor| 00004390 6d 61 6c 6c 79 20 63 61 6c 6c 65 73 20 74 68 65 |mally calles the| 000043a0 20 58 20 66 6f 72 6d 20 6f 66 20 74 68 65 20 53 | X form of the S| 000043b0 57 49 73 20 69 65 20 65 72 72 6f 72 73 20 61 72 |WIs ie errors ar| 000043c0 65 20 72 65 74 75 72 6e 65 64 20 62 75 74 20 6e |e returned but n| 000043d0 6f 74 20 72 65 70 6f 72 74 65 64 2e 20 54 6f 20 |ot reported. To | 000043e0 63 61 6c 6c 20 74 68 65 20 6e 6f 72 6d 61 6c 20 |call the normal | 000043f0 66 6f 72 6d 2c 20 79 6f 75 20 73 68 6f 75 6c 64 |form, you should| 00004400 20 4f 52 20 74 68 65 20 53 57 49 20 6e 75 6d 62 | OR the SWI numb| 00004410 65 72 20 77 69 74 68 20 3c 5f 6b 65 72 6e 65 6c |er with <_kernel| 00004420 5f 4e 4f 4e 58 3e 2e 00 44 41 54 41 ec 01 00 00 |_NONX>..DATA....| 00004430 5f 6b 65 72 6e 65 6c 5f 73 77 69 5f 63 0a 53 79 |_kernel_swi_c.Sy| 00004440 6e 74 61 78 3a 09 3c 5f 6b 65 72 6e 65 6c 5f 6f |ntax:.<_kernel_o| 00004450 73 65 72 72 6f 72 3e 20 2a 5f 6b 65 72 6e 65 6c |serror> *_kernel| 00004460 5f 73 77 69 5f 63 20 28 69 6e 74 20 6e 2c 20 3c |_swi_c (int n, <| 00004470 5f 6b 65 72 6e 65 6c 5f 73 77 69 5f 72 65 67 73 |_kernel_swi_regs| 00004480 3e 20 2a 69 6e 2c 20 5f 6b 65 72 6e 65 6c 5f 73 |> *in, _kernel_s| 00004490 77 69 5f 72 65 67 73 20 2a 6f 75 74 2c 20 69 6e |wi_regs *out, in| 000044a0 74 20 2a 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c |t *c);.Header:.<| 000044b0 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c |kernel.h=>kernel| 000044c0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000044d0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000044e0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000044f0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00004500 63 61 6c 6c 73 20 61 20 53 57 49 2c 20 77 68 6f |calls a SWI, who| 00004510 73 65 20 6e 75 6d 62 65 72 20 69 73 20 67 69 76 |se number is giv| 00004520 65 6e 20 69 6e 20 2f 6e 2f 2e 20 54 68 65 20 72 |en in /n/. The r| 00004530 65 67 69 73 74 65 72 73 20 52 30 2d 52 39 20 61 |egisters R0-R9 a| 00004540 72 65 20 73 65 74 20 74 6f 20 74 68 65 20 76 61 |re set to the va| 00004550 6c 75 65 73 20 69 6e 20 2f 69 6e 2f 2c 20 61 6e |lues in /in/, an| 00004560 64 20 72 65 74 75 72 6e 65 64 20 69 6e 20 2f 6f |d returned in /o| 00004570 75 74 2f 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e |ut/. In addition| 00004580 20 74 68 65 20 63 61 72 72 79 20 66 6c 61 67 20 | the carry flag | 00004590 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 |is returned in t| 000045a0 68 65 20 76 61 72 69 61 62 6c 65 20 70 6f 69 6e |he variable poin| 000045b0 74 65 64 20 74 6f 20 62 79 20 2f 63 2f 2e 0a 0a |ted to by /c/...| 000045c0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 |This function is| 000045d0 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c 5f | identical to <_| 000045e0 6b 65 72 6e 65 6c 5f 73 77 69 3e 2c 20 65 78 63 |kernel_swi>, exc| 000045f0 65 70 74 20 74 68 61 74 20 74 68 65 20 63 61 72 |ept that the car| 00004600 72 79 20 66 6c 61 67 20 69 73 20 72 65 74 75 72 |ry flag is retur| 00004610 6e 65 64 2e 44 41 54 41 f6 00 00 00 5f 6b 65 72 |ned.DATA...._ker| 00004620 6e 65 6c 5f 73 77 69 5f 72 65 67 73 0a 54 68 65 |nel_swi_regs.The| 00004630 20 74 79 70 65 20 7b 2a 7d 5f 6b 65 72 6e 65 6c | type {*}_kernel| 00004640 5f 73 77 69 5f 72 65 67 73 7b 2a 7d 20 69 73 20 |_swi_regs{*} is | 00004650 64 65 66 69 6e 65 64 20 69 6e 20 3c 6b 65 72 6e |defined in <kern| 00004660 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 20 61 73 |el.h=>kernel> as| 00004670 20 61 6e 20 6f 62 6a 65 63 74 20 63 61 70 61 62 | an object capab| 00004680 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 74 68 |le of holding th| 00004690 65 20 72 65 67 69 73 74 65 72 73 20 52 30 2d 52 |e registers R0-R| 000046a0 39 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 63 |9 so that they c| 000046b0 61 6e 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 |an be passed to | 000046c0 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 |the operating sy| 000046d0 73 74 65 6d 2e 20 49 74 20 69 73 20 64 65 66 69 |stem. It is defi| 000046e0 6e 65 64 20 61 73 20 74 68 65 20 73 74 72 75 63 |ned as the struc| 000046f0 74 75 72 65 3a 0a 0a 5c 7b 0a 20 20 20 20 69 6e |ture:..\{. in| 00004700 74 20 72 5b 31 30 5d 3b 0a 7d 00 00 44 41 54 41 |t r[10];.}..DATA| 00004710 95 02 00 00 5f 6b 65 72 6e 65 6c 5f 73 79 73 74 |...._kernel_syst| 00004720 65 6d 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 5f |em.Syntax:.int _| 00004730 6b 65 72 6e 65 6c 5f 73 79 73 74 65 6d 20 28 63 |kernel_system (c| 00004740 68 61 72 20 2a 63 6f 6d 6d 61 6e 64 2c 20 69 6e |har *command, in| 00004750 74 20 63 68 61 69 6e 29 3b 0a 48 65 61 64 65 72 |t chain);.Header| 00004760 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 |:.<kernel.h=>ker| 00004770 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 30 |nel>..Returns:.0| 00004780 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2c 20 | if successful, | 00004790 2d 32 20 69 66 20 4f 53 20 65 72 72 6f 72 20 6f |-2 if OS error o| 000047a0 63 63 75 72 73 2e 0a 0a 54 68 69 73 20 66 75 6e |ccurs...This fun| 000047b0 63 74 69 6f 6e 20 70 61 73 73 65 73 20 74 68 65 |ction passes the| 000047c0 20 73 74 72 69 6e 67 20 67 69 76 65 6e 20 74 6f | string given to| 000047d0 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 | the operating s| 000047e0 79 73 74 65 6d 20 43 4c 49 20 74 6f 20 62 65 20 |ystem CLI to be | 000047f0 65 78 65 63 75 74 65 64 20 61 73 20 69 66 20 69 |executed as if i| 00004800 74 20 68 61 64 20 62 65 65 6e 20 74 79 70 65 64 |t had been typed| 00004810 20 69 6e 20 61 73 20 61 20 22 73 74 61 72 20 63 | in as a "star c| 00004820 6f 6d 6d 61 6e 64 22 2e 20 54 68 65 20 64 69 66 |ommand". The dif| 00004830 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 |ference between | 00004840 74 68 69 73 20 61 6e 64 20 6f 74 68 65 72 20 73 |this and other s| 00004850 69 6d 69 6c 61 72 20 66 75 6e 63 74 69 6f 6e 20 |imilar function | 00004860 69 73 20 74 68 61 74 20 74 68 69 73 20 66 75 6e |is that this fun| 00004870 63 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 6f 74 68 |ction allows oth| 00004880 65 72 20 70 72 6f 67 72 61 6d 73 20 74 6f 20 62 |er programs to b| 00004890 65 20 72 75 6e 2c 20 65 69 74 68 65 72 20 61 73 |e run, either as| 000048a0 20 61 20 73 75 62 2d 70 72 6f 67 72 61 6d 20 74 | a sub-program t| 000048b0 6f 2c 20 6f 72 20 69 6e 73 74 65 61 64 20 6f 66 |o, or instead of| 000048c0 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f | the current pro| 000048d0 67 72 61 6d 2e 0a 0a 49 66 20 2f 63 68 61 69 6e |gram...If /chain| 000048e0 2f 20 69 73 20 30 2c 20 74 68 65 6e 20 74 68 65 |/ is 0, then the| 000048f0 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 | command is exec| 00004900 75 74 65 64 20 73 6f 20 74 68 61 74 20 77 68 65 |uted so that whe| 00004910 6e 20 69 74 20 66 69 6e 69 73 68 65 73 2c 20 63 |n it finishes, c| 00004920 6f 6e 74 72 6f 6c 20 69 73 20 70 61 73 73 65 64 |ontrol is passed| 00004930 20 62 61 63 6b 20 74 6f 20 74 68 69 73 20 70 72 | back to this pr| 00004940 6f 67 72 61 6d 2e 20 49 66 20 2f 63 68 61 69 6e |ogram. If /chain| 00004950 2f 20 69 73 20 31 2c 20 74 68 65 6e 20 74 68 65 |/ is 1, then the| 00004960 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 | command is exec| 00004970 75 74 65 64 20 73 6f 20 74 68 61 74 20 69 74 20 |uted so that it | 00004980 63 6f 6d 70 6c 65 74 65 6c 79 20 72 65 70 6c 61 |completely repla| 00004990 63 65 73 20 74 68 69 73 20 70 72 6f 67 72 61 6d |ces this program| 000049a0 2e 00 00 00 44 41 54 41 2e 01 00 00 5f 6b 65 72 |....DATA...._ker| 000049b0 6e 65 6c 5f 75 64 69 76 0a 53 79 6e 74 61 78 3a |nel_udiv.Syntax:| 000049c0 09 75 6e 73 69 67 6e 65 64 20 5f 6b 65 72 6e 65 |.unsigned _kerne| 000049d0 6c 5f 75 64 69 76 20 28 75 6e 73 69 67 6e 65 64 |l_udiv (unsigned| 000049e0 20 78 2c 20 75 6e 73 69 67 6e 65 64 20 79 29 3b | x, unsigned y);| 000049f0 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c |.Header:.<kernel| 00004a00 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 74 |.h=>kernel>..Ret| 00004a10 75 72 6e 73 3a 09 54 68 65 20 71 75 6f 74 69 65 |urns:.The quotie| 00004a20 6e 74 20 6f 66 20 79 2f 78 2e 0a 0a 54 68 69 73 |nt of y/x...This| 00004a30 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c | function calcul| 00004a40 61 74 65 73 20 74 68 65 20 75 6e 73 69 67 6e 65 |ates the unsigne| 00004a50 64 20 71 75 6f 74 69 65 6e 74 20 6f 66 20 79 2f |d quotient of y/| 00004a60 78 2e 20 49 74 20 69 73 20 69 6e 74 65 6e 64 65 |x. It is intende| 00004a70 64 20 66 6f 72 20 75 73 65 20 62 79 20 6e 6f 6e |d for use by non| 00004a80 2d 43 20 70 72 6f 67 72 61 6d 73 20 75 73 69 6e |-C programs usin| 00004a90 67 20 74 68 65 20 53 68 61 72 65 64 20 43 20 4c |g the Shared C L| 00004aa0 69 62 72 61 72 79 2e 20 49 6e 20 43 20 79 6f 75 |ibrary. In C you| 00004ab0 20 63 61 6e 20 73 69 6d 70 6c 79 20 75 73 65 20 | can simply use | 00004ac0 74 68 65 20 64 69 76 69 73 69 6f 6e 20 73 69 67 |the division sig| 00004ad0 6e 21 00 00 44 41 54 41 bc 00 00 00 5f 6b 65 72 |n!..DATA...._ker| 00004ae0 6e 65 6c 5f 75 64 69 76 31 30 0a 53 79 6e 74 61 |nel_udiv10.Synta| 00004af0 78 3a 09 75 6e 73 69 67 6e 65 64 20 5f 6b 65 72 |x:.unsigned _ker| 00004b00 6e 65 6c 5f 75 64 69 76 31 30 20 28 75 6e 73 69 |nel_udiv10 (unsi| 00004b10 67 6e 65 64 20 78 29 3b 0a 48 65 61 64 65 72 3a |gned x);.Header:| 00004b20 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e |.<kernel.h=>kern| 00004b30 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 78 20 |el>..Returns:.x | 00004b40 64 69 76 69 64 65 64 20 62 79 20 31 30 2e 0a 0a |divided by 10...| 00004b50 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 69 |This function di| 00004b60 76 69 64 65 73 20 2f 78 2f 20 62 79 20 31 30 20 |vides /x/ by 10 | 00004b70 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 |and returns the | 00004b80 75 6e 73 69 67 6e 65 64 20 72 65 73 75 6c 74 2e |unsigned result.| 00004b90 44 41 54 41 2d 01 00 00 5f 6b 65 72 6e 65 6c 5f |DATA-..._kernel_| 00004ba0 75 6e 77 69 6e 64 0a 53 79 6e 74 61 78 3a 09 69 |unwind.Syntax:.i| 00004bb0 6e 74 20 5f 6b 65 72 6e 65 6c 5f 75 6e 77 69 6e |nt _kernel_unwin| 00004bc0 64 20 28 3c 5f 6b 65 72 6e 65 6c 5f 75 6e 77 69 |d (<_kernel_unwi| 00004bd0 6e 64 62 6c 6f 63 6b 3e 20 2a 62 6c 6b 2c 20 63 |ndblock> *blk, c| 00004be0 68 61 72 20 2a 2a 6c 61 6e 29 3b 0a 48 65 61 64 |har **lan);.Head| 00004bf0 65 72 3a 09 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b |er:.<kernel.h=>k| 00004c00 65 72 6e 65 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a |ernel>..Returns:| 00004c10 09 49 6e 64 69 63 61 74 69 6f 6e 20 6f 66 20 73 |.Indication of s| 00004c20 75 63 63 65 73 73 2f 66 61 69 6c 75 72 65 2e 0a |uccess/failure..| 00004c30 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 |.This function u| 00004c40 6e 77 69 6e 64 73 20 74 68 65 20 63 61 6c 6c 20 |nwinds the call | 00004c50 73 74 61 63 6b 20 6f 6e 65 20 6c 65 76 65 6c 2e |stack one level.| 00004c60 20 49 74 20 72 65 74 75 72 6e 73 20 6e 65 67 61 | It returns nega| 00004c70 74 69 76 65 20 69 66 20 69 74 20 73 75 63 63 65 |tive if it succe| 00004c80 65 64 73 2c 20 30 20 69 66 20 74 68 65 20 73 74 |eds, 0 if the st| 00004c90 61 63 6b 20 65 6e 64 20 69 73 20 72 65 61 63 68 |ack end is reach| 00004ca0 65 64 2c 20 6f 72 20 70 6f 73 69 74 69 76 65 20 |ed, or positive | 00004cb0 66 6f 72 20 61 6e 20 65 72 72 6f 72 2e 00 00 00 |for an error....| 00004cc0 44 41 54 41 c3 00 00 00 5f 6b 65 72 6e 65 6c 5f |DATA...._kernel_| 00004cd0 75 6e 77 69 6e 64 62 6c 6f 63 6b 0a 54 68 69 73 |unwindblock.This| 00004ce0 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00004cf0 20 69 6e 20 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b | in <kernel.h=>k| 00004d00 65 72 6e 65 6c 3e 20 61 73 20 74 68 65 20 66 6f |ernel> as the fo| 00004d10 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 |llowing structur| 00004d20 65 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 |e:.. \{. int| 00004d30 20 72 34 2c 72 35 2c 72 36 2c 72 37 2c 72 38 2c | r4,r5,r6,r7,r8,| 00004d40 72 39 3b 0a 20 20 20 20 69 6e 74 20 66 70 2c 73 |r9;. int fp,s| 00004d50 70 2c 70 63 2c 73 6c 3b 0a 20 20 20 20 3c 5f 65 |p,pc,sl;. <_e| 00004d60 78 74 65 6e 64 65 64 5f 66 70 5f 6e 75 6d 62 65 |xtended_fp_numbe| 00004d70 72 3e 20 66 34 2c 66 35 2c 66 36 2c 66 37 3b 0a |r> f4,f5,f6,f7;.| 00004d80 20 20 7d 00 44 41 54 41 55 01 00 00 5f 6b 65 72 | }.DATAU..._ker| 00004d90 6e 65 6c 5f 75 72 65 6d 0a 53 79 6e 74 61 78 3a |nel_urem.Syntax:| 00004da0 09 75 6e 73 69 67 6e 65 64 20 5f 6b 65 72 6e 65 |.unsigned _kerne| 00004db0 6c 5f 75 72 65 6d 20 28 75 6e 73 69 67 6e 65 64 |l_urem (unsigned| 00004dc0 20 78 2c 20 75 6e 73 69 67 6e 65 64 20 79 29 3b | x, unsigned y);| 00004dd0 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 6c |.Header:.<kernel| 00004de0 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 52 65 74 |.h=>kernel>..Ret| 00004df0 75 72 6e 73 3a 09 54 68 65 20 72 65 6d 61 69 6e |urns:.The remain| 00004e00 64 65 72 20 6f 66 20 79 2f 78 2e 0a 0a 54 68 69 |der of y/x...Thi| 00004e10 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 |s function calcu| 00004e20 6c 61 74 65 73 20 74 68 65 20 75 6e 73 69 67 6e |lates the unsign| 00004e30 65 64 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 |ed remainder of | 00004e40 79 2f 78 2e 20 46 6f 72 6d 61 6c 6c 79 20 74 68 |y/x. Formally th| 00004e50 69 73 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |is is defined as| 00004e60 20 72 3d 79 2d 28 69 2a 78 29 2c 20 77 68 65 72 | r=y-(i*x), wher| 00004e70 65 20 2f 72 2f 20 69 73 20 74 68 65 20 72 65 6d |e /r/ is the rem| 00004e80 61 69 6e 64 65 72 20 61 6e 64 20 2f 69 2f 20 69 |ainder and /i/ i| 00004e90 73 20 61 6e 20 69 6e 74 65 67 65 72 20 73 75 63 |s an integer suc| 00004ea0 68 20 74 68 61 74 20 2f 72 2f 20 68 61 73 20 74 |h that /r/ has t| 00004eb0 68 65 20 73 61 6d 65 20 73 69 67 6e 20 61 73 20 |he same sign as | 00004ec0 2f 79 2f 20 61 6e 64 20 69 73 20 6c 65 73 73 20 |/y/ and is less | 00004ed0 74 68 61 6e 20 2f 78 2f 2e 00 00 00 44 41 54 41 |than /x/....DATA| 00004ee0 88 02 00 00 5f 6b 65 72 6e 65 6c 5f 72 65 67 69 |...._kernel_regi| 00004ef0 73 74 65 72 5f 73 6c 6f 74 65 78 74 65 6e 64 0a |ster_slotextend.| 00004f00 53 79 6e 74 61 78 3a 09 3c 5f 6b 65 72 6e 65 6c |Syntax:.<_kernel| 00004f10 5f 45 78 74 65 6e 64 50 72 6f 63 3e 20 2a 5f 6b |_ExtendProc> *_k| 00004f20 65 72 6e 65 6c 5f 72 65 67 69 73 74 65 72 5f 73 |ernel_register_s| 00004f30 6c 6f 74 65 78 74 65 6e 64 20 28 5f 6b 65 72 6e |lotextend (_kern| 00004f40 65 6c 5f 45 78 74 65 6e 64 50 72 6f 63 20 2a 70 |el_ExtendProc *p| 00004f50 72 6f 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6b |roc);.Header:.<k| 00004f60 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e |ernel.h=>kernel>| 00004f70 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00004f80 72 65 67 69 73 74 65 72 73 20 61 20 66 75 6e 63 |registers a func| 00004f90 74 69 6f 6e 20 66 6f 72 20 75 73 65 20 62 79 20 |tion for use by | 00004fa0 74 68 65 20 6b 65 72 6e 65 6c 20 74 6f 20 65 78 |the kernel to ex| 00004fb0 74 65 6e 64 20 69 74 73 20 68 65 61 70 2e 20 49 |tend its heap. I| 00004fc0 74 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 61 62 |t is normally ab| 00004fd0 6c 65 20 74 6f 20 64 6f 20 74 68 69 73 20 61 75 |le to do this au| 00004fe0 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 62 75 74 |tomatically, but| 00004ff0 20 69 66 20 73 6f 6d 65 6f 6e 65 20 65 6c 73 65 | if someone else| 00005000 20 68 61 73 20 61 63 71 75 69 72 65 64 20 74 68 | has acquired th| 00005010 65 20 73 70 61 63 65 20 69 74 20 77 6f 75 6c 64 |e space it would| 00005020 20 75 73 65 20 69 74 20 6e 65 65 64 73 20 74 6f | use it needs to| 00005030 20 62 65 20 61 62 6c 65 20 74 6f 20 61 73 6b 20 | be able to ask | 00005040 74 68 61 74 20 73 6f 6d 65 6f 6e 65 20 65 6c 73 |that someone els| 00005050 65 20 74 6f 20 67 69 76 65 20 69 74 20 73 6f 6d |e to give it som| 00005060 65 20 73 70 61 63 65 2e 20 54 68 61 74 20 69 73 |e space. That is| 00005070 20 77 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 | what the functi| 00005080 6f 6e 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |on pointed to by| 00005090 20 2f 70 72 6f 63 2f 20 69 73 20 75 73 65 64 20 | /proc/ is used | 000050a0 66 6f 72 2e 20 49 74 20 69 73 20 63 61 6c 6c 65 |for. It is calle| 000050b0 64 20 77 69 74 68 20 74 68 65 20 61 6d 6f 75 6e |d with the amoun| 000050c0 74 20 6f 66 20 73 70 61 63 65 20 72 65 71 75 69 |t of space requi| 000050d0 72 65 64 20 69 6e 20 62 79 74 65 73 20 61 6e 64 |red in bytes and| 000050e0 20 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 | is expected to | 000050f0 72 65 74 75 72 6e 20 65 69 74 68 65 72 20 30 20 |return either 0 | 00005100 66 6f 72 20 66 61 69 6c 75 72 65 20 6f 72 20 74 |for failure or t| 00005110 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 73 70 61 |he amount of spa| 00005120 63 65 20 61 6c 6c 6f 63 61 74 65 64 20 28 77 68 |ce allocated (wh| 00005130 69 63 68 20 6d 61 79 20 62 65 20 6d 6f 72 65 20 |ich may be more | 00005140 74 68 61 6e 20 72 65 71 75 65 73 74 65 64 2c 20 |than requested, | 00005150 62 75 74 20 7b 5f 7d 6e 6f 74 7b 5f 7d 20 6c 65 |but {_}not{_} le| 00005160 73 73 29 2e 44 41 54 41 f4 01 00 00 5f 6b 65 72 |ss).DATA...._ker| 00005170 6e 65 6c 5f 72 65 67 69 73 74 65 72 5f 61 6c 6c |nel_register_all| 00005180 6f 63 73 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ocs.Syntax:.void| 00005190 20 5f 6b 65 72 6e 65 6c 5f 72 65 67 69 73 74 65 | _kernel_registe| 000051a0 72 5f 61 6c 6c 6f 63 73 20 28 3c 61 6c 6c 6f 63 |r_allocs (<alloc| 000051b0 70 72 6f 63 3e 20 2a 6d 61 6c 6c 6f 63 2c 20 3c |proc> *malloc, <| 000051c0 66 72 65 65 70 72 6f 63 3e 20 2a 66 72 65 65 29 |freeproc> *free)| 000051d0 3b 0a 48 65 61 64 65 72 3a 09 3c 6b 65 72 6e 65 |;.Header:.<kerne| 000051e0 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 0a 0a 54 68 |l.h=>kernel>..Th| 000051f0 69 73 20 66 75 6e 63 69 6f 6e 20 72 65 67 69 73 |is funcion regis| 00005200 74 65 72 73 20 74 77 6f 20 70 72 6f 63 65 64 75 |ters two procedu| 00005210 72 65 73 20 77 68 69 63 68 20 61 72 65 20 75 73 |res which are us| 00005220 65 64 20 62 79 20 74 68 65 20 6b 65 72 6e 65 6c |ed by the kernel| 00005230 20 74 6f 20 63 6c 61 69 6d 20 61 6e 64 20 72 65 | to claim and re| 00005240 6c 65 61 73 65 20 6d 65 6d 6f 72 79 2e 20 54 68 |lease memory. Th| 00005250 65 20 70 72 6f 63 65 64 75 72 65 20 67 69 76 65 |e procedure give| 00005260 6e 20 62 79 20 2f 6d 61 6c 6c 6f 63 2f 20 69 73 |n by /malloc/ is| 00005270 20 75 73 65 64 20 66 6f 72 20 63 6c 61 69 6d 69 | used for claimi| 00005280 6e 67 20 6d 65 6d 6f 72 79 20 61 6e 64 20 2f 66 |ng memory and /f| 00005290 72 65 65 2f 20 69 73 20 75 73 65 64 20 66 6f 72 |ree/ is used for| 000052a0 20 72 65 6c 65 61 73 69 6e 67 20 70 72 65 76 69 | releasing previ| 000052b0 6f 75 73 6c 79 20 63 6c 61 69 6d 65 64 20 6d 65 |ously claimed me| 000052c0 6d 6f 72 79 2e 0a 0a 54 68 65 20 70 72 6f 63 65 |mory...The proce| 000052d0 64 75 72 65 20 75 73 65 64 20 66 6f 72 20 63 6c |dure used for cl| 000052e0 61 69 6d 69 6e 67 20 6d 65 6d 6f 72 79 20 6d 75 |aiming memory mu| 000052f0 73 74 20 6e 6f 74 20 75 73 65 20 6d 6f 72 65 20 |st not use more | 00005300 74 68 61 6e 20 34 31 20 77 6f 72 64 73 20 6f 66 |than 41 words of| 00005310 20 73 74 61 63 6b 20 28 6f 6e 65 20 6c 65 73 73 | stack (one less| 00005320 20 74 68 61 6e 20 74 68 65 20 4d 65 61 6e 69 6e | than the Meanin| 00005330 67 20 6f 66 20 4c 69 66 65 2c 20 74 68 65 20 55 |g of Life, the U| 00005340 6e 69 76 65 72 73 65 20 61 6e 64 20 45 76 65 72 |niverse and Ever| 00005350 79 74 68 69 6e 67 29 2e 44 41 54 41 c4 43 00 00 |ything).DATA.C..| 00005360 06 00 00 00 10 00 00 00 c0 43 00 00 0c 07 00 00 |.........C......| 00005370 21 63 3f 00 00 00 00 00 00 00 00 00 05 00 00 00 |!c?.............| 00005380 21 00 00 00 00 00 00 00 0f 00 00 00 ac 00 00 00 |!...............| 00005390 dc 03 00 00 1b 00 00 00 10 ff ff ff 10 ff ff ff |................| 000053a0 10 dd dd dd 10 dd dd dd 10 bb bb bb 10 bb bb bb |................| 000053b0 10 99 99 99 10 99 99 99 10 77 77 77 10 77 77 77 |.........www.www| 000053c0 10 55 55 55 10 55 55 55 10 33 33 33 10 33 33 33 |.UUU.UUU.333.333| 000053d0 10 00 00 00 10 00 00 00 10 00 44 99 10 00 44 99 |..........D...D.| 000053e0 10 ee ee 00 10 ee ee 00 10 00 cc 00 10 00 cc 00 |................| 000053f0 10 dd 00 00 10 dd 00 00 10 ee ee bb 10 ee ee bb |................| 00005400 10 55 88 00 10 55 88 00 10 ff bb 00 10 ff bb 00 |.U...U..........| 00005410 10 00 bb ff 10 00 bb ff 11 11 11 11 11 42 65 57 |.............BeW| 00005420 24 11 11 11 11 11 11 11 11 11 11 11 11 11 00 00 |$...............| 00005430 11 11 11 11 42 77 77 77 67 12 11 11 11 11 11 11 |....Bwwwg.......| 00005440 11 11 11 11 11 11 00 00 11 11 11 31 76 77 77 77 |...........1vwww| 00005450 77 17 11 11 11 11 11 11 11 11 11 11 11 11 00 00 |w...............| 00005460 11 11 11 74 77 77 77 77 77 47 11 11 11 11 11 11 |...twwwwwG......| 00005470 12 12 11 11 11 11 00 00 11 11 11 77 77 77 77 77 |...........wwwww| 00005480 77 67 11 11 11 11 32 44 55 55 45 24 12 11 00 00 |wg....2DUUE$....| 00005490 11 11 62 77 77 77 77 77 77 67 12 11 11 43 35 34 |..bwwwwwwg...C54| 000054a0 54 55 55 55 25 11 00 00 11 11 75 77 77 77 77 77 |TUUU%.....uwwwww| 000054b0 77 77 12 11 42 55 55 12 31 55 55 55 55 13 00 00 |ww..BUU.1UUUU...| 000054c0 11 21 77 77 77 77 77 77 77 77 13 21 55 55 55 45 |.!wwwwwwww.!UUUE| 000054d0 11 55 55 55 55 35 00 00 11 61 77 77 77 67 65 77 |.UUUU5...awwwgew| 000054e0 77 77 12 51 55 55 55 55 12 53 55 55 55 45 00 00 |ww.QUUUU.SUUUE..| 000054f0 11 72 77 77 77 26 61 77 77 77 11 54 55 55 55 55 |.rwww&awww.TUUUU| 00005500 12 53 55 55 55 45 00 00 11 76 77 77 77 13 63 77 |.SUUUE...vwww.cw| 00005510 77 57 11 54 55 55 55 55 11 54 55 55 55 45 00 00 |wW.TUUUU.TUUUE..| 00005520 21 76 77 77 67 11 75 77 77 26 11 54 55 55 55 45 |!vwwg.uww&.TUUUE| 00005530 11 55 55 55 55 35 00 00 31 77 77 77 27 11 41 44 |.UUUU5..1www'.AD| 00005540 34 11 11 53 55 55 55 15 31 55 55 55 55 14 00 00 |4..SUUU.1UUUU...| 00005550 61 77 77 77 17 11 11 11 11 11 11 42 55 55 45 11 |awww.......BUUE.| 00005560 51 55 55 55 55 11 00 00 71 77 77 77 15 11 11 11 |QUUUU...qwww....| 00005570 11 11 11 11 33 34 12 11 53 55 55 55 24 11 00 00 |....34..SUUU$...| 00005580 72 77 77 77 13 11 11 11 11 11 11 11 11 11 11 21 |rwww...........!| 00005590 55 55 55 35 11 11 00 00 74 77 77 77 12 11 11 11 |UUU5....twww....| 000055a0 11 11 11 11 11 11 11 41 55 55 34 11 11 11 00 00 |.......AUU4.....| 000055b0 75 77 77 67 11 11 11 11 11 11 11 11 11 11 11 53 |uwwg...........S| 000055c0 45 13 11 11 11 11 00 00 74 77 77 67 11 11 11 11 |E.......twwg....| 000055d0 11 11 11 11 11 11 21 54 13 11 11 11 11 11 00 00 |......!T........| 000055e0 76 77 77 67 11 11 21 12 11 11 11 11 11 11 31 25 |vwwg..!.......1%| 000055f0 11 11 11 11 11 11 00 00 77 77 77 47 11 41 76 67 |........wwwG.Avg| 00005600 14 11 11 11 11 11 41 14 11 11 11 11 11 11 00 00 |......A.........| 00005610 77 77 77 37 11 74 77 77 27 11 11 11 11 11 52 12 |www7.tww'.....R.| 00005620 11 11 11 11 11 11 00 00 77 77 77 37 21 76 77 77 |........www7!vww| 00005630 27 11 11 11 11 11 32 11 11 11 11 11 11 11 00 00 |'.....2.........| 00005640 77 77 77 37 41 77 77 77 26 11 11 11 21 43 54 44 |www7Awww&...!CTD| 00005650 12 11 11 11 11 11 00 00 77 77 77 67 72 77 77 77 |........wwwgrwww| 00005660 16 11 11 11 53 55 55 55 25 11 11 11 11 11 00 00 |....SUUU%.......| 00005670 77 77 77 77 77 77 77 77 13 11 11 31 55 55 55 55 |wwwwwwww...1UUUU| 00005680 55 11 11 11 11 11 00 00 75 77 77 77 77 77 77 77 |U.......uwwwwwww| 00005690 12 11 11 52 55 55 55 55 55 11 11 11 11 11 00 00 |...RUUUUU.......| 000056a0 75 77 77 77 77 77 77 47 11 11 11 53 55 55 55 55 |uwwwwwwG...SUUUU| 000056b0 55 11 11 11 11 11 00 00 73 77 77 77 77 77 77 17 |U.......swwwwww.| 000056c0 11 11 11 53 55 55 55 55 35 11 11 11 11 11 00 00 |...SUUUU5.......| 000056d0 62 77 77 77 77 77 77 13 11 11 11 53 55 55 55 55 |bwwwwww....SUUUU| 000056e0 14 11 11 11 11 11 00 00 61 77 77 77 77 77 57 11 |........awwwwwW.| 000056f0 11 11 11 31 55 55 55 35 11 11 11 11 11 11 00 00 |...1UUU5........| 00005700 21 76 77 77 77 77 13 11 11 11 11 11 43 54 33 11 |!vwwww......CT3.| 00005710 11 11 11 11 11 11 00 00 11 64 77 77 77 25 11 11 |.........dwww%..| 00005720 11 11 11 11 11 11 11 11 11 11 11 11 11 11 00 00 |................| 00005730 11 21 75 77 25 11 11 11 11 11 11 11 11 11 11 11 |.!uw%...........| 00005740 11 11 11 11 11 11 00 00 00 00 00 00 00 ff ff ff |................| 00005750 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff |................| 00005760 00 00 00 00 ff ff ff ff ff 0f 00 00 00 00 00 00 |................| 00005770 00 00 00 00 00 00 ff ff 00 00 00 f0 ff ff ff ff |................| 00005780 ff 0f 00 00 00 00 00 00 00 00 00 00 00 00 ff ff |................| 00005790 00 00 00 ff ff ff ff ff ff ff 00 00 00 00 00 00 |................| 000057a0 0f 0f 00 00 00 00 ff ff 00 00 00 ff ff ff ff ff |................| 000057b0 ff ff 00 00 00 00 ff ff ff ff ff ff 0f 00 ff ff |................| 000057c0 00 00 ff ff ff ff ff ff ff ff 0f 00 00 ff ff ff |................| 000057d0 ff ff ff ff ff 00 ff ff 00 00 ff ff ff ff ff ff |................| 000057e0 ff ff 0f 00 ff ff ff 0f f0 ff ff ff ff 0f ff ff |................| 000057f0 00 f0 ff ff ff ff ff ff ff ff 0f f0 ff ff ff ff |................| 00005800 00 ff ff ff ff ff ff ff 00 f0 ff ff ff ff ff ff |................| 00005810 ff ff 0f f0 ff ff ff ff 0f ff ff ff ff ff ff ff |................| 00005820 00 ff ff ff ff ff f0 ff ff ff 00 ff ff ff ff ff |................| 00005830 0f ff ff ff ff ff ff ff 00 ff ff ff ff 0f ff ff |................| 00005840 ff ff 00 ff ff ff ff ff 00 ff ff ff ff ff ff ff |................| 00005850 f0 ff ff ff ff 00 ff ff ff ff 00 ff ff ff ff ff |................| 00005860 00 ff ff ff ff ff ff ff f0 ff ff ff ff 00 f0 ff |................| 00005870 ff 00 00 ff ff ff ff 0f f0 ff ff ff ff 0f ff ff |................| 00005880 f0 ff ff ff 0f 00 00 00 00 00 00 ff ff ff ff 00 |................| 00005890 f0 ff ff ff ff 00 ff ff f0 ff ff ff 0f 00 00 00 |................| 000058a0 00 00 00 00 ff ff 0f 00 ff ff ff ff ff 00 ff ff |................| 000058b0 ff ff ff ff 0f 00 00 00 00 00 00 00 00 00 00 f0 |................| 000058c0 ff ff ff ff 00 00 ff ff ff ff ff ff 0f 00 00 00 |................| 000058d0 00 00 00 00 00 00 00 f0 ff ff ff 00 00 00 ff ff |................| 000058e0 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 ff |................| 000058f0 ff 0f 00 00 00 00 ff ff ff ff ff ff 00 00 00 00 |................| 00005900 00 00 00 00 00 00 f0 ff 0f 00 00 00 00 00 ff ff |................| 00005910 ff ff ff ff 00 00 f0 0f 00 00 00 00 00 00 f0 ff |................| 00005920 00 00 00 00 00 00 ff ff ff ff ff ff 00 f0 ff ff |................| 00005930 0f 00 00 00 00 00 f0 0f 00 00 00 00 00 00 ff ff |................| 00005940 ff ff ff ff 00 ff ff ff ff 00 00 00 00 00 ff 0f |................| 00005950 00 00 00 00 00 00 ff ff ff ff ff ff f0 ff ff ff |................| 00005960 ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 ff ff |................| 00005970 ff ff ff ff f0 ff ff ff ff 00 00 00 f0 ff ff ff |................| 00005980 0f 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff |................| 00005990 0f 00 00 00 ff ff ff ff ff 00 00 00 00 00 ff ff |................| 000059a0 ff ff ff ff ff ff ff ff 0f 00 00 f0 ff ff ff ff |................| 000059b0 ff 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff |................| 000059c0 0f 00 00 ff ff ff ff ff ff 00 00 00 00 00 ff ff |................| 000059d0 ff ff ff ff ff ff ff ff 00 00 00 ff ff ff ff ff |................| 000059e0 ff 00 00 00 00 00 ff ff ff ff ff ff ff ff ff 0f |................| 000059f0 00 00 00 ff ff ff ff ff ff 00 00 00 00 00 ff ff |................| 00005a00 ff ff ff ff ff ff ff 0f 00 00 00 ff ff ff ff ff |................| 00005a10 0f 00 00 00 00 00 ff ff f0 ff ff ff ff ff ff 00 |................| 00005a20 00 00 00 f0 ff ff ff ff 00 00 00 00 00 00 ff ff |................| 00005a30 f0 ff ff ff ff ff 0f 00 00 00 00 00 ff ff ff 00 |................| 00005a40 00 00 00 00 00 00 ff ff 00 ff ff ff ff ff 00 00 |................| 00005a50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff |................| 00005a60 00 f0 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 |................| 00005a70 00 00 00 00 00 00 ff ff 54 03 00 00 21 64 65 73 |........T...!des| 00005a80 6b 6c 69 62 00 00 00 00 04 00 00 00 21 00 00 00 |klib........!...| 00005a90 00 00 00 00 07 00 00 00 ac 00 00 00 ac 00 00 00 |................| 00005aa0 1f 00 00 00 00 ff ff ff 00 ff ff ff 00 dd dd dd |................| 00005ab0 00 dd dd dd 00 bb bb bb 00 bb bb bb 00 99 99 99 |................| 00005ac0 00 99 99 99 00 77 77 77 00 77 77 77 00 55 55 55 |.....www.www.UUU| 00005ad0 00 55 55 55 00 33 33 33 00 33 33 33 00 00 00 00 |.UUU.333.333....| 00005ae0 00 00 00 00 00 00 44 99 00 00 44 99 00 ee ee 00 |......D...D.....| 00005af0 00 ee ee 00 00 00 cc 00 00 00 cc 00 00 dd 00 00 |................| 00005b00 00 dd 00 00 00 ee ee bb 00 ee ee bb 00 55 88 00 |.............U..| 00005b10 00 55 88 00 00 ff bb 00 00 ff bb 00 00 00 bb ff |.U..............| 00005b20 00 00 bb ff 00 00 00 00 00 30 00 00 03 00 00 00 |.........0......| 00005b30 00 00 00 ee ee 00 00 00 00 00 00 00 00 00 00 00 |................| 00005b40 03 00 00 00 00 00 e0 ee be 00 00 00 03 00 03 33 |...............3| 00005b50 00 33 00 33 03 00 30 33 30 03 ee ee eb 00 00 00 |.3.3..030.......| 00005b60 30 30 30 00 03 30 30 00 03 00 30 00 03 e0 ee be |000..00...0.....| 00005b70 be 00 00 00 30 30 30 00 03 30 30 00 03 00 30 00 |....000..00...0.| 00005b80 03 ee ee eb eb 00 00 00 00 03 30 00 03 30 30 00 |..........0..00.| 00005b90 03 00 30 00 e3 ee be be be 00 00 00 00 03 00 33 |..0............3| 00005ba0 00 30 00 33 03 00 30 00 ee ee eb eb eb 00 00 00 |.0.3..0.........| 00005bb0 00 00 00 00 00 00 00 00 00 00 00 e0 ee be be be |................| 00005bc0 be 00 00 00 00 03 00 00 00 00 00 00 00 00 00 ee |................| 00005bd0 ee eb eb eb bb 00 00 00 30 00 00 00 00 00 00 00 |........0.......| 00005be0 00 00 e0 ee be be be be bb 00 00 00 30 00 00 00 |............0...| 00005bf0 00 00 00 00 00 00 ee ee eb eb eb bb bb 00 00 00 |................| 00005c00 30 00 00 00 00 00 00 00 00 e0 ee be be be be bb |0...............| 00005c10 bb 00 00 00 03 00 00 00 00 00 00 00 00 ee ee eb |................| 00005c20 eb eb bb bb 1b 00 00 00 30 00 00 00 00 00 00 00 |........0.......| 00005c30 e0 ee be be be be bb bb 11 00 00 00 30 00 00 00 |............0...| 00005c40 00 00 00 00 ee ee eb eb eb bb bb 1b 01 00 00 00 |................| 00005c50 30 00 00 00 00 00 00 e0 ee be be be be bb bb 11 |0...............| 00005c60 00 00 00 00 00 03 00 00 00 00 00 ee ee eb eb eb |................| 00005c70 bb bb 1b 01 00 00 00 00 00 00 00 00 00 00 e0 ee |................| 00005c80 be be be be bb bb 11 00 30 00 00 00 00 00 00 00 |........0.......| 00005c90 00 00 ee ee eb eb eb bb bb 1b 01 00 03 00 00 00 |................| 00005ca0 00 00 30 00 00 e0 ee be be be be bb bb 15 00 00 |..0.............| 00005cb0 03 00 00 00 00 00 00 03 03 e3 ee eb eb eb bb bb |................| 00005cc0 1b 51 00 00 03 00 00 00 00 00 00 03 03 9e 99 be |.Q..............| 00005cd0 be be bb bb 55 33 00 00 03 00 00 00 00 00 00 30 |....U3.........0| 00005ce0 30 9e 9c eb eb bb bb 1b 05 00 00 00 03 00 00 00 |0...............| 00005cf0 00 00 00 30 e0 c9 99 be be bb bb 15 30 03 00 00 |...0........0...| 00005d00 30 00 00 00 00 00 00 00 e0 99 ee ee be bb 1b 01 |0...............| 00005d10 00 00 00 00 00 00 00 00 00 00 00 00 9e e9 ee ee |................| 00005d20 be bb 11 00 00 00 00 00 00 00 00 00 00 00 30 33 |..............03| 00005d30 99 ee 2e 2e be 1b 01 00 00 30 00 00 00 00 00 00 |.........0......| 00005d40 00 00 30 40 e9 e2 e2 23 e3 11 00 00 00 30 00 00 |..0@...#.....0..| 00005d50 00 00 00 00 00 00 30 40 44 3e 3e 2e 51 05 30 33 |......0@D>>.Q.03| 00005d60 00 33 03 00 00 00 00 00 00 00 30 42 77 e3 52 11 |.3........0Bw.R.| 00005d70 05 30 30 00 03 30 00 00 00 00 00 00 00 00 30 70 |.00..0........0p| 00005d80 27 51 51 00 33 33 30 00 03 30 00 00 00 00 00 00 |'QQ.330..0......| 00005d90 00 00 30 00 11 00 03 00 03 00 30 00 03 30 00 00 |..0.......0..0..| 00005da0 00 00 00 00 00 00 30 33 03 00 03 00 30 03 30 00 |......03....0.0.| 00005db0 03 00 03 33 33 00 00 00 00 00 00 00 00 00 00 00 |...33...........| 00005dc0 00 00 00 00 00 00 00 00 00 00 00 00 fc 05 00 00 |................| 00005dd0 21 65 61 73 79 63 00 00 00 00 00 00 04 00 00 00 |!easyc..........| 00005de0 21 00 00 00 00 00 00 00 07 00 00 00 ac 00 00 00 |!...............| 00005df0 54 03 00 00 1b 00 00 00 00 ff ff ff 00 ff ff ff |T...............| 00005e00 00 dd dd dd 00 dd dd dd 00 bb bb bb 00 bb bb bb |................| 00005e10 00 99 99 99 00 99 99 99 00 77 77 77 00 77 77 77 |.........www.www| 00005e20 00 55 55 55 00 55 55 55 00 33 33 33 00 33 33 33 |.UUU.UUU.333.333| 00005e30 00 00 00 00 00 00 00 00 00 00 44 99 00 00 44 99 |..........D...D.| 00005e40 00 ee ee 00 00 ee ee 00 00 00 cc 00 00 00 cc 00 |................| 00005e50 00 dd 00 00 00 dd 00 00 00 ee ee bb 00 ee ee bb |................| 00005e60 00 55 88 00 00 55 88 00 00 ff bb 00 00 ff bb 00 |.U...U..........| 00005e70 00 00 bb ff 00 00 bb ff 00 00 00 00 00 00 20 54 |.............. T| 00005e80 56 44 13 00 00 00 00 00 00 00 00 00 00 00 00 00 |VD..............| 00005e90 00 53 77 67 66 77 77 57 02 00 00 00 00 00 00 00 |.SwgfwwW........| 00005ea0 00 00 00 00 62 67 f8 ff ff ff 8f 78 67 01 00 00 |....bg.....xg...| 00005eb0 00 00 00 00 00 00 00 50 67 ff ff ff ff ff ff ff |.......Pg.......| 00005ec0 78 37 00 00 00 00 00 00 00 00 10 76 f8 ff ff ff |x7.........v....| 00005ed0 ff ff ff ff ff 78 03 00 00 00 00 00 00 00 60 f7 |.....x........`.| 00005ee0 ff ff ff ff ff ff ff ff ff 8f 37 00 00 00 00 00 |..........7.....| 00005ef0 00 00 76 ff ff ff ff ff ff ff ff ff ff ff 78 02 |..v...........x.| 00005f00 00 00 00 00 00 30 f7 ff ff ff ff ff ff ff ff ff |.....0..........| 00005f10 ff ff 6f 17 00 00 00 00 00 71 f8 ff ff ff ff 88 |..o......q......| 00005f20 88 88 ff ff ff ff ff 57 00 00 00 00 00 76 ff ff |.......W.....v..| 00005f30 ff ff 8f 77 77 77 87 ff ff ff ff 78 01 00 00 00 |...www.....x....| 00005f40 10 87 ff ff ff ff 78 23 00 00 73 f8 ff ff ff 7f |......x#..s.....| 00005f50 04 00 00 00 30 f7 ff ff ff ff 37 00 00 00 30 87 |....0.....7...0.| 00005f60 ff ff ff 8f 06 00 00 00 50 f6 ff ff ff 8f 07 00 |........P.......| 00005f70 00 00 00 87 ff ff ff ff 07 00 00 00 70 f8 ff ff |............p...| 00005f80 ff 6f 05 00 00 00 00 76 77 77 77 77 07 00 00 00 |.o.....vwwww....| 00005f90 71 f8 ff ff ff 7f 04 00 00 00 00 44 44 44 44 44 |q..........DDDDD| 00005fa0 04 00 00 00 72 ff ff ff ff 7f 03 00 00 00 00 00 |....r...........| 00005fb0 00 00 00 00 00 00 00 00 72 ff ff ff ff 7f 02 00 |........r.......| 00005fc0 00 00 00 00 00 00 00 00 00 00 00 00 72 ff ff ff |............r...| 00005fd0 ff 7f 02 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00005fe0 72 ff ff ff ff 7f 03 00 00 00 00 00 00 00 00 00 |r...............| 00005ff0 00 00 00 00 71 f8 ff ff ff 7f 04 00 00 00 00 44 |....q..........D| 00006000 44 44 44 44 04 00 00 00 71 f8 ff ff ff 7f 05 00 |DDDD....q.......| 00006010 00 00 00 76 77 77 77 77 17 00 00 00 60 f7 ff ff |...vwwww....`...| 00006020 ff 8f 07 00 00 00 00 87 ff ff ff ff 07 00 00 00 |................| 00006030 30 f7 ff ff ff ff 37 00 00 00 30 f7 ff ff ff 8f |0.....7...0.....| 00006040 06 00 00 00 00 87 ff ff ff ff 78 03 00 00 63 f8 |..........x...c.| 00006050 ff ff ff 7f 04 00 00 00 10 76 ff ff ff ff 8f 77 |.........v.....w| 00006060 77 77 86 ff ff ff ff 78 01 00 00 00 00 71 f8 ff |ww.....x.....q..| 00006070 ff ff ff 88 88 88 ff ff ff ff ff 67 00 00 00 00 |...........g....| 00006080 00 31 f7 ff ff ff ff ff ff ff ff ff ff ff 7f 17 |.1..............| 00006090 00 00 00 00 00 31 77 ff ff ff ff ff ff ff ff ff |.....1w.........| 000060a0 ff ff 78 02 00 00 00 00 00 00 77 f7 ff ff ff ff |..x.......w.....| 000060b0 ff ff ff ff ff 8f 37 01 00 00 00 00 00 00 10 77 |......7........w| 000060c0 f8 ff ff ff ff ff ff ff ff 78 03 00 00 00 00 00 |.........x......| 000060d0 00 00 00 75 76 ff ff ff ff ff ff ff 78 37 00 00 |...uv.......x7..| 000060e0 00 00 00 00 00 00 00 20 72 77 f8 ff ff ff 8f 78 |....... rw.....x| 000060f0 77 01 00 00 00 00 00 00 00 00 00 00 40 73 77 77 |w...........@sww| 00006100 77 77 77 77 03 00 00 00 00 00 00 00 00 00 00 00 |wwww............| 00006110 00 10 23 74 77 44 13 03 00 00 00 00 00 00 00 00 |..#twD..........| 00006120 00 00 00 00 00 00 f0 ff ff ff ff 00 00 00 00 00 |................| 00006130 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff |................| 00006140 0f 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff |................| 00006150 ff ff ff ff ff 0f 00 00 00 00 00 00 00 00 00 f0 |................| 00006160 ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 |................| 00006170 00 00 f0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 |................| 00006180 00 00 00 00 00 00 f0 ff ff ff ff ff ff ff ff ff |................| 00006190 ff ff ff 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000061a0 ff ff ff ff ff ff ff 0f 00 00 00 00 00 f0 ff ff |................| 000061b0 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 |................| 000061c0 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000061d0 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff |................| 000061e0 ff ff ff ff 0f 00 00 00 f0 ff ff ff ff ff ff 0f |................| 000061f0 00 00 ff ff ff ff ff ff 0f 00 00 00 f0 ff ff ff |................| 00006200 ff ff ff 00 00 00 f0 ff ff ff ff ff 0f 00 00 00 |................| 00006210 f0 ff ff ff ff ff 0f 00 00 00 00 ff ff ff ff ff |................| 00006220 0f 00 00 00 f0 ff ff ff ff ff 0f 00 00 00 00 ff |................| 00006230 ff ff ff ff 0f 00 00 00 ff ff ff ff ff ff 0f 00 |................| 00006240 00 00 00 ff ff ff ff ff 0f 00 00 00 ff ff ff ff |................| 00006250 ff ff 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00006260 ff ff ff ff ff ff 0f 00 00 00 00 00 00 00 00 00 |................| 00006270 00 00 00 00 ff ff ff ff ff ff 0f 00 00 00 00 00 |................| 00006280 00 00 00 00 00 00 00 00 ff ff ff ff ff ff 0f 00 |................| 00006290 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff |................| 000062a0 ff ff 0f 00 00 00 00 ff ff ff ff ff 0f 00 00 00 |................| 000062b0 f0 ff ff ff ff ff 0f 00 00 00 00 ff ff ff ff ff |................| 000062c0 0f 00 00 00 f0 ff ff ff ff ff 0f 00 00 00 00 ff |................| 000062d0 ff ff ff ff 0f 00 00 00 f0 ff ff ff ff ff ff 00 |................| 000062e0 00 00 f0 ff ff ff ff ff 0f 00 00 00 f0 ff ff ff |................| 000062f0 ff ff ff 0f 00 00 ff ff ff ff ff ff 0f 00 00 00 |................| 00006300 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00006310 0f 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff |................| 00006320 ff ff ff ff 00 00 00 00 00 f0 ff ff ff ff ff ff |................| 00006330 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 ff ff |................| 00006340 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00006350 00 00 f0 ff ff ff ff ff ff ff ff ff ff ff ff 00 |................| 00006360 00 00 00 00 00 00 f0 ff ff ff ff ff ff ff ff ff |................| 00006370 ff ff 0f 00 00 00 00 00 00 00 00 f0 ff ff ff ff |................| 00006380 ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 |................| 00006390 ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 00 00 |................| 000063a0 00 00 00 00 00 ff ff ff ff ff ff ff 0f 00 00 00 |................| 000063b0 00 00 00 00 00 00 00 00 00 00 f0 ff ff ff ff 00 |................| 000063c0 00 00 00 00 00 00 00 00 d4 02 00 00 21 61 6e 73 |............!ans| 000063d0 69 63 00 00 00 00 00 00 04 00 00 00 10 00 00 00 |ic..............| 000063e0 00 00 00 00 07 00 00 00 2c 00 00 00 80 01 00 00 |........,.......| 000063f0 0c 00 00 00 00 20 00 95 be be 7b 00 40 33 07 00 |..... ....{.@3..| 00006400 34 73 00 02 00 00 00 00 70 20 50 e9 eb eb bb 07 |4s......p P.....| 00006410 34 33 07 00 34 33 07 02 07 00 00 00 00 20 50 e9 |43..43....... P.| 00006420 be be be 27 34 33 43 44 33 33 07 02 00 00 00 00 |...'43CD33......| 00006430 70 20 50 e9 eb eb bb 07 00 34 33 33 33 07 00 02 |p P......4333...| 00006440 07 00 00 00 00 20 50 e9 be be be 37 02 00 24 32 |..... P....7..$2| 00006450 07 40 02 02 00 00 00 00 70 20 00 95 ee eb 7b 00 |.@......p ....{.| 00006460 00 00 24 32 07 00 00 02 07 00 00 00 00 20 00 95 |..$2......... ..| 00006470 be be 7b 01 22 02 24 32 07 31 01 02 00 00 00 00 |..{.".$2.1......| 00006480 70 20 00 50 e9 bb 07 00 00 00 24 32 07 00 00 02 |p .P......$2....| 00006490 06 00 00 00 00 20 30 30 31 25 10 20 21 00 24 32 |..... 001%. !.$2| 000064a0 17 31 00 02 00 00 00 00 70 20 00 00 30 05 00 00 |.1......p ..0...| 000064b0 00 00 24 32 07 00 00 02 07 00 00 00 00 20 20 13 |..$2......... .| 000064c0 31 25 10 32 01 01 24 32 17 32 00 02 00 00 00 00 |1%.2..$2.2......| 000064d0 70 20 10 22 32 05 00 00 00 00 24 32 07 00 00 02 |p ."2.....$2....| 000064e0 07 00 00 00 00 20 03 00 30 05 22 00 01 10 24 32 |..... ..0."...$2| 000064f0 07 10 01 02 00 00 00 00 10 03 00 07 30 05 00 20 |............0.. | 00006500 00 34 33 33 33 07 00 02 31 00 00 00 03 00 00 07 |.4333...1.......| 00006510 34 43 00 00 34 33 43 44 33 33 17 32 00 00 00 00 |4C..43CD33.2....| 00006520 00 00 07 ee 43 34 00 00 34 33 07 00 34 33 05 00 |....C4..43..43..| 00006530 00 00 00 00 00 e0 ee ee 42 24 00 00 40 33 07 00 |........B$..@3..| 00006540 34 53 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |4S..............| 00006550 ff ff ff ff ff ff ff ff ff 00 00 00 ff ff ff ff |................| 00006560 ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 |................| 00006570 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00006580 ff 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff |................| 00006590 ff ff ff ff ff 00 00 00 ff ff ff ff ff ff ff ff |................| 000065a0 ff ff ff ff ff ff ff ff ff 00 00 00 ff ff ff ff |................| 000065b0 ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 |................| 000065c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000065d0 ff 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff |................| 000065e0 ff ff ff ff ff 00 00 00 ff ff ff ff ff ff ff ff |................| 000065f0 ff ff ff ff ff ff ff ff ff 00 00 00 ff ff ff ff |................| 00006600 ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 |................| 00006610 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00006620 ff 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff |................| 00006630 ff ff ff ff ff 00 00 00 ff ff 0f 00 f0 0f ff ff |................| 00006640 ff ff ff ff ff ff ff ff ff 00 00 00 ff 0f 00 00 |................| 00006650 f0 0f 00 f0 ff ff ff ff ff ff ff ff ff 00 00 00 |................| 00006660 0f 00 00 00 ff ff 00 00 ff ff ff ff ff ff ff ff |................| 00006670 00 00 00 00 00 00 00 00 ff ff 00 00 ff ff 0f 00 |................| 00006680 ff ff 0f 00 00 00 00 00 00 00 00 00 f0 0f 00 00 |................| 00006690 f0 ff 0f 00 ff ff 00 00 00 00 00 00 d4 02 00 00 |................| 000066a0 21 74 69 6d 73 6c 69 62 00 00 00 00 04 00 00 00 |!timslib........| 000066b0 21 00 00 00 00 00 00 00 07 00 00 00 2c 00 00 00 |!...........,...| 000066c0 2c 00 00 00 1f 00 00 00 00 00 00 00 00 30 00 00 |,............0..| 000066d0 03 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 |................| 000066e0 00 00 00 00 03 00 00 00 00 00 f0 ff 8f 00 00 00 |................| 000066f0 03 00 03 33 00 33 00 33 03 00 30 33 30 03 ff ff |...3.3.3..030...| 00006700 f8 00 00 00 30 30 30 00 03 30 30 00 03 00 30 00 |....000..00...0.| 00006710 03 f0 ff 8f 8f 00 00 00 30 30 30 00 03 30 30 00 |........000..00.| 00006720 03 00 30 00 03 ff ff f8 f8 00 00 00 00 03 30 00 |..0...........0.| 00006730 03 30 30 00 03 00 30 00 f3 ff 8f 8f 8f 00 00 00 |.00...0.........| 00006740 00 03 00 33 00 30 00 33 03 00 30 00 ff ff f8 f8 |...3.0.3..0.....| 00006750 f8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 |................| 00006760 ff 8f 8f 8f 8f 00 00 00 00 03 00 00 00 00 00 00 |................| 00006770 00 00 00 ff ff f8 f8 f8 88 00 00 00 30 00 00 00 |............0...| 00006780 00 00 00 00 00 00 f0 ff 8f 8f 8f 8f 88 00 00 00 |................| 00006790 30 00 00 00 00 00 00 00 00 00 ff ff f8 f8 f8 88 |0...............| 000067a0 88 00 00 00 30 00 00 00 00 00 00 00 00 f0 ff 8f |....0...........| 000067b0 8f 8f 8f 88 88 00 00 00 03 00 00 00 00 00 00 00 |................| 000067c0 00 ff ff f8 f8 f8 88 88 18 00 00 00 30 00 00 00 |............0...| 000067d0 00 00 00 00 f0 ff 8f 8f 8f 8f 88 88 11 00 00 00 |................| 000067e0 30 00 00 00 00 00 00 00 ff ff f8 f8 f8 88 88 18 |0...............| 000067f0 01 00 00 00 30 00 00 00 00 00 00 f0 ff 8f 8f 8f |....0...........| 00006800 8f 88 88 11 00 00 00 00 00 03 00 00 00 00 00 ff |................| 00006810 ff f8 f8 f8 88 88 18 01 00 00 00 00 00 00 00 00 |................| 00006820 00 00 f0 ff 8f 8f 8f 8f 88 88 11 00 30 00 00 00 |............0...| 00006830 00 00 00 00 00 00 ff ff f8 f8 f8 88 88 18 01 00 |................| 00006840 03 00 00 00 00 00 30 00 00 f0 ff 8f 8f 8f 8f 88 |......0.........| 00006850 88 15 00 00 03 00 00 00 00 00 00 03 03 f3 ff f8 |................| 00006860 f8 f8 88 88 18 51 00 00 03 00 00 00 00 00 00 03 |.....Q..........| 00006870 03 9e 99 8f 8f 8f 88 88 55 33 00 00 03 00 00 00 |........U3......| 00006880 00 00 00 30 30 9e 9c f8 f8 88 88 18 05 00 00 00 |...00...........| 00006890 03 00 00 00 00 00 00 30 e0 c9 99 8e 8f 88 88 15 |.......0........| 000068a0 30 03 00 00 30 00 00 00 00 00 00 00 e0 99 ee ee |0...0...........| 000068b0 8e 88 18 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000068c0 9e e9 ee ee 8e 88 11 00 00 00 00 00 00 00 00 00 |................| 000068d0 00 00 30 33 99 ee 2e 2e 8e 18 01 00 00 30 00 00 |..03.........0..| 000068e0 00 00 00 00 00 00 30 40 e9 e2 e2 23 e3 11 00 00 |......0@...#....| 000068f0 00 30 00 00 00 00 00 00 00 00 30 40 44 3e 3e 2e |.0........0@D>>.| 00006900 51 05 30 33 00 33 03 00 00 00 00 00 00 00 30 42 |Q.03.3........0B| 00006910 77 e3 52 11 05 30 30 00 03 30 00 00 00 00 00 00 |w.R..00..0......| 00006920 00 00 30 70 27 51 51 00 33 33 30 00 03 30 00 00 |..0p'QQ.330..0..| 00006930 00 00 00 00 00 00 30 00 11 00 03 00 03 00 30 00 |......0.......0.| 00006940 03 30 00 00 00 00 00 00 00 00 30 33 03 00 03 00 |.0........03....| 00006950 30 03 30 00 03 00 03 33 33 00 00 00 00 00 00 00 |0.0....33.......| 00006960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00006970 ac 2d 00 00 6d 61 65 6c 73 74 72 6f 6d 00 00 00 |.-..maelstrom...| 00006980 17 00 00 00 3b 00 00 00 00 00 00 00 0f 00 00 00 |....;...........| 00006990 ac 00 00 00 2c 17 00 00 14 00 00 00 00 ff ff ff |....,...........| 000069a0 00 ff ff ff 00 dd dd dd 00 dd dd dd 00 bb bb bb |................| 000069b0 00 bb bb bb 00 99 99 99 00 99 99 99 00 77 77 77 |.............www| 000069c0 00 77 77 77 00 55 55 55 00 55 55 55 00 33 33 33 |.www.UUU.UUU.333| 000069d0 00 33 33 33 00 00 00 00 00 00 00 00 00 00 44 99 |.333..........D.| 000069e0 00 00 44 99 00 ee ee 00 00 ee ee 00 00 00 cc 00 |..D.............| 000069f0 00 00 cc 00 00 dd 00 00 00 dd 00 00 00 ee ee bb |................| 00006a00 00 ee ee bb 00 55 88 00 00 55 88 00 00 ff bb 00 |.....U...U......| 00006a10 00 ff bb 00 00 00 bb ff 00 00 bb ff 11 42 55 55 |.............BUU| 00006a20 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 |UUUUUUUUUUUUUUUU| 00006a30 55 55 55 55 55 55 55 55 55 34 11 11 11 11 11 11 |UUUUUUUUU4......| 00006a40 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00006a70 11 11 11 11 11 11 11 11 11 11 00 00 41 77 77 77 |............Awww| 00006a80 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww| 00006a90 77 77 77 77 77 77 77 77 77 77 25 11 11 11 11 11 |wwwwwwwwww%.....| 00006aa0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00006ad0 11 11 11 11 11 11 11 11 11 11 00 00 73 77 77 77 |............swww| 00006ae0 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww| 00006af0 77 77 77 77 77 77 77 77 77 77 57 11 11 11 11 11 |wwwwwwwwwwW.....| 00006b00 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00006b30 11 11 11 11 11 11 11 11 11 11 00 00 76 77 77 77 |............vwww| 00006b40 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww| 00006b50 77 77 77 77 77 77 77 77 77 77 77 11 11 11 11 11 |wwwwwwwwwww.....| 00006b60 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00006b90 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 77 |............wwww| 00006ba0 67 67 67 67 77 77 77 77 77 77 77 77 77 77 77 77 |ggggwwwwwwwwwwww| 00006bb0 67 65 65 55 56 65 76 77 77 77 77 12 11 11 11 11 |geeUVevwwww.....| 00006bc0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00006bf0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 46 |............wwwF| 00006c00 b4 b3 44 4b 44 54 76 77 77 77 77 77 77 77 77 67 |..DKDTvwwwwwwwwg| 00006c10 55 55 56 56 56 56 55 77 77 77 77 13 11 11 11 11 |UUVVVVUwwww.....| 00006c20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00006c50 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 b4 |............www.| 00006c60 4b 4b 4b 4b bb bb 65 77 77 77 77 77 77 77 77 56 |KKKK..ewwwwwwwwV| 00006c70 55 24 b8 b8 b8 66 58 77 77 77 77 12 11 11 c1 11 |U$...fXwwww.....| 00006c80 11 11 11 11 11 11 11 1c 11 1c 10 c0 11 11 11 11 |................| 00006c90 11 11 11 1c 1c c1 11 11 11 11 11 11 11 11 11 11 |................| 00006ca0 11 11 11 1c 01 1c 11 11 11 11 11 1c 10 1c 11 11 |................| 00006cb0 11 01 01 11 11 11 11 c0 c0 11 00 00 77 77 77 b5 |............www.| 00006cc0 b3 4b bb b4 44 4b 4b 77 77 77 77 77 77 77 77 54 |.K..DKKwwwwwwwwT| 00006cd0 13 b3 55 56 56 b6 65 77 77 77 27 33 33 33 44 c2 |..UVV.ewww'333D.| 00006ce0 11 11 33 33 33 33 33 24 01 53 55 55 10 11 11 11 |..33333$.SUU....| 00006cf0 11 10 43 44 33 44 11 c1 32 33 22 23 32 33 11 11 |..CD3D..23"#23..| 00006d00 21 22 32 44 54 34 11 11 11 01 32 54 54 34 c1 11 |!"2DT4....2TT4..| 00006d10 11 51 55 c3 11 11 21 66 46 11 00 00 77 77 77 46 |.QU...!fF...wwwF| 00006d20 b4 42 4b 4b bb b4 b4 75 77 77 77 77 77 77 67 15 |.BKK...uwwwwwwg.| 00006d30 b4 55 b8 66 6b 56 75 77 77 77 47 74 77 77 77 12 |.U.fkVuwwwGtwww.| 00006d40 11 01 76 77 57 12 42 47 11 70 77 27 11 11 11 11 |..vwW.BG.pw'....| 00006d50 01 75 77 15 10 73 13 11 77 66 77 77 57 76 c6 40 |.uw..s..wfwwWv.@| 00006d60 77 77 37 31 77 77 17 11 01 63 77 14 10 76 67 11 |ww71ww...cw..vg.| 00006d70 11 61 77 37 11 11 60 77 27 11 00 00 77 77 77 67 |.aw7..`w'...wwwg| 00006d80 2b b2 b4 4b 4b 4b 4b 64 77 77 77 77 77 77 47 42 |+..KKKKdwwwwwwGB| 00006d90 65 5b 8b b5 58 56 77 77 77 77 57 64 11 77 77 11 |e[..XVwwwwWd.ww.| 00006da0 11 11 72 77 06 11 11 42 11 51 77 17 11 11 11 11 |..rw...B.Qw.....| 00006db0 21 77 77 11 11 21 04 31 27 00 75 77 c3 31 17 11 |!ww..!.1'.uw.1..| 00006dc0 77 77 02 11 73 77 47 11 21 77 57 1c 11 72 77 16 |ww..swG.!wW..rw.| 00006dd0 11 4c 77 67 11 11 73 77 17 11 00 00 77 77 77 77 |.Lwg..sw....wwww| 00006de0 34 b2 4b 4b bb b4 b5 4b 77 77 77 77 77 77 b5 53 |4.KK...Kwwwwww.S| 00006df0 5b 56 b8 56 b8 55 77 77 77 77 27 36 11 72 77 14 |[V.V.Uwwww'6.rw.| 00006e00 11 11 72 77 14 c1 01 01 11 50 77 07 11 11 11 11 |..rw.....Pw.....| 00006e10 31 77 77 11 11 01 10 41 c2 11 73 77 12 11 23 01 |1ww....A..sw..#.| 00006e20 76 77 10 11 61 77 57 1c 60 77 27 11 11 60 77 37 |vw..awW.`w'..`w7| 00006e30 10 41 77 77 14 01 76 77 17 11 00 00 77 77 77 77 |.Aww..vw....wwww| 00006e40 46 b2 b4 b4 b4 4b 4b 4b 76 77 77 77 77 77 54 5b |F....KKKvwwwwwT[| 00006e50 b6 b5 55 b6 58 56 77 77 77 77 26 05 11 70 77 16 |..U.XVwwww&..pw.| 00006e60 11 11 72 77 c3 41 15 11 11 41 77 07 11 11 11 11 |..rw.A...Aw.....| 00006e70 21 77 77 16 11 11 11 11 11 11 72 77 12 11 10 01 |!ww.......rw....| 00006e80 76 67 10 11 60 77 27 11 71 77 07 11 11 41 77 57 |vg..`w'.qw...AwW| 00006e90 11 50 76 77 17 30 77 77 27 11 00 00 77 77 77 77 |.Pvw.0ww'...wwww| 00006ea0 46 41 4b bb b4 b4 b4 b5 74 77 77 77 77 87 5b b8 |FAK.....twwww.[.| 00006eb0 56 66 b8 56 b8 56 77 77 77 77 44 03 33 62 77 27 |Vf.V.VwwwwD.3bw'| 00006ec0 11 11 72 77 13 77 77 11 11 41 77 07 11 11 11 11 |..rw.ww..Aw.....| 00006ed0 01 74 77 77 03 11 11 11 11 11 73 77 12 11 11 11 |.tww......sw....| 00006ee0 76 57 11 11 61 77 04 11 72 77 06 11 11 31 77 67 |vW..aw..rw...1wg| 00006ef0 10 60 40 77 67 73 22 77 37 11 00 00 77 77 77 77 |.`@wgs"w7...wwww| 00006f00 47 43 bb b4 b4 4b bb b4 54 77 77 77 77 47 b5 55 |GC...K..TwwwwG.U| 00006f10 5b 5b 56 b6 65 55 77 77 77 77 71 53 77 77 77 47 |[[V.eUwwwwqSwwwG| 00006f20 10 11 72 77 67 55 77 12 11 41 77 07 11 11 11 11 |..rwgUw..Aw.....| 00006f30 11 5c 77 77 57 10 11 11 11 11 72 77 12 11 11 01 |.\wwW.....rw....| 00006f40 76 67 10 00 73 37 11 11 73 77 16 11 11 21 77 67 |vg..s7..sw...!wg| 00006f50 11 61 10 77 77 57 20 77 57 11 00 00 77 77 77 77 |.a.wwW wW...wwww| 00006f60 b6 b3 b4 b4 b4 b4 b4 b4 b5 76 77 77 77 b5 85 6b |.........vwww..k| 00006f70 56 66 b5 56 b8 56 77 77 77 67 72 77 77 77 77 77 |Vf.V.Vwwwgrwwwww| 00006f80 1c 11 71 77 27 10 75 10 11 41 77 07 11 11 11 11 |..qw'.u..Aw.....| 00006f90 11 01 72 77 77 16 11 11 11 11 72 77 11 11 11 c1 |..rww.....rw....| 00006fa0 76 67 30 56 77 12 11 11 73 77 05 11 11 31 77 67 |vg0Vw...sw...1wg| 00006fb0 10 6c 01 73 77 27 01 77 67 10 00 00 77 77 77 77 |.l.sw'.wg...wwww| 00006fc0 37 4b 4b bb b4 4b 4b bb b4 74 77 77 77 54 5b b5 |7KK..KK..twwwT[.| 00006fd0 b5 b5 56 b6 58 56 77 77 77 47 75 02 61 47 75 77 |..V.XVwwwGu.aGuw| 00006fe0 11 11 71 77 15 11 13 11 11 40 77 07 11 11 11 11 |..qw.....@w.....| 00006ff0 11 11 01 75 77 67 11 11 11 11 72 77 12 11 11 01 |...uwg....rw....| 00007000 75 67 20 77 67 10 11 11 72 77 16 11 11 21 77 67 |ug wg...rw...!wg| 00007010 11 61 10 60 77 06 c1 76 77 10 00 00 77 77 77 77 |.a.`w..vw...wwww| 00007020 46 4b bb b4 b4 b4 4b 4b 5b 65 77 77 87 5b b8 65 |FK....KK[eww.[.e| 00007030 65 56 b8 56 b8 46 77 77 77 17 26 11 3c 04 71 77 |eV.V.Fwww.&.<.qw| 00007040 14 11 71 77 13 11 10 11 11 41 77 07 11 11 11 11 |..qw.....Aw.....| 00007050 11 11 11 30 77 77 06 11 11 11 73 77 12 11 11 11 |...0ww....sw....| 00007060 75 67 10 76 77 11 11 11 71 77 06 11 11 40 77 47 |ug.vw...qw...@wG| 00007070 11 62 11 31 77 12 11 75 77 11 00 00 77 77 77 77 |.b.1w..uw...wwww| 00007080 b6 b4 b4 b4 4b 4b 4b 4b 4b 4b 77 77 47 b5 55 5b |....KKKKKKwwG.U[| 00007090 5b 5b 8b b5 56 46 77 77 77 36 35 13 01 1c 61 77 |[[..VFwww65...aw| 000070a0 06 11 72 77 13 11 11 11 11 41 77 07 11 10 10 11 |..rw.....Aw.....| 000070b0 11 01 c2 01 72 77 27 11 11 11 72 77 12 11 11 01 |....rw'...rw....| 000070c0 75 77 10 72 77 14 11 11 7c 77 07 11 11 51 77 27 |uw.rw...|w...Qw'| 000070d0 11 53 10 01 55 10 11 74 77 12 00 00 77 77 77 77 |.S..U..tw...wwww| 000070e0 b4 4b bb b4 b4 b4 b4 b4 5b 5b 76 77 56 5b b5 56 |.K......[[vwV[.V| 000070f0 66 56 b8 56 66 4b 77 77 77 53 62 13 11 11 41 77 |fV.VfKwwwSb...Aw| 00007100 17 11 71 77 12 11 11 11 1c 40 77 c7 11 74 47 10 |..qw.....@w..tG.| 00007110 01 74 26 11 50 77 47 10 11 11 72 77 12 11 11 11 |.t&.PwG...rw....| 00007120 74 77 10 4c 77 27 11 11 40 77 17 11 11 60 77 07 |tw.Lw'..@w...`w.| 00007130 01 55 11 11 01 11 11 74 77 13 00 00 77 77 77 77 |.U.....tw...wwww| 00007140 b5 b3 b4 4b bb b4 4b 4b 4b 4b 64 67 b5 65 5b b6 |...K..KKKKdg.e[.| 00007150 b5 b5 65 b5 56 56 76 77 77 71 71 13 11 11 31 77 |..e.VVvwwqq...1w| 00007160 17 11 71 77 13 11 11 21 11 41 77 17 11 50 77 14 |..qw...!.Aw..Pw.| 00007170 21 77 13 11 31 77 47 11 11 11 72 77 12 11 11 11 |!w..1wG...rw....| 00007180 74 77 10 01 75 67 1c 11 11 77 27 11 11 7c 77 13 |tw..ug...w'..|w.| 00007190 11 45 11 11 11 11 11 73 77 14 00 00 77 77 77 77 |.E.....sw...wwww| 000071a0 b4 b4 3b 44 4b bb b4 b5 b4 b5 4b 45 5b b5 55 55 |..;DK.....KE[.UU| 000071b0 56 56 b8 56 b8 66 75 77 67 62 72 13 11 11 21 77 |VV.V.fuwgbr...!w| 000071c0 37 11 72 77 03 11 01 72 10 40 77 27 11 21 77 17 |7.rw...r.@w'.!w.| 000071d0 31 77 11 11 41 77 27 11 11 11 72 77 12 11 11 11 |1w..Aw'...rw....| 000071e0 74 77 11 11 40 77 05 11 11 72 57 10 11 72 67 10 |tw..@w...rW..rg.| 000071f0 01 46 11 11 11 11 11 73 77 14 00 00 77 77 77 77 |.F.....sw...wwww| 00007200 b4 4b 5b b5 b4 b4 b4 4b 5b 4b 5b 5b b5 55 5b b5 |.K[....K[K[[.U[.| 00007210 b5 b6 65 b5 58 b6 75 77 57 64 73 13 11 11 21 77 |..e.X.uwWds...!w| 00007220 47 11 73 77 c5 01 31 57 10 41 77 47 11 31 77 27 |G.sw..1W.AwG.1w'| 00007230 11 77 05 01 61 77 16 11 11 01 73 77 13 11 11 c1 |.w..aw....sw....| 00007240 74 77 12 11 c1 72 37 11 11 40 77 12 11 76 16 11 |tw...r7..@w..v..| 00007250 01 46 11 11 11 11 01 73 77 05 00 00 77 77 77 77 |.F.....sw...wwww| 00007260 b3 b4 64 36 bb b4 b4 b4 b4 b5 b5 b5 b5 b5 74 56 |..d6..........tV| 00007270 56 56 b8 56 b8 85 74 77 47 74 71 13 11 11 50 77 |VV.V..twGtq...Pw| 00007280 57 10 76 77 57 44 76 27 11 70 77 77 13 63 77 06 |W.vwWDv'.pww.cw.| 00007290 11 52 67 43 76 57 11 11 11 11 76 77 06 11 11 11 |.RgCvW....vw....| 000072a0 74 77 06 11 11 01 64 12 11 01 62 37 63 47 10 11 |tw....d...b7cG..| 000072b0 11 66 10 11 11 11 11 76 77 14 00 00 77 77 77 77 |.f.....vw...wwww| 000072c0 b3 b4 63 67 b4 4b 4b 4b 4b 5b b5 55 5b 56 75 47 |..cg.KKKK[.U[VuG| 000072d0 5b 6b 8b b5 66 b6 74 77 67 31 61 13 11 11 20 33 |[k..f.twg1a... 3| 000072e0 12 01 23 22 22 32 32 02 11 31 33 33 33 33 23 11 |..#""22..13333#.| 000072f0 11 01 11 33 23 10 11 11 11 01 33 33 13 11 11 11 |...3#.....33....| 00007300 31 33 c3 11 11 11 01 10 11 11 01 21 13 01 11 11 |13.........!....| 00007310 c1 42 11 11 11 11 11 33 23 11 00 00 77 77 77 67 |.B.....3#...wwwg| 00007320 4b bb 74 77 b3 b4 4b bb b5 b4 b5 b5 55 4b 77 47 |K.tw..K.....UKwG| 00007330 56 56 b8 66 65 85 74 77 77 66 76 13 11 11 11 11 |VV.fe.twwfv.....| 00007340 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| 00007350 11 11 11 11 1c 11 11 11 11 11 11 11 11 11 11 11 |................| 00007360 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| 00007370 11 01 11 11 11 11 11 11 11 11 00 00 77 77 77 57 |............wwwW| 00007380 4b 4b 64 77 46 4b 4b 4b 5b 5b 4b 5b 5b 55 77 47 |KKdwFKKK[[K[[UwG| 00007390 6b 5b 55 b6 b6 66 65 77 77 77 77 13 11 11 11 11 |k[U..fewwww.....| 000073a0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 000073d0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 47 |............wwwG| 000073e0 4b bb 74 77 47 4b 4b 5b 4b 4b 5b b5 55 6b 77 57 |K.twGKK[KK[.UkwW| 000073f0 56 b8 b6 56 56 b8 56 77 77 77 77 13 11 11 11 11 |V..VV.Vwwww.....| 00007400 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007430 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 47 |............wwwG| 00007440 4b 4b 6b 77 67 b4 4b 4b 5b 5b 5b 5b b6 75 77 57 |KKkwg.KK[[[[.uwW| 00007450 5b 8b 55 b6 65 8b 55 77 77 77 77 13 11 11 41 76 |[.U.e.Uwwww...Av| 00007460 47 11 11 11 11 11 11 11 11 11 11 52 57 11 55 11 |G..........RW.U.| 00007470 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007490 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 47 |............wwwG| 000074a0 b4 b4 74 77 77 b4 b4 b5 b4 55 5b b5 45 77 77 67 |..tww....U[.Ewwg| 000074b0 55 b8 b8 65 56 56 56 77 77 77 77 12 11 11 76 67 |U..eVVVwwww...vg| 000074c0 76 16 11 11 11 11 11 11 11 11 21 77 36 11 67 11 |v.........!w6.g.| 000074d0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 000074f0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 47 |............wwwG| 00007500 bb b4 74 77 77 47 4b 5b 5b 5b 5b 5b 5b 77 77 77 |..twwGK[[[[[[www| 00007510 b4 55 56 b6 66 8b 4b 77 77 77 77 13 11 61 47 11 |.UV.f.Kwwww..aG.| 00007520 61 37 11 11 11 11 11 11 11 11 61 27 11 21 57 11 |a7........a'.!W.| 00007530 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007550 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 36 |............www6| 00007560 4b bb 74 77 77 57 b4 b4 b5 b4 b5 55 74 77 77 77 |K.twwW.....Utwww| 00007570 55 b8 b8 56 56 56 48 77 77 77 77 13 11 72 15 11 |U..VVVHwwww..r..| 00007580 21 47 11 11 11 11 11 11 11 11 72 14 11 21 47 11 |!G........r..!G.| 00007590 11 11 11 11 11 11 11 11 11 11 11 11 32 12 11 11 |............2...| 000075a0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| 000075b0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 b6 |............www.| 000075c0 b4 b4 74 77 77 77 b4 4b 4b 5b b5 b5 75 77 77 77 |..twww.KK[..uwww| 000075d0 b4 65 65 b5 66 8b 56 76 77 77 77 13 11 73 13 11 |.ee.f.Vvwww..s..| 000075e0 21 23 11 21 65 77 56 11 11 73 77 67 57 66 67 56 |!#.!ewV..swgWfgV| 000075f0 74 12 11 11 11 11 11 11 66 11 11 74 77 77 32 37 |t.......f..tww27| 00007600 21 25 63 15 11 31 76 66 14 11 11 11 11 11 11 11 |!%c..1vf........| 00007610 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 45 |............wwwE| 00007620 bb b4 75 77 77 67 46 b4 b5 b5 b5 45 77 77 77 77 |..uwwgF....Ewwww| 00007630 55 b8 b6 56 66 85 6b 75 77 77 77 13 11 73 15 11 |U..Vf.kuwww..s..| 00007640 11 11 11 73 67 55 77 16 11 43 76 55 64 76 67 56 |...sgUw..CvUdvgV| 00007650 73 13 11 11 34 11 11 41 37 11 72 67 44 75 47 27 |s...4..A7.rgDuG'| 00007660 41 57 77 14 21 76 57 76 67 11 11 11 11 11 11 11 |AWw.!vWvg.......| 00007670 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 b5 |............www.| 00007680 b4 b4 74 77 77 77 47 5b 4b b5 55 5b 77 77 77 77 |..twwwG[K.U[wwww| 00007690 b5 55 56 b6 56 8b 65 75 77 77 77 13 11 61 67 23 |.UV.V.euwww..ag#| 000076a0 11 11 31 67 12 11 51 47 11 11 65 11 11 61 16 11 |..1g..QG..e..a..| 000076b0 72 15 11 31 57 11 11 71 15 21 77 13 11 31 77 17 |r..1W..q.!w..1w.| 000076c0 51 77 13 11 72 37 11 11 75 14 11 11 11 11 11 11 |Qw..r7..u.......| 000076d0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 45 |............wwwE| 000076e0 bb b4 75 77 77 77 87 5b 5b 5b b5 74 77 77 77 77 |..uwww.[[[.twwww| 000076f0 58 b8 b8 56 66 66 66 75 77 77 77 12 11 21 75 77 |X..Vfffuwww..!uw| 00007700 15 11 71 17 11 11 11 76 11 11 57 11 11 71 16 11 |..q....v..W..q..| 00007710 61 16 11 61 57 11 11 75 12 71 26 11 11 11 74 16 |a..aW..u.q&...t.| 00007720 61 37 11 11 67 12 11 11 61 17 11 11 11 11 11 11 |a7..g...a.......| 00007730 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 b4 |............www.| 00007740 b4 b4 75 77 77 77 77 54 5b 5b 5b 75 77 77 77 77 |..uwwwwT[[[uwwww| 00007750 56 8b 65 b5 56 8b 8b 74 77 77 77 13 11 11 21 65 |V.e.V..twww...!e| 00007760 67 11 74 13 11 11 11 74 12 11 47 11 11 72 14 11 |g.t....t..G..r..| 00007770 61 17 11 73 77 11 21 57 11 74 13 11 11 11 73 15 |a..sw.!W.t....s.| 00007780 72 17 11 41 27 11 11 11 31 27 11 11 11 11 11 11 |r..A'...1'......| 00007790 11 11 11 11 11 11 11 11 11 11 00 00 77 77 67 b4 |............wwg.| 000077a0 b4 b4 78 77 77 77 77 46 5b b5 45 77 77 77 77 77 |..xwwwwF[.Ewwwww| 000077b0 47 b8 b8 66 66 66 65 74 77 77 77 13 11 11 11 11 |G..fffetwww.....| 000077c0 76 14 76 11 11 11 11 74 13 21 37 11 11 74 13 11 |v.v....t.!7..t..| 000077d0 41 27 11 66 75 11 61 17 11 66 11 11 11 11 72 14 |A'.fu.a..f....r.| 000077e0 72 15 11 61 77 77 67 77 76 27 11 11 11 11 11 11 |r..awwgwv'......| 000077f0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 b4 |............www.| 00007800 4b 4b 76 77 77 77 77 67 b4 55 65 77 77 77 77 77 |KKvwwwwg.Uewwwww| 00007810 47 55 56 b6 65 65 b6 75 77 77 77 13 11 11 11 11 |GUV.ee.uwww.....| 00007820 73 14 66 11 11 11 11 75 12 41 27 11 11 75 12 11 |s.f....u.A'..u..| 00007830 31 37 31 37 74 13 73 14 11 57 11 11 11 11 74 13 |1717t.s..W....t.| 00007840 73 14 11 71 56 54 55 55 55 15 11 11 11 11 11 11 |s..qVTUUU.......| 00007850 11 11 11 11 11 11 11 11 11 11 00 00 77 77 67 b3 |............wwg.| 00007860 b4 b4 76 77 77 77 77 77 46 54 76 77 77 77 77 77 |..vwwwwwFTvwwwww| 00007870 56 b6 b8 56 b8 b8 56 58 77 77 77 13 51 13 11 11 |V..V..VXwww.Q...| 00007880 73 14 67 11 11 11 11 67 11 41 17 11 11 75 11 11 |s.g....g.A...u..| 00007890 21 47 71 16 73 13 67 11 11 66 11 11 11 11 76 12 |!Gq.s.g..f....v.| 000078a0 75 12 11 71 15 11 11 11 11 11 11 11 11 11 11 11 |u..q............| 000078b0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 67 4b |............wwgK| 000078c0 bb 44 76 77 77 77 77 77 67 67 77 77 77 77 77 77 |.Dvwwwwwggwwwwww| 000078d0 47 8b 65 65 8b 85 66 56 77 77 77 13 72 15 11 11 |G.ee..fVwww.r...| 000078e0 75 13 76 12 11 11 51 27 11 61 16 11 11 67 11 11 |u.v...Q'.a...g..| 000078f0 11 57 73 13 72 55 37 11 11 76 12 11 11 51 77 1c |.Ws.rU7..v...Qw.| 00007900 75 11 11 61 17 11 11 11 76 12 11 11 11 11 11 11 |u..a....v.......| 00007910 11 11 11 11 11 11 11 11 11 11 00 00 77 77 57 4b |............wwWK| 00007920 4b bb 76 77 77 77 77 77 77 77 77 77 77 77 77 77 |K.vwwwwwwwwwwwww| 00007930 57 58 8b 6b 65 b8 66 56 77 77 77 13 71 27 11 41 |WX.ke.fVwww.q'.A| 00007940 67 11 73 16 11 11 74 14 11 71 14 11 21 57 11 11 |g.s...t..q..!W..| 00007950 11 75 66 11 71 76 16 11 11 74 16 11 11 74 57 11 |.uf.qv...t...tW.| 00007960 76 11 11 41 67 11 11 51 37 11 11 11 11 11 11 11 |v..Ag..Q7.......| 00007970 11 11 11 11 11 11 11 11 11 11 00 00 77 77 57 b5 |............wwW.| 00007980 b4 34 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |.4wwwwwwwwwwwwww| 00007990 57 8b 65 65 b6 58 66 56 77 77 77 13 41 77 45 76 |W.ee.XfVwww.AwEv| 000079a0 26 11 41 77 45 75 47 11 11 72 14 11 31 37 11 11 |&.AwEuG..r..17..| 000079b0 11 75 37 11 61 77 12 11 11 61 77 45 75 47 57 11 |.u7.aw...awEuGW.| 000079c0 57 11 11 11 76 56 54 77 14 11 11 11 11 11 11 11 |W...vVTw........| 000079d0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 4b |............wwGK| 000079e0 5b 4b 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |[Kwwwwwwwwwwwwww| 000079f0 57 b8 b8 b8 56 66 b8 46 77 77 77 13 11 63 77 46 |W...Vf.Fwww..cwF| 00007a00 11 11 11 63 77 56 12 11 11 72 12 11 41 36 11 11 |...cwV...r..A6..| 00007a10 11 73 16 11 51 57 11 11 11 11 64 77 46 32 37 21 |.s..QW....dwF27!| 00007a20 47 11 11 11 52 77 77 26 11 11 11 11 11 11 11 11 |G...Rww&........| 00007a30 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 5b |............wwG[| 00007a40 4b 3b 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |K;wwwwwwwwwwwwww| 00007a50 57 55 66 85 66 8b 65 56 77 77 77 12 11 11 11 11 |WUf.f.eVwww.....| 00007a60 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| 00007a70 11 11 11 11 11 11 11 11 11 11 11 21 11 11 11 11 |...........!....| 00007a80 11 11 11 11 11 31 22 11 11 11 11 11 11 11 11 11 |.....1".........| 00007a90 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 4b |............wwGK| 00007aa0 5b 3b 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |[;wwwwwwwwwwwwww| 00007ab0 57 56 b4 b8 56 b8 66 46 77 77 77 13 11 11 11 11 |WV..V.fFwww.....| 00007ac0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007af0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 5b |............wwG[| 00007b00 5b 3b 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |[;wwwwwwwwwwwwww| 00007b10 57 5b 52 66 66 86 66 56 77 77 77 13 11 11 11 11 |W[Rff.fVwww.....| 00007b20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007b50 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 55 |............wwGU| 00007b60 4b 4b 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |KKwwwwwwwwwwwwww| 00007b70 87 65 51 66 65 b5 b8 46 77 77 77 13 11 11 11 11 |.eQfe..Fwww.....| 00007b80 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007bb0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 43 |............wwGC| 00007bc0 5b 45 76 77 77 77 77 77 77 77 77 77 77 77 77 77 |[Evwwwwwwwwwwwww| 00007bd0 57 66 61 8b 8b 86 85 46 77 77 77 13 11 11 11 11 |Wfa....Fwww.....| 00007be0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007c10 11 11 11 11 11 11 11 11 11 11 00 00 77 77 b6 42 |............ww.B| 00007c20 5b 4b 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |[Kwwwwwwwwwwwwww| 00007c30 57 4b 62 56 b8 b8 66 46 77 77 77 12 11 11 11 11 |WKbV..fFwww.....| 00007c40 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007c70 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 b1 |............wwG.| 00007c80 55 4b 76 77 77 77 77 77 77 77 77 77 77 77 77 77 |UKvwwwwwwwwwwwww| 00007c90 56 25 64 66 86 86 66 46 77 77 77 13 11 11 11 11 |V%df..fFwww.....| 00007ca0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007cd0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 51 |............wwGQ| 00007ce0 b5 b5 65 77 77 77 77 77 77 77 77 77 77 77 77 67 |..ewwwwwwwwwwwwg| 00007cf0 55 34 56 8b 5b b8 66 46 77 77 77 13 11 11 11 11 |U4V.[.fFwww.....| 00007d00 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007d30 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 42 |............wwGB| 00007d40 5b 55 4b 77 77 77 77 77 77 77 77 77 77 77 77 56 |[UKwwwwwwwwwwwwV| 00007d50 b6 55 8b 58 68 86 65 56 77 77 77 13 11 11 11 11 |.U.Xh.eVwww.....| 00007d60 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007d90 11 11 11 11 11 11 11 11 11 11 00 00 77 77 47 5b |............wwG[| 00007da0 b5 b5 55 76 77 77 77 77 77 77 77 77 77 77 77 56 |..UvwwwwwwwwwwwV| 00007db0 56 66 65 b8 b8 b8 66 65 77 77 77 13 11 11 11 11 |Vfe...fewww.....| 00007dc0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007df0 11 11 11 11 11 11 11 11 11 11 00 00 77 77 67 b4 |............wwg.| 00007e00 55 5b b6 78 77 77 77 77 77 77 77 77 77 77 77 56 |U[.xwwwwwwwwwwwV| 00007e10 8b 66 b6 88 86 86 55 76 77 77 77 12 11 11 11 11 |.f....Uvwww.....| 00007e20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007e50 11 11 11 11 11 11 11 11 11 11 00 00 77 77 77 56 |............wwwV| 00007e60 55 54 55 77 77 77 77 77 77 77 77 77 77 77 77 77 |UTUwwwwwwwwwwwww| 00007e70 55 56 56 56 56 55 66 77 77 77 77 13 11 11 11 11 |UVVVVUfwwww.....| 00007e80 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007eb0 11 11 11 11 11 11 11 11 11 11 00 00 76 77 77 77 |............vwww| 00007ec0 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww| 00007ed0 77 76 77 76 76 77 77 77 77 77 77 11 11 11 11 11 |wvwvvwwwwww.....| 00007ee0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007f10 11 11 11 11 11 11 11 11 11 11 00 00 74 77 77 77 |............twww| 00007f20 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww| 00007f30 77 77 77 77 77 77 77 77 77 77 67 11 11 11 11 11 |wwwwwwwwwwg.....| 00007f40 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007f70 11 11 11 11 11 11 11 11 11 11 00 00 61 77 77 77 |............awww| 00007f80 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 |wwwwwwwwwwwwwwww| 00007f90 77 77 77 77 77 77 77 77 77 77 26 11 11 11 11 11 |wwwwwwwwww&.....| 00007fa0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00007fd0 11 11 11 11 11 11 11 11 11 11 00 00 11 64 76 76 |.............dvv| 00007fe0 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 |vvvvvvvvvvvvvvvv| 00007ff0 76 76 76 76 76 76 76 76 76 56 11 11 11 11 11 11 |vvvvvvvvvV......| 00008000 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00008030 11 11 11 11 11 11 11 11 11 11 00 00 11 11 11 11 |................| 00008040 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 |................| * 00008090 11 11 11 11 11 11 11 11 11 11 00 00 00 ff ff ff |................| 000080a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000080b0 ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 |................| 000080c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000080f0 00 00 00 00 00 00 00 00 00 00 ff ff f0 ff ff ff |................| 00008100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008110 ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 |................| 00008120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008150 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008160 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008170 ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 |................| 00008180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000081b0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000081c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000081d0 ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 |................| 000081e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008210 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008220 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008230 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00008240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008270 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008280 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008290 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000082a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000082d0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000082e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000082f0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 f0 00 |................| 00008300 00 00 00 00 00 00 00 0f 00 0f 0f ff 00 00 00 00 |................| 00008310 00 00 00 0f 0f f0 00 00 00 00 00 00 00 00 00 00 |................| 00008320 00 00 00 0f f0 0f 00 00 00 00 00 0f 0f 0f 00 00 |................| 00008330 00 f0 f0 00 00 00 00 ff ff 00 ff ff ff ff ff ff |................| 00008340 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008350 0f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008360 00 00 ff ff ff ff ff ff f0 ff ff ff 0f 00 00 00 |................| 00008370 00 0f ff ff ff ff 00 f0 ff ff ff ff ff ff 00 00 |................| 00008380 f0 ff ff ff ff ff 00 00 00 f0 ff ff ff ff f0 00 |................| 00008390 00 f0 ff ff 00 00 f0 ff ff 00 ff ff ff ff ff ff |................| 000083a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0f |................| * 000083c0 00 f0 ff ff ff 0f ff ff 00 ff ff ff 00 00 00 00 |................| 000083d0 f0 ff ff 0f 0f ff 0f 00 ff ff ff ff ff ff ff ff |................| 000083e0 ff ff ff f0 ff ff 0f 00 f0 ff ff 0f 0f ff ff 00 |................| 000083f0 00 f0 ff ff 00 00 ff ff ff 00 ff ff ff ff ff ff |................| 00008400 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008410 ff ff ff ff ff ff ff ff ff ff ff ff 00 ff ff 00 |................| 00008420 00 00 ff ff ff 00 00 ff 00 f0 ff 0f 00 00 00 00 |................| 00008430 f0 ff ff 00 00 f0 ff f0 ff ff ff ff ff f0 0f 00 |................| 00008440 ff ff ff 00 ff ff ff 00 f0 ff ff 0f 00 ff ff 0f |................| 00008450 00 ff ff ff 00 00 ff ff 0f 00 ff ff ff ff ff ff |................| 00008460 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008470 ff ff ff ff ff ff ff ff ff ff ff ff 00 ff ff 0f |................| 00008480 00 00 ff ff 0f f0 f0 f0 00 ff ff ff 00 00 00 00 |................| 00008490 f0 ff ff 00 00 f0 0f f0 ff 00 ff ff 0f 00 ff f0 |................| 000084a0 ff ff 0f 00 f0 ff ff 0f ff ff ff 00 00 ff ff ff |................| 000084b0 0f f0 ff ff 0f f0 ff ff 0f 00 ff ff ff ff ff ff |................| 000084c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000084d0 ff ff ff ff ff ff ff ff ff ff ff ff 00 ff ff 0f |................| 000084e0 00 00 ff ff ff f0 0f 00 00 f0 ff ff 00 00 00 00 |................| 000084f0 f0 ff ff 0f 00 00 00 00 00 00 ff ff 0f 00 0f f0 |................| 00008500 ff ff 0f 00 ff ff ff 00 f0 ff ff 00 00 f0 ff ff |................| 00008510 00 ff ff ff 0f ff ff ff ff 00 ff ff ff ff ff ff |................| 00008520 ff f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008530 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008540 00 00 ff ff 0f ff ff 00 00 f0 ff ff 00 00 00 00 |................| 00008550 f0 ff ff ff ff 00 00 00 00 00 ff ff 0f 00 00 00 |................| 00008560 ff ff 00 00 f0 ff ff 00 ff ff ff 00 00 f0 ff ff |................| 00008570 0f ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff |................| 00008580 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008590 ff ff ff ff ff ff ff ff ff ff f0 ff ff ff ff ff |................| 000085a0 0f 00 ff ff ff ff ff 0f 00 f0 ff ff 00 00 00 00 |................| 000085b0 00 ff ff ff ff 0f 00 00 00 00 ff ff 0f 00 00 f0 |................| 000085c0 ff ff 0f ff ff ff 00 00 ff ff 0f 00 00 f0 ff ff |................| 000085d0 00 f0 0f ff ff ff ff ff ff 00 ff ff ff ff ff ff |................| 000085e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00008600 0f 00 f0 ff ff 0f ff 0f 00 f0 ff ff 00 00 00 00 |................| 00008610 00 f0 ff ff ff 0f 00 00 00 00 ff ff 00 00 00 f0 |................| 00008620 ff ff ff ff ff 0f 00 00 ff ff ff 00 00 f0 ff ff |................| 00008630 0f ff f0 ff ff ff f0 ff ff 0f ff ff ff ff ff ff |................| 00008640 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008650 ff ff ff ff ff ff ff ff ff ff ff ff f0 ff ff ff |................| 00008660 00 00 f0 ff 0f 00 0f 00 00 ff ff ff 00 00 00 00 |................| 00008670 00 00 f0 ff ff ff 00 00 00 00 ff ff 0f 00 00 f0 |................| 00008680 ff ff ff ff ff 0f 00 00 ff ff 0f 00 00 f0 ff ff |................| 00008690 00 f0 0f ff ff ff f0 ff ff 0f ff ff ff ff ff ff |................| 000086a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000086b0 ff ff ff ff ff ff ff ff ff 0f ff 00 ff ff f0 ff |................| 000086c0 0f 00 f0 ff 0f 00 0f 00 00 f0 ff ff 00 00 00 00 |................| 000086d0 00 00 00 ff ff ff ff 00 00 00 ff ff 0f 00 00 00 |................| 000086e0 ff ff 0f ff ff 00 00 00 f0 ff ff 00 00 ff ff ff |................| 000086f0 00 ff 00 f0 ff 0f 00 ff ff 00 ff ff ff ff ff ff |................| 00008700 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008710 ff ff ff ff ff ff ff ff ff ff ff 0f f0 0f f0 ff |................| 00008720 ff 00 ff ff 0f 00 00 00 00 f0 ff ff 00 0f 0f 00 |................| 00008730 00 f0 ff f0 ff ff ff 00 00 00 ff ff 0f 00 00 f0 |................| 00008740 ff ff 0f ff ff 0f 00 00 ff ff ff 00 00 f0 ff ff |................| 00008750 00 ff 0f f0 ff 0f 00 ff ff 0f ff ff ff ff ff ff |................| 00008760 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008770 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 f0 ff |................| 00008780 0f 00 f0 ff 0f 00 00 00 0f ff ff ff 00 ff ff 0f |................| 00008790 f0 ff ff 00 ff ff ff 0f 00 00 ff ff 0f 00 00 00 |................| 000087a0 ff ff 0f ff ff ff 00 00 ff ff 0f 00 00 ff ff ff |................| 000087b0 f0 ff 00 00 f0 00 00 ff ff 0f ff ff ff ff ff ff |................| 000087c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000087d0 ff ff ff ff ff ff ff ff ff f0 f0 0f 00 00 f0 ff |................| 000087e0 0f 00 f0 ff 0f 00 00 f0 00 f0 ff 0f 00 ff ff 0f |................| 000087f0 f0 ff 0f 00 f0 ff ff 00 00 00 ff ff 0f 00 00 00 |................| 00008800 ff ff 0f f0 ff ff 0f 00 00 ff ff 00 00 ff ff 0f |................| 00008810 00 ff 00 00 00 00 00 ff ff 0f ff ff ff ff ff ff |................| 00008820 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008830 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 f0 ff |................| 00008840 ff 00 ff ff ff 00 f0 ff 0f ff ff ff 00 f0 ff 0f |................| 00008850 f0 ff 00 00 f0 ff ff 00 00 00 ff ff 0f 00 00 00 |................| 00008860 ff ff 00 00 ff ff ff 00 00 ff ff 0f 00 ff ff 0f |................| 00008870 f0 ff 00 00 00 00 00 ff ff 0f ff ff ff ff ff ff |................| 00008880 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008890 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 f0 ff |................| 000088a0 ff 00 ff ff ff f0 f0 ff 0f f0 ff ff 00 f0 ff ff |................| 000088b0 00 ff ff f0 f0 ff 0f 00 00 f0 ff ff 0f 00 00 f0 |................| 000088c0 ff ff 0f 00 f0 ff ff 00 00 ff ff 0f 00 ff 0f 00 |................| 000088d0 f0 ff 00 00 00 00 f0 ff ff ff ff ff ff ff ff ff |................| 000088e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000088f0 ff ff ff ff ff ff ff ff ff ff f0 0f 00 00 ff ff |................| 00008900 ff 0f ff ff ff ff ff ff 00 ff ff ff 0f ff ff ff |................| 00008910 00 ff ff ff ff ff 00 00 00 00 ff ff ff 00 00 00 |................| 00008920 ff ff ff 00 00 f0 ff 0f 00 f0 ff ff ff ff 0f 00 |................| 00008930 00 ff 0f 00 00 00 00 ff ff 0f ff ff ff ff ff ff |................| 00008940 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008950 ff ff ff ff ff ff ff ff ff f0 f0 0f 00 00 ff ff |................| 00008960 0f f0 ff ff ff ff ff ff 00 f0 ff ff ff ff ff 00 |................| 00008970 00 f0 00 ff ff 0f 00 00 00 f0 ff ff 0f 00 00 00 |................| 00008980 f0 ff ff 00 00 00 f0 0f 00 00 f0 f0 0f f0 00 00 |................| 00008990 f0 ff 00 00 00 00 00 ff ff 00 ff ff ff ff ff ff |................| 000089a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000089b0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000089c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000089d0 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 |................| 000089e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000089f0 00 f0 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008a00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008a10 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00008a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008a50 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008a60 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008a70 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00008a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008ab0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008ac0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008ad0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 f0 ff |................| 00008ae0 ff 00 00 00 00 00 00 00 00 00 00 ff ff 00 ff 00 |................| 00008af0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008b10 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008b20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008b30 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 ff ff |................| 00008b40 ff 0f 00 00 00 00 00 00 00 00 f0 ff ff 00 ff 00 |................| 00008b50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008b70 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008b80 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008b90 ff ff ff ff ff ff ff ff ff ff ff 0f 00 f0 ff 00 |................| 00008ba0 f0 ff 00 00 00 00 00 00 00 00 f0 ff 00 f0 ff 00 |................| 00008bb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00008bd0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008be0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008bf0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 ff 0f 00 |................| 00008c00 f0 ff 00 00 00 00 00 00 00 00 ff 0f 00 f0 ff 00 |................| 00008c10 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 |................| 00008c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00008c30 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008c40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008c50 ff ff ff ff ff ff ff ff ff ff ff 0f 00 ff 0f 00 |................| 00008c60 f0 ff 00 f0 ff ff ff 00 00 ff ff ff ff ff ff ff |................| 00008c70 ff 0f 00 00 00 00 00 00 ff 00 00 ff ff ff ff ff |................| 00008c80 f0 ff ff 0f 00 f0 ff ff 0f 00 00 00 00 00 00 00 |................| 00008c90 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008ca0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008cb0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 ff 0f 00 |................| 00008cc0 00 00 00 ff ff ff ff 0f 00 ff ff ff ff ff ff ff |................| 00008cd0 ff 0f 00 00 ff 00 00 f0 ff 00 ff ff ff ff ff ff |................| 00008ce0 f0 ff ff 0f f0 ff ff ff ff 00 00 00 00 00 00 00 |................| 00008cf0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008d00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008d10 ff ff ff ff ff ff ff ff ff ff ff 0f 00 f0 ff ff |................| 00008d20 00 00 f0 ff 0f 00 f0 ff 00 00 ff 00 00 f0 0f 00 |................| 00008d30 ff 0f 00 f0 ff 00 00 f0 0f f0 ff 0f 00 f0 ff 0f |................| 00008d40 f0 ff 0f 00 ff ff 00 00 ff 0f 00 00 00 00 00 00 |................| 00008d50 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008d60 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008d70 ff ff ff ff ff ff ff ff ff ff ff 0f 00 f0 ff ff |................| 00008d80 0f 00 f0 0f 00 00 00 ff 00 00 ff 00 00 f0 0f 00 |................| 00008d90 f0 0f 00 f0 ff 00 00 ff 0f f0 ff 00 00 00 ff 0f |................| 00008da0 f0 ff 00 00 ff 0f 00 00 f0 0f 00 00 00 00 00 00 |................| 00008db0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008dc0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008dd0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 f0 ff |................| 00008de0 ff 00 ff 0f 00 00 00 ff 0f 00 ff 00 00 ff 0f 00 |................| 00008df0 f0 0f 00 ff ff 00 f0 ff 00 ff 0f 00 00 00 ff 0f |................| 00008e00 ff 0f 00 f0 ff 00 00 00 f0 ff 00 00 00 00 00 00 |................| 00008e10 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008e20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008e30 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00008e40 ff 0f ff 00 00 00 00 ff 0f f0 ff 00 00 ff 0f 00 |................| 00008e50 f0 ff 00 ff ff 00 f0 0f 00 ff 00 00 00 00 ff 0f |................| 00008e60 ff 0f 00 f0 ff ff ff ff ff ff 00 00 00 00 00 00 |................| 00008e70 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008e80 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008e90 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00008ea0 ff 0f ff 00 00 00 00 ff 0f f0 ff 00 00 ff 0f 00 |................| 00008eb0 f0 ff f0 ff ff 0f ff 0f 00 ff 00 00 00 00 ff 0f |................| 00008ec0 ff 0f 00 f0 ff ff ff ff ff 0f 00 00 00 00 00 00 |................| 00008ed0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008ee0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008ef0 ff ff ff ff ff ff ff ff ff ff ff 0f f0 0f 00 00 |................| 00008f00 ff 0f ff 00 00 00 00 ff 00 f0 0f 00 00 ff 00 00 |................| 00008f10 f0 ff f0 0f ff 0f ff 00 00 ff 00 00 00 00 ff 0f |................| 00008f20 ff 0f 00 f0 0f 00 00 00 00 00 00 00 00 00 00 00 |................| 00008f30 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008f40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008f50 ff ff ff ff ff ff ff ff ff ff ff 0f ff 0f 00 00 |................| 00008f60 ff 0f ff 0f 00 00 f0 ff 00 f0 0f 00 00 ff 00 00 |................| 00008f70 00 ff ff 0f ff ff ff 00 00 ff 0f 00 00 f0 ff 0f |................| 00008f80 ff 00 00 f0 0f 00 00 00 ff 0f 00 00 00 00 00 00 |................| 00008f90 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00008fa0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00008fb0 ff ff ff ff ff ff ff ff ff ff ff 0f f0 ff 00 f0 |................| 00008fc0 ff 00 ff 0f 00 00 ff 0f 00 f0 0f 00 f0 ff 00 00 |................| 00008fd0 00 ff ff 00 f0 ff 0f 00 00 ff 0f 00 00 ff ff 00 |................| 00008fe0 ff 00 00 f0 ff 00 00 f0 ff 00 00 00 00 00 00 00 |................| 00008ff0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009010 ff ff ff ff ff ff ff ff ff ff ff 0f f0 ff ff ff |................| 00009020 ff 00 f0 ff ff ff ff 00 00 ff 0f 00 f0 ff 00 00 |................| 00009030 00 ff ff 00 f0 ff 0f 00 00 f0 ff ff ff ff ff 00 |................| 00009040 ff 00 00 00 ff ff ff ff 0f 00 00 00 00 00 00 00 |................| 00009050 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009070 ff ff ff ff ff ff ff ff ff ff ff 0f 00 ff ff ff |................| 00009080 00 00 00 ff ff ff 0f 00 00 ff 0f 00 f0 ff 00 00 |................| 00009090 00 ff 0f 00 f0 ff 00 00 00 00 ff ff ff ff ff f0 |................| 000090a0 ff 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 |................| 000090b0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000090c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000090d0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000090e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000090f0 00 00 00 00 00 00 00 00 00 00 00 f0 00 00 00 00 |................| 00009100 00 00 00 00 00 f0 ff 00 00 00 00 00 00 00 00 00 |................| 00009110 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009120 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009130 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009170 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009180 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009190 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000091a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000091d0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000091e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000091f0 ff ff f0 ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009230 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009240 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009250 ff ff f0 ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009290 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000092a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000092b0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000092c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000092f0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff f0 |................| 00009300 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009310 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009350 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff f0 |................| 00009360 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009370 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000093b0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000093c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000093d0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000093e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009410 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009420 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009430 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009470 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009480 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009490 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 000094a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000094d0 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000094e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000094f0 ff ff ff ff ff ff ff ff ff ff ff 0f 00 00 00 00 |................| 00009500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009530 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 00009540 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009550 ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 |................| 00009560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009590 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff |................| 000095a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 000095b0 ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 |................| 000095c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000095f0 00 00 00 00 00 00 00 00 00 00 ff ff f0 ff ff ff |................| 00009600 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009610 ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 |................| 00009620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009650 00 00 00 00 00 00 00 00 00 00 ff ff 00 ff ff ff |................| 00009660 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00009670 ff ff ff ff ff ff ff ff ff ff 00 00 00 00 00 00 |................| 00009680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000096b0 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 |................| 000096c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00009710 00 00 00 00 00 00 00 00 00 00 ff ff 44 49 52 24 |............DIR$| 00009720 34 03 00 00 34 03 00 00 50 9a 00 00 46 ff ff ff |4...4...P...F...| 00009730 80 75 dd 22 1d 01 00 00 13 00 00 00 00 00 00 00 |.u."............| 00009740 61 62 6f 72 74 00 00 00 70 9b 00 00 46 ff ff ff |abort...p...F...| 00009750 05 2e de 22 e5 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00009760 61 62 73 00 58 9c 00 00 46 ff ff ff 1f 93 bd 22 |abs.X...F......"| 00009770 cc 00 00 00 13 00 00 00 00 00 00 00 61 63 6f 73 |............acos| 00009780 00 00 00 00 24 9d 00 00 46 ff ff ff a6 6b e6 22 |....$...F....k."| 00009790 a7 00 00 00 13 00 00 00 00 00 00 00 41 44 52 00 |............ADR.| 000097a0 cc 9d 00 00 46 ff ff ff c1 16 ee 22 dd 00 00 00 |....F......"....| 000097b0 13 00 00 00 00 00 00 00 61 6b 62 64 00 00 00 00 |........akbd....| 000097c0 ac 9e 00 00 46 ff ff ff 3b ee ee 22 51 01 00 00 |....F...;.."Q...| 000097d0 13 00 00 00 00 00 00 00 61 6c 61 72 6d 00 00 00 |........alarm...| 000097e0 00 a0 00 00 46 ff ff ff f8 28 e6 22 a7 00 00 00 |....F....(."....| 000097f0 13 00 00 00 00 00 00 00 41 4c 49 47 4e 00 00 00 |........ALIGN...| 00009800 a8 a0 00 00 46 ff ff ff 68 98 b0 24 2b 01 00 00 |....F...h..$+...| 00009810 13 00 00 00 00 00 00 00 61 6c 6c 6f 63 70 72 6f |........allocpro| 00009820 63 00 00 00 d4 a1 00 00 46 ff ff ff 8e 68 b5 22 |c.......F....h."| 00009830 9a 00 00 00 13 00 00 00 00 00 00 00 41 50 65 70 |............APep| 00009840 70 65 72 65 6c 6c 00 00 70 a2 00 00 46 ff ff ff |perell..p...F...| 00009850 93 68 b5 22 ee 00 00 00 13 00 00 00 00 00 00 00 |.h."............| 00009860 41 50 65 72 65 69 72 61 00 00 00 00 60 a3 00 00 |APereira....`...| 00009870 46 ff ff ff 51 b5 e1 22 85 01 00 00 13 00 00 00 |F...Q.."........| 00009880 00 00 00 00 61 73 63 74 69 6d 65 00 e8 a4 00 00 |....asctime.....| 00009890 46 ff ff ff 93 a3 bd 22 c8 00 00 00 13 00 00 00 |F......"........| 000098a0 00 00 00 00 61 73 69 6e 00 00 00 00 b0 a5 00 00 |....asin........| 000098b0 46 ff ff ff 44 99 53 26 5a 02 00 00 13 00 00 00 |F...D.S&Z.......| 000098c0 00 00 00 00 41 73 6b 55 73 65 72 00 0c a8 00 00 |....AskUser.....| 000098d0 46 ff ff ff e5 68 b5 22 44 02 00 00 13 00 00 00 |F....h."D.......| 000098e0 00 00 00 00 61 73 73 65 72 74 00 00 50 aa 00 00 |....assert..P...| 000098f0 46 ff ff ff 23 9f bd 22 d5 00 00 00 13 00 00 00 |F...#.."........| 00009900 00 00 00 00 61 74 61 6e 00 00 00 00 28 ab 00 00 |....atan....(...| 00009910 46 ff ff ff a7 ab bd 22 81 01 00 00 13 00 00 00 |F......"........| 00009920 00 00 00 00 61 74 61 6e 32 00 00 00 ac ac 00 00 |....atan2.......| 00009930 46 ff ff ff 47 7f dd 22 26 01 00 00 13 00 00 00 |F...G.."&.......| 00009940 00 00 00 00 61 74 65 78 69 74 00 00 d4 ad 00 00 |....atexit......| 00009950 46 ff ff ff 4e d0 c4 22 50 01 00 00 13 00 00 00 |F...N.."P.......| 00009960 00 00 00 00 61 74 6f 66 00 00 00 00 24 af 00 00 |....atof....$...| 00009970 46 ff ff ff 3d db c4 22 51 01 00 00 13 00 00 00 |F...=.."Q.......| 00009980 00 00 00 00 61 74 6f 69 00 00 00 00 78 b0 00 00 |....atoi....x...| 00009990 46 ff ff ff fd e8 c4 22 54 01 00 00 13 00 00 00 |F......"T.......| 000099a0 00 00 00 00 61 74 6f 6c 00 00 00 00 cc b1 00 00 |....atol........| 000099b0 46 fd ff ff 83 5b 84 2f 8c 00 00 00 13 01 00 00 |F....[./........| 000099c0 00 00 00 00 61 6b 62 64 5f 00 00 00 70 b9 00 00 |....akbd_...p...| 000099d0 46 fd ff ff ea 5b 84 2f 5c 01 00 00 13 01 00 00 |F....[./\.......| 000099e0 00 00 00 00 61 6c 61 72 6d 5f 00 00 64 c5 00 00 |....alarm_..d...| 000099f0 46 fd ff ff c1 5c 84 2f 2c 00 00 00 13 01 00 00 |F....\./,.......| 00009a00 00 00 00 00 61 6e 73 69 5f 00 00 00 74 c7 00 00 |....ansi_...t...| 00009a10 46 fd ff ff e9 5c 84 2f 6c 00 00 00 13 01 00 00 |F....\./l.......| 00009a20 00 00 00 00 41 73 6b 55 73 65 72 5f 00 00 00 00 |....AskUser_....| 00009a30 44 cb 00 00 46 fd ff ff 31 5d 84 2f 4c 00 00 00 |D...F...1]./L...| 00009a40 13 01 00 00 00 00 00 00 41 53 53 45 52 54 5f 00 |........ASSERT_.| 00009a50 44 41 54 41 1d 01 00 00 61 62 6f 72 74 0a 53 79 |DATA....abort.Sy| 00009a60 6e 74 61 78 3a 09 76 6f 69 64 20 61 62 6f 72 74 |ntax:.void abort| 00009a70 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 00009a80 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c |.<stdlib.h=>stdl| 00009a90 69 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ib>..This functi| 00009aa0 6f 6e 20 74 65 72 6d 69 6e 61 74 65 73 20 74 68 |on terminates th| 00009ab0 65 20 70 72 6f 67 72 61 6d 20 61 62 6e 6f 72 6d |e program abnorm| 00009ac0 61 6c 6c 79 2e 20 4f 70 65 6e 20 66 69 6c 65 73 |ally. Open files| 00009ad0 20 6d 61 79 20 6e 6f 74 20 62 65 20 63 6c 6f 73 | may not be clos| 00009ae0 65 64 20 61 6e 64 20 74 65 6d 70 6f 72 61 72 79 |ed and temporary| 00009af0 20 66 69 6c 65 73 20 6d 61 79 20 6e 6f 74 20 62 | files may not b| 00009b00 65 20 72 65 6d 6f 76 65 64 2e 20 54 68 69 73 20 |e removed. This | 00009b10 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 |function should | 00009b20 6e 6f 74 20 72 65 61 6c 6c 79 20 62 65 20 75 73 |not really be us| 00009b30 65 64 20 69 66 20 79 6f 75 20 63 61 6e 20 68 65 |ed if you can he| 00009b40 6c 70 20 69 74 2e 20 54 68 65 20 66 75 6e 63 74 |lp it. The funct| 00009b50 69 6f 6e 20 63 61 6c 6c 73 20 3c 72 61 69 73 65 |ion calls <raise| 00009b60 3e 28 3c 53 49 47 41 42 52 54 3e 29 2e 00 00 00 |>(<SIGABRT>)....| 00009b70 44 41 54 41 e5 00 00 00 61 62 73 0a 53 79 6e 74 |DATA....abs.Synt| 00009b80 61 78 3a 09 69 6e 74 20 61 62 73 20 28 69 6e 74 |ax:.int abs (int| 00009b90 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 | x);.Header:.<st| 00009ba0 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a |dlib.h=>stdlib>.| 00009bb0 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 61 62 |.Returns:.The ab| 00009bc0 73 6f 6c 75 74 65 20 76 61 6c 75 65 20 6f 66 20 |solute value of | 00009bd0 2f 78 2f 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |/x/...This funct| 00009be0 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 |ion returns the | 00009bf0 61 62 73 6f 6c 75 74 65 20 76 61 6c 75 65 20 6f |absolute value o| 00009c00 66 20 2f 78 2f 20 69 65 20 74 68 65 20 6d 61 67 |f /x/ ie the mag| 00009c10 6e 69 74 75 64 65 20 6f 66 20 2f 78 2f 2e 20 54 |nitude of /x/. T| 00009c20 68 69 73 20 69 73 20 61 6c 77 61 79 73 20 70 6f |his is always po| 00009c30 73 69 74 69 76 65 20 73 6f 20 69 66 20 78 20 3d |sitive so if x =| 00009c40 20 2d 35 2c 20 74 68 65 6e 20 61 62 73 28 78 29 | -5, then abs(x)| 00009c50 20 3d 20 35 2e 00 00 00 44 41 54 41 cc 00 00 00 | = 5....DATA....| 00009c60 61 63 6f 73 0a 53 79 6e 74 61 78 3a 09 64 6f 75 |acos.Syntax:.dou| 00009c70 62 6c 65 20 61 63 6f 73 20 28 64 6f 75 62 6c 65 |ble acos (double| 00009c80 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | x);.Header:.<ma| 00009c90 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 00009ca0 75 72 6e 73 3a 09 54 68 65 20 61 72 63 20 63 6f |urns:.The arc co| 00009cb0 73 69 6e 65 20 6f 66 20 78 2c 20 69 6e 20 72 61 |sine of x, in ra| 00009cc0 64 69 61 6e 73 2e 0a 0a 54 68 69 73 20 66 75 6e |dians...This fun| 00009cd0 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 |ction calculates| 00009ce0 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c 20 76 | the principal v| 00009cf0 61 6c 75 65 20 6f 66 20 74 68 65 20 61 72 63 20 |alue of the arc | 00009d00 63 6f 73 69 6e 65 20 6f 66 20 78 2e 20 44 6f 6d |cosine of x. Dom| 00009d10 61 69 6e 3a 20 2d 31 20 5c 3c 3d 20 78 20 5c 3c |ain: -1 \<= x \<| 00009d20 3d 20 31 2e 44 41 54 41 a7 00 00 00 41 44 52 20 |= 1.DATA....ADR | 00009d30 3c 72 65 67 69 73 74 65 72 3e 2c 3c 6c 61 62 65 |<register>,<labe| 00009d40 6c 3e 0a 54 68 69 73 20 73 65 74 73 20 74 68 65 |l>.This sets the| 00009d50 20 67 69 76 65 6e 20 72 65 67 69 73 74 65 72 20 | given register | 00009d60 74 6f 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 61 |to contain the a| 00009d70 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 67 69 |ddress of the gi| 00009d80 76 65 6e 20 6c 61 62 65 6c 20 65 67 3a 0a 0a 23 |ven label eg:..#| 00009d90 66 43 6f 64 65 0a 20 20 20 20 20 20 20 41 44 52 |fCode. ADR| 00009da0 20 20 20 52 30 2c 6c 61 62 65 6c 0a 20 20 20 20 | R0,label. | 00009db0 20 20 20 2e 2e 2e 0a 2e 6c 61 62 65 6c 20 44 43 | .....label DC| 00009dc0 44 20 20 20 31 30 2c 35 2c 37 36 00 44 41 54 41 |D 10,5,76.DATA| 00009dd0 dd 00 00 00 61 6b 62 64 2e 68 0a 54 68 65 20 5c |....akbd.h.The \| 00009de0 3c 61 6b 62 64 2e 68 3e 20 68 65 61 64 65 72 20 |<akbd.h> header | 00009df0 64 65 63 6c 61 72 65 73 20 74 68 72 65 65 20 66 |declares three f| 00009e00 75 6e 63 74 69 6f 6e 73 20 63 6f 6e 63 65 72 6e |unctions concern| 00009e10 65 64 20 77 69 74 68 20 61 63 63 65 73 73 69 6e |ed with accessin| 00009e20 67 20 74 68 65 20 6b 65 79 62 6f 61 72 64 2e 20 |g the keyboard. | 00009e30 49 74 20 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 |It also defines | 00009e40 61 20 6e 75 6d 62 65 72 20 6f 66 20 3c 6d 61 63 |a number of <mac| 00009e50 72 6f 73 3d 3e 61 6b 62 64 5f 6d 61 63 72 6f 73 |ros=>akbd_macros| 00009e60 5f 3e 2e 0a 0a 23 54 61 62 6c 65 20 32 20 31 35 |_>...#Table 2 15| 00009e70 0a 20 3c 61 6b 62 64 5f 70 6f 6c 6c 63 74 6c 3e |. <akbd_pollctl>| 00009e80 0a 20 3c 61 6b 62 64 5f 70 6f 6c 6c 6b 65 79 3e |. <akbd_pollkey>| 00009e90 0a 20 3c 61 6b 62 64 5f 70 6f 6c 6c 73 68 3e 0a |. <akbd_pollsh>.| 00009ea0 23 45 6e 64 54 61 62 6c 65 00 00 00 44 41 54 41 |#EndTable...DATA| 00009eb0 51 01 00 00 61 6c 61 72 6d 2e 68 0a 54 68 69 73 |Q...alarm.h.This| 00009ec0 20 68 65 61 64 65 72 20 66 69 6c 65 20 70 72 6f | header file pro| 00009ed0 76 69 64 65 73 20 61 6c 61 72 6d 20 66 61 63 69 |vides alarm faci| 00009ee0 6c 69 74 69 65 73 20 66 6f 72 20 57 69 6d 70 20 |lities for Wimp | 00009ef0 70 72 6f 67 72 61 6d 73 2c 20 75 73 69 6e 67 20 |programs, using | 00009f00 6e 6f 6e 2d 62 75 73 79 20 77 61 69 74 69 6e 67 |non-busy waiting| 00009f10 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 00009f20 49 6e 64 65 6e 74 20 38 0a 23 54 61 62 6c 65 20 |Indent 8.#Table | 00009f30 35 20 32 33 0a 3c 61 6c 61 72 6d 5f 69 6e 69 74 |5 23.<alarm_init| 00009f40 3e 0a 3c 61 6c 61 72 6d 5f 74 69 6d 65 6e 6f 77 |>.<alarm_timenow| 00009f50 3e 0a 3c 61 6c 61 72 6d 5f 74 69 6d 65 64 69 66 |>.<alarm_timedif| 00009f60 66 65 72 65 6e 63 65 3e 0a 3c 61 6c 61 72 6d 5f |ference>.<alarm_| 00009f70 73 65 74 3e 0a 3c 61 6c 61 72 6d 5f 72 65 6d 6f |set>.<alarm_remo| 00009f80 76 65 3e 0a 3c 61 6c 61 72 6d 5f 72 65 6d 6f 76 |ve>.<alarm_remov| 00009f90 65 61 6c 6c 3e 0a 3c 61 6c 61 72 6d 5f 61 6e 79 |eall>.<alarm_any| 00009fa0 70 65 6e 64 69 6e 67 3e 0a 3c 61 6c 61 72 6d 5f |pending>.<alarm_| 00009fb0 6e 65 78 74 3e 0a 3c 61 6c 61 72 6d 5f 63 61 6c |next>.<alarm_cal| 00009fc0 6c 6e 65 78 74 3e 0a 23 45 6e 64 54 61 62 6c 65 |lnext>.#EndTable| 00009fd0 0a 0a 23 49 6e 64 65 6e 74 20 30 0a 54 79 70 65 |..#Indent 0.Type| 00009fe0 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 38 0a 3c 61 |s:..#indent 8.<a| 00009ff0 6c 61 72 6d 5f 68 61 6e 64 6c 65 72 3e 00 00 00 |larm_handler>...| 0000a000 44 41 54 41 a7 00 00 00 41 4c 49 47 4e 0a 54 68 |DATA....ALIGN.Th| 0000a010 69 73 20 61 6c 69 67 6e 73 20 74 68 65 20 61 73 |is aligns the as| 0000a020 73 65 6d 62 6c 79 20 70 6f 69 6e 74 65 72 20 74 |sembly pointer t| 0000a030 6f 20 61 20 77 6f 72 64 20 62 6f 75 6e 64 61 72 |o a word boundar| 0000a040 79 2e 20 55 73 65 20 69 74 20 61 66 74 65 72 20 |y. Use it after | 0000a050 64 61 74 61 20 62 6c 6f 63 6b 73 20 6f 66 20 69 |data blocks of i| 0000a060 72 72 65 67 75 6c 61 72 20 6c 65 6e 67 74 68 2e |rregular length.| 0000a070 20 41 6c 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e | All instruction| 0000a080 73 20 6d 75 73 74 20 62 65 20 61 73 73 65 6d 62 |s must be assemb| 0000a090 6c 65 64 20 6f 6e 20 61 20 77 6f 72 64 20 62 6f |led on a word bo| 0000a0a0 75 6e 64 61 72 79 2e 00 44 41 54 41 2b 01 00 00 |undary..DATA+...| 0000a0b0 61 6c 6c 6f 63 70 72 6f 63 0a 54 68 65 20 74 79 |allocproc.The ty| 0000a0c0 70 65 20 2a 61 6c 6c 6f 63 70 72 6f 63 2a 20 69 |pe *allocproc* i| 0000a0d0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6b 65 |s defined in <ke| 0000a0e0 72 6e 65 6c 2e 68 3e 20 61 73 20 61 20 70 72 6f |rnel.h> as a pro| 0000a0f0 63 65 64 75 72 65 20 77 68 69 63 68 20 63 61 6e |cedure which can| 0000a100 20 62 65 20 75 73 65 64 20 74 6f 20 61 6c 6c 6f | be used to allo| 0000a110 63 61 74 65 20 6d 65 6d 6f 72 79 2e 20 49 74 20 |cate memory. It | 0000a120 69 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a |is defined as:..| 0000a130 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 0000a140 74 72 65 7d 76 6f 69 64 20 2a 61 6c 6c 6f 63 70 |tre}void *allocp| 0000a150 72 6f 63 20 28 75 6e 73 69 67 6e 65 64 29 3b 7b |roc (unsigned);{| 0000a160 66 3b 61 6c 69 67 6e 7d 0a 0a 54 68 65 20 70 61 |f;align}..The pa| 0000a170 72 61 6d 65 74 65 72 20 70 61 73 73 65 64 20 69 |rameter passed i| 0000a180 73 20 74 68 65 20 73 69 7a 65 20 6f 66 20 73 70 |s the size of sp| 0000a190 61 63 65 20 74 6f 20 61 6c 6c 6f 63 61 74 65 2e |ace to allocate.| 0000a1a0 20 49 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 | It should retur| 0000a1b0 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |n a pointer to t| 0000a1c0 68 65 20 73 70 61 63 65 20 61 6c 6c 6f 63 61 74 |he space allocat| 0000a1d0 65 64 2e 00 44 41 54 41 9a 00 00 00 41 6e 64 72 |ed..DATA....Andr| 0000a1e0 65 77 20 50 65 70 70 65 72 65 6c 6c 0a 49 6e 74 |ew Pepperell.Int| 0000a1f0 65 72 6e 65 74 20 65 6d 61 69 6c 3a 20 61 70 31 |ernet email: ap1| 0000a200 30 30 31 34 40 63 61 6d 2e 61 63 2e 75 6b 0a 0a |0014@cam.ac.uk..| 0000a210 53 6e 61 69 6c 2d 6d 61 69 6c 3a 0a 20 20 20 20 |Snail-mail:. | 0000a220 32 30 20 4f 72 63 68 61 72 64 20 50 61 72 6b 0a |20 Orchard Park.| 0000a230 20 20 20 20 47 72 69 6d 6f 6c 64 62 79 0a 20 20 | Grimoldby. | 0000a240 20 20 4c 4f 55 54 48 0a 20 20 20 20 4c 69 6e 63 | LOUTH. Linc| 0000a250 6f 6c 6e 73 68 69 72 65 0a 20 20 20 20 4c 4e 31 |olnshire. LN1| 0000a260 31 20 38 54 4e 0a 20 20 20 20 55 2e 4b 2e 00 00 |1 8TN. U.K...| 0000a270 44 41 54 41 ee 00 00 00 41 69 6e 73 6c 65 79 20 |DATA....Ainsley | 0000a280 50 65 72 65 69 72 61 0a 46 69 64 6f 4e 65 74 20 |Pereira.FidoNet | 0000a290 65 6d 61 69 6c 3a 20 32 3a 32 35 30 2f 32 31 39 |email: 2:250/219| 0000a2a0 2e 35 0a 49 6e 74 65 72 6e 65 74 20 65 6d 61 69 |.5.Internet emai| 0000a2b0 6c 3a 20 41 2e 50 65 72 65 69 72 61 40 63 73 2e |l: A.Pereira@cs.| 0000a2c0 75 63 6c 2e 61 63 2e 75 6b 20 28 75 6e 69 29 0a |ucl.ac.uk (uni).| 0000a2d0 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 61 | or a| 0000a2e0 6d 70 79 40 64 69 67 69 62 61 6e 6b 2e 64 65 6d |mpy@digibank.dem| 0000a2f0 6f 6e 2e 63 6f 2e 75 6b 20 28 68 6f 6d 65 29 0a |on.co.uk (home).| 0000a300 0a 53 6e 61 69 6c 2d 6d 61 69 6c 3a 0a 20 20 20 |.Snail-mail:. | 0000a310 20 27 41 6c 20 53 69 72 61 74 27 0a 20 20 20 20 | 'Al Sirat'. | 0000a320 43 68 61 70 65 6c 20 52 6f 61 64 0a 20 20 20 20 |Chapel Road. | 0000a330 53 77 61 6e 6d 6f 72 65 0a 20 20 20 20 53 4f 55 |Swanmore. SOU| 0000a340 54 48 41 4d 50 54 4f 4e 0a 20 20 20 20 53 4f 33 |THAMPTON. SO3| 0000a350 32 20 32 51 41 0a 20 20 20 20 55 2e 4b 2e 00 00 |2 2QA. U.K...| 0000a360 44 41 54 41 85 01 00 00 61 73 63 74 69 6d 65 0a |DATA....asctime.| 0000a370 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 61 73 |Syntax:.char *as| 0000a380 63 74 69 6d 65 20 28 3c 73 74 72 75 63 74 a0 74 |ctime (<struct.t| 0000a390 6d 3e 20 2a 74 70 74 72 29 3b 0a 48 65 61 64 65 |m> *tptr);.Heade| 0000a3a0 72 3a 09 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 |r:.<time.h=>time| 0000a3b0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 0000a3c0 69 6e 74 65 72 20 74 6f 20 74 68 65 20 74 69 6d |inter to the tim| 0000a3d0 65 20 73 74 72 69 6e 67 2e 0a 0a 54 68 69 73 20 |e string...This | 0000a3e0 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 |function convert| 0000a3f0 73 20 74 68 65 20 62 72 6f 6b 65 6e 2d 64 6f 77 |s the broken-dow| 0000a400 6e 20 74 69 6d 65 2c 0a 77 68 6f 73 65 20 73 74 |n time,.whose st| 0000a410 72 75 63 74 75 72 65 20 69 73 20 70 6f 69 6e 74 |ructure is point| 0000a420 65 64 20 74 6f 20 62 79 20 2f 74 70 74 72 2f 2c |ed to by /tptr/,| 0000a430 20 69 6e 74 6f 20 61 0a 73 74 72 69 6e 67 20 69 | into a.string i| 0000a440 6e 20 74 68 65 20 66 6f 72 6d 3a 0a 20 20 20 20 |n the form:. | 0000a450 20 94 64 64 64 20 6d 6d 6d 20 6e 6e 20 68 68 3a | .ddd mmm nn hh:| 0000a460 6d 6d 3a 73 73 20 79 79 79 79 5c 5c 6e 5c 5c 30 |mm:ss yyyy\\n\\0| 0000a470 95 0a 0a 57 68 65 72 65 20 2f 64 64 64 2f 2c 20 |...Where /ddd/, | 0000a480 2f 6d 6d 6d 2f 2c 20 2f 6e 6e 2f 20 65 74 63 20 |/mmm/, /nn/ etc | 0000a490 61 72 65 20 74 68 65 20 64 61 79 2c 20 6d 6f 6e |are the day, mon| 0000a4a0 74 68 2c 20 64 61 79 0a 6e 75 6d 62 65 72 20 65 |th, day.number e| 0000a4b0 74 63 2c 20 5c 5c 6e 20 69 73 20 61 20 6e 65 77 |tc, \\n is a new| 0000a4c0 6c 69 6e 65 2c 20 61 6e 64 20 5c 5c 30 20 69 73 |line, and \\0 is| 0000a4d0 20 74 68 65 20 6e 75 6c 6c 0a 74 65 72 6d 69 6e | the null.termin| 0000a4e0 61 74 6f 72 2e 00 00 00 44 41 54 41 c8 00 00 00 |ator....DATA....| 0000a4f0 61 73 69 6e 0a 53 79 6e 74 61 78 3a 09 64 6f 75 |asin.Syntax:.dou| 0000a500 62 6c 65 20 61 73 69 6e 20 28 64 6f 75 62 6c 65 |ble asin (double| 0000a510 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | x);.Header:.<ma| 0000a520 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 0000a530 75 72 6e 73 3a 09 54 68 65 20 61 72 63 20 73 69 |urns:.The arc si| 0000a540 6e 65 20 6f 66 20 78 2c 20 69 6e 20 72 61 64 69 |ne of x, in radi| 0000a550 61 6e 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ans...This funct| 0000a560 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 20 74 |ion calculates t| 0000a570 68 65 20 70 72 69 6e 63 69 70 61 6c 20 76 61 6c |he principal val| 0000a580 75 65 20 6f 66 20 74 68 65 20 61 72 63 20 73 69 |ue of the arc si| 0000a590 6e 65 20 6f 66 20 78 2e 20 44 6f 6d 61 69 6e 3a |ne of x. Domain:| 0000a5a0 20 2d 31 20 5c 3c 3d 20 78 20 5c 3c 3d 20 31 2e | -1 \<= x \<= 1.| 0000a5b0 44 41 54 41 5a 02 00 00 41 73 6b 55 73 65 72 0a |DATAZ...AskUser.| 0000a5c0 53 79 6e 74 61 78 3a 09 3c 61 73 6b 75 73 65 72 |Syntax:.<askuser| 0000a5d0 5f 52 45 50 4c 59 3e 20 41 73 6b 55 73 65 72 20 |_REPLY> AskUser | 0000a5e0 28 63 68 61 72 20 2a 71 75 65 73 74 69 6f 6e 29 |(char *question)| 0000a5f0 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 0000a600 69 62 3a 41 73 6b 55 73 65 72 2e 68 3d 3e 41 73 |ib:AskUser.h=>As| 0000a610 6b 55 73 65 72 5f 68 3e 0a 0a 52 65 74 75 72 6e |kUser_h>..Return| 0000a620 73 3a 09 54 68 65 20 75 73 65 72 27 73 20 72 65 |s:.The user's re| 0000a630 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 66 75 |sponse...This fu| 0000a640 6e 63 74 69 6f 6e 20 6f 70 65 6e 73 20 61 20 64 |nction opens a d| 0000a650 69 61 6c 6f 67 75 65 20 62 6f 78 20 63 6f 6e 74 |ialogue box cont| 0000a660 61 69 6e 69 6e 67 20 74 68 65 20 71 75 65 73 74 |aining the quest| 0000a670 69 6f 6e 20 61 6e 64 20 74 77 6f 20 62 75 74 74 |ion and two butt| 0000a680 6f 6e 73 20 28 27 59 65 73 27 20 61 6e 64 20 27 |ons ('Yes' and '| 0000a690 4e 6f 27 29 2e 20 49 74 20 77 61 69 74 73 20 66 |No'). It waits f| 0000a6a0 6f 72 20 74 68 65 20 75 73 65 72 27 73 20 72 65 |or the user's re| 0000a6b0 70 6c 79 20 61 6e 64 20 72 65 74 75 72 6e 73 20 |ply and returns | 0000a6c0 69 74 2e 20 54 68 65 20 74 65 6d 70 6c 61 74 65 |it. The template| 0000a6d0 20 22 71 75 65 72 79 22 20 6d 75 73 74 20 62 65 | "query" must be| 0000a6e0 20 6c 6f 61 64 65 64 20 77 69 74 68 20 3c 54 65 | loaded with <Te| 0000a6f0 6d 70 6c 61 74 65 5f 4c 6f 61 64 46 69 6c 65 3e |mplate_LoadFile>| 0000a700 20 61 6e 64 20 73 68 6f 75 6c 64 20 68 61 76 65 | and should have| 0000a710 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 | the following i| 0000a720 63 6f 6e 73 3a 0a 7b 74 61 62 7d 0a 30 20 2d 09 |cons:.{tab}.0 -.| 0000a730 27 59 65 73 27 20 69 63 6f 6e 2e 20 42 75 74 74 |'Yes' icon. Butt| 0000a740 6f 6e 20 74 79 70 65 20 27 43 6c 69 63 6b 27 2e |on type 'Click'.| 0000a750 0a 31 20 2d 09 49 6e 64 69 72 65 63 74 65 64 20 |.1 -.Indirected | 0000a760 74 65 78 74 2e 20 53 75 69 74 61 62 6c 65 20 66 |text. Suitable f| 0000a770 6f 72 20 71 75 65 73 74 69 6f 6e 20 28 75 73 75 |or question (usu| 0000a780 61 6c 6c 79 20 77 69 6c 6c 20 68 61 76 65 20 76 |ally will have v| 0000a790 61 6c 69 64 61 74 69 6f 6e 20 22 4c 34 30 22 20 |alidation "L40" | 0000a7a0 73 6f 20 74 68 61 74 20 6d 75 6c 74 69 70 6c 65 |so that multiple| 0000a7b0 20 6c 69 6e 65 73 20 6f 66 20 74 65 78 74 20 63 | lines of text c| 0000a7c0 61 6e 20 62 65 20 64 69 73 70 6c 61 79 65 64 29 |an be displayed)| 0000a7d0 2e 20 42 75 74 74 6f 6e 20 74 79 70 65 20 27 4e |. Button type 'N| 0000a7e0 65 76 65 72 27 2e 0a 32 20 2d 09 27 4e 6f 27 20 |ever'..2 -.'No' | 0000a7f0 69 63 6f 6e 2e 20 42 75 74 74 6f 6e 20 74 79 70 |icon. Button typ| 0000a800 65 20 27 43 6c 69 63 6b 27 2e 00 00 44 41 54 41 |e 'Click'...DATA| 0000a810 44 02 00 00 61 73 73 65 72 74 2e 68 0a 54 68 65 |D...assert.h.The| 0000a820 20 5c 3c 61 73 73 65 72 74 2e 68 5c 3e 20 68 65 | \<assert.h\> he| 0000a830 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 6a 75 |ader declares ju| 0000a840 73 74 20 6f 6e 65 0a 66 75 6e 63 74 69 6f 6e 2c |st one.function,| 0000a850 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 53 79 | as follows:..Sy| 0000a860 6e 74 61 78 3a 20 20 76 6f 69 64 20 61 73 73 65 |ntax: void asse| 0000a870 72 74 20 28 69 6e 74 20 65 78 70 29 3b 0a 48 65 |rt (int exp);.He| 0000a880 61 64 65 72 3a 20 20 61 73 73 65 72 74 2e 68 0a |ader: assert.h.| 0000a890 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0000a8a0 68 65 63 6b 73 20 74 68 65 20 76 61 6c 75 65 20 |hecks the value | 0000a8b0 6f 66 20 65 78 70 2e 20 49 66 20 69 74 20 69 73 |of exp. If it is| 0000a8c0 0a 7a 65 72 6f 20 28 69 65 20 66 61 6c 73 65 29 |.zero (ie false)| 0000a8d0 20 74 68 65 6e 20 74 68 65 20 70 72 6f 67 72 61 | then the progra| 0000a8e0 6d 20 61 62 6f 72 74 73 0a 69 6e 73 74 61 6e 74 |m aborts.instant| 0000a8f0 6c 79 20 77 69 74 68 20 61 20 6d 65 73 73 61 67 |ly with a messag| 0000a900 65 20 67 69 76 69 6e 67 20 22 65 78 70 22 20 61 |e giving "exp" a| 0000a910 6e 64 20 74 68 65 0a 63 75 72 72 65 6e 74 20 66 |nd the.current f| 0000a920 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 77 69 74 |ile and line wit| 0000a930 68 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 20 49 |hin that file. I| 0000a940 74 0a 77 6f 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 |t.would normally| 0000a950 20 62 65 20 75 73 65 64 20 77 69 74 68 20 61 20 | be used with a | 0000a960 63 6f 6e 64 69 74 69 6f 6e 20 61 73 20 65 78 70 |condition as exp| 0000a970 2c 0a 66 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 |,.for example:. | 0000a980 20 20 20 61 73 73 65 72 74 28 61 3d 3d 62 29 3b | assert(a==b);| 0000a990 0a 77 6f 75 6c 64 20 61 62 6f 72 74 20 69 66 20 |.would abort if | 0000a9a0 61 20 64 69 64 20 6e 6f 74 20 65 71 75 61 6c 20 |a did not equal | 0000a9b0 62 2e 0a 0a 54 68 65 20 61 73 73 65 72 74 20 66 |b...The assert f| 0000a9c0 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 64 |unction can be d| 0000a9d0 69 73 61 62 6c 65 64 20 62 79 0a 69 6e 63 6c 75 |isabled by.inclu| 0000a9e0 64 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |ding the followi| 0000a9f0 6e 67 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 70 |ng line in the p| 0000aa00 72 6f 67 72 61 6d 0a 42 45 46 4f 52 45 20 79 6f |rogram.BEFORE yo| 0000aa10 75 20 3c 23 69 6e 63 6c 75 64 65 3d 3e 69 6e 63 |u <#include=>inc| 0000aa20 6c 75 64 65 3e 20 5c 3c 61 73 73 65 72 74 2e 68 |lude> \<assert.h| 0000aa30 5c 3e 2e 0a 20 20 20 20 3c 23 64 65 66 69 6e 65 |\>.. <#define| 0000aa40 3d 3e 64 65 66 69 6e 65 3e 20 4e 44 45 42 55 47 |=>define> NDEBUG| 0000aa50 44 41 54 41 d5 00 00 00 61 74 61 6e 0a 53 79 6e |DATA....atan.Syn| 0000aa60 74 61 78 3a 09 64 6f 75 62 6c 65 20 61 74 61 6e |tax:.double atan| 0000aa70 20 28 64 6f 75 62 6c 65 20 78 29 3b 0a 48 65 61 | (double x);.Hea| 0000aa80 64 65 72 3a 09 3c 6d 61 74 68 2e 68 3d 3e 6d 61 |der:.<math.h=>ma| 0000aa90 74 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |th>..Returns:.Th| 0000aaa0 65 20 61 72 63 20 74 61 6e 67 65 6e 74 20 6f 66 |e arc tangent of| 0000aab0 20 78 2c 20 69 6e 20 72 61 64 69 61 6e 73 2e 0a | x, in radians..| 0000aac0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0000aad0 61 6c 63 75 6c 61 74 65 73 20 74 68 65 20 70 72 |alculates the pr| 0000aae0 69 6e 63 69 70 61 6c 20 76 61 6c 75 65 20 6f 66 |incipal value of| 0000aaf0 20 74 68 65 20 61 72 63 20 74 61 6e 67 65 6e 74 | the arc tangent| 0000ab00 20 6f 66 20 78 2e 20 53 65 65 20 61 6c 73 6f 20 | of x. See also | 0000ab10 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 61 74 |the function <at| 0000ab20 61 6e 32 3e 2e 00 00 00 44 41 54 41 81 01 00 00 |an2>....DATA....| 0000ab30 61 74 61 6e 32 0a 53 79 6e 74 61 78 3a 09 64 6f |atan2.Syntax:.do| 0000ab40 75 62 6c 65 20 61 74 61 6e 32 20 28 64 6f 75 62 |uble atan2 (doub| 0000ab50 6c 65 20 78 2c 20 64 6f 75 62 6c 65 20 79 29 3b |le x, double y);| 0000ab60 0a 48 65 61 64 65 72 3a 09 3c 6d 61 74 68 2e 68 |.Header:.<math.h| 0000ab70 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 75 72 6e 73 |=>math>..Returns| 0000ab80 3a 09 54 68 65 20 61 72 63 20 74 61 6e 67 65 6e |:.The arc tangen| 0000ab90 74 20 6f 66 20 28 78 2f 79 29 2c 20 69 6e 20 72 |t of (x/y), in r| 0000aba0 61 64 69 61 6e 73 2e 0a 0a 54 68 69 73 20 66 75 |adians...This fu| 0000abb0 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 |nction calculate| 0000abc0 73 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c 20 |s the principal | 0000abd0 76 61 6c 75 65 20 6f 66 20 74 68 65 20 61 72 63 |value of the arc| 0000abe0 20 74 61 6e 67 65 6e 74 20 6f 66 20 28 78 2f 79 | tangent of (x/y| 0000abf0 29 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 |). The result is| 0000ac00 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 2d 70 | in the range -p| 0000ac10 69 20 74 6f 20 2b 70 69 2c 20 72 61 74 68 65 72 |i to +pi, rather| 0000ac20 20 74 68 61 6e 20 2d 28 70 69 2f 32 29 20 74 6f | than -(pi/2) to| 0000ac30 20 2b 28 70 69 2f 32 29 20 61 73 20 77 69 74 68 | +(pi/2) as with| 0000ac40 20 3c 61 74 61 6e 3e 2c 20 73 69 6e 63 65 20 74 | <atan>, since t| 0000ac50 68 65 20 73 69 67 6e 73 20 6f 66 20 74 68 65 20 |he signs of the | 0000ac60 61 72 67 75 6d 65 6e 74 73 20 63 61 6e 20 62 65 |arguments can be| 0000ac70 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69 | used to determi| 0000ac80 6e 65 20 74 68 65 20 71 75 61 64 72 61 6e 74 20 |ne the quadrant | 0000ac90 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 65 73 |in which the res| 0000aca0 75 6c 74 20 6c 69 65 73 2e 00 00 00 44 41 54 41 |ult lies....DATA| 0000acb0 26 01 00 00 61 74 65 78 69 74 0a 53 79 6e 74 61 |&...atexit.Synta| 0000acc0 78 3a 09 69 6e 74 20 61 74 65 78 69 74 20 28 76 |x:.int atexit (v| 0000acd0 6f 69 64 20 28 2a 66 75 6e 63 29 28 76 6f 69 64 |oid (*func)(void| 0000ace0 29 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |));.Header:.<std| 0000acf0 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a |lib.h=>stdlib>..| 0000ad00 52 65 74 75 72 6e 73 3a 09 5a 65 72 6f 20 69 66 |Returns:.Zero if| 0000ad10 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 75 | the function su| 0000ad20 63 63 65 65 64 73 2e 0a 0a 54 68 69 73 20 66 75 |cceeds...This fu| 0000ad30 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 73 |nction registers| 0000ad40 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 66 | the specified f| 0000ad50 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 63 61 |unction to be ca| 0000ad60 6c 6c 65 64 20 77 69 74 68 6f 75 74 20 61 72 67 |lled without arg| 0000ad70 75 6d 65 6e 74 73 20 77 68 65 6e 20 74 68 65 20 |uments when the | 0000ad80 70 72 6f 67 72 61 6d 20 74 65 72 6d 69 6e 61 74 |program terminat| 0000ad90 65 73 20 6e 6f 72 6d 61 6c 6c 79 2e 20 4d 6f 72 |es normally. Mor| 0000ada0 65 20 74 68 61 6e 20 6f 6e 65 20 66 75 6e 63 74 |e than one funct| 0000adb0 69 6f 6e 20 63 61 6e 20 62 65 20 72 65 67 69 73 |ion can be regis| 0000adc0 74 65 72 65 64 20 69 6e 20 74 68 69 73 20 77 61 |tered in this wa| 0000add0 79 2e 00 00 44 41 54 41 50 01 00 00 61 74 6f 66 |y...DATAP...atof| 0000ade0 0a 53 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 20 |.Syntax:.double | 0000adf0 61 74 6f 66 20 28 63 68 61 72 20 2a 73 74 72 29 |atof (char *str)| 0000ae00 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 6c 69 |;.Header:.<stdli| 0000ae10 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a 52 65 |b.h=>stdlib>..Re| 0000ae20 74 75 72 6e 73 3a 09 54 68 65 20 63 6f 6e 76 65 |turns:.The conve| 0000ae30 72 74 65 64 20 76 61 6c 75 65 2e 0a 0a 54 68 69 |rted value...Thi| 0000ae40 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 |s function conve| 0000ae50 72 74 73 20 74 68 65 20 73 74 61 72 74 20 6f 66 |rts the start of| 0000ae60 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 69 6e | the string poin| 0000ae70 74 65 64 20 74 6f 20 62 79 20 2f 73 74 72 2f 20 |ted to by /str/ | 0000ae80 74 6f 20 61 20 2f 64 6f 75 62 6c 65 2f 2e 20 49 |to a /double/. I| 0000ae90 66 20 74 68 65 20 73 74 72 69 6e 67 20 63 61 6e |f the string can| 0000aea0 6e 6f 74 20 62 65 20 63 6f 6e 76 65 72 74 65 64 |not be converted| 0000aeb0 2c 20 74 68 65 20 62 65 68 61 76 69 6f 75 72 20 |, the behaviour | 0000aec0 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 0a 0a 54 |is undefined...T| 0000aed0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 0000aee0 72 6f 75 67 68 6c 79 20 65 71 75 69 76 61 6c 65 |roughly equivale| 0000aef0 6e 74 20 74 6f 3a 0a 7b 61 6c 69 67 6e 20 63 65 |nt to:.{align ce| 0000af00 6e 74 72 65 7d 3c 73 74 72 74 6f 64 3e 20 28 73 |ntre}<strtod> (s| 0000af10 74 72 2c 20 28 63 68 61 72 20 2a 2a 29 20 4e 55 |tr, (char **) NU| 0000af20 4c 4c 29 3b 44 41 54 41 51 01 00 00 61 74 6f 69 |LL);DATAQ...atoi| 0000af30 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 61 74 6f |.Syntax:.int ato| 0000af40 69 20 28 63 68 61 72 20 2a 73 74 72 29 3b 0a 48 |i (char *str);.H| 0000af50 65 61 64 65 72 3a 09 3c 73 74 64 6c 69 62 2e 68 |eader:.<stdlib.h| 0000af60 3d 3e 73 74 64 6c 69 62 3e 0a 0a 52 65 74 75 72 |=>stdlib>..Retur| 0000af70 6e 73 3a 09 54 68 65 20 63 6f 6e 76 65 72 74 65 |ns:.The converte| 0000af80 64 20 76 61 6c 75 65 2e 0a 0a 54 68 69 73 20 66 |d value...This f| 0000af90 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 73 |unction converts| 0000afa0 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 | the start of th| 0000afb0 65 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 |e string pointed| 0000afc0 20 74 6f 20 62 79 20 2f 73 74 72 2f 20 74 6f 20 | to by /str/ to | 0000afd0 61 6e 20 2f 69 6e 74 2f 2e 20 49 66 20 74 68 65 |an /int/. If the| 0000afe0 20 73 74 72 69 6e 67 20 63 61 6e 6e 6f 74 20 62 | string cannot b| 0000aff0 65 20 63 6f 6e 76 65 72 74 65 64 2c 20 74 68 65 |e converted, the| 0000b000 20 62 65 68 61 76 69 6f 75 72 20 69 73 20 75 6e | behaviour is un| 0000b010 64 65 66 69 6e 65 64 2e 0a 0a 54 68 69 73 20 66 |defined...This f| 0000b020 75 6e 63 74 69 6f 6e 20 69 73 20 72 6f 75 67 68 |unction is rough| 0000b030 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f |ly equivalent to| 0000b040 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d |:.{align centre}| 0000b050 28 69 6e 74 29 20 3c 73 74 72 74 6f 6c 3e 20 28 |(int) <strtol> (| 0000b060 73 74 72 2c 20 28 63 68 61 72 20 2a 2a 29 20 4e |str, (char **) N| 0000b070 55 4c 4c 29 3b 00 00 00 44 41 54 41 54 01 00 00 |ULL);...DATAT...| 0000b080 61 74 6f 6c 0a 53 79 6e 74 61 78 3a 09 6c 6f 6e |atol.Syntax:.lon| 0000b090 67 20 69 6e 74 20 61 74 6f 6c 20 28 63 68 61 72 |g int atol (char| 0000b0a0 20 2a 73 74 72 29 3b 0a 48 65 61 64 65 72 3a 09 | *str);.Header:.| 0000b0b0 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 |<stdlib.h=>stdli| 0000b0c0 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 |b>..Returns:.The| 0000b0d0 20 63 6f 6e 76 65 72 74 65 64 20 76 61 6c 75 65 | converted value| 0000b0e0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0000b0f0 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 73 74 | converts the st| 0000b100 61 72 74 20 6f 66 20 74 68 65 20 73 74 72 69 6e |art of the strin| 0000b110 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |g pointed to by | 0000b120 2f 73 74 72 2f 20 74 6f 20 61 20 2f 6c 6f 6e 67 |/str/ to a /long| 0000b130 20 69 6e 74 2f 2e 20 49 66 20 74 68 65 20 73 74 | int/. If the st| 0000b140 72 69 6e 67 20 63 61 6e 6e 6f 74 20 62 65 20 63 |ring cannot be c| 0000b150 6f 6e 76 65 72 74 65 64 2c 20 74 68 65 20 62 65 |onverted, the be| 0000b160 68 61 76 69 6f 75 72 20 69 73 20 75 6e 64 65 66 |haviour is undef| 0000b170 69 6e 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |ined...This func| 0000b180 74 69 6f 6e 20 69 73 20 72 6f 75 67 68 6c 79 20 |tion is roughly | 0000b190 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 3a 0a 7b |equivalent to:.{| 0000b1a0 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 73 74 |align centre}<st| 0000b1b0 72 74 6f 6c 3e 20 28 73 74 72 2c 20 28 63 68 61 |rtol> (str, (cha| 0000b1c0 72 20 2a 2a 29 20 4e 55 4c 4c 29 3b 44 49 52 24 |r **) NULL);DIR$| 0000b1d0 8c 00 00 00 8c 00 00 00 58 b2 00 00 46 fd ff ff |........X...F...| 0000b1e0 d3 58 ee 22 63 04 00 00 13 00 00 00 00 00 00 00 |.X."c...........| 0000b1f0 6d 61 63 72 6f 73 5f 00 bc b6 00 00 46 ff ff ff |macros_.....F...| 0000b200 76 6c ee 22 e0 00 00 00 13 00 00 00 00 00 00 00 |vl."............| 0000b210 70 6f 6c 6c 63 74 6c 00 9c b7 00 00 46 ff ff ff |pollctl.....F...| 0000b220 18 a3 ee 22 e1 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0000b230 70 6f 6c 6c 6b 65 79 00 80 b8 00 00 46 ff ff ff |pollkey.....F...| 0000b240 fa aa ee 22 ed 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0000b250 70 6f 6c 6c 73 68 00 00 44 41 54 41 63 04 00 00 |pollsh..DATAc...| 0000b260 61 6b 62 64 2e 68 20 4d 61 63 72 6f 73 0a 54 68 |akbd.h Macros.Th| 0000b270 65 73 65 20 6d 61 63 72 6f 73 20 61 72 65 20 61 |ese macros are a| 0000b280 6c 6c 20 64 65 66 69 6e 65 64 20 73 6f 20 74 68 |ll defined so th| 0000b290 61 74 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 |at you can use t| 0000b2a0 68 65 6d 20 74 6f 20 72 65 66 65 72 20 74 6f 20 |hem to refer to | 0000b2b0 74 68 65 20 6b 65 79 20 6e 75 6d 62 65 72 73 20 |the key numbers | 0000b2c0 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 |returned by the | 0000b2d0 57 69 6d 70 2e 20 54 68 65 79 20 61 72 65 20 61 |Wimp. They are a| 0000b2e0 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 61 6b 62 64 |s follows:..akbd| 0000b2f0 5f 46 6e 09 42 61 73 65 20 76 61 6c 75 65 73 20 |_Fn.Base values | 0000b300 66 6f 72 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 |for function key| 0000b310 73 20 46 31 2d 46 39 20 69 65 20 46 31 20 72 65 |s F1-F9 ie F1 re| 0000b320 74 75 72 6e 73 20 28 61 6b 62 64 5f 46 6e 2b 31 |turns (akbd_Fn+1| 0000b330 29 0a 61 6b 62 64 5f 53 68 09 56 61 6c 75 65 20 |).akbd_Sh.Value | 0000b340 74 6f 20 61 64 64 20 69 66 20 53 68 69 66 74 20 |to add if Shift | 0000b350 69 73 20 70 72 65 73 73 65 64 2e 20 69 65 20 53 |is pressed. ie S| 0000b360 68 69 66 74 2d 46 31 20 72 65 74 75 72 6e 73 20 |hift-F1 returns | 0000b370 28 61 6b 62 64 5f 46 6e 2b 61 6b 62 64 5f 53 68 |(akbd_Fn+akbd_Sh| 0000b380 2b 31 29 2e 0a 61 6b 62 64 5f 43 74 6c 09 56 61 |+1)..akbd_Ctl.Va| 0000b390 6c 75 65 20 74 6f 20 61 64 64 20 69 66 20 43 74 |lue to add if Ct| 0000b3a0 72 6c 20 69 73 20 70 72 65 73 73 65 64 20 69 65 |rl is pressed ie| 0000b3b0 20 43 74 72 6c 2d 53 68 69 66 74 2d 46 31 20 72 | Ctrl-Shift-F1 r| 0000b3c0 65 74 75 72 6e 73 20 28 61 6b 62 64 5f 46 6e 2b |eturns (akbd_Fn+| 0000b3d0 61 6b 62 64 5f 53 68 2b 61 6b 62 64 5f 43 74 72 |akbd_Sh+akbd_Ctr| 0000b3e0 6c 2b 31 29 2e 0a 61 6b 62 64 5f 54 61 62 4b 09 |l+1)..akbd_TabK.| 0000b3f0 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62 |Value returned b| 0000b400 79 20 54 61 62 20 6b 65 79 2e 0a 61 6b 62 64 5f |y Tab key..akbd_| 0000b410 43 6f 70 79 4b 09 56 61 6c 75 65 20 72 65 74 75 |CopyK.Value retu| 0000b420 72 6e 65 64 20 62 79 20 43 6f 70 79 20 6b 65 79 |rned by Copy key| 0000b430 2e 0a 61 6b 62 64 5f 4c 65 66 74 4b 09 56 61 6c |..akbd_LeftK.Val| 0000b440 75 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 6c |ue returned by l| 0000b450 65 66 74 20 61 72 72 6f 77 2e 0a 61 6b 62 64 5f |eft arrow..akbd_| 0000b460 52 69 67 68 74 4b 09 56 61 6c 75 65 20 72 65 74 |RightK.Value ret| 0000b470 75 72 6e 65 64 20 62 79 20 72 69 67 68 74 20 61 |urned by right a| 0000b480 72 72 6f 77 2e 0a 61 6b 62 64 5f 44 6f 77 6e 4b |rrow..akbd_DownK| 0000b490 09 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 |.Value returned | 0000b4a0 62 79 20 64 6f 77 6e 20 61 72 72 6f 77 2e 0a 61 |by down arrow..a| 0000b4b0 6b 62 64 5f 55 70 4b 09 56 61 6c 75 65 20 72 65 |kbd_UpK.Value re| 0000b4c0 74 75 72 6e 65 64 20 62 79 20 75 70 20 61 72 72 |turned by up arr| 0000b4d0 6f 77 2e 0a 61 6b 62 64 5f 46 6e 31 30 09 56 61 |ow..akbd_Fn10.Va| 0000b4e0 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 |lue returned by | 0000b4f0 46 31 30 2e 0a 61 6b 62 64 5f 46 6e 31 31 09 56 |F10..akbd_Fn11.V| 0000b500 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62 79 |alue returned by| 0000b510 20 46 31 31 2e 0a 61 6b 62 64 5f 46 6e 31 32 09 | F11..akbd_Fn12.| 0000b520 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62 |Value returned b| 0000b530 79 20 46 31 32 2e 0a 61 6b 62 64 5f 49 6e 73 65 |y F12..akbd_Inse| 0000b540 72 74 4b 09 56 61 6c 75 65 20 72 65 74 75 72 6e |rtK.Value return| 0000b550 65 64 20 62 79 20 49 6e 73 65 72 74 2e 0a 61 6b |ed by Insert..ak| 0000b560 62 64 5f 50 72 69 6e 74 4b 09 56 61 6c 75 65 20 |bd_PrintK.Value | 0000b570 72 65 74 75 72 6e 65 64 20 62 79 20 50 72 69 6e |returned by Prin| 0000b580 74 2e 0a 61 6b 62 64 5f 50 61 67 65 55 70 4b 09 |t..akbd_PageUpK.| 0000b590 56 61 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62 |Value returned b| 0000b5a0 79 20 50 61 67 65 55 70 2e 0a 61 6b 62 64 5f 50 |y PageUp..akbd_P| 0000b5b0 61 67 65 44 6f 77 6e 4b 09 56 61 6c 75 65 20 72 |ageDownK.Value r| 0000b5c0 65 74 75 72 6e 65 64 20 62 79 20 50 61 67 65 44 |eturned by PageD| 0000b5d0 6f 77 6e 2e 0a 0a 54 68 65 20 6d 6f 64 69 66 69 |own...The modifi| 0000b5e0 65 72 73 20 7b 2f 7d 61 6b 62 64 5f 53 68 7b 2f |ers {/}akbd_Sh{/| 0000b5f0 7d 20 61 6e 64 20 7b 2f 7d 61 6b 62 64 5f 43 74 |} and {/}akbd_Ct| 0000b600 6c 7b 2f 7d 20 63 61 6e 20 62 65 20 75 73 65 64 |l{/} can be used| 0000b610 20 69 64 65 6e 74 69 63 61 6c 6c 79 20 77 69 74 | identically wit| 0000b620 68 20 61 6c 6c 20 65 78 63 65 70 74 20 50 61 67 |h all except Pag| 0000b630 65 55 70 20 61 6e 64 20 50 61 67 65 44 6f 77 6e |eUp and PageDown| 0000b640 2e 20 54 68 65 73 65 20 72 65 74 75 72 6e 20 74 |. These return t| 0000b650 68 65 20 73 61 6d 65 20 76 61 6c 75 65 73 20 61 |he same values a| 0000b660 73 20 74 68 65 20 75 70 20 61 6e 64 20 64 6f 77 |s the up and dow| 0000b670 6e 20 61 72 72 6f 77 73 2c 20 65 78 63 65 70 74 |n arrows, except| 0000b680 20 74 68 65 20 53 68 69 66 74 20 61 63 74 69 6f | the Shift actio| 0000b690 6e 20 69 73 20 72 65 76 65 72 73 65 64 20 69 65 |n is reversed ie| 0000b6a0 20 53 68 69 66 74 2d 50 61 67 65 44 6f 77 6e 3d | Shift-PageDown=| 0000b6b0 44 6f 77 6e 20 61 72 72 6f 77 2e 00 44 41 54 41 |Down arrow..DATA| 0000b6c0 e0 00 00 00 61 6b 62 64 5f 70 6f 6c 6c 63 74 6c |....akbd_pollctl| 0000b6d0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 61 6b 62 |.Syntax:.int akb| 0000b6e0 64 5f 70 6f 6c 6c 63 74 6c 20 28 76 6f 69 64 29 |d_pollctl (void)| 0000b6f0 3b 0a 48 65 61 64 65 72 3a 09 3c 61 6b 62 64 2e |;.Header:.<akbd.| 0000b700 68 3d 3e 61 6b 62 64 3e 0a 0a 52 65 74 75 72 6e |h=>akbd>..Return| 0000b710 73 3a 09 31 20 69 66 20 43 6f 6e 74 72 6f 6c 20 |s:.1 if Control | 0000b720 69 73 20 68 65 6c 64 20 64 6f 77 6e 2c 20 65 6c |is held down, el| 0000b730 73 65 20 30 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |se 0...This func| 0000b740 74 69 6f 6e 20 74 65 73 74 73 20 74 6f 20 73 65 |tion tests to se| 0000b750 65 20 69 66 20 74 68 65 20 43 6f 6e 74 72 6f 6c |e if the Control| 0000b760 20 6b 65 79 20 69 73 20 62 65 69 6e 67 20 68 65 | key is being he| 0000b770 6c 64 20 64 6f 77 6e 2e 20 49 74 20 75 73 65 73 |ld down. It uses| 0000b780 20 3c 4f 53 5f 42 79 74 65 3d 3e 53 57 49 3a 4f | <OS_Byte=>SWI:O| 0000b790 53 5f 42 79 74 65 3e 20 31 32 39 2e 44 41 54 41 |S_Byte> 129.DATA| 0000b7a0 e1 00 00 00 61 6b 62 64 5f 70 6f 6c 6c 6b 65 79 |....akbd_pollkey| 0000b7b0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 61 6b 62 |.Syntax:.int akb| 0000b7c0 64 5f 70 6f 6c 6c 6b 65 79 20 28 69 6e 74 20 2a |d_pollkey (int *| 0000b7d0 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 61 6b 62 |c);.Header:.<akb| 0000b7e0 64 2e 68 3d 3e 61 6b 62 64 3e 0a 0a 52 65 74 75 |d.h=>akbd>..Retu| 0000b7f0 72 6e 73 3a 09 31 20 69 66 20 75 73 65 72 20 68 |rns:.1 if user h| 0000b800 61 73 20 74 79 70 65 64 20 61 68 65 61 64 2e 0a |as typed ahead..| 0000b810 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 0000b820 65 61 64 73 20 74 68 65 20 6b 65 79 62 6f 61 72 |eads the keyboar| 0000b830 64 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 |d and returns th| 0000b840 65 20 41 53 43 49 49 20 76 61 6c 75 65 20 6f 66 |e ASCII value of| 0000b850 20 74 68 65 20 6b 65 79 20 72 65 61 64 20 69 6e | the key read in| 0000b860 20 74 68 65 20 2f 69 6e 74 2f 20 70 6f 69 6e 74 | the /int/ point| 0000b870 65 64 20 74 6f 20 62 79 20 2f 63 2f 2e 00 00 00 |ed to by /c/....| 0000b880 44 41 54 41 ed 00 00 00 61 6b 62 64 5f 70 6f 6c |DATA....akbd_pol| 0000b890 6c 73 68 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |lsh.Syntax:.int | 0000b8a0 61 6b 62 64 5f 70 6f 6c 6c 73 68 20 28 76 6f 69 |akbd_pollsh (voi| 0000b8b0 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 61 6b 62 |d);.Header:.<akb| 0000b8c0 64 2e 68 3d 3e 61 6b 62 64 3e 0a 0a 52 65 74 75 |d.h=>akbd>..Retu| 0000b8d0 72 6e 73 3a 09 31 20 69 66 20 53 68 69 66 74 20 |rns:.1 if Shift | 0000b8e0 69 73 20 68 65 6c 64 20 64 6f 77 6e 2c 20 65 6c |is held down, el| 0000b8f0 73 65 20 30 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |se 0...This func| 0000b900 74 69 6f 6e 20 74 65 73 74 73 20 74 6f 20 73 65 |tion tests to se| 0000b910 65 20 69 66 20 74 68 65 20 53 68 69 66 74 20 6b |e if the Shift k| 0000b920 65 79 20 69 73 20 62 65 69 6e 67 20 68 65 6c 64 |ey is being held| 0000b930 20 64 6f 77 6e 2e 20 49 74 20 75 73 65 73 20 74 | down. It uses t| 0000b940 68 65 20 53 57 49 20 3c 4f 53 5f 42 79 74 65 3d |he SWI <OS_Byte=| 0000b950 3e 53 57 49 3a 4f 53 5f 42 79 74 65 3e 20 31 32 |>SWI:OS_Byte> 12| 0000b960 39 20 74 6f 20 64 6f 20 74 68 69 73 2e 00 00 00 |9 to do this....| 0000b970 44 49 52 24 5c 01 00 00 5c 01 00 00 cc ba 00 00 |DIR$\...\.......| 0000b980 46 ff ff ff 65 2d ef 22 d5 00 00 00 13 00 00 00 |F...e-."........| 0000b990 00 00 00 00 61 6e 79 70 65 6e 64 69 6e 67 00 00 |....anypending..| 0000b9a0 a4 bb 00 00 46 ff ff ff 65 40 ef 22 04 01 00 00 |....F...e@."....| 0000b9b0 13 00 00 00 00 00 00 00 63 61 6c 6c 6e 65 78 74 |........callnext| 0000b9c0 00 00 00 00 a8 bc 00 00 46 ff ff ff cc 51 ef 22 |........F....Q."| 0000b9d0 51 01 00 00 13 00 00 00 00 00 00 00 68 61 6e 64 |Q...........hand| 0000b9e0 6c 65 72 00 fc bd 00 00 46 ff ff ff f2 f3 ee 22 |ler.....F......"| 0000b9f0 bf 00 00 00 13 00 00 00 00 00 00 00 69 6e 69 74 |............init| 0000ba00 00 00 00 00 bc be 00 00 46 ff ff ff 70 39 ef 22 |........F...p9."| 0000ba10 e9 00 00 00 13 00 00 00 00 00 00 00 6e 65 78 74 |............next| 0000ba20 00 00 00 00 a8 bf 00 00 46 ff ff ff 08 26 ef 22 |........F....&."| 0000ba30 e6 00 00 00 13 00 00 00 00 00 00 00 72 65 6d 6f |............remo| 0000ba40 76 65 00 00 90 c0 00 00 46 ff ff ff b8 29 ef 22 |ve......F....)."| 0000ba50 9c 00 00 00 13 00 00 00 00 00 00 00 72 65 6d 6f |............remo| 0000ba60 76 65 61 6c 6c 00 00 00 2c c1 00 00 46 ff ff ff |veall...,...F...| 0000ba70 8f 18 ef 22 4c 02 00 00 13 00 00 00 00 00 00 00 |..."L...........| 0000ba80 73 65 74 00 78 c3 00 00 46 ff ff ff 3b 02 ef 22 |set.x...F...;.."| 0000ba90 f6 00 00 00 13 00 00 00 00 00 00 00 74 69 6d 65 |............time| 0000baa0 64 69 66 66 65 72 65 6e 63 65 00 00 70 c4 00 00 |difference..p...| 0000bab0 46 ff ff ff 73 fa ee 22 f1 00 00 00 13 00 00 00 |F...s.."........| 0000bac0 00 00 00 00 74 69 6d 65 6e 6f 77 00 44 41 54 41 |....timenow.DATA| 0000bad0 d5 00 00 00 61 6c 61 72 6d 5f 61 6e 79 70 65 6e |....alarm_anypen| 0000bae0 64 69 6e 67 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |ding.Syntax:.<BO| 0000baf0 4f 4c 3e 20 61 6c 61 72 6d 5f 61 6e 79 70 65 6e |OL> alarm_anypen| 0000bb00 64 69 6e 67 20 28 76 6f 69 64 20 2a 68 61 6e 64 |ding (void *hand| 0000bb10 6c 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 61 6c |le);.Header:.<al| 0000bb20 61 72 6d 2e 68 3d 3e 61 6c 61 72 6d 3e 0a 0a 52 |arm.h=>alarm>..R| 0000bb30 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 |eturns:.<TRUE> i| 0000bb40 66 20 74 68 65 20 61 72 65 20 70 65 6e 64 69 6e |f the are pendin| 0000bb50 67 20 61 6c 61 72 6d 73 2e 0a 0a 54 68 69 73 20 |g alarms...This | 0000bb60 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 0000bb70 20 77 68 65 74 68 65 72 20 61 6e 20 61 6c 61 72 | whether an alar| 0000bb80 6d 20 69 73 20 70 65 6e 64 69 6e 67 20 77 69 74 |m is pending wit| 0000bb90 68 20 61 20 67 69 76 65 6e 20 68 61 6e 64 6c 65 |h a given handle| 0000bba0 2e 00 00 00 44 41 54 41 04 01 00 00 61 6c 61 72 |....DATA....alar| 0000bbb0 6d 5f 63 61 6c 6c 6e 65 78 74 0a 53 79 6e 74 61 |m_callnext.Synta| 0000bbc0 78 3a 09 76 6f 69 64 20 61 6c 61 72 6d 5f 63 61 |x:.void alarm_ca| 0000bbd0 6c 6c 6e 65 78 74 20 28 76 6f 69 64 29 3b 0a 48 |llnext (void);.H| 0000bbe0 65 61 64 65 72 3a 09 3c 61 6c 61 72 6d 2e 68 3d |eader:.<alarm.h=| 0000bbf0 3e 61 6c 61 72 6d 3e 0a 0a 54 68 69 73 20 66 75 |>alarm>..This fu| 0000bc00 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 68 65 |nction calls the| 0000bc10 20 6e 65 78 74 20 61 6c 61 72 6d 20 68 61 6e 64 | next alarm hand| 0000bc20 6c 65 72 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 |ler function. Th| 0000bc30 69 73 20 69 73 20 64 6f 6e 65 20 66 6f 72 20 79 |is is done for y| 0000bc40 6f 75 20 69 66 20 79 6f 75 20 75 73 65 20 3c 65 |ou if you use <e| 0000bc50 76 65 6e 74 5f 70 72 6f 63 65 73 73 3d 3e 65 76 |vent_process=>ev| 0000bc60 65 6e 74 5f 70 72 6f 63 65 73 73 5f 3e 20 74 6f |ent_process_> to| 0000bc70 20 64 6f 20 79 6f 75 72 20 70 6f 6c 6c 69 6e 67 | do your polling| 0000bc80 20 28 6f 72 20 65 76 65 6e 20 69 66 20 79 6f 75 | (or even if you| 0000bc90 20 75 73 65 20 3c 77 69 6d 70 74 3e 20 66 75 6e | use <wimpt> fun| 0000bca0 63 74 69 6f 6e 73 29 2e 44 41 54 41 51 01 00 00 |ctions).DATAQ...| 0000bcb0 61 6c 61 72 6d 5f 68 61 6e 64 6c 65 72 0a 54 68 |alarm_handler.Th| 0000bcc0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0000bcd0 65 64 20 69 6e 20 3c 61 6c 61 72 6d 2e 68 3d 3e |ed in <alarm.h=>| 0000bce0 61 6c 61 72 6d 3e 2e 20 49 74 20 69 73 20 61 20 |alarm>. It is a | 0000bcf0 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 69 |function which i| 0000bd00 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 6e |s called when an| 0000bd10 20 61 6c 61 72 6d 20 6f 63 63 75 72 73 2e 20 59 | alarm occurs. Y| 0000bd20 6f 75 72 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f |our function sho| 0000bd30 75 6c 64 20 68 61 76 65 20 74 68 65 20 64 65 66 |uld have the def| 0000bd40 69 6e 69 74 69 6f 6e 3a 0a 0a 7b 66 43 6f 64 65 |inition:..{fCode| 0000bd50 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 76 6f |;align centre}vo| 0000bd60 69 64 20 6d 79 66 75 6e 63 20 28 69 6e 74 20 63 |id myfunc (int c| 0000bd70 61 6c 6c 65 64 5f 61 74 2c 20 76 6f 69 64 20 2a |alled_at, void *| 0000bd80 68 61 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 6e |handle);{f;align| 0000bd90 7d 0a 0a 7b 2f 7d 63 61 6c 6c 65 64 5f 61 74 7b |}..{/}called_at{| 0000bda0 2f 7d 20 69 73 20 74 68 65 20 74 69 6d 65 20 61 |/} is the time a| 0000bdb0 74 20 77 68 69 63 68 20 79 6f 75 20 61 72 65 20 |t which you are | 0000bdc0 63 61 6c 6c 65 64 2c 20 61 6e 64 20 2f 68 61 6e |called, and /han| 0000bdd0 64 6c 65 2f 20 69 73 20 74 68 65 20 68 61 6e 64 |dle/ is the hand| 0000bde0 6c 65 20 70 61 73 73 65 64 20 74 6f 20 3c 61 6c |le passed to <al| 0000bdf0 61 72 6d 5f 73 65 74 3e 2e 00 00 00 44 41 54 41 |arm_set>....DATA| 0000be00 bf 00 00 00 61 6c 61 72 6d 5f 69 6e 69 74 0a 53 |....alarm_init.S| 0000be10 79 6e 74 61 78 3a 09 76 6f 69 64 20 61 6c 61 72 |yntax:.void alar| 0000be20 6d 5f 69 6e 69 74 20 28 76 6f 69 64 29 3b 0a 48 |m_init (void);.H| 0000be30 65 61 64 65 72 3a 09 3c 61 6c 61 72 6d 2e 68 3d |eader:.<alarm.h=| 0000be40 3e 61 6c 61 72 6d 3e 0a 0a 54 68 69 73 20 66 75 |>alarm>..This fu| 0000be50 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 73 |nction initialis| 0000be60 65 73 20 74 68 65 20 61 6c 61 72 6d 20 73 79 73 |es the alarm sys| 0000be70 74 65 6d 2e 20 49 66 20 74 68 69 73 20 63 61 6c |tem. If this cal| 0000be80 6c 20 69 73 20 6d 61 64 65 20 6d 6f 72 65 20 74 |l is made more t| 0000be90 68 61 6e 20 6f 6e 63 65 2c 20 61 6e 79 20 70 65 |han once, any pe| 0000bea0 6e 64 69 6e 67 20 61 6c 61 72 6d 73 20 61 72 65 |nding alarms are| 0000beb0 20 63 61 6e 63 65 6c 6c 65 64 2e 00 44 41 54 41 | cancelled..DATA| 0000bec0 e9 00 00 00 61 6c 61 72 6d 5f 6e 65 78 74 0a 53 |....alarm_next.S| 0000bed0 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 61 6c |yntax:.<BOOL> al| 0000bee0 61 72 6d 5f 6e 65 78 74 20 28 69 6e 74 20 2a 72 |arm_next (int *r| 0000bef0 65 73 75 6c 74 29 3b 0a 48 65 61 64 65 72 3a 09 |esult);.Header:.| 0000bf00 3c 61 6c 61 72 6d 2e 68 3d 3e 61 6c 61 72 6d 3e |<alarm.h=>alarm>| 0000bf10 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 |..Returns:.<TRUE| 0000bf20 3e 20 69 66 20 61 6c 61 72 6d 20 69 73 20 70 65 |> if alarm is pe| 0000bf30 6e 64 69 6e 67 2e 0a 0a 54 68 69 73 20 66 75 6e |nding...This fun| 0000bf40 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 73 20 79 6f |ction informs yo| 0000bf50 75 20 77 68 65 74 68 65 72 20 61 6e 20 61 6c 61 |u whether an ala| 0000bf60 72 6d 20 69 73 20 70 65 6e 64 69 6e 67 20 61 6e |rm is pending an| 0000bf70 64 2c 20 69 66 20 73 6f 2c 20 66 6f 72 20 77 68 |d, if so, for wh| 0000bf80 65 6e 20 69 74 20 69 73 20 28 72 65 74 75 72 6e |en it is (return| 0000bf90 65 64 20 69 6e 20 7b 2f 7d 2a 72 65 73 75 6c 74 |ed in {/}*result| 0000bfa0 7b 2f 7d 29 2e 00 00 00 44 41 54 41 e6 00 00 00 |{/})....DATA....| 0000bfb0 61 6c 61 72 6d 5f 72 65 6d 6f 76 65 0a 53 79 6e |alarm_remove.Syn| 0000bfc0 74 61 78 3a 09 76 6f 69 64 20 61 6c 61 72 6d 5f |tax:.void alarm_| 0000bfd0 72 65 6d 6f 76 65 20 28 69 6e 74 20 61 74 2c 20 |remove (int at, | 0000bfe0 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b 0a 48 |void *handle);.H| 0000bff0 65 61 64 65 72 3a 09 3c 61 6c 61 72 6d 2e 68 3d |eader:.<alarm.h=| 0000c000 3e 61 6c 61 72 6d 3e 0a 0a 54 68 69 73 20 66 75 |>alarm>..This fu| 0000c010 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 61 |nction removes a| 0000c020 6e 20 61 6c 61 72 6d 20 77 68 69 63 68 20 77 61 |n alarm which wa| 0000c030 73 20 73 65 74 20 66 6f 72 20 74 69 6d 65 20 2f |s set for time /| 0000c040 61 74 2f 20 77 69 74 68 20 74 68 65 20 67 69 76 |at/ with the giv| 0000c050 65 6e 20 68 61 6e 64 6c 65 2e 20 49 66 20 6e 6f |en handle. If no| 0000c060 20 73 75 63 68 20 61 6c 61 72 6d 20 65 78 69 73 | such alarm exis| 0000c070 74 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |ts this function| 0000c080 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 00 00 | does nothing...| 0000c090 44 41 54 41 9c 00 00 00 61 6c 61 72 6d 5f 72 65 |DATA....alarm_re| 0000c0a0 6d 6f 76 65 61 6c 6c 0a 53 79 6e 74 61 78 3a 09 |moveall.Syntax:.| 0000c0b0 76 6f 69 64 20 61 6c 61 72 6d 5f 72 65 6d 6f 76 |void alarm_remov| 0000c0c0 65 61 6c 6c 20 28 76 6f 69 64 20 2a 68 61 6e 64 |eall (void *hand| 0000c0d0 6c 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 61 6c |le);.Header:.<al| 0000c0e0 61 72 6d 2e 68 3d 3e 61 6c 61 72 6d 3e 0a 0a 54 |arm.h=>alarm>..T| 0000c0f0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d |his function rem| 0000c100 6f 76 65 73 20 61 6c 6c 20 61 6c 61 72 6d 73 20 |oves all alarms | 0000c110 77 68 69 63 68 20 68 61 76 65 20 74 68 65 20 67 |which have the g| 0000c120 69 76 65 6e 20 68 61 6e 64 6c 65 2e 44 41 54 41 |iven handle.DATA| 0000c130 4c 02 00 00 61 6c 61 72 6d 5f 73 65 74 0a 53 79 |L...alarm_set.Sy| 0000c140 6e 74 61 78 3a 09 76 6f 69 64 20 61 6c 61 72 6d |ntax:.void alarm| 0000c150 5f 73 65 74 20 28 69 6e 74 20 61 74 2c 20 3c 61 |_set (int at, <a| 0000c160 6c 61 72 6d 5f 68 61 6e 64 6c 65 72 3e 20 70 72 |larm_handler> pr| 0000c170 6f 63 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 |oc, void *handle| 0000c180 29 3b 0a 48 65 61 64 65 72 3a 09 3c 61 6c 61 72 |);.Header:.<alar| 0000c190 6d 2e 68 3d 3e 61 6c 61 72 6d 3e 0a 0a 54 68 69 |m.h=>alarm>..Thi| 0000c1a0 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 |s function sets | 0000c1b0 61 6e 20 61 6c 61 72 6d 20 61 74 20 74 68 65 20 |an alarm at the | 0000c1c0 67 69 76 65 6e 20 74 69 6d 65 2e 20 2f 61 74 2f |given time. /at/| 0000c1d0 20 69 73 20 74 68 65 20 6d 6f 6e 6f 74 6f 6e 69 | is the monotoni| 0000c1e0 63 20 74 69 6d 65 20 61 74 20 77 68 69 63 68 20 |c time at which | 0000c1f0 74 68 65 20 61 6c 61 72 6d 20 73 68 6f 75 6c 64 |the alarm should| 0000c200 20 6f 63 63 75 72 2e 20 2f 70 72 6f 63 2f 20 69 | occur. /proc/ i| 0000c210 73 20 79 6f 75 72 20 66 75 6e 63 74 69 6f 6e 20 |s your function | 0000c220 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 61 74 20 |to be called at | 0000c230 61 6c 61 72 6d 20 74 69 6d 65 20 61 6e 64 20 2f |alarm time and /| 0000c240 68 61 6e 64 6c 65 2f 20 69 73 20 70 61 73 73 65 |handle/ is passe| 0000c250 64 20 64 69 72 65 63 74 20 74 6f 20 74 68 61 74 |d direct to that| 0000c260 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 65 20 73 | function. The s| 0000c270 75 70 70 6c 69 65 64 20 66 75 6e 63 74 69 6f 6e |upplied function| 0000c280 20 69 73 20 70 61 73 73 65 64 20 74 68 65 20 74 | is passed the t| 0000c290 69 6d 65 20 61 74 20 77 68 69 63 68 20 69 74 20 |ime at which it | 0000c2a0 77 61 73 20 63 61 6c 6c 65 64 2e 20 49 66 20 79 |was called. If y| 0000c2b0 6f 75 20 68 61 76 65 20 65 6e 61 62 6c 65 64 20 |ou have enabled | 0000c2c0 69 64 6c 65 20 65 76 65 6e 74 73 2c 20 74 68 65 |idle events, the| 0000c2d0 6e 20 74 68 65 73 65 20 61 72 65 20 73 74 69 6c |n these are stil| 0000c2e0 6c 20 72 65 74 75 72 6e 65 64 20 74 6f 20 79 6f |l returned to yo| 0000c2f0 75 3b 20 69 66 20 6e 6f 74 2c 20 52 49 53 43 5f |u; if not, RISC_| 0000c300 4f 53 4c 69 62 20 75 73 65 73 20 69 64 6c 65 20 |OSLib uses idle | 0000c310 65 76 65 6e 74 73 20 69 6e 74 65 72 6e 61 6c 6c |events internall| 0000c320 79 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 |y to implement a| 0000c330 6c 61 72 6d 20 63 61 6c 6c 73 20 28 75 73 69 6e |larm calls (usin| 0000c340 67 20 6e 6f 6e 2d 62 75 73 79 20 77 61 69 74 69 |g non-busy waiti| 0000c350 6e 67 20 76 69 61 20 3c 77 69 6d 70 5f 70 6f 6c |ng via <wimp_pol| 0000c360 6c 69 64 6c 65 3d 3e 77 69 6d 70 5f 70 6f 6c 6c |lidle=>wimp_poll| 0000c370 69 64 6c 65 5f 3e 29 2e 44 41 54 41 f6 00 00 00 |idle_>).DATA....| 0000c380 61 6c 61 72 6d 5f 74 69 6d 65 64 69 66 66 65 72 |alarm_timediffer| 0000c390 65 6e 63 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |ence.Syntax:.int| 0000c3a0 20 61 6c 61 72 6d 5f 74 69 6d 65 64 69 66 66 65 | alarm_timediffe| 0000c3b0 72 65 6e 63 65 20 28 69 6e 74 20 74 31 2c 20 69 |rence (int t1, i| 0000c3c0 6e 74 20 74 32 29 3b 0a 48 65 61 64 65 72 3a 09 |nt t2);.Header:.| 0000c3d0 3c 61 6c 61 72 6d 2e 68 3d 3e 61 6c 61 72 6d 3e |<alarm.h=>alarm>| 0000c3e0 0a 0a 52 65 74 75 72 6e 73 3a 09 44 69 66 66 65 |..Returns:.Diffe| 0000c3f0 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 31 |rence between t1| 0000c400 20 61 6e 64 20 74 32 2e 0a 0a 54 68 69 73 20 66 | and t2...This f| 0000c410 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 |unction returns | 0000c420 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 |the difference b| 0000c430 65 74 77 65 65 6e 20 74 77 6f 20 6d 6f 6e 6f 74 |etween two monot| 0000c440 6f 6e 69 63 20 74 69 6d 65 73 2e 20 49 74 20 64 |onic times. It d| 0000c450 65 61 6c 73 20 77 69 74 68 20 77 72 61 70 20 72 |eals with wrap r| 0000c460 6f 75 6e 64 20 6f 66 20 74 69 6d 65 72 2e 00 00 |ound of timer...| 0000c470 44 41 54 41 f1 00 00 00 61 6c 61 72 6d 5f 74 69 |DATA....alarm_ti| 0000c480 6d 65 6e 6f 77 0a 53 79 6e 74 61 78 3a 09 69 6e |menow.Syntax:.in| 0000c490 74 20 61 6c 61 72 6d 5f 74 69 6d 65 6e 6f 77 20 |t alarm_timenow | 0000c4a0 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 0000c4b0 3c 61 6c 61 72 6d 2e 68 3d 3e 61 6c 61 72 6d 3e |<alarm.h=>alarm>| 0000c4c0 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 |..Returns:.The c| 0000c4d0 75 72 72 65 6e 74 20 6d 6f 6e 6f 74 6f 6e 69 63 |urrent monotonic| 0000c4e0 20 74 69 6d 65 2e 0a 0a 54 68 69 73 20 66 75 6e | time...This fun| 0000c4f0 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 |ction reads the | 0000c500 63 75 72 72 65 6e 74 20 6d 6f 6e 6f 74 6f 6e 69 |current monotoni| 0000c510 63 20 74 69 6d 65 2e 20 49 74 20 69 73 20 65 71 |c time. It is eq| 0000c520 75 69 76 61 6c 65 6e 74 20 74 6f 20 53 57 49 20 |uivalent to SWI | 0000c530 3c 4f 53 5f 52 65 61 64 4d 6f 6e 6f 74 6f 6e 69 |<OS_ReadMonotoni| 0000c540 63 54 69 6d 65 3d 3e 53 57 49 3a 4f 53 5f 52 65 |cTime=>SWI:OS_Re| 0000c550 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 69 6d 65 3e |adMonotonicTime>| 0000c560 2e 00 00 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |....DIR$,...,...| 0000c570 90 c5 00 00 46 fd ff ff 3c 4b b8 22 e2 01 00 00 |....F...<K."....| 0000c580 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 0000c590 44 41 54 41 e2 01 00 00 41 4e 53 49 20 46 75 6e |DATA....ANSI Fun| 0000c5a0 63 74 69 6f 6e 73 0a 23 50 61 72 65 6e 74 20 24 |ctions.#Parent $| 0000c5b0 0a 41 4e 53 49 20 66 75 6e 63 74 69 6f 6e 73 20 |.ANSI functions | 0000c5c0 61 72 65 20 67 72 6f 75 70 65 64 20 69 6e 74 6f |are grouped into| 0000c5d0 20 31 35 20 68 65 61 64 65 72 0a 66 69 6c 65 73 | 15 header.files| 0000c5e0 2e 20 55 6e 64 65 72 20 52 49 53 43 20 4f 53 20 |. Under RISC OS | 0000c5f0 74 68 65 79 20 61 72 65 20 70 72 6f 76 69 64 65 |they are provide| 0000c600 64 20 62 79 0a 74 68 65 20 3c 53 68 61 72 65 64 |d by.the <Shared| 0000c610 20 43 20 4c 69 62 72 61 72 79 3d 3e 53 57 49 3a | C Library=>SWI:| 0000c620 53 68 61 72 65 64 43 4c 69 62 72 61 72 79 5f 2e |SharedCLibrary_.| 0000c630 21 52 6f 6f 74 3e 20 6d 6f 64 75 6c 65 2e 0a 0a |!Root> module...| 0000c640 23 49 6e 64 65 6e 74 20 38 0a 23 54 61 62 6c 65 |#Indent 8.#Table| 0000c650 20 38 20 31 35 0a 3c 61 73 73 65 72 74 2e 68 3d | 8 15.<assert.h=| 0000c660 3e 61 73 73 65 72 74 3e 0a 3c 63 74 79 70 65 2e |>assert>.<ctype.| 0000c670 68 3d 3e 63 74 79 70 65 3e 0a 3c 65 72 72 6e 6f |h=>ctype>.<errno| 0000c680 2e 68 3d 3e 65 72 72 6e 6f 5f 68 3e 0a 3c 66 6c |.h=>errno_h>.<fl| 0000c690 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 3e 0a 3c 6c |oat.h=>float>.<l| 0000c6a0 69 6d 69 74 73 2e 68 3d 3e 6c 69 6d 69 74 73 3e |imits.h=>limits>| 0000c6b0 0a 3c 6c 6f 63 61 6c 65 2e 68 3d 3e 6c 6f 63 61 |.<locale.h=>loca| 0000c6c0 6c 65 3e 0a 3c 6d 61 74 68 2e 68 3d 3e 6d 61 74 |le>.<math.h=>mat| 0000c6d0 68 3e 0a 3c 73 65 74 6a 6d 70 2e 68 3d 3e 73 65 |h>.<setjmp.h=>se| 0000c6e0 74 6a 6d 70 5f 68 3e 0a 3c 73 69 67 6e 61 6c 2e |tjmp_h>.<signal.| 0000c6f0 68 3d 3e 73 69 67 6e 61 6c 3e 0a 3c 73 74 64 61 |h=>signal>.<stda| 0000c700 72 67 2e 68 3d 3e 73 74 64 61 72 67 3e 0a 3c 73 |rg.h=>stdarg>.<s| 0000c710 74 64 64 65 66 2e 68 3d 3e 73 74 64 64 65 66 3e |tddef.h=>stddef>| 0000c720 0a 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f |.<stdio.h=>stdio| 0000c730 3e 0a 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 |>.<stdlib.h=>std| 0000c740 6c 69 62 3e 0a 3c 73 74 72 69 6e 67 2e 68 3d 3e |lib>.<string.h=>| 0000c750 73 74 72 69 6e 67 3e 0a 3c 74 69 6d 65 2e 68 3d |string>.<time.h=| 0000c760 3e 74 69 6d 65 5f 68 3e 0a 23 45 6e 64 54 61 62 |>time_h>.#EndTab| 0000c770 6c 65 00 00 44 49 52 24 6c 00 00 00 6c 00 00 00 |le..DIR$l...l...| 0000c780 e0 c7 00 00 46 ff ff ff 06 a4 53 26 f9 00 00 00 |....F.....S&....| 0000c790 13 00 00 00 00 00 00 00 43 6c 6f 73 65 44 6f 77 |........CloseDow| 0000c7a0 6e 00 00 00 dc c8 00 00 46 fd ff ff c1 8c 53 26 |n.......F.....S&| 0000c7b0 f5 00 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |............h...| 0000c7c0 d4 c9 00 00 46 ff ff ff 27 ac 53 26 6f 01 00 00 |....F...'.S&o...| 0000c7d0 13 00 00 00 00 00 00 00 52 65 70 6c 79 00 00 00 |........Reply...| 0000c7e0 44 41 54 41 f9 00 00 00 41 73 6b 55 73 65 72 5f |DATA....AskUser_| 0000c7f0 43 6c 6f 73 65 44 6f 77 6e 0a 53 79 6e 74 61 78 |CloseDown.Syntax| 0000c800 3a 09 76 6f 69 64 20 41 73 6b 55 73 65 72 5f 43 |:.void AskUser_C| 0000c810 6c 6f 73 65 44 6f 77 6e 20 28 76 6f 69 64 29 3b |loseDown (void);| 0000c820 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 |.Header:.<TimsLi| 0000c830 62 3a 41 73 6b 55 73 65 72 2e 68 3d 3e 41 73 6b |b:AskUser.h=>Ask| 0000c840 55 73 65 72 5f 68 3e 0a 0a 54 68 69 73 20 66 75 |User_h>..This fu| 0000c850 6e 63 74 69 6f 6e 20 64 65 61 6c 6c 6f 63 61 74 |nction deallocat| 0000c860 65 73 20 73 74 6f 72 61 67 65 20 63 6c 61 69 6d |es storage claim| 0000c870 65 64 20 62 79 20 3c 41 73 6b 55 73 65 72 3e 28 |ed by <AskUser>(| 0000c880 29 2e 20 49 74 20 69 73 20 6f 6e 6c 79 20 6f 66 |). It is only of| 0000c890 20 75 73 65 20 69 6e 20 64 65 62 75 67 20 62 75 | use in debug bu| 0000c8a0 69 6c 64 73 20 73 6f 20 6f 6e 6c 79 20 65 78 69 |ilds so only exi| 0000c8b0 73 74 73 20 69 66 20 74 68 65 20 6d 61 63 72 6f |sts if the macro| 0000c8c0 20 7b 2a 7d 5f 44 45 42 55 47 7b 2a 7d 20 69 73 | {*}_DEBUG{*} is| 0000c8d0 20 64 65 66 69 6e 65 64 2e 00 00 00 44 41 54 41 | defined....DATA| 0000c8e0 f5 00 00 00 54 69 6d 73 4c 69 62 3a 41 73 6b 55 |....TimsLib:AskU| 0000c8f0 73 65 72 2e 68 0a 54 68 69 73 20 68 65 61 64 65 |ser.h.This heade| 0000c900 72 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 66 |r provides the f| 0000c910 61 63 69 6c 69 74 79 20 66 6f 72 20 67 65 74 74 |acility for gett| 0000c920 69 6e 67 20 61 20 59 65 73 2f 4e 6f 20 72 65 73 |ing a Yes/No res| 0000c930 70 6f 6e 73 65 20 74 6f 20 61 20 71 75 65 73 74 |ponse to a quest| 0000c940 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 75 73 65 |ion from the use| 0000c950 72 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |r...Functions:..| 0000c960 23 69 6e 64 65 6e 74 20 35 0a 23 74 61 62 6c 65 |#indent 5.#table| 0000c970 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 41 73 6b 55 | columns 2.<AskU| 0000c980 73 65 72 3e 0a 3c 41 73 6b 55 73 65 72 5f 43 6c |ser>.<AskUser_Cl| 0000c990 6f 73 65 44 6f 77 6e 3e 0a 23 65 6e 64 74 61 62 |oseDown>.#endtab| 0000c9a0 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 |le.#indent..Type| 0000c9b0 73 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 |s:..{align centr| 0000c9c0 65 7d 3c 61 73 6b 75 73 65 72 5f 52 45 50 4c 59 |e}<askuser_REPLY| 0000c9d0 3e 00 00 00 44 41 54 41 6f 01 00 00 41 73 6b 55 |>...DATAo...AskU| 0000c9e0 73 65 72 5f 52 45 50 4c 59 0a 54 68 69 73 20 74 |ser_REPLY.This t| 0000c9f0 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 0000ca00 6e 20 3c 54 69 6d 73 4c 69 62 3a 41 73 6b 55 73 |n <TimsLib:AskUs| 0000ca10 65 72 2e 68 3d 3e 41 73 6b 55 73 65 72 5f 68 3e |er.h=>AskUser_h>| 0000ca20 20 61 73 20 61 6e 20 65 6e 75 6d 65 72 61 74 65 | as an enumerate| 0000ca30 64 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f |d type capable o| 0000ca40 66 20 68 6f 6c 64 69 6e 67 20 61 20 75 73 65 72 |f holding a user| 0000ca50 27 73 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 61 |'s response to a| 0000ca60 20 71 75 65 73 74 69 6f 6e 2e 20 49 74 20 69 73 | question. It is| 0000ca70 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a 20 20 | defined as:.. | 0000ca80 5c 7b 0a 20 20 20 20 61 73 6b 75 73 65 72 5f 4e |\{. askuser_N| 0000ca90 4f 52 45 50 4c 59 2c 09 2f 2a 20 4e 65 76 65 72 |OREPLY,./* Never| 0000caa0 20 72 65 74 75 72 6e 65 64 20 2a 2f 0a 20 20 20 | returned */. | 0000cab0 20 61 73 6b 75 73 65 72 5f 43 41 4e 43 45 4c 2c | askuser_CANCEL,| 0000cac0 09 2f 2a 20 43 61 6e 63 65 6c 6c 65 64 20 2a 2f |./* Cancelled */| 0000cad0 0a 20 20 20 20 61 73 6b 75 73 65 72 5f 59 45 53 |. askuser_YES| 0000cae0 2c 09 2f 2a 20 52 65 70 6c 69 65 64 20 59 45 53 |,./* Replied YES| 0000caf0 20 2a 2f 0a 20 20 20 20 61 73 6b 75 73 65 72 5f | */. askuser_| 0000cb00 4e 4f 2c 09 09 2f 2a 20 52 65 70 6c 69 65 64 20 |NO,../* Replied | 0000cb10 4e 4f 20 2a 2f 0a 20 20 20 20 61 73 6b 75 73 65 |NO */. askuse| 0000cb20 72 5f 45 52 52 4f 52 09 2f 2a 20 4e 6f 74 20 65 |r_ERROR./* Not e| 0000cb30 6e 6f 75 67 68 20 6d 65 6d 6f 72 79 20 2a 2f 0a |nough memory */.| 0000cb40 20 20 7d 00 44 49 52 24 4c 00 00 00 4c 00 00 00 | }.DIR$L...L...| 0000cb50 90 cb 00 00 46 fd ff ff 29 4b 54 26 00 01 00 00 |....F...)KT&....| 0000cb60 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 0000cb70 90 cc 00 00 46 ff ff ff 76 5f 54 26 28 01 00 00 |....F...v_T&(...| 0000cb80 13 00 00 00 00 00 00 00 56 41 4c 49 44 00 00 00 |........VALID...| 0000cb90 44 41 54 41 00 01 00 00 41 53 53 45 52 54 0a 53 |DATA....ASSERT.S| 0000cba0 79 6e 74 61 78 3a 09 41 53 53 45 52 54 20 28 3c |yntax:.ASSERT (<| 0000cbb0 42 4f 4f 4c 3e 20 65 78 70 72 29 3b 0a 48 65 61 |BOOL> expr);.Hea| 0000cbc0 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 |der:.<TimsLib:Ch| 0000cbd0 65 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 49 |eck.h=>Check>..I| 0000cbe0 66 20 74 68 65 20 6d 61 63 72 6f 20 7b 2a 7d 5f |f the macro {*}_| 0000cbf0 44 45 42 55 47 7b 2a 7d 20 69 73 20 6e 6f 74 20 |DEBUG{*} is not | 0000cc00 64 65 66 69 6e 65 64 2c 20 74 68 69 73 20 68 61 |defined, this ha| 0000cc10 73 20 6e 6f 20 65 66 66 65 63 74 2e 20 4f 74 68 |s no effect. Oth| 0000cc20 65 72 77 69 73 65 2c 20 2f 65 78 70 72 2f 20 69 |erwise, /expr/ i| 0000cc30 73 20 65 76 61 6c 75 61 74 65 64 20 61 6e 64 20 |s evaluated and | 0000cc40 69 66 20 69 74 20 69 73 20 3c 46 41 4c 53 45 3e |if it is <FALSE>| 0000cc50 20 74 68 65 6e 20 61 6e 20 65 72 72 6f 72 20 62 | then an error b| 0000cc60 6f 78 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 |ox is displayed | 0000cc70 64 65 74 61 69 6c 69 6e 67 20 74 68 65 20 61 73 |detailing the as| 0000cc80 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 2e |sertion failure.| 0000cc90 44 41 54 41 28 01 00 00 41 53 53 45 52 54 5f 56 |DATA(...ASSERT_V| 0000cca0 41 4c 49 44 0a 53 79 6e 74 61 78 3a 09 41 53 53 |ALID.Syntax:.ASS| 0000ccb0 45 52 54 5f 56 41 4c 49 44 20 28 76 6f 69 64 20 |ERT_VALID (void | 0000ccc0 2a 70 6f 69 6e 74 65 72 29 3b 0a 48 65 61 64 65 |*pointer);.Heade| 0000ccd0 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 65 63 |r:.<TimsLib:Chec| 0000cce0 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 49 66 20 |k.h=>Check>..If | 0000ccf0 74 68 65 20 6d 61 63 72 6f 20 7b 2a 7d 5f 44 45 |the macro {*}_DE| 0000cd00 42 55 47 7b 2a 7d 20 69 73 20 6e 6f 74 20 64 65 |BUG{*} is not de| 0000cd10 66 69 6e 65 64 2c 20 6e 6f 20 61 63 74 69 6f 6e |fined, no action| 0000cd20 20 69 73 20 74 61 6b 65 6e 2e 20 4f 74 68 65 72 | is taken. Other| 0000cd30 77 69 73 65 2c 20 2f 70 6f 69 6e 74 65 72 2f 20 |wise, /pointer/ | 0000cd40 69 73 20 63 68 65 63 6b 65 64 20 61 6e 64 20 69 |is checked and i| 0000cd50 66 20 69 74 20 69 73 20 6e 6f 74 20 76 61 6c 69 |f it is not vali| 0000cd60 64 20 28 69 65 20 6d 65 6d 6f 72 79 20 63 61 6e |d (ie memory can| 0000cd70 20 6e 6f 74 20 62 65 20 72 65 61 64 2f 77 72 69 | not be read/wri| 0000cd80 74 74 65 6e 20 61 74 20 74 68 69 73 20 6c 6f 63 |tten at this loc| 0000cd90 61 74 69 6f 6e 29 20 74 68 65 6e 20 61 6e 20 61 |ation) then an a| 0000cda0 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 |ssertion failure| 0000cdb0 20 6f 63 63 75 72 73 2e 44 49 52 24 2c 01 00 00 | occurs.DIR$,...| 0000cdc0 2c 01 00 00 e4 ce 00 00 46 ff ff ff 66 8b ef 22 |,.......F...f.."| 0000cdd0 72 01 00 00 13 00 00 00 00 00 00 00 62 61 72 69 |r...........bari| 0000cde0 63 6f 6e 00 58 d0 00 00 46 fd ff ff 9d 5d 84 2f |con.X...F....]./| 0000cdf0 e4 00 00 00 13 01 00 00 00 00 00 00 62 61 72 69 |............bari| 0000ce00 63 6f 6e 5f 00 00 00 00 ec d9 00 00 46 ff ff ff |con_........F...| 0000ce10 33 fa ef 22 c9 01 00 00 13 00 00 00 00 00 00 00 |3.."............| 0000ce20 62 62 63 00 b8 db 00 00 46 fd ff ff 56 5e 84 2f |bbc.....F...V^./| 0000ce30 0c 07 00 00 13 01 00 00 00 00 00 00 62 62 63 5f |............bbc_| 0000ce40 00 00 00 00 a0 34 01 00 46 ff ff ff 94 7e b3 24 |.....4..F....~.$| 0000ce50 84 01 00 00 13 00 00 00 00 00 00 00 42 4f 4f 4c |............BOOL| 0000ce60 00 00 00 00 24 36 01 00 46 ff ff ff 90 d0 e4 22 |....$6..F......"| 0000ce70 7e 01 00 00 13 00 00 00 00 00 00 00 62 72 65 61 |~...........brea| 0000ce80 6b 00 00 00 a4 37 01 00 46 ff ff ff 2f 09 de 22 |k....7..F.../.."| 0000ce90 c9 02 00 00 13 00 00 00 00 00 00 00 62 73 65 61 |............bsea| 0000cea0 72 63 68 00 70 3a 01 00 46 ff ff ff 18 7a c4 22 |rch.p:..F....z."| 0000ceb0 a6 00 00 00 13 00 00 00 00 00 00 00 42 55 46 53 |............BUFS| 0000cec0 49 5a 00 00 18 3b 01 00 46 fd ff ff c0 62 84 2f |IZ...;..F....b./| 0000ced0 2c 00 00 00 13 01 00 00 00 00 00 00 62 75 74 74 |,...........butt| 0000cee0 6f 6e 5f 00 44 41 54 41 72 01 00 00 62 61 72 69 |on_.DATAr...bari| 0000cef0 63 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c 77 69 6d |con.Syntax:.<wim| 0000cf00 70 5f 69 3e 20 62 61 72 69 63 6f 6e 20 28 63 68 |p_i> baricon (ch| 0000cf10 61 72 20 2a 73 70 72 2c 20 69 6e 74 20 2a 61 72 |ar *spr, int *ar| 0000cf20 65 61 2c 20 3c 62 61 72 69 63 6f 6e 5f 63 6c 69 |ea, <baricon_cli| 0000cf30 63 6b 70 72 6f 63 3e 20 70 29 3b 0a 48 65 61 64 |ckproc> p);.Head| 0000cf40 65 72 3a 09 3c 62 61 72 69 63 6f 6e 2e 68 3d 3e |er:.<baricon.h=>| 0000cf50 62 61 72 69 63 6f 6e 5f 68 3e 0a 0a 52 65 74 75 |baricon_h>..Retu| 0000cf60 72 6e 73 3a 09 49 63 6f 6e 20 68 61 6e 64 6c 65 |rns:.Icon handle| 0000cf70 20 6f 66 20 63 72 65 61 74 65 64 20 69 63 6f 6e | of created icon| 0000cf80 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0000cf90 20 70 6c 61 63 65 73 20 61 20 6e 6f 72 6d 61 6c | places a normal| 0000cfa0 20 73 70 72 69 74 65 2d 6f 6e 6c 79 20 69 63 6f | sprite-only ico| 0000cfb0 6e 20 6f 6e 20 74 68 65 20 69 63 6f 6e 20 62 61 |n on the icon ba| 0000cfc0 72 2e 20 2f 73 70 72 2f 20 69 73 20 61 20 70 6f |r. /spr/ is a po| 0000cfd0 69 6e 74 65 72 20 74 6f 20 74 68 65 20 73 70 72 |inter to the spr| 0000cfe0 69 74 65 20 6e 61 6d 65 2c 20 2f 61 72 65 61 2f |ite name, /area/| 0000cff0 20 69 73 20 74 68 65 20 73 70 72 69 74 65 20 61 | is the sprite a| 0000d000 72 65 61 20 70 6f 69 6e 74 65 72 20 61 6e 64 20 |rea pointer and | 0000d010 2f 70 2f 20 69 73 20 74 68 65 20 66 75 6e 63 74 |/p/ is the funct| 0000d020 69 6f 6e 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 |ion to be called| 0000d030 20 77 68 65 6e 20 2a 53 65 6c 65 63 74 2a 20 69 | when *Select* i| 0000d040 73 20 63 6c 69 63 6b 65 64 20 6f 6e 20 74 68 65 |s clicked on the| 0000d050 20 69 63 6f 6e 2e 00 00 44 49 52 24 e4 00 00 00 | icon...DIR$....| 0000d060 e4 00 00 00 3c d1 00 00 46 ff ff ff c5 e2 ef 22 |....<...F......"| 0000d070 23 01 00 00 13 00 00 00 00 00 00 00 63 6c 69 63 |#...........clic| 0000d080 6b 70 72 6f 63 00 00 00 60 d2 00 00 46 fd ff ff |kproc...`...F...| 0000d090 63 77 ef 22 19 01 00 00 13 00 00 00 00 00 00 00 |cw."............| 0000d0a0 68 00 00 00 7c d3 00 00 46 ff ff ff ac 9b ef 22 |h...|...F......"| 0000d0b0 88 01 00 00 13 00 00 00 00 00 00 00 6c 65 66 74 |............left| 0000d0c0 00 00 00 00 04 d5 00 00 46 ff ff ff 7a d9 ef 22 |........F...z.."| 0000d0d0 0f 01 00 00 13 00 00 00 00 00 00 00 6e 65 77 73 |............news| 0000d0e0 70 72 69 74 65 00 00 00 14 d6 00 00 46 ff ff ff |prite.......F...| 0000d0f0 56 af ef 22 e6 01 00 00 13 00 00 00 00 00 00 00 |V.."............| 0000d100 74 65 78 74 61 6e 64 73 70 72 69 74 65 00 00 00 |textandsprite...| 0000d110 fc d7 00 00 46 ff ff ff a9 cd ef 22 ef 01 00 00 |....F......"....| 0000d120 13 00 00 00 00 00 00 00 74 65 78 74 61 6e 64 73 |........textands| 0000d130 70 72 69 74 65 5f 6c 65 66 74 00 00 44 41 54 41 |prite_left..DATA| 0000d140 23 01 00 00 62 61 72 69 63 6f 6e 5f 63 6c 69 63 |#...baricon_clic| 0000d150 6b 70 72 6f 63 0a 54 68 69 73 20 74 79 70 65 20 |kproc.This type | 0000d160 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 62 |is defined in <b| 0000d170 61 72 69 63 6f 6e 2e 68 3d 3e 62 61 72 69 63 6f |aricon.h=>barico| 0000d180 6e 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 66 75 |n_h>. It is a fu| 0000d190 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 77 68 |nction called wh| 0000d1a0 65 6e 20 74 68 65 20 75 73 65 72 20 63 6c 69 63 |en the user clic| 0000d1b0 6b 73 20 6f 6e 20 61 6e 20 69 63 6f 6e 20 62 61 |ks on an icon ba| 0000d1c0 72 20 69 63 6f 6e 2e 20 54 68 65 20 66 75 6e 63 |r icon. The func| 0000d1d0 74 69 6f 6e 20 69 73 20 6f 66 20 74 68 65 20 66 |tion is of the f| 0000d1e0 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 |orm:..{fCode;ali| 0000d1f0 67 6e 20 63 65 6e 74 72 65 7d 76 6f 69 64 20 6d |gn centre}void m| 0000d200 79 66 75 6e 63 20 28 3c 77 69 6d 70 5f 69 3e 20 |yfunc (<wimp_i> | 0000d210 69 63 6f 6e 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a |icon);{f;align}.| 0000d220 0a 69 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |.ie the function| 0000d230 20 69 73 20 70 61 73 73 65 64 20 74 68 65 20 69 | is passed the i| 0000d240 63 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 |con number of th| 0000d250 65 20 69 63 6f 6e 20 63 6c 69 63 6b 65 64 2e 00 |e icon clicked..| 0000d260 44 41 54 41 19 01 00 00 62 61 72 69 63 6f 6e 2e |DATA....baricon.| 0000d270 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 66 69 |h.This header fi| 0000d280 6c 65 20 64 65 63 6c 61 72 65 73 20 66 75 6e 63 |le declares func| 0000d290 74 69 6f 6e 73 20 66 6f 72 20 70 6c 61 63 69 6e |tions for placin| 0000d2a0 67 20 61 6e 20 69 63 6f 6e 20 6f 6e 20 74 68 65 |g an icon on the| 0000d2b0 20 69 63 6f 6e 20 62 61 72 2e 0a 0a 46 75 6e 63 | icon bar...Func| 0000d2c0 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 |tions:..#indent | 0000d2d0 31 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 |1.#table columns| 0000d2e0 20 32 0a 3c 62 61 72 69 63 6f 6e 3e 0a 3c 62 61 | 2.<baricon>.<ba| 0000d2f0 72 69 63 6f 6e 5f 6c 65 66 74 3e 0a 3c 62 61 72 |ricon_left>.<bar| 0000d300 69 63 6f 6e 5f 74 65 78 74 61 6e 64 73 70 72 69 |icon_textandspri| 0000d310 74 65 3e 0a 3c 62 61 72 69 63 6f 6e 5f 74 65 78 |te>.<baricon_tex| 0000d320 74 61 6e 64 73 70 72 69 74 65 5f 6c 65 66 74 3e |tandsprite_left>| 0000d330 0a 3c 62 61 72 69 63 6f 6e 5f 6e 65 77 73 70 72 |.<baricon_newspr| 0000d340 69 74 65 3e 0a 0a 23 65 6e 64 74 61 62 6c 65 0a |ite>..#endtable.| 0000d350 0a 54 79 70 65 3a 0a 0a 23 61 6c 69 67 6e 20 63 |.Type:..#align c| 0000d360 65 6e 74 72 65 0a 3c 62 61 72 69 63 6f 6e 5f 63 |entre.<baricon_c| 0000d370 6c 69 63 6b 70 72 6f 63 3e 00 00 00 44 41 54 41 |lickproc>...DATA| 0000d380 88 01 00 00 62 61 72 69 63 6f 6e 5f 6c 65 66 74 |....baricon_left| 0000d390 0a 53 79 6e 74 61 78 3a 09 3c 77 69 6d 70 5f 69 |.Syntax:.<wimp_i| 0000d3a0 3e 20 62 61 72 69 63 6f 6e 5f 6c 65 66 74 20 28 |> baricon_left (| 0000d3b0 63 68 61 72 20 2a 73 70 72 2c 20 69 6e 74 20 2a |char *spr, int *| 0000d3c0 61 72 65 61 2c 20 3c 62 61 72 69 63 6f 6e 5f 63 |area, <baricon_c| 0000d3d0 6c 69 63 6b 70 72 6f 63 3e 20 70 29 3b 0a 48 65 |lickproc> p);.He| 0000d3e0 61 64 65 72 3a 09 3c 62 61 72 69 63 6f 6e 2e 68 |ader:.<baricon.h| 0000d3f0 3d 3e 62 61 72 69 63 6f 6e 5f 68 3e 0a 0a 52 65 |=>baricon_h>..Re| 0000d400 74 75 72 6e 73 3a 09 49 63 6f 6e 20 68 61 6e 64 |turns:.Icon hand| 0000d410 6c 65 20 6f 66 20 63 72 65 61 74 65 64 20 69 63 |le of created ic| 0000d420 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |on...This functi| 0000d430 6f 6e 20 70 6c 61 63 65 73 20 61 20 6e 6f 72 6d |on places a norm| 0000d440 61 6c 20 73 70 72 69 74 65 2d 6f 6e 6c 79 20 69 |al sprite-only i| 0000d450 63 6f 6e 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 |con on the left | 0000d460 6f 66 20 74 68 65 20 69 63 6f 6e 20 62 61 72 2e |of the icon bar.| 0000d470 20 2f 73 70 72 2f 20 69 73 20 61 20 70 6f 69 6e | /spr/ is a poin| 0000d480 74 65 72 20 74 6f 20 74 68 65 20 73 70 72 69 74 |ter to the sprit| 0000d490 65 20 6e 61 6d 65 2c 20 2f 61 72 65 61 2f 20 69 |e name, /area/ i| 0000d4a0 73 20 74 68 65 20 73 70 72 69 74 65 20 61 72 65 |s the sprite are| 0000d4b0 61 20 70 6f 69 6e 74 65 72 20 61 6e 64 20 2f 70 |a pointer and /p| 0000d4c0 2f 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f |/ is the functio| 0000d4d0 6e 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 |n to be called w| 0000d4e0 68 65 6e 20 2a 53 65 6c 65 63 74 2a 20 69 73 20 |hen *Select* is | 0000d4f0 63 6c 69 63 6b 65 64 20 6f 6e 20 74 68 65 20 69 |clicked on the i| 0000d500 63 6f 6e 2e 44 41 54 41 0f 01 00 00 62 61 72 69 |con.DATA....bari| 0000d510 63 6f 6e 5f 6e 65 77 73 70 72 69 74 65 0a 53 79 |con_newsprite.Sy| 0000d520 6e 74 61 78 3a 09 3c 77 69 6d 70 5f 69 3e 20 62 |ntax:.<wimp_i> b| 0000d530 61 72 69 63 6f 6e 5f 6e 65 77 73 70 72 69 74 65 |aricon_newsprite| 0000d540 20 28 63 68 61 72 20 2a 6e 65 77 29 3b 0a 48 65 | (char *new);.He| 0000d550 61 64 65 72 3a 09 3c 62 61 72 69 63 6f 6e 2e 68 |ader:.<baricon.h| 0000d560 3d 3e 62 61 72 69 63 6f 6e 5f 68 3e 0a 0a 52 65 |=>baricon_h>..Re| 0000d570 74 75 72 6e 73 3a 09 49 63 6f 6e 20 68 61 6e 64 |turns:.Icon hand| 0000d580 6c 65 20 6f 66 20 69 63 6f 6e 2e 0a 0a 54 68 69 |le of icon...Thi| 0000d590 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 |s function chang| 0000d5a0 65 73 20 74 68 65 20 73 70 72 69 74 65 20 75 73 |es the sprite us| 0000d5b0 65 64 20 6f 6e 20 74 68 65 20 69 63 6f 6e 20 62 |ed on the icon b| 0000d5c0 61 72 20 74 6f 20 62 65 20 74 68 61 74 20 77 68 |ar to be that wh| 0000d5d0 6f 73 65 20 6e 61 6d 65 20 69 73 20 67 69 76 65 |ose name is give| 0000d5e0 6e 2e 20 54 68 65 20 73 70 72 69 74 65 20 6d 75 |n. The sprite mu| 0000d5f0 73 74 20 62 65 20 69 6e 20 74 68 65 20 73 61 6d |st be in the sam| 0000d600 65 20 61 72 65 61 20 61 73 20 62 65 66 6f 72 65 |e area as before| 0000d610 2e 2e 2e 00 44 41 54 41 e6 01 00 00 62 61 72 69 |....DATA....bari| 0000d620 63 6f 6e 5f 74 65 78 74 61 6e 64 73 70 72 69 74 |con_textandsprit| 0000d630 65 0a 53 79 6e 74 61 78 3a 09 3c 77 69 6d 70 5f |e.Syntax:.<wimp_| 0000d640 69 3e 20 62 61 72 69 63 6f 6e 5f 74 65 78 74 61 |i> baricon_texta| 0000d650 6e 64 73 70 72 69 74 65 20 28 63 68 61 72 20 2a |ndsprite (char *| 0000d660 73 70 72 2c 20 63 68 61 72 20 2a 74 65 78 74 2c |spr, char *text,| 0000d670 20 69 6e 74 20 62 75 66 66 6c 65 6e 2c 20 69 6e | int bufflen, in| 0000d680 74 20 61 72 65 61 2c 20 3c 62 61 72 69 63 6f 6e |t area, <baricon| 0000d690 5f 63 6c 69 63 6b 70 72 6f 63 3e 20 70 29 3b 0a |_clickproc> p);.| 0000d6a0 48 65 61 64 65 72 3a 09 3c 62 61 72 69 63 6f 6e |Header:.<baricon| 0000d6b0 2e 68 3d 3e 62 61 72 69 63 6f 6e 5f 68 3e 0a 0a |.h=>baricon_h>..| 0000d6c0 52 65 74 75 72 6e 73 3a 09 49 63 6f 6e 20 68 61 |Returns:.Icon ha| 0000d6d0 6e 64 6c 65 20 6f 66 20 63 72 65 61 74 65 64 20 |ndle of created | 0000d6e0 69 63 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |icon...This func| 0000d6f0 74 69 6f 6e 20 70 6c 61 63 65 73 20 61 20 6e 6f |tion places a no| 0000d700 72 6d 61 6c 20 73 70 72 69 74 65 20 2b 20 74 65 |rmal sprite + te| 0000d710 78 74 20 69 63 6f 6e 20 6f 6e 20 74 68 65 20 72 |xt icon on the r| 0000d720 69 67 68 74 20 6f 66 20 74 68 65 20 69 63 6f 6e |ight of the icon| 0000d730 20 62 61 72 2e 20 2f 73 70 72 2f 20 69 73 20 61 | bar. /spr/ is a| 0000d740 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 | pointer to the | 0000d750 73 70 72 69 74 65 20 6e 61 6d 65 2c 20 2f 74 65 |sprite name, /te| 0000d760 78 74 2f 20 69 73 20 74 68 65 20 74 65 78 74 2c |xt/ is the text,| 0000d770 20 2f 61 72 65 61 2f 20 69 73 20 74 68 65 20 73 | /area/ is the s| 0000d780 70 72 69 74 65 20 61 72 65 61 2c 20 2f 62 75 66 |prite area, /buf| 0000d790 66 6c 65 6e 2f 20 69 73 20 74 68 65 20 74 65 78 |flen/ is the tex| 0000d7a0 74 20 62 75 66 66 65 72 20 6c 65 6e 67 74 68 20 |t buffer length | 0000d7b0 61 6e 64 20 2f 70 2f 20 69 73 20 74 68 65 20 66 |and /p/ is the f| 0000d7c0 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 63 61 |unction to be ca| 0000d7d0 6c 6c 65 64 20 77 68 65 6e 20 2a 53 65 6c 65 63 |lled when *Selec| 0000d7e0 74 2a 20 69 73 20 63 6c 69 63 6b 65 64 20 6f 6e |t* is clicked on| 0000d7f0 20 74 68 65 20 69 63 6f 6e 2e 00 00 44 41 54 41 | the icon...DATA| 0000d800 ef 01 00 00 62 61 72 69 63 6f 6e 5f 74 65 78 74 |....baricon_text| 0000d810 61 6e 64 73 70 72 69 74 65 5f 6c 65 66 74 0a 53 |andsprite_left.S| 0000d820 79 6e 74 61 78 3a 09 3c 77 69 6d 70 5f 69 3e 20 |yntax:.<wimp_i> | 0000d830 62 61 72 69 63 6f 6e 5f 74 65 78 74 61 6e 64 73 |baricon_textands| 0000d840 70 72 69 74 65 5f 6c 65 66 74 20 28 63 68 61 72 |prite_left (char| 0000d850 20 2a 73 70 72 2c 20 63 68 61 72 20 2a 74 65 78 | *spr, char *tex| 0000d860 74 2c 20 69 6e 74 20 62 75 66 66 6c 65 6e 2c 20 |t, int bufflen, | 0000d870 69 6e 74 20 61 72 65 61 2c 20 3c 62 61 72 69 63 |int area, <baric| 0000d880 6f 6e 5f 63 6c 69 63 6b 70 72 6f 63 3e 20 70 29 |on_clickproc> p)| 0000d890 3b 0a 48 65 61 64 65 72 3a 09 3c 62 61 72 69 63 |;.Header:.<baric| 0000d8a0 6f 6e 2e 68 3d 3e 62 61 72 69 63 6f 6e 5f 68 3e |on.h=>baricon_h>| 0000d8b0 0a 0a 52 65 74 75 72 6e 73 3a 09 49 63 6f 6e 20 |..Returns:.Icon | 0000d8c0 68 61 6e 64 6c 65 20 6f 66 20 63 72 65 61 74 65 |handle of create| 0000d8d0 64 20 69 63 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 |d icon...This fu| 0000d8e0 6e 63 74 69 6f 6e 20 70 6c 61 63 65 73 20 61 20 |nction places a | 0000d8f0 6e 6f 72 6d 61 6c 20 73 70 72 69 74 65 20 2b 20 |normal sprite + | 0000d900 74 65 78 74 20 69 63 6f 6e 20 6f 6e 20 74 68 65 |text icon on the| 0000d910 20 6c 65 66 74 20 6f 66 20 74 68 65 20 69 63 6f | left of the ico| 0000d920 6e 20 62 61 72 2e 20 2f 73 70 72 2f 20 69 73 20 |n bar. /spr/ is | 0000d930 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 |a pointer to the| 0000d940 20 73 70 72 69 74 65 20 6e 61 6d 65 2c 20 2f 74 | sprite name, /t| 0000d950 65 78 74 2f 20 69 73 20 74 68 65 20 74 65 78 74 |ext/ is the text| 0000d960 2c 20 2f 61 72 65 61 2f 20 69 73 20 74 68 65 20 |, /area/ is the | 0000d970 73 70 72 69 74 65 20 61 72 65 61 2c 20 2f 62 75 |sprite area, /bu| 0000d980 66 66 6c 65 6e 2f 20 69 73 20 74 68 65 20 74 65 |fflen/ is the te| 0000d990 78 74 20 62 75 66 66 65 72 20 6c 65 6e 67 74 68 |xt buffer length| 0000d9a0 20 61 6e 64 20 2f 70 2f 20 69 73 20 74 68 65 20 | and /p/ is the | 0000d9b0 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 63 |function to be c| 0000d9c0 61 6c 6c 65 64 20 77 68 65 6e 20 2a 53 65 6c 65 |alled when *Sele| 0000d9d0 63 74 2a 20 69 73 20 63 6c 69 63 6b 65 64 20 6f |ct* is clicked o| 0000d9e0 6e 20 74 68 65 20 69 63 6f 6e 2e 00 44 41 54 41 |n the icon..DATA| 0000d9f0 c9 01 00 00 62 62 63 2e 68 0a 54 68 65 20 5c 3c |....bbc.h.The \<| 0000da00 62 62 63 2e 68 3e 20 68 65 61 64 65 72 20 64 65 |bbc.h> header de| 0000da10 63 6c 61 72 65 73 20 6d 61 6e 79 20 42 42 43 20 |clares many BBC | 0000da20 42 41 53 49 43 2d 74 79 70 65 20 66 75 6e 63 74 |BASIC-type funct| 0000da30 69 6f 6e 73 20 61 6e 64 20 6d 61 63 72 6f 73 20 |ions and macros | 0000da40 66 6f 72 20 67 72 61 70 68 69 63 73 20 61 6e 64 |for graphics and| 0000da50 20 6d 6f 75 73 65 2f 6b 65 79 62 6f 61 72 64 20 | mouse/keyboard | 0000da60 63 6f 6e 74 72 6f 6c 2e 0a 0a 46 75 6e 63 74 69 |control...Functi| 0000da70 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 35 0a |ons:..#Indent 5.| 0000da80 23 54 61 62 6c 65 20 32 20 31 39 0a 3c 54 65 78 |#Table 2 19.<Tex| 0000da90 74 20 6f 75 74 70 75 74 3d 3e 62 62 63 5f 74 65 |t output=>bbc_te| 0000daa0 78 74 5f 3e 0a 3c 47 72 61 70 68 69 63 73 20 6f |xt_>.<Graphics o| 0000dab0 75 74 70 75 74 3d 3e 62 62 63 5f 67 72 61 70 68 |utput=>bbc_graph| 0000dac0 5f 3e 0a 3c 56 44 55 2f 4d 6f 64 65 20 76 61 72 |_>.<VDU/Mode var| 0000dad0 69 61 62 6c 65 73 3d 3e 62 62 63 5f 76 6d 76 61 |iables=>bbc_vmva| 0000dae0 72 5f 3e 0a 3c 53 6f 75 6e 64 2f 4d 69 73 63 65 |r_>.<Sound/Misce| 0000daf0 6c 6c 61 6e 65 6f 75 73 3d 3e 62 62 63 5f 6d 69 |llaneous=>bbc_mi| 0000db00 73 63 5f 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a |sc_>.#EndTable..| 0000db10 23 49 6e 64 65 6e 74 20 30 0a 4d 61 63 72 6f 73 |#Indent 0.Macros| 0000db20 3a 0a 0a 23 49 6e 64 65 6e 74 20 35 0a 23 54 61 |:..#Indent 5.#Ta| 0000db30 62 6c 65 20 32 20 31 39 0a 3c 56 44 55 20 63 6f |ble 2 19.<VDU co| 0000db40 6d 6d 61 6e 64 73 3d 3e 62 62 63 5f 76 64 75 63 |mmands=>bbc_vduc| 0000db50 6f 6d 5f 3e 0a 3c 50 6c 6f 74 20 63 6f 64 65 73 |om_>.<Plot codes| 0000db60 3d 3e 62 62 63 5f 70 6c 6f 74 63 6f 6d 5f 3e 0a |=>bbc_plotcom_>.| 0000db70 3c 56 44 55 20 76 61 72 69 61 62 6c 65 73 3d 3e |<VDU variables=>| 0000db80 62 62 63 5f 76 64 75 76 61 72 5f 3e 0a 3c 4d 6f |bbc_vduvar_>.<Mo| 0000db90 64 65 20 76 61 72 69 61 62 6c 65 73 3d 3e 62 62 |de variables=>bb| 0000dba0 63 5f 6d 6f 64 65 76 61 72 5f 3e 0a 23 45 6e 64 |c_modevar_>.#End| 0000dbb0 54 61 62 6c 65 00 00 00 44 49 52 24 0c 07 00 00 |Table...DIR$....| 0000dbc0 0c 07 00 00 c4 e2 00 00 46 ff ff ff d8 ad f1 22 |........F......"| 0000dbd0 a5 02 00 00 13 00 00 00 00 00 00 00 61 64 76 61 |............adva| 0000dbe0 6c 00 00 00 6c e5 00 00 46 ff ff ff ed 49 f0 22 |l...l...F....I."| 0000dbf0 0f 01 00 00 13 00 00 00 00 00 00 00 63 69 72 63 |............circ| 0000dc00 6c 65 00 00 7c e6 00 00 46 ff ff ff bc 4f f0 22 |le..|...F....O."| 0000dc10 23 01 00 00 13 00 00 00 00 00 00 00 63 69 72 63 |#...........circ| 0000dc20 6c 65 66 69 6c 6c 00 00 a0 e7 00 00 46 ff ff ff |lefill......F...| 0000dc30 29 57 f0 22 e3 00 00 00 13 00 00 00 00 00 00 00 |)W."............| 0000dc40 63 6c 67 00 84 e8 00 00 46 ff ff ff 4e 05 f0 22 |clg.....F...N.."| 0000dc50 dd 00 00 00 13 00 00 00 00 00 00 00 63 6c 73 00 |............cls.| 0000dc60 64 e9 00 00 46 ff ff ff eb 0c f0 22 36 01 00 00 |d...F......"6...| 0000dc70 13 00 00 00 00 00 00 00 63 6f 6c 6f 75 72 00 00 |........colour..| 0000dc80 9c ea 00 00 46 ff ff ff a1 ba f1 22 4f 01 00 00 |....F......"O...| 0000dc90 13 00 00 00 00 00 00 00 63 75 72 73 6f 72 00 00 |........cursor..| 0000dca0 ec eb 00 00 46 ff ff ff 96 5d f0 22 16 01 00 00 |....F....]."....| 0000dcb0 13 00 00 00 00 00 00 00 64 72 61 77 00 00 00 00 |........draw....| 0000dcc0 04 ed 00 00 46 ff ff ff 75 63 f0 22 28 01 00 00 |....F...uc."(...| 0000dcd0 13 00 00 00 00 00 00 00 64 72 61 77 62 79 00 00 |........drawby..| 0000dce0 2c ee 00 00 46 ff ff ff 5c 6b f0 22 e4 00 00 00 |,...F...\k."....| 0000dcf0 13 00 00 00 00 00 00 00 66 69 6c 6c 00 00 00 00 |........fill....| 0000dd00 10 ef 00 00 46 ff ff ff ae 71 f0 22 17 01 00 00 |....F....q."....| 0000dd10 13 00 00 00 00 00 00 00 67 63 6f 6c 00 00 00 00 |........gcol....| 0000dd20 28 f0 00 00 46 ff ff ff ed c4 f1 22 79 01 00 00 |(...F......"y...| 0000dd30 13 00 00 00 00 00 00 00 67 65 74 00 a4 f1 00 00 |........get.....| 0000dd40 46 ff ff ff de ca f1 22 be 00 00 00 13 00 00 00 |F......"........| 0000dd50 00 00 00 00 67 65 74 62 65 61 74 00 64 f2 00 00 |....getbeat.d...| 0000dd60 46 ff ff ff 81 d3 f1 22 c7 00 00 00 13 00 00 00 |F......"........| 0000dd70 00 00 00 00 67 65 74 62 65 61 74 73 00 00 00 00 |....getbeats....| 0000dd80 2c f3 00 00 46 ff ff ff 09 d8 f1 22 3b 01 00 00 |,...F......";...| 0000dd90 13 00 00 00 00 00 00 00 67 65 74 74 65 6d 70 6f |........gettempo| 0000dda0 00 00 00 00 68 f4 00 00 46 ff ff ff 4a 6a b5 22 |....h...F...Jj."| 0000ddb0 fb 00 00 00 13 00 00 00 00 00 00 00 67 72 61 70 |............grap| 0000ddc0 68 00 00 00 64 f5 00 00 46 fd ff ff 0d 42 f0 22 |h...d...F....B."| 0000ddd0 1f 01 00 00 13 00 00 00 00 00 00 00 67 72 61 70 |............grap| 0000dde0 68 5f 00 00 84 f6 00 00 46 ff ff ff a2 7d f0 22 |h_......F....}."| 0000ddf0 8b 01 00 00 13 00 00 00 00 00 00 00 67 77 69 6e |............gwin| 0000de00 64 6f 77 00 10 f8 00 00 46 ff ff ff 33 fb f1 22 |dow.....F...3.."| 0000de10 6d 03 00 00 13 00 00 00 00 00 00 00 69 6e 6b 65 |m...........inke| 0000de20 79 00 00 00 80 fb 00 00 46 fd ff ff 0b 96 f1 22 |y.......F......"| 0000de30 f1 00 00 00 13 00 00 00 00 00 00 00 6d 69 73 63 |............misc| 0000de40 5f 00 00 00 74 fc 00 00 46 ff ff ff bd 88 f0 22 |_...t...F......"| 0000de50 15 01 00 00 13 00 00 00 00 00 00 00 6d 6f 64 65 |............mode| 0000de60 00 00 00 00 8c fd 00 00 46 ff ff ff cc 8d f1 22 |........F......"| 0000de70 66 01 00 00 13 00 00 00 00 00 00 00 6d 6f 64 65 |f...........mode| 0000de80 76 61 72 00 f4 fe 00 00 46 fd ff ff cd 6e f1 22 |var.....F....n."| 0000de90 b9 00 00 00 13 00 00 00 00 00 00 00 6d 6f 64 65 |............mode| 0000dea0 76 61 72 5f 00 00 00 00 b0 ff 00 00 46 ff ff ff |var_........F...| 0000deb0 17 99 f0 22 f5 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0000dec0 6d 6f 76 65 00 00 00 00 a8 00 01 00 46 ff ff ff |move........F...| 0000ded0 66 9e f0 22 0b 01 00 00 13 00 00 00 00 00 00 00 |f.."............| 0000dee0 6d 6f 76 65 62 79 00 00 b4 01 01 00 46 ff ff ff |moveby......F...| 0000def0 c5 a5 f0 22 78 01 00 00 13 00 00 00 00 00 00 00 |..."x...........| 0000df00 6f 72 69 67 69 6e 00 00 2c 03 01 00 46 ff ff ff |origin..,...F...| 0000df10 4f c0 f0 22 eb 02 00 00 13 00 00 00 00 00 00 00 |O.."............| 0000df20 70 61 6c 65 74 74 65 00 18 06 01 00 46 ff ff ff |palette.....F...| 0000df30 2d e2 f0 22 16 01 00 00 13 00 00 00 00 00 00 00 |-.."............| 0000df40 70 6c 6f 74 00 00 00 00 30 07 01 00 46 fd ff ff |plot....0...F...| 0000df50 77 ad f3 22 53 01 00 00 13 00 00 00 00 00 00 00 |w.."S...........| 0000df60 70 6c 6f 74 62 6d 6f 64 5f 00 00 00 84 08 01 00 |plotbmod_.......| 0000df70 46 fd ff ff f2 a9 f3 22 5e 06 00 00 13 00 00 00 |F......"^.......| 0000df80 00 00 00 00 70 6c 6f 74 63 6f 6d 5f 00 00 00 00 |....plotcom_....| 0000df90 e4 0e 01 00 46 fd ff ff 52 b0 f3 22 cd 01 00 00 |....F...R.."....| 0000dfa0 13 00 00 00 00 00 00 00 70 6c 6f 74 6d 6f 64 5f |........plotmod_| 0000dfb0 00 00 00 00 b4 10 01 00 46 ff ff ff 80 f2 f0 22 |........F......"| 0000dfc0 e7 01 00 00 13 00 00 00 00 00 00 00 70 6f 69 6e |............poin| 0000dfd0 74 00 00 00 9c 12 01 00 46 ff ff ff b1 15 f0 22 |t.......F......"| 0000dfe0 09 01 00 00 13 00 00 00 00 00 00 00 70 6f 73 00 |............pos.| 0000dff0 a8 13 01 00 46 ff ff ff 2f 00 f1 22 5b 01 00 00 |....F.../.."[...| 0000e000 13 00 00 00 00 00 00 00 72 65 63 74 61 6e 67 6c |........rectangl| 0000e010 65 00 00 00 04 15 01 00 46 ff ff ff ce 09 f1 22 |e.......F......"| 0000e020 69 01 00 00 13 00 00 00 00 00 00 00 72 65 63 74 |i...........rect| 0000e030 61 6e 67 6c 65 66 69 6c 6c 00 00 00 70 16 01 00 |anglefill...p...| 0000e040 46 ff ff ff d2 0a f2 22 2e 01 00 00 13 00 00 00 |F......"........| 0000e050 00 00 00 00 73 65 74 62 65 61 74 73 00 00 00 00 |....setbeats....| 0000e060 a0 17 01 00 46 ff ff ff b1 10 f2 22 87 01 00 00 |....F......"....| 0000e070 13 00 00 00 00 00 00 00 73 65 74 74 65 6d 70 6f |........settempo| 0000e080 00 00 00 00 28 19 01 00 46 ff ff ff ae 1f f2 22 |....(...F......"| 0000e090 1d 04 00 00 13 00 00 00 00 00 00 00 73 6f 75 6e |............soun| 0000e0a0 64 00 00 00 48 1d 01 00 46 ff ff ff 09 1c f3 22 |d...H...F......"| 0000e0b0 3d 01 00 00 13 00 00 00 00 00 00 00 73 6f 75 6e |=...........soun| 0000e0c0 64 6f 66 66 00 00 00 00 88 1e 01 00 46 ff ff ff |doff........F...| 0000e0d0 75 21 f3 22 f7 00 00 00 13 00 00 00 00 00 00 00 |u!."............| 0000e0e0 73 6f 75 6e 64 6f 6e 00 80 1f 01 00 46 ff ff ff |soundon.....F...| 0000e0f0 9a 28 f3 22 bb 01 00 00 13 00 00 00 00 00 00 00 |.(."............| 0000e100 73 74 65 72 65 6f 00 00 3c 21 01 00 46 ff ff ff |stereo..<!..F...| 0000e110 a2 1b f0 22 17 01 00 00 13 00 00 00 00 00 00 00 |..."............| 0000e120 73 74 72 69 6e 67 70 72 69 6e 74 00 54 22 01 00 |stringprint.T"..| 0000e130 46 ff ff ff a4 21 f0 22 3e 01 00 00 13 00 00 00 |F....!.">.......| 0000e140 00 00 00 00 74 61 62 00 94 23 01 00 46 fd ff ff |....tab..#..F...| 0000e150 54 ff ef 22 9b 00 00 00 13 00 00 00 00 00 00 00 |T.."............| 0000e160 74 65 78 74 5f 00 00 00 30 24 01 00 46 ff ff ff |text_...0$..F...| 0000e170 4d 19 f1 22 6b 02 00 00 13 00 00 00 00 00 00 00 |M.."k...........| 0000e180 74 69 6e 74 00 00 00 00 9c 26 01 00 46 ff ff ff |tint.....&..F...| 0000e190 e6 26 f0 22 ff 00 00 00 13 00 00 00 00 00 00 00 |.&."............| 0000e1a0 76 64 75 00 9c 27 01 00 46 fd ff ff e4 a4 f3 22 |vdu..'..F......"| 0000e1b0 d3 04 00 00 13 00 00 00 00 00 00 00 76 64 75 63 |............vduc| 0000e1c0 6f 6d 5f 00 70 2c 01 00 46 ff ff ff 15 2c f0 22 |om_.p,..F....,."| 0000e1d0 58 01 00 00 13 00 00 00 00 00 00 00 76 64 75 71 |X...........vduq| 0000e1e0 00 00 00 00 c8 2d 01 00 46 ff ff ff f4 2d f1 22 |.....-..F....-."| 0000e1f0 e6 00 00 00 13 00 00 00 00 00 00 00 76 64 75 76 |............vduv| 0000e200 61 72 00 00 b0 2e 01 00 46 fd ff ff a7 50 f1 22 |ar......F....P."| 0000e210 ba 00 00 00 13 00 00 00 00 00 00 00 76 64 75 76 |............vduv| 0000e220 61 72 5f 00 6c 2f 01 00 46 ff ff ff 76 84 f1 22 |ar_.l/..F...v.."| 0000e230 d0 01 00 00 13 00 00 00 00 00 00 00 76 64 75 76 |............vduv| 0000e240 61 72 73 00 3c 31 01 00 46 ff ff ff c3 31 f0 22 |ars.<1..F....1."| 0000e250 5f 01 00 00 13 00 00 00 00 00 00 00 76 64 75 77 |_...........vduw| 0000e260 00 00 00 00 9c 32 01 00 46 fd ff ff 20 29 f1 22 |.....2..F... )."| 0000e270 58 00 00 00 13 00 00 00 00 00 00 00 76 6d 76 61 |X...........vmva| 0000e280 72 5f 00 00 f4 32 01 00 46 ff ff ff 3f 30 f3 22 |r_...2..F...?0."| 0000e290 df 00 00 00 13 00 00 00 00 00 00 00 76 6f 69 63 |............voic| 0000e2a0 65 73 00 00 d4 33 01 00 46 ff ff ff 3e 37 f0 22 |es...3..F...>7."| 0000e2b0 c9 00 00 00 13 00 00 00 00 00 00 00 76 70 6f 73 |............vpos| 0000e2c0 00 00 00 00 44 41 54 41 a5 02 00 00 62 62 63 5f |....DATA....bbc_| 0000e2d0 61 64 76 61 6c 0a 53 79 6e 74 61 78 3a 09 69 6e |adval.Syntax:.in| 0000e2e0 74 20 62 62 63 5f 61 64 76 61 6c 20 28 69 6e 74 |t bbc_adval (int| 0000e2f0 20 62 75 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c | buf);.Header:.<| 0000e300 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 |bbc.h=>bbc>..Ret| 0000e310 75 72 6e 73 3a 09 41 20 76 61 6c 75 65 2c 20 64 |urns:.A value, d| 0000e320 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 |epending on the | 0000e330 76 61 6c 75 65 20 6f 66 20 62 75 66 2e 0a 0a 54 |value of buf...T| 0000e340 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 |his function rea| 0000e350 64 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 |ds the contents | 0000e360 61 6e 64 20 73 74 61 74 75 73 20 6f 66 20 76 61 |and status of va| 0000e370 72 69 6f 75 73 20 62 75 66 66 65 72 73 2c 20 64 |rious buffers, d| 0000e380 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 |epending on the | 0000e390 76 61 6c 75 65 20 6f 66 20 2f 62 75 66 2f 3a 0a |value of /buf/:.| 0000e3a0 0a 23 74 61 62 0a 20 20 20 20 37 09 58 20 63 6f |.#tab. 7.X co| 0000e3b0 6f 72 64 69 6e 61 74 65 20 6f 66 20 6d 6f 75 73 |ordinate of mous| 0000e3c0 65 20 28 64 6f 20 6e 6f 74 20 75 73 65 29 0a 20 |e (do not use). | 0000e3d0 20 20 20 38 09 59 20 63 6f 6f 72 64 69 6e 61 74 | 8.Y coordinat| 0000e3e0 65 20 6f 66 20 6d 6f 75 73 65 20 28 64 6f 20 6e |e of mouse (do n| 0000e3f0 6f 74 20 75 73 65 29 0a 20 20 20 20 32 34 36 09 |ot use). 246.| 0000e400 42 79 74 65 73 20 66 72 65 65 20 69 6e 20 6d 6f |Bytes free in mo| 0000e410 75 73 65 20 62 75 66 66 65 72 0a 20 20 20 20 32 |use buffer. 2| 0000e420 35 32 09 42 79 74 65 73 20 66 72 65 65 20 69 6e |52.Bytes free in| 0000e430 20 70 72 69 6e 74 65 72 20 62 75 66 66 65 72 0a | printer buffer.| 0000e440 20 20 20 20 32 35 33 09 42 79 74 65 73 20 66 72 | 253.Bytes fr| 0000e450 65 65 20 69 6e 20 52 53 34 32 33 20 6f 75 74 70 |ee in RS423 outp| 0000e460 75 74 20 62 75 66 66 65 72 0a 20 20 20 20 32 35 |ut buffer. 25| 0000e470 34 09 42 79 74 65 73 20 69 6e 20 52 53 34 32 33 |4.Bytes in RS423| 0000e480 20 69 6e 70 75 74 20 62 75 66 66 65 72 0a 20 20 | input buffer. | 0000e490 20 20 32 35 35 09 42 79 74 65 73 20 69 6e 20 6b | 255.Bytes in k| 0000e4a0 65 79 62 6f 61 72 64 20 62 75 66 66 65 72 0a 0a |eyboard buffer..| 0000e4b0 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 |It is recommende| 0000e4c0 64 20 62 79 20 41 63 6f 72 6e 20 74 68 61 74 20 |d by Acorn that | 0000e4d0 79 6f 75 20 64 6f 20 6e 6f 74 20 75 73 65 20 62 |you do not use b| 0000e4e0 62 63 5f 61 64 76 61 6c 28 29 20 37 20 61 6e 64 |bc_adval() 7 and| 0000e4f0 20 38 20 74 6f 20 72 65 61 64 20 74 68 65 20 6d | 8 to read the m| 0000e500 6f 75 73 65 20 70 6f 73 69 74 69 6f 6e 2c 20 62 |ouse position, b| 0000e510 75 74 20 63 61 6c 6c 20 74 68 65 20 4f 53 5f 4d |ut call the OS_M| 0000e520 6f 75 73 65 20 53 57 49 20 69 6e 73 74 65 61 64 |ouse SWI instead| 0000e530 2e 0a 0a 54 68 69 73 20 63 61 6c 6c 20 69 73 20 |...This call is | 0000e540 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f |equivalent to <O| 0000e550 53 5f 42 79 74 65 3d 3e 53 57 49 3a 4f 53 5f 42 |S_Byte=>SWI:OS_B| 0000e560 79 74 65 3e 20 31 32 38 2e 00 00 00 44 41 54 41 |yte> 128....DATA| 0000e570 0f 01 00 00 62 62 63 5f 63 69 72 63 6c 65 0a 53 |....bbc_circle.S| 0000e580 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 0000e590 3e 20 2a 62 62 63 5f 63 69 72 63 6c 65 20 28 69 |> *bbc_circle (i| 0000e5a0 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 |nt x, int y, int| 0000e5b0 20 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 | r);.Header:.<bb| 0000e5c0 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 |c.h=>bbc>..Retur| 0000e5d0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 0000e5e0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 0000e5f0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 0000e600 75 6e 63 74 69 6f 6e 20 64 72 61 77 73 20 61 20 |unction draws a | 0000e610 63 69 72 63 6c 65 20 77 69 74 68 20 63 65 6e 74 |circle with cent| 0000e620 72 65 20 61 74 20 73 63 72 65 65 6e 20 63 6f 6f |re at screen coo| 0000e630 72 64 69 6e 61 74 65 73 20 28 78 2c 79 29 20 61 |rdinates (x,y) a| 0000e640 6e 64 20 72 61 64 69 75 73 20 72 2e 20 45 71 75 |nd radius r. Equ| 0000e650 69 76 61 6c 65 6e 74 20 74 6f 20 3c 43 49 52 43 |ivalent to <CIRC| 0000e660 4c 45 3d 3e 42 61 73 69 63 3a 43 49 52 43 4c 45 |LE=>Basic:CIRCLE| 0000e670 3e 20 69 6e 20 42 61 73 69 63 2e 00 44 41 54 41 |> in Basic..DATA| 0000e680 23 01 00 00 62 62 63 5f 63 69 72 63 6c 65 66 69 |#...bbc_circlefi| 0000e690 6c 6c 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ll.Syntax:.<os_e| 0000e6a0 72 72 6f 72 3e 20 2a 62 62 63 5f 63 69 72 63 6c |rror> *bbc_circl| 0000e6b0 65 66 69 6c 6c 20 28 69 6e 74 20 78 2c 20 69 6e |efill (int x, in| 0000e6c0 74 20 79 2c 20 69 6e 74 20 72 29 3b 0a 48 65 61 |t y, int r);.Hea| 0000e6d0 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 |der:.<bbc.h=>bbc| 0000e6e0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 0000e6f0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 0000e700 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 0000e710 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0000e720 64 72 61 77 73 20 61 20 66 69 6c 6c 65 64 20 63 |draws a filled c| 0000e730 69 72 63 6c 65 20 77 69 74 68 20 63 65 6e 74 72 |ircle with centr| 0000e740 65 20 61 74 20 73 63 72 65 65 6e 20 63 6f 6f 72 |e at screen coor| 0000e750 64 69 6e 61 74 65 73 20 28 78 2c 79 29 20 61 6e |dinates (x,y) an| 0000e760 64 20 72 61 64 69 75 73 20 72 2e 20 45 71 75 69 |d radius r. Equi| 0000e770 76 61 6c 65 6e 74 20 74 6f 20 3c 43 49 52 43 4c |valent to <CIRCL| 0000e780 45 20 46 49 4c 4c 3d 3e 42 61 73 69 63 3a 43 49 |E FILL=>Basic:CI| 0000e790 52 43 4c 45 3e 20 69 6e 20 42 61 73 69 63 2e 00 |RCLE> in Basic..| 0000e7a0 44 41 54 41 e3 00 00 00 62 62 63 5f 63 6c 67 0a |DATA....bbc_clg.| 0000e7b0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0000e7c0 72 3e 20 2a 62 62 63 5f 63 6c 67 20 28 76 6f 69 |r> *bbc_clg (voi| 0000e7d0 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 |d);.Header:.<bbc| 0000e7e0 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e |.h=>bbc>..Return| 0000e7f0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 0000e800 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 0000e810 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 0000e820 6e 63 74 69 6f 6e 20 63 6c 65 61 72 73 20 74 68 |nction clears th| 0000e830 65 20 67 72 61 70 68 69 63 73 20 77 69 6e 64 6f |e graphics windo| 0000e840 77 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 |w to the current| 0000e850 20 62 61 63 6b 67 72 6f 75 6e 64 20 67 72 61 70 | background grap| 0000e860 68 69 63 73 20 63 6f 6c 6f 75 72 20 28 73 65 74 |hics colour (set| 0000e870 20 75 73 69 6e 67 20 3c 62 62 63 5f 67 63 6f 6c | using <bbc_gcol| 0000e880 3e 29 2e 00 44 41 54 41 dd 00 00 00 62 62 63 5f |>)..DATA....bbc_| 0000e890 63 6c 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |cls.Syntax:.<os_| 0000e8a0 65 72 72 6f 72 3e 20 2a 62 62 63 5f 63 6c 73 20 |error> *bbc_cls | 0000e8b0 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 0000e8c0 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 |<bbc.h=>bbc>..Re| 0000e8d0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 0000e8e0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 0000e8f0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 0000e900 73 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 |s function clear| 0000e910 73 20 74 68 65 20 74 65 78 74 20 77 69 6e 64 6f |s the text windo| 0000e920 77 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 |w to the current| 0000e930 20 62 61 63 6b 67 72 6f 75 6e 64 20 74 65 78 74 | background text| 0000e940 20 63 6f 6c 6f 75 72 20 28 73 65 74 20 75 73 69 | colour (set usi| 0000e950 6e 67 20 3c 62 62 63 5f 63 6f 6c 6f 75 72 3e 29 |ng <bbc_colour>)| 0000e960 2e 00 00 00 44 41 54 41 36 01 00 00 62 62 63 5f |....DATA6...bbc_| 0000e970 63 6f 6c 6f 75 72 0a 53 79 6e 74 61 78 3a 09 3c |colour.Syntax:.<| 0000e980 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 63 |os_error> *bbc_c| 0000e990 6f 6c 6f 75 72 20 28 69 6e 74 20 63 29 3b 0a 48 |olour (int c);.H| 0000e9a0 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 |eader:.<bbc.h=>b| 0000e9b0 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |bc>..Returns:.Po| 0000e9c0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 0000e9d0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 0000e9e0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0000e9f0 6e 20 73 65 74 73 20 74 68 65 20 63 75 72 72 65 |n sets the curre| 0000ea00 6e 74 20 74 65 78 74 20 63 6f 6c 6f 75 72 20 74 |nt text colour t| 0000ea10 6f 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 2f |o the value in /| 0000ea20 63 2f 2e 20 46 6f 72 20 63 5c 3c 31 32 38 20 74 |c/. For c\<128 t| 0000ea30 68 69 73 20 61 6c 74 65 72 73 20 74 68 65 20 74 |his alters the t| 0000ea40 65 78 74 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 |ext foreground c| 0000ea50 6f 6c 6f 75 72 20 74 6f 20 63 2c 20 61 6e 64 20 |olour to c, and | 0000ea60 66 6f 72 20 63 3e 31 32 37 20 74 68 69 73 20 61 |for c>127 this a| 0000ea70 6c 74 65 72 73 20 74 68 65 20 74 65 78 74 20 62 |lters the text b| 0000ea80 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |ackground colour| 0000ea90 20 74 6f 20 63 2d 31 32 38 2e 00 00 44 41 54 41 | to c-128...DATA| 0000eaa0 4f 01 00 00 62 62 63 5f 63 75 72 73 6f 72 0a 53 |O...bbc_cursor.S| 0000eab0 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 0000eac0 3e 20 2a 62 62 63 5f 63 75 72 73 6f 72 20 28 69 |> *bbc_cursor (i| 0000ead0 6e 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt n);.Header:.<| 0000eae0 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 |bbc.h=>bbc>..Ret| 0000eaf0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 0000eb00 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 0000eb10 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 0000eb20 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 65 | function change| 0000eb30 73 20 74 68 65 20 61 70 70 65 61 72 61 6e 63 65 |s the appearance| 0000eb40 20 6f 66 20 74 68 65 20 74 65 78 74 20 63 75 72 | of the text cur| 0000eb50 73 6f 72 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e |sor depending on| 0000eb60 20 2f 6e 2f 2e 20 50 6f 73 73 69 62 6c 65 20 76 | /n/. Possible v| 0000eb70 61 6c 75 65 73 20 61 72 65 3a 0a 0a 23 74 61 62 |alues are:..#tab| 0000eb80 0a 20 20 30 09 48 69 64 65 20 63 75 72 73 6f 72 |. 0.Hide cursor| 0000eb90 0a 20 20 31 09 53 68 6f 77 20 63 75 72 73 6f 72 |. 1.Show cursor| 0000eba0 0a 20 20 32 09 53 74 65 61 64 79 20 63 75 72 73 |. 2.Steady curs| 0000ebb0 6f 72 0a 20 20 33 09 46 6c 61 73 68 69 6e 67 20 |or. 3.Flashing | 0000ebc0 63 75 72 73 6f 72 0a 0a 45 71 75 69 76 61 6c 65 |cursor..Equivale| 0000ebd0 6e 74 20 74 6f 20 3c 56 44 55 20 32 33 2c 31 3d |nt to <VDU 23,1=| 0000ebe0 3e 56 44 55 3a 32 33 2c 31 3e 2e 00 44 41 54 41 |>VDU:23,1>..DATA| 0000ebf0 16 01 00 00 62 62 63 5f 64 72 61 77 0a 53 79 6e |....bbc_draw.Syn| 0000ec00 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0000ec10 2a 62 62 63 5f 64 72 61 77 20 28 69 6e 74 20 78 |*bbc_draw (int x| 0000ec20 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 |, int y);.Header| 0000ec30 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a |:.<bbc.h=>bbc>..| 0000ec40 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 0000ec50 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 0000ec60 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 0000ec70 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 72 61 |his function dra| 0000ec80 77 73 20 61 20 6c 69 6e 65 20 69 6e 20 74 68 65 |ws a line in the| 0000ec90 20 63 75 72 72 65 6e 74 20 67 72 61 70 68 69 63 | current graphic| 0000eca0 73 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c |s foreground col| 0000ecb0 6f 75 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 |our from the cur| 0000ecc0 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 74 6f |rent position to| 0000ecd0 20 28 78 2c 79 29 2e 20 45 71 75 69 76 61 6c 65 | (x,y). Equivale| 0000ece0 6e 74 20 74 6f 20 3c 44 52 41 57 3d 3e 42 61 73 |nt to <DRAW=>Bas| 0000ecf0 69 63 3a 44 52 41 57 3e 20 69 6e 20 42 61 73 69 |ic:DRAW> in Basi| 0000ed00 63 2e 00 00 44 41 54 41 28 01 00 00 62 62 63 5f |c...DATA(...bbc_| 0000ed10 64 72 61 77 62 79 0a 53 79 6e 74 61 78 3a 09 3c |drawby.Syntax:.<| 0000ed20 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 64 |os_error> *bbc_d| 0000ed30 72 61 77 62 79 20 28 69 6e 74 20 78 2c 20 69 6e |rawby (int x, in| 0000ed40 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 |t y);.Header:.<b| 0000ed50 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 |bc.h=>bbc>..Retu| 0000ed60 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0000ed70 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0000ed80 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0000ed90 66 75 6e 63 74 69 6f 6e 20 64 72 61 77 73 20 61 |function draws a| 0000eda0 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 63 75 72 | line in the cur| 0000edb0 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 66 6f |rent graphics fo| 0000edc0 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 20 |reground colour | 0000edd0 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 |from the current| 0000ede0 20 70 6f 73 69 74 69 6f 6e 20 72 65 6c 61 74 69 | position relati| 0000edf0 76 65 6c 79 20 62 79 20 28 78 2c 79 29 2e 20 45 |vely by (x,y). E| 0000ee00 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 44 52 |quivalent to <DR| 0000ee10 41 57 20 42 59 3d 3e 42 61 73 69 63 3a 44 52 41 |AW BY=>Basic:DRA| 0000ee20 57 3e 20 69 6e 20 42 61 73 69 63 2e 44 41 54 41 |W> in Basic.DATA| 0000ee30 e4 00 00 00 62 62 63 5f 66 69 6c 6c 0a 53 79 6e |....bbc_fill.Syn| 0000ee40 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0000ee50 2a 62 62 63 5f 66 69 6c 65 20 28 69 6e 74 20 78 |*bbc_file (int x| 0000ee60 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 |, int y);.Header| 0000ee70 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a |:.<bbc.h=>bbc>..| 0000ee80 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 0000ee90 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 0000eea0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 0000eeb0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 6c 6f |his function flo| 0000eec0 6f 64 20 66 69 6c 6c 73 20 61 6e 20 61 72 65 61 |od fills an area| 0000eed0 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e | with the curren| 0000eee0 74 20 67 72 61 70 68 69 63 73 20 66 6f 72 65 67 |t graphics foreg| 0000eef0 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 2c 20 73 74 |round colour, st| 0000ef00 61 72 74 69 6e 67 20 61 74 20 28 78 2c 79 29 2e |arting at (x,y).| 0000ef10 44 41 54 41 17 01 00 00 62 62 63 5f 67 63 6f 6c |DATA....bbc_gcol| 0000ef20 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 0000ef30 6f 72 3e 20 2a 62 62 63 5f 67 63 6f 6c 20 28 69 |or> *bbc_gcol (i| 0000ef40 6e 74 20 61 2c 20 69 6e 74 20 63 29 3b 0a 48 65 |nt a, int c);.He| 0000ef50 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 |ader:.<bbc.h=>bb| 0000ef60 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |c>..Returns:.Poi| 0000ef70 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 0000ef80 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 0000ef90 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0000efa0 20 63 68 61 6e 67 65 73 20 74 68 65 20 63 75 72 | changes the cur| 0000efb0 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 66 6f |rent graphics fo| 0000efc0 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 20 |reground colour | 0000efd0 28 69 6e 20 63 29 20 61 6e 64 20 3c 61 63 74 69 |(in c) and <acti| 0000efe0 6f 6e 3d 3e 56 44 55 3a 31 38 61 3e 20 28 61 29 |on=>VDU:18a> (a)| 0000eff0 2e 20 49 66 20 63 5c 3e 31 32 38 20 74 68 65 6e |. If c\>128 then| 0000f000 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 | the background | 0000f010 63 6f 6c 6f 75 72 20 69 73 20 73 65 74 20 74 6f |colour is set to| 0000f020 20 63 2d 31 32 38 2e 00 44 41 54 41 79 01 00 00 | c-128..DATAy...| 0000f030 62 62 63 5f 67 65 74 0a 53 79 6e 74 61 78 3a 09 |bbc_get.Syntax:.| 0000f040 69 6e 74 20 62 62 63 5f 67 65 74 20 28 76 6f 69 |int bbc_get (voi| 0000f050 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 |d);.Header:.<bbc| 0000f060 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e |.h=>bbc>..Return| 0000f070 73 3a 09 54 68 65 20 63 68 61 72 61 63 74 65 72 |s:.The character| 0000f080 20 72 65 61 64 2e 0a 0a 54 68 69 73 20 66 75 6e | read...This fun| 0000f090 63 74 69 6f 6e 20 72 65 61 64 73 20 61 20 63 68 |ction reads a ch| 0000f0a0 61 72 61 63 74 65 72 20 66 72 6f 6d 20 74 68 65 |aracter from the| 0000f0b0 20 63 75 72 72 65 6e 74 20 69 6e 70 75 74 20 73 | current input s| 0000f0c0 74 72 65 61 6d 2e 20 49 74 20 77 61 69 74 73 20 |tream. It waits | 0000f0d0 75 6e 74 69 6c 20 6f 6e 65 20 69 73 20 61 76 61 |until one is ava| 0000f0e0 69 6c 61 62 6c 65 2c 20 73 6f 20 6d 61 79 20 68 |ilable, so may h| 0000f0f0 61 6c 74 20 74 68 65 20 70 72 6f 67 72 61 6d 20 |alt the program | 0000f100 74 65 6d 70 6f 72 61 72 69 6c 79 2e 20 49 66 20 |temporarily. If | 0000f110 61 6e 20 65 73 63 61 70 65 20 63 6f 6e 64 69 74 |an escape condit| 0000f120 69 6f 6e 20 6f 63 63 75 72 73 2c 20 74 68 65 20 |ion occurs, the | 0000f130 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 0000f140 20 61 20 76 61 6c 75 65 20 67 72 65 61 74 65 72 | a value greater| 0000f150 20 74 68 61 6e 20 32 35 35 2e 0a 0a 54 68 69 73 | than 255...This| 0000f160 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 64 65 | function is ide| 0000f170 6e 74 69 63 61 6c 20 74 6f 20 4f 53 5f 52 65 61 |ntical to OS_Rea| 0000f180 64 43 2c 20 6f 72 20 3c 47 45 54 3d 3e 42 61 73 |dC, or <GET=>Bas| 0000f190 69 63 3a 47 45 54 3e 20 69 6e 20 42 61 73 69 63 |ic:GET> in Basic| 0000f1a0 2e 00 00 00 44 41 54 41 be 00 00 00 62 62 63 5f |....DATA....bbc_| 0000f1b0 67 65 74 62 65 61 74 0a 53 79 6e 74 61 78 3a 09 |getbeat.Syntax:.| 0000f1c0 69 6e 74 20 62 62 63 5f 67 65 74 62 65 61 74 20 |int bbc_getbeat | 0000f1d0 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 0000f1e0 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 |<bbc.h=>bbc>..Re| 0000f1f0 74 75 72 6e 73 3a 09 54 68 65 20 62 65 61 74 20 |turns:.The beat | 0000f200 6e 75 6d 62 65 72 2e 0a 0a 54 68 69 73 20 66 75 |number...This fu| 0000f210 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 |nction returns t| 0000f220 68 65 20 63 75 72 72 65 6e 74 20 62 65 61 74 20 |he current beat | 0000f230 6e 75 6d 62 65 72 2e 20 49 74 20 69 73 20 65 71 |number. It is eq| 0000f240 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 |uivalent to the | 0000f250 53 57 49 20 53 6f 75 6e 64 5f 51 42 65 61 74 20 |SWI Sound_QBeat | 0000f260 30 2e 00 00 44 41 54 41 c7 00 00 00 62 62 63 5f |0...DATA....bbc_| 0000f270 67 65 74 62 65 61 74 73 0a 53 79 6e 74 61 78 3a |getbeats.Syntax:| 0000f280 09 69 6e 74 20 62 62 63 5f 67 65 74 62 65 61 74 |.int bbc_getbeat| 0000f290 73 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |s (void);.Header| 0000f2a0 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a |:.<bbc.h=>bbc>..| 0000f2b0 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 75 72 |Returns:.The cur| 0000f2c0 72 65 6e 74 20 62 61 72 20 6c 65 6e 67 74 68 2e |rent bar length.| 0000f2d0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0000f2e0 72 65 61 64 73 20 74 68 65 20 63 75 72 72 65 6e |reads the curren| 0000f2f0 74 20 62 61 72 20 6c 65 6e 67 74 68 2e 20 49 74 |t bar length. It| 0000f300 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 | is equivalent t| 0000f310 6f 20 74 68 65 20 53 57 49 20 53 6f 75 6e 64 5f |o the SWI Sound_| 0000f320 51 42 65 61 74 20 28 2d 31 29 2e 00 44 41 54 41 |QBeat (-1)..DATA| 0000f330 3b 01 00 00 62 62 63 5f 67 65 74 74 65 6d 70 6f |;...bbc_gettempo| 0000f340 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 62 62 63 |.Syntax:.int bbc| 0000f350 5f 67 65 74 74 65 6d 70 6f 20 28 76 6f 69 64 29 |_gettempo (void)| 0000f360 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 |;.Header:.<bbc.h| 0000f370 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a |=>bbc>..Returns:| 0000f380 09 54 68 65 20 63 75 72 72 65 6e 74 20 74 65 6d |.The current tem| 0000f390 70 6f 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |po...This functi| 0000f3a0 6f 6e 20 72 65 61 64 73 20 74 68 65 20 74 65 6d |on reads the tem| 0000f3b0 70 6f 20 66 6f 72 20 74 68 65 20 53 6f 75 6e 64 |po for the Sound| 0000f3c0 20 53 63 68 65 64 75 6c 65 72 20 69 65 20 74 68 | Scheduler ie th| 0000f3d0 65 20 72 61 74 65 20 61 74 20 77 68 69 63 68 20 |e rate at which | 0000f3e0 74 68 65 20 62 65 61 74 20 63 6f 75 6e 74 65 72 |the beat counter| 0000f3f0 20 63 6f 75 6e 74 73 2e 20 54 68 65 20 64 65 66 | counts. The def| 0000f400 61 75 6c 74 20 69 73 20 30 78 31 30 30 30 20 77 |ault is 0x1000 w| 0000f410 68 69 63 68 20 63 6f 72 72 65 73 70 6f 6e 64 73 |hich corresponds| 0000f420 20 74 6f 20 6f 6e 65 20 62 65 61 74 20 70 65 72 | to one beat per| 0000f430 20 63 65 6e 74 69 73 65 63 6f 6e 64 2e 20 30 78 | centisecond. 0x| 0000f440 32 30 30 30 20 69 73 20 74 77 6f 20 62 65 61 74 |2000 is two beat| 0000f450 73 20 70 65 72 20 63 65 6e 74 69 73 65 63 6f 6e |s per centisecon| 0000f460 64 2c 20 65 74 63 2e 00 44 41 54 41 fb 00 00 00 |d, etc..DATA....| 0000f470 47 72 61 70 68 69 63 73 20 4f 75 74 70 75 74 20 |Graphics Output | 0000f480 46 75 6e 63 74 69 6f 6e 73 0a 23 54 61 62 6c 65 |Functions.#Table| 0000f490 20 36 20 31 36 0a 62 62 63 5f 63 69 72 63 6c 65 | 6 16.bbc_circle| 0000f4a0 0a 62 62 63 5f 63 69 72 63 6c 65 66 69 6c 6c 0a |.bbc_circlefill.| 0000f4b0 62 62 63 5f 63 6c 67 0a 62 62 63 5f 64 72 61 77 |bbc_clg.bbc_draw| 0000f4c0 0a 62 62 63 5f 64 72 61 77 62 79 0a 62 62 63 5f |.bbc_drawby.bbc_| 0000f4d0 66 69 6c 6c 0a 62 62 63 5f 67 63 6f 6c 0a 62 62 |fill.bbc_gcol.bb| 0000f4e0 63 5f 67 77 69 6e 64 6f 77 0a 62 62 63 5f 6d 6f |c_gwindow.bbc_mo| 0000f4f0 64 65 0a 62 62 63 5f 6d 6f 76 65 0a 62 62 63 5f |de.bbc_move.bbc_| 0000f500 6d 6f 76 65 62 79 0a 62 62 63 5f 6f 72 69 67 69 |moveby.bbc_origi| 0000f510 6e 0a 62 62 63 5f 70 61 6c 65 74 74 65 0a 62 62 |n.bbc_palette.bb| 0000f520 63 5f 70 6c 6f 74 0a 62 62 63 5f 70 6f 69 6e 74 |c_plot.bbc_point| 0000f530 0a 62 62 63 5f 72 65 63 74 61 6e 67 6c 65 0a 62 |.bbc_rectangle.b| 0000f540 62 63 5f 72 65 63 74 61 6e 67 6c 65 66 69 6c 6c |bc_rectanglefill| 0000f550 0a 62 62 63 5f 74 69 6e 74 0a 23 45 6e 64 54 61 |.bbc_tint.#EndTa| 0000f560 62 6c 65 00 44 41 54 41 1f 01 00 00 47 72 61 70 |ble.DATA....Grap| 0000f570 68 69 63 73 20 4f 75 74 70 75 74 20 46 75 6e 63 |hics Output Func| 0000f580 74 69 6f 6e 73 0a 23 54 61 62 6c 65 20 36 20 31 |tions.#Table 6 1| 0000f590 36 0a 3c 62 62 63 5f 63 69 72 63 6c 65 3e 0a 3c |6.<bbc_circle>.<| 0000f5a0 62 62 63 5f 63 69 72 63 6c 65 66 69 6c 6c 3e 0a |bbc_circlefill>.| 0000f5b0 3c 62 62 63 5f 63 6c 67 3e 0a 3c 62 62 63 5f 64 |<bbc_clg>.<bbc_d| 0000f5c0 72 61 77 3e 0a 3c 62 62 63 5f 64 72 61 77 62 79 |raw>.<bbc_drawby| 0000f5d0 3e 0a 3c 62 62 63 5f 66 69 6c 6c 3e 0a 3c 62 62 |>.<bbc_fill>.<bb| 0000f5e0 63 5f 67 63 6f 6c 3e 0a 3c 62 62 63 5f 67 77 69 |c_gcol>.<bbc_gwi| 0000f5f0 6e 64 6f 77 3e 0a 3c 62 62 63 5f 6d 6f 64 65 3e |ndow>.<bbc_mode>| 0000f600 0a 3c 62 62 63 5f 6d 6f 76 65 3e 0a 3c 62 62 63 |.<bbc_move>.<bbc| 0000f610 5f 6d 6f 76 65 62 79 3e 0a 3c 62 62 63 5f 6f 72 |_moveby>.<bbc_or| 0000f620 69 67 69 6e 3e 0a 3c 62 62 63 5f 70 61 6c 65 74 |igin>.<bbc_palet| 0000f630 74 65 3e 0a 3c 62 62 63 5f 70 6c 6f 74 3e 0a 3c |te>.<bbc_plot>.<| 0000f640 62 62 63 5f 70 6f 69 6e 74 3e 0a 3c 62 62 63 5f |bbc_point>.<bbc_| 0000f650 72 65 63 74 61 6e 67 6c 65 3e 0a 3c 62 62 63 5f |rectangle>.<bbc_| 0000f660 72 65 63 74 61 6e 67 6c 65 66 69 6c 6c 3e 0a 3c |rectanglefill>.<| 0000f670 62 62 63 5f 74 69 6e 74 3e 0a 23 45 6e 64 54 61 |bbc_tint>.#EndTa| 0000f680 62 6c 65 00 44 41 54 41 8b 01 00 00 62 62 63 5f |ble.DATA....bbc_| 0000f690 67 77 69 6e 64 6f 77 0a 53 79 6e 74 61 78 3a 09 |gwindow.Syntax:.| 0000f6a0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f |<os_error> *bbc_| 0000f6b0 67 77 69 6e 64 6f 77 20 28 69 6e 74 20 78 6d 69 |gwindow (int xmi| 0000f6c0 6e 2c 20 69 6e 74 20 79 6d 69 6e 2c 20 69 6e 74 |n, int ymin, int| 0000f6d0 20 78 6d 61 78 2c 20 69 6e 74 20 79 6d 61 78 29 | xmax, int ymax)| 0000f6e0 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 |;.Header:.<bbc.h| 0000f6f0 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a |=>bbc>..Returns:| 0000f700 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0000f710 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0000f720 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0000f730 74 69 6f 6e 20 64 65 66 69 6e 65 73 20 74 68 65 |tion defines the| 0000f740 20 63 75 72 72 65 6e 74 20 67 72 61 70 68 69 63 | current graphic| 0000f750 73 20 77 69 6e 64 6f 77 20 74 6f 20 62 65 20 74 |s window to be t| 0000f760 68 65 20 72 65 63 74 61 6e 67 6c 65 20 77 68 6f |he rectangle who| 0000f770 73 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 61 |se coordinates a| 0000f780 72 65 20 67 69 76 65 6e 20 28 6d 69 6e 69 6d 75 |re given (minimu| 0000f790 6d 2f 6d 61 78 69 6d 75 6d 20 78 2f 79 29 2e 20 |m/maximum x/y). | 0000f7a0 54 68 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 |The coordinates | 0000f7b0 61 72 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 |are relative to | 0000f7c0 74 68 65 20 62 6f 74 74 6f 6d 20 6c 65 66 74 20 |the bottom left | 0000f7d0 6f 66 20 74 68 65 20 73 63 72 65 65 6e 2e 0a 0a |of the screen...| 0000f7e0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 |This function is| 0000f7f0 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 0000f800 56 44 55 20 32 34 3d 3e 56 44 55 3a 32 34 3e 00 |VDU 24=>VDU:24>.| 0000f810 44 41 54 41 6d 03 00 00 62 62 63 5f 69 6e 6b 65 |DATAm...bbc_inke| 0000f820 79 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 62 62 |y.Syntax:.int bb| 0000f830 63 5f 69 6e 6b 65 79 20 28 69 6e 74 20 6e 29 3b |c_inkey (int n);| 0000f840 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d |.Header:.<bbc.h=| 0000f850 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |>bbc>..Returns:.| 0000f860 6e 3e 3d 30 09 54 68 65 20 63 68 61 72 61 63 74 |n>=0.The charact| 0000f870 65 72 20 72 65 61 64 2e 0a 09 6e 5c 3c 30 09 2d |er read...n\<0.-| 0000f880 31 20 69 66 20 74 68 65 20 6b 65 79 20 69 73 20 |1 if the key is | 0000f890 62 65 69 6e 67 20 70 72 65 73 73 65 64 2c 20 6f |being pressed, o| 0000f8a0 72 20 30 20 69 66 20 6e 6f 74 2e 0a 09 6e 3d 3d |r 0 if not...n==| 0000f8b0 32 35 36 09 54 68 65 20 4f 70 65 72 61 74 69 6e |256.The Operatin| 0000f8c0 67 20 53 79 73 74 65 6d 20 76 65 72 73 69 6f 6e |g System version| 0000f8d0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0000f8e0 20 65 69 74 68 65 72 20 72 65 61 64 73 20 61 20 | either reads a | 0000f8f0 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 74 |character from t| 0000f900 68 65 20 69 6e 70 75 74 20 73 74 72 65 61 6d 20 |he input stream | 0000f910 77 69 74 68 69 6e 20 61 20 74 69 6d 65 20 6c 69 |within a time li| 0000f920 6d 69 74 2c 20 74 65 73 74 73 20 61 20 73 70 65 |mit, tests a spe| 0000f930 63 69 66 69 63 20 6b 65 79 2c 20 6f 72 20 72 65 |cific key, or re| 0000f940 61 64 73 20 74 68 65 20 4f 70 65 72 61 74 69 6e |ads the Operatin| 0000f950 67 20 53 79 73 74 65 6d 20 76 65 72 73 69 6f 6e |g System version| 0000f960 2e 0a 0a 54 6f 20 72 65 61 64 20 61 20 63 68 61 |...To read a cha| 0000f970 72 61 63 74 65 72 20 77 69 74 68 69 6e 20 61 20 |racter within a | 0000f980 74 69 6d 65 20 6c 69 6d 69 74 2c 20 2f 6e 2f 20 |time limit, /n/ | 0000f990 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 74 69 |should be the ti| 0000f9a0 6d 65 20 6c 69 6d 69 74 20 69 6e 20 63 65 6e 74 |me limit in cent| 0000f9b0 69 73 65 63 6f 6e 64 73 20 28 75 70 20 74 6f 20 |iseconds (up to | 0000f9c0 33 32 37 36 37 20 2d 20 69 74 20 63 61 6e 20 62 |32767 - it can b| 0000f9d0 65 20 30 29 2e 20 54 68 65 20 70 72 6f 67 72 61 |e 0). The progra| 0000f9e0 6d 20 77 69 6c 6c 20 77 61 69 74 20 75 6e 74 69 |m will wait unti| 0000f9f0 6c 20 61 20 63 68 61 72 61 63 74 65 72 20 69 73 |l a character is| 0000fa00 20 69 6e 70 75 74 2c 20 66 6f 72 20 61 20 6d 61 | input, for a ma| 0000fa10 78 69 6d 75 6d 20 6f 66 20 2f 6e 2f 20 63 65 6e |ximum of /n/ cen| 0000fa20 74 69 73 65 63 6f 6e 64 73 2c 20 61 6e 64 20 72 |tiseconds, and r| 0000fa30 65 74 75 72 6e 20 74 68 65 20 41 53 43 49 49 20 |eturn the ASCII | 0000fa40 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6b 65 79 |value of the key| 0000fa50 2e 0a 0a 54 6f 20 74 65 73 74 20 61 20 73 70 65 |...To test a spe| 0000fa60 63 69 66 69 63 20 6b 65 79 2c 20 2f 6e 2f 20 73 |cific key, /n/ s| 0000fa70 68 6f 75 6c 64 20 62 65 20 61 20 76 61 6c 75 65 |hould be a value| 0000fa80 20 66 72 6f 6d 20 2d 32 35 35 20 74 6f 20 2d 31 | from -255 to -1| 0000fa90 2c 20 61 6e 64 20 74 68 65 20 6b 65 79 20 72 65 |, and the key re| 0000faa0 70 72 65 73 65 6e 74 65 64 20 62 79 20 74 68 61 |presented by tha| 0000fab0 74 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 |t value will be | 0000fac0 74 65 73 74 65 64 2e 20 54 68 65 20 76 61 6c 75 |tested. The valu| 0000fad0 65 20 73 68 6f 75 6c 64 20 62 65 20 28 2d 31 20 |e should be (-1 | 0000fae0 2d 20 3c 6b 65 79 20 6e 72 3d 3e 53 57 49 3a 6f |- <key nr=>SWI:o| 0000faf0 73 5f 62 79 74 65 31 32 31 61 3e 29 0a 0a 54 6f |s_byte121a>)..To| 0000fb00 20 72 65 61 64 20 74 68 65 20 4f 53 20 76 65 72 | read the OS ver| 0000fb10 73 69 6f 6e 2c 20 6e 20 3d 20 2d 32 35 36 2e 0a |sion, n = -256..| 0000fb20 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 0000fb30 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |s equivalent to | 0000fb40 3c 4f 53 5f 42 79 74 65 3d 3e 53 57 49 3a 4f 53 |<OS_Byte=>SWI:OS| 0000fb50 5f 42 79 74 65 3e 20 31 32 39 2c 20 6f 72 20 3c |_Byte> 129, or <| 0000fb60 49 4e 4b 45 59 3d 3e 42 61 73 69 63 3a 49 4e 4b |INKEY=>Basic:INK| 0000fb70 45 59 3e 20 69 6e 20 42 61 73 69 63 2e 00 00 00 |EY> in Basic....| 0000fb80 44 41 54 41 f1 00 00 00 4d 69 73 63 65 6c 6c 61 |DATA....Miscella| 0000fb90 6e 65 6f 75 73 20 46 75 6e 63 74 69 6f 6e 73 0a |neous Functions.| 0000fba0 23 54 61 62 6c 65 20 37 20 31 35 0a 3c 62 62 63 |#Table 7 15.<bbc| 0000fbb0 5f 61 64 76 61 6c 3e 0a 3c 62 62 63 5f 63 75 72 |_adval>.<bbc_cur| 0000fbc0 73 6f 72 3e 0a 3c 62 62 63 5f 67 65 74 3e 0a 3c |sor>.<bbc_get>.<| 0000fbd0 62 62 63 5f 67 65 74 62 65 61 74 3e 0a 3c 62 62 |bbc_getbeat>.<bb| 0000fbe0 63 5f 67 65 74 62 65 61 74 73 3e 0a 3c 62 62 63 |c_getbeats>.<bbc| 0000fbf0 5f 67 65 74 74 65 6d 70 6f 3e 0a 3c 62 62 63 5f |_gettempo>.<bbc_| 0000fc00 69 6e 6b 65 79 3e 0a 3c 62 62 63 5f 73 65 74 62 |inkey>.<bbc_setb| 0000fc10 65 61 74 73 3e 0a 3c 62 62 63 5f 73 65 74 74 65 |eats>.<bbc_sette| 0000fc20 6d 70 6f 3e 0a 3c 62 62 63 5f 73 6f 75 6e 64 3e |mpo>.<bbc_sound>| 0000fc30 0a 3c 62 62 63 5f 73 6f 75 6e 64 6f 66 66 3e 0a |.<bbc_soundoff>.| 0000fc40 3c 62 62 63 5f 73 6f 75 6e 64 6f 6e 3e 0a 3c 62 |<bbc_soundon>.<b| 0000fc50 62 63 5f 73 74 65 72 65 6f 3e 0a 3c 62 62 63 5f |bc_stereo>.<bbc_| 0000fc60 76 6f 69 63 65 73 3e 0a 23 45 6e 64 54 61 62 6c |voices>.#EndTabl| 0000fc70 65 00 00 00 44 41 54 41 15 01 00 00 62 62 63 5f |e...DATA....bbc_| 0000fc80 6d 6f 64 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |mode.Syntax:.<os| 0000fc90 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 6d 6f 64 |_error> *bbc_mod| 0000fca0 65 20 28 69 6e 74 20 6d 29 3b 0a 48 65 61 64 65 |e (int m);.Heade| 0000fcb0 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a |r:.<bbc.h=>bbc>.| 0000fcc0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 0000fcd0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 0000fce0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 0000fcf0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 |This function ch| 0000fd00 61 6e 67 65 73 20 74 68 65 20 63 75 72 72 65 6e |anges the curren| 0000fd10 74 20 3c 73 63 72 65 65 6e 20 6d 6f 64 65 3d 3e |t <screen mode=>| 0000fd20 56 44 55 3a 32 32 61 3e 20 74 6f 20 74 68 65 20 |VDU:22a> to the | 0000fd30 6f 6e 65 20 73 70 65 63 69 66 69 65 64 20 69 6e |one specified in| 0000fd40 20 6d 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 | m. It is equiva| 0000fd50 6c 65 6e 74 20 74 6f 20 3c 4d 4f 44 45 3d 3e 42 |lent to <MODE=>B| 0000fd60 61 73 69 63 3a 4d 4f 44 45 3e 20 69 6e 20 42 61 |asic:MODE> in Ba| 0000fd70 73 69 63 2c 20 6f 72 20 3c 56 44 55 20 32 32 3d |sic, or <VDU 22=| 0000fd80 3e 56 44 55 3a 32 32 3e 2e 00 00 00 44 41 54 41 |>VDU:22>....DATA| 0000fd90 66 01 00 00 62 62 63 5f 6d 6f 64 65 76 61 72 0a |f...bbc_modevar.| 0000fda0 53 79 6e 74 61 78 3a 09 69 6e 74 20 62 62 63 5f |Syntax:.int bbc_| 0000fdb0 6d 6f 64 65 76 61 72 20 28 69 6e 74 20 6d 6f 64 |modevar (int mod| 0000fdc0 65 2c 20 69 6e 74 20 76 61 72 29 3b 0a 48 65 61 |e, int var);.Hea| 0000fdd0 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 |der:.<bbc.h=>bbc| 0000fde0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 |>..Returns:.The | 0000fdf0 76 61 6c 75 65 20 6f 66 20 74 68 65 20 3c 6d 6f |value of the <mo| 0000fe00 64 65 20 76 61 72 69 61 62 6c 65 3d 3e 62 62 63 |de variable=>bbc| 0000fe10 5f 6d 6f 64 65 76 61 72 5f 3e 2e 0a 0a 54 68 69 |_modevar_>...Thi| 0000fe20 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 |s function reads| 0000fe30 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 | the value of a | 0000fe40 73 69 6e 67 6c 65 20 6d 6f 64 65 20 76 61 72 69 |single mode vari| 0000fe50 61 62 6c 65 20 66 6f 72 20 74 68 65 20 67 69 76 |able for the giv| 0000fe60 65 6e 20 6d 6f 64 65 2e 20 49 66 20 6d 6f 64 65 |en mode. If mode| 0000fe70 20 69 73 20 2d 31 20 74 68 65 6e 20 74 68 65 20 | is -1 then the | 0000fe80 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 77 69 6c |current mode wil| 0000fe90 6c 20 62 65 20 75 73 65 64 2e 0a 0a 54 68 69 73 |l be used...This| 0000fea0 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 | function is equ| 0000feb0 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 53 |ivalent to the S| 0000fec0 57 49 20 3c 4f 53 5f 52 65 61 64 4d 6f 64 65 56 |WI <OS_ReadModeV| 0000fed0 61 72 69 61 62 6c 65 3d 3e 53 57 49 3a 4f 53 5f |ariable=>SWI:OS_| 0000fee0 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 0000fef0 3e 2e 00 00 44 41 54 41 b9 00 00 00 4d 6f 64 65 |>...DATA....Mode| 0000ff00 20 56 61 72 69 61 62 6c 65 73 0a 46 6f 72 20 65 | Variables.For e| 0000ff10 61 63 68 20 6f 66 20 74 68 65 20 3c 4d 6f 64 65 |ach of the <Mode| 0000ff20 20 76 61 72 69 61 62 6c 65 73 3d 3e 53 57 49 3a | variables=>SWI:| 0000ff30 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 61 |OS_ReadModeVaria| 0000ff40 62 6c 65 2e 76 61 72 69 61 62 6c 65 73 3e 20 28 |ble.variables> (| 0000ff50 30 2d 31 32 29 20 69 73 20 64 65 66 69 6e 65 64 |0-12) is defined| 0000ff60 20 61 6e 20 65 6e 75 6d 20 74 79 70 65 2e 20 54 | an enum type. T| 0000ff70 68 65 20 6e 61 6d 65 73 20 61 72 65 20 74 68 65 |he names are the| 0000ff80 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 76 61 | names of the va| 0000ff90 72 69 61 62 6c 65 73 20 70 72 65 66 69 78 65 64 |riables prefixed| 0000ffa0 20 77 69 74 68 20 22 62 62 63 5f 22 2e 00 00 00 | with "bbc_"....| 0000ffb0 44 41 54 41 f5 00 00 00 62 62 63 5f 6d 6f 76 65 |DATA....bbc_move| 0000ffc0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 0000ffd0 6f 72 3e 20 2a 62 62 63 5f 6d 6f 76 65 20 28 69 |or> *bbc_move (i| 0000ffe0 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 |nt x, int y);.He| 0000fff0 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 |ader:.<bbc.h=>bb| 00010000 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |c>..Returns:.Poi| 00010010 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00010020 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00010030 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00010040 20 6d 6f 76 65 73 20 74 68 65 20 67 72 61 70 68 | moves the graph| 00010050 69 63 73 20 63 75 72 73 6f 72 20 74 6f 20 74 68 |ics cursor to th| 00010060 65 20 70 6f 73 69 74 69 6f 6e 20 67 69 76 65 6e |e position given| 00010070 20 62 79 20 28 78 2c 79 29 2e 20 45 71 75 69 76 | by (x,y). Equiv| 00010080 61 6c 65 6e 74 20 74 6f 20 3c 4d 4f 56 45 3d 3e |alent to <MOVE=>| 00010090 42 61 73 69 63 3a 4d 4f 56 45 3e 20 69 6e 20 42 |Basic:MOVE> in B| 000100a0 61 73 69 63 2e 00 00 00 44 41 54 41 0b 01 00 00 |asic....DATA....| 000100b0 62 62 63 5f 6d 6f 76 65 62 79 0a 53 79 6e 74 61 |bbc_moveby.Synta| 000100c0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 |x:.<os_error> *b| 000100d0 62 63 5f 6d 6f 76 65 62 79 20 28 69 6e 74 20 78 |bc_moveby (int x| 000100e0 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 |, int y);.Header| 000100f0 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a |:.<bbc.h=>bbc>..| 00010100 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00010110 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00010120 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00010130 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 |his function mov| 00010140 65 73 20 74 68 65 20 67 72 61 70 68 69 63 73 20 |es the graphics | 00010150 63 75 72 73 6f 72 20 66 72 6f 6d 20 74 68 65 20 |cursor from the | 00010160 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e |current position| 00010170 20 72 65 6c 61 74 69 76 65 6c 79 20 62 79 20 28 | relatively by (| 00010180 78 2c 79 29 2e 20 45 71 75 69 76 61 6c 65 6e 74 |x,y). Equivalent| 00010190 20 74 6f 20 3c 4d 4f 56 45 20 42 59 3d 3e 42 61 | to <MOVE BY=>Ba| 000101a0 73 69 63 3a 4d 4f 56 45 3e 20 69 6e 20 42 61 73 |sic:MOVE> in Bas| 000101b0 69 63 2e 00 44 41 54 41 78 01 00 00 62 62 63 5f |ic..DATAx...bbc_| 000101c0 6f 72 69 67 69 6e 0a 53 79 6e 74 61 78 3a 09 3c |origin.Syntax:.<| 000101d0 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 6f |os_error> *bbc_o| 000101e0 72 69 67 69 6e 20 28 69 6e 74 20 78 2c 20 69 6e |rigin (int x, in| 000101f0 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 |t y);.Header:.<b| 00010200 62 63 2e 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |bc.h>..Returns:.| 00010210 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00010220 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00010230 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00010240 69 6f 6e 20 6d 6f 76 65 73 20 74 68 65 20 63 75 |ion moves the cu| 00010250 72 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 6f |rrent graphics o| 00010260 72 69 67 69 6e 20 28 69 65 20 74 68 65 20 70 6f |rigin (ie the po| 00010270 73 69 74 69 6f 6e 20 6f 66 20 28 30 2c 30 29 20 |sition of (0,0) | 00010280 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 29 20 74 |on the screen) t| 00010290 6f 20 28 78 2c 79 29 2e 20 54 68 65 20 63 6f 6f |o (x,y). The coo| 000102a0 72 64 69 6e 61 74 65 73 20 61 72 65 20 67 69 76 |rdinates are giv| 000102b0 65 6e 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 |en relative to t| 000102c0 68 65 20 73 63 72 65 65 6e 20 62 6f 74 74 6f 6d |he screen bottom| 000102d0 20 6c 65 66 74 2e 0a 0a 54 68 69 73 20 66 75 6e | left...This fun| 000102e0 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c |ction is equival| 000102f0 65 6e 74 20 74 6f 20 3c 4f 52 49 47 49 4e 3d 3e |ent to <ORIGIN=>| 00010300 42 61 73 69 63 3a 4f 52 49 47 49 4e 3e 20 69 6e |Basic:ORIGIN> in| 00010310 20 42 61 73 69 63 2c 20 6f 72 20 3c 56 44 55 20 | Basic, or <VDU | 00010320 32 39 3d 3e 56 44 55 3a 32 39 3e 2e 44 41 54 41 |29=>VDU:29>.DATA| 00010330 eb 02 00 00 62 62 63 5f 70 61 6c 65 74 74 65 0a |....bbc_palette.| 00010340 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00010350 72 3e 20 2a 62 62 63 5f 70 61 6c 65 74 74 65 20 |r> *bbc_palette | 00010360 28 69 6e 74 20 63 2c 20 69 6e 74 20 6d 2c 20 69 |(int c, int m, i| 00010370 6e 74 20 72 2c 20 69 6e 74 20 67 2c 20 69 6e 74 |nt r, int g, int| 00010380 20 62 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 | b);.Header:.<bb| 00010390 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 |c.h=>bbc>..Retur| 000103a0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000103b0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000103c0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000103d0 75 6e 63 74 69 6f 6e 20 72 65 64 65 66 69 6e 65 |unction redefine| 000103e0 73 20 74 68 65 20 63 6f 6c 6f 75 72 20 73 70 65 |s the colour spe| 000103f0 63 69 66 69 65 64 20 69 6e 20 63 20 65 69 74 68 |cified in c eith| 00010400 65 72 20 74 6f 20 74 68 65 20 70 68 79 73 69 63 |er to the physic| 00010410 61 6c 20 63 6f 6c 6f 75 72 20 69 6e 20 2f 6d 2f |al colour in /m/| 00010420 20 28 69 66 20 6d 5c 3c 31 36 29 20 6f 72 20 74 | (if m\<16) or t| 00010430 6f 20 74 68 65 20 63 6f 6c 6f 75 72 20 77 68 6f |o the colour who| 00010440 73 65 20 72 65 64 2c 20 67 72 65 65 6e 2c 20 61 |se red, green, a| 00010450 6e 64 20 62 6c 75 65 20 63 6f 6d 70 6f 6e 65 6e |nd blue componen| 00010460 74 73 20 61 72 65 20 67 69 76 65 6e 20 62 79 20 |ts are given by | 00010470 2f 72 2f 2c 20 2f 67 2f 2c 20 61 6e 64 20 2f 62 |/r/, /g/, and /b| 00010480 2f 2e 20 2f 6d 2f 20 63 61 6e 20 62 65 20 6f 6e |/. /m/ can be on| 00010490 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |e of the followi| 000104a0 6e 67 3a 0a 0a 23 54 61 62 0a 20 20 30 2d 31 35 |ng:..#Tab. 0-15| 000104b0 09 43 6f 6c 6f 75 72 20 63 20 69 73 20 72 65 64 |.Colour c is red| 000104c0 65 66 69 6e 65 64 20 74 6f 20 62 65 20 74 68 65 |efined to be the| 000104d0 20 70 68 79 73 69 63 61 6c 20 63 6f 6c 6f 75 72 | physical colour| 000104e0 20 69 6e 20 6d 2e 0a 20 20 31 36 09 43 6f 6c 6f | in m.. 16.Colo| 000104f0 75 72 20 63 20 69 73 20 72 65 64 65 66 69 6e 65 |ur c is redefine| 00010500 64 20 74 6f 20 28 72 2c 67 2c 62 29 2e 0a 20 20 |d to (r,g,b).. | 00010510 31 37 09 46 69 72 73 74 20 66 6c 61 73 68 20 63 |17.First flash c| 00010520 6f 6c 6f 75 72 20 66 6f 72 20 63 20 69 73 20 28 |olour for c is (| 00010530 72 2c 67 2c 62 29 2e 0a 20 20 31 38 09 53 65 63 |r,g,b).. 18.Sec| 00010540 6f 6e 64 20 66 6c 61 73 68 20 63 6f 6c 6f 75 72 |ond flash colour| 00010550 20 66 6f 72 20 63 20 69 73 20 28 72 2c 67 2c 62 | for c is (r,g,b| 00010560 29 2e 0a 20 20 32 34 09 42 6f 72 64 65 72 20 63 |).. 24.Border c| 00010570 6f 6c 6f 75 72 20 69 73 20 28 72 2c 67 2c 62 29 |olour is (r,g,b)| 00010580 2e 20 63 20 69 73 20 69 67 6e 6f 72 65 64 2e 0a |. c is ignored..| 00010590 20 20 32 35 09 4d 6f 75 73 65 20 63 6f 6c 6f 75 | 25.Mouse colou| 000105a0 72 20 63 20 69 73 20 28 72 2c 67 2c 62 29 2e 0a |r c is (r,g,b)..| 000105b0 0a 31 32 38 20 61 64 64 65 64 20 74 6f 20 61 6e |.128 added to an| 000105c0 79 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 73 |y of the above s| 000105d0 65 74 73 20 74 68 65 20 73 75 70 72 65 6d 61 63 |ets the supremac| 000105e0 79 20 62 69 74 2e 0a 0a 54 68 69 73 20 63 6f 6d |y bit...This com| 000105f0 6d 61 6e 64 20 69 73 20 65 71 75 69 76 61 6c 65 |mand is equivale| 00010600 6e 74 20 74 6f 20 3c 56 44 55 20 31 39 3d 3e 56 |nt to <VDU 19=>V| 00010610 44 55 3a 31 39 3e 2e 00 44 41 54 41 16 01 00 00 |DU:19>..DATA....| 00010620 62 62 63 5f 70 6c 6f 74 0a 53 79 6e 74 61 78 3a |bbc_plot.Syntax:| 00010630 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 63 |.<os_error> *bbc| 00010640 5f 70 6c 6f 74 20 28 69 6e 74 20 6e 2c 20 69 6e |_plot (int n, in| 00010650 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 |t x, int y);.Hea| 00010660 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 |der:.<bbc.h=>bbc| 00010670 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00010680 20 64 6f 65 73 20 6c 6f 74 73 20 6f 66 20 74 68 | does lots of th| 00010690 69 6e 67 73 2e 20 49 74 20 69 73 20 74 68 65 20 |ings. It is the | 000106a0 73 61 6d 65 20 61 73 20 3c 50 4c 4f 54 3d 3e 42 |same as <PLOT=>B| 000106b0 61 73 69 63 3a 50 4c 4f 54 3e 20 69 6e 20 42 61 |asic:PLOT> in Ba| 000106c0 73 69 63 2c 20 6f 72 20 74 68 65 20 53 57 49 20 |sic, or the SWI | 000106d0 3c 4f 53 5f 50 6c 6f 74 3d 3e 53 57 49 3a 4f 53 |<OS_Plot=>SWI:OS| 000106e0 5f 50 6c 6f 74 3e 2e 20 2f 6e 2f 20 69 73 20 74 |_Plot>. /n/ is t| 000106f0 68 65 20 3c 70 6c 6f 74 20 74 79 70 65 3d 3e 62 |he <plot type=>b| 00010700 62 63 5f 70 6c 6f 74 63 6f 6d 5f 3e 2c 20 61 6e |bc_plotcom_>, an| 00010710 64 20 2f 78 2f 20 61 6e 64 20 2f 79 2f 20 61 72 |d /x/ and /y/ ar| 00010720 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 00 00 |e coordinates...| 00010730 44 41 54 41 53 01 00 00 50 6c 6f 74 20 43 6f 64 |DATAS...Plot Cod| 00010740 65 20 42 6c 6f 63 6b 20 4d 6f 64 69 66 69 65 72 |e Block Modifier| 00010750 73 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 |s.The following | 00010760 6d 61 63 72 6f 73 20 61 72 65 20 64 65 66 69 6e |macros are defin| 00010770 65 64 20 69 6e 20 3c 62 62 63 2e 68 3d 3e 62 62 |ed in <bbc.h=>bb| 00010780 63 3e 0a 0a 4d 61 63 72 6f 09 43 6f 64 65 09 4d |c>..Macro.Code.M| 00010790 65 61 6e 69 6e 67 0a 23 6c 69 6e 65 0a 62 62 63 |eaning.#line.bbc| 000107a0 5f 42 4d 6f 76 65 52 65 6c 09 30 09 4d 6f 76 65 |_BMoveRel.0.Move| 000107b0 20 72 65 6c 61 74 69 76 65 0a 62 62 63 5f 42 4d | relative.bbc_BM| 000107c0 6f 76 65 52 65 63 74 52 65 6c 09 31 09 4d 6f 76 |oveRectRel.1.Mov| 000107d0 65 20 72 65 63 74 61 6e 67 6c 65 20 72 65 6c 61 |e rectangle rela| 000107e0 74 69 76 65 0a 62 62 63 5f 42 43 6f 70 79 52 65 |tive.bbc_BCopyRe| 000107f0 63 74 52 65 6c 09 32 09 43 6f 70 79 20 72 65 63 |ctRel.2.Copy rec| 00010800 74 61 6e 67 6c 65 20 72 65 6c 61 74 69 76 65 0a |tangle relative.| 00010810 0a 62 62 63 5f 42 4d 6f 76 65 41 62 73 09 34 09 |.bbc_BMoveAbs.4.| 00010820 4d 6f 76 65 20 61 62 73 6f 6c 75 74 65 0a 62 62 |Move absolute.bb| 00010830 63 5f 42 4d 6f 76 65 52 65 63 74 41 62 73 09 35 |c_BMoveRectAbs.5| 00010840 09 4d 6f 76 65 20 72 65 63 74 61 6e 67 6c 65 20 |.Move rectangle | 00010850 61 62 73 6f 6c 75 74 65 0a 62 62 63 5f 42 43 6f |absolute.bbc_BCo| 00010860 70 79 52 65 63 74 41 62 73 09 36 09 43 6f 70 79 |pyRectAbs.6.Copy| 00010870 20 72 65 63 74 61 6e 67 6c 65 20 61 62 73 6f 6c | rectangle absol| 00010880 75 74 65 00 44 41 54 41 5e 06 00 00 50 6c 6f 74 |ute.DATA^...Plot| 00010890 20 43 6f 6d 6d 61 6e 64 73 0a 54 68 65 20 66 6f | Commands.The fo| 000108a0 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20 61 |llowing macros a| 000108b0 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 62 |re defined in <b| 000108c0 62 63 2e 68 3d 3e 62 62 63 3e 3a 0a 0a 4d 61 63 |bc.h=>bbc>:..Mac| 000108d0 72 6f 09 43 6f 64 65 09 4d 65 61 6e 69 6e 67 0a |ro.Code.Meaning.| 000108e0 23 6c 69 6e 65 0a 62 62 63 5f 53 6f 6c 69 64 42 |#line.bbc_SolidB| 000108f0 6f 74 68 09 30 78 30 30 09 53 6f 6c 69 64 20 6c |oth.0x00.Solid l| 00010900 69 6e 65 20 69 6e 63 6c 75 64 69 6e 67 20 62 6f |ine including bo| 00010910 74 68 20 65 6e 64 20 70 6f 69 6e 74 73 0a 62 62 |th end points.bb| 00010920 63 5f 53 6f 6c 69 64 45 78 46 69 6e 61 6c 09 30 |c_SolidExFinal.0| 00010930 78 30 38 09 53 6f 6c 69 64 20 6c 69 6e 65 20 65 |x08.Solid line e| 00010940 78 63 6c 75 64 69 6e 67 20 74 68 65 20 66 69 6e |xcluding the fin| 00010950 61 6c 20 70 6f 69 6e 74 0a 62 62 63 5f 44 6f 74 |al point.bbc_Dot| 00010960 74 65 64 42 6f 74 68 09 30 78 31 30 09 44 6f 74 |tedBoth.0x10.Dot| 00010970 74 65 64 20 6c 69 6e 65 20 69 6e 63 6c 2e 20 62 |ted line incl. b| 00010980 6f 74 68 20 65 6e 64 20 70 6f 69 6e 74 73 2c 20 |oth end points, | 00010990 70 61 74 74 65 72 6e 20 72 65 73 74 61 72 74 65 |pattern restarte| 000109a0 64 0a 62 62 63 5f 44 6f 74 74 65 64 45 78 46 69 |d.bbc_DottedExFi| 000109b0 6e 61 6c 09 30 78 31 38 09 44 6f 74 74 65 64 20 |nal.0x18.Dotted | 000109c0 6c 69 6e 65 20 65 78 63 6c 2e 20 66 69 6e 61 6c |line excl. final| 000109d0 20 70 6f 69 6e 74 2c 20 70 61 74 74 65 72 6e 20 | point, pattern | 000109e0 72 65 73 74 61 72 74 65 64 0a 62 62 63 5f 53 6f |restarted.bbc_So| 000109f0 6c 69 64 45 78 49 6e 69 74 09 30 78 32 30 09 53 |lidExInit.0x20.S| 00010a00 6f 6c 69 64 20 6c 69 6e 65 20 65 78 63 6c 75 64 |olid line exclud| 00010a10 69 6e 67 20 74 68 65 20 69 6e 69 74 69 61 6c 20 |ing the initial | 00010a20 70 6f 69 6e 74 0a 62 62 63 5f 53 6f 6c 69 64 45 |point.bbc_SolidE| 00010a30 78 42 6f 74 68 09 30 78 32 38 09 53 6f 6c 69 64 |xBoth.0x28.Solid| 00010a40 20 6c 69 6e 65 20 65 78 63 6c 75 64 69 6e 67 20 | line excluding | 00010a50 62 6f 74 68 20 65 6e 64 20 70 6f 69 6e 74 73 0a |both end points.| 00010a60 62 62 63 5f 44 6f 74 74 65 64 45 78 49 6e 69 74 |bbc_DottedExInit| 00010a70 09 30 78 33 30 09 44 6f 74 74 65 64 20 6c 69 6e |.0x30.Dotted lin| 00010a80 65 20 65 78 63 6c 2e 20 69 6e 69 74 69 61 6c 20 |e excl. initial | 00010a90 70 6f 69 6e 74 2c 20 70 61 74 74 65 72 6e 20 63 |point, pattern c| 00010aa0 6f 6e 74 69 6e 75 65 64 0a 62 62 63 5f 44 6f 74 |ontinued.bbc_Dot| 00010ab0 74 65 64 45 78 42 6f 74 68 09 30 78 33 38 09 44 |tedExBoth.0x38.D| 00010ac0 6f 74 74 65 64 20 6c 69 6e 65 20 65 78 63 6c 2e |otted line excl.| 00010ad0 20 62 6f 74 68 20 65 6e 64 20 70 6f 69 6e 74 73 | both end points| 00010ae0 2c 20 70 61 74 74 65 72 6e 20 63 6f 6e 74 69 6e |, pattern contin| 00010af0 75 65 64 0a 62 62 63 5f 50 6f 69 6e 74 09 30 78 |ued.bbc_Point.0x| 00010b00 34 30 09 50 6f 69 6e 74 20 70 6c 6f 74 0a 62 62 |40.Point plot.bb| 00010b10 63 5f 48 6f 72 69 7a 4c 69 6e 65 46 69 6c 6c 4e |c_HorizLineFillN| 00010b20 42 09 30 78 34 38 09 48 6f 72 69 7a 6f 6e 74 61 |B.0x48.Horizonta| 00010b30 6c 20 6c 69 6e 65 20 66 69 6c 6c 20 28 6c 65 66 |l line fill (lef| 00010b40 74 20 26 20 72 69 67 68 74 29 20 74 6f 20 6e 6f |t & right) to no| 00010b50 6e 2d 62 61 63 6b 67 72 6f 75 6e 64 0a 62 62 63 |n-background.bbc| 00010b60 5f 54 72 69 61 6e 67 6c 65 46 69 6c 6c 09 30 78 |_TriangleFill.0x| 00010b70 35 30 09 54 72 69 61 6e 67 6c 65 20 66 69 6c 6c |50.Triangle fill| 00010b80 0a 62 62 63 5f 48 6f 72 69 7a 4c 69 6e 65 46 69 |.bbc_HorizLineFi| 00010b90 6c 6c 42 09 30 78 35 38 09 48 6f 72 69 7a 6f 6e |llB.0x58.Horizon| 00010ba0 74 61 6c 20 6c 69 6e 65 20 66 69 6c 6c 20 28 72 |tal line fill (r| 00010bb0 69 67 68 74 20 6f 6e 6c 79 29 20 74 6f 20 62 61 |ight only) to ba| 00010bc0 63 6b 67 72 6f 75 6e 64 0a 62 62 63 5f 52 65 63 |ckground.bbc_Rec| 00010bd0 74 61 6e 67 6c 65 46 69 6c 6c 09 30 78 36 30 09 |tangleFill.0x60.| 00010be0 52 65 63 74 61 6e 67 6c 65 20 66 69 6c 6c 0a 62 |Rectangle fill.b| 00010bf0 62 63 5f 48 6f 72 69 7a 4c 69 6e 65 46 69 6c 6c |bc_HorizLineFill| 00010c00 46 09 30 78 36 38 09 48 6f 72 69 7a 6f 6e 74 61 |F.0x68.Horizonta| 00010c10 6c 20 6c 69 6e 65 20 66 69 6c 6c 20 28 6c 65 66 |l line fill (lef| 00010c20 74 20 26 20 72 69 67 68 74 29 20 74 6f 20 66 6f |t & right) to fo| 00010c30 72 65 67 72 6f 75 6e 64 0a 62 62 63 5f 50 61 72 |reground.bbc_Par| 00010c40 61 6c 6c 65 6c 46 69 6c 6c 09 30 78 37 30 09 50 |allelFill.0x70.P| 00010c50 61 72 61 6c 6c 65 6c 6f 67 72 61 6d 20 66 69 6c |arallelogram fil| 00010c60 6c 0a 62 62 63 5f 48 6f 72 69 7a 4c 69 6e 65 46 |l.bbc_HorizLineF| 00010c70 69 6c 6c 4e 46 09 30 78 37 38 09 48 6f 72 69 7a |illNF.0x78.Horiz| 00010c80 6f 6e 74 61 6c 20 6c 69 6e 65 20 66 69 6c 6c 20 |ontal line fill | 00010c90 28 72 69 67 68 74 20 6f 6e 6c 79 29 20 74 6f 20 |(right only) to | 00010ca0 6e 6f 6e 2d 66 6f 72 65 67 72 6f 75 6e 64 0a 62 |non-foreground.b| 00010cb0 62 63 5f 46 6c 6f 6f 64 54 6f 42 61 63 6b 09 30 |bc_FloodToBack.0| 00010cc0 78 38 30 09 46 6c 6f 6f 64 20 74 6f 20 6e 6f 6e |x80.Flood to non| 00010cd0 2d 62 61 63 6b 67 72 6f 75 6e 64 0a 62 62 63 5f |-background.bbc_| 00010ce0 46 6c 6f 6f 64 54 6f 46 6f 72 65 09 30 78 38 38 |FloodToFore.0x88| 00010cf0 09 46 6c 6f 6f 64 20 74 6f 20 66 6f 72 65 67 72 |.Flood to foregr| 00010d00 6f 75 6e 64 0a 62 62 63 5f 43 69 72 63 6c 65 09 |ound.bbc_Circle.| 00010d10 30 78 39 30 09 43 69 72 63 6c 65 20 6f 75 74 6c |0x90.Circle outl| 00010d20 69 6e 65 0a 62 62 63 5f 43 69 72 63 6c 65 46 69 |ine.bbc_CircleFi| 00010d30 6c 6c 09 30 78 39 38 09 43 69 72 63 6c 65 20 66 |ll.0x98.Circle f| 00010d40 69 6c 6c 0a 62 62 63 5f 43 69 72 63 6c 65 41 72 |ill.bbc_CircleAr| 00010d50 63 09 30 78 41 30 09 43 69 72 63 75 6c 61 72 20 |c.0xA0.Circular | 00010d60 61 72 63 0a 62 62 63 5f 53 65 67 6d 65 6e 74 09 |arc.bbc_Segment.| 00010d70 30 78 41 38 09 53 65 67 6d 65 6e 74 0a 62 62 63 |0xA8.Segment.bbc| 00010d80 5f 53 65 63 74 6f 72 09 30 78 42 30 09 53 65 63 |_Sector.0xB0.Sec| 00010d90 74 6f 72 0a 62 62 63 5f 42 6c 6f 63 6b 09 30 78 |tor.bbc_Block.0x| 00010da0 42 38 09 42 6c 6f 63 6b 20 63 6f 70 79 2f 6d 6f |B8.Block copy/mo| 00010db0 76 65 20 28 68 61 73 20 64 69 66 66 65 72 65 6e |ve (has differen| 00010dc0 74 20 3c 6d 6f 64 69 66 69 65 72 73 3d 3e 62 62 |t <modifiers=>bb| 00010dd0 63 5f 70 6c 6f 74 62 6d 6f 64 5f 3e 29 0a 62 62 |c_plotbmod_>).bb| 00010de0 63 5f 45 6c 6c 69 70 73 65 09 30 78 43 30 09 45 |c_Ellipse.0xC0.E| 00010df0 6c 6c 69 70 73 65 20 6f 75 74 6c 69 6e 65 0a 62 |llipse outline.b| 00010e00 62 63 5f 45 6c 6c 69 70 73 65 46 69 6c 6c 09 30 |bc_EllipseFill.0| 00010e10 78 43 38 09 45 6c 6c 69 70 73 65 20 66 69 6c 6c |xC8.Ellipse fill| 00010e20 0a 62 62 63 5f 47 72 61 70 68 69 63 73 43 68 61 |.bbc_GraphicsCha| 00010e30 72 09 30 78 44 30 09 46 6f 6e 74 20 70 72 69 6e |r.0xD0.Font prin| 00010e40 74 69 6e 67 20 28 6f 62 73 6f 6c 65 74 65 20 2d |ting (obsolete -| 00010e50 20 64 6f 6e 27 74 20 75 73 65 29 0a 62 62 63 5f | don't use).bbc_| 00010e60 53 70 72 69 74 65 50 6c 6f 74 09 30 78 45 38 09 |SpritePlot.0xE8.| 00010e70 53 70 72 69 74 65 20 70 6c 6f 74 0a 0a 4f 6e 74 |Sprite plot..Ont| 00010e80 6f 20 65 61 63 68 20 6f 66 20 74 68 65 73 65 20 |o each of these | 00010e90 63 61 6e 20 62 65 20 61 64 64 65 64 20 61 20 3c |can be added a <| 00010ea0 6d 6f 64 69 66 69 65 72 3d 3e 62 62 63 5f 70 6c |modifier=>bbc_pl| 00010eb0 6f 74 6d 6f 64 5f 3e 20 77 68 69 63 68 20 61 66 |otmod_> which af| 00010ec0 66 65 63 74 73 20 74 68 65 20 77 61 79 20 74 68 |fects the way th| 00010ed0 65 20 63 6f 6d 6d 61 6e 64 20 62 65 68 61 76 65 |e command behave| 00010ee0 73 2e 00 00 44 41 54 41 cd 01 00 00 50 6c 6f 74 |s...DATA....Plot| 00010ef0 20 43 6f 64 65 20 4d 6f 64 69 66 69 65 72 73 0a | Code Modifiers.| 00010f00 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 61 |The following ma| 00010f10 63 72 6f 73 20 61 72 65 20 64 65 66 69 6e 65 64 |cros are defined| 00010f20 20 69 6e 20 3c 62 62 63 2e 68 3d 3e 62 62 63 3e | in <bbc.h=>bbc>| 00010f30 2e 0a 0a 4d 61 63 72 6f 09 43 6f 64 65 09 4d 65 |...Macro.Code.Me| 00010f40 61 6e 69 6e 67 0a 23 6c 69 6e 65 0a 62 62 63 5f |aning.#line.bbc_| 00010f50 4d 6f 76 65 43 75 72 73 6f 72 52 65 6c 09 30 09 |MoveCursorRel.0.| 00010f60 4d 6f 76 65 20 63 75 72 73 6f 72 20 72 65 6c 61 |Move cursor rela| 00010f70 74 69 76 65 0a 62 62 63 5f 44 72 61 77 52 65 6c |tive.bbc_DrawRel| 00010f80 46 6f 72 65 09 31 09 50 6c 6f 74 20 72 65 6c 61 |Fore.1.Plot rela| 00010f90 74 69 76 65 20 69 6e 20 66 6f 72 65 67 72 6f 75 |tive in foregrou| 00010fa0 6e 64 0a 62 62 63 5f 44 72 61 77 52 65 6c 49 6e |nd.bbc_DrawRelIn| 00010fb0 76 65 72 73 65 09 32 09 50 6c 6f 74 20 72 65 6c |verse.2.Plot rel| 00010fc0 61 74 69 76 65 20 69 6e 20 69 6e 76 65 72 73 65 |ative in inverse| 00010fd0 0a 62 62 63 5f 44 72 61 77 52 65 6c 42 61 63 6b |.bbc_DrawRelBack| 00010fe0 09 33 09 50 6c 6f 74 20 72 65 6c 61 74 69 76 65 |.3.Plot relative| 00010ff0 20 69 6e 20 62 61 63 6b 67 72 6f 75 6e 64 0a 62 | in background.b| 00011000 62 63 5f 4d 6f 76 65 43 75 72 73 6f 72 41 62 73 |bc_MoveCursorAbs| 00011010 09 34 09 4d 6f 76 65 20 63 75 72 73 6f 72 20 61 |.4.Move cursor a| 00011020 62 73 6f 6c 75 74 65 0a 62 62 63 5f 44 72 61 77 |bsolute.bbc_Draw| 00011030 41 62 73 46 6f 72 65 09 35 09 50 6c 6f 74 20 61 |AbsFore.5.Plot a| 00011040 62 73 6f 6c 75 74 65 20 69 6e 20 66 6f 72 65 67 |bsolute in foreg| 00011050 72 6f 75 6e 64 0a 62 62 63 5f 44 72 61 77 41 62 |round.bbc_DrawAb| 00011060 73 49 6e 76 65 72 73 65 09 36 09 50 6c 6f 74 20 |sInverse.6.Plot | 00011070 61 62 73 6f 6c 75 74 65 20 69 6e 20 69 6e 76 65 |absolute in inve| 00011080 72 73 65 0a 62 62 63 5f 44 72 61 77 41 62 73 42 |rse.bbc_DrawAbsB| 00011090 61 63 6b 09 37 09 50 6c 6f 74 20 61 62 73 6f 6c |ack.7.Plot absol| 000110a0 75 74 65 20 69 6e 20 62 61 63 6b 67 72 6f 75 6e |ute in backgroun| 000110b0 64 00 00 00 44 41 54 41 e7 01 00 00 62 62 63 5f |d...DATA....bbc_| 000110c0 70 6f 69 6e 74 0a 53 79 6e 74 61 78 3a 09 69 6e |point.Syntax:.in| 000110d0 74 20 62 62 63 5f 70 6f 69 6e 74 20 28 69 6e 74 |t bbc_point (int| 000110e0 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 | x, int y);.Head| 000110f0 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e |er:.<bbc.h=>bbc>| 00011100 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 |..Returns:.The c| 00011110 6f 6c 6f 75 72 20 6f 66 20 74 68 65 20 70 69 78 |olour of the pix| 00011120 65 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |el...This functi| 00011130 6f 6e 20 72 65 61 64 73 20 74 68 65 20 6c 6f 67 |on reads the log| 00011140 69 63 61 6c 20 63 6f 6c 6f 75 72 20 6f 66 20 74 |ical colour of t| 00011150 68 65 20 70 69 78 65 6c 20 61 74 20 63 6f 6f 72 |he pixel at coor| 00011160 64 69 6e 61 74 65 73 20 28 78 2c 79 29 2e 20 49 |dinates (x,y). I| 00011170 66 20 74 68 65 20 63 6f 6f 72 64 69 6e 61 74 65 |f the coordinate| 00011180 73 20 61 72 65 20 6f 75 74 73 69 64 65 20 74 68 |s are outside th| 00011190 65 20 67 72 61 70 68 69 63 73 20 77 69 6e 64 6f |e graphics windo| 000111a0 77 2c 20 6f 72 20 69 66 20 74 68 65 20 6d 6f 64 |w, or if the mod| 000111b0 65 20 69 73 20 32 35 36 20 63 6f 6c 6f 75 72 2c |e is 256 colour,| 000111c0 20 74 68 65 6e 20 69 74 20 72 65 74 75 72 6e 73 | then it returns| 000111d0 20 30 78 46 46 2e 0a 0a 54 68 69 73 20 66 75 6e | 0xFF...This fun| 000111e0 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c |ction is equival| 000111f0 65 6e 74 20 74 6f 20 3c 4f 53 5f 57 6f 72 64 20 |ent to <OS_Word | 00011200 39 3d 3e 53 57 49 3a 6f 73 5f 77 6f 72 64 39 3e |9=>SWI:os_word9>| 00011210 2e 20 43 61 6c 6c 69 6e 67 20 74 68 65 20 53 57 |. Calling the SW| 00011220 49 20 3c 4f 53 5f 52 65 61 64 50 6f 69 6e 74 3d |I <OS_ReadPoint=| 00011230 3e 53 57 49 3a 4f 53 5f 52 65 61 64 50 6f 69 6e |>SWI:OS_ReadPoin| 00011240 74 3e 20 69 73 20 61 20 62 65 74 74 65 72 20 77 |t> is a better w| 00011250 61 79 20 6f 66 20 64 6f 69 6e 67 20 74 68 69 73 |ay of doing this| 00011260 2c 20 74 68 6f 75 67 68 20 28 74 72 75 73 74 20 |, though (trust | 00011270 41 63 6f 72 6e 20 74 6f 20 69 67 6e 6f 72 65 20 |Acorn to ignore | 00011280 74 68 65 69 72 20 6f 77 6e 20 69 6d 70 72 6f 76 |their own improv| 00011290 65 6d 65 6e 74 73 2e 2e 2e 29 2e 00 44 41 54 41 |ements...)..DATA| 000112a0 09 01 00 00 62 62 63 5f 70 6f 73 0a 53 79 6e 74 |....bbc_pos.Synt| 000112b0 61 78 3a 09 69 6e 74 20 62 62 63 5f 70 6f 73 20 |ax:.int bbc_pos | 000112c0 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 000112d0 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 |<bbc.h=>bbc>..Re| 000112e0 74 75 72 6e 73 3a 09 54 68 65 20 63 75 72 73 6f |turns:.The curso| 000112f0 72 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 54 68 69 |r position...Thi| 00011300 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 |s function reads| 00011310 20 74 68 65 20 58 20 63 6f 6f 72 64 69 6e 61 74 | the X coordinat| 00011320 65 20 6f 66 20 74 68 65 20 74 65 78 74 20 63 75 |e of the text cu| 00011330 72 73 6f 72 2c 20 66 72 6f 6d 20 74 68 65 20 6c |rsor, from the l| 00011340 65 66 74 20 68 61 6e 64 20 65 64 67 65 20 6f 66 |eft hand edge of| 00011350 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 65 78 | the current tex| 00011360 74 20 77 69 6e 64 6f 77 2e 0a 0a 54 68 69 73 20 |t window...This | 00011370 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 |function is equi| 00011380 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 42 79 |valent to <OS_By| 00011390 74 65 3d 3e 53 57 49 3a 4f 53 5f 42 79 74 65 3e |te=>SWI:OS_Byte>| 000113a0 20 26 38 36 2e 00 00 00 44 41 54 41 5b 01 00 00 | &86....DATA[...| 000113b0 62 62 63 5f 72 65 63 74 61 6e 67 6c 65 0a 53 79 |bbc_rectangle.Sy| 000113c0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000113d0 20 2a 62 62 63 5f 72 65 63 74 61 6e 67 6c 65 20 | *bbc_rectangle | 000113e0 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 |(int x, int y, i| 000113f0 6e 74 20 77 2c 20 69 6e 74 20 68 29 3b 0a 48 65 |nt w, int h);.He| 00011400 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 |ader:.<bbc.h=>bb| 00011410 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |c>..Returns:.Poi| 00011420 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00011430 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00011440 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00011450 20 64 72 61 77 73 20 61 20 72 65 63 74 61 6e 67 | draws a rectang| 00011460 6c 65 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e |le on the screen| 00011470 2c 20 77 69 74 68 20 74 68 65 20 62 6f 74 74 6f |, with the botto| 00011480 6d 20 6c 65 66 74 20 61 74 20 70 6f 73 69 74 69 |m left at positi| 00011490 6f 6e 20 28 78 2c 79 29 20 61 6e 64 20 77 69 64 |on (x,y) and wid| 000114a0 74 68 20 61 6e 64 20 68 65 69 67 68 74 20 61 73 |th and height as| 000114b0 20 67 69 76 65 6e 20 62 79 20 2f 77 2f 20 61 6e | given by /w/ an| 000114c0 64 20 2f 68 2f 2e 20 45 71 75 69 76 61 6c 65 6e |d /h/. Equivalen| 000114d0 74 20 74 6f 20 3c 52 45 43 54 41 4e 47 4c 45 3d |t to <RECTANGLE=| 000114e0 3e 42 61 73 69 63 3a 52 45 43 54 41 4e 47 4c 45 |>Basic:RECTANGLE| 000114f0 3e 20 78 2c 79 2c 77 2c 68 20 69 6e 20 42 61 73 |> x,y,w,h in Bas| 00011500 69 63 2e 00 44 41 54 41 69 01 00 00 62 62 63 5f |ic..DATAi...bbc_| 00011510 72 65 63 74 61 6e 67 6c 65 66 69 6c 6c 0a 53 79 |rectanglefill.Sy| 00011520 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00011530 20 2a 62 62 63 5f 72 65 63 74 61 6e 67 6c 65 66 | *bbc_rectanglef| 00011540 69 6c 6c 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 |ill (int x, int | 00011550 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 |y, int w, int h)| 00011560 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 |;.Header:.<bbc.h| 00011570 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a |=>bbc>..Returns:| 00011580 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 00011590 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000115a0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000115b0 74 69 6f 6e 20 64 72 61 77 73 20 61 20 66 69 6c |tion draws a fil| 000115c0 6c 65 64 20 72 65 63 74 61 6e 67 6c 65 20 6f 6e |led rectangle on| 000115d0 20 74 68 65 20 73 63 72 65 65 6e 2c 20 77 69 74 | the screen, wit| 000115e0 68 20 62 6f 74 74 6f 6d 20 6c 65 66 74 20 61 74 |h bottom left at| 000115f0 20 28 78 2c 79 29 20 61 6e 64 20 77 69 64 74 68 | (x,y) and width| 00011600 20 61 6e 64 20 68 65 69 67 68 74 20 73 70 65 63 | and height spec| 00011610 69 66 69 65 64 20 62 79 20 2f 77 2f 20 61 6e 64 |ified by /w/ and| 00011620 20 2f 68 2f 2e 20 49 74 20 69 73 20 65 71 75 69 | /h/. It is equi| 00011630 76 61 6c 65 6e 74 20 74 6f 20 3c 52 45 43 54 41 |valent to <RECTA| 00011640 4e 47 4c 45 20 46 49 4c 4c 20 78 2c 79 2c 77 2c |NGLE FILL x,y,w,| 00011650 68 3d 3e 42 61 73 69 63 3a 52 45 43 54 41 4e 47 |h=>Basic:RECTANG| 00011660 4c 45 3e 20 69 6e 20 42 61 73 69 63 2e 00 00 00 |LE> in Basic....| 00011670 44 41 54 41 2e 01 00 00 62 62 63 5f 73 65 74 62 |DATA....bbc_setb| 00011680 65 61 74 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |eats.Syntax:.<os| 00011690 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 73 65 74 |_error> *bbc_set| 000116a0 62 65 61 74 73 20 28 69 6e 74 20 6e 29 3b 0a 48 |beats (int n);.H| 000116b0 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 |eader:.<bbc.h=>b| 000116c0 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |bc>..Returns:.Po| 000116d0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000116e0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000116f0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00011700 6e 20 73 65 74 73 20 74 68 65 20 63 75 72 72 65 |n sets the curre| 00011710 6e 74 20 62 61 72 20 6c 65 6e 67 74 68 20 74 6f |nt bar length to| 00011720 20 2f 6e 2f 2c 20 61 6e 64 20 65 6e 61 62 6c 65 | /n/, and enable| 00011730 73 20 74 68 65 20 62 65 61 74 20 63 6f 75 6e 74 |s the beat count| 00011740 65 72 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |er. It is equiva| 00011750 6c 65 6e 74 20 74 6f 20 74 68 65 20 53 57 49 20 |lent to the SWI | 00011760 53 6f 75 6e 64 5f 51 42 65 61 74 2e 0a 0a 49 66 |Sound_QBeat...If| 00011770 20 6e 20 5c 3c 20 28 2d 31 29 20 74 68 65 6e 20 | n \< (-1) then | 00011780 74 68 65 20 62 65 61 74 20 63 6f 75 6e 74 65 72 |the beat counter| 00011790 20 69 73 20 64 69 73 61 62 6c 65 64 2e 20 00 00 | is disabled. ..| 000117a0 44 41 54 41 87 01 00 00 62 62 63 5f 73 65 74 74 |DATA....bbc_sett| 000117b0 65 6d 70 6f 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |empo.Syntax:.<os| 000117c0 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 73 65 74 |_error> *bbc_set| 000117d0 74 65 6d 70 6f 20 28 69 6e 74 20 74 29 3b 0a 48 |tempo (int t);.H| 000117e0 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 |eader:.<bbc.h=>b| 000117f0 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |bc>..Returns:.Po| 00011800 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00011810 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00011820 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00011830 6e 20 73 65 74 73 20 74 68 65 20 74 65 6d 70 6f |n sets the tempo| 00011840 20 66 6f 72 20 74 68 65 20 53 6f 75 6e 64 20 53 | for the Sound S| 00011850 63 68 65 64 75 6c 65 72 20 69 65 20 74 68 65 20 |cheduler ie the | 00011860 72 61 74 65 20 61 74 20 77 68 69 63 68 20 74 68 |rate at which th| 00011870 65 20 62 65 61 74 20 63 6f 75 6e 74 65 72 20 63 |e beat counter c| 00011880 6f 75 6e 74 73 2e 20 54 68 65 20 64 65 66 61 75 |ounts. The defau| 00011890 6c 74 20 69 73 20 30 78 31 30 30 30 20 77 68 69 |lt is 0x1000 whi| 000118a0 63 68 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 |ch corresponds t| 000118b0 6f 20 6f 6e 65 20 62 65 61 74 20 70 65 72 20 63 |o one beat per c| 000118c0 65 6e 74 69 73 65 63 6f 6e 64 2e 20 30 78 32 30 |entisecond. 0x20| 000118d0 30 30 20 69 73 20 74 77 6f 20 62 65 61 74 73 20 |00 is two beats | 000118e0 70 65 72 20 63 65 6e 74 69 73 65 63 6f 6e 64 2c |per centisecond,| 000118f0 20 65 74 63 2e 0a 0a 54 68 69 73 20 66 75 6e 63 | etc...This func| 00011900 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 |tion is equivale| 00011910 6e 74 20 74 6f 20 53 57 49 20 53 6f 75 6e 64 5f |nt to SWI Sound_| 00011920 51 54 65 6d 70 6f 2e 00 44 41 54 41 1d 04 00 00 |QTempo..DATA....| 00011930 62 62 63 5f 73 6f 75 6e 64 0a 53 79 6e 74 61 78 |bbc_sound.Syntax| 00011940 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 |:.<os_error> *bb| 00011950 63 5f 73 6f 75 6e 64 20 28 69 6e 74 20 63 2c 20 |c_sound (int c, | 00011960 69 6e 74 20 61 2c 20 69 6e 74 20 70 2c 20 69 6e |int a, int p, in| 00011970 74 20 64 2c 20 69 6e 74 20 74 29 3b 0a 48 65 61 |t d, int t);.Hea| 00011980 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 |der:.<bbc.h=>bbc| 00011990 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000119a0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000119b0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000119c0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000119d0 73 63 68 65 64 75 6c 65 73 20 61 20 73 6f 75 6e |schedules a soun| 000119e0 64 20 77 69 74 68 20 63 68 61 6e 6e 65 6c 2c 20 |d with channel, | 000119f0 61 6d 70 6c 69 74 75 64 65 2c 20 70 69 74 63 68 |amplitude, pitch| 00011a00 20 61 6e 64 20 64 75 72 61 74 69 6f 6e 20 73 65 | and duration se| 00011a10 74 20 62 79 20 2f 63 2f 2c 20 2f 61 2f 2c 20 2f |t by /c/, /a/, /| 00011a20 70 2f 20 61 6e 64 20 2f 64 2f 20 72 65 73 70 65 |p/ and /d/ respe| 00011a30 63 74 69 76 65 6c 79 2c 20 74 6f 20 6f 63 63 75 |ctively, to occu| 00011a40 72 20 61 74 20 74 68 65 20 73 63 68 65 64 75 6c |r at the schedul| 00011a50 65 20 74 69 6d 65 20 67 69 76 65 6e 20 62 79 20 |e time given by | 00011a60 2f 74 2f 2e 0a 0a 41 6d 70 6c 69 74 75 64 65 20 |/t/...Amplitude | 00011a70 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 30 2d |may be either 0-| 00011a80 31 35 20 66 6f 72 20 6c 69 6e 65 61 72 20 63 6f |15 for linear co| 00011a90 6e 74 72 6f 6c 2c 20 6f 72 20 30 78 31 30 30 20 |ntrol, or 0x100 | 00011aa0 74 6f 20 30 78 31 37 46 20 66 6f 72 20 6c 6f 67 |to 0x17F for log| 00011ab0 61 72 69 74 68 6d 69 63 20 63 6f 6e 74 72 6f 6c |arithmic control| 00011ac0 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 62 | in which case b| 00011ad0 69 74 20 37 20 73 65 74 20 6d 65 61 6e 73 20 73 |it 7 set means s| 00011ae0 6d 6f 6f 74 68 20 70 69 74 63 68 20 63 68 61 6e |mooth pitch chan| 00011af0 67 65 73 2e 20 49 6e 20 74 68 65 20 6c 6f 67 61 |ges. In the loga| 00011b00 72 69 74 68 6d 69 63 20 73 63 61 6c 65 20 61 20 |rithmic scale a | 00011b10 63 68 61 6e 67 65 20 6f 66 20 30 78 31 30 20 6d |change of 0x10 m| 00011b20 65 61 6e 73 20 61 20 64 6f 75 62 6c 69 6e 67 20 |eans a doubling | 00011b30 6f 72 20 68 61 6c 76 69 6e 67 20 6f 66 20 76 6f |or halving of vo| 00011b40 6c 75 6d 65 2e 0a 0a 3c 50 69 74 63 68 3d 3e 73 |lume...<Pitch=>s| 00011b50 6f 75 6e 64 5f 70 69 74 63 68 5f 3e 20 6d 61 79 |ound_pitch_> may| 00011b60 20 62 65 20 65 69 74 68 65 72 20 30 2d 32 35 35 | be either 0-255| 00011b70 20 69 6e 20 71 75 61 72 74 65 72 2d 73 65 6d 69 | in quarter-semi| 00011b80 74 6f 6e 65 20 73 74 65 70 73 2c 20 6f 72 20 30 |tone steps, or 0| 00011b90 78 31 30 30 20 74 6f 20 30 78 37 46 46 20 66 6f |x100 to 0x7FF fo| 00011ba0 72 20 66 69 6e 65 20 63 6f 6e 74 72 6f 6c 20 28 |r fine control (| 00011bb0 34 30 39 36 20 73 74 65 70 73 20 70 65 72 20 6f |4096 steps per o| 00011bc0 63 74 61 76 65 21 29 20 69 6e 20 77 68 69 63 68 |ctave!) in which| 00011bd0 20 63 61 73 65 20 62 69 74 73 20 30 2d 31 31 20 | case bits 0-11 | 00011be0 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 6e 6f |represent the no| 00011bf0 74 65 20 61 6e 64 20 62 69 74 73 20 31 32 2d 20 |te and bits 12- | 00011c00 31 34 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 |14 represent the| 00011c10 20 6f 63 74 61 76 65 2e 0a 0a 44 75 72 61 74 69 | octave...Durati| 00011c20 6f 6e 20 69 73 20 69 6e 20 74 77 65 6e 74 69 65 |on is in twentie| 00011c30 74 68 73 20 6f 66 20 61 20 73 65 63 6f 6e 64 2e |ths of a second.| 00011c40 0a 0a 54 68 65 20 73 63 68 65 64 75 6c 65 20 74 |..The schedule t| 00011c50 69 6d 65 20 69 73 20 65 69 74 68 65 72 3a 20 28 |ime is either: (| 00011c60 2d 32 29 20 66 6f 72 20 69 6d 6d 65 64 69 61 74 |-2) for immediat| 00011c70 65 20 73 63 68 65 64 75 6c 69 6e 67 2c 20 28 2d |e scheduling, (-| 00011c80 31 29 20 66 6f 72 20 73 63 68 65 64 75 6c 69 6e |1) for schedulin| 00011c90 67 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69 |g at the same ti| 00011ca0 6d 65 20 61 73 20 74 68 65 20 6c 61 73 74 20 73 |me as the last s| 00011cb0 63 68 65 64 75 6c 65 64 20 65 76 65 6e 74 2c 20 |cheduled event, | 00011cc0 6f 72 20 61 20 73 63 68 65 64 75 6c 65 20 70 65 |or a schedule pe| 00011cd0 72 69 6f 64 2e 20 54 68 65 20 73 63 68 65 64 75 |riod. The schedu| 00011ce0 6c 65 20 70 65 72 69 6f 64 20 69 73 20 6d 65 61 |le period is mea| 00011cf0 73 75 72 65 64 20 66 72 6f 6d 20 74 68 65 20 6c |sured from the l| 00011d00 61 73 74 20 62 61 72 20 73 74 61 72 74 20 28 69 |ast bar start (i| 00011d10 66 20 74 68 65 20 62 65 61 74 20 63 6f 75 6e 74 |f the beat count| 00011d20 65 72 20 69 73 20 65 6e 61 62 6c 65 64 29 20 6f |er is enabled) o| 00011d30 72 20 66 72 6f 6d 20 74 68 65 20 63 61 6c 6c 20 |r from the call | 00011d40 74 69 6d 65 2e 00 00 00 44 41 54 41 3d 01 00 00 |time....DATA=...| 00011d50 62 62 63 5f 73 6f 75 6e 64 6f 66 66 0a 53 79 6e |bbc_soundoff.Syn| 00011d60 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00011d70 2a 62 62 63 5f 73 6f 75 6e 64 6f 66 66 20 28 76 |*bbc_soundoff (v| 00011d80 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 |oid);.Header:.<b| 00011d90 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 |bc.h=>bbc>..Retu| 00011da0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00011db0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00011dc0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00011dd0 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 |function disable| 00011de0 73 20 74 68 65 20 73 6f 75 6e 64 20 73 79 73 74 |s the sound syst| 00011df0 65 6d 20 63 6f 6d 70 6c 65 74 65 6c 79 2e 20 41 |em completely. A| 00011e00 6c 6c 20 53 6f 75 6e 64 20 69 6e 74 65 72 72 75 |ll Sound interru| 00011e10 70 74 73 20 61 6e 64 20 44 4d 41 20 61 63 74 69 |pts and DMA acti| 00011e20 76 69 74 79 20 69 73 20 73 75 73 70 65 6e 64 65 |vity is suspende| 00011e30 64 2e 0a 0a 54 68 69 73 20 69 73 20 65 71 75 69 |d...This is equi| 00011e40 76 61 6c 65 6e 74 20 74 6f 20 3c 2a 41 75 64 69 |valent to <*Audi| 00011e50 6f 20 4f 66 66 3e 20 6f 72 20 74 68 65 20 53 57 |o Off> or the SW| 00011e60 49 20 3c 53 6f 75 6e 64 5f 45 6e 61 62 6c 65 20 |I <Sound_Enable | 00011e70 31 3d 3e 53 57 49 3a 53 6f 75 6e 64 5f 45 6e 61 |1=>SWI:Sound_Ena| 00011e80 62 6c 65 3e 2e 00 00 00 44 41 54 41 f7 00 00 00 |ble>....DATA....| 00011e90 62 62 63 5f 73 6f 75 6e 64 6f 6e 0a 53 79 6e 74 |bbc_soundon.Synt| 00011ea0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00011eb0 62 62 63 5f 73 6f 75 6e 64 6f 6e 20 28 76 6f 69 |bbc_soundon (voi| 00011ec0 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 |d);.Header:.<bbc| 00011ed0 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e |.h=>bbc>..Return| 00011ee0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00011ef0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00011f00 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00011f10 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 73 20 74 |nction enables t| 00011f20 68 65 20 73 6f 75 6e 64 20 73 79 73 74 65 6d 2e |he sound system.| 00011f30 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e | It is equivalen| 00011f40 74 20 74 6f 20 3c 2a 41 75 64 69 6f 20 4f 6e 3e |t to <*Audio On>| 00011f50 20 6f 72 20 74 68 65 20 53 57 49 20 3c 53 6f 75 | or the SWI <Sou| 00011f60 6e 64 5f 45 6e 61 62 6c 65 20 32 3d 3e 53 57 49 |nd_Enable 2=>SWI| 00011f70 3a 53 6f 75 6e 64 5f 45 6e 61 62 6c 65 3e 2e 00 |:Sound_Enable>..| 00011f80 44 41 54 41 bb 01 00 00 62 62 63 5f 73 74 65 72 |DATA....bbc_ster| 00011f90 65 6f 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |eo.Syntax:.<os_e| 00011fa0 72 72 6f 72 3e 20 2a 62 62 63 5f 73 74 65 72 65 |rror> *bbc_stere| 00011fb0 6f 20 28 69 6e 74 20 63 68 2c 20 69 6e 74 20 70 |o (int ch, int p| 00011fc0 6f 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 |os);.Header:.<bb| 00011fd0 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 |c.h=>bbc>..Retur| 00011fe0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00011ff0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00012000 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00012010 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 65 |unction sets the| 00012020 20 73 74 65 72 65 6f 20 70 6f 73 69 74 69 6f 6e | stereo position| 00012030 20 6f 66 20 61 20 73 6f 75 6e 64 20 63 68 61 6e | of a sound chan| 00012040 6e 65 6c 2e 20 54 68 65 20 70 6f 73 69 74 69 6f |nel. The positio| 00012050 6e 73 20 61 72 65 20 66 72 6f 6d 20 2d 31 32 37 |ns are from -127| 00012060 20 74 6f 20 31 32 37 2c 20 77 69 74 68 20 2d 31 | to 127, with -1| 00012070 32 37 20 61 74 20 74 68 65 20 65 78 74 72 65 6d |27 at the extrem| 00012080 65 20 6c 65 66 74 2c 20 30 20 69 6e 20 74 68 65 |e left, 0 in the| 00012090 20 63 65 6e 74 72 65 20 61 6e 64 20 31 32 37 20 | centre and 127 | 000120a0 61 74 20 74 68 65 20 65 78 74 72 65 6d 65 20 72 |at the extreme r| 000120b0 69 67 68 74 2e 20 49 66 20 6c 65 73 73 20 74 68 |ight. If less th| 000120c0 61 6e 20 38 20 63 68 61 6e 6e 65 6c 73 20 61 72 |an 8 channels ar| 000120d0 65 20 65 6e 61 62 6c 65 64 20 74 68 65 6e 20 6d |e enabled then m| 000120e0 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 63 68 61 |ore than one cha| 000120f0 6e 6e 65 6c 20 77 69 6c 6c 20 62 65 20 61 6c 74 |nnel will be alt| 00012100 65 72 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |ered...This func| 00012110 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 |tion is equivale| 00012120 6e 74 20 74 6f 20 74 68 65 20 53 57 49 20 53 6f |nt to the SWI So| 00012130 75 6e 64 5f 53 74 65 72 65 6f 2e 00 44 41 54 41 |und_Stereo..DATA| 00012140 17 01 00 00 62 62 63 5f 73 74 72 69 6e 67 70 72 |....bbc_stringpr| 00012150 69 6e 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |int.Syntax:.<os_| 00012160 65 72 72 6f 72 3e 20 2a 62 62 63 5f 73 74 72 69 |error> *bbc_stri| 00012170 6e 67 70 72 69 6e 74 20 28 63 68 61 72 20 2a 73 |ngprint (char *s| 00012180 74 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 |tr);.Header:.<bb| 00012190 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 |c.h=>bbc>..Retur| 000121a0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000121b0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000121c0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000121d0 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 73 20 74 |unction writes t| 000121e0 68 65 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 |he null terminat| 000121f0 65 64 20 73 74 72 69 6e 67 20 74 6f 20 61 6c 6c |ed string to all| 00012200 20 61 63 74 69 76 65 20 6f 75 74 70 75 74 20 73 | active output s| 00012210 74 72 65 61 6d 73 2e 20 49 74 20 64 6f 65 73 20 |treams. It does | 00012220 74 68 69 73 20 62 79 20 63 61 6c 6c 69 6e 67 20 |this by calling | 00012230 74 68 65 20 53 57 49 20 3c 4f 53 5f 57 72 69 74 |the SWI <OS_Writ| 00012240 65 30 3d 3e 53 57 49 2e 4f 53 5f 57 72 69 74 65 |e0=>SWI.OS_Write| 00012250 30 3e 2e 00 44 41 54 41 3e 01 00 00 62 62 63 5f |0>..DATA>...bbc_| 00012260 74 61 62 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |tab.Syntax:.<os_| 00012270 65 72 72 6f 72 3e 20 2a 62 62 63 5f 74 61 62 20 |error> *bbc_tab | 00012280 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a |(int x, int y);.| 00012290 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e |Header:.<bbc.h=>| 000122a0 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |bbc>..Returns:.P| 000122b0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000122c0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000122d0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 000122e0 6f 6e 20 6d 6f 76 65 73 20 74 68 65 20 74 65 78 |on moves the tex| 000122f0 74 20 63 75 72 73 6f 72 20 74 6f 20 70 6f 73 69 |t cursor to posi| 00012300 74 69 6f 6e 20 28 78 2c 79 29 2e 20 49 66 20 78 |tion (x,y). If x| 00012310 20 6f 72 20 79 20 61 72 65 20 6f 75 74 73 69 64 | or y are outsid| 00012320 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 65 |e the current te| 00012330 78 74 20 77 69 6e 64 6f 77 2c 20 74 68 65 20 66 |xt window, the f| 00012340 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 |unction does not| 00012350 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 | move the cursor| 00012360 2e 20 49 74 20 64 6f 65 73 20 74 68 69 73 20 62 |. It does this b| 00012370 79 20 6d 61 6b 69 6e 67 20 74 68 72 65 65 20 63 |y making three c| 00012380 61 6c 6c 73 20 74 6f 20 3c 62 62 63 5f 76 64 75 |alls to <bbc_vdu| 00012390 3e 2e 00 00 44 41 54 41 9b 00 00 00 54 65 78 74 |>...DATA....Text| 000123a0 20 4f 75 74 70 75 74 20 46 75 6e 63 74 69 6f 6e | Output Function| 000123b0 73 0a 23 54 61 62 6c 65 20 35 20 31 37 0a 3c 62 |s.#Table 5 17.<b| 000123c0 62 63 5f 63 6c 73 3e 0a 3c 62 62 63 5f 63 6f 6c |bc_cls>.<bbc_col| 000123d0 6f 75 72 3e 0a 3c 62 62 63 5f 70 6f 73 3e 0a 3c |our>.<bbc_pos>.<| 000123e0 62 62 63 5f 73 74 72 69 6e 67 70 72 69 6e 74 3e |bbc_stringprint>| 000123f0 0a 3c 62 62 63 5f 74 61 62 3e 0a 3c 62 62 63 5f |.<bbc_tab>.<bbc_| 00012400 76 64 75 3e 0a 3c 62 62 63 5f 76 64 75 71 3e 0a |vdu>.<bbc_vduq>.| 00012410 3c 62 62 63 5f 76 64 75 77 3e 0a 3c 62 62 63 5f |<bbc_vduw>.<bbc_| 00012420 76 70 6f 73 3e 0a 23 45 6e 64 54 61 62 6c 65 00 |vpos>.#EndTable.| 00012430 44 41 54 41 6b 02 00 00 62 62 63 5f 74 69 6e 74 |DATAk...bbc_tint| 00012440 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00012450 6f 72 3e 20 2a 62 62 63 5f 74 69 6e 74 20 28 69 |or> *bbc_tint (i| 00012460 6e 74 20 63 2c 20 69 6e 74 20 74 29 3b 0a 48 65 |nt c, int t);.He| 00012470 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 |ader:.<bbc.h=>bb| 00012480 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |c>..Returns:.Poi| 00012490 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000124a0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000124b0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000124c0 20 73 65 74 73 20 74 68 65 20 74 69 6e 74 20 28 | sets the tint (| 000124d0 69 65 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 |ie the amount of| 000124e0 20 77 68 69 74 65 20 61 64 64 65 64 29 20 66 6f | white added) fo| 000124f0 72 20 61 20 63 6f 6c 6f 75 72 20 28 32 35 36 20 |r a colour (256 | 00012500 63 6f 6c 6f 75 72 20 6d 6f 64 65 73 20 6f 6e 6c |colour modes onl| 00012510 79 29 2e 20 54 68 65 20 63 6f 6c 6f 75 72 20 66 |y). The colour f| 00012520 6f 72 20 77 68 69 63 68 20 74 68 65 20 74 69 6e |or which the tin| 00012530 74 20 69 73 20 73 65 74 20 69 73 20 73 70 65 63 |t is set is spec| 00012540 69 66 69 65 64 20 62 79 20 63 2c 20 77 68 69 63 |ified by c, whic| 00012550 68 20 6d 61 79 20 62 65 20 61 6e 79 20 6f 66 20 |h may be any of | 00012560 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a |the following:..| 00012570 23 74 61 62 0a 20 20 20 20 20 20 20 30 09 54 65 |#tab. 0.Te| 00012580 78 74 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f |xt foreground co| 00012590 6c 6f 75 72 0a 20 20 20 20 20 20 20 31 09 54 65 |lour. 1.Te| 000125a0 78 74 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f |xt background co| 000125b0 6c 6f 75 72 0a 20 20 20 20 20 20 20 32 09 47 72 |lour. 2.Gr| 000125c0 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f 75 6e |aphics foregroun| 000125d0 64 20 63 6f 6c 6f 75 72 0a 20 20 20 20 20 20 20 |d colour. | 000125e0 33 09 47 72 61 70 68 69 63 73 20 62 61 63 6b 67 |3.Graphics backg| 000125f0 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 2e 0a 0a 54 |round colour...T| 00012600 68 65 20 74 69 6e 74 2c 20 67 69 76 65 6e 20 69 |he tint, given i| 00012610 6e 20 74 2c 20 73 68 6f 75 6c 64 20 62 65 20 65 |n t, should be e| 00012620 69 74 68 65 72 20 30 2c 20 31 2c 20 32 20 6f 72 |ither 0, 1, 2 or| 00012630 20 33 2e 20 54 68 65 20 68 69 67 68 65 72 20 69 | 3. The higher i| 00012640 74 20 69 73 2c 20 74 68 65 20 62 72 69 67 68 74 |t is, the bright| 00012650 65 72 20 74 68 65 20 63 6f 6c 6f 75 72 20 69 73 |er the colour is| 00012660 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00012670 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 | is equivalent t| 00012680 6f 20 3c 56 44 55 20 32 33 2c 31 37 3d 3e 56 44 |o <VDU 23,17=>VD| 00012690 55 3a 32 33 2c 31 37 2c 30 3e 2e 00 44 41 54 41 |U:23,17,0>..DATA| 000126a0 ff 00 00 00 62 62 63 5f 76 64 75 0a 53 79 6e 74 |....bbc_vdu.Synt| 000126b0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000126c0 62 62 63 5f 76 64 75 20 28 69 6e 74 20 63 29 3b |bbc_vdu (int c);| 000126d0 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d |.Header:.<bbc.h=| 000126e0 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |>bbc>..Returns:.| 000126f0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00012700 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00012710 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00012720 69 6f 6e 20 77 72 69 74 65 73 20 74 68 65 20 73 |ion writes the s| 00012730 70 65 63 69 66 69 65 64 20 63 68 61 72 61 63 74 |pecified charact| 00012740 65 72 20 74 6f 20 61 6c 6c 20 61 63 74 69 76 65 |er to all active| 00012750 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d 73 2e | output streams.| 00012760 20 49 74 20 64 6f 65 73 20 74 68 69 73 20 62 79 | It does this by| 00012770 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 53 57 49 | calling the SWI| 00012780 20 3c 4f 53 5f 57 72 69 74 65 43 3d 3e 53 57 49 | <OS_WriteC=>SWI| 00012790 2e 4f 53 5f 57 72 69 74 65 43 3e 00 44 41 54 41 |.OS_WriteC>.DATA| 000127a0 d3 04 00 00 56 44 55 20 43 6f 6d 6d 61 6e 64 73 |....VDU Commands| 000127b0 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d |.The following m| 000127c0 61 63 72 6f 73 20 61 72 65 20 64 65 66 69 6e 65 |acros are define| 000127d0 64 20 69 6e 20 3c 62 62 63 2e 68 3d 3e 62 62 63 |d in <bbc.h=>bbc| 000127e0 3e 3a 0a 0a 4d 61 63 72 6f 09 43 6f 64 65 09 4d |>:..Macro.Code.M| 000127f0 65 61 6e 69 6e 67 0a 23 4c 69 6e 65 0a 62 62 63 |eaning.#Line.bbc| 00012800 5f 43 68 61 72 54 6f 50 72 69 6e 74 65 72 09 31 |_CharToPrinter.1| 00012810 09 53 65 6e 64 20 6e 65 78 74 20 63 68 61 72 20 |.Send next char | 00012820 74 6f 20 70 72 69 6e 74 65 72 0a 62 62 63 5f 45 |to printer.bbc_E| 00012830 6e 61 62 6c 65 50 72 69 6e 74 65 72 09 32 09 45 |nablePrinter.2.E| 00012840 6e 61 62 6c 65 20 70 72 69 6e 74 65 72 0a 62 62 |nable printer.bb| 00012850 63 5f 44 69 73 61 62 6c 65 50 72 69 6e 74 65 72 |c_DisablePrinter| 00012860 09 33 09 44 69 73 61 62 6c 65 20 70 72 69 6e 74 |.3.Disable print| 00012870 65 72 0a 62 62 63 5f 54 65 78 74 54 6f 54 65 78 |er.bbc_TextToTex| 00012880 74 09 34 09 53 70 6c 69 74 20 74 65 78 74 20 26 |t.4.Split text &| 00012890 20 67 72 61 70 68 69 63 73 20 63 75 72 73 6f 72 | graphics cursor| 000128a0 73 0a 62 62 63 5f 54 65 78 74 54 6f 47 72 61 70 |s.bbc_TextToGrap| 000128b0 68 09 35 09 4a 6f 69 6e 20 74 65 78 74 20 26 20 |h.5.Join text & | 000128c0 67 72 61 70 68 69 63 73 20 63 75 72 73 6f 72 73 |graphics cursors| 000128d0 0a 62 62 63 5f 45 6e 61 62 6c 65 56 44 55 09 36 |.bbc_EnableVDU.6| 000128e0 09 45 6e 61 62 6c 65 20 73 63 72 65 65 6e 20 6f |.Enable screen o| 000128f0 75 74 70 75 74 0a 62 62 63 5f 42 65 6c 6c 09 37 |utput.bbc_Bell.7| 00012900 09 42 65 6c 6c 20 28 73 79 73 74 65 6d 20 62 65 |.Bell (system be| 00012910 65 70 29 0a 62 62 63 5f 4d 6f 76 65 4f 6e 65 42 |ep).bbc_MoveOneB| 00012920 61 63 6b 09 38 09 42 61 63 6b 73 70 61 63 65 20 |ack.8.Backspace | 00012930 28 6d 6f 76 65 20 6c 65 66 74 29 0a 62 62 63 5f |(move left).bbc_| 00012940 4d 6f 76 65 4f 6e 65 4f 6e 09 39 09 48 6f 72 69 |MoveOneOn.9.Hori| 00012950 7a 6f 6e 74 61 6c 20 74 61 62 20 28 6d 6f 76 65 |zontal tab (move| 00012960 20 72 69 67 68 74 29 0a 62 62 63 5f 4d 6f 76 65 | right).bbc_Move| 00012970 44 6f 77 6e 4f 6e 65 09 31 30 09 4c 69 6e 65 20 |DownOne.10.Line | 00012980 66 65 65 64 20 28 6d 6f 76 65 20 64 6f 77 6e 29 |feed (move down)| 00012990 0a 62 62 63 5f 4d 6f 76 65 55 70 4f 6e 65 09 31 |.bbc_MoveUpOne.1| 000129a0 31 09 56 65 72 74 69 63 61 6c 20 74 61 62 20 28 |1.Vertical tab (| 000129b0 6d 6f 76 65 20 75 70 29 0a 62 62 63 5f 43 6c 65 |move up).bbc_Cle| 000129c0 61 72 54 65 78 74 09 31 32 09 46 6f 72 6d 20 66 |arText.12.Form f| 000129d0 65 65 64 2f 43 6c 65 61 72 20 73 63 72 65 65 6e |eed/Clear screen| 000129e0 0a 62 62 63 5f 4d 6f 76 65 54 6f 53 74 61 72 74 |.bbc_MoveToStart| 000129f0 09 31 33 09 43 61 72 72 69 61 67 65 20 72 65 74 |.13.Carriage ret| 00012a00 75 72 6e 0a 62 62 63 5f 50 61 67 65 4f 6e 09 31 |urn.bbc_PageOn.1| 00012a10 34 09 50 61 67 65 64 20 6d 6f 64 65 20 6f 6e 0a |4.Paged mode on.| 00012a20 62 62 63 5f 50 61 67 65 4f 66 66 09 31 35 09 50 |bbc_PageOff.15.P| 00012a30 61 67 65 64 20 6d 6f 64 65 20 6f 66 66 0a 62 62 |aged mode off.bb| 00012a40 63 5f 43 6c 65 61 72 47 72 61 70 68 09 31 36 09 |c_ClearGraph.16.| 00012a50 43 6c 65 61 72 20 67 72 61 70 68 69 63 73 20 77 |Clear graphics w| 00012a60 69 6e 64 6f 77 0a 62 62 63 5f 44 65 66 54 65 78 |indow.bbc_DefTex| 00012a70 74 43 6f 6c 6f 75 72 09 31 37 09 53 65 74 20 74 |tColour.17.Set t| 00012a80 65 78 74 20 63 6f 6c 6f 75 72 0a 62 62 63 5f 44 |ext colour.bbc_D| 00012a90 65 66 47 72 61 70 68 43 6f 6c 6f 75 72 09 31 38 |efGraphColour.18| 00012aa0 09 53 65 74 20 67 72 61 70 68 69 63 73 20 63 6f |.Set graphics co| 00012ab0 6c 6f 75 72 20 61 6e 64 20 61 63 74 69 6f 6e 0a |lour and action.| 00012ac0 62 62 63 5f 44 65 66 4c 6f 67 69 63 61 6c 09 31 |bbc_DefLogical.1| 00012ad0 39 09 53 65 74 20 70 61 6c 65 74 74 65 0a 62 62 |9.Set palette.bb| 00012ae0 63 5f 52 65 73 74 6f 72 65 4c 6f 67 69 63 61 6c |c_RestoreLogical| 00012af0 09 32 30 09 52 65 73 74 6f 72 65 20 64 65 66 61 |.20.Restore defa| 00012b00 75 6c 74 20 70 61 6c 65 74 74 65 0a 62 62 63 5f |ult palette.bbc_| 00012b10 44 69 73 61 62 6c 65 56 44 55 09 32 31 09 44 69 |DisableVDU.21.Di| 00012b20 73 61 62 6c 65 20 73 63 72 65 65 6e 20 6f 75 74 |sable screen out| 00012b30 70 75 74 0a 62 62 63 5f 53 63 72 65 65 6e 4d 6f |put.bbc_ScreenMo| 00012b40 64 65 09 32 32 09 43 68 61 6e 67 65 20 53 63 72 |de.22.Change Scr| 00012b50 65 65 6e 20 4d 6f 64 65 0a 62 62 63 5f 4d 75 6c |een Mode.bbc_Mul| 00012b60 74 69 50 75 72 70 6f 73 65 09 32 33 09 4d 69 73 |tiPurpose.23.Mis| 00012b70 63 0a 62 62 63 5f 44 65 66 47 72 61 70 68 57 69 |c.bbc_DefGraphWi| 00012b80 6e 64 6f 77 09 32 34 09 44 65 66 69 6e 65 20 67 |ndow.24.Define g| 00012b90 72 61 70 68 69 63 73 20 77 69 6e 64 6f 77 0a 62 |raphics window.b| 00012ba0 62 63 5f 50 6c 6f 74 43 6f 6d 6d 61 6e 64 09 32 |bc_PlotCommand.2| 00012bb0 35 09 50 6c 6f 74 0a 62 62 63 5f 44 65 66 61 75 |5.Plot.bbc_Defau| 00012bc0 6c 74 57 69 6e 64 6f 77 09 32 36 09 52 65 73 74 |ltWindow.26.Rest| 00012bd0 6f 72 65 20 64 65 66 61 75 6c 74 20 77 69 6e 64 |ore default wind| 00012be0 6f 77 73 0a 62 62 63 5f 44 65 66 54 65 78 74 57 |ows.bbc_DefTextW| 00012bf0 69 6e 64 6f 77 09 32 38 09 44 65 66 69 6e 65 20 |indow.28.Define | 00012c00 74 65 78 74 20 77 69 6e 64 6f 77 0a 62 62 63 5f |text window.bbc_| 00012c10 44 65 66 47 72 61 70 68 4f 72 69 67 69 6e 09 32 |DefGraphOrigin.2| 00012c20 39 09 53 65 74 20 67 72 61 70 68 69 63 73 20 6f |9.Set graphics o| 00012c30 72 69 67 69 6e 0a 62 62 63 5f 48 6f 6d 65 54 65 |rigin.bbc_HomeTe| 00012c40 78 74 09 33 30 09 48 6f 6d 65 0a 62 62 63 5f 4d |xt.30.Home.bbc_M| 00012c50 6f 76 65 54 65 78 74 09 33 31 09 50 6f 73 69 74 |oveText.31.Posit| 00012c60 69 6f 6e 20 74 65 78 74 20 63 75 72 73 6f 72 00 |ion text cursor.| 00012c70 44 41 54 41 58 01 00 00 62 62 63 5f 76 64 75 71 |DATAX...bbc_vduq| 00012c80 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00012c90 6f 72 3e 20 2a 62 62 63 5f 76 64 75 71 20 28 69 |or> *bbc_vduq (i| 00012ca0 6e 74 20 63 2c 20 2e 2e 2e 29 3b 0a 48 65 61 64 |nt c, ...);.Head| 00012cb0 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e |er:.<bbc.h=>bbc>| 00012cc0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 00012cd0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 00012ce0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 00012cf0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6f |.This function o| 00012d00 75 74 70 75 74 73 20 6d 75 6c 74 69 70 6c 65 20 |utputs multiple | 00012d10 63 68 61 72 61 63 74 65 72 73 2e 20 54 68 65 20 |characters. The | 00012d20 66 69 72 73 74 20 63 68 61 72 61 63 74 65 72 20 |first character | 00012d30 73 68 6f 75 6c 64 20 62 65 20 61 20 63 6f 6e 74 |should be a cont| 00012d40 72 6f 6c 20 63 6f 64 65 20 61 6e 64 20 74 68 65 |rol code and the| 00012d50 6e 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 |n the parameters| 00012d60 20 66 6f 6c 6c 6f 77 2e 20 59 6f 75 20 63 61 6e | follow. You can| 00012d70 20 6f 6e 6c 79 20 73 65 6e 64 20 74 68 65 20 72 | only send the r| 00012d80 69 67 68 74 20 6e 75 6d 62 65 72 20 6f 66 20 70 |ight number of p| 00012d90 61 72 61 6d 65 74 65 72 73 20 28 74 68 65 20 66 |arameters (the f| 00012da0 75 6e 63 74 69 6f 6e 20 6b 6e 6f 77 73 20 68 6f |unction knows ho| 00012db0 77 20 6d 61 6e 79 20 74 68 65 72 65 20 73 68 6f |w many there sho| 00012dc0 75 6c 64 20 62 65 29 2e 44 41 54 41 e6 00 00 00 |uld be).DATA....| 00012dd0 62 62 63 5f 76 64 75 76 61 72 0a 53 79 6e 74 61 |bbc_vduvar.Synta| 00012de0 78 3a 09 69 6e 74 20 62 62 63 5f 76 64 75 76 61 |x:.int bbc_vduva| 00012df0 72 20 28 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 |r (int n);.Heade| 00012e00 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 62 63 3e 0a |r:.<bbc.h=>bbc>.| 00012e10 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 76 61 |.Returns:.The va| 00012e20 6c 75 65 20 6f 66 20 74 68 65 20 56 44 55 20 76 |lue of the VDU v| 00012e30 61 72 69 61 62 6c 65 2e 0a 0a 54 68 69 73 20 66 |ariable...This f| 00012e40 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 61 20 |unction reads a | 00012e50 73 69 6e 67 6c 65 20 3c 56 44 55 3d 3e 62 62 63 |single <VDU=>bbc| 00012e60 5f 76 64 75 76 61 72 5f 3e 20 6f 72 20 3c 6d 6f |_vduvar_> or <mo| 00012e70 64 65 3d 3e 62 62 63 5f 6d 6f 64 65 76 61 72 5f |de=>bbc_modevar_| 00012e80 3e 20 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 |> variable value| 00012e90 2c 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e |, for the curren| 00012ea0 74 20 73 63 72 65 65 6e 20 6d 6f 64 65 2e 00 00 |t screen mode...| 00012eb0 44 41 54 41 ba 00 00 00 56 44 55 20 56 61 72 69 |DATA....VDU Vari| 00012ec0 61 62 6c 65 73 0a 46 6f 72 20 65 61 63 68 20 6f |ables.For each o| 00012ed0 66 20 74 68 65 20 3c 56 44 55 20 76 61 72 69 61 |f the <VDU varia| 00012ee0 62 6c 65 73 3d 3e 53 57 49 3a 6f 73 5f 72 65 61 |bles=>SWI:os_rea| 00012ef0 64 76 64 75 76 61 72 69 61 62 6c 65 73 2e 76 61 |dvduvariables.va| 00012f00 72 69 61 62 6c 65 73 3e 20 28 31 32 38 2d 31 37 |riables> (128-17| 00012f10 30 29 20 69 73 20 64 65 66 69 6e 65 64 20 61 6e |0) is defined an| 00012f20 20 65 6e 75 6d 20 74 79 70 65 2e 20 54 68 65 20 | enum type. The | 00012f30 6e 61 6d 65 73 20 61 72 65 20 74 68 65 20 6e 61 |names are the na| 00012f40 6d 65 73 20 6f 66 20 74 68 65 20 76 61 72 69 61 |mes of the varia| 00012f50 62 6c 65 73 20 70 72 65 66 69 78 65 64 20 77 69 |bles prefixed wi| 00012f60 74 68 20 22 62 62 63 5f 22 2e 00 00 44 41 54 41 |th "bbc_"...DATA| 00012f70 d0 01 00 00 62 62 63 5f 76 64 75 76 61 72 73 0a |....bbc_vduvars.| 00012f80 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00012f90 72 3e 20 2a 62 62 63 5f 76 64 75 76 61 72 73 20 |r> *bbc_vduvars | 00012fa0 28 69 6e 74 20 2a 76 61 72 2c 20 69 6e 74 20 2a |(int *var, int *| 00012fb0 76 61 6c 29 3b 0a 48 65 61 64 65 72 3a 09 3c 62 |val);.Header:.<b| 00012fc0 62 63 2e 68 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 |bc.h=>bbc>..Retu| 00012fd0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00012fe0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00012ff0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00013000 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 73 |function reads s| 00013010 65 76 65 72 61 6c 20 3c 56 44 55 3d 3e 62 62 63 |everal <VDU=>bbc| 00013020 5f 76 64 75 76 61 72 5f 3e 20 6f 72 20 3c 6d 6f |_vduvar_> or <mo| 00013030 64 65 3d 3e 62 62 63 5f 6d 6f 64 65 76 61 72 5f |de=>bbc_modevar_| 00013040 3e 20 76 61 72 69 61 62 6c 65 73 20 66 6f 72 20 |> variables for | 00013050 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 |the current mode| 00013060 2e 20 2f 76 61 72 2f 20 70 6f 69 6e 74 73 20 74 |. /var/ points t| 00013070 6f 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 |o a sequence of | 00013080 2f 69 6e 74 73 2f 2c 20 74 65 72 6d 69 6e 61 74 |/ints/, terminat| 00013090 65 64 20 62 79 20 28 2d 31 29 2e 20 54 68 65 20 |ed by (-1). The | 000130a0 76 61 6c 75 65 20 6f 66 20 65 61 63 68 20 6f 66 |value of each of| 000130b0 20 74 68 6f 73 65 20 56 44 55 20 76 61 72 69 61 | those VDU varia| 000130c0 62 6c 65 73 20 77 69 6c 6c 20 62 65 20 72 65 61 |bles will be rea| 000130d0 64 20 61 6e 64 20 70 6c 61 63 65 64 20 69 6e 20 |d and placed in | 000130e0 74 68 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 |the sequence of | 000130f0 2f 69 6e 74 73 2f 20 70 6f 69 6e 74 65 64 20 74 |/ints/ pointed t| 00013100 6f 20 62 79 20 2f 76 61 6c 2f 2c 20 69 6e 20 74 |o by /val/, in t| 00013110 68 65 20 73 61 6d 65 20 6f 72 64 65 72 2e 20 2f |he same order. /| 00013120 76 61 72 2f 20 61 6e 64 20 2f 76 61 6c 2f 20 6d |var/ and /val/ m| 00013130 61 79 20 62 65 20 65 71 75 61 6c 2e 44 41 54 41 |ay be equal.DATA| 00013140 5f 01 00 00 62 62 63 5f 76 64 75 77 0a 53 79 6e |_...bbc_vduw.Syn| 00013150 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00013160 2a 6f 73 5f 76 64 75 77 20 28 69 6e 74 20 6e 29 |*os_vduw (int n)| 00013170 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 |;.Header:.<bbc.h| 00013180 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a |=>bbc>..Returns:| 00013190 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000131a0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000131b0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000131c0 74 69 6f 6e 20 73 65 6e 64 73 20 74 68 65 20 31 |tion sends the 1| 000131d0 36 2d 62 69 74 20 76 61 6c 75 65 20 69 6e 20 2f |6-bit value in /| 000131e0 6e 2f 20 74 6f 20 74 68 65 20 56 44 55 20 64 72 |n/ to the VDU dr| 000131f0 69 76 65 72 20 61 73 20 74 77 6f 20 62 79 74 65 |iver as two byte| 00013200 73 2c 20 6c 6f 77 65 72 20 62 79 74 65 20 66 69 |s, lower byte fi| 00013210 72 73 74 20 28 6c 69 74 74 6c 65 20 65 6e 64 69 |rst (little endi| 00013220 61 6e 29 2e 20 49 74 20 77 6f 75 6c 64 20 74 79 |an). It would ty| 00013230 70 69 63 61 6c 6c 79 20 62 65 20 75 73 65 64 20 |pically be used | 00013240 66 6f 72 20 73 65 6e 64 69 6e 67 20 73 63 72 65 |for sending scre| 00013250 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 74 |en coordinates t| 00013260 6f 20 74 68 65 20 56 44 55 20 64 72 69 76 65 72 |o the VDU driver| 00013270 73 2c 20 61 73 20 74 68 65 73 65 20 61 72 65 20 |s, as these are | 00013280 61 6c 77 61 79 73 20 74 77 6f 20 62 79 74 65 20 |always two byte | 00013290 71 75 61 6e 74 69 74 69 65 73 2e 00 44 41 54 41 |quantities..DATA| 000132a0 58 00 00 00 56 44 55 2f 4d 6f 64 65 20 56 61 72 |X...VDU/Mode Var| 000132b0 69 61 62 6c 65 73 20 46 75 6e 63 74 69 6f 6e 73 |iables Functions| 000132c0 0a 23 49 6e 64 65 6e 74 20 31 30 0a 3c 62 62 63 |.#Indent 10.<bbc| 000132d0 5f 76 64 75 76 61 72 3e 0a 3c 62 62 63 5f 76 64 |_vduvar>.<bbc_vd| 000132e0 75 76 61 72 73 3e 0a 3c 62 62 63 5f 6d 6f 64 65 |uvars>.<bbc_mode| 000132f0 76 61 72 3e 44 41 54 41 df 00 00 00 62 62 63 5f |var>DATA....bbc_| 00013300 76 6f 69 63 65 73 0a 53 79 6e 74 61 78 3a 09 3c |voices.Syntax:.<| 00013310 6f 73 5f 65 72 72 6f 72 3e 20 2a 62 62 63 5f 76 |os_error> *bbc_v| 00013320 6f 69 63 65 73 20 28 69 6e 74 20 6e 29 3b 0a 48 |oices (int n);.H| 00013330 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 3d 3e 62 |eader:.<bbc.h=>b| 00013340 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |bc>..Returns:.Po| 00013350 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00013360 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00013370 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00013380 6e 20 73 65 74 73 20 74 68 65 20 6e 75 6d 62 65 |n sets the numbe| 00013390 72 20 6f 66 20 61 63 74 69 76 65 20 73 6f 75 6e |r of active soun| 000133a0 64 20 63 68 61 6e 6e 65 6c 73 2e 20 2f 6e 2f 20 |d channels. /n/ | 000133b0 77 69 6c 6c 20 62 65 20 72 6f 75 6e 64 65 64 20 |will be rounded | 000133c0 75 70 20 74 6f 20 31 2c 20 32 2c 20 34 20 6f 72 |up to 1, 2, 4 or| 000133d0 20 38 2e 00 44 41 54 41 c9 00 00 00 62 62 63 5f | 8..DATA....bbc_| 000133e0 76 70 6f 73 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |vpos.Syntax:.int| 000133f0 20 62 62 63 5f 76 70 6f 73 20 28 76 6f 69 64 29 | bbc_vpos (void)| 00013400 3b 0a 48 65 61 64 65 72 3a 09 3c 62 62 63 2e 68 |;.Header:.<bbc.h| 00013410 3d 3e 62 62 63 3e 0a 0a 52 65 74 75 72 6e 73 3a |=>bbc>..Returns:| 00013420 09 54 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 |.The cursor posi| 00013430 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |tion...This func| 00013440 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 59 |tion reads the Y| 00013450 20 63 6f 6f 72 64 69 6e 61 74 65 20 6f 66 20 74 | coordinate of t| 00013460 68 65 20 74 65 78 74 20 63 75 72 73 6f 72 2c 20 |he text cursor, | 00013470 66 72 6f 6d 20 74 68 65 20 74 6f 70 20 65 64 67 |from the top edg| 00013480 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 |e of the current| 00013490 20 74 65 78 74 20 77 69 6e 64 6f 77 2e 00 00 00 | text window....| 000134a0 44 41 54 41 84 01 00 00 42 4f 4f 4c 0a 54 68 65 |DATA....BOOL.The| 000134b0 20 74 79 70 65 20 42 4f 4f 4c 20 69 73 20 64 65 | type BOOL is de| 000134c0 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 000134d0 62 3a 43 6f 72 65 2e 68 3d 3e 43 6f 72 65 3e 2c |b:Core.h=>Core>,| 000134e0 20 3c 54 69 6d 73 4c 69 62 3a 43 6f 72 65 2e 68 | <TimsLib:Core.h| 000134f0 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 6e 64 20 3c |=>Core_TL> and <| 00013500 6f 73 2e 68 3d 3e 6f 73 3e 20 28 44 65 73 6b 74 |os.h=>os> (Deskt| 00013510 6f 70 20 43 29 20 61 73 20 61 6e 20 6f 62 6a 65 |op C) as an obje| 00013520 63 74 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f |ct capable of ho| 00013530 6c 64 69 6e 67 20 74 68 65 20 76 61 6c 75 65 73 |lding the values| 00013540 20 3c 54 52 55 45 3e 20 61 6e 64 20 3c 46 41 4c | <TRUE> and <FAL| 00013550 53 45 3e 2e 20 49 74 20 69 73 20 69 6e 20 66 61 |SE>. It is in fa| 00013560 63 74 20 64 65 66 69 6e 65 64 20 75 73 69 6e 67 |ct defined using| 00013570 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d | the following m| 00013580 61 63 72 6f 2c 20 72 61 74 68 65 72 20 74 68 61 |acro, rather tha| 00013590 6e 20 70 72 6f 70 65 72 6c 79 20 64 65 66 69 6e |n properly defin| 000135a0 69 6e 67 20 69 74 20 61 73 20 61 20 74 79 70 65 |ing it as a type| 000135b0 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |:..{fCode;align | 000135c0 63 65 6e 74 72 65 7d 3c 23 64 65 66 69 6e 65 3d |centre}<#define=| 000135d0 3e 64 65 66 69 6e 65 3e 20 42 4f 4f 4c 20 69 6e |>define> BOOL in| 000135e0 74 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 49 6e 20 44 |t{f;align}..In D| 000135f0 65 73 6b 4c 69 62 20 69 74 20 69 73 20 64 65 66 |eskLib it is def| 00013600 69 6e 65 64 20 61 73 20 61 6e 20 2f 75 6e 73 69 |ined as an /unsi| 00013610 67 6e 65 64 2f 2c 20 6e 6f 74 20 61 6e 20 2f 69 |gned/, not an /i| 00013620 6e 74 2f 2e 44 41 54 41 7e 01 00 00 62 72 65 61 |nt/.DATA~...brea| 00013630 6b 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 |k.This command a| 00013640 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 6a 75 6d |llows you to jum| 00013650 70 20 6f 75 74 20 6f 66 20 61 20 73 65 74 20 6f |p out of a set o| 00013660 66 20 62 72 61 63 65 73 2e 20 49 74 20 69 73 20 |f braces. It is | 00013670 6f 66 20 6d 6f 73 74 20 75 73 65 20 69 6e 20 3c |of most use in <| 00013680 73 77 69 74 63 68 3e 20 63 6f 6e 73 74 72 75 63 |switch> construc| 00013690 74 73 2e 0a 0a 65 67 0a 0a 23 66 43 6f 64 65 0a |ts...eg..#fCode.| 000136a0 20 20 20 73 77 69 74 63 68 20 28 61 29 0a 20 20 | switch (a). | 000136b0 20 5c 7b 0a 20 20 20 63 61 73 65 20 30 3a 20 3c | \{. case 0: <| 000136c0 70 75 74 73 3e 28 22 43 61 73 65 20 30 22 29 3b |puts>("Case 0");| 000136d0 0a 20 20 20 63 61 73 65 20 31 3a 20 70 75 74 73 |. case 1: puts| 000136e0 28 22 43 61 73 65 20 31 22 29 3b 0a 20 20 20 20 |("Case 1");. | 000136f0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 | break;. | 00013700 20 63 61 73 65 20 32 3a 20 70 75 74 73 28 22 43 | case 2: puts("C| 00013710 61 73 65 20 32 22 29 3b 0a 20 20 20 7d 0a 23 66 |ase 2");. }.#f| 00013720 0a 0a 49 66 20 61 3d 3d 30 2c 20 74 68 65 6e 20 |..If a==0, then | 00013730 94 43 61 73 65 20 30 95 20 61 6e 64 20 94 43 61 |.Case 0. and .Ca| 00013740 73 65 20 31 95 20 61 72 65 20 70 72 69 6e 74 65 |se 1. are printe| 00013750 64 2e 0a 49 66 20 61 3d 3d 31 2c 20 74 68 65 6e |d..If a==1, then| 00013760 20 6a 75 73 74 20 94 43 61 73 65 20 31 95 20 69 | just .Case 1. i| 00013770 73 20 70 72 69 6e 74 65 64 2e 0a 49 66 20 61 3d |s printed..If a=| 00013780 3d 32 2c 20 74 68 65 6e 20 6a 75 73 74 20 94 43 |=2, then just .C| 00013790 61 73 65 20 32 95 20 69 73 20 70 72 69 6e 74 65 |ase 2. is printe| 000137a0 64 2e 00 00 44 41 54 41 c9 02 00 00 62 73 65 61 |d...DATA....bsea| 000137b0 72 63 68 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |rch.Syntax:.void| 000137c0 20 2a 62 73 65 61 72 63 68 20 28 76 6f 69 64 20 | *bsearch (void | 000137d0 2a 6b 65 79 2c 20 76 6f 69 64 20 2a 62 61 73 65 |*key, void *base| 000137e0 2c 20 3c 73 69 7a 65 5f 74 3e 20 6e 75 6d 2c 20 |, <size_t> num, | 000137f0 73 69 7a 65 5f 74 20 73 69 7a 65 2c 20 69 6e 74 |size_t size, int| 00013800 20 28 2a 66 75 6e 63 29 20 28 76 6f 69 64 20 2a | (*func) (void *| 00013810 2c 20 76 6f 69 64 20 2a 29 29 3b 0a 48 65 61 64 |, void *));.Head| 00013820 65 72 3a 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 |er:.<stdlib.h=>s| 00013830 74 64 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a |tdlib>..Returns:| 00013840 09 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 |.A pointer to th| 00013850 65 20 6d 61 74 63 68 69 6e 67 20 6f 62 6a 65 63 |e matching objec| 00013860 74 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |t, or <NULL> if | 00013870 6e 6f 6e 65 20 66 6f 75 6e 64 2e 0a 0a 54 68 69 |none found...Thi| 00013880 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 |s function searc| 00013890 68 65 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 |hes an array of | 000138a0 2f 6e 75 6d 2f 20 6f 62 6a 65 63 74 73 2c 20 65 |/num/ objects, e| 000138b0 61 63 68 20 6f 66 20 77 68 69 63 68 20 69 73 20 |ach of which is | 000138c0 2f 73 69 7a 65 2f 20 62 79 74 65 73 20 6c 6f 6e |/size/ bytes lon| 000138d0 67 2c 20 61 6e 64 20 77 68 6f 73 65 20 66 69 72 |g, and whose fir| 000138e0 73 74 20 6f 62 6a 65 63 74 20 69 73 20 70 6f 69 |st object is poi| 000138f0 6e 74 65 64 20 74 6f 20 62 79 20 2f 62 61 73 65 |nted to by /base| 00013900 2f 2c 20 66 6f 72 20 61 6e 20 6f 62 6a 65 63 74 |/, for an object| 00013910 20 77 68 69 63 68 20 6d 61 74 63 68 65 73 20 2f | which matches /| 00013920 6b 65 79 2f 2e 0a 0a 54 68 65 20 66 75 6e 63 74 |key/...The funct| 00013930 69 6f 6e 20 77 68 69 63 68 20 6d 75 73 74 20 62 |ion which must b| 00013940 65 20 64 65 66 69 6e 65 64 20 62 79 20 79 6f 75 |e defined by you| 00013950 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 | is called with | 00013960 70 6f 69 6e 74 65 72 73 20 74 6f 20 6f 62 6a 65 |pointers to obje| 00013970 63 74 73 2e 20 49 66 20 74 68 65 20 66 69 72 73 |cts. If the firs| 00013980 74 20 69 73 20 6c 65 73 73 20 74 68 61 6e 2c 20 |t is less than, | 00013990 65 71 75 61 6c 20 74 6f 2c 20 6f 72 20 67 72 65 |equal to, or gre| 000139a0 61 74 65 72 20 74 68 61 6e 20 74 68 65 20 73 65 |ater than the se| 000139b0 63 6f 6e 64 20 74 68 65 6e 20 74 68 65 20 66 75 |cond then the fu| 000139c0 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 72 65 |nction should re| 000139d0 74 75 72 6e 20 6c 65 73 73 20 74 68 61 6e 2c 20 |turn less than, | 000139e0 65 71 75 61 6c 20 74 6f 2c 20 6f 72 20 67 72 65 |equal to, or gre| 000139f0 61 74 65 72 20 74 68 61 6e 20 7a 65 72 6f 2e 0a |ater than zero..| 00013a00 0a 54 68 65 20 61 72 72 61 79 20 6d 75 73 74 20 |.The array must | 00013a10 62 65 20 73 6f 72 74 65 64 20 69 6e 74 6f 20 61 |be sorted into a| 00013a20 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2c 20 |scending order, | 00013a30 6f 6e 20 74 68 65 20 62 61 73 69 73 20 6f 66 20 |on the basis of | 00013a40 74 68 65 20 63 72 69 74 65 72 69 61 20 75 73 65 |the criteria use| 00013a50 64 20 62 79 20 74 68 65 20 63 6f 6d 70 61 72 69 |d by the compari| 00013a60 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 00 00 00 |son function....| 00013a70 44 41 54 41 a6 00 00 00 42 55 46 53 49 5a 0a 23 |DATA....BUFSIZ.#| 00013a80 50 61 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 65 |Parent stdio.The| 00013a90 20 6d 61 63 72 6f 20 42 55 46 53 49 5a 20 69 73 | macro BUFSIZ is| 00013aa0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 | defined in <std| 00013ab0 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 73 20 |io.h=>stdio> as | 00013ac0 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 |the size of the | 00013ad0 62 75 66 66 65 72 20 75 73 65 64 20 62 79 20 74 |buffer used by t| 00013ae0 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 73 65 74 |he function <set| 00013af0 62 75 66 3e 2e 20 49 6e 20 45 61 73 79 a0 43 20 |buf>. In Easy.C | 00013b00 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |it is defined as| 00013b10 20 34 30 39 36 2e 00 00 44 49 52 24 2c 00 00 00 | 4096...DIR$,...| 00013b20 2c 00 00 00 44 3b 01 00 46 ff ff ff 54 05 42 26 |,...D;..F...T.B&| 00013b30 9f 02 00 00 13 00 00 00 00 00 00 00 73 74 61 74 |............stat| 00013b40 65 00 00 00 44 41 54 41 9f 02 00 00 62 75 74 74 |e...DATA....butt| 00013b50 6f 6e 5f 73 74 61 74 65 0a 54 68 69 73 20 74 79 |on_state.This ty| 00013b60 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 00013b70 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 | <DeskLib:Wimp.h| 00013b80 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 69 73 20 75 |=>Wimp>. It is u| 00013b90 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 |sed to hold the | 00013ba0 63 75 72 72 65 6e 74 20 62 75 74 74 6f 6e 20 73 |current button s| 00013bb0 74 61 74 65 20 6f 66 20 74 68 65 20 6d 6f 75 73 |tate of the mous| 00013bc0 65 2c 20 62 6f 74 68 20 61 73 20 61 20 76 61 6c |e, both as a val| 00013bd0 75 65 20 61 6e 64 20 61 73 20 69 6e 64 69 76 69 |ue and as indivi| 00013be0 64 75 61 6c 20 62 69 74 73 20 73 6f 20 79 6f 75 |dual bits so you| 00013bf0 20 63 61 6e 20 74 65 73 74 20 65 61 73 69 6c 79 | can test easily| 00013c00 20 66 6f 72 20 69 6e 64 69 76 69 64 75 61 6c 20 | for individual | 00013c10 62 75 74 74 6f 6e 73 2e 20 49 74 20 69 73 20 64 |buttons. It is d| 00013c20 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f |efined as the fo| 00013c30 6c 6c 6f 77 69 6e 67 20 75 6e 69 6f 6e 3a 0a 0a |llowing union:..| 00013c40 20 20 5c 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 | \{. unsigne| 00013c50 64 20 69 6e 74 20 76 61 6c 75 65 3b 0a 20 20 20 |d int value;. | 00013c60 20 73 74 72 75 63 74 0a 20 20 20 20 5c 7b 0a 20 | struct. \{. | 00013c70 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e | unsigned in| 00013c80 74 20 61 64 6a 75 73 74 09 3a 20 31 3b 0a 20 20 |t adjust.: 1;. | 00013c90 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00013ca0 20 6d 65 6e 75 09 3a 20 31 3b 0a 20 20 20 20 20 | menu.: 1;. | 00013cb0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 65 | unsigned int se| 00013cc0 6c 65 63 74 09 3a 20 31 3b 0a 20 20 20 20 20 20 |lect.: 1;. | 00013cd0 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 75 6d |unsigned int dum| 00013ce0 6d 79 33 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |my3.: 1;. u| 00013cf0 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 72 61 67 |nsigned int drag| 00013d00 61 64 6a 75 73 74 09 3a 20 31 3b 0a 20 20 20 20 |adjust.: 1;. | 00013d10 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 | unsigned int d| 00013d20 75 6d 6d 79 35 09 3a 20 31 3b 0a 20 20 20 20 20 |ummy5.: 1;. | 00013d30 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 72 | unsigned int dr| 00013d40 61 67 73 65 6c 65 63 74 09 3a 20 31 3b 0a 20 20 |agselect.: 1;. | 00013d50 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00013d60 20 64 75 6d 6d 79 37 09 3a 20 31 3b 0a 20 20 20 | dummy7.: 1;. | 00013d70 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 00013d80 63 6c 69 63 6b 61 64 6a 75 73 74 09 3a 20 31 3b |clickadjust.: 1;| 00013d90 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00013da0 69 6e 74 20 64 75 6d 6d 79 39 09 3a 20 31 3b 0a |int dummy9.: 1;.| 00013db0 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 00013dc0 6e 74 20 63 6c 69 63 6b 73 65 6c 65 63 74 09 3a |nt clickselect.:| 00013dd0 20 31 3b 0a 20 20 20 20 7d 20 64 61 74 61 3b 0a | 1;. } data;.| 00013de0 20 20 7d 00 44 49 52 24 b0 04 00 00 b0 04 00 00 | }.DIR$........| 00013df0 94 42 01 00 46 fd ff ff 16 63 84 2f cc 00 00 00 |.B..F....c./....| 00013e00 13 01 00 00 00 00 00 00 63 5f 00 00 e0 57 01 00 |........c_...W..| 00013e10 46 ff ff ff 06 05 dd 22 4e 01 00 00 13 00 00 00 |F......"N.......| 00013e20 00 00 00 00 63 61 6c 6c 6f 63 00 00 30 59 01 00 |....calloc..0Y..| 00013e30 46 fd ff ff c5 63 84 2f 8c 00 00 00 13 01 00 00 |F....c./........| 00013e40 00 00 00 00 63 61 70 5f 00 00 00 00 0c 5c 01 00 |....cap_.....\..| 00013e50 46 fd ff ff 1d 64 84 2f 2c 00 00 00 13 01 00 00 |F....d./,.......| 00013e60 00 00 00 00 63 61 72 65 74 5f 00 00 cc 5e 01 00 |....caret_...^..| 00013e70 46 ff ff ff 5c 6f b5 22 3c 00 00 00 13 00 00 00 |F...\o."<.......| 00013e80 00 00 00 00 63 61 73 65 00 00 00 00 08 5f 01 00 |....case....._..| 00013e90 46 ff ff ff 8f 50 be 22 aa 01 00 00 13 00 00 00 |F....P."........| 00013ea0 00 00 00 00 63 65 69 6c 00 00 00 00 b4 60 01 00 |....ceil.....`..| 00013eb0 46 fd ff ff 62 64 84 2f 60 00 00 00 13 01 00 00 |F...bd./`.......| 00013ec0 00 00 00 00 43 48 41 52 5f 00 00 00 dc 62 01 00 |....CHAR_....b..| 00013ed0 46 fd ff ff a2 64 84 2f 2c 00 00 00 13 01 00 00 |F....d./,.......| 00013ee0 00 00 00 00 63 68 61 72 69 6f 5f 00 08 64 01 00 |....chario_..d..| 00013ef0 46 ff ff ff 07 e5 53 26 a3 02 00 00 13 00 00 00 |F.....S&........| 00013f00 00 00 00 00 43 68 65 63 6b 00 00 00 ac 66 01 00 |....Check....f..| 00013f10 46 fd ff ff e4 64 84 2f 5c 01 00 00 13 01 00 00 |F....d./\.......| 00013f20 00 00 00 00 63 68 65 63 6b 5f 00 00 b4 72 01 00 |....check_...r..| 00013f30 46 ff ff ff 3f 4d c4 22 a0 00 00 00 13 00 00 00 |F...?M."........| 00013f40 00 00 00 00 63 6c 65 61 72 65 72 72 00 00 00 00 |....clearerr....| 00013f50 54 73 01 00 46 ff ff ff d9 be e1 22 90 01 00 00 |Ts..F......"....| 00013f60 13 00 00 00 00 00 00 00 63 6c 6f 63 6b 00 00 00 |........clock...| 00013f70 e4 74 01 00 46 fd ff ff c7 65 84 2f 28 00 00 00 |.t..F....e./(...| 00013f80 13 01 00 00 00 00 00 00 63 6c 6f 63 6b 5f 00 00 |........clock_..| 00013f90 d8 75 01 00 46 fd ff ff e9 65 84 2f 2c 00 00 00 |.u..F....e./,...| 00013fa0 13 01 00 00 00 00 00 00 43 4c 4f 43 4b 53 5f 00 |........CLOCKS_.| 00013fb0 44 77 01 00 46 ff ff ff 79 85 54 26 d0 00 00 00 |Dw..F...y.T&....| 00013fc0 13 00 00 00 00 00 00 00 43 6c 6f 73 65 44 6f 77 |........CloseDow| 00013fd0 6e 46 75 6e 63 74 69 6f 6e 00 00 00 14 78 01 00 |nFunction....x..| 00013fe0 46 fd ff ff 28 66 84 2f 64 00 00 00 13 01 00 00 |F...(f./d.......| 00013ff0 00 00 00 00 63 6f 6c 6f 75 72 5f 00 d0 7b 01 00 |....colour_..{..| 00014000 46 ff ff ff 14 c5 f3 22 e0 01 00 00 13 00 00 00 |F......"........| 00014010 00 00 00 00 63 6f 6c 6f 75 72 6d 65 6e 75 00 00 |....colourmenu..| 00014020 b0 7d 01 00 46 ff ff ff 99 87 f4 24 ad 01 00 00 |.}..F......$....| 00014030 13 00 00 00 00 00 00 00 43 6f 6c 6f 75 72 54 72 |........ColourTr| 00014040 61 6e 00 00 60 7f 01 00 46 fd ff ff a8 66 84 2f |an..`...F....f./| 00014050 2c 03 00 00 13 01 00 00 00 00 00 00 63 6f 6c 6f |,...........colo| 00014060 75 72 74 72 61 6e 5f 00 d4 a1 01 00 46 fd ff ff |urtran_.....F...| 00014070 42 68 84 2f fc 00 00 00 13 01 00 00 00 00 00 00 |Bh./............| 00014080 63 6f 6c 6f 75 72 74 72 61 6e 73 5f 00 00 00 00 |colourtrans_....| 00014090 b8 ac 01 00 46 fd ff ff f3 68 84 2f f8 02 00 00 |....F....h./....| 000140a0 13 01 00 00 00 00 00 00 63 6f 6d 70 64 69 72 5f |........compdir_| 000140b0 00 00 00 00 9c c7 01 00 46 fd ff ff 91 6a 84 2f |........F....j./| 000140c0 2c 00 00 00 13 01 00 00 00 00 00 00 63 6f 6e 76 |,...........conv| 000140d0 65 72 74 5f 00 00 00 00 bc c8 01 00 46 ff ff ff |ert_........F...| 000140e0 d9 a7 54 26 11 02 00 00 13 00 00 00 00 00 00 00 |..T&............| 000140f0 43 6f 6f 72 64 00 00 00 d0 ca 01 00 46 fd ff ff |Coord.......F...| 00014100 df 6a 84 2f 40 02 00 00 13 01 00 00 00 00 00 00 |.j./@...........| 00014110 43 6f 6f 72 64 5f 00 00 70 e0 01 00 46 ff ff ff |Coord_..p...F...| 00014120 41 22 1d 23 db 01 00 00 13 00 00 00 00 00 00 00 |A".#............| 00014130 63 6f 6f 72 64 73 00 00 4c e2 01 00 46 fd ff ff |coords..L...F...| 00014140 41 6c 84 2f 20 02 00 00 13 01 00 00 00 00 00 00 |Al./ ...........| 00014150 63 6f 6f 72 64 73 5f 00 6c f3 01 00 46 ff ff ff |coords_.l...F...| 00014160 59 96 f4 24 65 01 00 00 13 00 00 00 00 00 00 00 |Y..$e...........| 00014170 43 6f 72 65 00 00 00 00 d4 f4 01 00 46 fd ff ff |Core........F...| 00014180 72 6d 84 2f 28 00 00 00 13 01 00 00 00 00 00 00 |rm./(...........| 00014190 43 6f 72 65 5f 00 00 00 f0 f5 01 00 46 ff ff ff |Core_.......F...| 000141a0 12 b4 bd 22 a9 00 00 00 13 00 00 00 00 00 00 00 |..."............| 000141b0 63 6f 73 00 9c f6 01 00 46 ff ff ff 26 c6 bd 22 |cos.....F...&.."| 000141c0 cb 00 00 00 13 00 00 00 00 00 00 00 63 6f 73 68 |............cosh| 000141d0 00 00 00 00 68 f7 01 00 46 fd ff ff b3 6d 84 2f |....h...F....m./| 000141e0 4c 00 00 00 13 01 00 00 00 00 00 00 63 74 5f 00 |L...........ct_.| 000141f0 68 f9 01 00 46 ff ff ff 79 ce e1 22 37 01 00 00 |h...F...y.."7...| 00014200 13 00 00 00 00 00 00 00 63 74 69 6d 65 00 00 00 |........ctime...| 00014210 a0 fa 01 00 46 ff ff ff a1 96 ba 22 bd 01 00 00 |....F......"....| 00014220 13 00 00 00 00 00 00 00 63 74 79 70 65 00 00 00 |........ctype...| 00014230 60 fc 01 00 46 ff ff ff 6f de 4e 26 29 01 00 00 |`...F...o.N&)...| 00014240 13 00 00 00 00 00 00 00 43 6c 65 61 72 00 00 00 |........Clear...| 00014250 8c fd 01 00 46 fd ff ff 1f 6e 84 2f cc 00 00 00 |....F....n./....| 00014260 13 01 00 00 00 00 00 00 43 6c 65 61 72 5f 00 00 |........Clear_..| 00014270 04 04 02 00 46 fd ff ff ad 6e 84 2f 48 00 00 00 |....F....n./H...| 00014280 13 01 00 00 00 00 00 00 43 6f 6c 6f 75 72 4d 65 |........ColourMe| 00014290 6e 75 5f 00 44 49 52 24 cc 00 00 00 cc 00 00 00 |nu_.DIR$........| 000142a0 60 43 01 00 46 fd ff ff ad d3 e2 22 f9 01 00 00 |`C..F......"....| 000142b0 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 000142c0 5c 45 01 00 46 fd ff ff 1e ae e2 22 a9 04 00 00 |\E..F......"....| 000142d0 13 00 00 00 00 00 00 00 65 78 70 72 5f 00 00 00 |........expr_...| 000142e0 08 4a 01 00 46 fd ff ff 1c 45 e3 22 a3 02 00 00 |.J..F....E."....| 000142f0 13 00 00 00 00 00 00 00 66 75 6e 63 5f 00 00 00 |........func_...| 00014300 ac 4c 01 00 46 fd ff ff 7f d5 83 2f a9 04 00 00 |.L..F....../....| 00014310 13 00 00 00 00 00 00 00 73 74 72 75 63 74 5f 00 |........struct_.| 00014320 58 51 01 00 46 fd ff ff 77 6c e3 22 d5 02 00 00 |XQ..F...wl."....| 00014330 13 00 00 00 00 00 00 00 74 79 70 65 73 5f 00 00 |........types_..| 00014340 30 54 01 00 46 fd ff ff 39 f0 83 2f b0 03 00 00 |0T..F...9../....| 00014350 13 00 00 00 00 00 00 00 76 61 72 5f 00 00 00 00 |........var_....| 00014360 44 41 54 41 f9 01 00 00 54 68 65 20 43 20 4c 61 |DATA....The C La| 00014370 6e 67 75 61 67 65 0a 43 20 69 73 20 61 20 76 65 |nguage.C is a ve| 00014380 72 79 20 73 6d 61 6c 6c 20 6c 61 6e 67 75 61 67 |ry small languag| 00014390 65 2c 20 77 69 74 68 20 76 65 72 79 20 66 65 77 |e, with very few| 000143a0 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 73 74 | commands and st| 000143b0 61 74 65 6d 65 6e 74 73 2e 20 4d 6f 73 74 20 6f |atements. Most o| 000143c0 66 20 69 74 73 20 77 6f 72 6b 20 69 73 20 64 6f |f its work is do| 000143d0 6e 65 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 |ne by evaluating| 000143e0 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 49 6e | expressions. In| 000143f0 20 66 61 63 74 2c 20 76 69 72 74 75 61 6c 6c 79 | fact, virtually| 00014400 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 64 | everything is d| 00014410 6f 6e 65 20 74 68 69 73 20 77 61 79 20 62 65 63 |one this way bec| 00014420 61 75 73 65 20 65 76 65 6e 20 66 75 6e 63 74 69 |ause even functi| 00014430 6f 6e 20 63 61 6c 6c 73 20 61 72 65 20 65 76 61 |on calls are eva| 00014440 6c 75 61 74 65 64 20 61 73 20 65 78 70 72 65 73 |luated as expres| 00014450 73 69 6f 6e 73 2e 0a 0a 23 61 6c 69 67 6e 20 63 |sions...#align c| 00014460 65 6e 74 72 65 0a 3c 50 72 6f 67 72 61 6d 20 53 |entre.<Program S| 00014470 74 72 75 63 74 75 72 65 3d 3e 63 5f 73 74 72 75 |tructure=>c_stru| 00014480 63 74 5f 3e 0a 3c 45 78 70 72 65 73 73 69 6f 6e |ct_>.<Expression| 00014490 73 3d 3e 63 5f 65 78 70 72 5f 3e 0a 3c 56 61 72 |s=>c_expr_>.<Var| 000144a0 69 61 62 6c 65 73 3d 3e 63 5f 76 61 72 5f 3e 0a |iables=>c_var_>.| 000144b0 3c 46 75 6e 63 74 69 6f 6e 73 3d 3e 63 5f 66 75 |<Functions=>c_fu| 000144c0 6e 63 5f 3e 0a 3c 54 79 70 65 73 3d 3e 63 5f 74 |nc_>.<Types=>c_t| 000144d0 79 70 65 73 5f 3e 0a 23 61 6c 69 67 6e 0a 0a 43 |ypes_>.#align..C| 000144e0 6f 6d 6d 61 6e 64 73 3a 0a 0a 23 69 6e 64 65 6e |ommands:..#inden| 000144f0 74 20 31 30 0a 23 54 61 62 6c 65 20 63 6f 6c 75 |t 10.#Table colu| 00014500 6d 6e 73 20 35 0a 3c 66 6f 72 3e 0a 3c 77 68 69 |mns 5.<for>.<whi| 00014510 6c 65 3e 0a 3c 64 6f 3e 0a 3c 69 66 3e 0a 3c 65 |le>.<do>.<if>.<e| 00014520 6c 73 65 3e 0a 3c 72 65 74 75 72 6e 3e 0a 3c 62 |lse>.<return>.<b| 00014530 72 65 61 6b 3e 0a 3c 73 77 69 74 63 68 3e 0a 3c |reak>.<switch>.<| 00014540 63 61 73 65 3e 0a 3c 64 65 66 61 75 6c 74 3e 0a |case>.<default>.| 00014550 23 45 6e 64 54 61 62 6c 65 00 00 00 44 41 54 41 |#EndTable...DATA| 00014560 a9 04 00 00 45 78 70 72 65 73 73 69 6f 6e 73 0a |....Expressions.| 00014570 45 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 |Expressions are | 00014580 61 20 76 69 74 61 6c 20 70 61 72 74 20 6f 66 20 |a vital part of | 00014590 43 2e 20 54 68 65 79 20 61 72 65 20 77 72 69 74 |C. They are writ| 000145a0 74 65 6e 20 64 6f 77 6e 20 69 6e 20 6d 75 63 68 |ten down in much| 000145b0 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 61 73 | the same way as| 000145c0 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 6c 61 | in any other la| 000145d0 6e 67 75 61 67 65 3a 20 61 20 73 65 72 69 65 73 |nguage: a series| 000145e0 20 6f 66 20 76 61 6c 75 65 73 20 61 6e 64 20 6f | of values and o| 000145f0 70 65 72 61 74 6f 72 73 2c 20 70 72 65 63 65 64 |perators, preced| 00014600 65 6e 63 65 20 67 69 76 65 6e 20 62 79 20 70 61 |ence given by pa| 00014610 72 65 6e 74 68 65 73 65 73 20 28 29 2e 20 56 61 |rentheses (). Va| 00014620 6c 75 65 73 20 63 61 6e 20 62 65 20 3c 76 61 72 |lues can be <var| 00014630 69 61 62 6c 65 73 3d 3e 63 5f 76 61 72 5f 3e 2c |iables=>c_var_>,| 00014640 20 3c 66 75 6e 63 74 69 6f 6e 73 3d 3e 63 5f 66 | <functions=>c_f| 00014650 75 6e 63 5f 3e 20 6f 72 20 63 6f 6e 73 74 61 6e |unc_> or constan| 00014660 74 73 2e 20 4f 70 65 72 61 74 6f 72 73 20 61 72 |ts. Operators ar| 00014670 65 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 23 |e as follows:..#| 00014680 54 61 62 0a 20 20 20 20 20 20 20 20 20 20 20 2b |Tab. +| 00014690 09 50 6c 75 73 0a 20 20 20 20 20 20 20 20 20 20 |.Plus. | 000146a0 20 2d 09 4d 69 6e 75 73 0a 20 20 20 20 20 20 20 | -.Minus. | 000146b0 20 20 20 20 2a 09 4d 75 6c 74 69 70 6c 79 2f 63 | *.Multiply/c| 000146c0 6f 6e 74 65 6e 74 73 20 6f 66 0a 20 20 20 20 20 |ontents of. | 000146d0 20 20 20 20 20 20 2f 09 44 69 76 69 64 65 0a 20 | /.Divide. | 000146e0 20 20 20 20 20 20 20 20 20 20 25 09 4d 6f 64 75 | %.Modu| 000146f0 6c 6f 0a 20 20 20 20 20 20 20 20 20 20 20 26 09 |lo. &.| 00014700 42 69 74 77 69 73 65 20 41 4e 44 2f 50 6f 69 6e |Bitwise AND/Poin| 00014710 74 65 72 20 74 6f 2e 0a 20 20 20 20 20 20 20 20 |ter to.. | 00014720 20 20 20 7c 09 42 69 74 77 69 73 65 20 4f 52 0a | |.Bitwise OR.| 00014730 20 20 20 20 20 20 20 20 20 20 20 5e 09 42 69 74 | ^.Bit| 00014740 77 69 73 65 20 45 4f 52 0a 20 20 20 20 20 20 20 |wise EOR. | 00014750 20 20 20 20 7e 09 42 69 74 77 69 73 65 20 4e 4f | ~.Bitwise NO| 00014760 54 0a 20 20 20 3c 73 69 7a 65 6f 66 3e 28 78 29 |T. <sizeof>(x)| 00014770 09 43 6c 69 63 6b 20 74 6f 20 66 69 6e 64 20 6f |.Click to find o| 00014780 75 74 21 0a 0a 2a 20 61 6e 64 20 26 20 68 61 76 |ut!..* and & hav| 00014790 65 20 74 77 6f 20 75 73 65 73 2e 20 57 69 74 68 |e two uses. With| 000147a0 20 74 77 6f 20 76 61 6c 75 65 73 20 74 68 65 79 | two values they| 000147b0 20 70 65 72 66 6f 72 6d 20 6d 75 6c 74 69 70 6c | perform multipl| 000147c0 79 20 61 6e 64 20 41 4e 44 20 72 65 70 65 63 74 |y and AND repect| 000147d0 69 76 65 6c 79 2e 20 48 6f 77 65 76 65 72 20 28 |ively. However (| 000147e0 2a 70 29 20 67 69 76 65 73 20 74 68 65 20 76 61 |*p) gives the va| 000147f0 6c 75 65 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |lue pointed to b| 00014800 79 20 70 2c 20 61 6e 64 20 28 26 61 29 20 67 69 |y p, and (&a) gi| 00014810 76 65 73 20 74 68 65 20 70 6f 69 6e 74 65 72 20 |ves the pointer | 00014820 74 6f 20 61 2e 0a 0a 54 68 65 73 65 20 61 72 65 |to a...These are| 00014830 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 | comparison oper| 00014840 61 74 6f 72 73 2e 20 54 68 65 79 20 72 65 74 75 |ators. They retu| 00014850 72 6e 20 31 20 6f 72 20 30 20 28 74 72 75 65 20 |rn 1 or 0 (true | 00014860 6f 72 20 66 61 6c 73 65 29 3a 0a 23 54 61 62 0a |or false):.#Tab.| 00014870 20 20 20 20 20 20 20 20 20 20 3d 3d 09 45 71 75 | ==.Equ| 00014880 61 6c 73 0a 20 20 20 20 20 20 20 20 20 20 21 3d |als. !=| 00014890 09 4e 6f 74 20 65 71 75 61 6c 73 0a 20 20 20 20 |.Not equals. | 000148a0 20 20 20 20 20 20 5c 3c 09 4c 65 73 73 20 74 68 | \<.Less th| 000148b0 61 6e 0a 20 20 20 20 20 20 20 20 20 20 5c 3c 3d |an. \<=| 000148c0 09 4c 65 73 73 20 74 68 61 6e 2f 65 71 75 61 6c |.Less than/equal| 000148d0 0a 20 20 20 20 20 20 20 20 20 20 3e 09 47 72 65 |. >.Gre| 000148e0 61 74 65 72 20 74 68 61 6e 0a 20 20 20 20 20 20 |ater than. | 000148f0 20 20 20 20 3e 3d 09 47 72 65 61 74 65 72 20 74 | >=.Greater t| 00014900 68 61 6e 2f 65 71 75 61 6c 0a 0a 54 68 65 73 65 |han/equal..These| 00014910 20 61 72 65 20 6c 6f 67 69 63 61 6c 20 6f 70 65 | are logical ope| 00014920 72 61 74 6f 72 73 2e 20 54 68 65 79 20 72 65 74 |rators. They ret| 00014930 75 72 6e 20 31 20 6f 72 20 30 20 28 74 72 75 65 |urn 1 or 0 (true| 00014940 20 6f 72 20 66 61 6c 73 65 29 20 61 6e 64 20 74 | or false) and t| 00014950 61 6b 65 20 74 68 65 69 72 20 61 72 67 75 6d 65 |ake their argume| 00014960 6e 74 20 61 73 20 6e 6f 6e 2d 7a 65 72 6f 20 6f |nt as non-zero o| 00014970 72 20 30 20 28 74 72 75 65 20 6f 72 20 66 61 6c |r 0 (true or fal| 00014980 73 65 29 2e 20 65 67 20 33 20 26 26 20 33 20 67 |se). eg 3 && 3 g| 00014990 69 76 65 73 20 31 2c 20 77 68 65 72 65 61 73 20 |ives 1, whereas | 000149a0 33 20 26 20 33 20 67 69 76 65 73 20 33 2e 0a 23 |3 & 3 gives 3..#| 000149b0 54 61 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 |Tab. | 000149c0 20 26 26 09 4c 6f 67 69 63 61 6c 20 41 4e 44 0a | &&.Logical AND.| 000149d0 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 09 | ||.| 000149e0 4c 6f 67 69 63 61 6c 20 4f 52 0a 20 20 20 20 20 |Logical OR. | 000149f0 20 20 20 20 20 20 20 20 21 09 4c 6f 67 69 63 61 | !.Logica| 00014a00 6c 20 4e 4f 54 00 00 00 44 41 54 41 a3 02 00 00 |l NOT...DATA....| 00014a10 46 75 6e 63 74 69 6f 6e 73 0a 46 75 6e 63 74 69 |Functions.Functi| 00014a20 6f 6e 73 20 61 72 65 20 70 6f 73 73 69 62 6c 79 |ons are possibly| 00014a30 20 67 69 76 65 6e 20 73 6f 6d 65 20 76 61 6c 75 | given some valu| 00014a40 65 73 2c 20 64 6f 20 73 6f 6d 65 20 70 72 6f 63 |es, do some proc| 00014a50 65 73 73 69 6e 67 20 61 6e 64 20 70 6f 73 73 69 |essing and possi| 00014a60 62 6c 65 20 72 65 74 75 72 6e 20 61 20 76 61 6c |ble return a val| 00014a70 75 65 2e 20 54 68 65 79 20 68 61 76 65 20 74 68 |ue. They have th| 00014a80 65 20 66 6f 72 6d 3a 0a 0a 23 66 43 6f 64 65 0a |e form:..#fCode.| 00014a90 20 20 5c 3c 74 79 70 65 3e 20 5c 3c 6e 61 6d 65 | \<type> \<name| 00014aa0 3e 20 28 5c 3c 76 61 72 69 61 62 6c 65 73 3e 29 |> (\<variables>)| 00014ab0 0a 20 20 5c 7b 0a 20 20 5c 3c 76 61 72 69 61 62 |. \{. \<variab| 00014ac0 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 3e |le declarations>| 00014ad0 3b 0a 20 20 20 20 20 2e 2e 2e 0a 20 20 7d 0a 23 |;. .... }.#| 00014ae0 66 0a 0a 5c 3c 74 79 70 65 3e 09 69 73 20 74 68 |f..\<type>.is th| 00014af0 65 20 3c 74 79 70 65 3d 3e 63 5f 74 79 70 65 73 |e <type=>c_types| 00014b00 5f 3e 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 |_> returned by t| 00014b10 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 5c 3c |he function...\<| 00014b20 6e 61 6d 65 3e 09 69 73 20 74 68 65 20 66 75 6e |name>.is the fun| 00014b30 63 74 69 6f 6e 20 6e 61 6d 65 2e 0a 0a 5c 3c 76 |ction name...\<v| 00014b40 61 72 69 61 62 6c 65 73 3e 09 61 72 65 20 74 68 |ariables>.are th| 00014b50 65 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 |e arguments pass| 00014b60 65 64 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 |ed to the functi| 00014b70 6f 6e 2c 20 64 65 63 6c 61 72 65 64 20 61 73 20 |on, declared as | 00014b80 6e 6f 72 6d 61 6c 20 3c 76 61 72 69 61 62 6c 65 |normal <variable| 00014b90 73 3d 3e 63 5f 76 61 72 5f 3e 2e 0a 0a 65 67 2e |s=>c_var_>...eg.| 00014ba0 0a 0a 23 66 43 6f 64 65 0a 20 20 69 6e 74 20 6d |..#fCode. int m| 00014bb0 79 5f 66 75 6e 63 74 69 6f 6e 20 28 69 6e 74 20 |y_function (int | 00014bc0 61 2c 20 66 6c 6f 61 74 20 62 2c 20 63 68 61 72 |a, float b, char| 00014bd0 20 2a 63 29 0a 20 20 5c 7b 0a 20 20 20 20 20 2e | *c). \{. .| 00014be0 2e 2e 2e 0a 20 20 7d 0a 23 66 0a 0a 64 65 63 6c |.... }.#f..decl| 00014bf0 61 72 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 |ares a function | 00014c00 63 61 6c 6c 65 64 20 7b 2f 7d 6d 79 5f 66 75 6e |called {/}my_fun| 00014c10 63 74 69 6f 6e 7b 2f 7d 2c 20 70 61 73 73 65 64 |ction{/}, passed| 00014c20 20 74 68 72 65 65 20 76 61 6c 75 65 73 20 28 74 | three values (t| 00014c30 68 65 20 6c 61 73 74 20 61 20 70 6f 69 6e 74 65 |he last a pointe| 00014c40 72 20 74 6f 20 61 6e 20 61 72 72 61 79 20 6f 66 |r to an array of| 00014c50 20 63 68 61 72 73 20 69 65 20 61 20 73 74 72 69 | chars ie a stri| 00014c60 6e 67 29 20 61 6e 64 20 72 65 74 75 72 6e 69 6e |ng) and returnin| 00014c70 67 20 61 6e 20 69 6e 74 65 67 65 72 2e 20 54 68 |g an integer. Th| 00014c80 65 20 77 6f 72 6b 20 6f 66 20 74 68 65 20 66 75 |e work of the fu| 00014c90 6e 63 74 69 6f 6e 20 69 73 20 64 6f 6e 65 20 69 |nction is done i| 00014ca0 6e 20 74 68 65 20 5c 7b 7d 73 2e 00 44 41 54 41 |n the \{}s..DATA| 00014cb0 a9 04 00 00 50 72 6f 67 72 61 6d 20 53 74 72 75 |....Program Stru| 00014cc0 63 74 75 72 65 0a 54 68 65 20 73 74 72 75 63 74 |cture.The struct| 00014cd0 75 72 65 20 6f 66 20 61 20 67 65 6e 65 72 61 6c |ure of a general| 00014ce0 20 70 72 6f 67 72 61 6d 20 69 73 20 67 69 76 65 | program is give| 00014cf0 6e 20 62 65 6c 6f 77 3a 0a 0a 23 66 43 6f 64 65 |n below:..#fCode| 00014d00 0a 20 20 20 23 3c 69 6e 63 6c 75 64 65 3e 73 0a |. #<include>s.| 00014d10 20 20 20 23 3c 64 65 66 69 6e 65 3e 73 0a 20 20 | #<define>s. | 00014d20 20 46 75 6e 63 74 69 6f 6e 20 44 65 63 6c 61 72 | Function Declar| 00014d30 61 74 69 6f 6e 73 3b 0a 20 20 20 56 61 72 69 61 |ations;. Varia| 00014d40 62 6c 65 20 44 65 63 6c 61 72 61 74 69 6f 6e 73 |ble Declarations| 00014d50 3b 0a 0a 20 20 20 6d 61 69 6e 28 29 0a 20 20 20 |;.. main(). | 00014d60 5c 7b 0a 20 20 20 20 20 20 2e 2e 2e 0a 20 20 20 |\{. .... | 00014d70 7d 0a 0a 20 20 20 4f 74 68 65 72 20 46 75 6e 63 |}.. Other Func| 00014d80 74 69 6f 6e 73 0a 23 66 0a 0a 4d 6f 73 74 20 6f |tions.#f..Most o| 00014d90 66 20 74 68 65 73 65 20 69 74 65 6d 73 20 63 61 |f these items ca| 00014da0 6e 20 61 70 70 65 61 72 20 69 6e 20 61 6e 79 20 |n appear in any | 00014db0 6f 72 64 65 72 2e 20 46 75 6e 63 74 69 6f 6e 73 |order. Functions| 00014dc0 20 6e 65 65 64 20 6f 6e 6c 79 20 62 65 20 64 65 | need only be de| 00014dd0 63 6c 61 72 65 64 20 69 66 20 74 68 65 79 20 61 |clared if they a| 00014de0 72 65 20 63 61 6c 6c 65 64 20 62 65 66 6f 72 65 |re called before| 00014df0 20 74 68 65 79 20 61 72 65 20 64 65 66 69 6e 65 | they are define| 00014e00 64 2e 20 41 20 64 65 63 6c 61 72 61 74 69 6f 6e |d. A declaration| 00014e10 20 69 73 20 6a 75 73 74 20 74 68 65 20 66 69 72 | is just the fir| 00014e20 73 74 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 64 |st line of the d| 00014e30 65 66 69 6e 69 74 69 6f 6e 20 69 65 20 74 68 65 |efinition ie the| 00014e40 20 72 65 74 75 72 6e 20 74 79 70 65 2c 20 6e 61 | return type, na| 00014e50 6d 65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 |me and parameter| 00014e60 73 2e 0a 0a 2f 6d 61 69 6e 2f 20 69 73 20 74 68 |s.../main/ is th| 00014e70 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 |e function calle| 00014e80 64 20 77 68 65 6e 20 74 68 65 20 70 72 6f 67 72 |d when the progr| 00014e90 61 6d 20 69 73 20 72 75 6e 2e 20 4f 6e 20 65 78 |am is run. On ex| 00014ea0 69 74 20 66 72 6f 6d 20 74 68 69 73 20 66 75 6e |it from this fun| 00014eb0 63 74 69 6f 6e 2c 20 74 68 65 20 70 72 6f 67 72 |ction, the progr| 00014ec0 61 6d 20 74 65 72 6d 69 6e 61 74 65 64 2e 20 49 |am terminated. I| 00014ed0 74 20 63 61 6e 20 74 61 6b 65 20 74 77 6f 20 61 |t can take two a| 00014ee0 72 67 75 6d 65 6e 74 73 20 61 73 20 66 6f 6c 6c |rguments as foll| 00014ef0 6f 77 73 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 6e |ows:..{align cen| 00014f00 74 72 65 3b 20 66 43 6f 64 65 7d 76 6f 69 64 20 |tre; fCode}void | 00014f10 6d 61 69 6e 20 28 69 6e 74 20 61 72 67 63 2c 20 |main (int argc, | 00014f20 63 68 61 72 20 2a 61 72 67 76 5b 5d 29 20 5c 7b |char *argv[]) \{| 00014f30 7d 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 54 68 65 73 |}{f;align}..Thes| 00014f40 65 20 61 72 65 20 74 68 65 20 70 61 72 61 6d 65 |e are the parame| 00014f50 74 65 72 73 20 70 61 73 73 65 64 20 6f 6e 20 74 |ters passed on t| 00014f60 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 2c |he command line,| 00014f70 20 2f 61 72 67 63 2f 20 69 73 20 74 68 65 20 6e | /argc/ is the n| 00014f80 75 6d 62 65 72 20 6f 66 20 74 68 65 6d 20 61 6e |umber of them an| 00014f90 64 20 7b 2f 7d 61 72 67 76 5b 5d 7b 2f 7d 20 61 |d {/}argv[]{/} a| 00014fa0 72 65 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 |re the parameter| 00014fb0 73 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 74 |s in the order t| 00014fc0 68 65 79 20 77 65 72 65 20 67 69 76 65 6e 20 6f |hey were given o| 00014fd0 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 |n the command li| 00014fe0 6e 65 20 75 73 65 64 20 74 6f 20 73 74 61 72 74 |ne used to start| 00014ff0 20 74 68 65 20 70 72 6f 67 72 61 6d 2e 20 52 65 | the program. Re| 00015000 6d 65 6d 62 65 72 20 74 68 61 74 20 7b 2f 7d 61 |member that {/}a| 00015010 72 67 76 5b 30 5d 7b 2f 7d 20 77 69 6c 6c 20 70 |rgv[0]{/} will p| 00015020 72 6f 62 61 62 6c 79 20 62 65 20 74 68 65 20 70 |robably be the p| 00015030 72 6f 67 72 61 6d 20 6e 61 6d 65 20 69 74 73 65 |rogram name itse| 00015040 6c 66 2c 20 73 6f 20 7b 2f 7d 61 72 67 63 20 3e |lf, so {/}argc >| 00015050 3d 20 32 7b 2f 7d 20 77 69 6c 6c 20 75 73 75 61 |= 2{/} will usua| 00015060 6c 6c 79 20 69 6d 70 6c 79 20 74 68 61 74 20 61 |lly imply that a| 00015070 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 | command line ar| 00015080 67 75 6d 65 6e 74 20 68 61 73 20 62 65 65 6e 20 |gument has been | 00015090 70 61 73 73 65 64 2e 0a 0a 46 75 6e 63 74 69 6f |passed...Functio| 000150a0 6e 73 20 6f 72 20 56 61 72 69 61 62 6c 65 73 20 |ns or Variables | 000150b0 63 61 6e 20 62 65 20 64 65 63 6c 61 72 65 64 20 |can be declared | 000150c0 61 73 20 2f 65 78 74 65 72 6e 2f 20 69 65 20 74 |as /extern/ ie t| 000150d0 68 65 79 20 61 72 65 20 64 65 66 69 6e 65 64 20 |hey are defined | 000150e0 69 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 |in a different f| 000150f0 69 6c 65 20 65 67 20 69 6e 20 61 6e 6f 74 68 65 |ile eg in anothe| 00015100 72 20 73 6f 75 72 63 65 20 66 69 6c 65 2c 20 6f |r source file, o| 00015110 72 20 2f 73 74 61 74 69 63 2f 20 69 65 20 74 68 |r /static/ ie th| 00015120 65 79 20 61 72 65 20 6e 6f 74 20 61 63 63 65 73 |ey are not acces| 00015130 73 69 62 6c 65 20 6f 75 74 73 69 64 65 20 74 68 |sible outside th| 00015140 65 20 73 63 6f 70 65 20 6f 66 20 74 68 69 73 20 |e scope of this | 00015150 66 69 6c 65 2e 00 00 00 44 41 54 41 d5 02 00 00 |file....DATA....| 00015160 54 79 70 65 73 0a 54 79 70 65 73 20 61 72 65 20 |Types.Types are | 00015170 64 65 66 69 6e 65 64 20 75 73 69 6e 67 20 74 68 |defined using th| 00015180 65 20 3c 74 79 70 65 64 65 66 3e 20 63 6f 6d 6d |e <typedef> comm| 00015190 61 6e 64 2e 0a 54 68 65 20 62 75 69 6c 74 20 69 |and..The built i| 000151a0 6e 20 74 79 70 65 73 20 61 72 65 20 61 73 20 66 |n types are as f| 000151b0 6f 6c 6c 6f 77 73 3a 0a 0a 69 6e 74 3a 09 54 68 |ollows:..int:.Th| 000151c0 69 73 20 63 61 6e 20 62 65 20 61 20 2f 73 68 6f |is can be a /sho| 000151d0 72 74 20 69 6e 74 2f 20 6f 72 20 61 20 2f 6c 6f |rt int/ or a /lo| 000151e0 6e 67 20 69 6e 74 2f 2e 20 41 20 70 6c 61 69 6e |ng int/. A plain| 000151f0 20 2f 69 6e 74 2f 20 6f 72 20 61 20 2f 6c 6f 6e | /int/ or a /lon| 00015200 67 20 69 6e 74 2f 20 69 73 20 33 32 2d 62 69 74 |g int/ is 32-bit| 00015210 73 20 6f 6e 20 74 68 65 20 41 63 6f 72 6e 2e 20 |s on the Acorn. | 00015220 41 20 2f 73 68 6f 72 74 20 69 6e 74 2f 20 69 73 |A /short int/ is| 00015230 20 31 36 2d 62 69 74 73 20 69 6e 20 44 65 73 6b | 16-bits in Desk| 00015240 74 6f 70 20 43 2c 20 61 6e 64 20 33 32 2d 62 69 |top C, and 32-bi| 00015250 74 73 20 69 6e 20 45 61 73 79 20 43 2e 20 54 68 |ts in Easy C. Th| 00015260 65 73 65 20 76 61 72 69 61 62 6c 65 20 74 79 70 |ese variable typ| 00015270 65 73 20 68 6f 6c 64 20 69 6e 74 65 67 65 72 20 |es hold integer | 00015280 76 61 6c 75 65 73 2e 20 49 74 20 63 61 6e 20 61 |values. It can a| 00015290 6c 73 6f 20 62 65 20 2f 73 69 67 6e 65 64 2f 20 |lso be /signed/ | 000152a0 6f 72 20 2f 75 6e 73 69 67 6e 65 64 2f 2e 0a 0a |or /unsigned/...| 000152b0 63 68 61 72 3a 09 54 68 69 73 20 69 73 20 38 2d |char:.This is 8-| 000152c0 62 69 74 73 20 6c 6f 6e 67 2e 20 49 74 20 63 61 |bits long. It ca| 000152d0 6e 20 62 65 20 2f 73 69 67 6e 65 64 2f 20 6f 72 |n be /signed/ or| 000152e0 20 2f 75 6e 73 69 67 6e 65 64 2f 2e 0a 0a 66 6c | /unsigned/...fl| 000152f0 6f 61 74 2c 20 64 6f 75 62 6c 65 20 61 6e 64 20 |oat, double and | 00015300 6c 6f 6e 67 20 64 6f 75 62 6c 65 3a 09 54 68 65 |long double:.The| 00015310 73 65 20 68 6f 6c 64 20 66 6c 6f 61 74 69 6e 67 |se hold floating| 00015320 20 70 6f 69 6e 74 20 76 61 6c 75 65 73 2c 20 77 | point values, w| 00015330 69 74 68 20 69 6e 63 72 65 61 73 69 6e 67 20 61 |ith increasing a| 00015340 63 63 75 72 61 63 79 2e 0a 0a 76 6f 69 64 3a 09 |ccuracy...void:.| 00015350 54 68 69 73 20 69 73 20 61 20 73 70 65 63 69 61 |This is a specia| 00015360 6c 20 74 79 70 65 2e 20 49 74 20 69 73 20 75 73 |l type. It is us| 00015370 75 61 6c 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 |ually only used | 00015380 69 6e 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 |in function defi| 00015390 6e 69 74 69 6f 6e 73 20 74 6f 20 69 6e 64 69 63 |nitions to indic| 000153a0 61 74 65 20 74 68 61 74 20 6e 6f 20 76 61 6c 75 |ate that no valu| 000153b0 65 20 69 73 20 70 61 73 73 65 64 20 61 6e 64 2f |e is passed and/| 000153c0 6f 72 20 72 65 74 75 72 6e 65 64 2e 20 41 20 70 |or returned. A p| 000153d0 6f 69 6e 74 65 72 20 74 6f 20 61 20 2f 76 6f 69 |ointer to a /voi| 000153e0 64 2f 20 69 65 20 7b 2f 7d 76 6f 69 64 20 2a 7b |d/ ie {/}void *{| 000153f0 2f 7d 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 |/} can be used a| 00015400 6e 79 74 69 6d 65 20 74 6f 20 68 6f 6c 64 20 61 |nytime to hold a| 00015410 20 67 65 6e 65 72 61 6c 20 70 6f 69 6e 74 65 72 | general pointer| 00015420 20 74 6f 20 61 6e 79 74 68 69 6e 67 2e 00 00 00 | to anything....| 00015430 44 41 54 41 b0 03 00 00 56 61 72 69 61 62 6c 65 |DATA....Variable| 00015440 73 0a 56 61 72 69 61 62 6c 65 73 20 61 72 65 20 |s.Variables are | 00015450 64 65 66 69 6e 65 64 20 69 6e 20 74 65 72 6d 73 |defined in terms| 00015460 20 6f 66 20 61 20 74 79 70 65 2e 20 54 68 65 79 | of a type. They| 00015470 20 61 72 65 20 64 65 66 69 6e 65 64 20 62 79 20 | are defined by | 00015480 67 69 76 69 6e 67 20 74 68 65 20 74 79 70 65 20 |giving the type | 00015490 61 6e 64 20 74 68 65 6e 20 61 20 6c 69 73 74 20 |and then a list | 000154a0 6f 66 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 |of variable name| 000154b0 73 20 73 65 70 61 72 61 74 65 64 20 62 79 20 63 |s separated by c| 000154c0 6f 6d 6d 61 73 3b 20 74 68 65 20 77 68 6f 6c 65 |ommas; the whole| 000154d0 20 6c 6f 74 20 74 65 72 6d 69 6e 61 74 65 64 20 | lot terminated | 000154e0 62 79 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 2e 0a |by a semicolon..| 000154f0 0a 65 67 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 |.eg.{align centr| 00015500 65 3b 66 43 6f 64 65 7d 69 6e 74 20 61 2c 62 2c |e;fCode}int a,b,| 00015510 2a 63 2c 64 5b 36 5d 2c 65 5b 5d 3d 5c 7b 39 2c |*c,d[6],e[]=\{9,| 00015520 34 2c 35 2c 32 7d 3b 7b 66 3b 61 6c 69 67 6e 7d |4,5,2};{f;align}| 00015530 0a 0a 54 68 65 20 27 2a 27 20 69 6e 64 69 63 61 |..The '*' indica| 00015540 74 65 73 20 74 68 61 74 20 2f 63 2f 20 69 73 20 |tes that /c/ is | 00015550 6e 6f 74 20 61 6e 20 69 6e 74 65 67 65 72 2c 20 |not an integer, | 00015560 62 75 74 20 61 20 70 6f 69 6e 74 65 72 20 74 6f |but a pointer to| 00015570 20 61 6e 20 69 6e 74 65 67 65 72 2e 20 54 68 65 | an integer. The| 00015580 20 76 61 6c 75 65 20 2f 63 2f 20 70 6f 69 6e 74 | value /c/ point| 00015590 73 20 74 6f 20 69 73 20 67 69 76 65 6e 20 62 79 |s to is given by| 000155a0 20 7b 2f 7d 2a 63 7b 2f 7d 2e 20 2f 64 2f 20 69 | {/}*c{/}. /d/ i| 000155b0 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 |s defined as an | 000155c0 61 72 72 61 79 20 6f 66 20 36 20 69 6e 74 65 67 |array of 6 integ| 000155d0 65 72 73 2c 20 69 6e 64 65 78 65 64 20 61 73 20 |ers, indexed as | 000155e0 30 20 74 6f 20 35 2e 20 2f 65 2f 20 69 73 20 61 |0 to 5. /e/ is a| 000155f0 6e 20 61 72 72 61 79 20 6f 66 20 66 6f 75 72 20 |n array of four | 00015600 69 6e 74 65 67 65 72 73 2c 20 77 68 6f 73 65 20 |integers, whose | 00015610 76 61 6c 75 65 73 20 61 72 65 20 69 6e 69 74 69 |values are initi| 00015620 61 6c 69 73 65 64 20 74 6f 20 39 2c 34 2c 35 20 |alised to 9,4,5 | 00015630 61 6e 64 20 32 20 72 65 73 70 65 63 74 69 76 65 |and 2 respective| 00015640 6c 79 2e 0a 0a 4d 6f 72 65 20 63 6f 6d 70 6c 65 |ly...More comple| 00015650 78 20 76 61 72 69 61 62 6c 65 73 20 63 61 6e 20 |x variables can | 00015660 62 65 20 64 65 66 69 6e 65 64 20 75 73 69 6e 67 |be defined using| 00015670 20 3c 73 74 72 75 63 74 75 72 65 73 3d 3e 73 74 | <structures=>st| 00015680 72 75 63 74 3e 20 61 6e 64 20 3c 75 6e 69 6f 6e |ruct> and <union| 00015690 73 3d 3e 75 6e 69 6f 6e 3e 2e 0a 0a 56 61 72 69 |s=>union>...Vari| 000156a0 61 62 6c 65 73 20 63 61 6e 20 62 65 20 64 65 6c |ables can be del| 000156b0 63 6c 61 72 65 64 20 61 74 20 74 68 65 20 73 74 |clared at the st| 000156c0 61 72 74 20 6f 66 20 74 68 65 20 70 72 6f 67 72 |art of the progr| 000156d0 61 6d 2c 20 6f 75 74 73 69 64 65 20 61 6c 6c 20 |am, outside all | 000156e0 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 77 68 69 |functions in whi| 000156f0 63 68 20 63 61 73 65 20 74 68 65 79 20 61 72 65 |ch case they are| 00015700 20 67 6c 6f 62 61 6c 2e 20 41 6c 74 65 72 6e 61 | global. Alterna| 00015710 74 69 76 65 6c 79 2c 20 74 68 65 79 20 63 61 6e |tively, they can| 00015720 20 62 65 20 64 65 63 6c 61 72 65 64 20 61 74 20 | be declared at | 00015730 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 20 62 |the start of a b| 00015740 6c 6f 63 6b 20 69 6e 20 77 68 69 63 68 20 63 61 |lock in which ca| 00015750 73 65 20 74 68 65 79 20 61 72 65 20 6c 6f 63 61 |se they are loca| 00015760 6c 20 74 6f 20 74 68 61 74 20 62 6c 6f 63 6b 20 |l to that block | 00015770 61 6e 64 20 61 6e 79 20 62 6c 6f 63 6b 73 20 77 |and any blocks w| 00015780 69 74 68 69 6e 20 69 74 2e 20 2f 73 74 61 74 69 |ithin it. /stati| 00015790 63 2f 20 76 61 72 69 61 62 6c 65 73 20 64 65 63 |c/ variables dec| 000157a0 6c 61 72 65 64 20 77 69 74 68 69 6e 20 62 6c 6f |lared within blo| 000157b0 63 6b 73 20 6b 65 65 70 20 74 68 65 69 72 20 76 |cks keep their v| 000157c0 61 6c 75 65 20 69 66 20 74 68 65 20 62 6c 6f 63 |alue if the bloc| 000157d0 6b 20 69 73 20 72 65 2d 65 6e 74 65 72 65 64 2e |k is re-entered.| 000157e0 44 41 54 41 4e 01 00 00 63 61 6c 6c 6f 63 0a 53 |DATAN...calloc.S| 000157f0 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a 63 61 6c |yntax:.void *cal| 00015800 6c 6f 63 20 28 3c 73 69 7a 65 5f 74 3e 20 6e 2c |loc (<size_t> n,| 00015810 20 73 69 7a 65 5f 74 20 73 69 7a 65 29 3b 0a 48 | size_t size);.H| 00015820 65 61 64 65 72 3a 09 3c 73 74 64 6c 69 62 2e 68 |eader:.<stdlib.h| 00015830 3d 3e 73 74 64 6c 69 62 3e 0a 0a 52 65 74 75 72 |=>stdlib>..Retur| 00015840 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 73 |ns:.Pointer to s| 00015850 70 61 63 65 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |pace, or <NULL> | 00015860 69 66 20 66 61 69 6c 65 64 2e 0a 0a 54 68 69 73 |if failed...This| 00015870 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 61 | function alloca| 00015880 74 65 73 20 73 70 61 63 65 20 66 6f 72 20 2f 6e |tes space for /n| 00015890 2f 20 6f 62 6a 65 63 74 73 2c 20 77 69 74 68 20 |/ objects, with | 000158a0 65 61 63 68 20 6f 62 6a 65 63 74 20 74 61 6b 69 |each object taki| 000158b0 6e 67 20 2f 73 69 7a 65 2f 20 62 79 74 65 73 2e |ng /size/ bytes.| 000158c0 20 54 68 65 20 74 6f 74 61 6c 20 73 70 61 63 65 | The total space| 000158d0 20 61 6c 6c 6f 63 61 74 65 64 20 69 73 20 74 68 | allocated is th| 000158e0 65 72 65 66 6f 72 65 20 28 6e 2a 73 69 7a 65 29 |erefore (n*size)| 000158f0 20 62 79 74 65 73 2e 20 54 68 65 20 65 6e 74 69 | bytes. The enti| 00015900 72 65 20 73 70 61 63 65 20 69 73 20 69 6e 69 74 |re space is init| 00015910 69 61 6c 69 73 65 64 20 77 69 74 68 20 65 61 63 |ialised with eac| 00015920 68 20 62 79 74 65 20 7a 65 72 6f 65 64 2e 00 00 |h byte zeroed...| 00015930 44 49 52 24 8c 00 00 00 8c 00 00 00 bc 59 01 00 |DIR$.........Y..| 00015940 46 ff ff ff 9b fd 45 23 8d 00 00 00 13 00 00 00 |F.....E#........| 00015950 00 00 00 00 62 75 74 74 00 00 00 00 4c 5a 01 00 |....butt....LZ..| 00015960 46 ff ff ff ce 01 46 23 91 00 00 00 13 00 00 00 |F.....F#........| 00015970 00 00 00 00 72 6f 75 6e 64 00 00 00 e0 5a 01 00 |....round....Z..| 00015980 46 ff ff ff 07 05 46 23 91 00 00 00 13 00 00 00 |F.....F#........| 00015990 00 00 00 00 73 71 75 61 72 65 00 00 74 5b 01 00 |....square..t[..| 000159a0 46 ff ff ff ca 08 46 23 95 00 00 00 13 00 00 00 |F.....F#........| 000159b0 00 00 00 00 74 72 69 61 6e 67 00 00 44 41 54 41 |....triang..DATA| 000159c0 8d 00 00 00 63 61 70 5f 62 75 74 74 0a 54 68 69 |....cap_butt.Thi| 000159d0 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 000159e0 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 2e 68 |ed in <drawmod.h| 000159f0 3d 3e 64 72 61 77 6d 6f 64 3e 2e 20 49 74 20 69 |=>drawmod>. It i| 00015a00 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 73 |s a value repres| 00015a10 65 6e 74 69 6e 67 20 62 75 74 74 20 63 61 70 73 |enting butt caps| 00015a20 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 00015a30 61 73 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 |as ((unsigned ch| 00015a40 61 72 29 30 78 30 30 29 2e 00 00 00 44 41 54 41 |ar)0x00)....DATA| 00015a50 91 00 00 00 63 61 70 5f 72 6f 75 6e 64 0a 54 68 |....cap_round.Th| 00015a60 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 00015a70 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 2e |ned in <drawmod.| 00015a80 68 3d 3e 64 72 61 77 6d 6f 64 3e 2e 20 49 74 20 |h=>drawmod>. It | 00015a90 69 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 |is a value repre| 00015aa0 73 65 6e 74 69 6e 67 20 72 6f 75 6e 64 65 64 20 |senting rounded | 00015ab0 63 61 70 73 2e 20 49 74 20 69 73 20 64 65 66 69 |caps. It is defi| 00015ac0 6e 65 64 20 61 73 20 28 28 75 6e 73 69 67 6e 65 |ned as ((unsigne| 00015ad0 64 20 63 68 61 72 29 30 78 30 31 29 2e 00 00 00 |d char)0x01)....| 00015ae0 44 41 54 41 91 00 00 00 63 61 70 5f 73 71 75 61 |DATA....cap_squa| 00015af0 72 65 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |re.This macro is| 00015b00 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 00015b10 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e |wmod.h=>drawmod>| 00015b20 2e 20 49 74 20 69 73 20 61 20 76 61 6c 75 65 20 |. It is a value | 00015b30 72 65 70 72 65 73 65 6e 74 69 6e 67 20 73 71 75 |representing squ| 00015b40 61 72 65 20 63 61 70 73 2e 20 49 74 20 69 73 20 |are caps. It is | 00015b50 64 65 66 69 6e 65 64 20 61 73 20 28 28 75 6e 73 |defined as ((uns| 00015b60 69 67 6e 65 64 20 63 68 61 72 29 30 78 30 32 29 |igned char)0x02)| 00015b70 2e 00 00 00 44 41 54 41 95 00 00 00 63 61 70 5f |....DATA....cap_| 00015b80 74 72 69 61 6e 67 0a 54 68 69 73 20 6d 61 63 72 |triang.This macr| 00015b90 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |o is defined in | 00015ba0 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 |<drawmod.h=>draw| 00015bb0 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 20 76 61 |mod>. It is a va| 00015bc0 6c 75 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 |lue representing| 00015bd0 20 74 72 69 61 6e 67 75 6c 61 72 20 63 61 70 73 | triangular caps| 00015be0 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 00015bf0 61 73 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 |as ((unsigned ch| 00015c00 61 72 29 30 78 30 33 29 2e 00 00 00 44 49 52 24 |ar)0x03)....DIR$| 00015c10 2c 00 00 00 2c 00 00 00 38 5c 01 00 46 ff ff ff |,...,...8\..F...| 00015c20 40 40 46 26 92 02 00 00 13 00 00 00 00 00 00 00 |@@F&............| 00015c30 62 6c 6f 63 6b 00 00 00 44 41 54 41 92 02 00 00 |block...DATA....| 00015c40 63 61 72 65 74 5f 62 6c 6f 63 6b 0a 54 68 69 73 |caret_block.This| 00015c50 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00015c60 20 62 79 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d | by <DeskLib:Wim| 00015c70 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 20 |p.h=>Wimp> as a | 00015c80 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 20 |type capable of | 00015c90 68 6f 6c 64 69 6e 67 20 69 6e 66 6f 72 6d 61 74 |holding informat| 00015ca0 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 61 |ion about the ca| 00015cb0 72 65 74 20 70 6f 73 69 74 69 6f 6e 2e 20 49 74 |ret position. It| 00015cc0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 | is defined as t| 00015cd0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 |he following str| 00015ce0 75 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a 20 20 |ucture:.. \{. | 00015cf0 20 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 | <window_handle| 00015d00 3e 09 77 69 6e 64 6f 77 3b 0a 20 20 20 20 3c 69 |>.window;. <i| 00015d10 63 6f 6e 5f 68 61 6e 64 6c 65 3e 09 69 63 6f 6e |con_handle>.icon| 00015d20 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 70 6f 69 6e |;. <wimp_poin| 00015d30 74 3e 09 6f 66 66 73 65 74 3b 0a 20 20 20 20 69 |t>.offset;. i| 00015d40 6e 74 09 68 65 69 67 68 74 3b 0a 20 20 20 20 69 |nt.height;. i| 00015d50 6e 74 09 69 6e 64 65 78 3b 0a 20 20 7d 0a 7b 74 |nt.index;. }.{t| 00015d60 61 62 7d 0a 8f 09 2f 77 69 6e 64 6f 77 2f 20 61 |ab}.../window/ a| 00015d70 6e 64 20 2f 69 63 6f 6e 2f 20 61 72 65 20 2d 31 |nd /icon/ are -1| 00015d80 20 69 66 20 6e 6f 6e 65 2e 0a 8f 09 2f 6f 66 66 | if none..../off| 00015d90 73 65 74 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 |set/ contains th| 00015da0 65 20 63 61 72 65 74 20 6f 66 66 73 65 74 20 72 |e caret offset r| 00015db0 65 6c 61 74 69 76 65 20 74 6f 20 77 6f 72 6b 20 |elative to work | 00015dc0 61 72 65 61 20 6f 72 69 67 69 6e 2e 0a 8f 09 2f |area origin..../| 00015dd0 69 6e 64 65 78 2f 20 63 6f 6e 74 61 69 6e 73 20 |index/ contains | 00015de0 74 68 65 20 69 6e 64 65 78 20 69 6e 74 6f 20 74 |the index into t| 00015df0 68 65 20 73 74 72 69 6e 67 2e 0a 8f 09 2f 68 65 |he string..../he| 00015e00 69 67 68 74 2f 20 63 6f 6e 74 69 6e 73 20 74 68 |ight/ contins th| 00015e10 65 20 63 61 72 65 74 20 68 65 69 67 68 74 20 61 |e caret height a| 00015e20 6e 64 20 66 6c 61 67 73 3a 0a 7b 74 61 62 7d 0a |nd flags:.{tab}.| 00015e30 23 69 6e 64 65 6e 74 20 33 0a 5f 42 69 74 5f 09 |#indent 3._Bit_.| 00015e40 5f 4d 65 61 6e 69 6e 67 5f 0a 32 34 09 75 73 65 |_Meaning_.24.use| 00015e50 20 56 44 55 20 35 20 63 61 72 65 74 2c 20 6e 6f | VDU 5 caret, no| 00015e60 74 20 61 6e 74 69 2d 61 6c 69 61 73 65 64 20 63 |t anti-aliased c| 00015e70 61 72 65 74 0a 32 35 09 63 61 72 65 74 20 69 73 |aret.25.caret is| 00015e80 20 69 6e 76 69 73 69 62 6c 65 0a 32 36 09 75 73 | invisible.26.us| 00015e90 65 20 62 69 74 73 20 31 36 2d 32 33 20 66 6f 72 |e bits 16-23 for| 00015ea0 20 63 6f 6c 6f 75 72 0a 32 37 09 62 69 74 73 20 | colour.27.bits | 00015eb0 31 36 2d 32 33 20 61 72 65 20 6c 6f 67 69 63 61 |16-23 are logica| 00015ec0 6c 20 63 6f 6c 6f 75 72 73 2e 00 00 44 41 54 41 |l colours...DATA| 00015ed0 3c 00 00 00 63 61 73 65 0a 54 68 69 73 20 63 6f |<...case.This co| 00015ee0 6d 6d 61 6e 64 20 69 73 20 70 61 72 74 20 6f 66 |mmand is part of| 00015ef0 20 74 68 65 20 3c 73 77 69 74 63 68 3e 20 63 6f | the <switch> co| 00015f00 6e 73 74 72 75 63 74 2e 44 41 54 41 aa 01 00 00 |nstruct.DATA....| 00015f10 63 65 69 6c 0a 53 79 6e 74 61 78 3a 09 64 6f 75 |ceil.Syntax:.dou| 00015f20 62 6c 65 20 63 65 69 6c 20 28 64 6f 75 62 6c 65 |ble ceil (double| 00015f30 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | x);.Header:.<ma| 00015f40 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 00015f50 75 72 6e 73 3a 09 54 68 65 20 73 6d 61 6c 6c 65 |urns:.The smalle| 00015f60 73 74 20 69 6e 74 65 67 65 72 20 65 71 75 61 6c |st integer equal| 00015f70 20 74 6f 20 6f 72 20 67 72 65 61 74 65 72 20 74 | to or greater t| 00015f80 68 61 6e 20 78 2e 0a 0a 54 68 69 73 20 66 75 6e |han x...This fun| 00015f90 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 |ction calculates| 00015fa0 20 74 68 65 20 90 63 65 69 6c 69 6e 67 91 20 6f | the .ceiling. o| 00015fb0 66 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 |f the given valu| 00015fc0 65 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 73 |e. This is the s| 00015fd0 6d 61 6c 6c 65 73 74 20 69 6e 74 65 67 65 72 20 |mallest integer | 00015fe0 6e 6f 74 20 6c 65 73 73 20 74 68 61 6e 20 78 2e |not less than x.| 00015ff0 20 42 61 73 69 63 61 6c 6c 79 2c 20 69 66 20 78 | Basically, if x| 00016000 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 20 76 | is an integer v| 00016010 61 6c 75 65 20 74 68 65 6e 20 74 68 65 20 66 75 |alue then the fu| 00016020 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 78 |nction returns x| 00016030 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 72 |, otherwise it r| 00016040 65 74 75 72 6e 73 20 74 68 65 20 6e 65 78 74 20 |eturns the next | 00016050 68 69 67 68 65 73 74 20 69 6e 74 65 67 65 72 2e |highest integer.| 00016060 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 72 | Note that the r| 00016070 65 73 75 6c 74 20 69 73 20 72 65 74 75 72 6e 65 |esult is returne| 00016080 64 20 61 73 20 61 20 64 6f 75 62 6c 65 2c 20 65 |d as a double, e| 00016090 76 65 6e 20 74 68 6f 75 67 68 20 69 74 20 69 73 |ven though it is| 000160a0 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 | an integer valu| 000160b0 65 2e 00 00 44 49 52 24 60 00 00 00 60 00 00 00 |e...DIR$`...`...| 000160c0 14 61 01 00 46 ff ff ff 30 df bc 22 95 00 00 00 |.a..F...0.."....| 000160d0 13 00 00 00 00 00 00 00 42 49 54 00 ac 61 01 00 |........BIT..a..| 000160e0 46 ff ff ff fb f5 bc 22 9c 00 00 00 13 00 00 00 |F......"........| 000160f0 00 00 00 00 4d 41 58 00 48 62 01 00 46 ff ff ff |....MAX.Hb..F...| 00016100 ab f2 bc 22 92 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00016110 4d 49 4e 00 44 41 54 41 95 00 00 00 43 48 41 52 |MIN.DATA....CHAR| 00016120 5f 42 49 54 0a 54 68 69 73 20 6d 61 63 72 6f 20 |_BIT.This macro | 00016130 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6c |is defined in <l| 00016140 69 6d 69 74 73 2e 68 3e 20 61 6e 64 20 72 65 70 |imits.h> and rep| 00016150 72 65 73 65 6e 74 73 20 74 68 65 20 6e 75 6d 62 |resents the numb| 00016160 65 72 20 6f 66 20 62 69 74 73 20 69 6e 20 77 68 |er of bits in wh| 00016170 69 63 68 20 63 68 61 72 20 76 61 6c 75 65 73 20 |ich char values | 00016180 61 72 65 20 73 74 6f 72 65 64 2e 20 49 6e 20 45 |are stored. In E| 00016190 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 |asy C it is defi| 000161a0 6e 65 64 20 61 73 20 38 2e 00 00 00 44 41 54 41 |ned as 8....DATA| 000161b0 9c 00 00 00 43 48 41 52 5f 4d 41 58 0a 54 68 69 |....CHAR_MAX.Thi| 000161c0 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 000161d0 65 64 20 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e |ed in <limits.h>| 000161e0 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 | and represents | 000161f0 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 |the maximum valu| 00016200 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 |e which can be s| 00016210 74 6f 72 65 64 20 69 6e 20 61 20 63 68 61 72 2e |tored in a char.| 00016220 20 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 | In Easy C it is| 00016230 20 64 65 66 69 6e 65 64 20 61 73 20 30 78 66 66 | defined as 0xff| 00016240 55 20 28 32 35 35 29 2e 44 41 54 41 92 00 00 00 |U (255).DATA....| 00016250 43 48 41 52 5f 4d 49 4e 0a 54 68 69 73 20 6d 61 |CHAR_MIN.This ma| 00016260 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 00016270 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e 20 61 6e 64 |n <limits.h> and| 00016280 20 72 65 70 72 65 73 65 6e 74 73 20 74 68 65 20 | represents the | 00016290 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 77 68 |minimum value wh| 000162a0 69 63 68 20 63 61 6e 20 62 65 20 73 74 6f 72 65 |ich can be store| 000162b0 64 20 69 6e 20 61 20 63 68 61 72 2e 20 49 6e 20 |d in a char. In | 000162c0 45 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 |Easy C it is def| 000162d0 69 6e 65 64 20 61 73 20 30 2e 00 00 44 49 52 24 |ined as 0...DIR$| 000162e0 2c 00 00 00 2c 00 00 00 08 63 01 00 46 fd ff ff |,...,....c..F...| 000162f0 19 5b c2 22 fd 00 00 00 13 00 00 00 00 00 00 00 |.[."............| 00016300 21 52 6f 6f 74 00 00 00 44 41 54 41 fd 00 00 00 |!Root...DATA....| 00016310 43 68 61 72 61 63 74 65 72 20 49 2f 4f 20 46 75 |Character I/O Fu| 00016320 6e 63 74 69 6f 6e 73 0a 23 50 61 72 65 6e 74 20 |nctions.#Parent | 00016330 73 74 64 69 6f 0a 54 68 65 73 65 20 66 75 6e 63 |stdio.These func| 00016340 74 69 6f 6e 73 20 72 65 61 64 20 61 6e 64 20 77 |tions read and w| 00016350 72 69 74 65 20 66 72 6f 6d 20 61 6e 79 20 73 74 |rite from any st| 00016360 72 65 61 6d 2c 20 73 69 6e 67 6c 65 20 63 68 61 |ream, single cha| 00016370 72 61 63 74 65 72 73 2c 20 6f 72 20 61 20 73 65 |racters, or a se| 00016380 71 75 65 6e 63 65 20 6f 66 20 63 68 61 72 61 63 |quence of charac| 00016390 74 65 72 73 2e 0a 0a 23 54 61 62 6c 65 20 34 20 |ters...#Table 4 | 000163a0 31 36 0a 3c 66 67 65 74 63 3e 0a 3c 66 67 65 74 |16.<fgetc>.<fget| 000163b0 73 3e 0a 3c 66 70 75 74 63 3e 0a 3c 66 70 75 74 |s>.<fputc>.<fput| 000163c0 73 3e 0a 3c 67 65 74 63 3e 0a 3c 67 65 74 63 68 |s>.<getc>.<getch| 000163d0 61 72 3e 0a 3c 67 65 74 73 3e 0a 3c 70 75 74 63 |ar>.<gets>.<putc| 000163e0 3e 0a 3c 70 75 74 63 68 61 72 3e 0a 3c 70 75 74 |>.<putchar>.<put| 000163f0 73 3e 0a 3c 75 6e 67 65 74 63 3e 0a 23 45 6e 64 |s>.<ungetc>.#End| 00016400 54 61 62 6c 65 00 00 00 44 41 54 41 a3 02 00 00 |Table...DATA....| 00016410 54 69 6d 73 4c 69 62 3a 43 68 65 63 6b 2e 68 0a |TimsLib:Check.h.| 00016420 23 50 61 72 65 6e 74 20 72 6f 5f 74 6c 69 62 5f |#Parent ro_tlib_| 00016430 0a 54 68 69 73 20 68 65 61 64 65 72 20 70 72 6f |.This header pro| 00016440 76 69 64 65 73 20 61 20 72 65 70 6c 61 63 65 6d |vides a replacem| 00016450 65 6e 74 20 66 6f 72 20 74 68 65 20 41 4e 53 49 |ent for the ANSI| 00016460 20 3c 61 73 73 65 72 74 2e 68 3d 3e 61 73 73 65 | <assert.h=>asse| 00016470 72 74 3e 20 68 65 61 64 65 72 2e 20 49 66 20 61 |rt> header. If a| 00016480 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c |n assertion fail| 00016490 73 2c 20 61 6e 20 65 72 72 6f 72 20 62 6f 78 20 |s, an error box | 000164a0 69 73 20 64 69 73 70 6c 61 79 65 64 20 67 69 76 |is displayed giv| 000164b0 69 6e 67 20 74 68 65 20 66 69 6c 65 2c 20 6c 69 |ing the file, li| 000164c0 6e 65 20 61 6e 64 20 72 65 61 73 6f 6e 2e 20 54 |ne and reason. T| 000164d0 68 65 20 75 73 65 72 20 63 61 6e 20 74 68 65 6e |he user can then| 000164e0 20 71 75 69 74 20 74 68 65 20 61 70 70 6c 69 63 | quit the applic| 000164f0 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 69 6e 75 |ation or continu| 00016500 65 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |e...Functions:..| 00016510 23 69 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 |#indent 4.#Table| 00016520 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 43 68 65 63 | columns 2.<Chec| 00016530 6b 5f 49 6e 69 74 3e 0a 3c 43 68 65 63 6b 5f 52 |k_Init>.<Check_R| 00016540 65 67 69 73 74 65 72 43 6c 6f 73 65 44 6f 77 6e |egisterCloseDown| 00016550 3e 0a 3c 43 68 65 63 6b 5f 41 73 73 65 72 74 3e |>.<Check_Assert>| 00016560 0a 3c 43 68 65 63 6b 5f 41 73 73 65 72 74 41 6c |.<Check_AssertAl| 00016570 77 61 79 73 3e 0a 3c 43 68 65 63 6b 5f 41 73 73 |ways>.<Check_Ass| 00016580 65 72 74 46 61 69 6c 75 72 65 3e 0a 3c 43 68 65 |ertFailure>.<Che| 00016590 63 6b 5f 41 73 73 65 72 74 46 61 69 6c 75 72 65 |ck_AssertFailure| 000165a0 45 78 74 3e 0a 3c 43 68 65 63 6b 5f 56 61 6c 69 |Ext>.<Check_Vali| 000165b0 64 3e 0a 3c 43 68 65 63 6b 5f 41 73 73 65 72 74 |d>.<Check_Assert| 000165c0 56 61 6c 69 64 3e 0a 23 45 6e 64 54 61 62 6c 65 |Valid>.#EndTable| 000165d0 0a 23 69 6e 64 65 6e 74 0a 0a 46 75 6e 63 74 69 |.#indent..Functi| 000165e0 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 73 3a 0a |on-like macros:.| 000165f0 0a 23 69 6e 64 65 6e 74 20 31 30 0a 23 54 61 62 |.#indent 10.#Tab| 00016600 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 41 53 |le columns 3.<AS| 00016610 53 45 52 54 3d 3e 41 53 53 45 52 54 5f 3e 0a 3c |SERT=>ASSERT_>.<| 00016620 56 45 52 49 46 59 3e 0a 3c 41 53 53 45 52 54 5f |VERIFY>.<ASSERT_| 00016630 56 41 4c 49 44 3e 0a 3c 56 45 52 49 46 59 5f 56 |VALID>.<VERIFY_V| 00016640 41 4c 49 44 3e 0a 3c 56 41 4c 49 44 3e 0a 0a 23 |ALID>.<VALID>..#| 00016650 45 6e 64 54 61 62 6c 65 0a 0a 23 54 61 62 6c 65 |EndTable..#Table| 00016660 20 63 6f 6c 75 6d 6e 73 20 32 0a 54 79 70 65 3a | columns 2.Type:| 00016670 0a 0a 3c 43 6c 6f 73 65 44 6f 77 6e 46 75 6e 63 |..<CloseDownFunc| 00016680 74 69 6f 6e 3e 0a 56 61 72 69 61 62 6c 65 3a 0a |tion>.Variable:.| 00016690 0a 3c 63 68 65 63 6b 5f 61 62 6f 72 74 69 6e 67 |.<check_aborting| 000166a0 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 49 52 24 |>.#EndTable.DIR$| 000166b0 5c 01 00 00 5c 01 00 00 08 68 01 00 46 ff ff ff |\...\....h..F...| 000166c0 50 89 54 26 c7 00 00 00 13 00 00 00 00 00 00 00 |P.T&............| 000166d0 61 62 6f 72 74 69 6e 67 00 00 00 00 d0 68 01 00 |aborting.....h..| 000166e0 46 ff ff ff 89 08 54 26 a4 01 00 00 13 00 00 00 |F.....T&........| 000166f0 00 00 00 00 41 73 73 65 72 74 00 00 74 6a 01 00 |....Assert..tj..| 00016700 46 ff ff ff c9 0e 54 26 eb 00 00 00 13 00 00 00 |F.....T&........| 00016710 00 00 00 00 41 73 73 65 72 74 41 6c 77 61 79 73 |....AssertAlways| 00016720 00 00 00 00 60 6b 01 00 46 ff ff ff b0 14 54 26 |....`k..F.....T&| 00016730 d8 00 00 00 13 00 00 00 00 00 00 00 41 73 73 65 |............Asse| 00016740 72 74 46 61 69 6c 75 72 65 00 00 00 38 6c 01 00 |rtFailure...8l..| 00016750 46 ff ff ff d7 23 54 26 bd 01 00 00 13 00 00 00 |F....#T&........| 00016760 00 00 00 00 41 73 73 65 72 74 46 61 69 6c 75 72 |....AssertFailur| 00016770 65 45 78 74 00 00 00 00 f8 6d 01 00 46 ff ff ff |eExt.....m..F...| 00016780 eb 3d 54 26 08 01 00 00 13 00 00 00 00 00 00 00 |.=T&............| 00016790 41 73 73 65 72 74 56 61 6c 69 64 00 00 6f 01 00 |AssertValid..o..| 000167a0 46 ff ff ff da f3 53 26 b0 00 00 00 13 00 00 00 |F.....S&........| 000167b0 00 00 00 00 49 6e 69 74 00 00 00 00 b0 6f 01 00 |....Init.....o..| 000167c0 46 ff ff ff cb fa 53 26 1a 01 00 00 13 00 00 00 |F.....S&........| 000167d0 00 00 00 00 52 65 67 69 73 74 65 72 43 6c 6f 73 |....RegisterClos| 000167e0 65 44 6f 77 6e 00 00 00 cc 70 01 00 46 ff ff ff |eDown....p..F...| 000167f0 45 33 54 26 e7 01 00 00 13 00 00 00 00 00 00 00 |E3T&............| 00016800 56 61 6c 69 64 00 00 00 44 41 54 41 c7 00 00 00 |Valid...DATA....| 00016810 63 68 65 63 6b 5f 61 62 6f 72 74 69 6e 67 0a 54 |check_aborting.T| 00016820 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 |his variable is | 00016830 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 |defined in <Tims| 00016840 4c 69 62 3a 43 68 65 63 6b 2e 68 3d 3e 43 68 65 |Lib:Check.h=>Che| 00016850 63 6b 3e 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 |ck>. It contains| 00016860 20 3c 54 52 55 45 3e 20 77 68 65 6e 20 61 6e 20 | <TRUE> when an | 00016870 69 72 72 65 63 6f 76 65 72 61 62 6c 65 20 65 72 |irrecoverable er| 00016880 72 6f 72 20 68 61 73 20 6f 63 63 75 72 72 65 64 |ror has occurred| 00016890 2c 20 6f 72 20 74 68 65 20 75 73 65 72 20 68 61 |, or the user ha| 000168a0 73 20 64 65 63 69 64 65 64 20 74 6f 20 61 62 6f |s decided to abo| 000168b0 72 74 20 64 75 65 20 74 6f 20 61 6e 20 61 73 73 |rt due to an ass| 000168c0 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 2e 00 |ertion failure..| 000168d0 44 41 54 41 a4 01 00 00 43 68 65 63 6b 5f 41 73 |DATA....Check_As| 000168e0 73 65 72 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |sert.Syntax:.voi| 000168f0 64 20 43 68 65 63 6b 5f 41 73 73 65 72 74 20 28 |d Check_Assert (| 00016900 3c 42 4f 4f 4c 3e 20 65 78 70 72 2c 20 63 68 61 |<BOOL> expr, cha| 00016910 72 20 2a 72 65 61 73 6f 6e 29 3b 0a 48 65 61 64 |r *reason);.Head| 00016920 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 65 |er:.<TimsLib:Che| 00016930 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 54 68 |ck.h=>Check>..Th| 00016940 69 73 20 63 61 6c 6c 20 63 68 65 63 6b 73 20 74 |is call checks t| 00016950 68 61 74 20 2f 65 78 70 72 2f 20 69 73 20 3c 54 |hat /expr/ is <T| 00016960 52 55 45 3e 20 2d 20 69 66 20 6e 6f 74 20 74 68 |RUE> - if not th| 00016970 65 6e 20 61 6e 20 65 72 72 6f 72 20 62 6f 78 20 |en an error box | 00016980 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 6c 6c |is displayed all| 00016990 6f 77 69 6e 67 20 74 68 65 20 75 73 65 72 20 74 |owing the user t| 000169a0 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 72 20 71 75 |o continue or qu| 000169b0 69 74 2e 20 41 6e 20 6f 70 74 69 6f 6e 61 6c 20 |it. An optional | 000169c0 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 |description of t| 000169d0 68 65 20 66 61 75 6c 74 20 28 7b 2f 7d 72 65 61 |he fault ({/}rea| 000169e0 73 6f 6e 7b 2f 7d 29 20 6d 61 79 20 62 65 20 64 |son{/}) may be d| 000169f0 69 73 70 6c 61 79 65 64 2e 20 49 66 20 2f 72 65 |isplayed. If /re| 00016a00 61 73 6f 6e 2f 20 69 73 20 3c 4e 55 4c 4c 3e 20 |ason/ is <NULL> | 00016a10 74 68 65 6e 20 6e 6f 20 64 65 73 63 72 69 70 74 |then no descript| 00016a20 69 6f 6e 20 69 73 20 64 69 73 70 6c 61 79 65 64 |ion is displayed| 00016a30 2e 0a 0a 49 66 20 74 68 65 20 6d 61 63 72 6f 20 |...If the macro | 00016a40 7b 2a 7d 5f 44 45 42 55 47 7b 2a 7d 20 69 73 20 |{*}_DEBUG{*} is | 00016a50 6e 6f 74 20 64 65 66 69 6e 65 64 20 74 68 65 6e |not defined then| 00016a60 20 74 68 69 73 20 68 61 73 20 6e 6f 20 65 66 66 | this has no eff| 00016a70 65 63 74 2e 44 41 54 41 eb 00 00 00 43 68 65 63 |ect.DATA....Chec| 00016a80 6b 5f 41 73 73 65 72 74 41 6c 77 61 79 73 0a 53 |k_AssertAlways.S| 00016a90 79 6e 74 61 78 3a 09 76 6f 69 64 20 43 68 65 63 |yntax:.void Chec| 00016aa0 6b 5f 41 73 73 65 72 74 41 6c 77 61 79 73 20 28 |k_AssertAlways (| 00016ab0 3c 42 4f 4f 4c 3e 20 65 78 70 72 2c 20 63 68 61 |<BOOL> expr, cha| 00016ac0 72 20 2a 72 65 61 73 6f 6e 29 3b 0a 48 65 61 64 |r *reason);.Head| 00016ad0 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 65 |er:.<TimsLib:Che| 00016ae0 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 54 68 |ck.h=>Check>..Th| 00016af0 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 |is function is i| 00016b00 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c 43 68 65 |dentical to <Che| 00016b10 63 6b 5f 41 73 73 65 72 74 3e 2c 20 65 78 63 65 |ck_Assert>, exce| 00016b20 70 74 20 74 68 61 74 20 69 74 20 67 65 74 73 20 |pt that it gets | 00016b30 63 61 6c 6c 65 64 20 72 65 67 61 72 64 6c 65 73 |called regardles| 00016b40 73 20 6f 66 20 74 68 65 20 73 74 61 74 65 20 6f |s of the state o| 00016b50 66 20 7b 2a 7d 5f 44 45 42 55 47 7b 2a 7d 2e 00 |f {*}_DEBUG{*}..| 00016b60 44 41 54 41 d8 00 00 00 43 68 65 63 6b 5f 41 73 |DATA....Check_As| 00016b70 73 65 72 74 46 61 69 6c 75 72 65 0a 53 79 6e 74 |sertFailure.Synt| 00016b80 61 78 3a 09 76 6f 69 64 20 43 68 65 63 6b 5f 41 |ax:.void Check_A| 00016b90 73 73 65 72 74 46 61 69 6c 75 72 65 20 28 63 68 |ssertFailure (ch| 00016ba0 61 72 20 2a 72 65 61 73 6f 6e 29 3b 0a 48 65 61 |ar *reason);.Hea| 00016bb0 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 |der:.<TimsLib:Ch| 00016bc0 65 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 54 |eck.h=>Check>..T| 00016bd0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 |his function dis| 00016be0 70 6c 61 79 73 20 2f 72 65 61 73 6f 6e 2f 20 69 |plays /reason/ i| 00016bf0 6e 20 61 6e 20 65 72 72 6f 72 20 62 6f 78 2c 20 |n an error box, | 00016c00 61 6e 64 20 67 69 76 65 73 20 74 68 65 20 75 73 |and gives the us| 00016c10 65 72 20 74 68 65 20 63 68 6f 69 63 65 20 6f 66 |er the choice of| 00016c20 20 71 75 69 74 74 69 6e 67 20 6f 72 20 63 6f 6e | quitting or con| 00016c30 74 69 6e 75 69 6e 67 2e 44 41 54 41 bd 01 00 00 |tinuing.DATA....| 00016c40 43 68 65 63 6b 5f 41 73 73 65 72 74 46 61 69 6c |Check_AssertFail| 00016c50 75 72 65 45 78 74 0a 53 79 6e 74 61 78 3a 09 76 |ureExt.Syntax:.v| 00016c60 6f 69 64 20 43 68 65 63 6b 5f 41 73 73 65 72 74 |oid Check_Assert| 00016c70 46 61 69 6c 75 72 65 45 78 74 20 28 63 68 61 72 |FailureExt (char| 00016c80 20 2a 72 65 61 73 6f 6e 2c 20 63 68 61 72 20 2a | *reason, char *| 00016c90 66 69 6c 65 2c 20 69 6e 74 20 6c 69 6e 65 29 3b |file, int line);| 00016ca0 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 |.Header:.<TimsLi| 00016cb0 62 3a 43 68 65 63 6b 2e 68 3d 3e 43 68 65 63 6b |b:Check.h=>Check| 00016cc0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00016cd0 20 64 69 73 70 6c 61 79 73 20 2f 72 65 61 73 6f | displays /reaso| 00016ce0 6e 2f 2c 20 2f 66 69 6c 65 2f 20 61 6e 64 20 2f |n/, /file/ and /| 00016cf0 6c 69 6e 65 2f 20 69 6e 20 61 6e 20 65 72 72 6f |line/ in an erro| 00016d00 72 20 62 6f 78 2c 20 61 6e 64 20 67 69 76 65 73 |r box, and gives| 00016d10 20 74 68 65 20 75 73 65 72 20 74 68 65 20 63 68 | the user the ch| 00016d20 6f 69 63 65 20 6f 66 20 71 75 69 74 74 69 6e 67 |oice of quitting| 00016d30 20 6f 72 20 63 6f 6e 74 69 6e 75 69 6e 67 2e 20 | or continuing. | 00016d40 2f 66 69 6c 65 2f 20 61 6e 64 20 2f 6c 69 6e 65 |/file/ and /line| 00016d50 2f 20 77 69 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 |/ will normally | 00016d60 62 65 20 73 65 74 20 75 73 69 6e 67 20 74 68 65 |be set using the| 00016d70 20 7b 2a 7d 5f 5f 46 49 4c 45 5f 5f 7b 2a 7d 20 | {*}__FILE__{*} | 00016d80 61 6e 64 20 7b 2a 7d 5f 5f 4c 49 4e 45 5f 5f 7b |and {*}__LINE__{| 00016d90 2a 7d 20 6d 61 63 72 6f 73 2e 0a 0a 49 66 20 74 |*} macros...If t| 00016da0 68 65 20 75 73 65 72 20 71 75 69 74 73 2c 20 74 |he user quits, t| 00016db0 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |hen the function| 00016dc0 20 72 65 67 69 73 74 65 72 65 64 20 77 69 74 68 | registered with| 00016dd0 20 3c 43 68 65 63 6b 5f 52 65 67 69 73 74 65 72 | <Check_Register| 00016de0 43 6c 6f 73 65 44 6f 77 6e 3e 20 69 73 20 63 61 |CloseDown> is ca| 00016df0 6c 6c 65 64 2e 00 00 00 44 41 54 41 08 01 00 00 |lled....DATA....| 00016e00 43 68 65 63 6b 5f 41 73 73 65 72 74 56 61 6c 69 |Check_AssertVali| 00016e10 64 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 43 |d.Syntax:.void C| 00016e20 68 65 63 6b 5f 41 73 73 65 72 74 56 61 6c 69 64 |heck_AssertValid| 00016e30 20 28 76 6f 69 64 20 2a 70 29 3b 0a 48 65 61 64 | (void *p);.Head| 00016e40 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 65 |er:.<TimsLib:Che| 00016e50 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 54 68 |ck.h=>Check>..Th| 00016e60 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 |is function chec| 00016e70 6b 73 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 |ks if the given | 00016e80 70 6f 69 6e 74 65 72 20 2f 70 2f 20 69 73 20 76 |pointer /p/ is v| 00016e90 61 6c 69 64 2e 20 49 66 20 69 74 20 69 73 20 6e |alid. If it is n| 00016ea0 6f 74 20 74 68 65 6e 20 61 6e 20 61 73 73 65 72 |ot then an asser| 00016eb0 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 6f 63 63 |tion failure occ| 00016ec0 75 72 73 2e 20 49 66 20 74 68 65 20 6d 61 63 72 |urs. If the macr| 00016ed0 6f 20 7b 2a 7d 5f 44 45 42 55 47 7b 2a 7d 20 69 |o {*}_DEBUG{*} i| 00016ee0 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2c 20 69 |s not defined, i| 00016ef0 74 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 2e |t has no effect.| 00016f00 44 41 54 41 b0 00 00 00 43 68 65 63 6b 5f 49 6e |DATA....Check_In| 00016f10 69 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |it.Syntax:.void | 00016f20 43 68 65 63 6b 5f 49 6e 69 74 20 28 76 6f 69 64 |Check_Init (void| 00016f30 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 00016f40 4c 69 62 3a 43 68 65 63 6b 2e 68 3d 3e 43 68 65 |Lib:Check.h=>Che| 00016f50 63 6b 3e 0a 0a 49 6e 69 74 69 61 6c 69 73 65 73 |ck>..Initialises| 00016f60 20 74 68 65 20 43 68 65 63 6b 20 6d 6f 64 75 6c | the Check modul| 00016f70 65 2e 20 54 68 69 73 20 6d 75 73 74 20 62 65 20 |e. This must be | 00016f80 63 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 63 61 |called before ca| 00016f90 6c 6c 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 |lling any other | 00016fa0 43 68 65 63 6b 20 66 75 6e 63 74 69 6f 6e 73 2e |Check functions.| 00016fb0 44 41 54 41 1a 01 00 00 43 68 65 63 6b 5f 52 65 |DATA....Check_Re| 00016fc0 67 69 73 74 65 72 43 6c 6f 73 65 44 6f 77 6e 0a |gisterCloseDown.| 00016fd0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 43 68 65 |Syntax:.void Che| 00016fe0 63 6b 5f 52 65 67 69 73 74 65 72 43 6c 6f 73 65 |ck_RegisterClose| 00016ff0 44 6f 77 6e 20 28 3c 43 6c 6f 73 65 44 6f 77 6e |Down (<CloseDown| 00017000 46 75 6e 63 74 69 6f 6e 3e 20 66 75 6e 63 29 3b |Function> func);| 00017010 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 |.Header:.<TimsLi| 00017020 62 3a 43 68 65 63 6b 2e 68 3d 3e 43 68 65 63 6b |b:Check.h=>Check| 00017030 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00017040 20 72 65 67 69 73 74 65 72 73 20 61 20 66 75 6e | registers a fun| 00017050 63 74 69 6f 6e 20 74 6f 20 62 65 20 63 61 6c 6c |ction to be call| 00017060 65 64 20 69 6e 20 74 68 65 20 65 76 65 6e 74 20 |ed in the event | 00017070 6f 66 20 61 6e 20 69 72 72 65 63 6f 76 65 72 61 |of an irrecovera| 00017080 62 6c 65 20 61 73 73 65 72 74 69 6f 6e 20 66 61 |ble assertion fa| 00017090 69 6c 75 72 65 2e 20 49 66 20 2f 66 75 6e 63 2f |ilure. If /func/| 000170a0 20 3d 20 3c 4e 55 4c 4c 3e 20 74 68 65 6e 20 6e | = <NULL> then n| 000170b0 6f 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 |o function will | 000170c0 62 65 20 63 61 6c 6c 65 64 2e 00 00 44 41 54 41 |be called...DATA| 000170d0 e7 01 00 00 43 68 65 63 6b 5f 56 61 6c 69 64 0a |....Check_Valid.| 000170e0 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 43 |Syntax:.<BOOL> C| 000170f0 68 65 63 6b 5f 56 61 6c 69 64 20 28 76 6f 69 64 |heck_Valid (void| 00017100 20 2a 70 2c 20 63 68 61 72 20 2a 66 69 6c 65 2c | *p, char *file,| 00017110 20 69 6e 74 20 6c 69 6e 65 29 3b 0a 09 3c 42 4f | int line);..<BO| 00017120 4f 4c 3e 20 43 68 65 63 6b 5f 56 61 6c 69 64 20 |OL> Check_Valid | 00017130 28 76 6f 69 64 20 2a 70 29 3b 0a 48 65 61 64 65 |(void *p);.Heade| 00017140 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 65 63 |r:.<TimsLib:Chec| 00017150 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 52 65 74 |k.h=>Check>..Ret| 00017160 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 00017170 74 68 65 20 70 6f 69 6e 74 65 72 20 69 73 20 76 |the pointer is v| 00017180 61 6c 69 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |alid...This func| 00017190 74 69 6f 6e 20 63 68 65 63 6b 73 20 69 66 20 74 |tion checks if t| 000171a0 68 65 20 67 69 76 65 6e 20 70 6f 69 6e 74 65 72 |he given pointer| 000171b0 20 2f 70 2f 20 69 73 20 76 61 6c 69 64 20 61 6e | /p/ is valid an| 000171c0 64 20 72 65 74 75 72 6e 73 20 3c 54 52 55 45 3e |d returns <TRUE>| 000171d0 20 6f 72 20 3c 46 41 4c 53 45 3e 20 61 63 63 6f | or <FALSE> acco| 000171e0 72 64 69 6e 67 6c 79 2e 20 54 68 65 20 66 69 72 |rdingly. The fir| 000171f0 73 74 20 66 6f 72 6d 20 6f 66 20 74 68 65 20 66 |st form of the f| 00017200 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 |unction is used | 00017210 69 66 20 74 68 65 20 6d 61 63 72 6f 20 7b 2a 7d |if the macro {*}| 00017220 5f 44 45 42 55 47 7b 2a 7d 20 69 73 20 64 65 66 |_DEBUG{*} is def| 00017230 69 6e 65 64 2c 20 6f 74 68 65 72 77 69 73 65 20 |ined, otherwise | 00017240 74 68 65 20 73 65 63 6f 6e 64 20 66 6f 72 6d 20 |the second form | 00017250 69 73 20 75 73 65 64 2e 20 4e 6f 72 6d 61 6c 6c |is used. Normall| 00017260 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |y this function | 00017270 77 69 6c 6c 20 6f 6e 6c 79 20 62 65 20 63 61 6c |will only be cal| 00017280 6c 65 64 20 61 73 20 61 20 72 65 73 75 6c 74 20 |led as a result | 00017290 6f 66 20 75 73 69 6e 67 20 3c 56 41 4c 49 44 3e |of using <VALID>| 000172a0 20 6f 72 20 3c 41 53 53 45 52 54 5f 56 41 4c 49 | or <ASSERT_VALI| 000172b0 44 3e 2e 00 44 41 54 41 a0 00 00 00 63 6c 65 61 |D>..DATA....clea| 000172c0 72 65 72 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |rerr.Syntax:.voi| 000172d0 64 20 63 6c 65 61 72 65 72 72 20 28 3c 46 49 4c |d clearerr (<FIL| 000172e0 45 3e 20 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 |E> *stream);.Hea| 000172f0 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 00017300 74 64 69 6f 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |tdio>..This func| 00017310 74 69 6f 6e 20 63 6c 65 61 72 73 20 74 68 65 20 |tion clears the | 00017320 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 61 6e 64 20 |end-of-file and | 00017330 65 72 72 6f 72 20 66 6c 61 67 73 20 6f 66 20 74 |error flags of t| 00017340 68 65 20 73 70 65 63 69 66 69 65 64 20 73 74 72 |he specified str| 00017350 65 61 6d 2e 44 41 54 41 90 01 00 00 63 6c 6f 63 |eam.DATA....cloc| 00017360 6b 0a 53 79 6e 74 61 78 3a 09 3c 63 6c 6f 63 6b |k.Syntax:.<clock| 00017370 5f 74 3e 20 63 6c 6f 63 6b 20 28 76 6f 69 64 29 |_t> clock (void)| 00017380 3b 0a 48 65 61 64 65 72 3a 09 3c 74 69 6d 65 2e |;.Header:.<time.| 00017390 68 3d 3e 74 69 6d 65 5f 68 3e 0a 0a 52 65 74 75 |h=>time_h>..Retu| 000173a0 72 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 72 20 |rns:.The number | 000173b0 6f 66 20 63 6c 6f 63 6b 20 74 69 63 6b 73 2e 0a |of clock ticks..| 000173c0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000173d0 65 61 64 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |eads the number | 000173e0 6f 66 20 63 6c 6f 63 6b 20 74 69 63 6b 73 20 77 |of clock ticks w| 000173f0 68 69 63 68 20 68 61 76 65 20 6f 63 63 75 72 72 |hich have occurr| 00017400 65 64 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 |ed since the las| 00017410 74 20 74 69 6d 65 20 74 68 65 20 63 6f 6d 70 75 |t time the compu| 00017420 74 65 72 27 73 20 69 6e 74 65 72 6e 61 6c 20 63 |ter's internal c| 00017430 6c 6f 63 6b 20 77 61 73 20 72 65 73 65 74 2e 20 |lock was reset. | 00017440 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6c |The number of cl| 00017450 6f 63 6b 20 74 69 63 6b 73 20 70 65 72 20 73 65 |ock ticks per se| 00017460 63 6f 6e 64 20 69 73 20 67 69 76 65 6e 20 62 79 |cond is given by| 00017470 20 3c 43 4c 4f 43 4b 53 5f 50 45 52 5f 53 45 43 | <CLOCKS_PER_SEC| 00017480 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |>...This functio| 00017490 6e 20 69 73 20 72 6f 75 67 68 6c 79 20 65 71 75 |n is roughly equ| 000174a0 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 53 |ivalent to the S| 000174b0 57 49 20 3c 4f 53 5f 52 65 61 64 4d 6f 6e 6f 74 |WI <OS_ReadMonot| 000174c0 6f 6e 69 63 54 69 6d 65 3d 3e 53 57 49 3a 4f 53 |onicTime=>SWI:OS| 000174d0 5f 52 65 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 69 |_ReadMonotonicTi| 000174e0 6d 65 3e 2e 44 49 52 24 28 00 00 00 28 00 00 00 |me>.DIR$(...(...| 000174f0 0c 75 01 00 46 ff ff ff 56 49 e2 22 c9 00 00 00 |.u..F...VI."....| 00017500 13 00 00 00 00 00 00 00 74 00 00 00 44 41 54 41 |........t...DATA| 00017510 c9 00 00 00 63 6c 6f 63 6b 5f 74 0a 54 68 65 20 |....clock_t.The | 00017520 74 79 70 65 20 7b 2f 7d 63 6c 6f 63 6b 5f 74 7b |type {/}clock_t{| 00017530 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |/} is defined in| 00017540 20 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 5f 68 | <time.h=>time_h| 00017550 3e 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 63 |> as an object c| 00017560 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e |apable of holdin| 00017570 67 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 76 |g all possible v| 00017580 61 6c 75 65 73 20 72 65 74 75 72 6e 65 64 20 62 |alues returned b| 00017590 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c |y the function <| 000175a0 63 6c 6f 63 6b 3e 2e 20 49 6e 20 45 61 73 79 20 |clock>. In Easy | 000175b0 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 |C it is defined | 000175c0 61 73 20 61 6e 20 2f 75 6e 73 69 67 6e 65 64 20 |as an /unsigned | 000175d0 69 6e 74 2f 2e 00 00 00 44 49 52 24 2c 00 00 00 |int/....DIR$,...| 000175e0 2c 00 00 00 04 76 01 00 46 ff ff ff 3c 3d e2 22 |,....v..F...<=."| 000175f0 3e 01 00 00 13 00 00 00 00 00 00 00 50 45 52 5f |>...........PER_| 00017600 53 45 43 00 44 41 54 41 3e 01 00 00 43 4c 4f 43 |SEC.DATA>...CLOC| 00017610 4b 53 5f 50 45 52 5f 53 45 43 0a 54 68 65 20 6d |KS_PER_SEC.The m| 00017620 61 63 72 6f 20 7b 2f 7d 43 4c 4f 43 4b 53 5f 50 |acro {/}CLOCKS_P| 00017630 45 52 5f 53 45 43 7b 2f 7d 20 69 73 20 64 65 66 |ER_SEC{/} is def| 00017640 69 6e 65 64 20 69 6e 20 3c 74 69 6d 65 2e 68 3d |ined in <time.h=| 00017650 3e 74 69 6d 65 5f 68 3e 20 74 6f 20 72 65 70 72 |>time_h> to repr| 00017660 65 73 65 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 |esent the number| 00017670 20 6f 66 20 63 6c 6f 63 6b 20 74 69 63 6b 73 20 | of clock ticks | 00017680 70 65 72 20 73 65 63 6f 6e 64 20 28 6f 72 20 6d |per second (or m| 00017690 6f 72 65 20 66 6f 72 6d 61 6c 6c 79 2c 20 74 68 |ore formally, th| 000176a0 65 20 64 69 66 66 65 72 65 6e 63 65 20 69 6e 20 |e difference in | 000176b0 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 |the return value| 000176c0 73 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f |s of the functio| 000176d0 6e 20 3c 63 6c 6f 63 6b 3e 20 61 74 20 6f 6e 65 |n <clock> at one| 000176e0 20 73 65 63 6f 6e 64 20 69 6e 74 65 72 76 61 6c | second interval| 000176f0 73 29 2e 20 49 6e 20 45 61 73 79 20 43 20 69 74 |s). In Easy C it| 00017700 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 31 | is defined as 1| 00017710 30 30 2c 20 68 65 6e 63 65 20 74 68 65 20 63 6c |00, hence the cl| 00017720 6f 63 6b 20 74 69 63 6b 20 76 61 6c 75 65 20 69 |ock tick value i| 00017730 73 20 69 6e 20 63 65 6e 74 69 73 65 63 6f 6e 64 |s in centisecond| 00017740 73 2e 00 00 44 41 54 41 d0 00 00 00 43 6c 6f 73 |s...DATA....Clos| 00017750 65 44 6f 77 6e 46 75 6e 63 74 69 6f 6e 0a 54 68 |eDownFunction.Th| 00017760 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00017770 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 43 |ed in <TimsLib:C| 00017780 68 65 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 2e 20 |heck.h=>Check>. | 00017790 49 74 20 69 73 20 74 68 65 20 74 79 70 65 20 6f |It is the type o| 000177a0 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |f a function cal| 000177b0 6c 65 64 20 6f 6e 20 61 20 61 73 73 65 72 74 69 |led on a asserti| 000177c0 6f 6e 20 66 61 69 6c 75 72 65 2e 20 54 68 65 20 |on failure. The | 000177d0 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 |function should | 000177e0 68 61 76 65 20 74 68 65 20 66 6f 72 6d 3a 0a 0a |have the form:..| 000177f0 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 00017800 74 72 65 7d 76 6f 69 64 20 6d 79 5f 66 75 6e 63 |tre}void my_func| 00017810 20 28 29 3b 44 49 52 24 64 00 00 00 64 00 00 00 | ();DIR$d...d...| 00017820 78 78 01 00 46 ff ff ff a5 b1 61 25 1f 01 00 00 |xx..F.....a%....| 00017830 13 00 00 00 00 00 00 00 63 6d 79 6b 00 00 00 00 |........cmyk....| 00017840 98 79 01 00 46 ff ff ff 5c a8 61 25 13 01 00 00 |.y..F...\.a%....| 00017850 13 00 00 00 00 00 00 00 68 73 76 00 ac 7a 01 00 |........hsv..z..| 00017860 46 ff ff ff 3c a1 61 25 22 01 00 00 13 00 00 00 |F...<.a%".......| 00017870 00 00 00 00 72 67 62 00 44 41 54 41 1f 01 00 00 |....rgb.DATA....| 00017880 63 6f 6c 6f 75 72 5f 63 6d 79 6b 0a 54 68 69 73 |colour_cmyk.This| 00017890 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 000178a0 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 | in <DeskLib:Pop| 000178b0 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 74 |Up.h=>PopUp>. It| 000178c0 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 000178d0 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 20 43 |used to hold a C| 000178e0 4d 59 4b 20 63 6f 6c 6f 75 72 3a 0a 0a 20 20 5c |MYK colour:.. \| 000178f0 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 |{. unsigned i| 00017900 6e 74 20 6b 65 79 09 09 3a 20 38 3b 0a 20 20 20 |nt key..: 8;. | 00017910 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 79 65 | unsigned int ye| 00017920 6c 6c 6f 77 09 09 3a 20 38 3b 0a 20 20 20 20 75 |llow..: 8;. u| 00017930 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 61 67 65 |nsigned int mage| 00017940 6e 74 61 09 3a 20 38 3b 0a 20 20 20 20 75 6e 73 |nta.: 8;. uns| 00017950 69 67 6e 65 64 20 69 6e 74 20 63 79 61 6e 09 09 |igned int cyan..| 00017960 3a 20 38 3b 0a 20 20 7d 0a 0a 53 65 65 20 74 68 |: 8;. }..See th| 00017970 65 20 50 6f 70 55 70 20 64 6f 63 75 6d 65 6e 74 |e PopUp document| 00017980 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 |ation for more d| 00017990 65 74 61 69 6c 73 2e 00 44 41 54 41 13 01 00 00 |etails..DATA....| 000179a0 63 6f 6c 6f 75 72 5f 68 73 76 0a 54 68 69 73 20 |colour_hsv.This | 000179b0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000179c0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 55 |in <DeskLib:PopU| 000179d0 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 74 20 |p.h=>PopUp>. It | 000179e0 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 75 |is a structure u| 000179f0 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 6e 20 48 |sed to hold an H| 00017a00 53 56 20 63 6f 6c 6f 75 72 3a 0a 0a 20 20 5c 7b |SV colour:.. \{| 00017a10 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e |. unsigned in| 00017a20 74 20 76 61 6c 75 65 09 09 3a 20 38 3b 0a 20 20 |t value..: 8;. | 00017a30 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 | unsigned int s| 00017a40 61 74 75 72 61 74 69 6f 6e 09 3a 20 38 3b 0a 20 |aturation.: 8;. | 00017a50 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 00017a60 68 75 65 09 09 3a 20 31 36 3b 20 2f 2a 20 30 20 |hue..: 16; /* 0 | 00017a70 2d 20 33 35 39 20 2a 2f 0a 20 20 7d 0a 0a 53 65 |- 359 */. }..Se| 00017a80 65 20 74 68 65 20 50 6f 70 55 70 20 64 6f 63 75 |e the PopUp docu| 00017a90 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f |mentation for mo| 00017aa0 72 65 20 64 65 74 61 69 6c 73 2e 00 44 41 54 41 |re details..DATA| 00017ab0 22 01 00 00 63 6f 6c 6f 75 72 5f 72 67 62 0a 54 |"...colour_rgb.T| 00017ac0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00017ad0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 00017ae0 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e |PopUp.h=>PopUp>.| 00017af0 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 | It is a structu| 00017b00 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 |re used to hold | 00017b10 61 6e 20 52 47 42 20 63 6f 6c 6f 75 72 3a 0a 0a |an RGB colour:..| 00017b20 20 20 5c 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 | \{. unsigne| 00017b30 64 20 69 6e 74 20 74 72 61 6e 73 70 61 72 65 6e |d int transparen| 00017b40 63 79 09 3a 20 38 3b 0a 20 20 20 20 75 6e 73 69 |cy.: 8;. unsi| 00017b50 67 6e 65 64 20 69 6e 74 20 72 65 64 09 09 3a 20 |gned int red..: | 00017b60 38 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |8;. unsigned | 00017b70 69 6e 74 20 67 72 65 65 6e 09 09 3a 20 38 3b 0a |int green..: 8;.| 00017b80 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00017b90 20 62 6c 75 65 09 09 3a 20 38 3b 0a 20 20 7d 0a | blue..: 8;. }.| 00017ba0 0a 53 65 65 20 74 68 65 20 50 6f 70 55 70 20 64 |.See the PopUp d| 00017bb0 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 |ocumentation for| 00017bc0 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 00 00 | more details...| 00017bd0 44 41 54 41 e0 01 00 00 63 6f 6c 6f 75 72 6d 65 |DATA....colourme| 00017be0 6e 75 2e 68 0a 54 68 65 20 5c 3c 63 6f 6c 6f 75 |nu.h.The \<colou| 00017bf0 72 6d 65 6e 75 2e 68 3e 20 68 65 61 64 65 72 20 |rmenu.h> header | 00017c00 64 65 63 6c 61 72 65 73 20 6f 6e 65 20 66 75 6e |declares one fun| 00017c10 63 74 69 6f 6e 2c 20 61 73 20 66 6f 6c 6c 6f 77 |ction, as follow| 00017c20 73 3a 0a 0a 53 79 6e 74 61 78 3a 09 3c 6d 65 6e |s:..Syntax:.<men| 00017c30 75 3e 20 63 6f 6c 6f 75 72 6d 65 6e 75 5f 6d 61 |u> colourmenu_ma| 00017c40 6b 65 20 28 63 68 61 72 20 2a 74 69 74 6c 65 2c |ke (char *title,| 00017c50 20 3c 42 4f 4f 4c 3e 20 6e 6f 6e 65 66 6c 61 67 | <BOOL> noneflag| 00017c60 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f |);.Header:.<colo| 00017c70 75 72 6d 65 6e 75 2e 68 3d 3e 63 6f 6c 6f 75 72 |urmenu.h=>colour| 00017c80 6d 65 6e 75 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |menu>..Returns:.| 00017c90 50 6f 69 6e 74 65 72 20 74 6f 20 6d 65 6e 75 20 |Pointer to menu | 00017ca0 73 74 72 75 63 74 75 72 65 2e 0a 0a 54 68 69 73 |structure...This| 00017cb0 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 | function create| 00017cc0 73 20 61 20 6d 65 6e 75 20 63 6f 6e 74 61 69 6e |s a menu contain| 00017cd0 69 6e 67 20 74 68 65 20 31 36 20 57 69 6d 70 20 |ing the 16 Wimp | 00017ce0 63 6f 6c 6f 75 72 73 2e 20 49 66 20 2f 6e 6f 6e |colours. If /non| 00017cf0 65 66 6c 61 67 2f 20 3d 20 3c 54 52 55 45 3e 20 |eflag/ = <TRUE> | 00017d00 74 68 65 6e 20 61 6e 20 61 64 64 69 74 69 6f 6e |then an addition| 00017d10 61 6c 20 65 6e 74 72 79 20 27 4e 6f 6e 65 27 20 |al entry 'None' | 00017d20 77 69 6c 6c 20 62 65 20 70 72 65 73 65 6e 74 2e |will be present.| 00017d30 20 2f 74 69 74 6c 65 2f 20 70 6f 69 6e 74 73 20 | /title/ points | 00017d40 74 6f 20 74 68 65 20 74 69 74 6c 65 20 66 6f 72 |to the title for| 00017d50 20 74 68 65 20 6d 65 6e 75 2e 20 54 68 65 20 6d | the menu. The m| 00017d60 65 6e 75 20 69 73 20 6f 6e 6c 79 20 63 72 65 61 |enu is only crea| 00017d70 74 65 64 2c 20 6e 6f 74 20 64 69 73 70 6c 61 79 |ted, not display| 00017d80 65 64 2e 0a 0a 54 68 65 20 69 63 6f 6e 73 20 6f |ed...The icons o| 00017d90 6e 20 74 68 69 73 20 6d 65 6e 75 20 61 72 65 20 |n this menu are | 00017da0 6e 75 6d 62 65 72 65 64 20 66 72 6f 6d 20 31 2e |numbered from 1.| 00017db0 44 41 54 41 ad 01 00 00 43 6f 6c 6f 75 72 54 72 |DATA....ColourTr| 00017dc0 61 6e 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e |an.h.Version: 1.| 00017dd0 30 30 20 28 31 33 20 4d 61 79 20 31 39 39 34 29 |00 (13 May 1994)| 00017de0 0a 23 6c 69 6e 65 0a 54 68 65 20 5c 3c 43 6f 6c |.#line.The \<Col| 00017df0 6f 75 72 54 72 61 6e 2e 68 3e 20 68 65 61 64 65 |ourTran.h> heade| 00017e00 72 20 64 65 66 69 6e 65 73 20 73 65 76 65 72 61 |r defines severa| 00017e10 6c 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 |l functions whic| 00017e20 68 20 61 63 63 65 73 73 20 74 68 65 20 72 6f 75 |h access the rou| 00017e30 74 69 6e 65 73 20 69 6e 20 74 68 65 20 3c 43 6f |tines in the <Co| 00017e40 6c 6f 75 72 54 72 61 6e 73 3d 3e 53 57 49 3a 43 |lourTrans=>SWI:C| 00017e50 6f 6c 6f 75 72 54 72 61 6e 73 5f 3e 20 6d 6f 64 |olourTrans_> mod| 00017e60 75 6c 65 2e 20 49 74 20 61 6c 73 6f 20 64 65 66 |ule. It also def| 00017e70 69 6e 65 73 20 6f 6e 65 20 74 79 70 65 2e 0a 0a |ines one type...| 00017e80 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 |Functions:..#ind| 00017e90 65 6e 74 20 38 0a 3c 43 6f 6c 6f 75 72 54 72 61 |ent 8.<ColourTra| 00017ea0 6e 73 5f 53 65 74 47 43 4f 4c 3e 0a 3c 43 6f 6c |ns_SetGCOL>.<Col| 00017eb0 6f 75 72 54 72 61 6e 73 5f 49 6e 76 61 6c 69 64 |ourTrans_Invalid| 00017ec0 61 74 65 43 61 63 68 65 3e 0a 3c 43 6f 6c 6f 75 |ateCache>.<Colou| 00017ed0 72 54 72 61 6e 73 5f 53 65 6c 65 63 74 54 61 62 |rTrans_SelectTab| 00017ee0 6c 65 3e 0a 3c 43 6f 6c 6f 75 72 54 72 61 6e 73 |le>.<ColourTrans| 00017ef0 5f 52 65 74 75 72 6e 46 6f 6e 74 43 6f 6c 6f 75 |_ReturnFontColou| 00017f00 72 73 3e 0a 3c 43 6f 6c 6f 75 72 54 72 61 6e 73 |rs>.<ColourTrans| 00017f10 5f 52 65 74 75 72 6e 43 6f 6c 6f 75 72 4e 75 6d |_ReturnColourNum| 00017f20 62 65 72 46 6f 72 4d 6f 64 65 3e 0a 23 69 6e 64 |berForMode>.#ind| 00017f30 65 6e 74 0a 0a 54 79 70 65 3a 0a 0a 23 69 6e 64 |ent..Type:..#ind| 00017f40 65 6e 74 20 38 0a 3c 63 6f 6c 6f 75 72 74 72 61 |ent 8.<colourtra| 00017f50 6e 73 5f 66 6f 6e 74 62 6c 6f 63 6b 3e 00 00 00 |ns_fontblock>...| 00017f60 44 49 52 24 2c 03 00 00 2c 03 00 00 8c 82 01 00 |DIR$,...,.......| 00017f70 46 ff ff ff 27 8c 1c 23 2f 01 00 00 13 00 00 00 |F...'..#/.......| 00017f80 00 00 00 00 63 6f 6c 6f 75 72 6e 75 6d 62 65 72 |....colournumber| 00017f90 74 6f 47 43 4f 4c 00 00 bc 83 01 00 46 ff ff ff |toGCOL......F...| 00017fa0 46 85 1c 23 30 01 00 00 13 00 00 00 00 00 00 00 |F..#0...........| 00017fb0 47 43 4f 4c 5f 74 6f 63 6f 6c 6f 75 72 6e 75 6d |GCOL_tocolournum| 00017fc0 62 65 72 00 ec 84 01 00 46 ff ff ff db 21 1c 23 |ber.....F....!.#| 00017fd0 e9 02 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |............h...| 00017fe0 d8 87 01 00 46 ff ff ff f6 e1 1c 23 25 01 00 00 |....F......#%...| 00017ff0 13 00 00 00 00 00 00 00 69 6e 76 61 6c 69 64 61 |........invalida| 00018000 74 65 5f 63 61 63 68 65 00 00 00 00 00 89 01 00 |te_cache........| 00018010 46 ff ff ff a5 fb 1b 23 66 01 00 00 13 00 00 00 |F......#f.......| 00018020 00 00 00 00 72 65 74 75 72 6e 5f 63 6f 6c 6f 75 |....return_colou| 00018030 72 6e 75 6d 62 65 72 00 68 8a 01 00 46 ff ff ff |rnumber.h...F...| 00018040 e5 03 1c 23 93 01 00 00 13 00 00 00 00 00 00 00 |...#............| 00018050 72 65 74 75 72 6e 5f 47 43 4f 4c 66 6f 72 6d 6f |return_GCOLformo| 00018060 64 65 00 00 fc 8b 01 00 46 ff ff ff 11 66 1c 23 |de......F....f.#| 00018070 4f 01 00 00 13 00 00 00 00 00 00 00 72 65 74 75 |O...........retu| 00018080 72 6e 5f 4f 70 70 47 43 4f 4c 00 00 4c 8d 01 00 |rn_OppGCOL..L...| 00018090 46 ff ff ff 94 97 1c 23 0d 02 00 00 13 00 00 00 |F......#........| 000180a0 00 00 00 00 72 65 74 75 72 6e 66 6f 6e 74 63 6f |....returnfontco| 000180b0 6c 6f 75 72 73 00 00 00 5c 8f 01 00 46 ff ff ff |lours...\...F...| 000180c0 30 dc 1b 23 5d 01 00 00 13 00 00 00 00 00 00 00 |0..#]...........| 000180d0 72 65 74 75 72 6e 47 43 4f 4c 00 00 bc 90 01 00 |returnGCOL......| 000180e0 46 ff ff ff 2d d3 1b 23 82 01 00 00 13 00 00 00 |F...-..#........| 000180f0 00 00 00 00 73 65 6c 65 63 74 5f 47 43 4f 4c 74 |....select_GCOLt| 00018100 61 62 6c 65 00 00 00 00 40 92 01 00 46 ff ff ff |able....@...F...| 00018110 66 be 1b 23 7e 01 00 00 13 00 00 00 00 00 00 00 |f..#~...........| 00018120 73 65 6c 65 63 74 5f 74 61 62 6c 65 00 00 00 00 |select_table....| 00018130 c0 93 01 00 46 ff ff ff 9c da 1c 23 4c 02 00 00 |....F......#L...| 00018140 13 00 00 00 00 00 00 00 73 65 74 66 6f 6e 74 63 |........setfontc| 00018150 6f 6c 6f 75 72 73 00 00 0c 96 01 00 46 ff ff ff |olours......F...| 00018160 5f f1 1b 23 ec 01 00 00 13 00 00 00 00 00 00 00 |_..#............| 00018170 73 65 74 47 43 4f 4c 00 f8 97 01 00 46 ff ff ff |setGCOL.....F...| 00018180 c9 74 b5 22 12 02 00 00 13 00 00 00 00 00 00 00 |.t."............| 00018190 73 65 74 4f 70 70 47 43 4f 4c 00 00 0c 9a 01 00 |setOppGCOL......| 000181a0 46 ff ff ff 0d 5f 1c 23 a1 01 00 00 13 00 00 00 |F...._.#........| 000181b0 00 00 00 00 72 65 74 75 72 6e 5f 63 6f 6c 6f 75 |....return_colou| 000181c0 72 66 6f 72 6d 6f 64 65 00 00 00 00 b0 9b 01 00 |rformode........| 000181d0 46 ff ff ff 5c ed 1c 23 75 01 00 00 13 00 00 00 |F...\..#u.......| 000181e0 00 00 00 00 63 6f 6e 76 65 72 74 5f 64 65 76 69 |....convert_devi| 000181f0 63 65 5f 63 6f 6c 6f 75 72 00 00 00 28 9d 01 00 |ce_colour...(...| 00018200 46 ff ff ff 33 7e 1c 23 aa 01 00 00 13 00 00 00 |F...3~.#........| 00018210 00 00 00 00 72 65 74 75 72 6e 5f 4f 70 70 63 6f |....return_Oppco| 00018220 6c 6f 75 72 66 6f 72 6d 6f 64 65 00 d4 9e 01 00 |lourformode.....| 00018230 46 ff ff ff 47 6e 1c 23 61 01 00 00 13 00 00 00 |F...Gn.#a.......| 00018240 00 00 00 00 72 65 74 75 72 6e 5f 4f 70 70 63 6f |....return_Oppco| 00018250 6c 6f 75 72 6e 75 6d 62 65 72 00 00 38 a0 01 00 |lournumber..8...| 00018260 46 ff ff ff 2a 76 1c 23 9c 01 00 00 13 00 00 00 |F...*v.#........| 00018270 00 00 00 00 72 65 74 75 72 6e 5f 4f 70 70 47 43 |....return_OppGC| 00018280 4f 4c 66 6f 72 6d 6f 64 65 00 00 00 44 41 54 41 |OLformode...DATA| 00018290 2f 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 63 |/...colourtran_c| 000182a0 6f 6c 6f 75 72 6e 75 6d 62 65 72 74 6f 47 43 4f |olournumbertoGCO| 000182b0 4c 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |L.Syntax:.<os_er| 000182c0 72 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 6e |ror> *colourtran| 000182d0 5f 63 6f 6c 6f 75 72 6e 75 6d 62 65 72 74 6f 47 |_colournumbertoG| 000182e0 43 4f 4c 20 28 69 6e 74 20 63 6f 6c 2c 20 69 6e |COL (int col, in| 000182f0 74 20 2a 67 63 6f 6c 29 3b 0a 48 65 61 64 65 72 |t *gcol);.Header| 00018300 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d |:.<colourtran.h=| 00018310 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a 0a |>colourtran_h>..| 00018320 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00018330 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00018340 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00018350 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 |his function tra| 00018360 6e 73 6c 61 74 65 73 20 61 20 63 6f 6c 6f 75 72 |nslates a colour| 00018370 20 6e 75 6d 62 65 72 20 74 6f 20 61 20 47 43 4f | number to a GCO| 00018380 4c 20 28 61 73 73 75 6d 69 6e 67 20 32 35 36 20 |L (assuming 256 | 00018390 63 6f 6c 6f 75 72 20 6d 6f 64 65 29 20 61 6e 64 |colour mode) and| 000183a0 20 72 65 74 75 72 6e 73 20 69 74 20 69 6e 20 7b | returns it in {| 000183b0 2f 7d 2a 67 63 6f 6c 7b 2f 7d 2e 00 44 41 54 41 |/}*gcol{/}..DATA| 000183c0 30 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 47 |0...colourtran_G| 000183d0 43 4f 4c 5f 74 6f 63 6f 6c 6f 75 72 6e 75 6d 62 |COL_tocolournumb| 000183e0 65 72 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |er.Syntax:.<os_e| 000183f0 72 72 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 |rror> *colourtra| 00018400 6e 5f 47 43 4f 4c 5f 74 6f 63 6f 6c 6f 75 72 6e |n_GCOL_tocolourn| 00018410 75 6d 62 65 72 20 28 69 6e 74 20 67 63 6f 6c 2c |umber (int gcol,| 00018420 20 69 6e 74 20 2a 63 6f 6c 29 3b 0a 48 65 61 64 | int *col);.Head| 00018430 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e |er:.<colourtran.| 00018440 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e |h=>colourtran_h>| 00018450 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 00018460 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 00018470 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 00018480 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00018490 72 61 6e 73 6c 61 74 65 73 20 61 20 47 43 4f 4c |ranslates a GCOL| 000184a0 20 74 6f 20 61 20 63 6f 6c 6f 75 72 20 6e 75 6d | to a colour num| 000184b0 62 65 72 20 28 61 73 73 75 6d 69 6e 67 20 32 35 |ber (assuming 25| 000184c0 36 20 63 6f 6c 6f 75 72 20 6d 6f 64 65 29 20 61 |6 colour mode) a| 000184d0 6e 64 20 72 65 74 75 72 6e 73 20 69 74 20 69 6e |nd returns it in| 000184e0 20 7b 2f 7d 2a 63 6f 6c 7b 2f 7d 2e 44 41 54 41 | {/}*col{/}.DATA| 000184f0 e9 02 00 00 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 |....colourtran.h| 00018500 0a 54 68 65 20 5c 3c 63 6f 6c 6f 75 72 74 72 61 |.The \<colourtra| 00018510 6e 2e 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c |n.h> header decl| 00018520 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 0a 61 |ares functions.a| 00018530 63 63 65 73 73 69 6e 67 20 74 68 65 20 72 6f 75 |ccessing the rou| 00018540 74 69 6e 65 73 20 69 6e 20 74 68 65 20 43 6f 6c |tines in the Col| 00018550 6f 75 72 54 72 61 6e 73 0a 6d 6f 64 75 6c 65 2e |ourTrans.module.| 00018560 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 20 20 |..Functions:.. | 00018570 20 20 20 3c 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 | <colourtran_s| 00018580 65 6c 65 63 74 5f 74 61 62 6c 65 3e 0a 20 20 20 |elect_table>. | 00018590 20 20 3c 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 65 | <colourtran_se| 000185a0 6c 65 63 74 5f 47 43 4f 4c 74 61 62 6c 65 3e 0a |lect_GCOLtable>.| 000185b0 20 20 20 20 20 3c 63 6f 6c 6f 75 72 74 72 61 6e | <colourtran| 000185c0 5f 72 65 74 75 72 6e 47 43 4f 4c 3e 0a 20 20 20 |_returnGCOL>. | 000185d0 20 20 3c 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 65 | <colourtran_se| 000185e0 74 47 43 4f 4c 3e 0a 20 20 20 20 20 3c 63 6f 6c |tGCOL>. <col| 000185f0 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 6e 5f 63 |ourtran_return_c| 00018600 6f 6c 6f 75 72 6e 75 6d 62 65 72 3e 0a 20 20 20 |olournumber>. | 00018610 20 20 3c 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 | <colourtran_re| 00018620 74 75 72 6e 5f 47 43 4f 4c 66 6f 72 6d 6f 64 65 |turn_GCOLformode| 00018630 3e 0a 20 20 20 20 20 3c 63 6f 6c 6f 75 72 74 72 |>. <colourtr| 00018640 61 6e 5f 72 65 74 75 72 6e 5f 63 6f 6c 6f 75 72 |an_return_colour| 00018650 66 6f 72 6d 6f 64 65 3e 0a 20 20 20 20 20 3c 63 |formode>. <c| 00018660 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 6e |olourtran_return| 00018670 5f 4f 70 70 47 43 4f 4c 3e 0a 20 20 20 20 20 3c |_OppGCOL>. <| 00018680 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 |colourtran_retur| 00018690 6e 5f 4f 70 70 63 6f 6c 6f 75 72 6e 75 6d 62 65 |n_Oppcolournumbe| 000186a0 72 3e 0a 20 20 20 20 20 3c 63 6f 6c 6f 75 72 74 |r>. <colourt| 000186b0 72 61 6e 5f 72 65 74 75 72 6e 5f 4f 70 70 47 43 |ran_return_OppGC| 000186c0 4f 4c 66 6f 72 6d 6f 64 65 3e 0a 20 20 20 20 20 |OLformode>. | 000186d0 3c 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 |<colourtran_retu| 000186e0 72 6e 5f 4f 70 70 63 6f 6c 6f 75 72 66 6f 72 6d |rn_Oppcolourform| 000186f0 6f 64 65 3e 0a 20 20 20 20 20 3c 63 6f 6c 6f 75 |ode>. <colou| 00018700 72 74 72 61 6e 5f 47 43 4f 4c 5f 74 6f 63 6f 6c |rtran_GCOL_tocol| 00018710 6f 75 72 6e 75 6d 62 65 72 3e 0a 20 20 20 20 20 |ournumber>. | 00018720 3c 63 6f 6c 6f 75 72 74 72 61 6e 5f 63 6f 6c 6f |<colourtran_colo| 00018730 75 72 6e 75 6d 62 65 72 74 6f 47 43 4f 4c 3e 0a |urnumbertoGCOL>.| 00018740 20 20 20 20 20 3c 63 6f 6c 6f 75 72 74 72 61 6e | <colourtran| 00018750 5f 72 65 74 75 72 6e 66 6f 6e 74 63 6f 6c 6f 75 |_returnfontcolou| 00018760 72 73 3e 0a 20 20 20 20 20 3c 63 6f 6c 6f 75 72 |rs>. <colour| 00018770 74 72 61 6e 5f 73 65 74 66 6f 6e 74 63 6f 6c 6f |tran_setfontcolo| 00018780 75 72 73 3e 0a 20 20 20 20 20 3c 63 6f 6c 6f 75 |urs>. <colou| 00018790 72 74 72 61 6e 5f 69 6e 76 61 6c 69 64 61 74 65 |rtran_invalidate| 000187a0 5f 63 61 63 68 65 3e 0a 20 20 20 20 20 3c 63 6f |_cache>. <co| 000187b0 6c 6f 75 72 74 72 61 6e 5f 63 6f 6e 76 65 72 74 |lourtran_convert| 000187c0 5f 64 65 76 69 63 65 5f 63 6f 6c 6f 75 72 3e 0a |_device_colour>.| 000187d0 20 20 20 20 20 00 00 00 44 41 54 41 25 01 00 00 | ...DATA%...| 000187e0 63 6f 6c 6f 75 72 74 72 61 6e 5f 69 6e 76 61 6c |colourtran_inval| 000187f0 69 64 61 74 65 5f 63 61 63 68 65 0a 53 79 6e 74 |idate_cache.Synt| 00018800 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00018810 63 6f 6c 6f 75 72 74 72 61 6e 5f 69 6e 76 61 6c |colourtran_inval| 00018820 69 64 61 74 65 5f 63 61 63 68 65 20 28 76 6f 69 |idate_cache (voi| 00018830 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6c |d);.Header:.<col| 00018840 6f 75 72 74 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 |ourtran.h=>colou| 00018850 72 74 72 61 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e |rtran_h>..Return| 00018860 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00018870 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00018880 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00018890 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 |nction should be| 000188a0 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 | called when the| 000188b0 20 70 61 6c 65 74 74 65 20 68 61 73 20 63 68 61 | palette has cha| 000188c0 6e 67 65 64 20 73 69 6e 63 65 20 61 20 63 61 6c |nged since a cal| 000188d0 6c 20 77 61 73 20 6c 61 73 74 20 6d 61 64 65 20 |l was last made | 000188e0 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 6e |to a function in| 000188f0 20 74 68 69 73 20 6d 6f 64 75 6c 65 2e 00 00 00 | this module....| 00018900 44 41 54 41 66 01 00 00 63 6f 6c 6f 75 72 74 72 |DATAf...colourtr| 00018910 61 6e 5f 72 65 74 75 72 6e 5f 63 6f 6c 6f 75 72 |an_return_colour| 00018920 6e 75 6d 62 65 72 0a 53 79 6e 74 61 78 3a 09 3c |number.Syntax:.<| 00018930 6f 73 5f 65 72 72 6f 72 3e 20 2a 63 6f 6c 6f 75 |os_error> *colou| 00018940 72 74 72 61 6e 5f 72 65 74 75 72 6e 5f 63 6f 6c |rtran_return_col| 00018950 6f 75 72 6e 75 6d 62 65 72 20 28 3c 77 69 6d 70 |ournumber (<wimp| 00018960 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e 20 65 6e |_paletteword> en| 00018970 74 72 79 2c 20 69 6e 74 20 2a 63 6f 6c 29 3b 0a |try, int *col);.| 00018980 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 |Header:.<colourt| 00018990 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 |ran.h=>colourtra| 000189a0 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |n_h>..Returns:.P| 000189b0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000189c0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000189d0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 000189e0 6f 6e 20 69 6e 66 6f 72 6d 73 20 79 6f 75 20 6f |on informs you o| 000189f0 66 20 74 68 65 20 63 6c 6f 73 65 73 74 20 63 6f |f the closest co| 00018a00 6c 6f 75 72 20 6e 75 6d 62 65 72 20 69 6e 20 74 |lour number in t| 00018a10 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 |he current mode | 00018a20 74 6f 20 61 20 67 69 76 65 6e 20 70 61 6c 65 74 |to a given palet| 00018a30 74 65 20 65 6e 74 72 79 2e 20 54 68 65 20 63 6f |te entry. The co| 00018a40 6c 6f 75 72 20 6e 75 6d 62 65 72 20 69 73 20 72 |lour number is r| 00018a50 65 74 75 72 6e 65 64 20 69 6e 20 7b 2f 7d 2a 63 |eturned in {/}*c| 00018a60 6f 6c 7b 2f 7d 2e 00 00 44 41 54 41 93 01 00 00 |ol{/}...DATA....| 00018a70 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 |colourtran_retur| 00018a80 6e 5f 47 43 4f 4c 66 6f 72 6d 6f 64 65 0a 53 79 |n_GCOLformode.Sy| 00018a90 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00018aa0 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 | *colourtran_ret| 00018ab0 75 72 6e 5f 47 43 4f 4c 66 6f 72 6d 6f 64 65 20 |urn_GCOLformode | 00018ac0 28 3c 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f |(<wimp_palettewo| 00018ad0 72 64 3e 20 65 6e 74 72 79 2c 20 69 6e 74 20 64 |rd> entry, int d| 00018ae0 65 73 74 6d 6f 64 65 2c 20 77 69 6d 70 5f 70 61 |estmode, wimp_pa| 00018af0 6c 65 74 74 65 77 6f 72 64 20 2a 64 65 73 74 70 |letteword *destp| 00018b00 61 6c 2c 20 69 6e 74 20 2a 67 63 6f 6c 29 3b 0a |al, int *gcol);.| 00018b10 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 |Header:.<colourt| 00018b20 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 |ran.h=>colourtra| 00018b30 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |n_h>..Returns:.P| 00018b40 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00018b50 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00018b60 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00018b70 6f 6e 20 69 6e 66 6f 72 6d 73 20 79 6f 75 20 6f |on informs you o| 00018b80 66 20 74 68 65 20 63 6c 6f 73 65 73 74 20 47 43 |f the closest GC| 00018b90 4f 4c 20 74 6f 20 61 20 67 69 76 65 6e 20 70 61 |OL to a given pa| 00018ba0 6c 65 74 74 65 20 65 6e 74 72 79 2c 20 64 65 73 |lette entry, des| 00018bb0 74 69 6e 61 74 69 6f 6e 20 6d 6f 64 65 20 61 6e |tination mode an| 00018bc0 64 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 70 61 |d destination pa| 00018bd0 6c 65 74 74 65 2e 20 54 68 65 20 47 43 4f 4c 20 |lette. The GCOL | 00018be0 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b |is returned in {| 00018bf0 2f 7d 2a 67 63 6f 6c 7b 2f 7d 2e 00 44 41 54 41 |/}*gcol{/}..DATA| 00018c00 4f 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 |O...colourtran_r| 00018c10 65 74 75 72 6e 5f 4f 70 70 47 43 4f 4c 0a 53 79 |eturn_OppGCOL.Sy| 00018c20 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00018c30 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 | *colourtran_ret| 00018c40 75 72 6e 5f 4f 70 70 47 43 4f 4c 20 28 3c 77 69 |urn_OppGCOL (<wi| 00018c50 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e 20 |mp_paletteword> | 00018c60 65 6e 74 72 79 2c 20 69 6e 74 20 2a 67 63 6f 6c |entry, int *gcol| 00018c70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f |);.Header:.<colo| 00018c80 75 72 74 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 |urtran.h=>colour| 00018c90 74 72 61 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |tran_h>..Returns| 00018ca0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00018cb0 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00018cc0 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00018cd0 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 73 20 79 6f |ction informs yo| 00018ce0 75 20 6f 66 20 74 68 65 20 66 75 72 74 68 65 73 |u of the furthes| 00018cf0 74 20 47 43 4f 4c 20 69 6e 20 74 68 65 20 63 75 |t GCOL in the cu| 00018d00 72 72 65 6e 74 20 6d 6f 64 65 20 66 72 6f 6d 20 |rrent mode from | 00018d10 61 20 67 69 76 65 6e 20 70 61 6c 65 74 74 65 20 |a given palette | 00018d20 65 6e 74 72 79 2e 20 54 68 65 20 47 43 4f 4c 20 |entry. The GCOL | 00018d30 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b |is returned in {| 00018d40 2f 7d 2a 67 63 6f 6c 7b 2f 7d 2e 00 44 41 54 41 |/}*gcol{/}..DATA| 00018d50 0d 02 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 |....colourtran_r| 00018d60 65 74 75 72 6e 66 6f 6e 74 63 6f 6c 6f 75 72 73 |eturnfontcolours| 00018d70 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00018d80 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f |or> *colourtran_| 00018d90 72 65 74 75 72 6e 66 6f 6e 74 63 6f 6c 6f 75 72 |returnfontcolour| 00018da0 73 20 28 3c 66 6f 6e 74 3e 20 2a 68 61 6e 64 6c |s (<font> *handl| 00018db0 65 2c 20 3c 77 69 6d 70 5f 70 61 6c 65 74 74 65 |e, <wimp_palette| 00018dc0 77 6f 72 64 3e 20 2a 62 61 63 6b 67 6e 64 2c 20 |word> *backgnd, | 00018dd0 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 |wimp_paletteword| 00018de0 20 2a 66 6f 72 65 67 6e 64 2c 20 69 6e 74 20 2a | *foregnd, int *| 00018df0 6d 61 78 5f 6f 66 66 73 65 74 29 3b 0a 48 65 61 |max_offset);.Hea| 00018e00 64 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 6e |der:.<colourtran| 00018e10 2e 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 |.h=>colourtran_h| 00018e20 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00018e30 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 00018e40 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 00018e50 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00018e60 69 6e 66 6f 72 6d 73 20 79 6f 75 20 6f 66 20 66 |informs you of f| 00018e70 6f 6e 74 20 63 6f 6c 6f 75 72 73 20 74 6f 20 6d |ont colours to m| 00018e80 61 74 63 68 20 74 68 65 20 67 69 76 65 6e 20 63 |atch the given c| 00018e90 6f 6c 6f 75 72 73 2e 20 54 68 65 20 63 6c 6f 73 |olours. The clos| 00018ea0 65 73 20 61 70 70 72 6f 78 69 6d 61 74 69 6f 6e |es approximation| 00018eb0 73 20 74 6f 20 66 6f 72 65 2f 62 61 63 6b 67 72 |s to fore/backgr| 00018ec0 6f 75 6e 64 20 63 6f 6c 6f 75 72 73 20 77 69 6c |ound colours wil| 00018ed0 6c 20 62 65 20 73 65 74 2c 20 61 6e 64 20 61 73 |l be set, and as| 00018ee0 20 6d 61 6e 79 20 69 6e 74 65 72 6d 65 64 69 61 | many intermedia| 00018ef0 74 65 20 63 6f 6c 6f 75 72 73 20 61 73 20 70 6f |te colours as po| 00018f00 73 73 69 62 6c 65 20 28 75 70 20 74 6f 20 61 20 |ssible (up to a | 00018f10 6d 61 78 69 6d 75 6d 20 6f 66 20 7b 2f 7d 2a 6d |maximum of {/}*m| 00018f20 61 78 5f 6f 66 66 73 65 74 7b 2f 7d 29 2e 20 56 |ax_offset{/}). V| 00018f30 61 6c 75 65 73 20 61 72 65 20 72 65 74 75 6e 65 |alues are retune| 00018f40 64 20 74 68 72 6f 75 67 68 20 74 68 65 20 70 61 |d through the pa| 00018f50 72 61 6d 65 74 65 72 73 2e 00 00 00 44 41 54 41 |rameters....DATA| 00018f60 5d 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 |]...colourtran_r| 00018f70 65 74 75 72 6e 47 43 4f 4c 0a 53 79 6e 74 61 78 |eturnGCOL.Syntax| 00018f80 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 63 6f |:.<os_error> *co| 00018f90 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 6e 47 |lourtran_returnG| 00018fa0 43 4f 4c 20 28 3c 77 69 6d 70 5f 70 61 6c 65 74 |COL (<wimp_palet| 00018fb0 74 65 77 6f 72 64 3e 20 65 6e 74 72 79 2c 20 69 |teword> entry, i| 00018fc0 6e 74 20 2a 67 63 6f 6c 29 3b 0a 48 65 61 64 65 |nt *gcol);.Heade| 00018fd0 72 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 |r:.<colourtran.h| 00018fe0 3d 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a |=>colourtran_h>.| 00018ff0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00019000 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00019010 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00019020 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e |This function in| 00019030 66 6f 72 6d 73 20 79 6f 75 20 6f 66 20 74 68 65 |forms you of the| 00019040 20 63 6c 6f 73 65 73 74 20 47 43 4f 4c 20 69 6e | closest GCOL in| 00019050 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 64 | the current mod| 00019060 65 20 74 6f 20 61 20 67 69 76 65 6e 20 70 61 6c |e to a given pal| 00019070 65 74 74 65 20 65 6e 74 72 79 2e 20 54 68 65 20 |ette entry. The | 00019080 47 43 4f 4c 20 76 61 6c 75 65 20 69 73 20 72 65 |GCOL value is re| 00019090 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 76 61 |turned in the va| 000190a0 72 69 61 62 6c 65 20 70 6f 69 6e 74 65 64 20 74 |riable pointed t| 000190b0 6f 20 2f 67 63 6f 6c 2f 2e 00 00 00 44 41 54 41 |o /gcol/....DATA| 000190c0 82 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 |....colourtran_s| 000190d0 65 6c 65 63 74 5f 47 43 4f 4c 74 61 62 6c 65 0a |elect_GCOLtable.| 000190e0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000190f0 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 |r> *colourtran_s| 00019100 65 6c 65 63 74 5f 47 43 4f 4c 74 61 62 6c 65 20 |elect_GCOLtable | 00019110 28 69 6e 74 20 73 72 63 6d 6f 64 65 2c 20 3c 77 |(int srcmode, <w| 00019120 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e |imp_paletteword>| 00019130 20 2a 73 72 63 70 61 6c 2c 20 69 6e 74 20 64 65 | *srcpal, int de| 00019140 73 74 6d 6f 64 65 2c 20 77 69 6d 70 5f 70 61 6c |stmode, wimp_pal| 00019150 65 74 74 65 77 6f 72 64 20 2a 64 65 73 74 70 61 |etteword *destpa| 00019160 6c 2c 20 76 6f 69 64 20 2a 62 75 66 66 65 72 29 |l, void *buffer)| 00019170 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f 75 |;.Header:.<colou| 00019180 72 74 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 74 |rtran.h=>colourt| 00019190 72 61 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |ran_h>..Returns:| 000191a0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000191b0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000191c0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000191d0 74 69 6f 6e 20 73 65 74 73 20 75 70 20 61 20 6c |tion sets up a l| 000191e0 69 73 74 20 6f 66 20 47 43 4f 4c 73 20 69 6e 20 |ist of GCOLs in | 000191f0 61 20 62 75 66 66 65 72 2c 20 67 69 76 65 6e 20 |a buffer, given | 00019200 61 20 73 6f 75 72 63 65 20 6d 6f 64 65 20 61 6e |a source mode an| 00019210 64 20 70 61 6c 65 74 74 65 2c 20 61 6e 64 20 61 |d palette, and a| 00019220 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 6d 6f 64 | destination mod| 00019230 65 20 61 6e 64 20 70 61 6c 65 74 74 65 2e 00 00 |e and palette...| 00019240 44 41 54 41 7e 01 00 00 63 6f 6c 6f 75 72 74 72 |DATA~...colourtr| 00019250 61 6e 5f 73 65 6c 65 63 74 5f 74 61 62 6c 65 0a |an_select_table.| 00019260 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00019270 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 |r> *colourtran_s| 00019280 65 6c 65 63 74 5f 74 61 62 6c 65 20 28 69 6e 74 |elect_table (int| 00019290 20 73 72 63 6d 6f 64 65 2c 20 3c 77 69 6d 70 5f | srcmode, <wimp_| 000192a0 70 61 6c 65 74 74 65 77 6f 72 64 3e 20 2a 73 72 |paletteword> *sr| 000192b0 63 70 61 6c 2c 20 69 6e 74 20 64 65 73 74 6d 6f |cpal, int destmo| 000192c0 64 65 2c 20 77 69 6d 70 5f 70 61 6c 65 74 74 65 |de, wimp_palette| 000192d0 77 6f 72 64 20 2a 64 65 73 74 70 61 6c 2c 20 76 |word *destpal, v| 000192e0 6f 69 64 20 2a 62 75 66 66 65 72 29 3b 0a 48 65 |oid *buffer);.He| 000192f0 61 64 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 |ader:.<colourtra| 00019300 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f |n.h=>colourtran_| 00019310 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 50 6f 69 |h>..Returns: Poi| 00019320 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00019330 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00019340 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00019350 20 73 65 74 73 20 75 70 20 61 20 74 72 61 6e 73 | sets up a trans| 00019360 6c 61 74 69 6f 6e 20 74 61 62 6c 65 20 69 6e 20 |lation table in | 00019370 61 20 62 75 66 66 65 72 2c 20 67 69 76 65 6e 20 |a buffer, given | 00019380 61 20 73 6f 75 72 63 65 20 6d 6f 64 65 20 61 6e |a source mode an| 00019390 64 20 70 61 6c 65 74 74 65 2c 20 61 6e 64 20 61 |d palette, and a| 000193a0 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 6d 6f 64 | destination mod| 000193b0 65 20 61 6e 64 20 70 61 6c 65 74 74 65 2e 00 00 |e and palette...| 000193c0 44 41 54 41 4c 02 00 00 63 6f 6c 6f 75 72 74 72 |DATAL...colourtr| 000193d0 61 6e 5f 73 65 74 66 6f 6e 74 63 6f 6c 6f 75 72 |an_setfontcolour| 000193e0 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |s.Syntax:.<os_er| 000193f0 72 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 6e |ror> *colourtran| 00019400 5f 73 65 74 66 6f 6e 74 63 6f 6c 6f 75 72 73 20 |_setfontcolours | 00019410 28 3c 66 6f 6e 74 3e 20 2a 68 61 6e 64 6c 65 2c |(<font> *handle,| 00019420 20 3c 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f | <wimp_palettewo| 00019430 72 64 3e 20 2a 62 61 63 6b 67 6e 64 2c 20 77 69 |rd> *backgnd, wi| 00019440 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 20 2a |mp_paletteword *| 00019450 66 6f 72 65 67 6e 64 2c 20 69 6e 74 20 2a 6d 61 |foregnd, int *ma| 00019460 78 5f 6f 66 66 73 65 74 29 3b 0a 48 65 61 64 65 |x_offset);.Heade| 00019470 72 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 |r:.<colourtran.h| 00019480 3d 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a |=>colourtran_h>.| 00019490 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000194a0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000194b0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000194c0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e |This function in| 000194d0 66 6f 72 6d 73 20 79 6f 75 20 6f 66 20 66 6f 6e |forms you of fon| 000194e0 74 20 63 6f 6c 6f 75 72 73 20 74 6f 20 6d 61 74 |t colours to mat| 000194f0 63 68 20 74 68 65 20 67 69 76 65 6e 20 63 6f 6c |ch the given col| 00019500 6f 75 72 73 2e 20 54 68 65 20 63 6c 6f 73 65 73 |ours. The closes| 00019510 20 61 70 70 72 6f 78 69 6d 61 74 69 6f 6e 73 20 | approximations | 00019520 74 6f 20 66 6f 72 65 2f 62 61 63 6b 67 72 6f 75 |to fore/backgrou| 00019530 6e 64 20 63 6f 6c 6f 75 72 73 20 77 69 6c 6c 20 |nd colours will | 00019540 62 65 20 73 65 74 2c 20 61 6e 64 20 61 73 20 6d |be set, and as m| 00019550 61 6e 79 20 69 6e 74 65 72 6d 65 64 69 61 74 65 |any intermediate| 00019560 20 63 6f 6c 6f 75 72 73 20 61 73 20 70 6f 73 73 | colours as poss| 00019570 69 62 6c 65 20 28 75 70 20 74 6f 20 61 20 6d 61 |ible (up to a ma| 00019580 78 69 6d 75 6d 20 6f 66 20 7b 2f 7d 2a 6d 61 78 |ximum of {/}*max| 00019590 5f 6f 66 66 73 65 74 7b 2f 7d 29 2e 20 56 61 6c |_offset{/}). Val| 000195a0 75 65 73 20 61 72 65 20 72 65 74 75 6e 65 64 20 |ues are retuned | 000195b0 74 68 72 6f 75 67 68 20 74 68 65 20 70 61 72 61 |through the para| 000195c0 6d 65 74 65 72 73 2e 20 7b 2a 7d 46 6f 6e 74 5f |meters. {*}Font_| 000195d0 73 65 74 66 6f 6e 74 63 6f 6c 6f 75 72 73 28 29 |setfontcolours()| 000195e0 7b 2a 7d 20 69 73 20 74 68 65 6e 20 63 61 6c 6c |{*} is then call| 000195f0 65 64 20 77 69 74 68 20 74 68 65 73 65 20 61 73 |ed with these as| 00019600 20 70 61 72 61 6d 65 74 65 72 73 2e 44 41 54 41 | parameters.DATA| 00019610 ec 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 |....colourtran_s| 00019620 65 74 47 43 4f 4c 0a 53 79 6e 74 61 78 3a 09 3c |etGCOL.Syntax:.<| 00019630 6f 73 5f 65 72 72 6f 72 3e 20 2a 63 6f 6c 6f 75 |os_error> *colou| 00019640 72 74 72 61 6e 5f 73 65 74 47 43 4f 4c 20 28 3c |rtran_setGCOL (<| 00019650 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 |wimp_paletteword| 00019660 3e 20 65 6e 74 72 79 2c 20 69 6e 74 20 62 61 63 |> entry, int bac| 00019670 6b 2c 20 69 6e 74 20 67 63 6f 6c 5f 69 6e 2c 20 |k, int gcol_in, | 00019680 69 6e 74 20 2a 67 63 6f 6c 5f 6f 75 74 29 3b 0a |int *gcol_out);.| 00019690 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 |Header:.<colourt| 000196a0 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 |ran.h=>colourtra| 000196b0 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |n_h>..Returns:.P| 000196c0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000196d0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000196e0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 000196f0 6f 6e 20 69 6e 66 6f 72 6d 73 20 79 6f 75 20 6f |on informs you o| 00019700 66 20 74 68 65 20 63 6c 6f 73 65 73 74 20 47 43 |f the closest GC| 00019710 4f 4c 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e |OL in the curren| 00019720 74 20 6d 6f 64 65 20 74 6f 20 61 20 67 69 76 65 |t mode to a give| 00019730 6e 20 70 61 6c 65 74 74 65 20 65 6e 74 72 79 2c |n palette entry,| 00019740 20 61 6e 64 20 61 6c 73 6f 20 73 65 74 73 20 74 | and also sets t| 00019750 68 65 20 47 43 4f 4c 2e 20 2f 62 61 63 6b 2f 20 |he GCOL. /back/ | 00019760 73 68 6f 75 6c 64 20 62 65 20 30 20 74 6f 20 73 |should be 0 to s| 00019770 65 74 20 61 20 66 6f 72 65 67 72 6f 75 6e 64 20 |et a foreground | 00019780 63 6f 6c 6f 75 72 2c 20 6f 72 20 31 32 38 20 74 |colour, or 128 t| 00019790 6f 20 73 65 74 20 61 20 62 61 63 6b 67 72 6f 75 |o set a backgrou| 000197a0 6e 64 20 63 6f 6c 6f 75 72 2e 20 7b 2f 7d 67 63 |nd colour. {/}gc| 000197b0 6f 6c 5f 69 6e 7b 2f 7d 20 69 73 20 74 68 65 20 |ol_in{/} is the | 000197c0 47 43 4f 4c 20 61 63 74 69 6f 6e 20 61 6e 64 20 |GCOL action and | 000197d0 74 68 65 20 47 43 4f 4c 20 69 73 20 72 65 74 75 |the GCOL is retu| 000197e0 72 6e 65 64 20 69 6e 20 7b 2f 7d 2a 67 63 6f 6c |rned in {/}*gcol| 000197f0 5f 6f 75 74 7b 2f 7d 2e 44 41 54 41 12 02 00 00 |_out{/}.DATA....| 00019800 63 6f 6c 6f 75 72 74 72 61 6e 5f 73 65 74 4f 70 |colourtran_setOp| 00019810 70 47 43 4f 4c 0a 53 79 6e 74 61 78 3a 20 20 3c |pGCOL.Syntax: <| 00019820 6f 73 5f 65 72 72 6f 72 3e 20 2a 63 6f 6c 6f 75 |os_error> *colou| 00019830 72 74 72 61 6e 5f 73 65 74 4f 70 70 47 43 4f 4c |rtran_setOppGCOL| 00019840 0a 20 20 20 20 20 20 20 20 20 28 3c 77 69 6d 70 |. (<wimp| 00019850 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e 20 65 6e |_paletteword> en| 00019860 74 72 79 2c 20 69 6e 74 20 62 61 63 6b 2c 0a 20 |try, int back,. | 00019870 20 20 20 20 20 20 20 20 69 6e 74 20 67 63 6f 6c | int gcol| 00019880 5f 69 6e 2c 20 69 6e 74 20 2a 67 63 6f 6c 5f 6f |_in, int *gcol_o| 00019890 75 74 29 3b 0a 48 65 61 64 65 72 3a 20 20 3c 63 |ut);.Header: <c| 000198a0 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d 3e 63 6f 6c |olourtran.h=>col| 000198b0 6f 75 72 74 72 61 6e 5f 68 3e 0a 0a 52 65 74 75 |ourtran_h>..Retu| 000198c0 72 6e 73 3a 20 50 6f 69 6e 74 65 72 20 74 6f 20 |rns: Pointer to | 000198d0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000198e0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000198f0 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 73 |function informs| 00019900 20 79 6f 75 20 6f 66 20 74 68 65 20 66 75 72 74 | you of the furt| 00019910 68 65 73 74 20 47 43 4f 4c 20 69 6e 20 74 68 65 |hest GCOL in the| 00019920 0a 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 66 72 |.current mode fr| 00019930 6f 6d 20 61 20 67 69 76 65 6e 20 70 61 6c 65 74 |om a given palet| 00019940 74 65 20 65 6e 74 72 79 2e 20 54 68 65 20 47 43 |te entry. The GC| 00019950 4f 4c 20 69 73 0a 72 65 74 75 72 6e 65 64 20 69 |OL is.returned i| 00019960 6e 20 27 2a 67 63 6f 6c 5f 6f 75 74 27 2e 20 49 |n '*gcol_out'. I| 00019970 74 20 61 6c 73 6f 20 73 65 74 73 20 74 68 65 20 |t also sets the | 00019980 47 43 4f 4c 20 77 69 74 68 20 74 68 65 0a 61 63 |GCOL with the.ac| 00019990 74 69 6f 6e 20 27 67 63 6f 6c 5f 69 6e 27 2e 20 |tion 'gcol_in'. | 000199a0 49 66 20 27 62 61 63 6b 27 20 69 73 20 31 32 38 |If 'back' is 128| 000199b0 20 74 68 65 6e 20 74 68 65 20 62 61 63 6b 67 72 | then the backgr| 000199c0 6f 75 6e 64 0a 63 6f 6c 6f 75 72 20 69 73 20 73 |ound.colour is s| 000199d0 65 74 2c 20 65 6c 73 65 20 69 66 20 27 62 61 63 |et, else if 'bac| 000199e0 6b 27 20 69 73 20 30 20 74 68 65 6e 20 74 68 65 |k' is 0 then the| 000199f0 20 66 6f 72 65 67 72 6f 75 6e 64 0a 63 6f 6c 6f | foreground.colo| 00019a00 75 72 20 69 73 20 73 65 74 2e 00 00 44 41 54 41 |ur is set...DATA| 00019a10 a1 01 00 00 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 |....colourtran_r| 00019a20 65 74 75 72 6e 5f 63 6f 6c 6f 75 72 66 6f 72 6d |eturn_colourform| 00019a30 6f 64 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ode.Syntax:.<os_| 00019a40 65 72 72 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 |error> *colourtr| 00019a50 61 6e 5f 72 65 74 75 72 6e 5f 63 6f 6c 6f 75 72 |an_return_colour| 00019a60 66 6f 72 6d 6f 64 65 20 28 3c 77 69 6d 70 5f 70 |formode (<wimp_p| 00019a70 61 6c 65 74 74 65 77 6f 72 64 3e 20 65 6e 74 72 |aletteword> entr| 00019a80 79 2c 20 69 6e 74 20 64 65 73 74 6d 6f 64 65 2c |y, int destmode,| 00019a90 20 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 | wimp_palettewor| 00019aa0 64 20 2a 64 65 73 74 70 61 6c 2c 20 69 6e 74 20 |d *destpal, int | 00019ab0 2a 63 6f 6c 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*col);.Header:.<| 00019ac0 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d 3e 63 6f |colourtran.h=>co| 00019ad0 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a 0a 52 65 74 |lourtran_h>..Ret| 00019ae0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00019af0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00019b00 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00019b10 20 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f 72 6d | function inform| 00019b20 73 20 79 6f 75 20 6f 66 20 74 68 65 20 63 6c 6f |s you of the clo| 00019b30 73 65 73 74 20 63 6f 6c 6f 75 72 20 74 6f 20 61 |sest colour to a| 00019b40 20 67 69 76 65 6e 20 70 61 6c 65 74 74 65 20 65 | given palette e| 00019b50 6e 74 72 79 2c 20 64 65 73 74 69 6e 61 74 69 6f |ntry, destinatio| 00019b60 6e 20 6d 6f 64 65 20 61 6e 64 20 64 65 73 74 69 |n mode and desti| 00019b70 6e 61 74 69 6f 6e 20 70 61 6c 65 74 74 65 2e 20 |nation palette. | 00019b80 54 68 65 20 63 6f 6c 6f 75 72 20 6e 75 6d 62 65 |The colour numbe| 00019b90 72 20 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e |r is returned in| 00019ba0 20 7b 2f 7d 2a 67 63 6f 6c 7b 2f 7d 2e 00 00 00 | {/}*gcol{/}....| 00019bb0 44 41 54 41 75 01 00 00 63 6f 6c 6f 75 72 74 72 |DATAu...colourtr| 00019bc0 61 6e 5f 63 6f 6e 76 65 72 74 5f 64 65 76 69 63 |an_convert_devic| 00019bd0 65 5f 63 6f 6c 6f 75 72 0a 53 79 6e 74 61 78 3a |e_colour.Syntax:| 00019be0 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 63 6f 6c |.<os_error> *col| 00019bf0 6f 75 72 74 72 61 6e 5f 63 6f 6e 76 65 72 74 5f |ourtran_convert_| 00019c00 64 65 76 69 63 65 5f 63 6f 6c 6f 75 72 20 28 3c |device_colour (<| 00019c10 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 |wimp_paletteword| 00019c20 3e 20 64 76 63 65 2c 20 77 69 6d 70 5f 70 61 6c |> dvce, wimp_pal| 00019c30 65 74 74 65 77 6f 72 64 20 2a 72 67 62 29 3b 0a |etteword *rgb);.| 00019c40 48 65 61 64 65 72 3a 09 3c 63 6f 6c 6f 75 72 74 |Header:.<colourt| 00019c50 72 61 6e 2e 68 3d 3e 63 6f 6c 6f 75 72 74 72 61 |ran.h=>colourtra| 00019c60 6e 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |n_h>..Returns:.P| 00019c70 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00019c80 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00019c90 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00019ca0 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |on converts the | 00019cb0 64 65 76 69 63 65 20 63 6f 6c 6f 75 72 20 69 6e |device colour in| 00019cc0 20 2f 64 76 63 65 2f 20 74 6f 20 61 20 73 74 61 | /dvce/ to a sta| 00019cd0 6e 64 61 72 64 20 52 47 42 20 63 6f 6c 6f 75 72 |ndard RGB colour| 00019ce0 2c 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b 2f |, returned in {/| 00019cf0 7d 2a 72 67 62 7b 2f 7d 2e 20 49 74 20 75 73 65 |}*rgb{/}. It use| 00019d00 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 61 |s the current ca| 00019d10 6c 69 62 72 61 74 69 6f 6e 20 74 6f 20 63 6f 6e |libration to con| 00019d20 76 65 72 74 2e 00 00 00 44 41 54 41 aa 01 00 00 |vert....DATA....| 00019d30 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 |colourtran_retur| 00019d40 6e 5f 4f 70 70 63 6f 6c 6f 75 72 66 6f 72 6d 6f |n_Oppcolourformo| 00019d50 64 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |de.Syntax:.<os_e| 00019d60 72 72 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 |rror> *colourtra| 00019d70 6e 5f 72 65 74 75 72 6e 5f 4f 70 70 63 6f 6c 6f |n_return_Oppcolo| 00019d80 75 72 66 6f 72 6d 6f 64 65 20 28 3c 77 69 6d 70 |urformode (<wimp| 00019d90 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e 20 65 6e |_paletteword> en| 00019da0 74 72 79 2c 20 69 6e 74 20 64 65 73 74 6d 6f 64 |try, int destmod| 00019db0 65 2c 20 77 69 6d 70 5f 70 61 6c 65 74 74 65 77 |e, wimp_palettew| 00019dc0 6f 72 64 20 2a 64 65 73 74 70 61 6c 2c 20 69 6e |ord *destpal, in| 00019dd0 74 20 2a 63 6f 6c 29 3b 0a 48 65 61 64 65 72 3a |t *col);.Header:| 00019de0 09 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d 3e |.<colourtran.h=>| 00019df0 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a 0a 52 |colourtran_h>..R| 00019e00 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00019e10 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00019e20 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00019e30 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f |is function info| 00019e40 72 6d 73 20 79 6f 75 20 6f 66 20 74 68 65 20 66 |rms you of the f| 00019e50 75 72 74 68 65 73 74 20 63 6f 6c 6f 75 72 20 66 |urthest colour f| 00019e60 72 6f 6d 20 61 20 67 69 76 65 6e 20 70 61 6c 65 |rom a given pale| 00019e70 74 74 65 20 65 6e 74 72 79 2c 20 64 65 73 74 69 |tte entry, desti| 00019e80 6e 61 74 69 6f 6e 20 6d 6f 64 65 20 61 6e 64 20 |nation mode and | 00019e90 64 65 73 74 69 6e 61 74 69 6f 6e 20 70 61 6c 65 |destination pale| 00019ea0 74 74 65 2e 20 54 68 65 20 63 6f 6c 6f 75 72 20 |tte. The colour | 00019eb0 6e 75 6d 62 65 72 20 69 73 20 72 65 74 75 72 6e |number is return| 00019ec0 65 64 20 69 6e 20 7b 2f 7d 2a 67 63 6f 6c 7b 2f |ed in {/}*gcol{/| 00019ed0 7d 2e 00 00 44 41 54 41 61 01 00 00 63 6f 6c 6f |}...DATAa...colo| 00019ee0 75 72 74 72 61 6e 5f 72 65 74 75 72 6e 5f 4f 70 |urtran_return_Op| 00019ef0 70 63 6f 6c 6f 75 72 6e 75 6d 62 65 72 0a 53 79 |pcolournumber.Sy| 00019f00 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00019f10 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 | *colourtran_ret| 00019f20 75 72 6e 5f 4f 70 70 63 6f 6c 6f 75 72 6e 75 6d |urn_Oppcolournum| 00019f30 62 65 72 20 28 3c 77 69 6d 70 5f 70 61 6c 65 74 |ber (<wimp_palet| 00019f40 74 65 77 6f 72 64 3e 20 65 6e 74 72 79 2c 20 69 |teword> entry, i| 00019f50 6e 74 20 2a 63 6f 6c 29 3b 0a 48 65 61 64 65 72 |nt *col);.Header| 00019f60 3a 09 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d |:.<colourtran.h=| 00019f70 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a 0a |>colourtran_h>..| 00019f80 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00019f90 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00019fa0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00019fb0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 66 |his function inf| 00019fc0 6f 72 6d 73 20 79 6f 75 20 6f 66 20 74 68 65 20 |orms you of the | 00019fd0 66 75 72 74 68 65 73 74 20 63 6f 6c 6f 75 72 20 |furthest colour | 00019fe0 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d |in the current m| 00019ff0 6f 64 65 20 66 72 6f 6d 20 61 20 67 69 76 65 6e |ode from a given| 0001a000 20 70 61 6c 65 74 74 65 20 65 6e 74 72 79 2e 20 | palette entry. | 0001a010 54 68 65 20 63 6f 6c 6f 75 72 20 69 73 20 72 65 |The colour is re| 0001a020 74 75 72 6e 65 64 20 69 6e 20 7b 2f 7d 2a 63 6f |turned in {/}*co| 0001a030 6c 7b 2f 7d 2e 00 00 00 44 41 54 41 9c 01 00 00 |l{/}....DATA....| 0001a040 63 6f 6c 6f 75 72 74 72 61 6e 5f 72 65 74 75 72 |colourtran_retur| 0001a050 6e 5f 4f 70 70 47 43 4f 4c 66 6f 72 6d 6f 64 65 |n_OppGCOLformode| 0001a060 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 0001a070 6f 72 3e 20 2a 63 6f 6c 6f 75 72 74 72 61 6e 5f |or> *colourtran_| 0001a080 72 65 74 75 72 6e 5f 4f 70 70 47 43 4f 4c 66 6f |return_OppGCOLfo| 0001a090 72 6d 6f 64 65 20 28 3c 77 69 6d 70 5f 70 61 6c |rmode (<wimp_pal| 0001a0a0 65 74 74 65 77 6f 72 64 3e 20 65 6e 74 72 79 2c |etteword> entry,| 0001a0b0 20 69 6e 74 20 64 65 73 74 6d 6f 64 65 2c 20 77 | int destmode, w| 0001a0c0 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 20 |imp_paletteword | 0001a0d0 2a 64 65 73 74 70 61 6c 2c 20 69 6e 74 20 2a 67 |*destpal, int *g| 0001a0e0 63 6f 6c 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 |col);.Header:.<c| 0001a0f0 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d 3e 63 6f 6c |olourtran.h=>col| 0001a100 6f 75 72 74 72 61 6e 5f 68 3e 0a 0a 52 65 74 75 |ourtran_h>..Retu| 0001a110 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0001a120 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0001a130 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0001a140 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 73 |function informs| 0001a150 20 79 6f 75 20 6f 66 20 74 68 65 20 66 75 72 74 | you of the furt| 0001a160 68 65 73 74 20 47 43 4f 4c 20 66 72 6f 6d 20 61 |hest GCOL from a| 0001a170 20 67 69 76 65 6e 20 70 61 6c 65 74 74 65 20 65 | given palette e| 0001a180 6e 74 72 79 2c 20 64 65 73 74 69 6e 61 74 69 6f |ntry, destinatio| 0001a190 6e 20 6d 6f 64 65 20 61 6e 64 20 64 65 73 74 69 |n mode and desti| 0001a1a0 6e 61 74 69 6f 6e 20 70 61 6c 65 74 74 65 2e 20 |nation palette. | 0001a1b0 54 68 65 20 47 43 4f 4c 20 69 73 20 72 65 74 75 |The GCOL is retu| 0001a1c0 72 6e 65 64 20 69 6e 20 7b 2f 7d 2a 67 63 6f 6c |rned in {/}*gcol| 0001a1d0 7b 2f 7d 2e 44 49 52 24 fc 00 00 00 fc 00 00 00 |{/}.DIR$........| 0001a1e0 d0 a2 01 00 46 ff ff ff 66 4c f0 24 61 01 00 00 |....F...fL.$a...| 0001a1f0 13 00 00 00 00 00 00 00 53 65 74 47 43 4f 4c 00 |........SetGCOL.| 0001a200 34 a4 01 00 46 ff ff ff b9 8f f0 24 36 01 00 00 |4...F......$6...| 0001a210 13 00 00 00 00 00 00 00 49 6e 76 61 6c 69 64 61 |........Invalida| 0001a220 74 65 43 61 63 68 65 00 6c a5 01 00 46 ff ff ff |teCache.l...F...| 0001a230 18 98 f0 24 9c 01 00 00 13 00 00 00 00 00 00 00 |...$............| 0001a240 53 65 6c 65 63 74 54 61 62 6c 65 00 08 a7 01 00 |SelectTable.....| 0001a250 46 ff ff ff 01 a6 f0 24 77 02 00 00 13 00 00 00 |F......$w.......| 0001a260 00 00 00 00 52 65 74 75 72 6e 46 6f 6e 74 43 6f |....ReturnFontCo| 0001a270 6c 6f 75 72 73 00 00 00 80 a9 01 00 46 ff ff ff |lours.......F...| 0001a280 65 bb f0 24 de 01 00 00 13 00 00 00 00 00 00 00 |e..$............| 0001a290 52 65 74 75 72 6e 43 6f 6c 6f 75 72 4e 75 6d 62 |ReturnColourNumb| 0001a2a0 65 72 46 6f 72 4d 6f 64 65 00 00 00 60 ab 01 00 |erForMode...`...| 0001a2b0 46 ff ff ff 46 c6 f0 24 55 01 00 00 13 00 00 00 |F...F..$U.......| 0001a2c0 00 00 00 00 66 6f 6e 74 62 6c 6f 63 6b 00 00 00 |....fontblock...| 0001a2d0 44 41 54 41 61 01 00 00 43 6f 6c 6f 75 72 54 72 |DATAa...ColourTr| 0001a2e0 61 6e 73 5f 53 65 74 47 43 4f 4c 0a 53 79 6e 74 |ans_SetGCOL.Synt| 0001a2f0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0001a300 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 47 |ColourTrans_SetG| 0001a310 43 4f 4c 20 28 69 6e 74 20 70 61 6c 65 74 74 65 |COL (int palette| 0001a320 2c 20 69 6e 74 20 3c 66 6c 61 67 73 3d 3e 63 74 |, int <flags=>ct| 0001a330 5f 66 6c 61 67 73 5f 3e 2c 20 69 6e 74 20 3c 61 |_flags_>, int <a| 0001a340 63 74 69 6f 6e 3d 3e 56 44 55 3a 31 38 61 3e 29 |ction=>VDU:18a>)| 0001a350 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0001a360 69 62 3a 43 6f 6c 6f 75 72 54 72 61 6e 2e 68 3d |ib:ColourTran.h=| 0001a370 3e 43 6f 6c 6f 75 72 54 72 61 6e 3e 0a 0a 52 65 |>ColourTran>..Re| 0001a380 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 0001a390 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 0001a3a0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 0001a3b0 73 20 66 75 6e 63 74 69 6f 6e 20 77 6f 72 6b 73 |s function works| 0001a3c0 20 6f 75 74 20 74 68 65 20 63 6c 6f 73 65 73 74 | out the closest| 0001a3d0 20 47 43 4f 4c 20 69 6e 20 74 68 65 20 63 75 72 | GCOL in the cur| 0001a3e0 72 65 6e 74 20 6d 6f 64 65 20 74 6f 20 61 20 67 |rent mode to a g| 0001a3f0 69 76 65 6e 20 3c 70 61 6c 65 74 74 65 20 65 6e |iven <palette en| 0001a400 74 72 79 3d 3e 63 74 5f 70 61 6c 65 6e 74 5f 3e |try=>ct_palent_>| 0001a410 20 28 69 6e 20 7b 2f 7d 70 61 6c 65 74 74 65 7b | (in {/}palette{| 0001a420 2f 7d 29 2c 20 61 6e 64 20 73 65 74 73 20 69 74 |/}), and sets it| 0001a430 2e 00 00 00 44 41 54 41 36 01 00 00 43 6f 6c 6f |....DATA6...Colo| 0001a440 75 72 54 72 61 6e 73 5f 49 6e 76 61 6c 69 64 61 |urTrans_Invalida| 0001a450 74 65 43 61 63 68 65 0a 53 79 6e 74 61 78 3a 09 |teCache.Syntax:.| 0001a460 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 43 6f 6c 6f |<os_error> *Colo| 0001a470 75 72 54 72 61 6e 73 5f 49 6e 76 61 6c 69 64 61 |urTrans_Invalida| 0001a480 74 65 43 61 63 68 65 20 28 76 6f 69 64 29 3b 0a |teCache (void);.| 0001a490 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0001a4a0 3a 43 6f 6c 6f 75 72 54 72 61 6e 2e 68 3d 3e 43 |:ColourTran.h=>C| 0001a4b0 6f 6c 6f 75 72 54 72 61 6e 3e 0a 0a 52 65 74 75 |olourTran>..Retu| 0001a4c0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0001a4d0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0001a4e0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0001a4f0 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 73 |function informs| 0001a500 20 74 68 65 20 43 6f 6c 6f 75 72 54 72 61 6e 73 | the ColourTrans| 0001a510 20 6d 6f 64 75 6c 65 20 74 68 61 74 20 79 6f 75 | module that you| 0001a520 20 68 61 76 65 20 63 68 61 6e 67 65 64 20 74 68 | have changed th| 0001a530 65 20 70 61 6c 65 74 74 65 2e 20 59 6f 75 20 64 |e palette. You d| 0001a540 6f 20 6e 6f 74 20 6e 65 65 64 20 74 6f 20 64 6f |o not need to do| 0001a550 20 74 68 69 73 20 61 66 74 65 72 20 61 20 6d 6f | this after a mo| 0001a560 64 65 20 63 68 61 6e 67 65 2e 00 00 44 41 54 41 |de change...DATA| 0001a570 9c 01 00 00 43 6f 6c 6f 75 72 54 72 61 6e 73 5f |....ColourTrans_| 0001a580 53 65 6c 65 63 74 54 61 62 6c 65 0a 53 79 6e 74 |SelectTable.Synt| 0001a590 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0001a5a0 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 6c 65 |ColourTrans_Sele| 0001a5b0 63 74 54 61 62 6c 65 20 28 69 6e 74 20 73 72 63 |ctTable (int src| 0001a5c0 5f 6d 6f 64 65 2c 20 69 6e 74 20 2a 73 72 63 5f |_mode, int *src_| 0001a5d0 70 61 6c 2c 20 69 6e 74 20 64 73 74 5f 6d 6f 64 |pal, int dst_mod| 0001a5e0 65 2c 20 69 6e 74 20 2a 64 73 74 5f 70 61 6c 2c |e, int *dst_pal,| 0001a5f0 20 63 68 61 72 20 2a 74 61 62 6c 65 29 3b 0a 48 | char *table);.H| 0001a600 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0001a610 43 6f 6c 6f 75 72 54 72 61 6e 2e 68 3d 3e 43 6f |ColourTran.h=>Co| 0001a620 6c 6f 75 72 54 72 61 6e 3e 0a 0a 52 65 74 75 72 |lourTran>..Retur| 0001a630 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 0001a640 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 0001a650 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 0001a660 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 75 70 20 |unction sets up | 0001a670 61 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 61 |a translation ta| 0001a680 62 6c 65 20 69 6e 20 61 20 62 75 66 66 65 72 2c |ble in a buffer,| 0001a690 20 66 6f 72 20 73 6f 75 72 63 65 20 61 6e 64 20 | for source and | 0001a6a0 64 65 73 74 69 6e 61 74 69 6f 6e 20 6d 6f 64 65 |destination mode| 0001a6b0 20 61 6e 64 20 70 61 6c 65 74 74 65 20 61 73 20 | and palette as | 0001a6c0 67 69 76 65 6e 2e 0a 0a 4d 6f 64 65 20 61 6e 64 |given...Mode and| 0001a6d0 20 70 61 6c 65 74 74 65 20 70 61 72 61 6d 65 74 | palette paramet| 0001a6e0 65 72 73 20 6d 61 79 20 62 65 20 2d 31 20 74 6f |ers may be -1 to| 0001a6f0 20 75 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 | use the current| 0001a700 20 76 61 6c 75 65 73 2e 44 41 54 41 77 02 00 00 | values.DATAw...| 0001a710 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 75 |ColourTrans_Retu| 0001a720 72 6e 46 6f 6e 74 43 6f 6c 6f 75 72 73 0a 53 79 |rnFontColours.Sy| 0001a730 6e 74 61 78 3a 09 6f 73 5f 65 72 72 6f 72 20 2a |ntax:.os_error *| 0001a740 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 75 |ColourTrans_Retu| 0001a750 72 6e 46 6f 6e 74 43 6f 6c 6f 75 72 73 20 28 3c |rnFontColours (<| 0001a760 63 6f 6c 6f 75 72 74 72 61 6e 73 5f 66 6f 6e 74 |colourtrans_font| 0001a770 62 6c 6f 63 6b 3e 20 2a 66 6f 6e 74 63 6f 6c 73 |block> *fontcols| 0001a780 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0001a790 4c 69 62 3a 43 6f 6c 6f 75 72 54 72 61 6e 2e 68 |Lib:ColourTran.h| 0001a7a0 3d 3e 43 6f 6c 6f 75 72 54 72 61 6e 3e 0a 0a 52 |=>ColourTran>..R| 0001a7b0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0001a7c0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0001a7d0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0001a7e0 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 |is function find| 0001a7f0 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 72 61 |s the maximum ra| 0001a800 6e 67 65 20 6f 66 20 63 6f 6c 6f 75 72 73 20 77 |nge of colours w| 0001a810 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 |hich can be used| 0001a820 20 66 6f 72 20 61 6e 74 69 2d 61 6c 69 61 73 69 | for anti-aliasi| 0001a830 6e 67 20 61 20 66 6f 6e 74 2e 20 49 66 20 61 6e |ng a font. If an| 0001a840 74 69 2d 61 6c 69 61 73 69 6e 67 20 69 73 20 64 |ti-aliasing is d| 0001a850 65 73 69 72 65 64 2c 20 7b 2f 7d 66 6f 6e 74 63 |esired, {/}fontc| 0001a860 6f 6c 73 2d 3e 6d 61 78 7b 2f 7d 20 73 68 6f 75 |ols->max{/} shou| 0001a870 6c 64 20 62 65 20 73 65 74 20 74 6f 20 31 34 20 |ld be set to 14 | 0001a880 6f 6e 20 65 6e 74 72 79 2c 20 6f 74 68 65 72 77 |on entry, otherw| 0001a890 69 73 65 20 69 74 20 73 68 6f 75 6c 64 20 62 65 |ise it should be| 0001a8a0 20 73 65 74 20 74 6f 20 30 2e 20 7b 2f 7d 66 6f | set to 0. {/}fo| 0001a8b0 6e 74 63 6f 6c 73 2d 3e 66 6f 6e 74 7b 2f 7d 20 |ntcols->font{/} | 0001a8c0 73 68 6f 75 6c 64 20 62 65 20 73 65 74 20 74 6f |should be set to| 0001a8d0 20 74 68 65 20 66 6f 6e 74 20 68 61 6e 64 6c 65 | the font handle| 0001a8e0 2c 20 6f 72 20 30 20 66 6f 72 20 74 68 65 20 63 |, or 0 for the c| 0001a8f0 75 72 72 65 6e 74 20 66 6f 6e 74 2c 20 61 6e 64 |urrent font, and| 0001a900 20 74 68 65 20 66 6f 72 65 67 72 6f 75 6e 64 20 | the foreground | 0001a910 61 6e 64 20 62 61 63 6b 67 72 6f 75 6e 64 20 3c |and background <| 0001a920 70 61 6c 65 74 74 65 20 65 6e 74 72 69 65 73 3d |palette entries=| 0001a930 3e 63 74 5f 70 61 6c 65 6e 74 5f 3e 20 73 68 6f |>ct_palent_> sho| 0001a940 75 6c 64 20 62 65 20 70 6c 61 63 65 64 20 69 6e |uld be placed in| 0001a950 20 7b 2f 7d 66 6f 6e 74 63 6f 6c 73 2d 3e 62 61 | {/}fontcols->ba| 0001a960 63 6b 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 66 6f 6e |ck{/} and {/}fon| 0001a970 74 63 6f 6c 73 2d 3e 66 6f 72 65 7b 2f 7d 2e 00 |tcols->fore{/}..| 0001a980 44 41 54 41 de 01 00 00 43 6f 6c 6f 75 72 54 72 |DATA....ColourTr| 0001a990 61 6e 73 5f 52 65 74 75 72 6e 43 6f 6c 6f 75 72 |ans_ReturnColour| 0001a9a0 4e 75 6d 62 65 72 46 6f 72 4d 6f 64 65 0a 53 79 |NumberForMode.Sy| 0001a9b0 6e 74 61 78 3a 09 69 6e 74 20 43 6f 6c 6f 75 72 |ntax:.int Colour| 0001a9c0 54 72 61 6e 73 5f 52 65 74 75 72 6e 43 6f 6c 6f |Trans_ReturnColo| 0001a9d0 75 72 4e 75 6d 62 65 72 46 6f 72 4d 6f 64 65 20 |urNumberForMode | 0001a9e0 28 69 6e 74 20 70 61 6c 65 74 74 65 2c 20 69 6e |(int palette, in| 0001a9f0 74 20 6d 6f 64 65 2c 20 69 6e 74 20 2a 70 61 6c |t mode, int *pal| 0001aa00 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0001aa10 4c 69 62 3a 43 6f 6c 6f 75 72 54 72 61 6e 2e 68 |Lib:ColourTran.h| 0001aa20 3d 3e 43 6f 6c 6f 75 72 54 72 61 6e 3e 0a 0a 52 |=>ColourTran>..R| 0001aa30 65 74 75 72 6e 73 3a 09 2d 31 20 66 6f 72 20 65 |eturns:.-1 for e| 0001aa40 72 72 6f 72 2c 20 6f 72 20 63 6f 6c 6f 75 72 20 |rror, or colour | 0001aa50 6e 75 6d 62 65 72 2e 0a 0a 54 68 69 73 20 66 75 |number...This fu| 0001aa60 6e 63 74 69 6f 6e 2c 20 67 69 76 65 6e 20 61 20 |nction, given a | 0001aa70 3c 70 61 6c 65 74 74 65 20 65 6e 74 72 79 3d 3e |<palette entry=>| 0001aa80 63 74 5f 70 61 6c 65 6e 74 5f 3e 20 69 6e 20 2f |ct_palent_> in /| 0001aa90 70 61 6c 65 74 74 65 2f 2c 20 61 20 64 65 73 74 |palette/, a dest| 0001aaa0 69 6e 61 74 69 6f 6e 20 6d 6f 64 65 20 69 6e 20 |ination mode in | 0001aab0 2f 6d 6f 64 65 2f 20 61 6e 64 20 61 20 70 61 6c |/mode/ and a pal| 0001aac0 65 74 74 65 20 69 6e 20 2f 70 61 6c 2f 2c 20 72 |ette in /pal/, r| 0001aad0 65 74 75 72 6e 73 20 74 68 65 20 63 6c 6f 73 65 |eturns the close| 0001aae0 73 74 20 63 6f 6c 6f 75 72 20 6e 75 6d 62 65 72 |st colour number| 0001aaf0 2e 20 2f 6d 6f 64 65 2f 20 6d 61 79 20 62 65 20 |. /mode/ may be | 0001ab00 2d 31 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 |-1 for the curre| 0001ab10 6e 74 20 6d 6f 64 65 2c 20 2f 70 61 6c 2f 20 6d |nt mode, /pal/ m| 0001ab20 61 79 20 62 65 20 2d 31 20 66 6f 72 20 74 68 65 |ay be -1 for the| 0001ab30 20 63 75 72 72 65 6e 74 20 70 61 6c 65 74 74 65 | current palette| 0001ab40 20 6f 72 20 30 20 66 6f 72 20 74 68 65 20 64 65 | or 0 for the de| 0001ab50 66 61 75 6c 74 20 70 61 6c 65 74 74 65 2e 00 00 |fault palette...| 0001ab60 44 41 54 41 55 01 00 00 63 6f 6c 6f 75 72 74 72 |DATAU...colourtr| 0001ab70 61 6e 73 5f 66 6f 6e 74 62 6c 6f 63 6b 0a 54 68 |ans_fontblock.Th| 0001ab80 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0001ab90 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 43 |ed in <DeskLib:C| 0001aba0 6f 6c 6f 75 72 54 72 61 6e 2e 68 3d 3e 43 6f 6c |olourTran.h=>Col| 0001abb0 6f 75 72 54 72 61 6e 3e 20 74 6f 20 68 6f 6c 64 |ourTran> to hold| 0001abc0 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e | the information| 0001abd0 20 6e 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 | needed for the | 0001abe0 3c 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 52 65 74 |<ColourTrans_Ret| 0001abf0 75 72 6e 46 6f 6e 74 43 6f 6c 6f 75 72 73 3e 20 |urnFontColours> | 0001ac00 66 75 6e 63 74 69 6f 6e 2e 20 49 74 20 69 73 20 |function. It is | 0001ac10 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a 7b 0a 20 |defined as:..{. | 0001ac20 20 20 20 69 6e 74 20 66 6f 6e 74 3b 09 2f 2a 20 | int font;./* | 0001ac30 66 6f 6e 74 20 68 61 6e 64 6c 65 20 2a 2f 0a 20 |font handle */. | 0001ac40 20 20 20 69 6e 74 20 62 61 63 6b 3b 09 2f 2a 20 | int back;./* | 0001ac50 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 |background colou| 0001ac60 72 20 2a 2f 0a 20 20 20 20 69 6e 74 20 66 6f 72 |r */. int for| 0001ac70 65 3b 09 2f 2a 20 66 6f 72 65 67 72 6f 75 6e 64 |e;./* foreground| 0001ac80 20 63 6f 6c 6f 75 72 20 2a 2f 0a 20 20 20 20 69 | colour */. i| 0001ac90 6e 74 20 6d 61 78 3b 09 2f 2a 20 6d 61 78 69 6d |nt max;./* maxim| 0001aca0 75 6d 20 63 6f 6c 6f 75 72 20 6f 66 66 73 65 74 |um colour offset| 0001acb0 20 2a 2f 0a 7d 00 00 00 44 49 52 24 f8 02 00 00 | */.}...DIR$....| 0001acc0 f8 02 00 00 b0 af 01 00 46 fd ff ff 85 32 59 26 |........F....2Y&| 0001acd0 81 03 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |............!Roo| 0001ace0 74 00 00 00 34 b3 01 00 46 fd ff ff 4b 73 e7 22 |t...4...F...Ks."| 0001acf0 ca 00 00 00 13 00 00 00 00 00 00 00 62 61 73 65 |............base| 0001ad00 5f 00 00 00 00 b4 01 00 46 fd ff ff 57 20 e7 22 |_.......F...W ."| 0001ad10 98 00 00 00 13 00 00 00 00 00 00 00 64 65 62 75 |............debu| 0001ad20 67 5f 00 00 98 b4 01 00 46 fd ff ff f8 19 e7 22 |g_......F......"| 0001ad30 39 01 00 00 13 00 00 00 00 00 00 00 64 65 66 69 |9...........defi| 0001ad40 6e 65 5f 00 d4 b5 01 00 46 fd ff ff bb 99 e7 22 |ne_.....F......"| 0001ad50 c4 00 00 00 13 00 00 00 00 00 00 00 64 65 73 6b |............desk| 0001ad60 74 6f 70 5f 00 00 00 00 98 b6 01 00 46 fd ff ff |top_........F...| 0001ad70 26 26 e7 22 eb 00 00 00 13 00 00 00 00 00 00 00 |&&."............| 0001ad80 65 72 72 6f 72 6c 69 6d 69 74 5f 00 84 b7 01 00 |errorlimit_.....| 0001ad90 46 fd ff ff ad 5d e7 22 c9 00 00 00 13 00 00 00 |F....]."........| 0001ada0 00 00 00 00 69 6d 61 67 65 5f 00 00 50 b8 01 00 |....image_..P...| 0001adb0 46 fd ff ff 48 49 e7 22 cd 00 00 00 13 00 00 00 |F...HI."........| 0001adc0 00 00 00 00 69 6e 63 6c 75 64 65 73 5f 00 00 00 |....includes_...| 0001add0 20 b9 01 00 46 fd ff ff 90 a5 e7 22 b0 00 00 00 | ...F......"....| 0001ade0 13 00 00 00 00 00 00 00 69 6e 66 6f 72 6d 61 74 |........informat| 0001adf0 69 6f 6e 61 6c 73 5f 00 d0 b9 01 00 46 fd ff ff |ionals_.....F...| 0001ae00 d9 68 e7 22 bd 00 00 00 13 00 00 00 00 00 00 00 |.h."............| 0001ae10 6c 69 62 72 61 72 79 5f 00 00 00 00 90 ba 01 00 |library_........| 0001ae20 46 fd ff ff 3c 50 e7 22 c4 00 00 00 13 00 00 00 |F...<P."........| 0001ae30 00 00 00 00 6c 69 6e 6b 5f 00 00 00 54 bb 01 00 |....link_...T...| 0001ae40 46 fd ff ff 9c d6 e6 22 89 01 00 00 13 00 00 00 |F......"........| 0001ae50 00 00 00 00 6c 69 73 74 5f 00 00 00 e0 bc 01 00 |....list_.......| 0001ae60 46 fd ff ff 1d 7b e7 22 1a 01 00 00 13 00 00 00 |F....{."........| 0001ae70 00 00 00 00 6d 61 70 5f 00 00 00 00 fc bd 01 00 |....map_........| 0001ae80 46 fd ff ff 27 00 e7 22 98 00 00 00 13 00 00 00 |F...'.."........| 0001ae90 00 00 00 00 6f 62 6a 65 63 74 5f 00 94 be 01 00 |....object_.....| 0001aea0 46 fd ff ff d2 e4 e6 22 43 01 00 00 13 00 00 00 |F......"C.......| 0001aeb0 00 00 00 00 6f 70 74 69 6d 69 73 65 5f 00 00 00 |....optimise_...| 0001aec0 d8 bf 01 00 46 fd ff ff 4f b1 e7 22 40 01 00 00 |....F...O.."@...| 0001aed0 13 00 00 00 00 00 00 00 70 72 6f 66 69 6c 65 5f |........profile_| 0001aee0 00 00 00 00 18 c1 01 00 46 fd ff ff 17 56 e7 22 |........F....V."| 0001aef0 7d 00 00 00 13 00 00 00 00 00 00 00 72 75 6e 5f |}...........run_| 0001af00 00 00 00 00 98 c1 01 00 46 fd ff ff 92 35 e7 22 |........F....5."| 0001af10 fc 01 00 00 13 00 00 00 00 00 00 00 73 68 6f 77 |............show| 0001af20 5f 00 00 00 94 c3 01 00 46 fd ff ff 93 3f e7 22 |_.......F....?."| 0001af30 8b 00 00 00 13 00 00 00 00 00 00 00 73 69 6c 65 |............sile| 0001af40 6e 74 5f 00 20 c4 01 00 46 fd ff ff 36 f4 e6 22 |nt_. ...F...6.."| 0001af50 e6 01 00 00 13 00 00 00 00 00 00 00 73 74 61 6e |............stan| 0001af60 64 61 72 64 5f 00 00 00 08 c6 01 00 46 fd ff ff |dard_.......F...| 0001af70 3d 82 e7 22 b8 00 00 00 13 00 00 00 00 00 00 00 |=.."............| 0001af80 74 68 72 6f 77 62 61 63 6b 5f 00 00 c0 c6 01 00 |throwback_......| 0001af90 46 fd ff ff 2b a1 e7 22 dc 00 00 00 13 00 00 00 |F...+.."........| 0001afa0 00 00 00 00 77 61 72 6e 69 6e 67 73 5f 00 00 00 |....warnings_...| 0001afb0 44 41 54 41 81 03 00 00 43 6f 6d 70 69 6c 65 72 |DATA....Compiler| 0001afc0 20 44 69 72 65 63 74 69 76 65 73 0a 54 68 69 73 | Directives.This| 0001afd0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 | information is | 0001afe0 66 6f 72 20 45 61 73 79 20 43 20 6f 6e 6c 79 3a |for Easy C only:| 0001aff0 0a 0a 54 68 65 73 65 20 61 72 65 20 6f 6e 6c 79 |..These are only| 0001b000 20 75 73 65 64 20 77 68 65 6e 20 63 6f 6d 70 69 | used when compi| 0001b010 6c 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 63 6f |ling from the co| 0001b020 6d 6d 61 6e 64 20 6c 69 6e 65 20 75 73 69 6e 67 |mmand line using| 0001b030 20 74 68 65 20 27 63 63 27 20 63 6f 6d 6d 61 6e | the 'cc' comman| 0001b040 64 2e 20 54 68 65 79 20 61 72 65 20 70 72 65 66 |d. They are pref| 0001b050 69 78 65 64 20 62 79 20 22 2d 22 2e 20 48 65 6c |ixed by "-". Hel| 0001b060 70 20 63 61 6e 20 62 65 20 67 6f 74 20 62 79 20 |p can be got by | 0001b070 75 73 69 6e 67 20 3c 2a 48 65 6c 70 20 63 63 3e |using <*Help cc>| 0001b080 2e 20 41 20 73 75 6d 6d 61 72 79 20 6f 66 20 74 |. A summary of t| 0001b090 68 65 20 64 69 72 65 63 74 69 76 65 73 20 75 73 |he directives us| 0001b0a0 65 64 20 69 73 20 73 68 6f 77 6e 20 62 65 6c 6f |ed is shown belo| 0001b0b0 77 3a 0a 0a 23 69 6e 64 65 6e 74 20 37 20 0a 23 |w:..#indent 7 .#| 0001b0c0 54 61 62 6c 65 20 37 0a 3c 5c 2d 6c 69 73 74 3d |Table 7.<\-list=| 0001b0d0 3e 63 6f 6d 70 64 69 72 5f 6c 69 73 74 5f 3e 0a |>compdir_list_>.| 0001b0e0 3c 5c 2d 6f 70 74 69 6d 69 73 65 3d 3e 63 6f 6d |<\-optimise=>com| 0001b0f0 70 64 69 72 5f 6f 70 74 69 6d 69 73 65 5f 3e 0a |pdir_optimise_>.| 0001b100 3c 5c 2d 73 74 61 6e 64 61 72 64 3d 3e 63 6f 6d |<\-standard=>com| 0001b110 70 64 69 72 5f 73 74 61 6e 64 61 72 64 5f 3e 0a |pdir_standard_>.| 0001b120 3c 5c 2d 6f 62 6a 65 63 74 3d 3e 63 6f 6d 70 64 |<\-object=>compd| 0001b130 69 72 5f 6f 62 6a 65 63 74 5f 3e 0a 3c 5c 2d 64 |ir_object_>.<\-d| 0001b140 65 66 69 6e 65 3d 3e 63 6f 6d 70 64 69 72 5f 64 |efine=>compdir_d| 0001b150 65 66 69 6e 65 5f 3e 0a 3c 5c 2d 64 65 62 75 67 |efine_>.<\-debug| 0001b160 3d 3e 63 6f 6d 70 64 69 72 5f 64 65 62 75 67 5f |=>compdir_debug_| 0001b170 3e 0a 3c 5c 2d 65 72 72 6f 72 6c 69 6d 69 74 3d |>.<\-errorlimit=| 0001b180 3e 63 6f 6d 70 64 69 72 5f 65 72 72 6f 72 6c 69 |>compdir_errorli| 0001b190 6d 69 74 5f 3e 0a 3c 5c 2d 73 68 6f 77 3d 3e 63 |mit_>.<\-show=>c| 0001b1a0 6f 6d 70 64 69 72 5f 73 68 6f 77 5f 3e 0a 3c 5c |ompdir_show_>.<\| 0001b1b0 2d 73 69 6c 65 6e 74 3d 3e 63 6f 6d 70 64 69 72 |-silent=>compdir| 0001b1c0 5f 73 69 6c 65 6e 74 5f 3e 0a 3c 5c 2d 69 6e 63 |_silent_>.<\-inc| 0001b1d0 6c 75 64 65 73 3d 3e 63 6f 6d 70 64 69 72 5f 69 |ludes=>compdir_i| 0001b1e0 6e 63 6c 75 64 65 73 5f 3e 0a 3c 5c 2d 6c 69 6e |ncludes_>.<\-lin| 0001b1f0 6b 3d 3e 63 6f 6d 70 64 69 72 5f 6c 69 6e 6b 5f |k=>compdir_link_| 0001b200 3e 0a 3c 5c 2d 72 75 6e 3d 3e 63 6f 6d 70 64 69 |>.<\-run=>compdi| 0001b210 72 5f 72 75 6e 5f 3e 0a 3c 5c 2d 69 6d 61 67 65 |r_run_>.<\-image| 0001b220 3d 3e 63 6f 6d 70 64 69 72 5f 69 6d 61 67 65 5f |=>compdir_image_| 0001b230 3e 0a 3c 5c 2d 6c 69 62 72 61 72 79 3d 3e 63 6f |>.<\-library=>co| 0001b240 6d 70 64 69 72 5f 6c 69 62 72 61 72 79 5f 3e 0a |mpdir_library_>.| 0001b250 3c 5c 2d 62 61 73 65 3d 3e 63 6f 6d 70 64 69 72 |<\-base=>compdir| 0001b260 5f 62 61 73 65 5f 3e 0a 3c 5c 2d 6d 61 70 3d 3e |_base_>.<\-map=>| 0001b270 63 6f 6d 70 64 69 72 5f 6d 61 70 5f 3e 0a 3c 5c |compdir_map_>.<\| 0001b280 2d 74 68 72 6f 77 62 61 63 6b 3d 3e 63 6f 6d 70 |-throwback=>comp| 0001b290 64 69 72 5f 74 68 72 6f 77 62 61 63 6b 5f 3e 0a |dir_throwback_>.| 0001b2a0 3c 5c 2d 64 65 73 6b 74 6f 70 3d 3e 63 6f 6d 70 |<\-desktop=>comp| 0001b2b0 64 69 72 5f 64 65 73 6b 74 6f 70 5f 3e 0a 3c 5c |dir_desktop_>.<\| 0001b2c0 2d 77 61 72 6e 69 6e 67 73 3d 3e 63 6f 6d 70 64 |-warnings=>compd| 0001b2d0 69 72 5f 77 61 72 6e 69 6e 67 73 5f 3e 0a 3c 5c |ir_warnings_>.<\| 0001b2e0 2d 69 6e 66 6f 72 6d 61 74 69 6f 6e 61 6c 73 3d |-informationals=| 0001b2f0 3e 63 6f 6d 70 64 69 72 5f 69 6e 66 6f 72 6d 61 |>compdir_informa| 0001b300 74 69 6f 6e 61 6c 73 5f 3e 0a 3c 5c 2d 70 72 6f |tionals_>.<\-pro| 0001b310 66 69 6c 65 3d 3e 63 6f 6d 70 64 69 72 5f 70 72 |file=>compdir_pr| 0001b320 6f 66 69 6c 65 5f 3e 0a 23 45 6e 64 54 61 62 6c |ofile_>.#EndTabl| 0001b330 65 00 00 00 44 41 54 41 ca 00 00 00 2d 62 61 73 |e...DATA....-bas| 0001b340 65 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 |e.Abbreviation:.| 0001b350 2d 62 0a 53 79 6e 74 61 78 3a 09 2d 62 61 73 65 |-b.Syntax:.-base| 0001b360 3d 5c 3c 61 64 64 72 65 73 73 3e 0a 0a 54 68 69 |=\<address>..Thi| 0001b370 73 20 64 69 72 65 63 74 69 76 65 20 73 70 65 63 |s directive spec| 0001b380 69 66 69 65 73 20 74 68 65 20 62 61 73 65 20 61 |ifies the base a| 0001b390 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 65 78 |ddress of the ex| 0001b3a0 65 63 75 74 61 62 6c 65 20 63 6f 64 65 2e 20 49 |ecutable code. I| 0001b3b0 74 20 6f 6e 6c 79 20 61 70 70 6c 69 65 73 20 69 |t only applies i| 0001b3c0 66 20 3c 5c 2d 6c 69 6e 6b 3d 3e 63 6f 6d 70 64 |f <\-link=>compd| 0001b3d0 69 72 5f 6c 69 6e 6b 5f 3e 20 69 73 20 73 70 65 |ir_link_> is spe| 0001b3e0 63 69 66 69 65 64 2e 0a 0a 65 67 20 7b 66 43 6f |cified...eg {fCo| 0001b3f0 64 65 7d 2d 62 61 73 65 3d 26 41 30 30 30 00 00 |de}-base=&A000..| 0001b400 44 41 54 41 98 00 00 00 2d 64 65 62 75 67 0a 41 |DATA....-debug.A| 0001b410 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 2d 64 65 |bbreviation:.-de| 0001b420 62 0a 44 65 66 61 75 6c 74 09 2d 6e 6f 64 65 62 |b.Default.-nodeb| 0001b430 75 67 0a 0a 54 68 69 73 20 71 75 61 6c 69 66 69 |ug..This qualifi| 0001b440 65 72 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f |er allows you to| 0001b450 20 73 65 74 20 77 68 65 74 68 65 72 20 64 65 62 | set whether deb| 0001b460 75 67 67 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 |ugging informati| 0001b470 6f 6e 20 69 73 20 69 6e 63 6c 75 64 65 64 20 77 |on is included w| 0001b480 69 74 68 20 74 68 65 20 65 78 65 63 75 74 61 62 |ith the executab| 0001b490 6c 65 20 66 69 6c 65 2e 44 41 54 41 39 01 00 00 |le file.DATA9...| 0001b4a0 2d 64 65 66 69 6e 65 0a 41 62 62 72 65 76 69 61 |-define.Abbrevia| 0001b4b0 74 69 6f 6e 3a 09 2d 64 0a 53 79 6e 74 61 78 09 |tion:.-d.Syntax.| 0001b4c0 2d 64 65 66 69 6e 65 3d 5c 3c 64 65 66 69 6e 69 |-define=\<defini| 0001b4d0 74 69 6f 6e 73 3e 0a 0a 54 68 69 73 20 71 75 61 |tions>..This qua| 0001b4e0 6c 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 79 6f |lifier allows yo| 0001b4f0 75 20 74 6f 20 64 65 66 69 6e 65 20 6d 61 63 72 |u to define macr| 0001b500 6f 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 |os in the same f| 0001b510 6f 72 6d 20 61 73 20 3c 23 64 65 66 69 6e 65 3d |orm as <#define=| 0001b520 3e 64 65 66 69 6e 65 3e 2e 20 54 68 65 20 64 65 |>define>. The de| 0001b530 66 69 6e 69 74 69 6f 6e 73 20 61 72 65 20 73 65 |finitions are se| 0001b540 70 61 72 61 74 65 64 20 62 79 20 63 6f 6d 6d 61 |parated by comma| 0001b550 73 2c 20 61 6e 64 20 69 66 20 74 68 65 79 20 63 |s, and if they c| 0001b560 6f 6e 74 61 69 6e 20 73 70 61 63 65 73 20 74 68 |ontain spaces th| 0001b570 65 79 20 6d 75 73 74 20 62 65 20 65 6e 63 6c 6f |ey must be enclo| 0001b580 73 65 64 20 69 6e 20 71 75 6f 74 65 73 20 65 67 |sed in quotes eg| 0001b590 0a 0a 23 77 72 61 70 20 6f 66 66 0a 7b 66 43 6f |..#wrap off.{fCo| 0001b5a0 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d |de;align centre}| 0001b5b0 2d 64 65 66 69 6e 65 3d 22 53 54 41 52 54 20 30 |-define="START 0| 0001b5c0 22 2c 22 45 4e 44 20 31 30 30 22 2c 44 45 42 55 |","END 100",DEBU| 0001b5d0 47 00 00 00 44 41 54 41 c4 00 00 00 2d 64 65 73 |G...DATA....-des| 0001b5e0 6b 74 6f 70 0a 41 62 62 72 65 76 69 61 74 69 6f |ktop.Abbreviatio| 0001b5f0 6e 3a 09 2d 64 65 73 0a 44 65 66 61 75 6c 74 3a |n:.-des.Default:| 0001b600 09 2d 6e 6f 64 65 73 6b 74 6f 70 0a 0a 54 68 69 |.-nodesktop..Thi| 0001b610 73 20 64 69 72 65 63 74 69 76 65 20 63 61 75 73 |s directive caus| 0001b620 65 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 |es the compiler | 0001b630 74 6f 20 69 67 6e 6f 72 65 20 74 68 65 20 75 73 |to ignore the us| 0001b640 75 61 6c 20 64 69 72 65 63 74 6f 72 79 20 6e 61 |ual directory na| 0001b650 6d 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 |ming conventions| 0001b660 2c 20 61 6e 64 20 61 63 63 65 70 74 20 66 75 6c |, and accept ful| 0001b670 6c 20 70 61 74 68 6e 61 6d 65 73 20 66 6f 72 20 |l pathnames for | 0001b680 73 6f 75 72 63 65 20 61 6e 64 20 6f 62 6a 65 63 |source and objec| 0001b690 74 20 66 69 6c 65 73 2e 44 41 54 41 eb 00 00 00 |t files.DATA....| 0001b6a0 2d 65 72 72 6f 72 6c 69 6d 69 74 0a 41 62 62 72 |-errorlimit.Abbr| 0001b6b0 65 76 69 61 74 69 6f 6e 3a 09 2d 65 0a 53 79 6e |eviation:.-e.Syn| 0001b6c0 74 61 78 09 2d 65 72 72 6f 72 6c 69 6d 69 74 3d |tax.-errorlimit=| 0001b6d0 5c 3c 6c 69 6d 69 74 3e 0a 44 65 66 61 75 6c 74 |\<limit>.Default| 0001b6e0 3a 09 2d 6e 6f 64 65 62 75 67 0a 0a 54 68 69 73 |:.-nodebug..This| 0001b6f0 20 71 75 61 6c 69 66 69 65 72 20 61 6c 6c 6f 77 | qualifier allow| 0001b700 73 20 79 6f 75 20 74 6f 20 73 65 74 20 74 68 65 |s you to set the| 0001b710 20 6e 75 6d 62 65 72 20 6f 66 20 65 72 72 6f 72 | number of error| 0001b720 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 70 72 | which may be pr| 0001b730 6f 64 75 63 65 64 20 62 65 66 6f 72 65 20 74 68 |oduced before th| 0001b740 65 20 63 6f 6d 70 69 6c 65 72 20 67 69 76 65 73 |e compiler gives| 0001b750 20 75 70 21 20 54 68 65 20 6c 69 6d 69 74 20 63 | up! The limit c| 0001b760 61 6e 20 62 65 20 73 77 69 74 63 68 65 64 20 75 |an be switched u| 0001b770 73 69 6e 67 20 2d 6e 6f 65 72 72 6f 72 6c 69 6d |sing -noerrorlim| 0001b780 69 74 2e 00 44 41 54 41 c9 00 00 00 2d 69 6d 61 |it..DATA....-ima| 0001b790 67 65 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a |ge.Abbreviation:| 0001b7a0 09 2d 69 6d 0a 53 79 6e 74 61 78 3a 09 2d 69 6d |.-im.Syntax:.-im| 0001b7b0 61 67 65 3d 5c 3c 66 69 6c 65 6e 61 6d 65 3e 0a |age=\<filename>.| 0001b7c0 0a 54 68 69 73 20 64 69 72 65 63 74 69 76 65 20 |.This directive | 0001b7d0 73 70 65 63 69 66 69 65 73 20 74 68 65 20 6e 61 |specifies the na| 0001b7e0 6d 65 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 |me of the final | 0001b7f0 65 78 65 63 75 74 61 62 6c 65 2e 20 49 74 20 6f |executable. It o| 0001b800 6e 6c 79 20 61 70 70 6c 69 65 73 20 69 66 20 3c |nly applies if <| 0001b810 5c 2d 6c 69 6e 6b 3d 3e 63 6f 6d 70 64 69 72 5f |\-link=>compdir_| 0001b820 6c 69 6e 6b 5f 3e 20 6f 72 20 3c 5c 2d 72 75 6e |link_> or <\-run| 0001b830 3d 3e 63 6f 6d 70 64 69 72 5f 72 75 6e 5f 3e 20 |=>compdir_run_> | 0001b840 69 73 20 73 70 65 63 69 66 69 65 64 2e 00 00 00 |is specified....| 0001b850 44 41 54 41 cd 00 00 00 2d 69 6e 63 6c 75 64 65 |DATA....-include| 0001b860 73 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 |s.Abbreviation:.| 0001b870 2d 69 6e 63 0a 53 79 6e 74 61 78 3a 09 2d 69 6e |-inc.Syntax:.-in| 0001b880 63 6c 75 64 65 73 3d 22 5c 3c 70 61 74 68 6e 61 |cludes="\<pathna| 0001b890 6d 65 3e 22 0a 44 65 66 61 75 6c 74 3a 09 2d 69 |me>".Default:.-i| 0001b8a0 6e 63 6c 75 64 65 73 3d 22 22 0a 0a 54 68 69 73 |ncludes=""..This| 0001b8b0 20 71 75 61 6c 69 66 69 65 72 20 61 6c 6c 6f 77 | qualifier allow| 0001b8c0 73 20 79 6f 75 20 74 6f 20 73 70 65 63 69 66 79 |s you to specify| 0001b8d0 20 74 68 65 20 70 61 74 68 20 43 20 77 69 6c 6c | the path C will| 0001b8e0 20 73 65 61 72 63 68 20 66 6f 72 20 6c 6f 63 61 | search for loca| 0001b8f0 6c 20 68 65 61 64 65 72 73 20 69 65 20 68 65 61 |l headers ie hea| 0001b900 64 65 72 73 20 65 6e 63 6c 6f 73 65 64 20 69 6e |ders enclosed in| 0001b910 20 71 75 6f 74 65 20 6d 61 72 6b 73 2e 00 00 00 | quote marks....| 0001b920 44 41 54 41 b0 00 00 00 2d 69 6e 66 6f 72 6d 61 |DATA....-informa| 0001b930 74 69 6f 6e 61 6c 73 0a 41 62 62 72 65 76 69 61 |tionals.Abbrevia| 0001b940 74 69 6f 6e 3a 09 2d 69 0a 44 65 66 61 75 6c 74 |tion:.-i.Default| 0001b950 3a 09 2d 69 6e 66 6f 72 6d 61 74 69 6f 6e 61 6c |:.-informational| 0001b960 73 0a 0a 54 68 69 73 20 64 69 72 65 63 74 69 76 |s..This directiv| 0001b970 65 20 63 61 75 73 65 73 20 74 68 65 20 63 6f 6d |e causes the com| 0001b980 70 69 6c 65 72 20 74 6f 20 72 65 70 6f 72 74 20 |piler to report | 0001b990 76 65 72 79 20 6d 69 6e 6f 72 20 65 72 72 6f 72 |very minor error| 0001b9a0 73 2e 20 54 68 65 79 20 63 61 6e 20 62 65 20 64 |s. They can be d| 0001b9b0 69 73 61 62 6c 65 64 20 75 73 69 6e 67 20 2d 6e |isabled using -n| 0001b9c0 6f 69 6e 66 6f 72 6d 61 74 69 6f 6e 61 6c 73 2e |oinformationals.| 0001b9d0 44 41 54 41 bd 00 00 00 2d 6c 69 62 72 61 72 79 |DATA....-library| 0001b9e0 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 2d |.Abbreviation:.-| 0001b9f0 6c 69 62 0a 0a 54 68 69 73 20 64 69 72 65 63 74 |lib..This direct| 0001ba00 69 76 65 20 73 70 65 63 69 66 69 65 73 20 74 68 |ive specifies th| 0001ba10 65 20 6c 69 62 72 61 72 69 65 73 20 74 6f 20 62 |e libraries to b| 0001ba20 65 20 6c 69 6e 6b 65 64 20 69 66 20 3c 5c 2d 6c |e linked if <\-l| 0001ba30 69 6e 6b 3d 3e 63 6f 6d 70 64 69 72 5f 6c 69 6e |ink=>compdir_lin| 0001ba40 6b 5f 3e 20 6f 72 20 3c 5c 2d 72 75 6e 3d 3e 63 |k_> or <\-run=>c| 0001ba50 6f 6d 70 64 69 72 5f 72 75 6e 5f 3e 20 69 73 20 |ompdir_run_> is | 0001ba60 73 70 65 63 69 66 69 65 64 2e 0a 0a 65 67 20 7b |specified...eg {| 0001ba70 66 43 6f 64 65 7d 2d 6c 69 62 72 61 72 79 3d 53 |fCode}-library=S| 0001ba80 54 44 43 4c 69 62 2c 52 4f 53 4c 69 62 00 00 00 |TDCLib,ROSLib...| 0001ba90 44 41 54 41 c4 00 00 00 2d 6c 69 6e 6b 0a 41 62 |DATA....-link.Ab| 0001baa0 62 72 65 76 69 61 74 69 6f 6e 3a 09 2d 6c 69 6e |breviation:.-lin| 0001bab0 0a 44 65 66 61 75 6c 74 3a 09 2d 6e 6f 6c 69 6e |.Default:.-nolin| 0001bac0 6b 0a 0a 49 66 20 2d 6c 69 6e 6b 20 69 73 20 73 |k..If -link is s| 0001bad0 70 65 63 69 66 69 65 64 2c 20 45 61 73 79 20 43 |pecified, Easy C| 0001bae0 20 6c 69 6e 6b 73 20 74 68 65 20 70 72 6f 67 72 | links the progr| 0001baf0 61 6d 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 |am automatically| 0001bb00 20 61 66 74 65 72 20 63 6f 6d 70 69 6c 61 74 69 | after compilati| 0001bb10 6f 6e 2e 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 |on. It does not | 0001bb20 67 65 6e 65 72 61 74 65 20 61 6e 20 6f 62 6a 65 |generate an obje| 0001bb30 63 74 20 66 69 6c 65 2c 20 73 61 76 69 6e 67 20 |ct file, saving | 0001bb40 74 69 6d 65 20 61 6e 64 20 64 69 73 63 20 73 70 |time and disc sp| 0001bb50 61 63 65 2e 44 41 54 41 89 01 00 00 2d 6c 69 73 |ace.DATA....-lis| 0001bb60 74 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 |t.Abbreviation:.| 0001bb70 2d 6c 0a 44 65 66 61 75 6c 74 20 73 65 74 74 69 |-l.Default setti| 0001bb80 6e 67 3a 09 2d 6e 6f 6c 69 73 74 0a 0a 54 68 69 |ng:.-nolist..Thi| 0001bb90 73 20 71 75 61 6c 69 66 69 65 72 20 63 61 75 73 |s qualifier caus| 0001bba0 65 73 20 45 61 73 79 20 43 20 74 6f 20 63 72 65 |es Easy C to cre| 0001bbb0 61 74 65 20 61 20 6c 69 73 74 69 6e 67 20 6f 66 |ate a listing of| 0001bbc0 20 63 6f 64 65 20 61 73 20 69 74 20 63 6f 6d 70 | code as it comp| 0001bbd0 69 6c 65 73 2e 20 43 6f 6e 74 72 6f 6c 20 6f 76 |iles. Control ov| 0001bbe0 65 72 20 74 68 65 20 6c 69 73 74 69 6e 67 20 69 |er the listing i| 0001bbf0 73 20 64 6f 6e 65 20 75 73 69 6e 67 20 3c 5c 2d |s done using <\-| 0001bc00 73 68 6f 77 3d 3e 63 6f 6d 70 64 69 72 5f 73 68 |show=>compdir_sh| 0001bc10 6f 77 5f 3e 2e 20 42 79 20 64 65 66 61 75 6c 74 |ow_>. By default| 0001bc20 2c 20 45 61 73 79 20 43 20 70 75 74 73 20 6c 69 |, Easy C puts li| 0001bc30 73 74 69 6e 67 73 20 69 6e 20 74 68 65 20 27 6c |stings in the 'l| 0001bc40 69 73 74 27 20 73 75 62 64 69 72 65 63 74 6f 72 |ist' subdirector| 0001bc50 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 |y of the current| 0001bc60 20 64 69 72 65 63 74 6f 72 79 2c 20 77 69 74 68 | directory, with| 0001bc70 20 74 68 65 20 73 6f 75 72 63 65 20 66 69 6c 65 | the source file| 0001bc80 27 73 20 6e 61 6d 65 2e 20 59 6f 75 20 63 61 6e |'s name. You can| 0001bc90 20 75 73 65 20 2d 6c 69 73 74 3d 5c 3c 66 69 6c | use -list=\<fil| 0001bca0 65 6e 61 6d 65 3e 20 74 6f 20 63 68 61 6e 67 65 |ename> to change| 0001bcb0 20 74 68 65 20 66 69 6c 65 20 75 73 65 64 2e 20 | the file used. | 0001bcc0 2d 6e 6f 6c 69 73 74 20 73 77 69 74 63 68 65 73 |-nolist switches| 0001bcd0 20 6c 69 73 74 69 6e 67 20 6f 66 66 2e 00 00 00 | listing off....| 0001bce0 44 41 54 41 1a 01 00 00 2d 6d 61 70 0a 41 62 62 |DATA....-map.Abb| 0001bcf0 72 65 76 69 61 74 69 6f 6e 3a 09 2d 6d 0a 53 79 |reviation:.-m.Sy| 0001bd00 6e 74 61 78 3a 09 2d 6d 61 70 3d 5c 3c 66 69 6c |ntax:.-map=\<fil| 0001bd10 65 6e 61 6d 65 3e 0a 44 65 66 61 75 6c 74 3a 09 |ename>.Default:.| 0001bd20 2d 6e 6f 6d 61 70 0a 0a 54 68 69 73 20 64 69 72 |-nomap..This dir| 0001bd30 65 63 74 69 76 65 20 73 70 65 63 69 66 69 65 73 |ective specifies| 0001bd40 20 74 68 61 74 20 61 20 66 69 6c 65 20 63 6f 6e | that a file con| 0001bd50 74 61 69 6e 69 6e 67 20 6d 61 70 20 6f 66 20 74 |taining map of t| 0001bd60 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 6c 69 6e |he functions lin| 0001bd70 6b 65 64 20 62 79 20 3c 5c 2d 6c 69 6e 6b 3d 3e |ked by <\-link=>| 0001bd80 63 6f 6d 70 64 69 72 5f 6c 69 6e 6b 5f 3e 2e 20 |compdir_link_>. | 0001bd90 4d 61 70 20 66 69 6c 65 73 20 61 72 65 20 6e 6f |Map files are no| 0001bda0 72 6d 61 6c 6c 79 20 73 61 76 65 64 20 69 6e 20 |rmally saved in | 0001bdb0 73 75 62 64 69 72 65 63 74 6f 72 79 20 22 6d 61 |subdirectory "ma| 0001bdc0 70 22 2c 20 62 75 74 20 79 6f 75 20 63 61 6e 20 |p", but you can | 0001bdd0 73 70 65 63 69 66 79 20 61 20 70 61 72 74 69 63 |specify a partic| 0001bde0 75 6c 61 72 20 66 69 6c 65 6e 61 6d 65 20 69 66 |ular filename if| 0001bdf0 20 79 6f 75 20 77 61 6e 74 2e 00 00 44 41 54 41 | you want...DATA| 0001be00 98 00 00 00 2d 6f 62 6a 65 63 74 0a 41 62 62 72 |....-object.Abbr| 0001be10 65 76 69 61 74 69 6f 6e 3a 09 2d 6f 62 0a 0a 54 |eviation:.-ob..T| 0001be20 68 69 73 20 71 75 61 6c 69 66 69 65 72 20 73 65 |his qualifier se| 0001be30 74 73 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 |ts the filename | 0001be40 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f |of the object co| 0001be50 64 65 20 70 72 6f 64 75 63 65 64 2e 20 49 74 20 |de produced. It | 0001be60 69 73 20 75 73 65 64 20 61 73 3a 0a 0a 7b 66 43 |is used as:..{fC| 0001be70 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |ode;align centre| 0001be80 7d 2d 6f 62 6a 65 63 74 3d 5c 3c 66 69 6c 65 6e |}-object=\<filen| 0001be90 61 6d 65 3e 44 41 54 41 43 01 00 00 2d 6f 70 74 |ame>DATAC...-opt| 0001bea0 69 6d 69 73 65 0a 41 62 62 72 65 76 69 61 74 69 |imise.Abbreviati| 0001beb0 6f 6e 3a 09 2d 6f 0a 44 65 66 61 75 6c 74 20 73 |on:.-o.Default s| 0001bec0 65 74 74 69 6e 67 3a 09 2d 6f 70 74 69 6d 69 73 |etting:.-optimis| 0001bed0 65 3d 61 6c 6c 0a 0a 54 68 69 73 20 71 75 61 6c |e=all..This qual| 0001bee0 69 66 69 65 72 20 73 65 74 73 20 74 68 65 20 64 |ifier sets the d| 0001bef0 65 67 72 65 65 20 6f 66 20 6f 70 74 69 6d 69 73 |egree of optimis| 0001bf00 61 74 69 6f 6e 20 74 6f 20 62 65 20 70 65 72 66 |ation to be perf| 0001bf10 6f 72 6d 65 64 2e 20 59 6f 75 20 63 61 6e 20 75 |ormed. You can u| 0001bf20 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |se the following| 0001bf30 3a 0a 0a 23 74 61 62 0a 2d 6e 6f 6f 70 74 69 6d |:..#tab.-nooptim| 0001bf40 69 73 65 09 4e 6f 20 6f 70 74 69 6d 69 73 61 74 |ise.No optimisat| 0001bf50 69 6f 6e 20 70 65 72 66 6f 72 6d 65 64 0a 2d 6f |ion performed.-o| 0001bf60 70 74 69 6d 69 73 65 3d 66 6f 6c 64 09 46 6f 6c |ptimise=fold.Fol| 0001bf70 64 20 6f 70 74 69 6d 69 73 61 74 69 6f 6e 20 6f |d optimisation o| 0001bf80 6e 6c 79 0a 2d 6f 70 74 69 6d 69 73 65 3d 70 65 |nly.-optimise=pe| 0001bf90 65 70 68 6f 6c 65 09 50 65 65 70 68 6f 6c 65 20 |ephole.Peephole | 0001bfa0 6f 70 74 69 6d 69 73 61 74 69 6f 6e 20 6f 6e 6c |optimisation onl| 0001bfb0 79 0a 2d 6f 70 74 69 6d 69 73 65 3d 61 6c 6c 09 |y.-optimise=all.| 0001bfc0 42 6f 74 68 20 6f 70 74 69 6d 69 73 61 74 69 6f |Both optimisatio| 0001bfd0 6e 20 74 79 70 65 73 00 44 41 54 41 40 01 00 00 |n types.DATA@...| 0001bfe0 2d 70 72 6f 66 69 6c 65 0a 41 62 62 72 65 76 69 |-profile.Abbrevi| 0001bff0 61 74 69 6f 6e 3a 09 2d 70 0a 53 79 6e 74 61 78 |ation:.-p.Syntax| 0001c000 3a 09 2d 70 72 6f 66 69 6c 65 3d 5c 3c 6d 6f 64 |:.-profile=\<mod| 0001c010 69 66 69 65 72 3e 0a 44 65 66 61 75 6c 74 3a 09 |ifier>.Default:.| 0001c020 2d 70 72 6f 66 69 6c 65 3d 6e 6f 6e 65 0a 0a 54 |-profile=none..T| 0001c030 68 69 73 20 64 69 72 65 63 74 69 76 65 20 63 61 |his directive ca| 0001c040 75 73 65 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 |uses the compile| 0001c050 72 20 74 6f 20 69 6e 63 6c 75 64 65 20 70 72 6f |r to include pro| 0001c060 66 69 6c 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 |filing informati| 0001c070 6f 6e 20 66 6f 72 20 75 73 65 20 62 79 20 61 20 |on for use by a | 0001c080 73 65 70 61 72 61 74 65 20 70 72 6f 66 69 6c 65 |separate profile| 0001c090 72 2e 20 54 68 65 20 6d 6f 64 69 66 69 65 72 73 |r. The modifiers| 0001c0a0 20 61 72 65 3a 0a 0a 23 74 61 62 0a 66 75 6e 63 | are:..#tab.func| 0001c0b0 74 69 6f 6e 09 46 75 6e 63 74 69 6f 6e 20 65 78 |tion.Function ex| 0001c0c0 65 63 75 74 69 6f 6e 20 74 69 6d 65 73 0a 6c 69 |ecution times.li| 0001c0d0 6e 65 09 4c 69 6e 65 20 65 78 65 63 75 74 69 6f |ne.Line executio| 0001c0e0 6e 20 74 69 6d 65 73 0a 62 6f 74 68 09 42 6f 74 |n times.both.Bot| 0001c0f0 68 20 6f 66 20 74 68 65 20 61 62 6f 76 65 0a 6e |h of the above.n| 0001c100 6f 6e 65 09 4e 65 69 74 68 65 72 20 6f 66 20 74 |one.Neither of t| 0001c110 68 65 20 61 62 6f 76 65 44 41 54 41 7d 00 00 00 |he aboveDATA}...| 0001c120 2d 72 75 6e 0a 41 62 62 72 65 76 69 61 74 69 6f |-run.Abbreviatio| 0001c130 6e 3a 09 2d 72 0a 44 65 66 61 75 6c 74 3a 09 2d |n:.-r.Default:.-| 0001c140 6e 6f 72 75 6e 0a 0a 49 66 20 2d 72 75 6e 20 69 |norun..If -run i| 0001c150 73 20 73 70 65 63 69 66 69 65 64 2c 20 45 61 73 |s specified, Eas| 0001c160 79 20 43 20 72 75 6e 73 20 74 68 65 20 70 72 6f |y C runs the pro| 0001c170 67 72 61 6d 20 61 75 74 6f 6d 61 74 69 63 61 6c |gram automatical| 0001c180 6c 79 20 61 66 74 65 72 20 63 6f 6d 70 69 6c 61 |ly after compila| 0001c190 74 69 6f 6e 2e 00 00 00 44 41 54 41 fc 01 00 00 |tion....DATA....| 0001c1a0 2d 73 68 6f 77 0a 41 62 62 72 65 76 69 61 74 69 |-show.Abbreviati| 0001c1b0 6f 6e 3a 09 2d 73 68 0a 53 79 6e 74 61 78 3a 09 |on:.-sh.Syntax:.| 0001c1c0 2d 73 68 6f 77 3d 5c 3c 6d 6f 64 69 66 69 65 72 |-show=\<modifier| 0001c1d0 73 3e 0a 44 65 66 61 75 6c 74 3a 09 2d 73 68 6f |s>.Default:.-sho| 0001c1e0 77 3d 73 6f 75 72 63 65 0a 0a 54 68 69 73 20 71 |w=source..This q| 0001c1f0 75 61 6c 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 |ualifier allows | 0001c200 79 6f 75 20 74 6f 20 73 65 74 20 77 68 61 74 20 |you to set what | 0001c210 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 |is included in t| 0001c220 68 65 20 6c 69 73 74 69 6e 67 20 70 72 6f 64 75 |he listing produ| 0001c230 63 65 64 20 62 79 20 3c 5c 2d 6c 69 73 74 3d 3e |ced by <\-list=>| 0001c240 63 6f 6d 70 64 69 72 5f 6c 69 73 74 5f 3e 2e 20 |compdir_list_>. | 0001c250 54 68 65 20 6d 6f 64 69 66 69 65 72 73 20 61 72 |The modifiers ar| 0001c260 65 20 73 65 70 61 72 61 74 65 64 20 62 79 20 63 |e separated by c| 0001c270 6f 6d 6d 61 73 20 61 6e 64 20 61 72 65 20 61 73 |ommas and are as| 0001c280 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 73 6f 75 72 63 | follows:..sourc| 0001c290 65 09 53 6f 75 72 63 65 20 63 6f 64 65 20 69 73 |e.Source code is| 0001c2a0 20 69 6e 63 6c 75 64 65 64 2e 0a 65 78 70 61 6e | included..expan| 0001c2b0 64 65 64 09 45 61 63 68 20 6c 69 6e 65 20 73 68 |ded.Each line sh| 0001c2c0 6f 77 6e 20 74 77 69 63 65 2c 20 77 69 74 68 20 |own twice, with | 0001c2d0 65 78 70 61 6e 64 65 64 20 6d 61 63 72 6f 73 20 |expanded macros | 0001c2e0 6f 6e 20 73 65 63 6f 6e 64 20 6c 69 6e 65 2e 0a |on second line..| 0001c2f0 63 6f 64 65 09 41 52 4d 20 61 73 73 65 6d 62 6c |code.ARM assembl| 0001c300 65 72 20 63 6f 64 65 20 69 73 20 69 6e 63 6c 75 |er code is inclu| 0001c310 64 65 64 2e 0a 76 61 72 69 61 62 6c 65 73 09 56 |ded..variables.V| 0001c320 61 72 69 61 62 6c 65 20 2d 3e 20 72 65 67 69 73 |ariable -> regis| 0001c330 74 65 72 20 6d 61 70 70 69 6e 67 73 20 73 68 6f |ter mappings sho| 0001c340 77 6e 2e 0a 69 6e 63 6c 75 64 65 73 09 49 6e 63 |wn..includes.Inc| 0001c350 6c 75 64 65 20 66 69 6c 65 73 20 61 72 65 20 6c |lude files are l| 0001c360 69 73 74 65 64 2e 0a 61 6c 6c 09 41 6c 6c 20 6f |isted..all.All o| 0001c370 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 6e 6f 6e |f the above..non| 0001c380 65 09 4e 6f 6e 65 20 6f 66 20 74 68 65 20 61 62 |e.None of the ab| 0001c390 6f 76 65 2e 44 41 54 41 8b 00 00 00 2d 73 69 6c |ove.DATA....-sil| 0001c3a0 65 6e 74 0a 41 62 62 72 65 76 69 61 74 69 6f 6e |ent.Abbreviation| 0001c3b0 3a 09 2d 73 69 0a 44 65 66 61 75 6c 74 3a 09 2d |:.-si.Default:.-| 0001c3c0 6e 6f 73 69 6c 65 6e 74 0a 0a 54 68 69 73 20 71 |nosilent..This q| 0001c3d0 75 61 6c 69 66 69 65 72 20 73 77 69 74 63 68 65 |ualifier switche| 0001c3e0 73 20 6f 66 66 20 61 6c 6c 20 6f 75 74 70 75 74 |s off all output| 0001c3f0 20 64 75 72 69 6e 67 20 63 6f 6d 70 69 6c 61 74 | during compilat| 0001c400 69 6f 6e 2c 20 65 78 63 65 70 74 20 66 6f 72 20 |ion, except for | 0001c410 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 2e 00 |error messages..| 0001c420 44 41 54 41 e6 01 00 00 2d 73 74 61 6e 64 61 72 |DATA....-standar| 0001c430 64 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 |d.Abbreviation:.| 0001c440 2d 73 0a 44 65 66 61 75 6c 74 20 73 65 74 74 69 |-s.Default setti| 0001c450 6e 67 3a 09 2d 73 74 61 6e 64 61 72 64 3d 41 4e |ng:.-standard=AN| 0001c460 53 49 0a 0a 54 68 69 73 20 71 75 61 6c 69 66 69 |SI..This qualifi| 0001c470 65 72 20 73 65 74 73 20 74 68 65 20 73 74 61 6e |er sets the stan| 0001c480 64 61 72 64 20 6f 66 20 43 20 75 73 65 64 2e 20 |dard of C used. | 0001c490 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 20 |You can use the | 0001c4a0 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 23 74 61 62 |following:..#tab| 0001c4b0 0a 2d 73 74 61 6e 64 61 72 64 3d 4b 52 09 4f 72 |.-standard=KR.Or| 0001c4c0 69 67 69 6e 61 6c 20 4b 20 26 20 52 20 73 74 61 |iginal K & R sta| 0001c4d0 6e 64 61 72 64 0a 2d 73 74 61 6e 64 61 72 64 3d |ndard.-standard=| 0001c4e0 41 4e 53 49 09 41 4e 53 49 20 73 74 61 6e 64 61 |ANSI.ANSI standa| 0001c4f0 72 64 0a 2d 73 74 61 6e 64 61 72 64 3d 45 78 74 |rd.-standard=Ext| 0001c500 65 6e 64 65 64 09 45 61 73 79 20 43 20 65 78 74 |ended.Easy C ext| 0001c510 65 6e 73 69 6f 6e 73 0a 0a 54 68 65 20 65 78 74 |ensions..The ext| 0001c520 65 6e 64 65 64 20 66 6f 72 6d 20 68 61 73 20 33 |ended form has 3| 0001c530 20 65 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 74 | extensions to t| 0001c540 68 65 20 41 4e 53 49 20 73 74 61 6e 64 61 72 64 |he ANSI standard| 0001c550 3a 0a 0a 23 74 61 62 0a 8f 09 54 68 65 20 73 79 |:..#tab...The sy| 0001c560 6d 62 6f 6c 20 24 20 69 73 20 61 6c 6c 6f 77 65 |mbol $ is allowe| 0001c570 64 20 69 6e 20 76 61 72 69 61 62 6c 65 20 6e 61 |d in variable na| 0001c580 6d 65 73 2e 0a 8f 09 42 69 6e 61 72 79 20 6e 75 |mes....Binary nu| 0001c590 6d 62 65 72 73 20 63 61 6e 20 62 65 20 73 70 65 |mbers can be spe| 0001c5a0 63 69 66 69 65 64 20 77 69 74 68 20 70 72 65 66 |cified with pref| 0001c5b0 69 78 20 30 62 0a 8f 09 41 75 74 6f 6d 61 74 69 |ix 0b...Automati| 0001c5c0 63 20 61 72 67 75 6d 65 6e 74 20 63 6f 75 6e 74 |c argument count| 0001c5d0 69 6e 67 20 69 73 20 73 75 70 70 6f 72 74 65 64 |ing is supported| 0001c5e0 2e 20 53 65 65 20 41 70 70 65 6e 64 69 78 20 43 |. See Appendix C| 0001c5f0 20 6f 66 20 74 68 65 20 45 61 73 79 20 43 20 6d | of the Easy C m| 0001c600 61 6e 75 61 6c 2e 00 00 44 41 54 41 b8 00 00 00 |anual...DATA....| 0001c610 2d 74 68 72 6f 77 62 61 63 6b 0a 41 62 62 72 65 |-throwback.Abbre| 0001c620 76 69 61 74 69 6f 6e 3a 09 2d 74 68 0a 44 65 66 |viation:.-th.Def| 0001c630 61 75 6c 74 3a 09 2d 6e 6f 74 68 72 6f 77 62 61 |ault:.-nothrowba| 0001c640 63 6b 0a 0a 54 68 69 73 20 64 69 72 65 63 74 69 |ck..This directi| 0001c650 76 65 20 73 70 65 63 69 66 69 65 73 20 74 68 61 |ve specifies tha| 0001c660 74 20 65 72 72 6f 72 73 20 67 65 6e 65 72 61 74 |t errors generat| 0001c670 65 64 20 61 72 65 20 74 72 61 6e 73 6d 69 74 74 |ed are transmitt| 0001c680 65 64 20 76 69 61 20 74 68 65 20 22 54 68 72 6f |ed via the "Thro| 0001c690 77 62 61 63 6b 22 20 73 79 73 74 65 6d 20 74 6f |wback" system to| 0001c6a0 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 65 64 69 | an external edi| 0001c6b0 74 6f 72 20 65 67 20 53 74 72 6f 6e 67 45 44 2e |tor eg StrongED.| 0001c6c0 44 41 54 41 dc 00 00 00 2d 77 61 72 6e 69 6e 67 |DATA....-warning| 0001c6d0 73 0a 41 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 |s.Abbreviation:.| 0001c6e0 2d 77 0a 53 79 6e 74 61 78 3a 09 2d 77 61 72 6e |-w.Syntax:.-warn| 0001c6f0 69 6e 67 73 3d 5c 3c 6c 65 76 65 6c 3e 0a 44 65 |ings=\<level>.De| 0001c700 66 61 75 6c 74 3a 09 2d 77 61 72 6e 69 6e 67 73 |fault:.-warnings| 0001c710 0a 0a 54 68 69 73 20 64 69 72 65 63 74 69 76 65 |..This directive| 0001c720 20 63 61 75 73 65 73 20 74 68 65 20 63 6f 6d 70 | causes the comp| 0001c730 69 6c 65 72 20 74 6f 20 72 65 70 6f 72 74 20 77 |iler to report w| 0001c740 61 72 6e 69 6e 67 73 2e 20 54 68 65 79 20 63 61 |arnings. They ca| 0001c750 6e 20 62 65 20 73 77 69 74 63 68 65 64 20 6f 66 |n be switched of| 0001c760 66 20 75 73 69 6e 67 20 2d 6e 6f 77 61 72 6e 69 |f using -nowarni| 0001c770 6e 67 73 2e 20 59 6f 75 20 63 61 6e 20 61 6c 73 |ngs. You can als| 0001c780 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 77 61 |o specify the wa| 0001c790 72 6e 69 6e 67 20 6c 65 76 65 6c 2e 44 49 52 24 |rning level.DIR$| 0001c7a0 2c 00 00 00 2c 00 00 00 c8 c7 01 00 46 ff ff ff |,...,.......F...| 0001c7b0 b6 6c f1 24 f4 00 00 00 13 00 00 00 00 00 00 00 |.l.$............| 0001c7c0 62 6c 6f 63 6b 00 00 00 44 41 54 41 f4 00 00 00 |block...DATA....| 0001c7d0 63 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 0a 54 68 |convert_block.Th| 0001c7e0 65 20 74 79 70 65 20 7b 2a 7d 63 6f 6e 76 65 72 |e type {*}conver| 0001c7f0 74 5f 62 6c 6f 63 6b 7b 2a 7d 20 69 73 20 64 65 |t_block{*} is de| 0001c800 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 0001c810 62 3a 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 |b:Coord.h=>Coord| 0001c820 3e 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 63 |> as an object c| 0001c830 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e |apable of holdin| 0001c840 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 |g information ab| 0001c850 6f 75 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e |out the position| 0001c860 20 6f 66 20 61 20 77 69 6e 64 6f 77 20 61 6e 64 | of a window and| 0001c870 20 69 74 73 20 73 63 72 6f 6c 6c 20 62 61 72 73 | its scroll bars| 0001c880 2e 0a 0a 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f |...\{. <wimp_| 0001c890 72 65 63 74 3e 20 73 63 72 65 65 6e 72 65 63 74 |rect> screenrect| 0001c8a0 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 70 6f 69 6e |;. <wimp_poin| 0001c8b0 74 3e 20 73 63 72 6f 6c 6c 3b 0a 7d 44 41 54 41 |t> scroll;.}DATA| 0001c8c0 11 02 00 00 43 6f 6f 72 64 2e 68 0a 56 65 72 73 |....Coord.h.Vers| 0001c8d0 69 6f 6e 3a 20 31 2e 30 32 20 28 30 32 20 4d 61 |ion: 1.02 (02 Ma| 0001c8e0 72 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a 54 68 |r 1993).#line.Th| 0001c8f0 65 20 5c 3c 43 6f 6f 72 64 2e 68 3e 20 68 65 61 |e \<Coord.h> hea| 0001c900 64 65 72 20 64 65 66 69 6e 65 73 20 66 75 6e 63 |der defines func| 0001c910 74 69 6f 6e 73 20 66 6f 72 20 68 61 6e 64 6c 69 |tions for handli| 0001c920 6e 67 20 70 6f 69 6e 74 73 20 61 6e 64 20 72 65 |ng points and re| 0001c930 63 74 61 6e 67 6c 65 73 2e 20 49 74 20 61 6c 73 |ctangles. It als| 0001c940 6f 20 64 65 66 69 6e 65 73 20 6f 6e 65 20 74 79 |o defines one ty| 0001c950 70 65 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a |pe...Functions:.| 0001c960 0a 23 69 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c |.#indent 4.#Tabl| 0001c970 65 20 37 20 32 33 0a 3c 43 6f 6f 72 64 5f 50 6f |e 7 23.<Coord_Po| 0001c980 69 6e 74 49 6e 52 65 63 74 3e 0a 3c 43 6f 6f 72 |intInRect>.<Coor| 0001c990 64 5f 52 65 63 74 43 6f 6e 74 61 69 6e 65 64 3e |d_RectContained>| 0001c9a0 0a 3c 43 6f 6f 72 64 5f 52 65 63 74 73 4f 76 65 |.<Coord_RectsOve| 0001c9b0 72 6c 61 70 3e 0a 3c 43 6f 6f 72 64 5f 52 65 63 |rlap>.<Coord_Rec| 0001c9c0 74 73 49 6e 74 65 72 73 65 63 74 3e 0a 3c 43 6f |tsIntersect>.<Co| 0001c9d0 6f 72 64 5f 57 69 6e 64 6f 77 4f 72 69 67 69 6e |ord_WindowOrigin| 0001c9e0 3e 0a 3c 43 6f 6f 72 64 5f 58 54 6f 53 63 72 65 |>.<Coord_XToScre| 0001c9f0 65 6e 3e 0a 3c 43 6f 6f 72 64 5f 59 54 6f 53 63 |en>.<Coord_YToSc| 0001ca00 72 65 65 6e 3e 0a 3c 43 6f 6f 72 64 5f 50 6f 69 |reen>.<Coord_Poi| 0001ca10 6e 74 54 6f 53 63 72 65 65 6e 3e 0a 3c 43 6f 6f |ntToScreen>.<Coo| 0001ca20 72 64 5f 52 65 63 74 54 6f 53 63 72 65 65 6e 3e |rd_RectToScreen>| 0001ca30 0a 3c 43 6f 6f 72 64 5f 58 54 6f 57 6f 72 6b 41 |.<Coord_XToWorkA| 0001ca40 72 65 61 3e 0a 3c 43 6f 6f 72 64 5f 59 54 6f 57 |rea>.<Coord_YToW| 0001ca50 6f 72 6b 41 72 65 61 3e 0a 3c 43 6f 6f 72 64 5f |orkArea>.<Coord_| 0001ca60 50 6f 69 6e 74 54 6f 57 6f 72 6b 41 72 65 61 3e |PointToWorkArea>| 0001ca70 0a 3c 43 6f 6f 72 64 5f 52 65 63 74 54 6f 57 6f |.<Coord_RectToWo| 0001ca80 72 6b 41 72 65 61 3e 0a 3c 43 6f 6f 72 64 5f 52 |rkArea>.<Coord_R| 0001ca90 65 63 74 55 6e 69 6f 6e 3e 0a 23 45 6e 64 54 61 |ectUnion>.#EndTa| 0001caa0 62 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 |ble.#indent..Typ| 0001cab0 65 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 0a 3c 63 |e:..#indent 4.<c| 0001cac0 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 3e 00 00 00 |onvert_block>...| 0001cad0 44 49 52 24 40 02 00 00 40 02 00 00 10 cd 01 00 |DIR$@...@.......| 0001cae0 46 ff ff ff f8 f7 f0 24 3e 01 00 00 13 00 00 00 |F......$>.......| 0001caf0 00 00 00 00 50 6f 69 6e 74 49 6e 52 65 63 74 00 |....PointInRect.| 0001cb00 50 ce 01 00 46 ff ff ff 91 48 f1 24 f2 00 00 00 |P...F....H.$....| 0001cb10 13 00 00 00 00 00 00 00 50 6f 69 6e 74 54 6f 53 |........PointToS| 0001cb20 63 72 65 65 6e 00 00 00 44 cf 01 00 46 ff ff ff |creen...D...F...| 0001cb30 7f 00 f1 24 6c 01 00 00 13 00 00 00 00 00 00 00 |...$l...........| 0001cb40 52 65 63 74 43 6f 6e 74 61 69 6e 65 64 00 00 00 |RectContained...| 0001cb50 b0 d0 01 00 46 ff ff ff 09 06 f1 24 fc 00 00 00 |....F......$....| 0001cb60 13 00 00 00 00 00 00 00 52 65 63 74 73 4f 76 65 |........RectsOve| 0001cb70 72 6c 61 70 00 00 00 00 ac d1 01 00 46 ff ff ff |rlap........F...| 0001cb80 e8 4c f1 24 f3 00 00 00 13 00 00 00 00 00 00 00 |.L.$............| 0001cb90 52 65 63 74 54 6f 53 63 72 65 65 6e 00 00 00 00 |RectToScreen....| 0001cba0 a0 d2 01 00 46 ff ff ff 70 9f 54 26 32 01 00 00 |....F...p.T&2...| 0001cbb0 13 00 00 00 00 00 00 00 52 65 63 74 55 6e 69 6f |........RectUnio| 0001cbc0 6e 00 00 00 d4 d3 01 00 46 fd ff ff 1b 92 54 26 |n.......F.....T&| 0001cbd0 b8 00 00 00 13 00 00 00 00 00 00 00 54 4c 00 00 |............TL..| 0001cbe0 8c d4 01 00 46 ff ff ff d3 30 f1 24 2c 02 00 00 |....F....0.$,...| 0001cbf0 13 00 00 00 00 00 00 00 57 69 6e 64 6f 77 4f 72 |........WindowOr| 0001cc00 69 67 69 6e 00 00 00 00 b8 d6 01 00 46 ff ff ff |igin........F...| 0001cc10 f3 3e f1 24 5a 01 00 00 13 00 00 00 00 00 00 00 |.>.$Z...........| 0001cc20 58 54 6f 53 63 72 65 65 6e 00 00 00 14 d8 01 00 |XToScreen.......| 0001cc30 46 ff ff ff 53 52 f1 24 5e 01 00 00 13 00 00 00 |F...SR.$^.......| 0001cc40 00 00 00 00 58 54 6f 57 6f 72 6b 41 72 65 61 00 |....XToWorkArea.| 0001cc50 74 d9 01 00 46 ff ff ff 1a 44 f1 24 5a 01 00 00 |t...F....D.$Z...| 0001cc60 13 00 00 00 00 00 00 00 59 54 6f 53 63 72 65 65 |........YToScree| 0001cc70 6e 00 00 00 d0 da 01 00 46 ff ff ff c1 57 f1 24 |n.......F....W.$| 0001cc80 5e 01 00 00 13 00 00 00 00 00 00 00 59 54 6f 57 |^...........YToW| 0001cc90 6f 72 6b 41 72 65 61 00 30 dc 01 00 46 ff ff ff |orkArea.0...F...| 0001cca0 72 23 f1 24 4c 02 00 00 13 00 00 00 00 00 00 00 |r#.$L...........| 0001ccb0 52 65 63 74 73 49 6e 74 65 72 73 65 63 74 00 00 |RectsIntersect..| 0001ccc0 7c de 01 00 46 ff ff ff f7 63 f1 24 f9 00 00 00 ||...F....c.$....| 0001ccd0 13 00 00 00 00 00 00 00 52 65 63 74 54 6f 57 6f |........RectToWo| 0001cce0 72 6b 41 72 65 61 00 00 78 df 01 00 46 ff ff ff |rkArea..x...F...| 0001ccf0 2c 5e f1 24 f8 00 00 00 13 00 00 00 00 00 00 00 |,^.$............| 0001cd00 50 6f 69 6e 74 54 6f 57 6f 72 6b 41 72 65 61 00 |PointToWorkArea.| 0001cd10 44 41 54 41 3e 01 00 00 43 6f 6f 72 64 5f 50 6f |DATA>...Coord_Po| 0001cd20 69 6e 74 49 6e 52 65 63 74 0a 53 79 6e 74 61 78 |intInRect.Syntax| 0001cd30 3a 09 3c 42 4f 4f 4c 3e 20 43 6f 6f 72 64 5f 50 |:.<BOOL> Coord_P| 0001cd40 6f 69 6e 74 49 6e 52 65 63 74 20 28 3c 77 69 6d |ointInRect (<wim| 0001cd50 70 5f 70 6f 69 6e 74 3e 20 2a 70 2c 20 3c 77 69 |p_point> *p, <wi| 0001cd60 6d 70 5f 72 65 63 74 3e 20 2a 72 29 3b 0a 48 65 |mp_rect> *r);.He| 0001cd70 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 43 |ader:.<DeskLib:C| 0001cd80 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e 0a 0a |oord.h=>Coord>..| 0001cd90 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 0001cda0 6f 72 20 3c 46 41 4c 53 45 3e 2e 0a 0a 54 68 69 |or <FALSE>...Thi| 0001cdb0 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 |s function tests| 0001cdc0 20 77 68 65 74 68 65 72 20 74 68 65 20 70 6f 69 | whether the poi| 0001cdd0 6e 74 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |nt pointed to by| 0001cde0 20 2f 70 2f 20 6c 69 65 73 20 77 69 74 68 69 6e | /p/ lies within| 0001cdf0 20 74 68 65 20 72 65 63 74 61 6e 67 6c 65 20 70 | the rectangle p| 0001ce00 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 72 2f |ointed to by /r/| 0001ce10 2e 20 49 66 20 2f 70 2f 20 69 73 20 6f 6e 20 74 |. If /p/ is on t| 0001ce20 68 65 20 70 65 72 69 6d 65 74 65 72 20 6f 66 20 |he perimeter of | 0001ce30 74 68 65 20 72 65 63 74 61 6e 67 6c 65 20 69 74 |the rectangle it| 0001ce40 20 72 65 74 75 72 6e 73 20 54 52 55 45 2e 00 00 | returns TRUE...| 0001ce50 44 41 54 41 f2 00 00 00 43 6f 6f 72 64 5f 50 6f |DATA....Coord_Po| 0001ce60 69 6e 74 54 6f 53 63 72 65 65 6e 0a 53 79 6e 74 |intToScreen.Synt| 0001ce70 61 78 3a 09 76 6f 69 64 20 43 6f 6f 72 64 5f 50 |ax:.void Coord_P| 0001ce80 6f 69 6e 74 54 6f 53 63 72 65 65 6e 20 28 3c 77 |ointToScreen (<w| 0001ce90 69 6d 70 5f 70 6f 69 6e 74 3e 20 2a 70 2c 20 3c |imp_point> *p, <| 0001cea0 63 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 3e 20 2a |convert_block> *| 0001ceb0 62 6c 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |blk);.Header:.<D| 0001cec0 65 73 6b 4c 69 62 3a 43 6f 6f 72 64 2e 68 3d 3e |eskLib:Coord.h=>| 0001ced0 43 6f 6f 72 64 3e 0a 0a 54 68 69 73 20 66 75 6e |Coord>..This fun| 0001cee0 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 |ction converts t| 0001cef0 68 65 20 70 6f 69 6e 74 20 69 6e 20 77 6f 72 6b |he point in work| 0001cf00 20 61 72 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 | area coordinate| 0001cf10 73 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |s pointed to by | 0001cf20 70 2c 20 69 6e 74 6f 20 6f 6e 65 20 69 6e 20 73 |p, into one in s| 0001cf30 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 |creen coordinate| 0001cf40 73 2e 00 00 44 41 54 41 6c 01 00 00 43 6f 6f 72 |s...DATAl...Coor| 0001cf50 64 5f 52 65 63 74 43 6f 6e 74 61 69 6e 65 64 0a |d_RectContained.| 0001cf60 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 43 |Syntax:.<BOOL> C| 0001cf70 6f 6f 72 64 5f 52 65 63 74 43 6f 6e 74 61 69 6e |oord_RectContain| 0001cf80 65 64 20 28 3c 77 69 6d 70 5f 72 65 63 74 3e 20 |ed (<wimp_rect> | 0001cf90 2a 69 6e 72 65 63 74 2c 20 77 69 6d 70 5f 72 65 |*inrect, wimp_re| 0001cfa0 63 74 20 2a 6f 75 74 72 65 63 74 29 3b 0a 48 65 |ct *outrect);.He| 0001cfb0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 43 |ader:.<DeskLib:C| 0001cfc0 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e 0a 0a |oord.h=>Coord>..| 0001cfd0 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 0001cfe0 6f 72 20 3c 46 41 4c 53 45 3e 2e 0a 0a 54 68 69 |or <FALSE>...Thi| 0001cff0 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 |s function tests| 0001d000 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 63 | whether the rec| 0001d010 74 61 6e 67 6c 65 20 70 6f 69 6e 74 65 64 20 74 |tangle pointed t| 0001d020 6f 20 62 79 20 2f 69 6e 72 65 63 74 2f 20 69 73 |o by /inrect/ is| 0001d030 20 77 68 6f 6c 6c 79 20 63 6f 6e 74 61 69 6e 65 | wholly containe| 0001d040 64 20 62 79 20 74 68 65 20 72 65 63 74 61 6e 67 |d by the rectang| 0001d050 6c 65 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |le pointed to by| 0001d060 20 2f 6f 75 74 72 65 63 74 2f 2e 20 50 6f 69 6e | /outrect/. Poin| 0001d070 74 73 20 6f 6e 20 74 68 65 20 70 65 72 69 6d 65 |ts on the perime| 0001d080 74 65 72 20 6f 66 20 2f 6f 75 74 72 65 63 74 2f |ter of /outrect/| 0001d090 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 | are considered | 0001d0a0 74 6f 20 62 65 20 77 69 74 68 69 6e 20 69 74 2e |to be within it.| 0001d0b0 44 41 54 41 fc 00 00 00 43 6f 6f 72 64 5f 52 65 |DATA....Coord_Re| 0001d0c0 63 74 73 4f 76 65 72 6c 61 70 0a 53 79 6e 74 61 |ctsOverlap.Synta| 0001d0d0 78 3a 09 3c 42 4f 4f 4c 3e 20 43 6f 6f 72 64 5f |x:.<BOOL> Coord_| 0001d0e0 52 65 63 74 73 4f 76 65 72 6c 61 70 20 28 3c 77 |RectsOverlap (<w| 0001d0f0 69 6d 70 5f 72 65 63 74 3e 20 2a 61 2c 20 77 69 |imp_rect> *a, wi| 0001d100 6d 70 5f 72 65 63 74 20 2a 62 29 3b 0a 48 65 61 |mp_rect *b);.Hea| 0001d110 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 43 6f |der:.<DeskLib:Co| 0001d120 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e 0a 0a 52 |ord.h=>Coord>..R| 0001d130 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 6f |eturns:.<TRUE> o| 0001d140 72 20 3c 46 41 4c 53 45 3e 2e 0a 0a 54 68 69 73 |r <FALSE>...This| 0001d150 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 | function checks| 0001d160 20 74 6f 20 73 65 65 20 69 66 20 61 6e 79 20 70 | to see if any p| 0001d170 61 72 74 20 6f 66 20 74 68 65 20 74 77 6f 20 72 |art of the two r| 0001d180 65 63 74 61 6e 67 6c 65 73 20 70 6f 69 6e 74 65 |ectangles pointe| 0001d190 64 20 74 6f 20 62 79 20 2f 61 2f 20 61 6e 64 20 |d to by /a/ and | 0001d1a0 2f 62 2f 20 6f 76 65 72 6c 61 70 2e 44 41 54 41 |/b/ overlap.DATA| 0001d1b0 f3 00 00 00 43 6f 6f 72 64 5f 52 65 63 74 54 6f |....Coord_RectTo| 0001d1c0 53 63 72 65 65 6e 0a 53 79 6e 74 61 78 3a 09 76 |Screen.Syntax:.v| 0001d1d0 6f 69 64 20 43 6f 6f 72 64 5f 52 65 63 74 54 6f |oid Coord_RectTo| 0001d1e0 53 63 72 65 65 6e 20 28 3c 77 69 6d 70 5f 72 65 |Screen (<wimp_re| 0001d1f0 63 74 3e 20 2a 70 2c 20 3c 63 6f 6e 76 65 72 74 |ct> *p, <convert| 0001d200 5f 62 6c 6f 63 6b 3e 20 2a 62 6c 6b 29 3b 0a 48 |_block> *blk);.H| 0001d210 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0001d220 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e 0a |Coord.h=>Coord>.| 0001d230 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0001d240 6f 6e 76 65 72 74 73 20 74 68 65 20 72 65 63 74 |onverts the rect| 0001d250 61 6e 67 6c 65 20 69 6e 20 77 6f 72 6b 20 61 72 |angle in work ar| 0001d260 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 70 |ea coordinates p| 0001d270 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 70 2c 20 |ointed to by p, | 0001d280 69 6e 74 6f 20 6f 6e 65 20 69 6e 20 73 63 72 65 |into one in scre| 0001d290 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 00 |en coordinates..| 0001d2a0 44 41 54 41 32 01 00 00 43 6f 6f 72 64 5f 52 65 |DATA2...Coord_Re| 0001d2b0 63 74 55 6e 69 6f 6e 0a 53 79 6e 74 61 78 3a 09 |ctUnion.Syntax:.| 0001d2c0 76 6f 69 64 20 43 6f 6f 72 64 5f 52 65 63 74 55 |void Coord_RectU| 0001d2d0 6e 69 6f 6e 20 28 3c 77 69 6d 70 5f 72 65 63 74 |nion (<wimp_rect| 0001d2e0 3e 20 2a 64 65 73 74 2c 20 77 69 6d 70 5f 72 65 |> *dest, wimp_re| 0001d2f0 63 74 20 2a 61 2c 20 77 69 6d 70 5f 72 65 63 74 |ct *a, wimp_rect| 0001d300 20 2a 62 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 | *b);.Header:.<T| 0001d310 69 6d 73 4c 69 62 3a 43 6f 6f 72 64 2e 68 3d 3e |imsLib:Coord.h=>| 0001d320 43 6f 6f 72 64 5f 54 4c 3e 0a 09 3c 44 65 73 6b |Coord_TL>..<Desk| 0001d330 4c 69 62 3a 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f |Lib:Coord.h=>Coo| 0001d340 72 64 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |rd>..This functi| 0001d350 6f 6e 20 66 69 6e 64 73 20 74 68 65 20 75 6e 69 |on finds the uni| 0001d360 6f 6e 20 6f 66 20 74 68 65 20 74 77 6f 20 72 65 |on of the two re| 0001d370 63 74 61 6e 67 6c 65 2c 20 2f 61 2f 20 61 6e 64 |ctangle, /a/ and| 0001d380 20 2f 62 2f 2c 20 61 6e 64 20 72 65 74 75 72 6e | /b/, and return| 0001d390 73 20 69 74 20 69 6e 20 2f 64 65 73 74 2f 2e 20 |s it in /dest/. | 0001d3a0 41 6e 79 20 6f 66 20 2f 61 2f 2c 20 2f 62 2f 20 |Any of /a/, /b/ | 0001d3b0 6f 72 20 2f 64 65 73 74 2f 20 63 61 6e 20 62 65 |or /dest/ can be| 0001d3c0 20 74 68 65 20 73 61 6d 65 20 70 6f 69 6e 74 65 | the same pointe| 0001d3d0 72 2e 00 00 44 41 54 41 b8 00 00 00 54 69 6d 73 |r...DATA....Tims| 0001d3e0 4c 69 62 3a 43 6f 6f 72 64 2e 68 0a 23 50 61 72 |Lib:Coord.h.#Par| 0001d3f0 65 6e 74 20 72 6f 5f 74 6c 69 62 5f 0a 54 68 69 |ent ro_tlib_.Thi| 0001d400 73 20 69 73 20 61 6e 20 65 78 74 65 6e 73 69 6f |s is an extensio| 0001d410 6e 20 66 6f 72 20 3c 44 65 73 6b 4c 69 62 3a 43 |n for <DeskLib:C| 0001d420 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e 20 74 |oord.h=>Coord> t| 0001d430 68 61 74 20 70 72 6f 76 69 64 65 73 20 6f 6e 65 |hat provides one| 0001d440 20 65 78 74 72 61 20 66 75 6e 63 74 69 6f 6e 2c | extra function,| 0001d450 20 3c 43 6f 6f 72 64 5f 52 65 63 74 55 6e 69 6f | <Coord_RectUnio| 0001d460 6e 3e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 77 |n>, which is now| 0001d470 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 44 65 73 | included in Des| 0001d480 6b 4c 69 62 20 61 6e 79 77 61 79 2e 44 41 54 41 |kLib anyway.DATA| 0001d490 2c 02 00 00 43 6f 6f 72 64 5f 57 69 6e 64 6f 77 |,...Coord_Window| 0001d4a0 4f 72 69 67 69 6e 0a 53 79 6e 74 61 78 3a 09 76 |Origin.Syntax:.v| 0001d4b0 6f 69 64 20 43 6f 6f 72 64 5f 57 69 6e 64 6f 77 |oid Coord_Window| 0001d4c0 4f 72 69 67 69 6e 20 28 3c 77 69 6d 70 5f 70 6f |Origin (<wimp_po| 0001d4d0 69 6e 74 3e 20 2a 6f 2c 20 3c 63 6f 6e 76 65 72 |int> *o, <conver| 0001d4e0 74 5f 62 6c 6f 63 6b 3e 20 2a 62 6c 6b 29 3b 0a |t_block> *blk);.| 0001d4f0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0001d500 3a 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e |:Coord.h=>Coord>| 0001d510 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0001d520 72 65 74 75 72 6e 73 20 69 6e 20 74 68 65 20 63 |returns in the c| 0001d530 6f 6f 72 64 69 6e 61 74 65 73 20 70 6f 69 6e 74 |oordinates point| 0001d540 65 64 20 74 6f 20 62 79 20 2f 6f 2f 2c 20 74 68 |ed to by /o/, th| 0001d550 65 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e |e screen coordin| 0001d560 61 74 65 73 20 6f 66 20 74 68 65 20 6f 72 69 67 |ates of the orig| 0001d570 69 6e 20 6f 66 20 61 20 77 69 6e 64 6f 77 27 73 |in of a window's| 0001d580 20 77 6f 72 6b 20 61 72 65 61 20 28 69 65 20 74 | work area (ie t| 0001d590 68 65 20 74 6f 70 20 6c 65 66 74 29 2e 20 54 68 |he top left). Th| 0001d5a0 65 20 73 63 72 65 65 6e 20 70 6f 73 69 74 69 6f |e screen positio| 0001d5b0 6e 20 61 6e 64 20 73 63 72 6f 6c 6c 20 62 61 72 |n and scroll bar| 0001d5c0 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 74 68 | positions of th| 0001d5d0 65 20 77 69 6e 64 6f 77 20 73 68 6f 75 6c 64 20 |e window should | 0001d5e0 62 65 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 |be placed in the| 0001d5f0 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 | structure point| 0001d600 65 64 20 74 6f 20 62 79 20 2f 62 6c 6b 2f 2e 0a |ed to by /blk/..| 0001d610 0a 54 68 65 20 6f 72 69 67 69 6e 20 72 65 74 75 |.The origin retu| 0001d620 72 6e 65 64 20 63 61 6e 20 62 65 20 6f 66 20 67 |rned can be of g| 0001d630 72 65 61 74 20 75 73 65 20 69 6e 20 72 65 64 72 |reat use in redr| 0001d640 61 77 20 63 6f 64 65 20 2d 20 61 6e 79 20 64 72 |aw code - any dr| 0001d650 61 77 69 6e 67 20 64 6f 6e 65 20 72 65 6c 61 74 |awing done relat| 0001d660 69 76 65 20 74 6f 20 74 68 69 73 20 77 69 6c 6c |ive to this will| 0001d670 20 61 6c 77 61 79 73 20 61 70 70 65 61 72 20 61 | always appear a| 0001d680 74 20 74 68 65 20 63 6f 72 72 65 63 74 20 70 6c |t the correct pl| 0001d690 61 63 65 2c 20 69 72 72 65 73 70 65 63 74 69 76 |ace, irrespectiv| 0001d6a0 65 20 6f 66 20 77 69 6e 64 6f 77 20 70 6f 73 69 |e of window posi| 0001d6b0 74 69 6f 6e 69 6e 67 2e 44 41 54 41 5a 01 00 00 |tioning.DATAZ...| 0001d6c0 43 6f 6f 72 64 5f 58 54 6f 53 63 72 65 65 6e 0a |Coord_XToScreen.| 0001d6d0 53 79 6e 74 61 78 3a 09 69 6e 74 20 43 6f 6f 72 |Syntax:.int Coor| 0001d6e0 64 5f 58 54 6f 53 63 72 65 65 6e 20 28 69 6e 74 |d_XToScreen (int| 0001d6f0 20 78 2c 20 3c 63 6f 6e 76 65 72 74 5f 62 6c 6f | x, <convert_blo| 0001d700 63 6b 3e 20 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 |ck> *blk);.Heade| 0001d710 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 43 6f 6f 72 |r:.<DeskLib:Coor| 0001d720 64 2e 68 3d 3e 43 6f 6f 72 64 3e 0a 0a 52 65 74 |d.h=>Coord>..Ret| 0001d730 75 72 6e 73 3a 09 54 68 65 20 78 20 73 63 72 65 |urns:.The x scre| 0001d740 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 2e 0a 0a |en coordinate...| 0001d750 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 |This function ta| 0001d760 6b 65 73 20 61 6e 20 78 20 77 6f 72 6b 20 61 72 |kes an x work ar| 0001d770 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 20 61 6e |ea coordinate an| 0001d780 64 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 |d a pointer to a| 0001d790 20 63 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 20 28 | convert_block (| 0001d7a0 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 |which contains t| 0001d7b0 68 65 20 77 69 6e 64 6f 77 20 61 6e 64 20 73 63 |he window and sc| 0001d7c0 72 6f 6c 6c 20 62 61 72 20 70 6f 73 69 74 69 6f |roll bar positio| 0001d7d0 6e 29 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20 |n) and converts | 0001d7e0 74 68 65 20 77 6f 72 6b 20 61 72 65 61 20 63 6f |the work area co| 0001d7f0 6f 72 64 69 6e 61 74 65 20 69 6e 74 6f 20 61 20 |ordinate into a | 0001d800 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 |screen coordinat| 0001d810 65 2e 00 00 44 41 54 41 5e 01 00 00 43 6f 6f 72 |e...DATA^...Coor| 0001d820 64 5f 58 54 6f 57 6f 72 6b 41 72 65 61 0a 53 79 |d_XToWorkArea.Sy| 0001d830 6e 74 61 78 3a 09 69 6e 74 20 43 6f 6f 72 64 5f |ntax:.int Coord_| 0001d840 58 54 6f 57 6f 72 6b 41 72 65 61 20 28 69 6e 74 |XToWorkArea (int| 0001d850 20 78 2c 20 3c 63 6f 6e 76 65 72 74 5f 62 6c 6f | x, <convert_blo| 0001d860 63 6b 3e 20 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 |ck> *blk);.Heade| 0001d870 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 43 6f 6f 72 |r:.<DeskLib:Coor| 0001d880 64 2e 68 3d 3e 43 6f 6f 72 64 3e 0a 0a 52 65 74 |d.h=>Coord>..Ret| 0001d890 75 72 6e 73 3a 09 54 68 65 20 78 20 77 6f 72 6b |urns:.The x work| 0001d8a0 20 61 72 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 | area coordinate| 0001d8b0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0001d8c0 20 74 61 6b 65 73 20 61 6e 20 78 20 73 63 72 65 | takes an x scre| 0001d8d0 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 20 61 6e |en coordinate an| 0001d8e0 64 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 |d a pointer to a| 0001d8f0 20 63 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 20 28 | convert_block (| 0001d900 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 |which contains t| 0001d910 68 65 20 77 69 6e 64 6f 77 20 61 6e 64 20 73 63 |he window and sc| 0001d920 72 6f 6c 6c 20 62 61 72 20 70 6f 73 69 74 69 6f |roll bar positio| 0001d930 6e 29 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20 |n) and converts | 0001d940 74 68 65 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 |the screen coord| 0001d950 69 6e 61 74 65 20 69 6e 74 6f 20 61 20 77 6f 72 |inate into a wor| 0001d960 6b 20 61 72 65 61 20 63 6f 6f 72 64 69 6e 61 74 |k area coordinat| 0001d970 65 2e 00 00 44 41 54 41 5a 01 00 00 43 6f 6f 72 |e...DATAZ...Coor| 0001d980 64 5f 59 54 6f 53 63 72 65 65 6e 0a 53 79 6e 74 |d_YToScreen.Synt| 0001d990 61 78 3a 09 69 6e 74 20 43 6f 6f 72 64 5f 59 54 |ax:.int Coord_YT| 0001d9a0 6f 53 63 72 65 65 6e 20 28 69 6e 74 20 79 2c 20 |oScreen (int y, | 0001d9b0 3c 63 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 3e 20 |<convert_block> | 0001d9c0 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*blk);.Header:.<| 0001d9d0 44 65 73 6b 4c 69 62 3a 43 6f 6f 72 64 2e 68 3d |DeskLib:Coord.h=| 0001d9e0 3e 43 6f 6f 72 64 3e 0a 0a 52 65 74 75 72 6e 73 |>Coord>..Returns| 0001d9f0 3a 09 54 68 65 20 79 20 73 63 72 65 65 6e 20 63 |:.The y screen c| 0001da00 6f 6f 72 64 69 6e 61 74 65 2e 0a 0a 54 68 69 73 |oordinate...This| 0001da10 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 | function takes | 0001da20 61 6e 20 79 20 77 6f 72 6b 20 61 72 65 61 20 63 |an y work area c| 0001da30 6f 6f 72 64 69 6e 61 74 65 20 61 6e 64 20 61 20 |oordinate and a | 0001da40 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 63 6f 6e |pointer to a con| 0001da50 76 65 72 74 5f 62 6c 6f 63 6b 20 28 77 68 69 63 |vert_block (whic| 0001da60 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 77 |h contains the w| 0001da70 69 6e 64 6f 77 20 61 6e 64 20 73 63 72 6f 6c 6c |indow and scroll| 0001da80 20 62 61 72 20 70 6f 73 69 74 69 6f 6e 29 20 61 | bar position) a| 0001da90 6e 64 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |nd converts the | 0001daa0 77 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 64 69 |work area coordi| 0001dab0 6e 61 74 65 20 69 6e 74 6f 20 61 20 73 63 72 65 |nate into a scre| 0001dac0 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 2e 00 00 |en coordinate...| 0001dad0 44 41 54 41 5e 01 00 00 43 6f 6f 72 64 5f 59 54 |DATA^...Coord_YT| 0001dae0 6f 57 6f 72 6b 41 72 65 61 0a 53 79 6e 74 61 78 |oWorkArea.Syntax| 0001daf0 3a 09 69 6e 74 20 43 6f 6f 72 64 5f 59 54 6f 57 |:.int Coord_YToW| 0001db00 6f 72 6b 41 72 65 61 20 28 69 6e 74 20 79 2c 20 |orkArea (int y, | 0001db10 3c 63 6f 6e 76 65 72 74 5f 62 6c 6f 63 6b 3e 20 |<convert_block> | 0001db20 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*blk);.Header:.<| 0001db30 44 65 73 6b 4c 69 62 3a 43 6f 6f 72 64 2e 68 3d |DeskLib:Coord.h=| 0001db40 3e 43 6f 6f 72 64 3e 0a 0a 52 65 74 75 72 6e 73 |>Coord>..Returns| 0001db50 3a 09 54 68 65 20 79 20 77 6f 72 6b 20 61 72 65 |:.The y work are| 0001db60 61 20 63 6f 6f 72 64 69 6e 61 74 65 2e 0a 0a 54 |a coordinate...T| 0001db70 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b |his function tak| 0001db80 65 73 20 61 6e 20 79 20 73 63 72 65 65 6e 20 63 |es an y screen c| 0001db90 6f 6f 72 64 69 6e 61 74 65 20 61 6e 64 20 61 20 |oordinate and a | 0001dba0 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 63 6f 6e |pointer to a con| 0001dbb0 76 65 72 74 5f 62 6c 6f 63 6b 20 28 77 68 69 63 |vert_block (whic| 0001dbc0 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 77 |h contains the w| 0001dbd0 69 6e 64 6f 77 20 61 6e 64 20 73 63 72 6f 6c 6c |indow and scroll| 0001dbe0 20 62 61 72 20 70 6f 73 69 74 69 6f 6e 29 20 61 | bar position) a| 0001dbf0 6e 64 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |nd converts the | 0001dc00 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 |screen coordinat| 0001dc10 65 20 69 6e 74 6f 20 61 20 77 6f 72 6b 20 61 72 |e into a work ar| 0001dc20 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 2e 00 00 |ea coordinate...| 0001dc30 44 41 54 41 4c 02 00 00 43 6f 6f 72 64 5f 52 65 |DATAL...Coord_Re| 0001dc40 63 74 73 49 6e 74 65 72 73 65 63 74 0a 53 79 6e |ctsIntersect.Syn| 0001dc50 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 43 6f 6f 72 |tax:.<BOOL> Coor| 0001dc60 64 5f 52 65 63 74 73 49 6e 74 65 72 73 65 63 74 |d_RectsIntersect| 0001dc70 20 28 3c 77 69 6d 70 5f 72 65 63 74 3e 20 2a 61 | (<wimp_rect> *a| 0001dc80 2c 20 77 69 6d 70 5f 72 65 63 74 20 2a 62 29 3b |, wimp_rect *b);| 0001dc90 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 0001dca0 62 3a 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 |b:Coord.h=>Coord| 0001dcb0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 |>..Returns:.<TRU| 0001dcc0 45 3e 20 6f 72 20 3c 46 41 4c 53 45 3e 2e 0a 0a |E> or <FALSE>...| 0001dcd0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 |This function ch| 0001dce0 65 63 6b 73 20 74 6f 20 73 65 65 20 69 66 20 61 |ecks to see if a| 0001dcf0 6e 79 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 |ny part of the t| 0001dd00 77 6f 20 72 65 63 74 61 6e 67 6c 65 73 20 70 6f |wo rectangles po| 0001dd10 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 61 2f 20 |inted to by /a/ | 0001dd20 61 6e 64 20 2f 62 2f 20 6f 76 65 72 6c 61 70 2e |and /b/ overlap.| 0001dd30 20 48 6f 77 65 76 65 72 2c 20 69 66 20 6f 6e 65 | However, if one| 0001dd40 20 72 65 63 74 61 6e 67 6c 65 20 69 73 20 63 6f | rectangle is co| 0001dd50 6e 74 61 69 6e 65 64 20 77 68 6f 6c 6c 79 20 77 |ntained wholly w| 0001dd60 69 74 68 69 6e 20 74 68 65 20 6f 74 68 65 72 20 |ithin the other | 0001dd70 74 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f |then the functio| 0001dd80 6e 20 72 65 74 75 72 6e 73 20 46 41 4c 53 45 2e |n returns FALSE.| 0001dd90 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 | This function i| 0001dda0 73 20 61 63 74 75 61 6c 6c 79 20 69 6d 70 6c 65 |s actually imple| 0001ddb0 6d 65 6e 74 65 64 20 61 73 20 74 68 65 20 66 6f |mented as the fo| 0001ddc0 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 3a 0a 0a |llowing macro:..| 0001ddd0 7b 66 43 6f 64 65 7d 3c 23 64 65 66 69 6e 65 3d |{fCode}<#define=| 0001dde0 3e 64 65 66 69 6e 65 3e 20 43 6f 6f 72 64 5f 52 |>define> Coord_R| 0001ddf0 65 63 74 73 49 6e 74 65 72 73 65 63 74 28 72 31 |ectsIntersect(r1| 0001de00 2c 72 32 29 0a 20 20 20 20 20 20 20 20 28 3c 43 |,r2). (<C| 0001de10 6f 6f 72 64 5f 52 65 63 74 73 4f 76 65 72 6c 61 |oord_RectsOverla| 0001de20 70 3e 28 72 31 2c 72 32 29 20 26 26 0a 20 20 20 |p>(r1,r2) &&. | 0001de30 20 20 20 20 20 20 21 3c 43 6f 6f 72 64 5f 52 65 | !<Coord_Re| 0001de40 63 74 43 6f 6e 74 61 69 6e 65 64 3e 28 72 31 2c |ctContained>(r1,| 0001de50 72 32 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 |r2) &&. | 0001de60 21 43 6f 6f 72 64 5f 52 65 63 74 43 6f 6e 74 61 |!Coord_RectConta| 0001de70 69 6e 65 64 28 72 32 2c 72 31 29 29 44 41 54 41 |ined(r2,r1))DATA| 0001de80 f9 00 00 00 43 6f 6f 72 64 5f 52 65 63 74 54 6f |....Coord_RectTo| 0001de90 57 6f 72 6b 41 72 65 61 0a 53 79 6e 74 61 78 3a |WorkArea.Syntax:| 0001dea0 09 76 6f 69 64 20 43 6f 6f 72 64 5f 52 65 63 74 |.void Coord_Rect| 0001deb0 54 6f 57 6f 72 6b 41 72 65 61 20 28 3c 77 69 6d |ToWorkArea (<wim| 0001dec0 70 5f 72 65 63 74 3e 20 2a 70 2c 20 3c 63 6f 6e |p_rect> *p, <con| 0001ded0 76 65 72 74 5f 62 6c 6f 63 6b 3e 20 2a 62 6c 6b |vert_block> *blk| 0001dee0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0001def0 4c 69 62 3a 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f |Lib:Coord.h=>Coo| 0001df00 72 64 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |rd>..This functi| 0001df10 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |on converts the | 0001df20 72 65 63 74 61 6e 67 6c 65 20 69 6e 20 73 63 72 |rectangle in scr| 0001df30 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 |een coordinates | 0001df40 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 70 |pointed to by /p| 0001df50 2f 2c 20 69 6e 74 6f 20 6f 6e 65 20 69 6e 20 77 |/, into one in w| 0001df60 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 64 69 6e |ork area coordin| 0001df70 61 74 65 73 2e 00 00 00 44 41 54 41 f8 00 00 00 |ates....DATA....| 0001df80 43 6f 6f 72 64 5f 50 6f 69 6e 74 54 6f 57 6f 72 |Coord_PointToWor| 0001df90 6b 41 72 65 61 0a 53 79 6e 74 61 78 3a 09 76 6f |kArea.Syntax:.vo| 0001dfa0 69 64 20 43 6f 6f 72 64 5f 50 6f 69 6e 74 54 6f |id Coord_PointTo| 0001dfb0 57 6f 72 6b 41 72 65 61 20 28 3c 77 69 6d 70 5f |WorkArea (<wimp_| 0001dfc0 70 6f 69 6e 74 3e 20 2a 70 2c 20 3c 63 6f 6e 76 |point> *p, <conv| 0001dfd0 65 72 74 5f 62 6c 6f 63 6b 3e 20 2a 62 6c 6b 29 |ert_block> *blk)| 0001dfe0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0001dff0 69 62 3a 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 |ib:Coord.h=>Coor| 0001e000 64 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |d>..This functio| 0001e010 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 70 |n converts the p| 0001e020 6f 69 6e 74 20 69 6e 20 73 63 72 65 65 6e 20 63 |oint in screen c| 0001e030 6f 6f 72 64 69 6e 61 74 65 73 20 70 6f 69 6e 74 |oordinates point| 0001e040 65 64 20 74 6f 20 62 79 20 2f 70 2f 2c 20 69 6e |ed to by /p/, in| 0001e050 74 6f 20 6f 6e 65 20 69 6e 20 77 6f 72 6b 20 61 |to one in work a| 0001e060 72 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e |rea coordinates.| 0001e070 44 41 54 41 db 01 00 00 63 6f 6f 72 64 73 2e 68 |DATA....coords.h| 0001e080 0a 54 68 69 73 20 68 65 61 64 65 72 20 63 6f 6e |.This header con| 0001e090 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 |tains functions | 0001e0a0 61 6e 64 20 74 79 70 65 73 20 66 6f 72 20 68 61 |and types for ha| 0001e0b0 6e 64 6c 69 6e 67 20 77 69 6e 64 6f 77 20 63 6f |ndling window co| 0001e0c0 6f 72 64 69 6e 61 74 65 73 2e 0a 0a 46 75 6e 63 |ordinates...Func| 0001e0d0 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 |tions:..#Indent | 0001e0e0 33 3b 54 61 62 6c 65 20 36 0a 3c 63 6f 6f 72 64 |3;Table 6.<coord| 0001e0f0 73 5f 78 5f 74 6f 73 63 72 65 65 6e 3e 0a 3c 63 |s_x_toscreen>.<c| 0001e100 6f 6f 72 64 73 5f 79 5f 74 6f 73 63 72 65 65 6e |oords_y_toscreen| 0001e110 3e 0a 3c 63 6f 6f 72 64 73 5f 78 5f 74 6f 77 6f |>.<coords_x_towo| 0001e120 72 6b 61 72 65 61 3e 0a 3c 63 6f 6f 72 64 73 5f |rkarea>.<coords_| 0001e130 79 5f 74 6f 77 6f 72 6b 61 72 65 61 3e 0a 3c 63 |y_toworkarea>.<c| 0001e140 6f 6f 72 64 73 5f 62 6f 78 5f 74 6f 73 63 72 65 |oords_box_toscre| 0001e150 65 6e 3e 0a 3c 63 6f 6f 72 64 73 5f 62 6f 78 5f |en>.<coords_box_| 0001e160 74 6f 77 6f 72 6b 61 72 65 61 3e 0a 3c 63 6f 6f |toworkarea>.<coo| 0001e170 72 64 73 5f 70 6f 69 6e 74 5f 74 6f 73 63 72 65 |rds_point_toscre| 0001e180 65 6e 3e 0a 3c 63 6f 6f 72 64 73 5f 70 6f 69 6e |en>.<coords_poin| 0001e190 74 5f 74 6f 77 6f 72 6b 61 72 65 61 3e 0a 3c 63 |t_toworkarea>.<c| 0001e1a0 6f 6f 72 64 73 5f 77 69 74 68 69 6e 62 6f 78 3e |oords_withinbox>| 0001e1b0 0a 3c 63 6f 6f 72 64 73 5f 6f 66 66 73 65 74 62 |.<coords_offsetb| 0001e1c0 6f 78 3e 0a 3c 63 6f 6f 72 64 73 5f 69 6e 74 65 |ox>.<coords_inte| 0001e1d0 72 73 65 63 74 73 3e 0a 3c 63 6f 6f 72 64 73 5f |rsects>.<coords_| 0001e1e0 62 6f 78 65 73 6f 76 65 72 6c 61 70 3e 0a 23 45 |boxesoverlap>.#E| 0001e1f0 6e 64 54 61 62 6c 65 3b 49 6e 64 65 6e 74 20 30 |ndTable;Indent 0| 0001e200 0a 0a 54 79 70 65 73 3a 0a 0a 23 49 6e 64 65 6e |..Types:..#Inden| 0001e210 74 20 31 33 3b 54 61 62 6c 65 20 31 20 32 34 0a |t 13;Table 1 24.| 0001e220 3c 63 6f 6f 72 64 73 5f 63 76 74 73 74 72 3e 0a |<coords_cvtstr>.| 0001e230 3c 63 6f 6f 72 64 73 5f 70 6f 69 6e 74 73 74 72 |<coords_pointstr| 0001e240 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 49 52 24 |>.#EndTable.DIR$| 0001e250 20 02 00 00 20 02 00 00 6c e4 01 00 46 ff ff ff | ... ...l...F...| 0001e260 dd 4c 1d 23 ee 00 00 00 13 00 00 00 00 00 00 00 |.L.#............| 0001e270 62 6f 78 5f 74 6f 73 63 72 65 65 6e 00 00 00 00 |box_toscreen....| 0001e280 5c e5 01 00 46 ff ff ff 9d 54 1d 23 f2 00 00 00 |\...F....T.#....| 0001e290 13 00 00 00 00 00 00 00 62 6f 78 5f 74 6f 77 6f |........box_towo| 0001e2a0 72 6b 61 72 65 61 00 00 50 e6 01 00 46 ff ff ff |rkarea..P...F...| 0001e2b0 61 9d 1d 23 f6 00 00 00 13 00 00 00 00 00 00 00 |a..#............| 0001e2c0 62 6f 78 65 73 6f 76 65 72 6c 61 70 00 00 00 00 |boxesoverlap....| 0001e2d0 48 e7 01 00 46 ff ff ff 46 a3 1d 23 d5 00 00 00 |H...F...F..#....| 0001e2e0 13 00 00 00 00 00 00 00 63 76 74 73 74 72 00 00 |........cvtstr..| 0001e2f0 20 e8 01 00 46 ff ff ff 68 95 1d 23 0f 01 00 00 | ...F...h..#....| 0001e300 13 00 00 00 00 00 00 00 69 6e 74 65 72 73 65 63 |........intersec| 0001e310 74 73 00 00 30 e9 01 00 46 ff ff ff d0 80 1d 23 |ts..0...F......#| 0001e320 3b 01 00 00 13 00 00 00 00 00 00 00 6f 66 66 73 |;...........offs| 0001e330 65 74 62 6f 78 00 00 00 6c ea 01 00 46 ff ff ff |etbox...l...F...| 0001e340 ea 5e 1d 23 f5 00 00 00 13 00 00 00 00 00 00 00 |.^.#............| 0001e350 70 6f 69 6e 74 5f 74 6f 73 63 72 65 65 6e 00 00 |point_toscreen..| 0001e360 64 eb 01 00 46 ff ff ff 57 66 1d 23 f9 00 00 00 |d...F...Wf.#....| 0001e370 13 00 00 00 00 00 00 00 70 6f 69 6e 74 5f 74 6f |........point_to| 0001e380 77 6f 72 6b 61 72 65 61 00 00 00 00 60 ec 01 00 |workarea....`...| 0001e390 46 ff ff ff ce a8 1d 23 8d 00 00 00 13 00 00 00 |F......#........| 0001e3a0 00 00 00 00 70 6f 69 6e 74 73 74 72 00 00 00 00 |....pointstr....| 0001e3b0 f0 ec 01 00 46 ff ff ff 88 6e 1d 23 01 01 00 00 |....F....n.#....| 0001e3c0 13 00 00 00 00 00 00 00 77 69 74 68 69 6e 62 6f |........withinbo| 0001e3d0 78 00 00 00 f4 ed 01 00 46 ff ff ff 82 2d 1d 23 |x.......F....-.#| 0001e3e0 5c 01 00 00 13 00 00 00 00 00 00 00 78 5f 74 6f |\...........x_to| 0001e3f0 73 63 72 65 65 6e 00 00 50 ef 01 00 46 ff ff ff |screen..P...F...| 0001e400 b8 3d 1d 23 60 01 00 00 13 00 00 00 00 00 00 00 |.=.#`...........| 0001e410 78 5f 74 6f 77 6f 72 6b 61 72 65 61 00 00 00 00 |x_toworkarea....| 0001e420 b0 f0 01 00 46 ff ff ff 93 36 1d 23 5c 01 00 00 |....F....6.#\...| 0001e430 13 00 00 00 00 00 00 00 79 5f 74 6f 73 63 72 65 |........y_toscre| 0001e440 65 6e 00 00 0c f2 01 00 46 ff ff ff 48 45 1d 23 |en......F...HE.#| 0001e450 60 01 00 00 13 00 00 00 00 00 00 00 79 5f 74 6f |`...........y_to| 0001e460 77 6f 72 6b 61 72 65 61 00 00 00 00 44 41 54 41 |workarea....DATA| 0001e470 ee 00 00 00 63 6f 6f 72 64 73 5f 62 6f 78 5f 74 |....coords_box_t| 0001e480 6f 73 63 72 65 65 6e 0a 53 79 6e 74 61 78 3a 09 |oscreen.Syntax:.| 0001e490 76 6f 69 64 20 63 6f 6f 72 64 73 5f 62 6f 78 5f |void coords_box_| 0001e4a0 74 6f 73 63 72 65 65 6e 20 28 3c 77 69 6d 70 5f |toscreen (<wimp_| 0001e4b0 62 6f 78 3e 20 2a 62 2c 20 3c 63 6f 6f 72 64 73 |box> *b, <coords| 0001e4c0 5f 63 76 74 73 74 72 3e 20 2a 72 29 3b 0a 48 65 |_cvtstr> *r);.He| 0001e4d0 61 64 65 72 3a 09 3c 63 6f 6f 72 64 73 2e 68 3d |ader:.<coords.h=| 0001e4e0 3e 63 6f 6f 72 64 73 3e 0a 0a 54 68 69 73 20 66 |>coords>..This f| 0001e4f0 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 73 |unction converts| 0001e500 20 74 68 65 20 72 65 63 74 61 6e 67 6c 65 20 69 | the rectangle i| 0001e510 6e 20 77 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 |n work area coor| 0001e520 64 69 6e 61 74 65 73 20 70 6f 69 6e 74 65 64 20 |dinates pointed | 0001e530 74 6f 20 62 79 20 2f 62 2f 2c 20 69 6e 74 6f 20 |to by /b/, into | 0001e540 6f 6e 65 20 69 6e 20 73 63 72 65 65 6e 20 63 6f |one in screen co| 0001e550 6f 72 64 69 6e 61 74 65 73 2e 00 00 44 41 54 41 |ordinates...DATA| 0001e560 f2 00 00 00 63 6f 6f 72 64 73 5f 62 6f 78 5f 74 |....coords_box_t| 0001e570 6f 77 6f 72 6b 61 72 65 61 0a 53 79 6e 74 61 78 |oworkarea.Syntax| 0001e580 3a 09 76 6f 69 64 20 63 6f 6f 72 64 73 5f 62 6f |:.void coords_bo| 0001e590 78 5f 74 6f 77 6f 72 6b 61 72 65 61 20 28 3c 77 |x_toworkarea (<w| 0001e5a0 69 6d 70 5f 62 6f 78 3e 20 2a 62 2c 20 3c 63 6f |imp_box> *b, <co| 0001e5b0 6f 72 64 73 5f 63 76 74 73 74 72 3e 20 2a 72 29 |ords_cvtstr> *r)| 0001e5c0 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6f 72 64 |;.Header:.<coord| 0001e5d0 73 2e 68 3d 3e 63 6f 6f 72 64 73 3e 0a 0a 54 68 |s.h=>coords>..Th| 0001e5e0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 |is function conv| 0001e5f0 65 72 74 73 20 74 68 65 20 72 65 63 74 61 6e 67 |erts the rectang| 0001e600 6c 65 20 69 6e 20 73 63 72 65 65 6e 20 63 6f 6f |le in screen coo| 0001e610 72 64 69 6e 61 74 65 73 20 70 6f 69 6e 74 65 64 |rdinates pointed| 0001e620 20 74 6f 20 62 79 20 2f 62 2f 2c 20 69 6e 74 6f | to by /b/, into| 0001e630 20 6f 6e 65 20 69 6e 20 77 6f 72 6b 20 61 72 65 | one in work are| 0001e640 61 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 00 00 |a coordinates...| 0001e650 44 41 54 41 f6 00 00 00 63 6f 6f 72 64 73 5f 62 |DATA....coords_b| 0001e660 6f 78 65 73 6f 76 65 72 6c 61 70 0a 53 79 6e 74 |oxesoverlap.Synt| 0001e670 61 78 3a 09 3c 42 4f 4f 4c 3e 20 63 6f 6f 72 64 |ax:.<BOOL> coord| 0001e680 73 5f 62 6f 78 65 73 6f 76 65 72 6c 61 70 20 28 |s_boxesoverlap (| 0001e690 3c 77 69 6d 70 5f 62 6f 78 3e 20 2a 61 2c 20 77 |<wimp_box> *a, w| 0001e6a0 69 6d 70 5f 62 6f 78 20 2a 62 29 3b 0a 48 65 61 |imp_box *b);.Hea| 0001e6b0 64 65 72 3a 09 3c 63 6f 6f 72 64 73 2e 68 3d 3e |der:.<coords.h=>| 0001e6c0 63 6f 6f 72 64 73 3e 0a 0a 52 65 74 75 72 6e 73 |coords>..Returns| 0001e6d0 3a 09 3c 54 52 55 45 3e 20 6f 72 20 3c 46 41 4c |:.<TRUE> or <FAL| 0001e6e0 53 45 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |SE>...This funct| 0001e6f0 69 6f 6e 20 63 68 65 63 6b 73 20 74 6f 20 73 65 |ion checks to se| 0001e700 65 20 69 66 20 61 6e 79 20 70 61 72 74 20 6f 66 |e if any part of| 0001e710 20 74 68 65 20 74 77 6f 20 72 65 63 74 61 6e 67 | the two rectang| 0001e720 6c 65 73 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |les pointed to b| 0001e730 79 20 2f 61 2f 20 61 6e 64 20 2f 62 2f 20 6f 76 |y /a/ and /b/ ov| 0001e740 65 72 6c 61 70 2e 00 00 44 41 54 41 d5 00 00 00 |erlap...DATA....| 0001e750 63 6f 6f 72 64 73 5f 63 76 74 73 74 72 0a 54 68 |coords_cvtstr.Th| 0001e760 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0001e770 65 64 20 69 6e 20 3c 63 6f 6f 72 64 73 2e 68 3d |ed in <coords.h=| 0001e780 3e 63 6f 6f 72 64 73 3e 20 61 73 20 61 6e 20 6f |>coords> as an o| 0001e790 62 6a 65 63 74 20 63 61 70 61 62 6c 65 20 6f 66 |bject capable of| 0001e7a0 20 68 6f 6c 64 69 6e 67 20 69 6e 66 6f 72 6d 61 | holding informa| 0001e7b0 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 70 |tion about the p| 0001e7c0 6f 73 69 74 69 6f 6e 20 6f 66 20 61 20 77 69 6e |osition of a win| 0001e7d0 64 6f 77 20 61 6e 64 20 69 74 73 20 73 63 72 6f |dow and its scro| 0001e7e0 6c 6c 20 62 61 72 73 2e 0a 0a 20 20 5c 7b 0a 20 |ll bars... \{. | 0001e7f0 20 20 20 3c 77 69 6d 70 5f 62 6f 78 3e 20 62 6f | <wimp_box> bo| 0001e800 78 3b 0a 20 20 20 20 69 6e 74 20 20 20 20 20 20 |x;. int | 0001e810 73 63 78 2c 20 73 63 79 3b 0a 20 20 7d 00 00 00 |scx, scy;. }...| 0001e820 44 41 54 41 0f 01 00 00 63 6f 6f 72 64 73 5f 69 |DATA....coords_i| 0001e830 6e 74 65 72 73 65 63 74 73 0a 53 79 6e 74 61 78 |ntersects.Syntax| 0001e840 3a 09 3c 42 4f 4f 4c 3e 20 63 6f 6f 72 64 73 5f |:.<BOOL> coords_| 0001e850 69 6e 74 65 72 73 65 63 74 73 20 28 3c 77 69 6d |intersects (<wim| 0001e860 70 5f 62 6f 78 3e 20 2a 6c 2c 20 77 69 6d 70 5f |p_box> *l, wimp_| 0001e870 62 6f 78 20 2a 62 2c 20 69 6e 74 20 77 69 64 74 |box *b, int widt| 0001e880 68 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6f |h);.Header:.<coo| 0001e890 72 64 73 2e 68 3d 3e 63 6f 6f 72 64 73 3e 0a 0a |rds.h=>coords>..| 0001e8a0 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 0001e8b0 6f 72 20 3c 46 41 4c 53 45 3e 2e 0a 0a 54 68 69 |or <FALSE>...Thi| 0001e8c0 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b |s function check| 0001e8d0 73 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 20 |s to see if the | 0001e8e0 6c 69 6e 65 20 64 65 66 69 6e 65 64 20 62 79 20 |line defined by | 0001e8f0 2f 6c 2f 20 28 77 69 74 68 20 77 69 64 74 68 20 |/l/ (with width | 0001e900 7b 2f 7d 77 69 64 74 68 7b 2f 7d 29 20 69 6e 74 |{/}width{/}) int| 0001e910 65 72 73 65 63 74 73 20 74 68 65 20 62 6f 78 20 |ersects the box | 0001e920 64 65 66 69 6e 65 64 20 62 79 20 2f 62 2f 2e 00 |defined by /b/..| 0001e930 44 41 54 41 3b 01 00 00 63 6f 6f 72 64 73 5f 6f |DATA;...coords_o| 0001e940 66 66 73 65 74 62 6f 78 0a 53 79 6e 74 61 78 3a |ffsetbox.Syntax:| 0001e950 09 76 6f 69 64 20 63 6f 6f 72 64 73 5f 6f 66 66 |.void coords_off| 0001e960 73 65 74 62 6f 78 20 28 3c 77 69 6d 70 5f 62 6f |setbox (<wimp_bo| 0001e970 78 3e 20 2a 73 72 63 2c 20 69 6e 74 20 64 78 2c |x> *src, int dx,| 0001e980 20 69 6e 74 20 64 79 2c 20 3c 77 69 6d 70 5f 62 | int dy, <wimp_b| 0001e990 6f 78 3e 20 2a 72 65 73 75 6c 74 29 3b 0a 48 65 |ox> *result);.He| 0001e9a0 61 64 65 72 3a 09 3c 63 6f 6f 72 64 73 2e 68 3d |ader:.<coords.h=| 0001e9b0 3e 63 6f 6f 72 64 73 3e 0a 0a 54 68 69 73 20 66 |>coords>..This f| 0001e9c0 75 6e 63 74 69 6f 6e 20 61 64 64 73 20 2f 64 78 |unction adds /dx| 0001e9d0 2f 20 74 6f 20 61 6c 6c 20 78 20 63 6f 6f 72 64 |/ to all x coord| 0001e9e0 69 6e 61 74 65 73 20 69 6e 20 74 68 65 20 62 6f |inates in the bo| 0001e9f0 78 20 2f 73 72 63 2f 20 61 6e 64 20 2f 64 79 2f |x /src/ and /dy/| 0001ea00 20 74 6f 20 61 6c 6c 20 79 20 63 6f 6f 72 64 69 | to all y coordi| 0001ea10 6e 61 74 65 73 2c 20 61 6e 64 20 70 6c 61 63 65 |nates, and place| 0001ea20 73 20 74 68 65 20 72 65 73 75 6c 74 20 69 6e 20 |s the result in | 0001ea30 2f 72 65 73 75 6c 74 2f 2e 0a 0a 2f 73 6f 75 72 |/result/.../sour| 0001ea40 63 65 2f 20 61 6e 64 20 2f 72 65 73 75 6c 74 2f |ce/ and /result/| 0001ea50 20 6d 61 79 20 62 65 20 74 68 65 20 73 61 6d 65 | may be the same| 0001ea60 20 73 74 72 75 63 74 75 72 65 2e 00 44 41 54 41 | structure..DATA| 0001ea70 f5 00 00 00 63 6f 6f 72 64 73 5f 70 6f 69 6e 74 |....coords_point| 0001ea80 5f 74 6f 73 63 72 65 65 6e 0a 53 79 6e 74 61 78 |_toscreen.Syntax| 0001ea90 3a 09 76 6f 69 64 20 63 6f 6f 72 64 73 5f 70 6f |:.void coords_po| 0001eaa0 69 6e 74 5f 74 6f 73 63 72 65 65 6e 20 28 3c 63 |int_toscreen (<c| 0001eab0 6f 6f 72 64 73 5f 70 6f 69 6e 74 73 74 72 3e 20 |oords_pointstr> | 0001eac0 2a 70 2c 20 3c 63 6f 6f 72 64 73 5f 63 76 74 73 |*p, <coords_cvts| 0001ead0 74 72 3e 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a |tr> *r);.Header:| 0001eae0 09 3c 63 6f 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 |.<coords.h=>coor| 0001eaf0 64 73 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ds>..This functi| 0001eb00 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |on converts the | 0001eb10 70 6f 69 6e 74 20 69 6e 20 77 6f 72 6b 20 61 72 |point in work ar| 0001eb20 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 70 |ea coordinates p| 0001eb30 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 70 2f |ointed to by /p/| 0001eb40 2c 20 69 6e 74 6f 20 6f 6e 65 20 69 6e 20 73 63 |, into one in sc| 0001eb50 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 |reen coordinates| 0001eb60 2e 00 00 00 44 41 54 41 f9 00 00 00 63 6f 6f 72 |....DATA....coor| 0001eb70 64 73 5f 70 6f 69 6e 74 5f 74 6f 77 6f 72 6b 61 |ds_point_toworka| 0001eb80 72 65 61 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |rea.Syntax:.void| 0001eb90 20 63 6f 6f 72 64 73 5f 70 6f 69 6e 74 5f 74 6f | coords_point_to| 0001eba0 77 6f 72 6b 61 72 65 61 20 28 3c 63 6f 6f 72 64 |workarea (<coord| 0001ebb0 73 5f 70 6f 69 6e 74 73 74 72 3e 20 2a 70 2c 20 |s_pointstr> *p, | 0001ebc0 3c 63 6f 6f 72 64 73 5f 63 76 74 73 74 72 3e 20 |<coords_cvtstr> | 0001ebd0 2a 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f |*r);.Header:.<co| 0001ebe0 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 64 73 3e 0a |ords.h=>coords>.| 0001ebf0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0001ec00 6f 6e 76 65 72 74 73 20 74 68 65 20 70 6f 69 6e |onverts the poin| 0001ec10 74 20 69 6e 20 73 63 72 65 65 6e 20 63 6f 6f 72 |t in screen coor| 0001ec20 64 69 6e 61 74 65 73 20 70 6f 69 6e 74 65 64 20 |dinates pointed | 0001ec30 74 6f 20 62 79 20 2f 70 2f 2c 20 69 6e 74 6f 20 |to by /p/, into | 0001ec40 6f 6e 65 20 69 6e 20 77 6f 72 6b 20 61 72 65 61 |one in work area| 0001ec50 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 00 00 00 | coordinates....| 0001ec60 44 41 54 41 8d 00 00 00 63 6f 6f 72 64 73 5f 70 |DATA....coords_p| 0001ec70 6f 69 6e 74 73 74 72 0a 54 68 69 73 20 74 79 70 |ointstr.This typ| 0001ec80 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 0001ec90 3c 63 6f 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 64 |<coords.h=>coord| 0001eca0 73 3e 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 |s> as an object | 0001ecb0 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 |capable of holdi| 0001ecc0 6e 67 20 61 20 63 6f 6f 72 64 69 6e 61 74 65 20 |ng a coordinate | 0001ecd0 70 61 69 72 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 |pair... \{. | 0001ece0 69 6e 74 20 78 2c 20 79 3b 0a 20 20 7d 00 00 00 |int x, y;. }...| 0001ecf0 44 41 54 41 01 01 00 00 63 6f 6f 72 64 73 5f 77 |DATA....coords_w| 0001ed00 69 74 68 69 6e 62 6f 78 0a 53 79 6e 74 61 78 3a |ithinbox.Syntax:| 0001ed10 09 3c 42 4f 4f 4c 3e 20 63 6f 6f 72 64 73 5f 77 |.<BOOL> coords_w| 0001ed20 69 74 68 69 6e 62 6f 78 20 28 3c 63 6f 6f 72 64 |ithinbox (<coord| 0001ed30 73 5f 70 6f 69 6e 74 73 74 72 3e 20 2a 70 2c 20 |s_pointstr> *p, | 0001ed40 3c 77 69 6d 70 5f 62 6f 78 3e 20 2a 62 6f 78 29 |<wimp_box> *box)| 0001ed50 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f 6f 72 64 |;.Header:.<coord| 0001ed60 73 2e 68 3d 3e 63 6f 6f 72 64 73 3e 0a 0a 52 65 |s.h=>coords>..Re| 0001ed70 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 6f 72 |turns:.<TRUE> or| 0001ed80 20 3c 46 41 4c 53 45 3e 2e 0a 0a 54 68 69 73 20 | <FALSE>...This | 0001ed90 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 20 77 |function tests w| 0001eda0 68 65 74 68 65 72 20 74 68 65 20 70 6f 69 6e 74 |hether the point| 0001edb0 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f | pointed to by /| 0001edc0 70 2f 20 6c 69 65 73 20 77 69 74 68 69 6e 20 74 |p/ lies within t| 0001edd0 68 65 20 72 65 63 74 61 6e 67 6c 65 20 70 6f 69 |he rectangle poi| 0001ede0 6e 74 65 64 20 74 6f 20 62 79 20 2f 62 6f 78 2f |nted to by /box/| 0001edf0 2e 00 00 00 44 41 54 41 5c 01 00 00 63 6f 6f 72 |....DATA\...coor| 0001ee00 64 73 5f 78 5f 74 6f 73 63 72 65 65 6e 0a 53 79 |ds_x_toscreen.Sy| 0001ee10 6e 74 61 78 3a 09 69 6e 74 20 63 6f 6f 72 64 73 |ntax:.int coords| 0001ee20 5f 78 5f 74 6f 73 63 72 65 65 6e 20 28 69 6e 74 |_x_toscreen (int| 0001ee30 20 78 2c 20 3c 63 6f 6f 72 64 73 5f 63 76 74 73 | x, <coords_cvts| 0001ee40 74 72 3e 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a |tr> *r);.Header:| 0001ee50 09 3c 63 6f 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 |.<coords.h=>coor| 0001ee60 64 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |ds>..Returns:.Th| 0001ee70 65 20 78 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 |e x screen coord| 0001ee80 69 6e 61 74 65 2e 0a 0a 54 68 69 73 20 66 75 6e |inate...This fun| 0001ee90 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 6e 20 78 |ction takes an x| 0001eea0 20 77 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 64 | work area coord| 0001eeb0 69 6e 61 74 65 20 61 6e 64 20 61 20 70 6f 69 6e |inate and a poin| 0001eec0 74 65 72 20 74 6f 20 61 20 7b 2f 7d 63 6f 6f 72 |ter to a {/}coor| 0001eed0 64 73 5f 63 76 74 73 74 72 7b 2f 7d 20 28 77 68 |ds_cvtstr{/} (wh| 0001eee0 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |ich contains the| 0001eef0 20 77 69 6e 64 6f 77 20 61 6e 64 20 73 63 72 6f | window and scro| 0001ef00 6c 6c 20 62 61 72 20 70 6f 73 69 74 69 6f 6e 29 |ll bar position)| 0001ef10 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20 74 68 | and converts th| 0001ef20 65 20 77 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 |e work area coor| 0001ef30 64 69 6e 61 74 65 20 69 6e 74 6f 20 61 20 73 63 |dinate into a sc| 0001ef40 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 2e |reen coordinate.| 0001ef50 44 41 54 41 60 01 00 00 63 6f 6f 72 64 73 5f 78 |DATA`...coords_x| 0001ef60 5f 74 6f 77 6f 72 6b 61 72 65 61 0a 53 79 6e 74 |_toworkarea.Synt| 0001ef70 61 78 3a 09 69 6e 74 20 63 6f 6f 72 64 73 5f 78 |ax:.int coords_x| 0001ef80 5f 74 6f 77 6f 72 6b 61 72 65 61 20 28 69 6e 74 |_toworkarea (int| 0001ef90 20 78 2c 20 3c 63 6f 6f 72 64 73 5f 63 76 74 73 | x, <coords_cvts| 0001efa0 74 72 3e 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a |tr> *r);.Header:| 0001efb0 09 3c 63 6f 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 |.<coords.h=>coor| 0001efc0 64 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |ds>..Returns:.Th| 0001efd0 65 20 78 20 77 6f 72 6b 20 61 72 65 61 20 63 6f |e x work area co| 0001efe0 6f 72 64 69 6e 61 74 65 2e 0a 0a 54 68 69 73 20 |ordinate...This | 0001eff0 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 |function takes a| 0001f000 6e 20 78 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 |n x screen coord| 0001f010 69 6e 61 74 65 20 61 6e 64 20 61 20 70 6f 69 6e |inate and a poin| 0001f020 74 65 72 20 74 6f 20 61 20 7b 2f 7d 63 6f 6f 72 |ter to a {/}coor| 0001f030 64 73 5f 63 76 74 73 74 72 7b 2f 7d 20 28 77 68 |ds_cvtstr{/} (wh| 0001f040 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |ich contains the| 0001f050 20 77 69 6e 64 6f 77 20 61 6e 64 20 73 63 72 6f | window and scro| 0001f060 6c 6c 20 62 61 72 20 70 6f 73 69 74 69 6f 6e 29 |ll bar position)| 0001f070 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20 74 68 | and converts th| 0001f080 65 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e |e screen coordin| 0001f090 61 74 65 20 69 6e 74 6f 20 61 20 77 6f 72 6b 20 |ate into a work | 0001f0a0 61 72 65 61 20 63 6f 6f 72 64 69 6e 61 74 65 2e |area coordinate.| 0001f0b0 44 41 54 41 5c 01 00 00 63 6f 6f 72 64 73 5f 79 |DATA\...coords_y| 0001f0c0 5f 74 6f 73 63 72 65 65 6e 0a 53 79 6e 74 61 78 |_toscreen.Syntax| 0001f0d0 3a 09 69 6e 74 20 63 6f 6f 72 64 73 5f 79 5f 74 |:.int coords_y_t| 0001f0e0 6f 73 63 72 65 65 6e 20 28 69 6e 74 20 79 2c 20 |oscreen (int y, | 0001f0f0 3c 63 6f 6f 72 64 73 5f 63 76 74 73 74 72 3e 20 |<coords_cvtstr> | 0001f100 2a 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f |*r);.Header:.<co| 0001f110 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 64 73 3e 0a |ords.h=>coords>.| 0001f120 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 79 20 |.Returns:.The y | 0001f130 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 |screen coordinat| 0001f140 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0001f150 6e 20 74 61 6b 65 73 20 61 6e 20 79 20 77 6f 72 |n takes an y wor| 0001f160 6b 20 61 72 65 61 20 63 6f 6f 72 64 69 6e 61 74 |k area coordinat| 0001f170 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 |e and a pointer | 0001f180 74 6f 20 61 20 7b 2f 7d 63 6f 6f 72 64 73 5f 63 |to a {/}coords_c| 0001f190 76 74 73 74 72 7b 2f 7d 20 28 77 68 69 63 68 20 |vtstr{/} (which | 0001f1a0 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 77 69 6e |contains the win| 0001f1b0 64 6f 77 20 61 6e 64 20 73 63 72 6f 6c 6c 20 62 |dow and scroll b| 0001f1c0 61 72 20 70 6f 73 69 74 69 6f 6e 29 20 61 6e 64 |ar position) and| 0001f1d0 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 77 6f | converts the wo| 0001f1e0 72 6b 20 61 72 65 61 20 63 6f 6f 72 64 69 6e 61 |rk area coordina| 0001f1f0 74 65 20 69 6e 74 6f 20 61 20 73 63 72 65 65 6e |te into a screen| 0001f200 20 63 6f 6f 72 64 69 6e 61 74 65 2e 44 41 54 41 | coordinate.DATA| 0001f210 60 01 00 00 63 6f 6f 72 64 73 5f 79 5f 74 6f 77 |`...coords_y_tow| 0001f220 6f 72 6b 61 72 65 61 0a 53 79 6e 74 61 78 3a 09 |orkarea.Syntax:.| 0001f230 69 6e 74 20 63 6f 6f 72 64 73 5f 79 5f 74 6f 77 |int coords_y_tow| 0001f240 6f 72 6b 61 72 65 61 20 28 69 6e 74 20 79 2c 20 |orkarea (int y, | 0001f250 3c 63 6f 6f 72 64 73 5f 63 76 74 73 74 72 3e 20 |<coords_cvtstr> | 0001f260 2a 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 6f |*r);.Header:.<co| 0001f270 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 64 73 3e 0a |ords.h=>coords>.| 0001f280 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 79 20 |.Returns:.The y | 0001f290 77 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 64 69 |work area coordi| 0001f2a0 6e 61 74 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |nate...This func| 0001f2b0 74 69 6f 6e 20 74 61 6b 65 73 20 61 6e 20 79 20 |tion takes an y | 0001f2c0 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 |screen coordinat| 0001f2d0 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 |e and a pointer | 0001f2e0 74 6f 20 61 20 7b 2f 7d 63 6f 6f 72 64 73 5f 63 |to a {/}coords_c| 0001f2f0 76 74 73 74 72 7b 2f 7d 20 28 77 68 69 63 68 20 |vtstr{/} (which | 0001f300 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 77 69 6e |contains the win| 0001f310 64 6f 77 20 61 6e 64 20 73 63 72 6f 6c 6c 20 62 |dow and scroll b| 0001f320 61 72 20 70 6f 73 69 74 69 6f 6e 29 20 61 6e 64 |ar position) and| 0001f330 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 73 63 | converts the sc| 0001f340 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 20 |reen coordinate | 0001f350 69 6e 74 6f 20 61 20 77 6f 72 6b 20 61 72 65 61 |into a work area| 0001f360 20 63 6f 6f 72 64 69 6e 61 74 65 2e 44 41 54 41 | coordinate.DATA| 0001f370 65 01 00 00 44 65 73 6b 4c 69 62 3a 43 6f 72 65 |e...DeskLib:Core| 0001f380 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 31 |.h.Version: 1.01| 0001f390 20 28 30 32 20 4d 61 72 20 31 39 39 34 29 0a 23 | (02 Mar 1994).#| 0001f3a0 6c 69 6e 65 0a 54 68 65 20 5c 3c 43 6f 72 65 2e |line.The \<Core.| 0001f3b0 68 3e 20 68 65 61 64 65 72 20 64 65 66 69 6e 65 |h> header define| 0001f3c0 73 20 73 65 76 65 72 61 6c 20 6d 61 63 72 6f 73 |s several macros| 0001f3d0 20 75 73 65 64 20 62 79 20 74 68 65 20 72 65 73 | used by the res| 0001f3e0 74 20 6f 66 20 44 65 73 6b 4c 69 62 2e 20 49 74 |t of DeskLib. It| 0001f3f0 20 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 74 77 | also defines tw| 0001f400 6f 20 74 79 70 65 73 2e 0a 0a 4d 61 63 72 6f 73 |o types...Macros| 0001f410 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 0a 23 54 61 |:..#indent 4.#Ta| 0001f420 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 34 0a 3c 46 |ble columns 4.<F| 0001f430 41 4c 53 45 3e 0a 3c 54 52 55 45 3e 0a 3c 45 52 |ALSE>.<TRUE>.<ER| 0001f440 52 4f 52 3e 0a 3c 4e 4f 45 52 52 4f 52 3e 0a 3c |ROR>.<NOERROR>.<| 0001f450 4e 55 4c 4c 3e 0a 3c 55 4e 55 53 45 44 5f 41 52 |NULL>.<UNUSED_AR| 0001f460 47 3e 0a 3c 55 4e 55 53 45 44 3e 0a 3c 4d 41 58 |G>.<UNUSED>.<MAX| 0001f470 3e 0a 3c 4d 49 4e 3e 0a 3c 4f 53 43 4c 49 3e 0a |>.<MIN>.<OSCLI>.| 0001f480 0a 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 69 6e |..#EndTable..#in| 0001f490 64 65 6e 74 20 30 0a 54 79 70 65 73 3a 0a 0a 23 |dent 0.Types:..#| 0001f4a0 49 6e 64 65 6e 74 20 31 35 0a 23 54 61 62 6c 65 |Indent 15.#Table| 0001f4b0 20 31 20 31 35 0a 3c 42 4f 4f 4c 3e 0a 3c 6f 73 | 1 15.<BOOL>.<os| 0001f4c0 5f 65 72 72 6f 72 3e 0a 23 45 6e 64 54 61 62 6c |_error>.#EndTabl| 0001f4d0 65 00 00 00 44 49 52 24 28 00 00 00 28 00 00 00 |e...DIR$(...(...| 0001f4e0 fc f4 01 00 46 fd ff ff a0 b5 54 26 f3 00 00 00 |....F.....T&....| 0001f4f0 13 00 00 00 00 00 00 00 54 4c 00 00 44 41 54 41 |........TL..DATA| 0001f500 f3 00 00 00 54 69 6d 73 4c 69 62 3a 43 6f 72 65 |....TimsLib:Core| 0001f510 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 63 |.h.This header c| 0001f520 6f 6e 74 61 69 6e 73 20 64 65 66 69 6e 69 74 69 |ontains definiti| 0001f530 6f 6e 73 20 75 73 65 64 20 62 79 20 74 68 65 20 |ons used by the | 0001f540 72 65 73 74 20 6f 66 20 54 69 6d 73 4c 69 62 20 |rest of TimsLib | 0001f550 61 6e 64 20 61 6c 73 6f 20 75 73 65 66 75 6c 20 |and also useful | 0001f560 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f 72 20 |definitions for | 0001f570 79 6f 75 72 20 6f 77 6e 20 63 6f 64 65 2e 0a 0a |your own code...| 0001f580 4d 61 63 72 6f 73 3a 0a 0a 23 49 6e 64 65 6e 74 |Macros:..#Indent| 0001f590 20 35 0a 23 54 61 62 6c 65 20 33 20 31 34 0a 3c | 5.#Table 3 14.<| 0001f5a0 55 4e 55 53 45 44 5f 41 52 47 3e 0a 3c 55 4e 55 |UNUSED_ARG>.<UNU| 0001f5b0 53 45 44 3e 0a 3c 42 4f 4f 4c 3e 0a 3c 54 52 55 |SED>.<BOOL>.<TRU| 0001f5c0 45 3e 0a 3c 46 41 4c 53 45 3e 0a 3c 4e 55 4c 4c |E>.<FALSE>.<NULL| 0001f5d0 3e 0a 3c 4d 41 58 3e 0a 3c 4d 49 4e 3e 0a 3c 4f |>.<MAX>.<MIN>.<O| 0001f5e0 53 43 4c 49 3e 0a 23 45 6e 64 54 61 62 6c 65 00 |SCLI>.#EndTable.| 0001f5f0 44 41 54 41 a9 00 00 00 63 6f 73 0a 53 79 6e 74 |DATA....cos.Synt| 0001f600 61 78 3a 09 64 6f 75 62 6c 65 20 63 6f 73 20 28 |ax:.double cos (| 0001f610 64 6f 75 62 6c 65 20 78 29 3b 0a 48 65 61 64 65 |double x);.Heade| 0001f620 72 3a 09 3c 6d 61 74 68 2e 68 3d 3e 6d 61 74 68 |r:.<math.h=>math| 0001f630 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 |>..Returns:.The | 0001f640 63 6f 73 69 6e 65 20 6f 66 20 78 20 69 6e 20 72 |cosine of x in r| 0001f650 61 64 69 61 6e 73 2e 0a 0a 54 68 69 73 20 66 75 |adians...This fu| 0001f660 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 |nction calculate| 0001f670 73 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c 20 |s the principal | 0001f680 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 6f 73 |value of the cos| 0001f690 69 6e 65 20 6f 66 20 78 2e 00 00 00 44 41 54 41 |ine of x....DATA| 0001f6a0 cb 00 00 00 63 6f 73 68 0a 53 79 6e 74 61 78 3a |....cosh.Syntax:| 0001f6b0 09 64 6f 75 62 6c 65 20 63 6f 73 68 20 28 64 6f |.double cosh (do| 0001f6c0 75 62 6c 65 20 78 29 3b 0a 48 65 61 64 65 72 3a |uble x);.Header:| 0001f6d0 09 3c 6d 61 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a |.<math.h=>math>.| 0001f6e0 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 68 79 |.Returns:.The hy| 0001f6f0 70 65 72 62 6f 6c 69 63 20 63 6f 73 69 6e 65 20 |perbolic cosine | 0001f700 6f 66 20 78 20 69 6e 20 72 61 64 69 61 6e 73 2e |of x in radians.| 0001f710 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0001f720 63 61 6c 63 75 6c 61 74 65 73 20 74 68 65 20 68 |calculates the h| 0001f730 79 70 65 72 62 6f 6c 69 63 20 63 6f 73 69 6e 65 |yperbolic cosine| 0001f740 20 6f 66 20 78 2e 20 41 6e 20 65 72 72 6f 72 20 | of x. An error | 0001f750 6f 63 63 75 72 73 20 69 66 20 78 20 69 73 20 74 |occurs if x is t| 0001f760 6f 6f 20 62 69 67 2e 00 44 49 52 24 4c 00 00 00 |oo big..DIR$L...| 0001f770 4c 00 00 00 b4 f7 01 00 46 fd ff ff 9a 7d b5 22 |L.......F....}."| 0001f780 c4 00 00 00 13 00 00 00 00 00 00 00 66 6c 61 67 |............flag| 0001f790 73 5f 00 00 78 f8 01 00 46 fd ff ff ef ac f0 24 |s_..x...F......$| 0001f7a0 ee 00 00 00 13 00 00 00 00 00 00 00 70 61 6c 65 |............pale| 0001f7b0 6e 74 5f 00 44 41 54 41 c4 00 00 00 43 6f 6c 6f |nt_.DATA....Colo| 0001f7c0 75 72 54 72 61 6e 73 5f 53 65 74 47 43 4f 4c 20 |urTrans_SetGCOL | 0001f7d0 46 6c 61 67 73 0a 42 69 74 73 20 20 20 20 4d 65 |Flags.Bits Me| 0001f7e0 61 6e 69 6e 67 0a 30 2d 36 20 20 20 20 20 52 65 |aning.0-6 Re| 0001f7f0 73 65 72 76 65 64 2c 20 73 68 6f 75 6c 64 20 62 |served, should b| 0001f800 65 20 7a 65 72 6f 2e 0a 37 20 20 20 20 20 20 20 |e zero..7 | 0001f810 53 65 74 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 |Set background c| 0001f820 6f 6c 6f 75 72 2e 0a 38 20 20 20 20 20 20 20 55 |olour..8 U| 0001f830 73 65 20 64 69 74 68 65 72 69 6e 67 20 74 6f 20 |se dithering to | 0001f840 69 6d 70 72 6f 76 65 20 61 70 70 72 6f 78 69 6d |improve approxim| 0001f850 61 74 69 6f 6e 2e 0a 39 2d 33 31 20 20 20 20 52 |ation..9-31 R| 0001f860 65 73 65 72 76 65 64 2c 20 73 68 6f 75 6c 64 20 |eserved, should | 0001f870 62 65 20 7a 65 72 6f 2e 44 41 54 41 ee 00 00 00 |be zero.DATA....| 0001f880 50 61 6c 65 74 74 65 20 45 6e 74 72 79 0a 54 68 |Palette Entry.Th| 0001f890 69 73 20 69 73 20 61 20 6c 6f 6e 67 20 69 6e 74 |is is a long int| 0001f8a0 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 30 78 42 | of the form 0xB| 0001f8b0 42 47 47 52 52 30 30 20 69 65 20 74 68 65 20 69 |BGGRR00 ie the i| 0001f8c0 6e 74 65 6e 73 69 74 79 20 6f 66 20 65 61 63 68 |ntensity of each| 0001f8d0 20 6f 66 20 52 65 64 2c 20 47 72 65 65 6e 2c 20 | of Red, Green, | 0001f8e0 61 6e 64 20 42 6c 75 65 20 69 6e 20 65 61 63 68 |and Blue in each| 0001f8f0 20 6f 66 20 74 6f 70 20 74 68 72 65 65 20 62 79 | of top three by| 0001f900 74 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 |tes. For example| 0001f910 2c 20 77 68 69 74 65 20 69 73 20 30 78 46 46 46 |, white is 0xFFF| 0001f920 46 46 46 30 30 2c 20 62 72 69 67 68 74 20 62 6c |FFF00, bright bl| 0001f930 75 65 20 69 73 20 30 78 46 46 30 30 30 30 30 30 |ue is 0xFF000000| 0001f940 20 61 6e 64 20 68 61 6c 66 20 69 6e 74 65 6e 73 | and half intens| 0001f950 69 74 79 20 72 65 64 20 69 73 20 30 78 30 30 30 |ity red is 0x000| 0001f960 30 37 46 30 30 2e 00 00 44 41 54 41 37 01 00 00 |07F00...DATA7...| 0001f970 63 74 69 6d 65 0a 53 79 6e 74 61 78 3a 09 63 68 |ctime.Syntax:.ch| 0001f980 61 72 20 2a 63 74 69 6d 65 20 28 3c 74 69 6d 65 |ar *ctime (<time| 0001f990 5f 74 3e 20 2a 74 69 6d 65 72 29 3b 0a 48 65 61 |_t> *timer);.Hea| 0001f9a0 64 65 72 3a 09 3c 74 69 6d 65 2e 68 3d 3e 74 69 |der:.<time.h=>ti| 0001f9b0 6d 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |me_h>..Returns:.| 0001f9c0 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 74 |Pointer to the t| 0001f9d0 69 6d 65 20 73 74 72 69 6e 67 2e 0a 0a 54 68 69 |ime string...Thi| 0001f9e0 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 |s function conve| 0001f9f0 72 74 73 20 74 68 65 20 63 61 6c 65 6e 64 61 72 |rts the calendar| 0001fa00 20 74 69 6d 65 20 70 6f 69 6e 74 65 64 20 74 6f | time pointed to| 0001fa10 20 62 79 20 2f 74 69 6d 65 72 2f 20 69 6e 74 6f | by /timer/ into| 0001fa20 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 | a string contai| 0001fa30 6e 69 6e 67 20 74 68 65 20 6c 6f 63 61 6c 20 74 |ning the local t| 0001fa40 69 6d 65 20 65 71 75 69 76 61 6c 65 6e 74 2e 0a |ime equivalent..| 0001fa50 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 0001fa60 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 3a |s equivalent to:| 0001fa70 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c |.{align centre}<| 0001fa80 61 73 63 74 69 6d 65 3e 28 20 3c 6c 6f 63 61 6c |asctime>( <local| 0001fa90 74 69 6d 65 3e 28 74 69 6d 65 72 29 20 29 3b 00 |time>(timer) );.| 0001faa0 44 41 54 41 bd 01 00 00 63 74 79 70 65 2e 68 0a |DATA....ctype.h.| 0001fab0 23 50 61 72 65 6e 74 20 61 6e 73 69 5f 0a 54 68 |#Parent ansi_.Th| 0001fac0 65 20 5c 3c 63 74 79 70 65 2e 68 5c 3e 20 68 65 |e \<ctype.h\> he| 0001fad0 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 61 20 |ader declares a | 0001fae0 6e 75 6d 62 65 72 20 6f 66 0a 66 75 6e 63 74 69 |number of.functi| 0001faf0 6f 6e 73 20 66 6f 72 20 74 65 73 74 69 6e 67 20 |ons for testing | 0001fb00 63 68 61 72 61 63 74 65 72 73 2e 20 49 6e 20 61 |characters. In a| 0001fb10 64 64 69 74 69 6f 6e 0a 74 77 6f 20 66 75 6e 63 |ddition.two func| 0001fb20 74 69 6f 6e 73 20 74 6f 20 63 68 61 6e 67 65 20 |tions to change | 0001fb30 74 68 65 20 63 61 73 65 20 6f 66 20 61 20 63 68 |the case of a ch| 0001fb40 61 72 61 63 74 65 72 0a 61 72 65 20 70 72 6f 76 |aracter.are prov| 0001fb50 69 64 65 64 2e 0a 0a 43 68 61 72 61 63 74 65 72 |ided...Character| 0001fb60 20 74 65 73 74 69 6e 67 20 66 75 6e 63 74 69 6f | testing functio| 0001fb70 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 38 0a 23 |ns:..#Indent 8.#| 0001fb80 54 61 62 6c 65 20 34 20 31 35 0a 3c 69 73 61 6c |Table 4 15.<isal| 0001fb90 6e 75 6d 3e 0a 3c 69 73 61 6c 70 68 61 3e 0a 3c |num>.<isalpha>.<| 0001fba0 69 73 63 6e 74 72 6c 3e 0a 3c 69 73 64 69 67 69 |iscntrl>.<isdigi| 0001fbb0 74 3e 0a 3c 69 73 67 72 61 70 68 3e 0a 3c 69 73 |t>.<isgraph>.<is| 0001fbc0 6c 6f 77 65 72 3e 0a 3c 69 73 70 72 69 6e 74 3e |lower>.<isprint>| 0001fbd0 0a 3c 69 73 70 75 6e 63 74 3e 0a 3c 69 73 73 70 |.<ispunct>.<issp| 0001fbe0 61 63 65 3e 0a 3c 69 73 75 70 70 65 72 3e 0a 3c |ace>.<isupper>.<| 0001fbf0 69 73 78 64 69 67 69 74 3e 0a 23 45 6e 64 54 61 |isxdigit>.#EndTa| 0001fc00 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 30 0a 43 |ble..#Indent 0.C| 0001fc10 61 73 65 20 63 68 61 6e 67 69 6e 67 20 66 75 6e |ase changing fun| 0001fc20 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 |ctions:..#Indent| 0001fc30 20 31 32 0a 23 54 61 62 6c 65 20 31 20 31 35 0a | 12.#Table 1 15.| 0001fc40 3c 74 6f 6c 6f 77 65 72 3e 0a 3c 74 6f 75 70 70 |<tolower>.<toupp| 0001fc50 65 72 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 00 |er>.#EndTable...| 0001fc60 44 41 54 41 29 01 00 00 44 65 73 6b 4c 69 62 3a |DATA)...DeskLib:| 0001fc70 43 6c 65 61 72 2e 68 0a 56 65 72 73 69 6f 6e 3a |Clear.h.Version:| 0001fc80 20 31 2e 30 31 20 28 33 30 20 4a 75 6e 20 31 39 | 1.01 (30 Jun 19| 0001fc90 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 20 68 |94).#line.This h| 0001fca0 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 73 |eader declares s| 0001fcb0 65 76 65 72 61 6c 20 66 75 6e 63 74 69 6f 6e 73 |everal functions| 0001fcc0 20 61 6e 64 20 61 20 74 79 70 65 20 66 6f 72 20 | and a type for | 0001fcd0 68 61 6e 64 6c 69 6e 67 20 43 6c 65 61 72 20 66 |handling Clear f| 0001fce0 69 6c 65 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |iles...Functions| 0001fcf0 3a 0a 0a 23 69 6e 64 65 6e 74 20 35 0a 23 74 61 |:..#indent 5.#ta| 0001fd00 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 43 |ble columns 3.<C| 0001fd10 6c 65 61 72 5f 49 6e 69 74 3e 0a 3c 43 6c 65 61 |lear_Init>.<Clea| 0001fd20 72 5f 4c 6f 61 64 3e 0a 3c 43 6c 65 61 72 5f 53 |r_Load>.<Clear_S| 0001fd30 61 76 65 3e 0a 3c 43 6c 65 61 72 5f 43 72 65 61 |ave>.<Clear_Crea| 0001fd40 74 65 3e 0a 3c 43 6c 65 61 72 5f 46 72 65 65 3e |te>.<Clear_Free>| 0001fd50 0a 0a 23 65 6e 64 74 61 62 6c 65 0a 23 69 6e 64 |..#endtable.#ind| 0001fd60 65 6e 74 0a 0a 54 79 70 65 3a 0a 0a 7b 61 6c 69 |ent..Type:..{ali| 0001fd70 67 6e 20 63 65 6e 74 72 65 7d 3c 63 6c 65 61 72 |gn centre}<clear| 0001fd80 5f 70 69 63 74 75 72 65 3e 00 00 00 44 49 52 24 |_picture>...DIR$| 0001fd90 cc 00 00 00 cc 00 00 00 58 fe 01 00 46 ff ff ff |........X...F...| 0001fda0 5f 10 4f 26 2c 01 00 00 13 00 00 00 00 00 00 00 |_.O&,...........| 0001fdb0 70 69 63 74 75 72 65 00 84 ff 01 00 46 ff ff ff |picture.....F...| 0001fdc0 92 37 4f 26 01 01 00 00 13 00 00 00 00 00 00 00 |.7O&............| 0001fdd0 49 6e 69 74 00 00 00 00 88 00 02 00 46 ff ff ff |Init........F...| 0001fde0 b3 4f 4f 26 e1 00 00 00 13 00 00 00 00 00 00 00 |.OO&............| 0001fdf0 4c 6f 61 64 00 00 00 00 6c 01 02 00 46 ff ff ff |Load....l...F...| 0001fe00 69 5e 4f 26 cc 00 00 00 13 00 00 00 00 00 00 00 |i^O&............| 0001fe10 53 61 76 65 00 00 00 00 38 02 02 00 46 ff ff ff |Save....8...F...| 0001fe20 4f 79 4f 26 25 01 00 00 13 00 00 00 00 00 00 00 |OyO&%...........| 0001fe30 43 72 65 61 74 65 00 00 60 03 02 00 46 ff ff ff |Create..`...F...| 0001fe40 72 85 4f 26 a4 00 00 00 13 00 00 00 00 00 00 00 |r.O&............| 0001fe50 46 72 65 65 00 00 00 00 44 41 54 41 2c 01 00 00 |Free....DATA,...| 0001fe60 63 6c 65 61 72 5f 70 69 63 74 75 72 65 0a 54 68 |clear_picture.Th| 0001fe70 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0001fe80 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 43 |ed in <DeskLib:C| 0001fe90 6c 65 61 72 2e 68 3d 3e 43 6c 65 61 72 3e 20 61 |lear.h=>Clear> a| 0001fea0 73 20 61 20 73 74 72 75 63 74 75 72 65 20 63 6f |s a structure co| 0001feb0 6e 74 61 69 6e 69 6e 67 20 61 20 43 6c 65 61 72 |ntaining a Clear| 0001fec0 20 66 69 6c 65 2e 0a 0a 20 20 20 20 5c 7b 0a 20 | file... \{. | 0001fed0 20 20 20 20 20 20 20 63 68 61 72 09 09 2a 63 72 | char..*cr| 0001fee0 65 61 74 6f 72 3b 0a 20 20 20 20 20 20 20 20 75 |eator;. u| 0001fef0 6e 73 69 67 6e 65 64 09 63 72 65 61 74 6f 72 76 |nsigned.creatorv| 0001ff00 65 72 73 69 6f 6e 3b 0a 20 20 20 20 20 20 20 20 |ersion;. | 0001ff10 75 6e 73 69 67 6e 65 64 09 77 69 64 74 68 2c 20 |unsigned.width, | 0001ff20 68 65 69 67 68 74 3b 0a 20 20 20 20 20 20 20 20 |height;. | 0001ff30 75 6e 73 69 67 6e 65 64 09 62 70 70 3b 0a 20 20 |unsigned.bpp;. | 0001ff40 20 20 20 20 20 20 3c 70 61 6c 65 74 74 65 5f 65 | <palette_e| 0001ff50 6e 74 72 79 3e 09 2a 70 61 6c 65 74 74 65 3b 0a |ntry>.*palette;.| 0001ff60 20 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 | unsigned| 0001ff70 20 63 68 61 72 09 2a 62 69 74 6d 61 70 3b 0a 20 | char.*bitmap;. | 0001ff80 20 20 20 7d 44 41 54 41 01 01 00 00 43 6c 65 61 | }DATA....Clea| 0001ff90 72 5f 49 6e 69 74 0a 53 79 6e 74 61 78 3a 09 76 |r_Init.Syntax:.v| 0001ffa0 6f 69 64 20 43 6c 65 61 72 5f 49 6e 69 74 20 28 |oid Clear_Init (| 0001ffb0 63 68 61 72 20 2a 63 72 65 61 74 6f 72 2c 20 75 |char *creator, u| 0001ffc0 6e 73 69 67 6e 65 64 20 76 65 72 73 69 6f 6e 29 |nsigned version)| 0001ffd0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0001ffe0 69 62 3a 43 6c 65 61 72 2e 68 3d 3e 43 6c 65 61 |ib:Clear.h=>Clea| 0001fff0 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r>..This functio| 00020000 6e 20 74 65 6c 6c 73 20 74 68 65 20 43 6c 65 61 |n tells the Clea| 00020010 72 20 6c 69 62 72 61 72 79 20 77 68 61 74 20 64 |r library what d| 00020020 65 74 61 69 6c 73 20 69 74 20 73 68 6f 75 6c 64 |etails it should| 00020030 20 66 69 6c 6c 20 69 6e 20 74 68 65 20 61 70 70 | fill in the app| 00020040 72 6f 70 72 69 61 74 65 20 66 69 65 6c 64 73 20 |ropriate fields | 00020050 77 68 65 6e 20 75 73 69 6e 67 20 3c 43 6c 65 61 |when using <Clea| 00020060 72 5f 53 61 76 65 3e 2e 20 2f 76 65 72 73 69 6f |r_Save>. /versio| 00020070 6e 2f 20 69 73 20 2a 20 31 30 30 20 61 73 20 75 |n/ is * 100 as u| 00020080 73 75 61 6c 2e 00 00 00 44 41 54 41 e1 00 00 00 |sual....DATA....| 00020090 43 6c 65 61 72 5f 4c 6f 61 64 0a 53 79 6e 74 61 |Clear_Load.Synta| 000200a0 78 3a 09 3c 63 6c 65 61 72 5f 70 69 63 74 75 72 |x:.<clear_pictur| 000200b0 65 3e 20 2a 43 6c 65 61 72 5f 4c 6f 61 64 20 28 |e> *Clear_Load (| 000200c0 63 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 29 3b |char *filename);| 000200d0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000200e0 62 3a 43 6c 65 61 72 2e 68 3d 3e 43 6c 65 61 72 |b:Clear.h=>Clear| 000200f0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00020100 74 65 72 20 74 6f 20 70 69 63 74 75 72 65 2c 20 |ter to picture, | 00020110 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 61 6e 20 |or <NULL> if an | 00020120 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 2e 0a |error occurred..| 00020130 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6c |.This function l| 00020140 6f 61 64 73 20 74 68 65 20 6e 61 6d 65 64 20 43 |oads the named C| 00020150 6c 65 61 72 20 70 69 63 74 75 72 65 20 69 6e 74 |lear picture int| 00020160 6f 20 6d 65 6d 6f 72 79 2e 00 00 00 44 41 54 41 |o memory....DATA| 00020170 cc 00 00 00 43 6c 65 61 72 5f 53 61 76 65 0a 53 |....Clear_Save.S| 00020180 79 6e 74 61 78 3a 09 76 6f 69 64 20 43 6c 65 61 |yntax:.void Clea| 00020190 72 5f 53 61 76 65 20 28 3c 63 6c 65 61 72 5f 70 |r_Save (<clear_p| 000201a0 69 63 74 75 72 65 3e 20 2a 70 69 63 2c 63 68 61 |icture> *pic,cha| 000201b0 72 20 2a 66 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 |r *filename);.He| 000201c0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 43 |ader:.<DeskLib:C| 000201d0 6c 65 61 72 2e 68 3d 3e 43 6c 65 61 72 3e 0a 0a |lear.h=>Clear>..| 000201e0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 61 |This function sa| 000201f0 76 65 73 20 74 68 65 20 70 69 63 74 75 72 65 20 |ves the picture | 00020200 70 6f 69 6e 74 65 72 20 74 6f 20 62 79 20 2f 70 |pointer to by /p| 00020210 69 63 2f 20 74 6f 20 74 68 65 20 66 69 6c 65 20 |ic/ to the file | 00020220 73 70 65 63 69 66 69 65 64 20 69 6e 20 2f 66 69 |specified in /fi| 00020230 6c 65 6e 61 6d 65 2f 2e 44 41 54 41 25 01 00 00 |lename/.DATA%...| 00020240 43 6c 65 61 72 5f 43 72 65 61 74 65 0a 53 79 6e |Clear_Create.Syn| 00020250 74 61 78 3a 09 3c 63 6c 65 61 72 5f 70 69 63 74 |tax:.<clear_pict| 00020260 75 72 65 3e 20 2a 43 6c 65 61 72 5f 43 72 65 61 |ure> *Clear_Crea| 00020270 74 65 20 28 75 6e 73 69 67 6e 65 64 20 77 69 64 |te (unsigned wid| 00020280 74 68 2c 20 75 6e 73 69 67 6e 65 64 20 68 65 69 |th, unsigned hei| 00020290 67 68 74 2c 20 75 6e 73 69 67 6e 65 64 20 62 70 |ght, unsigned bp| 000202a0 70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |p);.Header:.<Des| 000202b0 6b 4c 69 62 3a 43 6c 65 61 72 2e 68 3d 3e 43 6c |kLib:Clear.h=>Cl| 000202c0 65 61 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ear>..Returns:.P| 000202d0 6f 69 6e 74 65 72 20 74 6f 20 70 69 63 74 75 72 |ointer to pictur| 000202e0 65 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |e, or <NULL> if | 000202f0 66 61 69 6c 65 64 2e 0a 0a 54 68 69 73 20 66 75 |failed...This fu| 00020300 6e 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 73 20 |nction attempts | 00020310 74 6f 20 61 6c 6c 6f 63 61 74 65 20 6d 65 6d 6f |to allocate memo| 00020320 72 79 20 66 6f 72 20 61 20 70 69 63 74 75 72 65 |ry for a picture| 00020330 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 77 69 | of the given wi| 00020340 64 74 68 2c 20 68 65 69 67 68 74 20 61 6e 64 20 |dth, height and | 00020350 63 6f 6c 6f 75 72 20 64 65 70 74 68 2e 00 00 00 |colour depth....| 00020360 44 41 54 41 a4 00 00 00 43 6c 65 61 72 5f 46 72 |DATA....Clear_Fr| 00020370 65 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |ee.Syntax:.void | 00020380 43 6c 65 61 72 5f 46 72 65 65 20 28 3c 63 6c 65 |Clear_Free (<cle| 00020390 61 72 5f 70 69 63 74 75 72 65 3e 20 2a 70 69 63 |ar_picture> *pic| 000203a0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000203b0 4c 69 62 3a 43 6c 65 61 72 2e 68 3d 3e 43 6c 65 |Lib:Clear.h=>Cle| 000203c0 61 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ar>..This functi| 000203d0 6f 6e 20 66 72 65 65 73 20 61 6c 6c 20 6d 65 6d |on frees all mem| 000203e0 6f 72 79 20 75 73 65 64 20 62 79 20 74 68 65 20 |ory used by the | 000203f0 43 6c 65 61 72 20 70 69 63 74 75 72 65 20 2f 70 |Clear picture /p| 00020400 69 63 2f 2e 44 49 52 24 48 00 00 00 48 00 00 00 |ic/.DIR$H...H...| 00020410 4c 04 02 00 46 ff ff ff 50 1f 52 26 1d 01 00 00 |L...F...P.R&....| 00020420 13 00 00 00 00 00 00 00 43 72 65 61 74 65 00 00 |........Create..| 00020430 6c 05 02 00 46 fd ff ff 6c 4c 52 26 94 00 00 00 |l...F...lLR&....| 00020440 13 00 00 00 00 00 00 00 44 4c 00 00 44 41 54 41 |........DL..DATA| 00020450 1d 01 00 00 43 6f 6c 6f 75 72 4d 65 6e 75 5f 43 |....ColourMenu_C| 00020460 72 65 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6d |reate.Syntax:.<m| 00020470 65 6e 75 5f 70 74 72 3e 20 43 6f 6c 6f 75 72 4d |enu_ptr> ColourM| 00020480 65 6e 75 5f 43 72 65 61 74 65 20 28 63 68 61 72 |enu_Create (char| 00020490 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a | *name);.Header:| 000204a0 09 3c 44 65 73 6b 4c 69 62 3a 43 6f 6c 6f 75 72 |.<DeskLib:Colour| 000204b0 4d 65 6e 75 2e 68 3d 3e 43 6f 6c 6f 75 72 4d 65 |Menu.h=>ColourMe| 000204c0 6e 75 5f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |nu_>..Returns:.P| 000204d0 6f 69 6e 74 65 72 20 74 6f 20 6e 65 77 20 6d 65 |ointer to new me| 000204e0 6e 75 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |nu..This functio| 000204f0 6e 20 63 72 65 61 74 65 73 20 61 20 6d 65 6e 75 |n creates a menu| 00020500 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 | containing the | 00020510 31 36 20 57 69 6d 70 20 63 6f 6c 6f 75 72 73 2e |16 Wimp colours.| 00020520 20 2f 6e 61 6d 65 2f 20 63 6f 6e 74 61 69 6e 73 | /name/ contains| 00020530 20 74 68 65 20 6d 65 6e 75 20 74 69 74 6c 65 2e | the menu title.| 00020540 20 54 68 65 20 6d 65 6e 75 20 69 73 20 6f 6e 6c | The menu is onl| 00020550 79 20 63 72 65 61 74 65 64 2c 20 6e 6f 74 20 64 |y created, not d| 00020560 69 73 70 6c 61 79 65 64 2e 00 00 00 44 41 54 41 |isplayed....DATA| 00020570 94 00 00 00 44 65 73 6b 4c 69 62 3a 43 6f 6c 6f |....DeskLib:Colo| 00020580 75 72 4d 65 6e 75 2e 68 0a 56 65 72 73 69 6f 6e |urMenu.h.Version| 00020590 3a 20 31 2e 30 30 20 28 32 37 20 41 75 67 20 31 |: 1.00 (27 Aug 1| 000205a0 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 20 |994).#line.This | 000205b0 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 |header declares | 000205c0 6a 75 73 74 20 6f 6e 65 20 66 75 6e 63 74 69 6f |just one functio| 000205d0 6e 2e 0a 0a 46 75 6e 63 74 69 6f 6e 3a 0a 0a 7b |n...Function:..{| 000205e0 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 43 6f |align centre}<Co| 000205f0 6c 6f 75 72 4d 65 6e 75 5f 43 72 65 61 74 65 3e |lourMenu_Create>| 00020600 44 49 52 24 c0 04 00 00 c0 04 00 00 c0 0a 02 00 |DIR$............| 00020610 46 fd ff ff 10 6f 84 2f 2c 01 00 00 13 01 00 00 |F....o./,.......| 00020620 00 00 00 00 44 42 4c 5f 00 00 00 00 50 10 02 00 |....DBL_....P...| 00020630 46 ff ff ff bf fc 1e 23 b0 02 00 00 13 00 00 00 |F......#........| 00020640 00 00 00 00 64 62 6f 78 00 00 00 00 00 13 02 00 |....dbox........| 00020650 46 fd ff ff d9 6f 84 2f 38 04 00 00 13 01 00 00 |F....o./8.......| 00020660 00 00 00 00 64 62 6f 78 5f 00 00 00 00 38 02 00 |....dbox_....8..| 00020670 46 ff ff ff 86 7d 1f 23 a3 02 00 00 13 00 00 00 |F....}.#........| 00020680 00 00 00 00 64 62 6f 78 66 69 6c 65 00 00 00 00 |....dboxfile....| 00020690 a4 3a 02 00 46 ff ff ff 1b 92 1f 23 ee 01 00 00 |.:..F......#....| 000206a0 13 00 00 00 00 00 00 00 64 62 6f 78 71 75 65 72 |........dboxquer| 000206b0 79 00 00 00 94 3c 02 00 46 fd ff ff 41 72 84 2f |y....<..F...Ar./| 000206c0 2c 00 00 00 13 01 00 00 00 00 00 00 64 62 6f 78 |,...........dbox| 000206d0 71 75 65 72 79 5f 00 00 98 3d 02 00 46 ff ff ff |query_...=..F...| 000206e0 7b b3 1f 23 c2 02 00 00 13 00 00 00 00 00 00 00 |{..#............| 000206f0 64 62 6f 78 74 63 6f 6c 00 00 00 00 5c 40 02 00 |dboxtcol....\@..| 00020700 46 fd ff ff 75 72 84 2f 54 00 00 00 13 01 00 00 |F...ur./T.......| 00020710 00 00 00 00 64 62 6f 78 74 63 6f 6c 5f 00 00 00 |....dboxtcol_...| 00020720 d0 42 02 00 46 ff ff ff 2a 41 e6 22 03 01 00 00 |.B..F...*A."....| 00020730 13 00 00 00 00 00 00 00 44 43 42 00 d4 43 02 00 |........DCB..C..| 00020740 46 ff ff ff fc 48 e6 22 9f 00 00 00 13 00 00 00 |F....H."........| 00020750 00 00 00 00 44 43 44 00 74 44 02 00 46 ff ff ff |....DCD.tD..F...| 00020760 4f 84 b5 22 3f 00 00 00 13 00 00 00 00 00 00 00 |O.."?...........| 00020770 64 65 66 61 75 6c 74 00 b4 44 02 00 46 ff ff ff |default..D..F...| 00020780 5d 31 e5 22 cf 02 00 00 13 00 00 00 00 00 00 00 |]1."............| 00020790 64 65 66 69 6e 65 00 00 84 47 02 00 46 ff ff ff |define...G..F...| 000207a0 c0 89 f2 24 7d 00 00 00 13 00 00 00 00 00 00 00 |...$}...........| 000207b0 64 69 61 6c 6f 67 00 00 04 48 02 00 46 fd ff ff |dialog...H..F...| 000207c0 08 73 84 2f 24 02 00 00 13 01 00 00 00 00 00 00 |.s./$...........| 000207d0 64 69 61 6c 6f 67 5f 00 d8 5d 02 00 46 ff ff ff |dialog_..]..F...| 000207e0 2e d6 e1 22 da 00 00 00 13 00 00 00 00 00 00 00 |..."............| 000207f0 64 69 66 66 74 69 6d 65 00 00 00 00 b4 5e 02 00 |difftime.....^..| 00020800 46 ff ff ff 0c b7 f2 24 21 02 00 00 13 00 00 00 |F......$!.......| 00020810 00 00 00 00 44 69 73 70 61 74 63 68 00 00 00 00 |....Dispatch....| 00020820 d8 60 02 00 46 fd ff ff 74 74 84 2f 48 00 00 00 |.`..F...tt./H...| 00020830 13 01 00 00 00 00 00 00 44 69 73 70 61 74 63 68 |........Dispatch| 00020840 5f 00 00 00 f4 62 02 00 46 ff ff ff e5 36 de 22 |_....b..F....6."| 00020850 3e 01 00 00 13 00 00 00 00 00 00 00 64 69 76 00 |>...........div.| 00020860 34 64 02 00 46 fd ff ff c2 74 84 2f 28 00 00 00 |4d..F....t./(...| 00020870 13 01 00 00 00 00 00 00 64 69 76 5f 00 00 00 00 |........div_....| 00020880 3c 65 02 00 46 fd ff ff e3 74 84 2f 6c 00 00 00 |<e..F....t./l...| 00020890 13 01 00 00 00 00 00 00 44 4c 5f 00 44 6b 02 00 |........DL_.Dk..| 000208a0 46 ff ff ff fd 65 e4 22 df 02 00 00 13 00 00 00 |F....e."........| 000208b0 00 00 00 00 64 6f 00 00 24 6e 02 00 46 ff ff ff |....do..$n..F...| 000208c0 1e aa f4 24 87 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000208d0 44 72 61 67 00 00 00 00 ac 6f 02 00 46 fd ff ff |Drag.....o..F...| 000208e0 59 75 84 2f 2c 01 00 00 13 01 00 00 00 00 00 00 |Yu./,...........| 000208f0 64 72 61 67 5f 00 00 00 cc 7d 02 00 46 ff ff ff |drag_....}..F...| 00020900 c4 ae f4 24 06 01 00 00 13 00 00 00 00 00 00 00 |...$............| 00020910 44 72 61 67 41 53 70 72 00 00 00 00 d4 7e 02 00 |DragASpr.....~..| 00020920 46 fd ff ff 20 76 84 2f 70 00 00 00 13 01 00 00 |F... v./p.......| 00020930 00 00 00 00 44 72 61 67 41 53 70 72 69 74 65 5f |....DragASprite_| 00020940 00 00 00 00 cc 85 02 00 46 ff ff ff d3 89 b5 22 |........F......"| 00020950 4f 00 00 00 13 00 00 00 00 00 00 00 64 72 61 77 |O...........draw| 00020960 00 00 00 00 1c 86 02 00 46 fd ff ff ae 76 84 2f |........F....v./| 00020970 a0 09 00 00 13 01 00 00 00 00 00 00 44 72 61 77 |............Draw| 00020980 5f 00 00 00 70 e2 02 00 46 ff ff ff 20 2e 24 23 |_...p...F... .$#| 00020990 9a 02 00 00 13 00 00 00 00 00 00 00 64 72 61 77 |............draw| 000209a0 66 64 69 61 67 00 00 00 0c e5 02 00 46 fd ff ff |fdiag.......F...| 000209b0 f2 7b 84 2f 2c 00 00 00 13 01 00 00 00 00 00 00 |.{./,...........| 000209c0 64 72 61 77 66 64 69 61 67 5f 00 00 f0 e5 02 00 |drawfdiag_......| 000209d0 46 ff ff ff 41 86 25 23 18 09 00 00 13 00 00 00 |F...A.%#........| 000209e0 00 00 00 00 64 72 61 77 66 65 72 72 6f 72 00 00 |....drawferror..| 000209f0 08 ef 02 00 46 ff ff ff 3b c4 26 23 eb 01 00 00 |....F...;.&#....| 00020a00 13 00 00 00 00 00 00 00 64 72 61 77 66 6f 62 6a |........drawfobj| 00020a10 00 00 00 00 f4 f0 02 00 46 fd ff ff 3f 7c 84 2f |........F...?|./| 00020a20 2c 00 00 00 13 01 00 00 00 00 00 00 64 72 61 77 |,...........draw| 00020a30 66 6f 62 6a 5f 00 00 00 d0 f1 02 00 46 ff ff ff |fobj_.......F...| 00020a40 9d 07 27 23 7b 04 00 00 13 00 00 00 00 00 00 00 |..'#{...........| 00020a50 64 72 61 77 66 74 79 70 65 73 00 00 4c f6 02 00 |drawftypes..L...| 00020a60 46 ff ff ff 72 6c 45 23 de 03 00 00 13 00 00 00 |F...rlE#........| 00020a70 00 00 00 00 64 72 61 77 6d 6f 64 00 2c fa 02 00 |....drawmod.,...| 00020a80 46 fd ff ff a4 7c 84 2f 48 04 00 00 13 01 00 00 |F....|./H.......| 00020a90 00 00 00 00 64 72 61 77 6d 6f 64 5f 00 00 00 00 |....drawmod_....| 00020aa0 2c 25 03 00 46 fd ff ff f1 7e 84 2f 2c 00 00 00 |,%..F....~./,...| 00020ab0 13 01 00 00 00 00 00 00 64 73 70 72 5f 00 00 00 |........dspr_...| 00020ac0 44 49 52 24 2c 01 00 00 2c 01 00 00 ec 0b 02 00 |DIR$,...,.......| 00020ad0 46 ff ff ff dd 7d b5 22 3a 00 00 00 13 00 00 00 |F....}.":.......| 00020ae0 00 00 00 00 44 49 47 00 28 0c 02 00 46 ff ff ff |....DIG.(...F...| 00020af0 e4 7d b5 22 3e 00 00 00 13 00 00 00 00 00 00 00 |.}.">...........| 00020b00 45 50 53 49 4c 4f 4e 00 68 0c 02 00 46 ff ff ff |EPSILON.h...F...| 00020b10 69 8e bc 22 8d 00 00 00 13 00 00 00 00 00 00 00 |i.."............| 00020b20 4d 41 4e 54 5f 44 49 47 00 00 00 00 f8 0c 02 00 |MANT_DIG........| 00020b30 46 ff ff ff 68 c8 bc 22 91 00 00 00 13 00 00 00 |F...h.."........| 00020b40 00 00 00 00 4d 41 58 00 8c 0d 02 00 46 ff ff ff |....MAX.....F...| 00020b50 5f bd bc 22 90 00 00 00 13 00 00 00 00 00 00 00 |_.."............| 00020b60 4d 41 58 5f 31 30 5f 45 58 50 00 00 1c 0e 02 00 |MAX_10_EXP......| 00020b70 46 ff ff ff c0 b1 bc 22 85 00 00 00 13 00 00 00 |F......"........| 00020b80 00 00 00 00 4d 41 58 5f 45 58 50 00 a4 0e 02 00 |....MAX_EXP.....| 00020b90 46 ff ff ff 76 d7 bc 22 91 00 00 00 13 00 00 00 |F...v.."........| 00020ba0 00 00 00 00 4d 49 4e 00 38 0f 02 00 46 ff ff ff |....MIN.8...F...| 00020bb0 bf a7 bc 22 90 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00020bc0 4d 49 4e 5f 31 30 5f 45 58 50 00 00 c8 0f 02 00 |MIN_10_EXP......| 00020bd0 46 ff ff ff 59 9c bc 22 85 00 00 00 13 00 00 00 |F...Y.."........| 00020be0 00 00 00 00 4d 49 4e 5f 45 58 50 00 44 41 54 41 |....MIN_EXP.DATA| 00020bf0 3a 00 00 00 44 42 4c 5f 44 49 47 0a 54 68 69 73 |:...DBL_DIG.This| 00020c00 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 00020c10 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 |d in <float.h=>f| 00020c20 6c 6f 61 74 3e 2e 00 00 44 41 54 41 3e 00 00 00 |loat>...DATA>...| 00020c30 44 42 4c 5f 45 50 53 49 4c 4f 4e 0a 54 68 69 73 |DBL_EPSILON.This| 00020c40 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 00020c50 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 |d in <float.h=>f| 00020c60 6c 6f 61 74 3e 2e 00 00 44 41 54 41 8d 00 00 00 |loat>...DATA....| 00020c70 44 42 4c 5f 4d 41 4e 54 5f 44 49 47 0a 54 68 69 |DBL_MANT_DIG.Thi| 00020c80 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 00020c90 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e |ed in <float.h=>| 00020ca0 66 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 65 73 |float>. It gives| 00020cb0 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 | the number of d| 00020cc0 69 67 69 74 73 20 69 6e 20 74 68 65 20 6d 61 6e |igits in the man| 00020cd0 74 69 73 73 61 20 6f 66 20 61 20 76 61 72 69 61 |tissa of a varia| 00020ce0 62 6c 65 20 6f 66 20 74 79 70 65 20 27 64 6f 75 |ble of type 'dou| 00020cf0 62 6c 65 27 2e 00 00 00 44 41 54 41 91 00 00 00 |ble'....DATA....| 00020d00 44 42 4c 5f 4d 41 58 0a 54 68 69 73 20 6d 61 63 |DBL_MAX.This mac| 00020d10 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 00020d20 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 | <float.h=>float| 00020d30 3e 2e 20 49 74 20 67 69 76 65 73 20 74 68 65 20 |>. It gives the | 00020d40 6d 61 78 69 6d 75 6d 20 70 6f 73 69 74 69 76 65 |maximum positive| 00020d50 20 76 61 6c 75 65 20 74 68 61 74 20 63 61 6e 20 | value that can | 00020d60 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 20 76 |be stored in a v| 00020d70 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 |ariable of type | 00020d80 27 64 6f 75 62 6c 65 27 2e 00 00 00 44 41 54 41 |'double'....DATA| 00020d90 90 00 00 00 44 42 4c 5f 4d 41 58 5f 31 30 5f 45 |....DBL_MAX_10_E| 00020da0 58 50 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |XP.This macro is| 00020db0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f | defined in <flo| 00020dc0 61 74 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 |at.h=>float>. It| 00020dd0 20 67 69 76 65 73 20 74 68 65 20 6d 61 78 69 6d | gives the maxim| 00020de0 75 6d 20 62 61 73 65 20 31 30 20 65 78 70 6f 6e |um base 10 expon| 00020df0 65 6e 74 20 61 20 76 61 72 69 61 62 6c 65 20 6f |ent a variable o| 00020e00 66 20 74 79 70 65 20 27 64 6f 75 62 6c 65 27 20 |f type 'double' | 00020e10 63 61 6e 20 63 6f 6e 74 61 69 6e 2e 44 41 54 41 |can contain.DATA| 00020e20 85 00 00 00 44 42 4c 5f 4d 41 58 5f 45 58 50 0a |....DBL_MAX_EXP.| 00020e30 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 00020e40 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e |fined in <float.| 00020e50 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 20 67 69 |h=>float>. It gi| 00020e60 76 65 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 |ves the maximum | 00020e70 65 78 70 6f 6e 65 6e 74 20 61 20 76 61 72 69 61 |exponent a varia| 00020e80 62 6c 65 20 6f 66 20 74 79 70 65 20 27 64 6f 75 |ble of type 'dou| 00020e90 62 6c 65 27 20 63 61 6e 20 63 6f 6e 74 61 69 6e |ble' can contain| 00020ea0 2e 00 00 00 44 41 54 41 91 00 00 00 44 42 4c 5f |....DATA....DBL_| 00020eb0 4d 49 4e 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |MIN.This macro i| 00020ec0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c |s defined in <fl| 00020ed0 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 |oat.h=>float>. I| 00020ee0 74 20 67 69 76 65 73 20 74 68 65 20 6d 69 6e 69 |t gives the mini| 00020ef0 6d 75 6d 20 70 6f 73 69 74 69 76 65 20 76 61 6c |mum positive val| 00020f00 75 65 20 74 68 61 74 20 63 61 6e 20 62 65 20 73 |ue that can be s| 00020f10 74 6f 72 65 64 20 69 6e 20 61 20 76 61 72 69 61 |tored in a varia| 00020f20 62 6c 65 20 6f 66 20 74 79 70 65 20 27 64 6f 75 |ble of type 'dou| 00020f30 62 6c 65 27 2e 00 00 00 44 41 54 41 90 00 00 00 |ble'....DATA....| 00020f40 44 42 4c 5f 4d 49 4e 5f 31 30 5f 45 58 50 0a 54 |DBL_MIN_10_EXP.T| 00020f50 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 00020f60 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 |ined in <float.h| 00020f70 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 |=>float>. It giv| 00020f80 65 73 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 62 |es the minimum b| 00020f90 61 73 65 20 31 30 20 65 78 70 6f 6e 65 6e 74 20 |ase 10 exponent | 00020fa0 61 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 |a variable of ty| 00020fb0 70 65 20 27 64 6f 75 62 6c 65 27 20 63 61 6e 20 |pe 'double' can | 00020fc0 63 6f 6e 74 61 69 6e 2e 44 41 54 41 85 00 00 00 |contain.DATA....| 00020fd0 44 42 4c 5f 4d 49 4e 5f 45 58 50 0a 54 68 69 73 |DBL_MIN_EXP.This| 00020fe0 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 00020ff0 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 |d in <float.h=>f| 00021000 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 65 73 20 |loat>. It gives | 00021010 74 68 65 20 6d 69 6e 69 6d 75 6d 20 65 78 70 6f |the minimum expo| 00021020 6e 65 6e 74 20 61 20 76 61 72 69 61 62 6c 65 20 |nent a variable | 00021030 6f 66 20 74 79 70 65 20 27 64 6f 75 62 6c 65 27 |of type 'double'| 00021040 20 63 61 6e 20 63 6f 6e 74 61 69 6e 2e 00 00 00 | can contain....| 00021050 44 41 54 41 b0 02 00 00 64 62 6f 78 0a 54 68 65 |DATA....dbox.The| 00021060 20 74 79 70 65 20 64 62 6f 78 20 69 73 20 64 65 | type dbox is de| 00021070 66 69 6e 65 64 20 69 6e 20 3c 64 62 6f 78 2e 68 |fined in <dbox.h| 00021080 3d 3e 64 62 6f 78 5f 68 3e 20 61 73 20 61 20 74 |=>dbox_h> as a t| 00021090 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 20 68 |ype capable of h| 000210a0 6f 6c 64 69 6e 67 20 61 6e 20 61 62 73 74 72 61 |olding an abstra| 000210b0 63 74 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 |ct dialogue box | 000210c0 68 61 6e 64 6c 65 2e 20 54 68 65 20 73 74 72 75 |handle. The stru| 000210d0 63 74 75 72 65 20 74 6f 20 77 68 69 63 68 20 74 |cture to which t| 000210e0 68 65 20 74 79 70 65 20 70 6f 69 6e 74 73 20 69 |he type points i| 000210f0 73 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 5c |s as follows:..\| 00021100 7b 0a 20 20 20 20 73 74 72 75 63 74 20 64 62 6f |{. struct dbo| 00021110 78 5f 5f 73 74 72 20 2a 6e 65 78 74 3b 09 2f 2a |x__str *next;./*| 00021120 20 4c 69 6e 6b 65 64 20 6c 69 73 74 20 2a 2f 0a | Linked list */.| 00021130 20 20 20 20 3c 77 69 6d 70 5f 77 3e 20 77 3b 0a | <wimp_w> w;.| 00021140 20 20 20 20 69 6e 74 20 70 6f 73 61 74 63 61 72 | int posatcar| 00021150 65 74 3b 0a 20 20 20 20 69 6e 74 20 73 68 6f 77 |et;. int show| 00021160 69 6e 67 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 63 |ing;. <wimp_c| 00021170 61 72 65 74 73 74 72 3e 20 63 61 72 65 74 73 74 |aretstr> caretst| 00021180 72 3b 0a 20 20 20 20 3c 64 62 6f 78 5f 68 61 6e |r;. <dbox_han| 00021190 64 6c 65 72 5f 70 72 6f 63 3e 20 65 76 65 6e 74 |dler_proc> event| 000211a0 70 72 6f 63 3b 0a 20 20 20 20 76 6f 69 64 20 2a |proc;. void *| 000211b0 65 76 65 6e 74 70 72 6f 63 68 61 6e 64 6c 65 3b |eventprochandle;| 000211c0 0a 20 20 20 20 3c 64 62 6f 78 5f 72 61 77 5f 68 |. <dbox_raw_h| 000211d0 61 6e 64 6c 65 72 5f 70 72 6f 63 3e 20 72 61 77 |andler_proc> raw| 000211e0 65 76 65 6e 74 70 72 6f 63 3b 20 09 0a 20 20 20 |eventproc; .. | 000211f0 20 76 6f 69 64 20 2a 72 61 77 65 76 65 6e 74 70 | void *raweventp| 00021200 72 6f 63 68 61 6e 64 6c 65 3b 0a 20 20 20 20 3c |rochandle;. <| 00021210 64 62 6f 78 5f 66 69 65 6c 64 3e 20 66 69 65 6c |dbox_field> fiel| 00021220 64 3b 0a 20 20 20 20 69 6e 74 20 66 69 65 6c 64 |d;. int field| 00021230 77 61 69 74 69 6e 67 3b 0a 20 20 20 20 69 6e 74 |waiting;. int| 00021240 20 65 76 65 6e 74 64 65 70 74 68 3b 0a 20 20 20 | eventdepth;. | 00021250 20 69 6e 74 20 64 69 73 70 6f 73 65 70 65 6e 64 | int disposepend| 00021260 69 6e 67 3b 0a 20 20 20 20 63 68 61 72 20 6e 61 |ing;. char na| 00021270 6d 65 5b 31 32 5d 3b 0a 20 20 20 20 63 68 61 72 |me[12];. char| 00021280 20 2a 77 6f 72 6b 73 70 61 63 65 3b 0a 20 20 20 | *workspace;. | 00021290 20 69 6e 74 20 77 6f 72 6b 73 70 61 63 65 73 69 | int workspacesi| 000212a0 7a 65 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 77 69 |ze;. <wimp_wi| 000212b0 6e 64 3e 20 77 69 6e 64 6f 77 3b 0a 7d 0a 54 68 |nd> window;.}.Th| 000212c0 69 73 20 73 74 72 75 63 74 75 72 65 20 69 73 20 |is structure is | 000212d0 61 20 7b 2f 7d 64 62 6f 78 5f 5f 73 74 72 7b 2f |a {/}dbox__str{/| 000212e0 7d 2e 20 41 20 64 62 6f 78 20 69 73 20 61 20 7b |}. A dbox is a {| 000212f0 2f 7d 64 62 6f 78 5f 5f 73 74 72 2a 7b 2f 7d 2e |/}dbox__str*{/}.| 00021300 44 49 52 24 38 04 00 00 38 04 00 00 38 17 02 00 |DIR$8...8...8...| 00021310 46 ff ff ff 7d e9 1e 23 92 00 00 00 13 00 00 00 |F...}..#........| 00021320 00 00 00 00 43 4c 4f 53 45 00 00 00 cc 17 02 00 |....CLOSE.......| 00021330 46 fd ff ff 5f 10 1e 23 7d 00 00 00 13 00 00 00 |F..._..#}.......| 00021340 00 00 00 00 63 72 64 6c 5f 00 00 00 4c 18 02 00 |....crdl_...L...| 00021350 46 fd ff ff 35 32 1e 23 9b 00 00 00 13 00 00 00 |F...52.#........| 00021360 00 00 00 00 63 74 72 6c 5f 00 00 00 e8 18 02 00 |....ctrl_.......| 00021370 46 ff ff ff ea 15 1e 23 c7 00 00 00 13 00 00 00 |F......#........| 00021380 00 00 00 00 64 69 73 70 6f 73 65 00 b0 19 02 00 |....dispose.....| 00021390 46 ff ff ff 85 7d 1e 23 c6 01 00 00 13 00 00 00 |F....}.#........| 000213a0 00 00 00 00 65 76 65 6e 74 68 61 6e 64 6c 65 72 |....eventhandler| 000213b0 00 00 00 00 78 1b 02 00 46 fd ff ff 68 6d 1e 23 |....x...F...hm.#| 000213c0 79 00 00 00 13 00 00 00 00 00 00 00 65 76 6e 74 |y...........evnt| 000213d0 5f 00 00 00 f4 1b 02 00 46 ff ff ff 73 37 1e 23 |_.......F...s7.#| 000213e0 da 00 00 00 13 00 00 00 00 00 00 00 66 61 64 65 |............fade| 000213f0 66 69 65 6c 64 00 00 00 d0 1c 02 00 46 ff ff ff |field.......F...| 00021400 63 19 1f 23 b4 00 00 00 13 00 00 00 00 00 00 00 |c..#............| 00021410 66 69 65 6c 64 00 00 00 84 1d 02 00 46 ff ff ff |field.......F...| 00021420 98 1c 1f 23 42 01 00 00 13 00 00 00 00 00 00 00 |...#B...........| 00021430 66 69 65 6c 64 74 79 70 65 00 00 00 c8 1e 02 00 |fieldtype.......| 00021440 46 ff ff ff 4c c0 1e 23 13 01 00 00 13 00 00 00 |F...L..#........| 00021450 00 00 00 00 66 69 6c 6c 69 6e 00 00 dc 1f 02 00 |....fillin......| 00021460 46 ff ff ff 6c 84 1e 23 d6 00 00 00 13 00 00 00 |F...l..#........| 00021470 00 00 00 00 67 65 74 00 b4 20 02 00 46 ff ff ff |....get.. ..F...| 00021480 e6 3d 1e 23 37 01 00 00 13 00 00 00 00 00 00 00 |.=.#7...........| 00021490 67 65 74 66 69 65 6c 64 00 00 00 00 ec 21 02 00 |getfield.....!..| 000214a0 46 ff ff ff 09 48 1e 23 36 01 00 00 13 00 00 00 |F....H.#6.......| 000214b0 00 00 00 00 67 65 74 6e 75 6d 65 72 69 63 00 00 |....getnumeric..| 000214c0 24 23 02 00 46 ff ff ff 66 34 1f 23 77 02 00 00 |$#..F...f4.#w...| 000214d0 13 00 00 00 00 00 00 00 68 00 00 00 9c 25 02 00 |........h....%..| 000214e0 46 ff ff ff ed 2b 1f 23 d6 00 00 00 13 00 00 00 |F....+.#........| 000214f0 00 00 00 00 68 61 6e 64 6c 65 72 5f 70 72 6f 63 |....handler_proc| 00021500 00 00 00 00 74 26 02 00 46 ff ff ff a8 1a 1e 23 |....t&..F......#| 00021510 b3 00 00 00 13 00 00 00 00 00 00 00 68 69 64 65 |............hide| 00021520 00 00 00 00 28 27 02 00 46 ff ff ff eb cd 1e 23 |....('..F......#| 00021530 e5 00 00 00 13 00 00 00 00 00 00 00 69 6e 69 74 |............init| 00021540 00 00 00 00 10 28 02 00 46 ff ff ff 7e 1f 1e 23 |.....(..F...~..#| 00021550 3d 01 00 00 13 00 00 00 00 00 00 00 6e 65 77 00 |=...........new.| 00021560 50 29 02 00 46 fd ff ff a9 b2 1e 23 9a 00 00 00 |P)..F......#....| 00021570 13 00 00 00 00 00 00 00 70 65 6e 64 5f 00 00 00 |........pend_...| 00021580 ec 29 02 00 46 ff ff ff 76 d6 1e 23 fc 00 00 00 |.)..F...v..#....| 00021590 13 00 00 00 00 00 00 00 70 65 72 73 69 73 74 00 |........persist.| 000215a0 e8 2a 02 00 46 ff ff ff 2f de 1e 23 7f 01 00 00 |.*..F.../..#....| 000215b0 13 00 00 00 00 00 00 00 70 6f 70 75 70 00 00 00 |........popup...| 000215c0 68 2c 02 00 46 ff ff ff e3 ab 1e 23 e0 00 00 00 |h,..F......#....| 000215d0 13 00 00 00 00 00 00 00 72 65 61 64 00 00 00 00 |........read....| 000215e0 48 2d 02 00 46 ff ff ff ba 50 1e 23 0a 01 00 00 |H-..F....P.#....| 000215f0 13 00 00 00 00 00 00 00 73 65 74 66 69 65 6c 64 |........setfield| 00021600 00 00 00 00 54 2e 02 00 46 ff ff ff 7f 58 1e 23 |....T...F....X.#| 00021610 3b 01 00 00 13 00 00 00 00 00 00 00 73 65 74 6e |;...........setn| 00021620 75 6d 65 72 69 63 00 00 90 2f 02 00 46 ff ff ff |umeric.../..F...| 00021630 09 26 1e 23 68 01 00 00 13 00 00 00 00 00 00 00 |.&.#h...........| 00021640 73 68 6f 77 00 00 00 00 f8 30 02 00 46 ff ff ff |show.....0..F...| 00021650 f4 2c 1e 23 22 01 00 00 13 00 00 00 00 00 00 00 |.,.#"...........| 00021660 73 68 6f 77 73 74 61 74 69 63 00 00 1c 32 02 00 |showstatic...2..| 00021670 46 ff ff ff 12 e4 1e 23 03 01 00 00 13 00 00 00 |F......#........| 00021680 00 00 00 00 73 79 73 68 61 6e 64 6c 65 00 00 00 |....syshandle...| 00021690 20 33 02 00 46 ff ff ff f7 5c 1e 23 cf 00 00 00 | 3..F....\.#....| 000216a0 13 00 00 00 00 00 00 00 75 6e 66 61 64 65 66 69 |........unfadefi| 000216b0 65 6c 64 00 f0 33 02 00 46 ff ff ff de a5 1e 23 |eld..3..F......#| 000216c0 28 02 00 00 13 00 00 00 00 00 00 00 72 61 77 5f |(...........raw_| 000216d0 65 76 65 6e 74 68 61 6e 64 6c 65 72 00 00 00 00 |eventhandler....| 000216e0 18 36 02 00 46 ff ff ff 93 40 1f 23 eb 00 00 00 |.6..F....@.#....| 000216f0 13 00 00 00 00 00 00 00 72 61 77 5f 68 61 6e 64 |........raw_hand| 00021700 6c 65 72 5f 70 72 6f 63 00 00 00 00 04 37 02 00 |ler_proc.....7..| 00021710 46 ff ff ff e5 c6 1e 23 fb 00 00 00 13 00 00 00 |F......#........| 00021720 00 00 00 00 66 69 6c 6c 69 6e 5f 66 69 78 65 64 |....fillin_fixed| 00021730 63 61 72 65 74 00 00 00 44 41 54 41 92 00 00 00 |caret...DATA....| 00021740 64 62 6f 78 5f 43 4c 4f 53 45 0a 54 68 65 20 6d |dbox_CLOSE.The m| 00021750 61 63 72 6f 20 7b 2f 7d 64 62 6f 78 5f 43 4c 4f |acro {/}dbox_CLO| 00021760 53 45 7b 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 |SE{/} is defined| 00021770 20 69 6e 20 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f | in <dbox.h=>dbo| 00021780 78 5f 68 3e 20 61 73 20 74 68 65 20 76 61 6c 75 |x_h> as the valu| 00021790 65 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e 20 |e returned when | 000217a0 74 68 65 20 64 69 61 6c 6f 67 75 65 20 69 73 20 |the dialogue is | 000217b0 63 6c 6f 73 65 64 20 75 73 69 6e 67 20 61 20 63 |closed using a c| 000217c0 6c 6f 73 65 20 69 63 6f 6e 2e 00 00 44 41 54 41 |lose icon...DATA| 000217d0 7d 00 00 00 43 72 65 61 74 69 6e 67 2f 44 65 6c |}...Creating/Del| 000217e0 65 74 69 6e 67 20 46 75 6e 63 74 69 6f 6e 73 0a |eting Functions.| 000217f0 23 54 61 62 6c 65 20 33 20 31 36 0a 3c 64 62 6f |#Table 3 16.<dbo| 00021800 78 5f 64 69 73 70 6f 73 65 3e 0a 3c 64 62 6f 78 |x_dispose>.<dbox| 00021810 5f 68 69 64 65 3e 0a 3c 64 62 6f 78 5f 6e 65 77 |_hide>.<dbox_new| 00021820 3e 0a 3c 64 62 6f 78 5f 73 68 6f 77 3e 0a 3c 64 |>.<dbox_show>.<d| 00021830 62 6f 78 5f 73 68 6f 77 73 74 61 74 69 63 3e 0a |box_showstatic>.| 00021840 23 45 6e 64 54 61 62 6c 65 00 00 00 44 41 54 41 |#EndTable...DATA| 00021850 9b 00 00 00 43 6f 6e 74 72 6f 6c 6c 69 6e 67 20 |....Controlling | 00021860 46 75 6e 63 74 69 6f 6e 73 0a 23 54 61 62 6c 65 |Functions.#Table| 00021870 20 33 20 31 38 0a 3c 64 62 6f 78 5f 66 61 64 65 | 3 18.<dbox_fade| 00021880 66 69 65 6c 64 3e 0a 3c 64 62 6f 78 5f 67 65 74 |field>.<dbox_get| * 000218a0 6e 75 6d 65 72 69 63 3e 0a 3c 64 62 6f 78 5f 73 |numeric>.<dbox_s| 000218b0 65 74 66 69 65 6c 64 3e 0a 3c 64 62 6f 78 5f 73 |etfield>.<dbox_s| 000218c0 65 74 6e 75 6d 65 72 69 63 3e 0a 3c 64 62 6f 78 |etnumeric>.<dbox| 000218d0 5f 75 6e 66 61 64 65 66 69 65 6c 64 3e 0a 23 45 |_unfadefield>.#E| 000218e0 6e 64 54 61 62 6c 65 00 44 41 54 41 c7 00 00 00 |ndTable.DATA....| 000218f0 64 62 6f 78 5f 64 69 73 70 6f 73 65 0a 53 79 6e |dbox_dispose.Syn| 00021900 74 61 78 3a 09 76 6f 69 64 20 64 62 6f 78 5f 64 |tax:.void dbox_d| 00021910 69 73 70 6f 73 65 20 28 3c 64 62 6f 78 3e 20 2a |ispose (<dbox> *| 00021920 70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 6f |p);.Header:.<dbo| 00021930 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 54 68 |x.h=>dbox_h>..Th| 00021940 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 |is function disp| 00021950 6f 73 65 73 20 6f 66 20 74 68 65 20 64 69 61 6c |oses of the dial| 00021960 6f 67 75 65 20 62 6f 78 20 77 68 6f 73 65 20 68 |ogue box whose h| 00021970 61 6e 64 6c 65 20 69 73 20 70 6f 69 6e 74 65 64 |andle is pointed| 00021980 20 74 6f 20 62 79 20 2f 70 2f 2e 20 49 74 20 61 | to by /p/. It a| 00021990 6c 73 6f 20 72 65 6d 6f 76 65 73 20 69 74 20 66 |lso removes it f| 000219a0 72 6f 6d 20 74 68 65 20 73 63 72 65 65 6e 2e 00 |rom the screen..| 000219b0 44 41 54 41 c6 01 00 00 64 62 6f 78 5f 65 76 65 |DATA....dbox_eve| 000219c0 6e 74 68 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 |nthandler.Syntax| 000219d0 3a 09 76 6f 69 64 20 64 62 6f 78 5f 65 76 65 6e |:.void dbox_even| 000219e0 74 68 61 6e 64 6c 65 72 20 28 3c 64 62 6f 78 3e |thandler (<dbox>| 000219f0 20 64 2c 20 3c 64 62 6f 78 5f 68 61 6e 64 6c 65 | d, <dbox_handle| 00021a00 72 5f 70 72 6f 63 3e 20 70 72 6f 63 2c 20 76 6f |r_proc> proc, vo| 00021a10 69 64 20 2a 68 61 6e 64 6c 65 29 3b 0a 48 65 61 |id *handle);.Hea| 00021a20 64 65 72 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 |der:.<dbox.h=>db| 00021a30 6f 78 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |ox_h>..This func| 00021a40 74 69 6f 6e 20 64 65 73 69 67 6e 61 74 65 73 20 |tion designates | 00021a50 61 20 68 61 6e 64 6c 65 72 20 77 68 69 63 68 20 |a handler which | 00021a60 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 |will be called w| 00021a70 69 74 68 20 74 68 65 20 68 61 6e 64 6c 65 20 67 |ith the handle g| 00021a80 69 76 65 6e 20 77 68 65 6e 65 76 65 72 20 61 20 |iven whenever a | 00021a90 66 69 65 6c 64 20 69 6e 20 74 68 65 20 73 70 65 |field in the spe| 00021aa0 63 69 66 69 65 64 20 64 69 61 6c 6f 67 75 65 20 |cified dialogue | 00021ab0 62 6f 78 20 69 73 20 61 63 74 69 76 61 74 65 64 |box is activated| 00021ac0 2e 20 54 68 65 20 68 61 6e 64 6c 65 72 20 69 73 |. The handler is| 00021ad0 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 6f 73 | a function whos| 00021ae0 65 20 70 72 6f 74 6f 74 79 70 65 20 69 73 3a 0a |e prototype is:.| 00021af0 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 00021b00 74 72 65 7d 76 6f 69 64 20 70 72 6f 63 20 28 64 |tre}void proc (d| 00021b10 62 6f 78 20 64 2c 20 76 6f 69 64 20 2a 68 61 6e |box d, void *han| 00021b20 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 0a |dle);{f;align}..| 00021b30 54 68 65 20 68 61 6e 64 6c 65 20 69 73 20 61 20 |The handle is a | 00021b40 75 73 65 72 2d 64 65 66 69 6e 65 64 20 70 6f 69 |user-defined poi| 00021b50 6e 74 65 72 20 28 69 65 20 69 74 20 6d 61 79 20 |nter (ie it may | 00021b60 62 65 20 61 6e 79 74 68 69 6e 67 20 79 6f 75 20 |be anything you | 00021b70 6c 69 6b 65 29 2e 00 00 44 41 54 41 79 00 00 00 |like)...DATAy...| 00021b80 45 76 65 6e 74 20 48 61 6e 64 6c 69 6e 67 20 46 |Event Handling F| 00021b90 75 6e 63 74 69 6f 6e 73 0a 23 54 61 62 6c 65 20 |unctions.#Table | 00021ba0 32 20 32 30 0a 3c 64 62 6f 78 5f 65 76 65 6e 74 |2 20.<dbox_event| 00021bb0 68 61 6e 64 6c 65 72 3e 0a 3c 64 62 6f 78 5f 67 |handler>.<dbox_g| 00021bc0 65 74 3e 0a 3c 64 62 6f 78 5f 72 61 77 5f 65 76 |et>.<dbox_raw_ev| 00021bd0 65 6e 74 68 61 6e 64 6c 65 72 3e 0a 3c 64 62 6f |enthandler>.<dbo| 00021be0 78 5f 72 65 61 64 3e 0a 23 45 6e 64 54 61 62 6c |x_read>.#EndTabl| 00021bf0 65 00 00 00 44 41 54 41 da 00 00 00 64 62 6f 78 |e...DATA....dbox| 00021c00 5f 66 61 64 65 66 69 65 6c 64 0a 53 79 6e 74 61 |_fadefield.Synta| 00021c10 78 3a 09 76 6f 69 64 20 64 62 6f 78 5f 66 61 64 |x:.void dbox_fad| 00021c20 65 66 69 65 6c 64 20 28 3c 64 62 6f 78 3e 20 64 |efield (<dbox> d| 00021c30 2c 20 3c 64 62 6f 78 5f 66 69 65 6c 64 3e 20 66 |, <dbox_field> f| 00021c40 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 6f 78 |);.Header:.<dbox| 00021c50 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 54 68 69 |.h=>dbox_h>..Thi| 00021c60 73 20 66 75 6e 63 74 69 6f 6e 20 66 61 64 65 73 |s function fades| 00021c70 20 28 6f 72 20 73 68 61 64 65 73 20 69 6e 20 41 | (or shades in A| 00021c80 63 6f 72 6e 2d 73 70 65 61 6b 29 20 74 68 65 20 |corn-speak) the | 00021c90 73 70 65 63 69 66 69 65 64 20 66 69 65 6c 64 20 |specified field | 00021ca0 73 6f 20 74 68 61 74 20 69 74 20 6e 6f 20 6c 6f |so that it no lo| 00021cb0 6e 67 65 72 20 72 65 73 70 6f 6e 64 73 20 74 6f |nger responds to| 00021cc0 20 6d 6f 75 73 65 20 63 6c 69 63 6b 73 2e 00 00 | mouse clicks...| 00021cd0 44 41 54 41 b4 00 00 00 64 62 6f 78 5f 66 69 65 |DATA....dbox_fie| 00021ce0 6c 64 0a 54 68 65 20 74 79 70 65 20 7b 2f 7d 64 |ld.The type {/}d| 00021cf0 62 6f 78 5f 66 69 65 6c 64 7b 2f 7d 20 69 73 20 |box_field{/} is | 00021d00 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 62 6f 78 |defined in <dbox| 00021d10 2e 68 3d 3e 64 62 6f 78 5f 68 3e 20 61 73 20 61 |.h=>dbox_h> as a| 00021d20 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 00021d30 20 68 6f 6c 64 69 6e 67 20 61 6e 79 20 66 69 65 | holding any fie| 00021d40 6c 64 20 6e 75 6d 62 65 72 20 77 69 74 68 69 6e |ld number within| 00021d50 20 61 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 2e | a dialogue box.| 00021d60 20 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 | It is actually | 00021d70 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 2f 69 |defined as an /i| 00021d80 6e 74 2f 2e 44 41 54 41 42 01 00 00 64 62 6f 78 |nt/.DATAB...dbox| 00021d90 5f 66 69 65 6c 64 74 79 70 65 0a 54 68 65 20 74 |_fieldtype.The t| 00021da0 79 70 65 20 7b 2f 7d 64 62 6f 78 5f 66 69 65 6c |ype {/}dbox_fiel| 00021db0 64 74 79 70 65 7b 2f 7d 20 69 73 20 64 65 66 69 |dtype{/} is defi| 00021dc0 6e 65 64 20 69 6e 20 3c 64 62 6f 78 2e 68 3d 3e |ned in <dbox.h=>| 00021dd0 64 62 6f 78 5f 68 3e 20 61 73 20 61 20 74 79 70 |dbox_h> as a typ| 00021de0 65 20 63 61 70 61 62 6c 65 20 6f 66 20 73 70 65 |e capable of spe| 00021df0 63 69 66 79 69 6e 67 20 61 20 66 69 65 6c 64 20 |cifying a field | 00021e00 74 79 70 65 2e 20 49 74 20 69 73 20 61 6e 20 65 |type. It is an e| 00021e10 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 61 |numerated type a| 00021e20 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 65 6e 75 6d |s follows:..enum| 00021e30 0a 5c 7b 0a 20 20 20 20 64 62 6f 78 5f 46 41 43 |.\{. dbox_FAC| 00021e40 54 49 4f 4e 2c 09 2f 2a 20 41 63 74 69 6f 6e 20 |TION,./* Action | 00021e50 66 69 65 6c 64 20 2a 2f 0a 20 20 20 20 64 62 6f |field */. dbo| 00021e60 78 5f 46 4f 55 54 50 55 54 2c 09 2f 2a 20 4f 75 |x_FOUTPUT,./* Ou| 00021e70 74 70 75 74 20 66 69 65 6c 64 20 2a 2f 0a 20 20 |tput field */. | 00021e80 20 20 64 62 6f 78 5f 46 49 4e 50 55 54 2c 09 2f | dbox_FINPUT,./| 00021e90 2a 20 49 6e 70 75 74 20 66 69 65 6c 64 20 2a 2f |* Input field */| 00021ea0 0a 20 20 20 20 64 62 6f 78 5f 46 4f 4e 4f 46 46 |. dbox_FONOFF| 00021eb0 2c 09 2f 2a 20 4f 6e 2f 4f 66 66 20 66 69 65 6c |,./* On/Off fiel| 00021ec0 64 20 2a 2f 0a 7d 00 00 44 41 54 41 13 01 00 00 |d */.}..DATA....| 00021ed0 64 62 6f 78 5f 66 69 6c 6c 69 6e 0a 53 79 6e 74 |dbox_fillin.Synt| 00021ee0 61 78 3a 09 3c 64 62 6f 78 5f 66 69 65 6c 64 3e |ax:.<dbox_field>| 00021ef0 20 64 62 6f 78 5f 66 69 6c 6c 69 6e 20 28 3c 64 | dbox_fillin (<d| 00021f00 62 6f 78 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a |box> d);.Header:| 00021f10 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 |.<dbox.h=>dbox_h| 00021f20 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 |>..Returns:.The | 00021f30 61 63 74 69 76 61 74 65 64 20 66 69 65 6c 64 2e |activated field.| 00021f40 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00021f50 70 72 6f 63 65 73 73 65 73 20 65 76 65 6e 74 73 |processes events| 00021f60 20 75 6e 74 69 6c 20 61 20 66 69 65 6c 64 20 69 | until a field i| 00021f70 6e 20 74 68 65 20 64 69 61 6c 6f 67 75 65 20 62 |n the dialogue b| 00021f80 6f 78 20 69 73 20 61 63 74 69 76 61 74 65 64 2e |ox is activated.| 00021f90 20 54 68 65 20 63 61 72 65 74 20 69 73 20 61 6c | The caret is al| 00021fa0 73 6f 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 |so placed in the| 00021fb0 20 66 69 72 73 74 20 77 72 69 74 65 61 62 6c 65 | first writeable| 00021fc0 20 66 69 65 6c 64 20 69 6e 20 74 68 65 20 64 69 | field in the di| 00021fd0 61 6c 6f 67 75 65 20 62 6f 78 2e 00 44 41 54 41 |alogue box..DATA| 00021fe0 d6 00 00 00 64 62 6f 78 5f 67 65 74 0a 53 79 6e |....dbox_get.Syn| 00021ff0 74 61 78 3a 09 3c 64 62 6f 78 5f 66 69 65 6c 64 |tax:.<dbox_field| 00022000 3e 20 64 62 6f 78 5f 67 65 74 20 28 3c 64 62 6f |> dbox_get (<dbo| 00022010 78 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |x> d);.Header:.<| 00022020 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a |dbox.h=>dbox_h>.| 00022030 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 61 63 |.Returns:.The ac| 00022040 74 69 76 61 74 65 64 20 66 69 65 6c 64 20 6e 75 |tivated field nu| 00022050 6d 62 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |mber...This func| 00022060 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 66 |tion reads the f| 00022070 69 65 6c 64 20 6e 75 6d 62 65 72 20 6f 66 20 74 |ield number of t| 00022080 68 65 20 61 63 74 69 76 61 74 65 64 20 66 69 65 |he activated fie| 00022090 6c 64 20 61 6e 64 20 63 61 6e 63 65 6c 73 20 74 |ld and cancels t| 000220a0 68 65 20 65 76 65 6e 74 2e 20 49 20 74 68 69 6e |he event. I thin| 000220b0 6b 2e 00 00 44 41 54 41 37 01 00 00 64 62 6f 78 |k...DATA7...dbox| 000220c0 5f 67 65 74 66 69 65 6c 64 0a 53 79 6e 74 61 78 |_getfield.Syntax| 000220d0 3a 09 76 6f 69 64 20 64 62 6f 78 5f 67 65 74 66 |:.void dbox_getf| 000220e0 69 65 6c 64 20 28 3c 64 62 6f 78 3e 20 64 2c 20 |ield (<dbox> d, | 000220f0 3c 64 62 6f 78 5f 66 69 65 6c 64 3e 20 66 2c 20 |<dbox_field> f, | 00022100 63 68 61 72 20 2a 62 75 66 2c 20 69 6e 74 20 73 |char *buf, int s| 00022110 69 7a 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 |ize);.Header:.<d| 00022120 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a |box.h=>dbox_h>..| 00022130 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 00022140 61 64 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 |ads the contents| 00022150 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 | of the specifie| 00022160 64 20 66 69 65 6c 64 20 69 6e 20 74 68 65 20 73 |d field in the s| 00022170 70 65 63 69 66 69 65 64 20 64 69 61 6c 6f 67 75 |pecified dialogu| 00022180 65 20 62 6f 78 20 61 6e 64 20 72 65 74 75 72 6e |e box and return| 00022190 73 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 20 69 |s its contents i| 000221a0 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 |n the character | 000221b0 61 72 72 61 79 20 70 6f 69 6e 74 65 64 20 74 6f |array pointed to| 000221c0 20 62 79 20 2f 62 75 66 2f 2e 20 2f 73 69 7a 65 | by /buf/. /size| 000221d0 2f 20 69 73 20 74 68 65 20 73 69 7a 65 20 6f 66 |/ is the size of| 000221e0 20 74 68 65 20 61 72 72 61 79 2e 00 44 41 54 41 | the array..DATA| 000221f0 36 01 00 00 64 62 6f 78 5f 67 65 74 6e 75 6d 65 |6...dbox_getnume| 00022200 72 69 63 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |ric.Syntax:.int | 00022210 64 62 6f 78 5f 67 65 74 6e 75 6d 65 72 69 63 20 |dbox_getnumeric | 00022220 28 3c 64 62 6f 78 3e 20 64 2c 20 3c 64 62 6f 78 |(<dbox> d, <dbox| 00022230 5f 66 69 65 6c 64 3e 20 66 29 3b 0a 48 65 61 64 |_field> f);.Head| 00022240 65 72 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f |er:.<dbox.h=>dbo| 00022250 78 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 |x_h>..Returns:.T| 00022260 68 65 20 66 69 65 6c 64 20 63 6f 6e 74 65 6e 74 |he field content| 00022270 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |s...This functio| 00022280 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 63 |n converts the c| 00022290 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 |ontents of the f| 000222a0 69 65 6c 64 20 69 6e 74 6f 20 61 20 73 69 67 6e |ield into a sign| 000222b0 65 64 20 69 6e 74 65 67 65 72 20 61 6e 64 20 72 |ed integer and r| 000222c0 65 74 75 72 6e 73 20 69 74 2e 20 49 66 20 74 68 |eturns it. If th| 000222d0 65 20 66 69 65 6c 64 20 69 73 20 61 6e 20 6f 6e |e field is an on| 000222e0 2f 6f 66 66 20 66 69 65 6c 64 2c 20 74 68 65 6e |/off field, then| 000222f0 20 69 74 20 72 65 74 75 72 6e 73 20 31 20 69 66 | it returns 1 if| 00022300 20 74 68 65 20 66 69 65 6c 64 20 69 73 20 73 65 | the field is se| 00022310 74 2c 20 61 6e 64 20 30 20 69 66 20 75 6e 73 65 |t, and 0 if unse| 00022320 74 2e 00 00 44 41 54 41 77 02 00 00 64 62 6f 78 |t...DATAw...dbox| 00022330 2e 68 0a 23 50 61 72 65 6e 74 20 72 6f 5f 61 6e |.h.#Parent ro_an| 00022340 73 69 63 5f 0a 54 68 65 20 5c 3c 64 62 6f 78 2e |sic_.The \<dbox.| 00022350 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |h> header declar| 00022360 65 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 66 |es a number of f| 00022370 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 68 61 6e |unctions for han| 00022380 64 6c 69 6e 67 20 64 69 61 6c 6f 67 75 65 20 62 |dling dialogue b| 00022390 6f 78 65 73 2e 20 49 74 20 61 6c 73 6f 20 64 65 |oxes. It also de| 000223a0 66 69 6e 65 73 20 61 20 66 65 77 20 74 79 70 65 |fines a few type| 000223b0 73 20 72 65 6c 61 74 69 6e 67 20 74 6f 20 64 69 |s relating to di| 000223c0 61 6c 6f 67 75 65 20 62 6f 78 65 73 2e 0a 0a 46 |alogue boxes...F| 000223d0 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 |unctions:..#Inde| 000223e0 6e 74 20 31 30 0a 23 54 61 62 6c 65 20 32 20 32 |nt 10.#Table 2 2| 000223f0 30 0a 3c 43 72 65 61 74 69 6e 67 2f 44 65 6c 65 |0.<Creating/Dele| 00022400 74 69 6e 67 3d 3e 64 62 6f 78 5f 63 72 64 6c 5f |ting=>dbox_crdl_| 00022410 3e 0a 3c 43 6f 6e 74 72 6f 6c 6c 69 6e 67 3d 3e |>.<Controlling=>| 00022420 64 62 6f 78 5f 63 74 72 6c 5f 3e 0a 3c 45 76 65 |dbox_ctrl_>.<Eve| 00022430 6e 74 20 68 61 6e 64 6c 69 6e 67 3d 3e 64 62 6f |nt handling=>dbo| 00022440 78 5f 65 76 6e 74 5f 3e 0a 3c 50 65 6e 64 69 6e |x_evnt_>.<Pendin| 00022450 67 20 6f 70 65 72 61 74 69 6f 6e 73 3d 3e 64 62 |g operations=>db| 00022460 6f 78 5f 70 65 6e 64 5f 3e 0a 23 45 6e 64 54 61 |ox_pend_>.#EndTa| 00022470 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 30 0a 4d |ble..#Indent 0.M| 00022480 61 63 72 6f 73 3a 0a 0a 7b 61 6c 69 67 6e 20 63 |acros:..{align c| 00022490 65 6e 74 72 65 7d 3c 64 62 6f 78 5f 43 4c 4f 53 |entre}<dbox_CLOS| 000224a0 45 3e 7b 61 6c 69 67 6e 7d 0a 20 20 20 0a 54 79 |E>{align}. .Ty| 000224b0 70 65 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 31 30 |pes:..#Indent 10| 000224c0 0a 23 54 61 62 6c 65 20 33 20 32 30 0a 3c 64 62 |.#Table 3 20.<db| 000224d0 6f 78 3e 0a 3c 64 62 6f 78 5f 66 69 65 6c 64 3e |ox>.<dbox_field>| 000224e0 0a 3c 64 62 6f 78 5f 66 69 65 6c 64 74 79 70 65 |.<dbox_fieldtype| 000224f0 3e 0a 3c 64 62 6f 78 5f 68 61 6e 64 6c 65 72 5f |>.<dbox_handler_| 00022500 70 72 6f 63 3e 0a 3c 64 62 6f 78 5f 72 61 77 5f |proc>.<dbox_raw_| 00022510 68 61 6e 64 6c 65 72 5f 70 72 6f 63 3e 0a 23 45 |handler_proc>.#E| 00022520 6e 64 54 61 62 6c 65 0a 0a 23 62 65 6c 6f 77 3b |ndTable..#below;| 00022530 69 6e 64 65 6e 74 20 30 0a 42 65 66 6f 72 65 20 |indent 0.Before | 00022540 61 6e 79 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |any dialogue box| 00022550 65 73 20 6d 61 79 20 62 65 20 75 73 65 64 2c 20 |es may be used, | 00022560 74 68 65 20 64 62 6f 78 20 73 79 73 74 65 6d 20 |the dbox system | 00022570 6d 75 73 74 20 62 65 20 69 6e 69 74 69 61 6c 69 |must be initiali| 00022580 73 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 20 3c |sed by calling <| 00022590 64 62 6f 78 5f 69 6e 69 74 3e 2e 00 44 41 54 41 |dbox_init>..DATA| 000225a0 d6 00 00 00 64 62 6f 78 5f 68 61 6e 64 6c 65 72 |....dbox_handler| 000225b0 5f 70 72 6f 63 0a 54 68 69 73 20 74 79 70 65 20 |_proc.This type | 000225c0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 |is defined in <d| 000225d0 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 20 61 |box.h=>dbox_h> a| 000225e0 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 |s a function typ| 000225f0 65 20 66 6f 72 20 75 73 65 20 62 79 20 3c 64 62 |e for use by <db| 00022600 6f 78 5f 65 76 65 6e 74 68 61 6e 64 6c 65 72 3e |ox_eventhandler>| 00022610 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 |. The function i| 00022620 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 7b 77 |s defined as:.{w| 00022630 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 3b |rap off}.{fCode;| 00022640 61 6c 69 67 6e 7d 76 6f 69 64 20 70 72 6f 63 20 |align}void proc | 00022650 28 3c 64 62 6f 78 3e 20 64 2c 20 76 6f 69 64 20 |(<dbox> d, void | 00022660 2a 68 61 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 |*handle);{f;alig| 00022670 6e 7d 00 00 44 41 54 41 b3 00 00 00 64 62 6f 78 |n}..DATA....dbox| 00022680 5f 68 69 64 65 0a 53 79 6e 74 61 78 3a 09 76 6f |_hide.Syntax:.vo| 00022690 69 64 20 64 62 6f 78 5f 68 69 64 65 20 28 3c 64 |id dbox_hide (<d| 000226a0 62 6f 78 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a |box> d);.Header:| 000226b0 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 |.<dbox.h=>dbox_h| 000226c0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000226d0 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 63 6c 6f | temporarily clo| 000226e0 73 65 73 20 74 68 65 20 64 69 61 6c 6f 67 75 65 |ses the dialogue| 000226f0 20 62 6f 78 20 67 69 76 65 6e 20 69 6e 20 2f 64 | box given in /d| 00022700 2f 2e 20 49 74 20 6d 61 79 20 62 65 20 72 65 2d |/. It may be re-| 00022710 73 68 6f 77 6e 20 77 69 74 68 20 3c 64 62 6f 78 |shown with <dbox| 00022720 5f 73 68 6f 77 3e 2e 00 44 41 54 41 e5 00 00 00 |_show>..DATA....| 00022730 64 62 6f 78 5f 69 6e 69 74 0a 53 79 6e 74 61 78 |dbox_init.Syntax| 00022740 3a 09 76 6f 69 64 20 64 62 6f 78 5f 69 6e 69 74 |:.void dbox_init| 00022750 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 00022760 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 |.<dbox.h=>dbox_h| 00022770 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00022780 20 69 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 | initialises the| 00022790 20 64 62 6f 78 20 73 79 73 74 65 6d 2e 20 49 74 | dbox system. It| 000227a0 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 | must be called | 000227b0 6f 6e 63 65 20 62 65 66 6f 72 65 20 61 6e 79 20 |once before any | 000227c0 64 69 61 6c 6f 67 75 65 20 62 6f 78 65 73 20 6d |dialogue boxes m| 000227d0 61 79 20 62 65 20 75 73 65 64 2e 20 49 74 20 6d |ay be used. It m| 000227e0 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 61 66 |ust be called af| 000227f0 74 65 72 20 3c 74 65 6d 70 6c 61 74 65 5f 69 6e |ter <template_in| 00022800 69 74 3e 2c 20 68 6f 77 65 76 65 72 2e 00 00 00 |it>, however....| 00022810 44 41 54 41 3d 01 00 00 64 62 6f 78 5f 6e 65 77 |DATA=...dbox_new| 00022820 0a 53 79 6e 74 61 78 3a 09 3c 64 62 6f 78 3e 20 |.Syntax:.<dbox> | 00022830 64 62 6f 78 5f 6e 65 77 20 28 63 68 61 72 20 2a |dbox_new (char *| 00022840 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |name);.Header:.<| 00022850 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a |dbox.h=>dbox_h>.| 00022860 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 64 62 |.Returns:.The db| 00022870 6f 78 20 68 61 6e 64 6c 65 2c 20 3c 4e 55 4c 4c |ox handle, <NULL| 00022880 3e 20 66 6f 72 20 65 72 72 6f 72 2e 0a 0a 54 68 |> for error...Th| 00022890 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 |is function crea| 000228a0 74 65 73 20 61 20 6e 65 77 20 64 69 61 6c 6f 67 |tes a new dialog| 000228b0 75 65 20 62 6f 78 20 66 72 6f 6d 20 74 68 65 20 |ue box from the | 000228c0 74 65 6d 70 6c 61 74 65 20 77 68 6f 73 65 20 6e |template whose n| 000228d0 61 6d 65 20 69 73 20 67 69 76 65 6e 2e 20 54 68 |ame is given. Th| 000228e0 65 20 74 65 6d 70 6c 61 74 65 20 6d 75 73 74 20 |e template must | 000228f0 68 61 76 65 20 62 65 65 6e 20 6c 6f 61 64 65 64 |have been loaded| 00022900 20 77 69 74 68 20 3c 74 65 6d 70 6c 61 74 65 5f | with <template_| 00022910 69 6e 69 74 3e 2e 0a 0a 54 68 69 73 20 6f 6e 6c |init>...This onl| 00022920 79 20 63 72 65 61 74 65 73 20 74 68 65 20 77 69 |y creates the wi| 00022930 6e 64 6f 77 2c 20 69 74 20 64 6f 65 73 20 6e 6f |ndow, it does no| 00022940 74 20 64 69 73 70 6c 61 79 20 69 74 2e 00 00 00 |t display it....| 00022950 44 41 54 41 9a 00 00 00 50 65 6e 64 69 6e 67 20 |DATA....Pending | 00022960 4f 70 65 72 61 74 69 6f 6e 73 20 46 75 6e 63 74 |Operations Funct| 00022970 69 6f 6e 73 0a 23 54 61 62 6c 65 20 33 20 32 35 |ions.#Table 3 25| 00022980 0a 3c 64 62 6f 78 5f 66 69 6c 6c 69 6e 3e 0a 3c |.<dbox_fillin>.<| 00022990 64 62 6f 78 5f 66 69 6c 6c 69 6e 5f 66 69 78 65 |dbox_fillin_fixe| 000229a0 64 63 61 72 65 74 3e 0a 3c 64 62 6f 78 5f 69 6e |dcaret>.<dbox_in| 000229b0 69 74 3e 0a 3c 64 62 6f 78 5f 70 65 72 73 69 73 |it>.<dbox_persis| 000229c0 74 3e 0a 3c 64 62 6f 78 5f 70 6f 70 75 70 3e 0a |t>.<dbox_popup>.| 000229d0 3c 64 62 6f 78 5f 73 79 73 68 61 6e 64 6c 65 3e |<dbox_syshandle>| 000229e0 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 41 54 41 |.#EndTable..DATA| 000229f0 fc 00 00 00 64 62 6f 78 5f 70 65 72 73 69 73 74 |....dbox_persist| 00022a00 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 |.Syntax:.<BOOL> | 00022a10 64 62 6f 78 5f 70 65 72 73 69 73 74 20 28 76 6f |dbox_persist (vo| 00022a20 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 |id);.Header:.<db| 00022a30 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 52 |ox.h=>dbox_h>..R| 00022a40 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 |eturns:.<TRUE> i| 00022a50 66 20 74 68 65 20 64 62 6f 78 20 69 73 20 74 6f |f the dbox is to| 00022a60 20 72 65 6d 61 69 6e 20 6f 6e 20 73 63 72 65 65 | remain on scree| 00022a70 6e 2e 0a 0a 42 61 73 69 63 61 6c 6c 79 2c 20 69 |n...Basically, i| 00022a80 66 20 74 68 65 20 75 73 65 72 20 63 6c 69 63 6b |f the user click| 00022a90 65 64 20 2a 41 64 6a 75 73 74 2a 20 74 68 65 6e |ed *Adjust* then| 00022aa0 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 | this function r| 00022ab0 65 74 75 72 6e 73 20 54 52 55 45 20 61 6e 64 20 |eturns TRUE and | 00022ac0 79 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 20 64 |you should not d| 00022ad0 65 73 74 72 6f 79 20 74 68 65 20 64 69 61 6c 6f |estroy the dialo| 00022ae0 67 75 65 20 62 6f 78 2e 44 41 54 41 7f 01 00 00 |gue box.DATA....| 00022af0 64 62 6f 78 5f 70 6f 70 75 70 0a 53 79 6e 74 61 |dbox_popup.Synta| 00022b00 78 3a 09 3c 64 62 6f 78 5f 66 69 65 6c 64 3e 20 |x:.<dbox_field> | 00022b10 64 62 6f 78 5f 70 6f 70 75 70 20 28 63 68 61 72 |dbox_popup (char| 00022b20 20 2a 6e 61 6d 65 2c 20 63 68 61 72 20 2a 6d 73 | *name, char *ms| 00022b30 67 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 6f |g);.Header:.<dbo| 00022b40 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 52 65 |x.h=>dbox_h>..Re| 00022b50 74 75 72 6e 73 3a 09 54 68 65 20 61 63 74 69 76 |turns:.The activ| 00022b60 61 74 65 64 20 66 69 65 6c 64 20 6e 75 6d 62 65 |ated field numbe| 00022b70 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 00022b80 6e 20 69 73 20 74 68 65 20 65 61 73 79 20 77 61 |n is the easy wa| 00022b90 79 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 |y to handle the | 00022ba0 64 62 6f 78 20 73 79 73 74 65 6d 2e 20 49 74 20 |dbox system. It | 00022bb0 63 72 65 61 74 65 73 20 61 20 64 69 61 6c 6f 67 |creates a dialog| 00022bc0 75 65 20 62 6f 78 20 66 72 6f 6d 20 74 68 65 20 |ue box from the | 00022bd0 6e 61 6d 65 64 20 74 65 6d 70 6c 61 74 65 2c 20 |named template, | 00022be0 70 75 74 73 20 74 68 65 20 73 74 72 69 6e 67 20 |puts the string | 00022bf0 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 6d |pointed to by /m| 00022c00 73 67 2f 20 69 6e 74 6f 20 66 69 65 6c 64 20 31 |sg/ into field 1| 00022c10 2c 20 63 61 6c 6c 73 20 3c 64 62 6f 78 5f 66 69 |, calls <dbox_fi| 00022c20 6c 6c 69 6e 3e 2c 20 64 65 73 74 72 6f 79 73 20 |llin>, destroys | 00022c30 74 68 65 20 64 62 6f 78 20 61 6e 64 20 72 65 74 |the dbox and ret| 00022c40 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |urns the number | 00022c50 6f 66 20 74 68 65 20 61 63 74 69 76 61 74 65 64 |of the activated| 00022c60 20 66 69 65 6c 64 2e 00 44 41 54 41 e0 00 00 00 | field..DATA....| 00022c70 64 62 6f 78 5f 72 65 61 64 0a 53 79 6e 74 61 78 |dbox_read.Syntax| 00022c80 3a 09 3c 64 62 6f 78 5f 66 69 65 6c 64 3e 20 64 |:.<dbox_field> d| 00022c90 62 6f 78 5f 72 65 61 64 20 28 3c 64 62 6f 78 3e |box_read (<dbox>| 00022ca0 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 | d);.Header:.<db| 00022cb0 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 52 |ox.h=>dbox_h>..R| 00022cc0 65 74 75 72 6e 73 3a 09 54 68 65 20 61 63 74 69 |eturns:.The acti| 00022cd0 76 61 74 65 64 20 66 69 65 6c 64 20 6e 75 6d 62 |vated field numb| 00022ce0 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |er...This functi| 00022cf0 6f 6e 20 72 65 61 64 73 20 74 68 65 20 66 69 65 |on reads the fie| 00022d00 6c 64 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 |ld number of the| 00022d10 20 61 63 74 69 76 61 74 65 64 20 66 69 65 6c 64 | activated field| 00022d20 20 61 6e 64 20 64 6f 65 73 20 6e 6f 74 20 63 61 | and does not ca| 00022d30 6e 63 65 6c 20 74 68 65 20 65 76 65 6e 74 2e 20 |ncel the event. | 00022d40 49 20 74 68 69 6e 6b 2e 44 41 54 41 0a 01 00 00 |I think.DATA....| 00022d50 64 62 6f 78 5f 73 65 74 66 69 65 6c 64 0a 53 79 |dbox_setfield.Sy| 00022d60 6e 74 61 78 3a 09 76 6f 69 64 20 64 62 6f 78 5f |ntax:.void dbox_| 00022d70 73 65 74 66 69 65 6c 64 20 28 3c 64 62 6f 78 3e |setfield (<dbox>| 00022d80 20 64 2c 20 3c 64 62 6f 78 5f 66 69 65 6c 64 3e | d, <dbox_field>| 00022d90 20 66 2c 20 63 68 61 72 20 2a 70 29 3b 0a 48 65 | f, char *p);.He| 00022da0 61 64 65 72 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 |ader:.<dbox.h=>d| 00022db0 62 6f 78 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |box>..This funct| 00022dc0 69 6f 6e 20 73 65 74 73 20 74 68 65 20 63 6f 6e |ion sets the con| 00022dd0 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 69 65 |tents of the fie| 00022de0 6c 64 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 |ld given in the | 00022df0 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 67 69 76 |dialogue box giv| 00022e00 65 6e 20 74 6f 20 74 68 65 20 6e 75 6c 6c 2d 74 |en to the null-t| 00022e10 65 72 6d 69 6e 61 74 65 64 20 74 65 78 74 20 63 |erminated text c| 00022e20 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 |ontained in the | 00022e30 63 68 61 72 61 63 74 65 72 20 61 72 72 61 79 20 |character array | 00022e40 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 70 |pointed to by /p| 00022e50 2f 2e 00 00 44 41 54 41 3b 01 00 00 64 62 6f 78 |/...DATA;...dbox| 00022e60 5f 73 65 74 6e 75 6d 65 72 69 63 0a 53 79 6e 74 |_setnumeric.Synt| 00022e70 61 78 3a 09 76 6f 69 64 20 64 62 6f 78 5f 73 65 |ax:.void dbox_se| 00022e80 74 6e 75 6d 65 72 69 63 20 28 3c 64 62 6f 78 3e |tnumeric (<dbox>| 00022e90 20 64 2c 20 3c 64 62 6f 78 5f 66 69 65 6c 64 3e | d, <dbox_field>| 00022ea0 20 66 2c 20 69 6e 74 20 76 61 6c 29 3b 0a 48 65 | f, int val);.He| 00022eb0 61 64 65 72 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 |ader:.<dbox.h=>d| 00022ec0 62 6f 78 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e |box_h>..This fun| 00022ed0 63 74 69 6f 6e 20 73 65 74 73 20 74 68 65 20 66 |ction sets the f| 00022ee0 69 65 6c 64 20 69 6e 20 74 68 65 20 64 69 61 6c |ield in the dial| 00022ef0 6f 67 75 65 20 62 6f 78 20 73 70 65 63 69 66 69 |ogue box specifi| 00022f00 65 64 20 74 6f 20 62 65 20 74 68 65 20 74 65 78 |ed to be the tex| 00022f10 74 75 61 6c 20 65 71 75 69 76 61 6c 65 6e 74 20 |tual equivalent | 00022f20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 67 69 76 |of the value giv| 00022f30 65 6e 20 69 6e 20 2f 76 61 6c 2f 2e 20 49 66 20 |en in /val/. If | 00022f40 74 68 65 20 66 69 65 6c 64 20 69 73 20 61 6e 20 |the field is an | 00022f50 61 63 74 69 6f 6e 20 66 69 65 6c 64 20 74 68 65 |action field the| 00022f60 6e 20 61 20 6e 6f 6e 2d 7a 65 72 6f 20 76 61 6c |n a non-zero val| 00022f70 75 65 20 73 65 74 73 20 69 74 2c 20 61 6e 64 20 |ue sets it, and | 00022f80 7a 65 72 6f 20 75 6e 73 65 74 73 20 69 74 2e 00 |zero unsets it..| 00022f90 44 41 54 41 68 01 00 00 64 62 6f 78 5f 73 68 6f |DATAh...dbox_sho| 00022fa0 77 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 64 |w.Syntax:.void d| 00022fb0 62 6f 78 5f 73 68 6f 77 20 28 3c 64 62 6f 78 3e |box_show (<dbox>| 00022fc0 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 | d);.Header:.<db| 00022fd0 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 54 |ox.h=>dbox_h>..T| 00022fe0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f |his function sho| 00022ff0 77 73 20 74 68 65 20 64 69 61 6c 6f 67 75 65 20 |ws the dialogue | 00023000 62 6f 78 20 77 68 6f 73 65 20 68 61 6e 64 6c 65 |box whose handle| 00023010 20 69 73 20 67 69 76 65 6e 2e 20 44 69 61 6c 6f | is given. Dialo| 00023020 67 75 65 20 62 6f 78 65 73 20 73 68 6f 77 6e 20 |gue boxes shown | 00023030 69 6e 20 74 68 69 73 20 77 61 79 20 77 69 6c 6c |in this way will| 00023040 20 64 69 73 61 70 70 65 61 72 20 69 66 20 74 68 | disappear if th| 00023050 65 20 75 73 65 72 73 20 63 6c 69 63 6b 73 20 6f |e users clicks o| 00023060 75 74 73 69 64 65 20 74 68 65 6d 2c 20 6f 72 20 |utside them, or | 00023070 70 72 65 73 73 65 73 20 2a 45 73 63 61 70 65 2a |presses *Escape*| 00023080 20 28 6c 69 6b 65 20 61 20 6d 65 6e 75 29 2e 20 | (like a menu). | 00023090 54 68 65 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |The dialogue box| 000230a0 20 77 69 6c 6c 20 62 65 20 73 68 6f 77 6e 20 6e | will be shown n| 000230b0 65 61 72 20 74 68 65 20 6c 61 73 74 20 6d 65 6e |ear the last men| 000230c0 75 20 73 65 6c 65 63 74 69 6f 6e 20 6f 72 20 63 |u selection or c| 000230d0 61 72 65 74 20 73 65 74 74 69 6e 67 20 28 77 68 |aret setting (wh| 000230e0 69 63 68 65 76 65 72 20 69 73 20 6d 6f 73 74 20 |ichever is most | 000230f0 72 65 63 65 6e 74 29 2e 44 41 54 41 22 01 00 00 |recent).DATA"...| 00023100 64 62 6f 78 5f 73 68 6f 77 73 74 61 74 69 63 0a |dbox_showstatic.| 00023110 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 64 62 6f |Syntax:.void dbo| 00023120 78 5f 73 68 6f 77 73 74 61 74 69 63 20 28 3c 64 |x_showstatic (<d| 00023130 62 6f 78 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a |box> d);.Header:| 00023140 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 |.<dbox.h=>dbox_h| 00023150 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00023160 20 73 68 6f 77 73 20 74 68 65 20 64 69 61 6c 6f | shows the dialo| 00023170 67 75 65 20 62 6f 78 20 77 68 6f 6c 65 20 68 61 |gue box whole ha| 00023180 6e 64 6c 65 20 69 73 20 67 69 76 65 6e 2e 20 49 |ndle is given. I| 00023190 74 20 77 69 6c 6c 20 72 65 6d 61 69 6e 20 76 69 |t will remain vi| 000231a0 73 69 62 6c 65 20 75 6e 74 69 6c 20 73 70 65 63 |sible until spec| 000231b0 69 66 69 63 61 6c 6c 79 20 63 6c 6f 73 65 64 20 |ifically closed | 000231c0 65 69 74 68 65 72 20 62 79 20 74 68 65 20 70 72 |either by the pr| 000231d0 6f 67 72 61 6d 20 6f 72 20 62 79 20 74 68 65 20 |ogram or by the | 000231e0 75 73 65 72 2e 20 4f 74 68 65 72 77 69 73 65 20 |user. Otherwise | 000231f0 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 |this function is| 00023200 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c 64 | identical to <d| 00023210 62 6f 78 5f 73 68 6f 77 3e 2e 00 00 44 41 54 41 |box_show>...DATA| 00023220 03 01 00 00 64 62 6f 78 5f 73 79 73 68 61 6e 64 |....dbox_syshand| 00023230 6c 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 64 |le.Syntax:.int d| 00023240 62 6f 78 5f 73 79 73 68 61 6e 64 6c 65 20 28 3c |box_syshandle (<| 00023250 64 62 6f 78 3e 20 64 29 3b 0a 48 65 61 64 65 72 |dbox> d);.Header| 00023260 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f |:.<dbox.h=>dbox_| 00023270 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 |h>..Returns:.The| 00023280 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 6f | window handle o| 00023290 66 20 74 68 65 20 64 62 6f 78 2e 0a 0a 54 68 69 |f the dbox...Thi| 000232a0 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 |s function retur| 000232b0 6e 73 20 74 68 65 20 77 69 6e 64 6f 77 20 68 61 |ns the window ha| 000232c0 6e 64 6c 65 20 6f 66 20 61 20 67 69 76 65 6e 20 |ndle of a given | 000232d0 64 69 61 6c 6f 67 75 65 20 62 6f 78 2e 20 54 68 |dialogue box. Th| 000232e0 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f |is allows you to| 000232f0 20 61 6c 74 65 72 20 74 68 65 20 63 6f 6e 74 65 | alter the conte| 00023300 6e 74 73 20 6f 66 20 69 74 20 75 73 69 6e 67 20 |nts of it using | 00023310 73 74 61 6e 64 61 72 64 20 63 61 6c 6c 73 2e 00 |standard calls..| 00023320 44 41 54 41 cf 00 00 00 64 62 6f 78 5f 75 6e 66 |DATA....dbox_unf| 00023330 61 64 65 66 69 65 6c 64 0a 53 79 6e 74 61 78 3a |adefield.Syntax:| 00023340 09 76 6f 69 64 20 64 62 6f 78 5f 75 6e 66 61 64 |.void dbox_unfad| 00023350 65 66 69 65 6c 64 20 28 3c 64 62 6f 78 3e 20 64 |efield (<dbox> d| 00023360 2c 20 3c 64 62 6f 78 5f 66 69 65 6c 64 3e 20 66 |, <dbox_field> f| 00023370 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 62 6f 78 |);.Header:.<dbox| 00023380 2e 68 3d 3e 64 62 6f 78 5f 68 3e 0a 0a 54 68 69 |.h=>dbox_h>..Thi| 00023390 73 20 66 75 6e 63 74 69 6f 6e 20 75 6e 66 61 64 |s function unfad| 000233a0 65 73 20 28 75 6e 73 68 61 64 65 73 29 20 74 68 |es (unshades) th| 000233b0 65 20 73 70 65 63 69 66 69 65 64 20 66 69 65 6c |e specified fiel| 000233c0 64 20 73 6f 20 74 68 61 74 20 69 74 20 72 65 73 |d so that it res| 000233d0 70 6f 6e 64 73 20 74 6f 20 6d 6f 75 73 65 20 63 |ponds to mouse c| 000233e0 6c 69 63 6b 73 2e 20 20 20 20 20 20 20 20 20 00 |licks. .| 000233f0 44 41 54 41 28 02 00 00 64 62 6f 78 5f 72 61 77 |DATA(...dbox_raw| 00023400 5f 65 76 65 6e 74 68 61 6e 64 6c 65 72 0a 53 79 |_eventhandler.Sy| 00023410 6e 74 61 78 3a 09 76 6f 69 64 20 64 62 6f 78 5f |ntax:.void dbox_| 00023420 72 61 77 5f 65 76 65 6e 74 68 61 6e 64 6c 65 72 |raw_eventhandler| 00023430 20 28 3c 64 62 6f 78 3e 20 64 2c 20 3c 64 62 6f | (<dbox> d, <dbo| 00023440 78 5f 72 61 77 5f 68 61 6e 64 6c 65 72 5f 70 72 |x_raw_handler_pr| 00023450 6f 63 3d 3e 64 62 6f 78 5f 72 61 77 5f 68 61 6e |oc=>dbox_raw_han| 00023460 64 6c 65 72 5f 70 72 3e 20 70 72 6f 63 2c 20 76 |dler_pr> proc, v| 00023470 6f 69 64 20 2a 68 6e 64 29 3b 0a 48 65 61 64 65 |oid *hnd);.Heade| 00023480 72 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 |r:.<dbox.h=>dbox| 00023490 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |_h>..This functi| 000234a0 6f 6e 20 64 65 73 69 67 6e 61 74 65 73 20 61 20 |on designates a | 000234b0 68 61 6e 64 6c 65 72 20 77 68 69 63 68 20 77 69 |handler which wi| 000234c0 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 |ll be called wit| 000234d0 68 20 74 68 65 20 75 73 65 72 20 68 61 6e 64 6c |h the user handl| 000234e0 65 20 67 69 76 65 6e 20 28 7b 2f 7d 68 6e 64 7b |e given ({/}hnd{| 000234f0 2f 7d 29 20 77 68 65 6e 65 76 65 72 20 61 20 66 |/}) whenever a f| 00023500 69 65 6c 64 20 69 6e 20 74 68 65 20 73 70 65 63 |ield in the spec| 00023510 69 66 69 65 64 20 64 69 61 6c 6f 67 75 65 20 62 |ified dialogue b| 00023520 6f 78 20 69 73 20 61 63 74 69 76 61 74 65 64 2e |ox is activated.| 00023530 20 54 68 65 20 68 61 6e 64 6c 65 72 20 69 73 20 | The handler is | 00023540 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 6f 73 65 |a function whose| 00023550 20 70 72 6f 74 6f 74 79 70 65 20 69 73 20 73 69 | prototype is si| 00023560 6d 69 6c 61 72 20 74 6f 3a 0a 7b 66 43 6f 64 65 |milar to:.{fCode| 00023570 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 42 |;align centre}<B| 00023580 4f 4f 4c 3e 20 70 72 6f 63 20 28 64 62 6f 78 20 |OOL> proc (dbox | 00023590 64 2c 20 76 6f 69 64 20 2a 65 76 65 6e 74 2c 20 |d, void *event, | 000235a0 76 6f 69 64 20 2a 68 6e 64 29 3b 7b 66 3b 61 6c |void *hnd);{f;al| 000235b0 69 67 6e 7d 0a 0a 54 68 65 20 65 76 65 6e 74 20 |ign}..The event | 000235c0 77 69 6c 6c 20 61 63 74 75 61 6c 6c 79 20 62 65 |will actually be| 000235d0 20 61 20 3c 77 69 6d 70 5f 65 76 65 6e 74 73 74 | a <wimp_eventst| 000235e0 72 3e 2a 20 75 6e 64 65 72 20 52 49 53 43 20 4f |r>* under RISC O| 000235f0 53 2e 20 54 68 65 20 68 61 6e 64 6c 65 20 69 73 |S. The handle is| 00023600 20 61 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 | a user defined | 00023610 70 6f 69 6e 74 65 72 2e 44 41 54 41 eb 00 00 00 |pointer.DATA....| 00023620 64 62 6f 78 5f 72 61 77 5f 68 61 6e 64 6c 65 72 |dbox_raw_handler| 00023630 5f 70 72 6f 63 0a 54 68 69 73 20 74 79 70 65 20 |_proc.This type | 00023640 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 |is defined in <d| 00023650 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f 68 3e 20 61 |box.h=>dbox_h> a| 00023660 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 |s a function typ| 00023670 65 20 66 6f 72 20 75 73 65 20 62 79 20 3c 64 62 |e for use by <db| 00023680 6f 78 5f 72 61 77 5f 65 76 65 6e 74 68 61 6e 64 |ox_raw_eventhand| 00023690 6c 65 72 3e 2e 20 54 68 65 20 66 75 6e 63 74 69 |ler>. The functi| 000236a0 6f 6e 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |on is defined as| 000236b0 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 |:.{wrap off}.{fC| 000236c0 6f 64 65 3b 61 6c 69 67 6e 7d 76 6f 69 64 20 70 |ode;align}void p| 000236d0 72 6f 63 20 28 3c 64 62 6f 78 3e 20 64 2c 20 76 |roc (<dbox> d, v| 000236e0 6f 69 64 20 2a 65 76 65 6e 74 2c 20 76 6f 69 64 |oid *event, void| 000236f0 20 2a 68 61 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 | *handle);{f;ali| 00023700 67 6e 7d 00 44 41 54 41 fb 00 00 00 64 62 6f 78 |gn}.DATA....dbox| 00023710 5f 66 69 6c 6c 69 6e 5f 66 69 78 65 64 63 61 72 |_fillin_fixedcar| 00023720 65 74 0a 53 79 6e 74 61 78 3a 09 3c 64 62 6f 78 |et.Syntax:.<dbox| 00023730 5f 66 69 65 6c 64 3e 20 64 62 6f 78 5f 66 69 6c |_field> dbox_fil| 00023740 6c 69 6e 5f 66 69 78 65 64 63 61 72 65 74 20 28 |lin_fixedcaret (| 00023750 3c 64 62 6f 78 3e 20 64 29 3b 0a 48 65 61 64 65 |<dbox> d);.Heade| 00023760 72 3a 09 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 |r:.<dbox.h=>dbox| 00023770 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |_h>..Returns:.Th| 00023780 65 20 61 63 74 69 76 61 74 65 64 20 66 69 65 6c |e activated fiel| 00023790 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |d...This functio| 000237a0 6e 20 70 72 6f 63 65 73 73 65 73 20 65 76 65 6e |n processes even| 000237b0 74 73 20 75 6e 74 69 6c 20 61 20 66 69 65 6c 64 |ts until a field| 000237c0 20 69 6e 20 74 68 65 20 64 69 61 6c 6f 67 75 65 | in the dialogue| 000237d0 20 62 6f 78 20 69 73 20 61 63 74 69 76 61 74 65 | box is activate| 000237e0 64 2e 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 63 |d. It does not c| 000237f0 6c 61 69 6d 20 74 68 65 20 63 61 72 65 74 2e 00 |laim the caret..| 00023800 44 41 54 41 a3 02 00 00 64 62 6f 78 66 69 6c 65 |DATA....dboxfile| 00023810 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |.h.This header d| 00023820 65 63 6c 61 72 65 73 20 6a 75 73 74 20 6f 6e 65 |eclares just one| 00023830 20 66 75 6e 63 74 69 6f 6e 20 61 73 20 66 6f 6c | function as fol| 00023840 6c 6f 77 73 3a 0a 0a 53 79 6e 74 61 78 3a 09 76 |lows:..Syntax:.v| 00023850 6f 69 64 20 64 62 6f 78 66 69 6c 65 20 28 63 68 |oid dboxfile (ch| 00023860 61 72 20 2a 6d 65 73 73 2c 20 75 6e 73 69 67 6e |ar *mess, unsign| 00023870 65 64 20 74 79 70 65 2c 20 63 68 61 72 20 2a 61 |ed type, char *a| 00023880 2c 20 69 6e 74 20 2a 62 75 66 73 69 7a 65 29 3b |, int *bufsize);| 00023890 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000238a0 64 69 73 70 6c 61 79 73 20 61 20 64 69 61 6c 6f |displays a dialo| 000238b0 67 75 65 20 62 6f 78 20 77 69 74 68 20 61 20 6d |gue box with a m| 000238c0 65 73 73 61 67 65 20 28 67 69 76 65 6e 20 69 6e |essage (given in| 000238d0 20 7b 2f 7d 6d 65 73 73 7b 2f 7d 2c 20 6e 6f 20 | {/}mess{/}, no | 000238e0 6d 6f 72 65 20 74 68 61 6e 20 32 30 20 63 68 61 |more than 20 cha| 000238f0 72 61 63 74 65 72 73 29 2c 20 61 6e 20 69 6e 70 |racters), an inp| 00023900 75 74 20 66 69 65 6c 64 20 28 63 6f 6e 74 65 6e |ut field (conten| 00023910 74 73 20 74 61 6b 65 6e 20 66 72 6f 6d 20 61 6e |ts taken from an| 00023920 64 20 70 75 74 20 62 61 63 6b 20 69 6e 20 7b 2f |d put back in {/| 00023930 7d 61 7b 2f 7d 29 2c 20 61 6e 64 20 61 6e 20 2a |}a{/}), and an *| 00023940 4f 4b 2a 20 62 75 74 74 6f 6e 2e 20 49 74 20 6f |OK* button. It o| 00023950 70 65 6e 73 20 74 68 69 73 20 75 73 69 6e 67 20 |pens this using | 00023960 3c 64 62 6f 78 3d 3e 64 62 6f 78 5f 68 3e 20 66 |<dbox=>dbox_h> f| 00023970 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 77 61 69 |unctions and wai| 00023980 74 73 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 |ts for the user | 00023990 74 6f 20 74 79 70 65 20 69 6e 20 61 20 66 69 6c |to type in a fil| 000239a0 65 6e 61 6d 65 20 61 6e 64 20 63 6c 69 63 6b 20 |ename and click | 000239b0 4f 4b 2e 20 2f 62 75 66 73 69 7a 65 2f 20 67 69 |OK. /bufsize/ gi| 000239c0 76 65 73 20 74 68 65 20 73 69 7a 65 20 6f 66 20 |ves the size of | 000239d0 2f 61 2f 2e 0a 0a 54 68 65 20 77 69 6e 64 6f 77 |/a/...The window| 000239e0 20 75 73 65 64 20 6d 75 73 74 20 62 65 20 63 61 | used must be ca| 000239f0 6c 6c 65 64 20 22 64 62 6f 78 66 69 6c 65 5f 64 |lled "dboxfile_d| 00023a00 62 22 2e 20 49 63 6f 6e 20 30 20 6d 75 73 74 20 |b". Icon 0 must | 00023a10 62 65 20 2a 4f 4b 2a 20 28 6d 65 6e 75 20 69 63 |be *OK* (menu ic| 00023a20 6f 6e 29 2c 20 31 20 6d 75 73 74 20 62 65 20 74 |on), 1 must be t| 00023a30 68 65 20 6d 65 73 73 61 67 65 20 28 69 6e 64 69 |he message (indi| 00023a40 72 65 63 74 65 64 20 74 65 78 74 2c 20 74 79 70 |rected text, typ| 00023a50 65 20 7b 2f 7d 4e 45 56 45 52 7b 2f 7d 29 2c 20 |e {/}NEVER{/}), | 00023a60 61 6e 64 20 32 20 6d 75 73 74 20 62 65 20 74 68 |and 2 must be th| 00023a70 65 20 66 69 6c 65 6e 61 6d 65 20 28 69 6e 64 69 |e filename (indi| 00023a80 72 65 63 74 65 64 20 74 65 78 74 2c 20 74 79 70 |rected text, typ| 00023a90 65 20 7b 2f 7d 57 52 49 54 45 41 42 4c 45 7b 2f |e {/}WRITEABLE{/| 00023aa0 7d 29 2e 00 44 41 54 41 ee 01 00 00 64 62 6f 78 |})..DATA....dbox| 00023ab0 71 75 65 72 79 2e 68 0a 54 68 69 73 20 68 65 61 |query.h.This hea| 00023ac0 64 65 72 20 64 65 63 6c 61 72 65 73 20 6a 75 73 |der declares jus| 00023ad0 74 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 20 61 |t one function a| 00023ae0 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 53 79 6e 74 |s follows:..Synt| 00023af0 61 78 3a 09 3c 64 62 6f 78 71 75 65 72 79 5f 52 |ax:.<dboxquery_R| 00023b00 45 50 4c 59 3e 20 64 62 6f 78 71 75 65 72 79 20 |EPLY> dboxquery | 00023b10 28 63 68 61 72 20 2a 6d 65 73 73 29 3b 0a 0a 52 |(char *mess);..R| 00023b20 65 74 75 72 6e 73 3a 09 31 20 3d 20 59 45 53 2c |eturns:.1 = YES,| 00023b30 20 32 20 3d 20 4e 4f 2c 20 33 20 3d 20 43 41 4e | 2 = NO, 3 = CAN| 00023b40 43 45 4c 4c 45 44 2e 0a 0a 54 68 69 73 20 66 75 |CELLED...This fu| 00023b50 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 73 20 |nction displays | 00023b60 61 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 77 |a dialogue box w| 00023b70 69 74 68 20 61 20 6d 65 73 73 61 67 65 20 28 67 |ith a message (g| 00023b80 69 76 65 6e 20 69 6e 20 7b 2f 7d 6d 65 73 73 7b |iven in {/}mess{| 00023b90 2f 7d 2c 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e |/}, no more than| 00023ba0 20 31 32 30 20 63 68 61 72 61 63 74 65 72 73 29 | 120 characters)| 00023bb0 2c 20 61 6e 64 20 2a 59 65 73 2a 20 61 6e 64 20 |, and *Yes* and | 00023bc0 2a 4e 6f 2a 20 69 63 6f 6e 73 2c 20 61 6e 64 20 |*No* icons, and | 00023bd0 77 61 69 74 73 20 66 6f 72 20 74 68 65 20 75 73 |waits for the us| 00023be0 65 72 20 74 6f 20 72 65 70 6c 79 2e 0a 0a 54 68 |er to reply...Th| 00023bf0 65 20 77 69 6e 64 6f 77 20 75 73 65 64 20 6d 75 |e window used mu| 00023c00 73 74 20 62 65 20 63 61 6c 6c 65 64 20 22 71 75 |st be called "qu| 00023c10 65 72 79 22 2e 20 49 63 6f 6e 20 30 20 6d 75 73 |ery". Icon 0 mus| 00023c20 74 20 62 65 20 2a 59 65 73 2a 20 28 6d 65 6e 75 |t be *Yes* (menu| 00023c30 20 69 63 6f 6e 29 2c 20 31 20 6d 75 73 74 20 62 | icon), 1 must b| 00023c40 65 20 74 68 65 20 6d 65 73 73 61 67 65 20 28 69 |e the message (i| 00023c50 6e 64 69 72 65 63 74 65 64 20 74 65 78 74 2c 20 |ndirected text, | 00023c60 74 79 70 65 20 7b 2f 7d 4e 45 56 45 52 7b 2f 7d |type {/}NEVER{/}| 00023c70 29 2c 20 61 6e 64 20 32 20 6d 75 73 74 20 62 65 |), and 2 must be| 00023c80 20 2a 4e 6f 2a 20 28 6d 65 6e 75 20 69 63 6f 6e | *No* (menu icon| 00023c90 29 2e 00 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |)...DIR$,...,...| 00023ca0 c0 3c 02 00 46 ff ff ff 8b 99 1f 23 d7 00 00 00 |.<..F......#....| 00023cb0 13 00 00 00 00 00 00 00 52 45 50 4c 59 00 00 00 |........REPLY...| 00023cc0 44 41 54 41 d7 00 00 00 64 62 6f 78 71 75 65 72 |DATA....dboxquer| 00023cd0 79 5f 52 45 50 4c 59 0a 54 68 69 73 20 69 73 20 |y_REPLY.This is | 00023ce0 61 6e 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 |an enumerated ty| 00023cf0 70 65 20 75 73 65 64 20 66 6f 72 20 72 65 74 75 |pe used for retu| 00023d00 72 6e 69 6e 67 20 76 61 6c 75 65 73 20 66 72 6f |rning values fro| 00023d10 6d 20 74 68 65 20 3c 64 62 6f 78 71 75 65 72 79 |m the <dboxquery| 00023d20 3e 20 66 75 6e 63 74 69 6f 6e 2e 20 49 74 20 69 |> function. It i| 00023d30 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a 20 |s defined as:.. | 00023d40 20 20 20 5c 7b 0a 20 20 20 20 20 20 64 62 6f 78 | \{. dbox| 00023d50 71 75 65 72 79 5f 59 45 53 09 3d 20 31 2c 0a 20 |query_YES.= 1,. | 00023d60 20 20 20 20 20 64 62 6f 78 71 75 65 72 79 5f 4e | dboxquery_N| 00023d70 4f 09 3d 20 32 2c 0a 20 20 20 20 20 20 64 62 6f |O.= 2,. dbo| 00023d80 78 71 75 65 72 79 5f 43 41 4e 43 45 4c 09 3d 20 |xquery_CANCEL.= | 00023d90 33 0a 20 20 20 20 7d 00 44 41 54 41 c2 02 00 00 |3. }.DATA....| 00023da0 64 62 6f 78 74 63 6f 6c 0a 54 68 69 73 20 68 65 |dboxtcol.This he| 00023db0 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 6f 6e |ader declares on| 00023dc0 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 61 |e function and a| 00023dd0 20 66 65 77 20 6f 74 68 65 72 20 62 69 74 73 20 | few other bits | 00023de0 61 6e 64 20 70 69 65 63 65 73 20 66 6f 72 20 64 |and pieces for d| 00023df0 69 73 70 6c 61 79 20 61 6e 64 20 65 6e 74 72 79 |isplay and entry| 00023e00 20 6f 66 20 74 72 75 65 20 63 6f 6c 6f 75 72 73 | of true colours| 00023e10 20 28 62 69 74 20 6f 66 20 61 20 6d 69 73 6e 6f | (bit of a misno| 00023e20 6d 65 72 20 74 68 65 72 65 2e 2e 2e 29 0a 0a 53 |mer there...)..S| 00023e30 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 64 62 |yntax:.<BOOL> db| 00023e40 6f 78 74 63 6f 6c 20 28 3c 64 62 6f 78 74 63 6f |oxtcol (<dboxtco| 00023e50 6c 5f 63 6f 6c 6f 75 72 3e 20 2a 63 6f 6c 2c 20 |l_colour> *col, | 00023e60 42 4f 4f 4c 20 74 72 61 6e 73 66 6c 61 67 2c 20 |BOOL transflag, | 00023e70 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 64 62 6f |char *name, <dbo| 00023e80 78 74 63 6f 6c 5f 63 6f 6c 6f 75 72 68 61 6e 64 |xtcol_colourhand| 00023e90 6c 65 72 3e 20 70 72 6f 63 2c 20 76 6f 69 64 20 |ler> proc, void | 00023ea0 2a 72 29 3b 0a 0a 52 65 74 75 72 6e 73 3a 09 3c |*r);..Returns:.<| 00023eb0 54 52 55 45 3e 20 69 66 20 63 6f 6c 6f 75 72 20 |TRUE> if colour | 00023ec0 65 64 69 74 65 64 20 61 6e 64 20 4f 4b 20 63 6c |edited and OK cl| 00023ed0 69 63 6b 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e |icked...This fun| 00023ee0 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 73 20 61 |ction displays a| 00023ef0 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 66 6f | dialogue box fo| 00023f00 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 65 64 |r the user to ed| 00023f10 69 74 20 61 6e 20 52 47 42 20 63 6f 6c 6f 75 72 |it an RGB colour| 00023f20 2e 20 2f 63 6f 6c 6f 75 72 2f 20 63 6f 6e 74 61 |. /colour/ conta| 00023f30 69 6e 73 20 74 68 65 20 63 6f 6c 6f 75 72 20 74 |ins the colour t| 00023f40 6f 20 62 65 20 65 64 69 74 65 64 2c 20 2f 74 72 |o be edited, /tr| 00023f50 61 6e 73 66 6c 61 67 2f 20 69 73 20 54 52 55 45 |ansflag/ is TRUE| 00023f60 20 69 66 20 74 72 61 6e 73 70 61 72 65 6e 74 20 | if transparent | 00023f70 63 6f 6c 6f 75 72 73 20 63 61 6e 20 62 65 20 73 |colours can be s| 00023f80 65 6c 65 63 74 65 64 2c 20 2f 6e 61 6d 65 2f 20 |elected, /name/ | 00023f90 69 73 20 74 68 65 20 74 69 74 6c 65 2c 20 2f 70 |is the title, /p| 00023fa0 72 6f 63 2f 20 69 73 20 74 68 65 20 68 61 6e 64 |roc/ is the hand| 00023fb0 6c 65 72 20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e |ler function, an| 00023fc0 64 20 2f 72 2f 20 69 73 20 70 61 73 73 65 64 20 |d /r/ is passed | 00023fd0 64 69 72 65 63 74 20 74 6f 20 2f 70 72 6f 63 2f |direct to /proc/| 00023fe0 2e 0a 0a 2f 70 72 6f 63 2f 20 69 73 20 63 61 6c |.../proc/ is cal| 00023ff0 6c 65 64 20 77 68 65 6e 20 74 68 65 20 75 73 65 |led when the use| 00024000 72 20 63 6c 69 63 6b 73 20 2a 4f 4b 2a 2e 0a 0a |r clicks *OK*...| 00024010 54 68 65 20 74 65 6d 70 6c 61 74 65 20 73 68 6f |The template sho| 00024020 75 6c 64 20 62 65 20 74 68 65 20 73 61 6d 65 20 |uld be the same | 00024030 61 73 20 74 68 61 74 20 75 73 65 64 20 62 79 20 |as that used by | 00024040 21 50 61 69 6e 74 2c 20 63 61 6c 6c 65 64 20 22 |!Paint, called "| 00024050 64 62 6f 78 74 63 6f 6c 22 2e 00 00 44 49 52 24 |dboxtcol"...DIR$| 00024060 54 00 00 00 54 00 00 00 b0 40 02 00 46 ff ff ff |T...T....@..F...| 00024070 f4 bc 1f 23 9d 00 00 00 13 00 00 00 00 00 00 00 |...#............| 00024080 63 6f 6c 6f 75 72 00 00 50 41 02 00 46 ff ff ff |colour..PA..F...| 00024090 62 d4 1f 23 7f 01 00 00 13 00 00 00 00 00 00 00 |b..#............| 000240a0 63 6f 6c 6f 75 72 68 61 6e 64 6c 65 72 00 00 00 |colourhandler...| 000240b0 44 41 54 41 9d 00 00 00 64 62 6f 78 74 63 6f 6c |DATA....dboxtcol| 000240c0 5f 63 6f 6c 6f 75 72 0a 54 68 69 73 20 74 79 70 |_colour.This typ| 000240d0 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000240e0 3c 64 62 6f 78 74 63 6f 6c 2e 68 3d 3e 64 62 6f |<dboxtcol.h=>dbo| 000240f0 78 74 63 6f 6c 3e 2e 20 49 74 20 69 73 20 61 20 |xtcol>. It is a | 00024100 74 79 70 65 20 68 6f 6c 64 69 6e 67 20 61 6e 20 |type holding an | 00024110 52 47 42 20 63 6f 6c 6f 75 72 20 69 6e 20 74 68 |RGB colour in th| 00024120 65 20 66 6f 72 6d 20 30 78 42 42 47 47 52 52 30 |e form 0xBBGGRR0| 00024130 30 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |0. It is defined| 00024140 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 00 | as an /int/....| 00024150 44 41 54 41 7f 01 00 00 64 62 6f 78 74 63 6f 6c |DATA....dboxtcol| 00024160 5f 63 6f 6c 6f 75 72 68 61 6e 64 6c 65 72 0a 54 |_colourhandler.T| 00024170 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00024180 6e 65 64 20 69 6e 20 3c 64 62 6f 78 74 63 6f 6c |ned in <dboxtcol| 00024190 2e 68 3d 3e 64 62 6f 78 74 63 6f 6c 3e 2e 20 49 |.h=>dboxtcol>. I| 000241a0 74 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 |t is a function | 000241b0 63 61 6c 6c 65 64 20 62 79 20 64 62 6f 78 74 63 |called by dboxtc| 000241c0 6f 6c 20 77 68 65 6e 20 74 68 65 20 75 73 65 72 |ol when the user| 000241d0 20 68 61 73 20 63 6c 69 63 6b 65 64 20 2a 4f 4b | has clicked *OK| 000241e0 2a 20 69 6e 20 74 68 65 20 63 6f 6c 6f 75 72 20 |* in the colour | 000241f0 73 65 6c 65 63 74 6f 72 2e 20 54 68 65 20 66 75 |selector. The fu| 00024200 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 |nction should be| 00024210 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 7b 77 | of the form:.{w| 00024220 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 3b |rap off}.{fCode;| 00024230 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 76 6f 69 |align centre}voi| 00024240 64 20 6d 79 66 75 6e 63 20 28 3c 64 62 6f 78 74 |d myfunc (<dboxt| 00024250 63 6f 6c 5f 63 6f 6c 6f 75 72 3e 20 63 6f 6c 2c |col_colour> col,| 00024260 20 76 6f 69 64 20 2a 72 29 3b 7b 66 3b 61 6c 69 | void *r);{f;ali| 00024270 67 6e 7d 0a 7b 77 72 61 70 7d 0a 57 68 65 72 65 |gn}.{wrap}.Where| 00024280 20 2f 63 6f 6c 2f 20 69 73 20 74 68 65 20 63 6f | /col/ is the co| 00024290 6c 6f 75 72 20 61 73 20 65 64 69 74 65 64 20 62 |lour as edited b| 000242a0 79 20 74 68 65 20 75 73 65 72 2c 20 61 6e 64 20 |y the user, and | 000242b0 2f 72 2f 20 69 73 20 70 61 73 73 65 64 20 73 74 |/r/ is passed st| 000242c0 72 61 69 67 68 74 20 74 68 72 6f 75 67 68 2e 00 |raight through..| 000242d0 44 41 54 41 03 01 00 00 44 43 42 20 3c 62 79 74 |DATA....DCB <byt| 000242e0 65 73 3e 0a 54 68 69 73 20 73 74 6f 72 65 73 20 |es>.This stores | 000242f0 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 62 79 74 65 |one or more byte| 00024300 73 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 20 |s, separated by | 00024310 63 6f 6d 6d 61 73 2e 20 54 68 65 20 62 79 74 65 |commas. The byte| 00024320 73 20 6d 61 79 20 69 6e 20 66 61 63 74 20 62 65 |s may in fact be| 00024330 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 61 20 | contained in a | 00024340 71 75 6f 74 65 64 20 73 74 72 69 6e 67 20 65 67 |quoted string eg| 00024350 3a 0a 0a 23 77 72 61 70 20 6f 66 66 0a 7b 61 6c |:..#wrap off.{al| 00024360 69 67 6e 20 63 65 6e 74 72 65 3b 66 43 6f 64 65 |ign centre;fCode| 00024370 7d 44 43 42 20 22 54 68 69 73 20 69 73 20 61 20 |}DCB "This is a | 00024380 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 |null-terminated | 00024390 73 74 72 69 6e 67 22 2c 30 7b 66 3b 61 6c 69 67 |string",0{f;alig| 000243a0 6e 3b 77 72 61 70 7d 0a 0a 44 45 46 42 20 61 6e |n;wrap}..DEFB an| 000243b0 64 20 45 51 55 42 20 61 72 65 20 62 6f 74 68 20 |d EQUB are both | 000243c0 70 73 75 65 64 6f 6e 79 6d 73 20 66 6f 72 20 44 |psuedonyms for D| 000243d0 43 42 2e 00 44 41 54 41 9f 00 00 00 44 43 44 20 |CB..DATA....DCD | 000243e0 3c 62 79 74 65 73 3e 0a 54 68 69 73 20 73 74 6f |<bytes>.This sto| 000243f0 72 65 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 |res one or more | 00024400 77 6f 72 64 73 2c 20 73 65 70 61 72 61 74 65 64 |words, separated| 00024410 20 62 79 20 63 6f 6d 6d 61 73 2e 0a 0a 7b 66 43 | by commas...{fC| 00024420 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |ode;align centre| 00024430 7d 44 43 44 20 31 2c 32 2c 33 2c 34 2c 35 7b 66 |}DCD 1,2,3,4,5{f| 00024440 3b 61 6c 69 67 6e 7d 0a 0a 44 45 46 57 20 61 6e |;align}..DEFW an| 00024450 64 20 45 51 55 57 20 61 72 65 20 62 6f 74 68 20 |d EQUW are both | 00024460 70 73 65 75 64 6f 6e 79 6d 73 20 66 6f 72 20 44 |pseudonyms for D| 00024470 43 44 2e 00 44 41 54 41 3f 00 00 00 64 65 66 61 |CD..DATA?...defa| 00024480 75 6c 74 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 |ult.This command| 00024490 20 69 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 | is part of the | 000244a0 3c 73 77 69 74 63 68 3e 20 63 6f 6e 73 74 72 75 |<switch> constru| 000244b0 63 74 2e 00 44 41 54 41 cf 02 00 00 23 64 65 66 |ct..DATA....#def| 000244c0 69 6e 65 0a 54 68 69 73 20 64 69 72 65 63 74 69 |ine.This directi| 000244d0 76 65 20 64 65 66 69 6e 65 73 20 61 20 6d 61 63 |ve defines a mac| 000244e0 72 6f 2e 20 4d 61 63 72 6f 73 20 61 72 65 20 74 |ro. Macros are t| 000244f0 6f 6b 65 6e 73 20 77 68 69 63 68 20 61 72 65 20 |okens which are | 00024500 73 75 62 73 74 69 74 75 74 65 64 20 77 68 65 6e |substituted when| 00024510 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 6c 61 74 | encountered lat| 00024520 65 72 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 |er in the source| 00024530 20 66 69 6c 65 2c 20 62 65 66 6f 72 65 20 63 6f | file, before co| 00024540 6d 70 69 6c 69 6e 67 2e 20 41 20 6d 61 63 72 6f |mpiling. A macro| 00024550 20 63 61 6e 20 62 65 20 64 65 66 69 6e 65 64 20 | can be defined | 00024560 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 |with or without | 00024570 61 20 76 61 6c 75 65 2e 20 46 75 6e 63 74 69 6f |a value. Functio| 00024580 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 73 20 63 61 |n-like macros ca| 00024590 6e 20 61 6c 73 6f 20 62 65 20 64 65 66 69 6e 65 |n also be define| 000245a0 64 2e 0a 0a 65 67 20 23 64 65 66 69 6e 65 20 4d |d...eg #define M| 000245b0 41 43 52 4f 09 64 65 66 69 6e 65 73 20 4d 41 43 |ACRO.defines MAC| 000245c0 52 4f 2c 20 62 75 74 20 4d 41 43 52 4f 20 64 6f |RO, but MACRO do| 000245d0 65 73 20 6e 6f 74 20 61 63 74 75 61 6c 6c 79 20 |es not actually | 000245e0 73 74 61 6e 64 20 66 6f 72 20 61 6e 79 74 68 69 |stand for anythi| 000245f0 6e 67 2e 0a 0a 65 67 20 23 64 65 66 69 6e 65 20 |ng...eg #define | 00024600 50 45 4f 50 4c 45 20 37 09 64 65 66 69 6e 65 73 |PEOPLE 7.defines| 00024610 20 50 45 4f 50 4c 45 20 74 6f 20 62 65 20 37 2e | PEOPLE to be 7.| 00024620 20 45 76 65 72 79 20 74 69 6d 65 20 50 45 4f 50 | Every time PEOP| 00024630 4c 45 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 |LE is encountere| 00024640 64 20 28 6e 6f 74 20 77 69 74 68 69 6e 20 71 75 |d (not within qu| 00024650 6f 74 65 73 29 2c 20 37 20 77 69 6c 6c 20 62 65 |otes), 7 will be| 00024660 20 73 75 62 73 74 69 74 75 74 65 64 20 73 6f 20 | substituted so | 00024670 79 6f 75 20 63 61 6e 20 75 73 65 20 7b 66 43 6f |you can use {fCo| 00024680 64 65 7d 6e 75 6d 62 65 72 5f 6f 66 5f 70 65 6f |de}number_of_peo| 00024690 70 6c 65 3d 50 45 4f 50 4c 45 3b 7b 66 7d 0a 0a |ple=PEOPLE;{f}..| 000246a0 65 67 20 23 64 65 66 69 6e 65 20 54 41 42 28 78 |eg #define TAB(x| 000246b0 2c 79 29 20 3c 70 72 69 6e 74 66 3e 28 22 5c 5c |,y) <printf>("\\| 000246c0 78 31 66 25 63 25 63 22 2c 78 2c 79 29 09 45 76 |x1f%c%c",x,y).Ev| 000246d0 65 72 79 20 74 69 6d 65 20 79 6f 75 20 75 73 65 |ery time you use| 000246e0 20 54 41 42 28 78 2c 79 29 20 70 72 69 6e 74 66 | TAB(x,y) printf| 000246f0 28 22 5c 5c 78 31 66 25 63 25 63 22 2c 78 2c 79 |("\\x1f%c%c",x,y| 00024700 29 20 77 69 6c 6c 20 62 65 20 73 75 62 73 74 69 |) will be substi| 00024710 74 75 74 65 64 20 65 67 2e 20 54 41 42 28 31 2c |tuted eg. TAB(1,| 00024720 31 29 20 63 6f 6e 76 65 72 74 73 20 74 6f 20 70 |1) converts to p| 00024730 72 69 6e 74 66 28 22 5c 5c 78 31 66 25 63 25 63 |rintf("\\x1f%c%c| 00024740 22 2c 31 2c 31 29 3b 0a 0a 49 74 20 69 73 20 63 |",1,1);..It is c| 00024750 6f 6e 76 65 6e 74 69 6f 6e 61 6c 20 74 6f 20 75 |onventional to u| 00024760 73 65 20 63 61 70 69 74 61 6c 20 6c 65 74 74 65 |se capital lette| 00024770 72 73 20 66 6f 72 20 6d 61 63 72 6f 20 6e 61 6d |rs for macro nam| 00024780 65 73 2e 00 44 41 54 41 7d 00 00 00 64 69 61 6c |es..DATA}...dial| 00024790 6f 67 0a 54 68 65 20 74 79 70 65 20 2a 64 69 61 |og.The type *dia| 000247a0 6c 6f 67 2a 20 69 73 20 64 65 66 69 6e 65 64 20 |log* is defined | 000247b0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 44 69 61 6c |in <DeskLib:Dial| 000247c0 6f 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 68 3e 20 |og.h=>Dialog_h> | 000247d0 61 73 20 61 20 74 79 70 65 20 68 6f 6c 64 69 6e |as a type holdin| 000247e0 67 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 |g a pointer to a| 000247f0 20 3c 64 69 61 6c 6f 67 5f 72 65 63 6f 72 64 3e | <dialog_record>| 00024800 2e 00 00 00 44 49 52 24 24 02 00 00 24 02 00 00 |....DIR$$...$...| 00024810 28 4a 02 00 46 ff ff ff 7e 8c f2 24 d7 00 00 00 |(J..F...~..$....| 00024820 13 00 00 00 00 00 00 00 43 4c 4f 53 45 00 00 00 |........CLOSE...| 00024830 00 4b 02 00 46 ff ff ff 9f 22 f2 24 03 01 00 00 |.K..F....".$....| 00024840 13 00 00 00 00 00 00 00 43 72 65 61 74 65 00 00 |........Create..| 00024850 04 4c 02 00 46 ff ff ff c2 25 f2 24 f2 00 00 00 |.L..F....%.$....| 00024860 13 00 00 00 00 00 00 00 44 65 73 74 72 6f 79 00 |........Destroy.| 00024870 f8 4c 02 00 46 ff ff ff fd 9a f4 24 e8 02 00 00 |.L..F......$....| 00024880 13 00 00 00 00 00 00 00 68 00 00 00 e0 4f 02 00 |........h....O..| 00024890 46 ff ff ff 37 44 f2 24 27 01 00 00 13 00 00 00 |F...7D.$'.......| 000248a0 00 00 00 00 48 69 64 65 00 00 00 00 08 51 02 00 |....Hide.....Q..| 000248b0 46 ff ff ff 05 6f f2 24 82 01 00 00 13 00 00 00 |F....o.$........| 000248c0 00 00 00 00 4c 61 73 74 43 6c 69 63 6b 65 64 00 |....LastClicked.| 000248d0 8c 52 02 00 46 ff ff ff 43 93 f2 24 d1 00 00 00 |.R..F...C..$....| 000248e0 13 00 00 00 00 00 00 00 4e 4f 43 48 4f 49 43 45 |........NOCHOICE| 000248f0 00 00 00 00 60 53 02 00 46 ff ff ff 9c 65 f2 24 |....`S..F....e.$| 00024900 0b 01 00 00 13 00 00 00 00 00 00 00 50 65 72 73 |............Pers| 00024910 69 73 74 00 6c 54 02 00 46 ff ff ff f3 82 f2 24 |ist.lT..F......$| 00024920 6f 01 00 00 13 00 00 00 00 00 00 00 72 65 63 6f |o...........reco| 00024930 72 64 00 00 dc 55 02 00 46 ff ff ff e4 2a f2 24 |rd...U..F....*.$| 00024940 32 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |2...........Show| 00024950 00 00 00 00 10 57 02 00 46 ff ff ff 90 32 f2 24 |.....W..F....2.$| 00024960 63 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |c...........Show| 00024970 41 74 00 00 74 58 02 00 46 ff ff ff ea 39 f2 24 |At..tX..F....9.$| 00024980 67 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |g...........Show| 00024990 53 74 61 74 69 63 00 00 dc 59 02 00 46 ff ff ff |Static...Y..F...| 000249a0 f1 76 f2 24 ea 00 00 00 13 00 00 00 00 00 00 00 |.v.$............| 000249b0 53 74 69 6c 6c 4f 70 65 6e 00 00 00 c8 5a 02 00 |StillOpen....Z..| 000249c0 46 fd ff ff da c7 54 26 b3 00 00 00 13 00 00 00 |F.....T&........| 000249d0 00 00 00 00 54 4c 00 00 7c 5b 02 00 46 ff ff ff |....TL..|[..F...| 000249e0 a2 4e f2 24 32 01 00 00 13 00 00 00 00 00 00 00 |.N.$2...........| 000249f0 57 61 69 74 46 6f 72 43 6c 69 63 6b 00 00 00 00 |WaitForClick....| 00024a00 b0 5c 02 00 46 ff ff ff e2 55 f2 24 28 01 00 00 |.\..F....U.$(...| 00024a10 13 00 00 00 00 00 00 00 57 69 6e 64 6f 77 48 61 |........WindowHa| 00024a20 6e 64 6c 65 00 00 00 00 44 41 54 41 d7 00 00 00 |ndle....DATA....| 00024a30 64 69 61 6c 6f 67 5f 43 4c 4f 53 45 0a 54 68 65 |dialog_CLOSE.The| 00024a40 20 6d 61 63 72 6f 20 27 64 69 61 6c 6f 67 5f 43 | macro 'dialog_C| 00024a50 4c 4f 53 45 27 20 69 73 20 64 65 66 69 6e 65 64 |LOSE' is defined| 00024a60 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 44 69 61 | in <DeskLib:Dia| 00024a70 6c 6f 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 68 3e |log.h=>Dialog_h>| 00024a80 20 61 6e 64 20 69 73 20 72 65 74 75 72 6e 65 64 | and is returned| 00024a90 20 62 79 20 3c 44 69 61 6c 6f 67 5f 57 61 69 74 | by <Dialog_Wait| 00024aa0 46 6f 72 43 6c 69 63 6b 3e 20 77 68 65 6e 20 74 |ForClick> when t| 00024ab0 68 65 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 |he dialogue box | 00024ac0 69 73 20 63 6c 6f 73 65 64 20 62 79 20 63 6c 69 |is closed by cli| 00024ad0 63 6b 69 6e 67 20 6f 75 74 73 69 64 65 20 77 69 |cking outside wi| 00024ae0 6e 64 6f 77 20 6f 72 20 63 6c 69 63 6b 69 6e 67 |ndow or clicking| 00024af0 20 6f 6e 20 63 6c 6f 73 65 20 69 63 6f 6e 2e 00 | on close icon..| 00024b00 44 41 54 41 03 01 00 00 44 69 61 6c 6f 67 5f 43 |DATA....Dialog_C| 00024b10 72 65 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c 64 |reate.Syntax:.<d| 00024b20 69 61 6c 6f 67 3e 20 44 69 61 6c 6f 67 5f 43 72 |ialog> Dialog_Cr| 00024b30 65 61 74 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 |eate (char *name| 00024b40 2c 20 69 6e 74 20 6d 61 78 74 69 74 6c 65 73 69 |, int maxtitlesi| 00024b50 7a 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |ze);.Header:.<De| 00024b60 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e |skLib:Dialog.h=>| 00024b70 44 69 61 6c 6f 67 5f 68 3e 0a 0a 52 65 74 75 72 |Dialog_h>..Retur| 00024b80 6e 73 3a 09 48 61 6e 64 6c 65 20 6f 66 20 63 72 |ns:.Handle of cr| 00024b90 65 61 74 65 64 20 64 69 61 6c 6f 67 75 65 20 62 |eated dialogue b| 00024ba0 6f 78 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |ox..This functio| 00024bb0 6e 20 63 72 65 61 74 65 73 20 28 62 75 74 20 64 |n creates (but d| 00024bc0 6f 65 73 20 6e 6f 74 20 73 68 6f 77 29 20 61 20 |oes not show) a | 00024bd0 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 66 72 6f |dialogue box fro| 00024be0 6d 20 74 68 65 20 74 65 6d 70 6c 61 74 65 20 77 |m the template w| 00024bf0 68 6f 73 65 20 6e 61 6d 65 20 69 73 20 67 69 76 |hose name is giv| 00024c00 65 6e 2e 00 44 41 54 41 f2 00 00 00 44 69 61 6c |en..DATA....Dial| 00024c10 6f 67 5f 44 65 73 74 72 6f 79 0a 53 79 6e 74 61 |og_Destroy.Synta| 00024c20 78 3a 09 76 6f 69 64 20 44 69 61 6c 6f 67 5f 44 |x:.void Dialog_D| 00024c30 65 73 74 72 6f 79 20 28 3c 64 69 61 6c 6f 67 3e |estroy (<dialog>| 00024c40 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 | d);.Header:.<De| 00024c50 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e |skLib:Dialog.h=>| 00024c60 44 69 61 6c 6f 67 5f 68 3e 0a 0a 54 68 69 73 20 |Dialog_h>..This | 00024c70 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 |function removes| 00024c80 20 74 68 65 20 64 69 61 6c 6f 67 75 65 20 62 6f | the dialogue bo| 00024c90 78 20 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 |x whose handle i| 00024ca0 73 20 67 69 76 65 6e 2c 20 62 6f 74 68 20 66 72 |s given, both fr| 00024cb0 6f 6d 20 74 68 65 20 64 69 73 70 6c 61 79 20 61 |om the display a| 00024cc0 6e 64 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 2e 20 |nd from memory. | 00024cd0 54 68 69 73 20 68 61 6e 64 6c 65 20 69 73 20 6e |This handle is n| 00024ce0 6f 77 20 63 6f 6d 70 6c 65 74 65 6c 79 20 69 6e |ow completely in| 00024cf0 76 61 6c 69 64 2e 00 00 44 41 54 41 e8 02 00 00 |valid...DATA....| 00024d00 44 65 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 |DeskLib:Dialog.h| 00024d10 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 31 20 28 |.Version: 1.01 (| 00024d20 30 32 20 4d 61 72 20 31 39 39 34 29 0a 23 6c 69 |02 Mar 1994).#li| 00024d30 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |ne.This header d| 00024d40 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 00024d50 73 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 64 |s for handling d| 00024d60 69 61 6c 6f 67 75 65 20 62 6f 78 65 73 2e 0a 0a |ialogue boxes...| 00024d70 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 |Functions:..#Ind| 00024d80 65 6e 74 20 38 0a 23 54 61 62 6c 65 20 36 20 32 |ent 8.#Table 6 2| 00024d90 31 0a 3c 44 69 61 6c 6f 67 5f 43 72 65 61 74 65 |1.<Dialog_Create| 00024da0 3e 0a 3c 44 69 61 6c 6f 67 5f 44 65 73 74 72 6f |>.<Dialog_Destro| 00024db0 79 3e 0a 3c 44 69 61 6c 6f 67 5f 53 68 6f 77 3e |y>.<Dialog_Show>| 00024dc0 0a 3c 44 69 61 6c 6f 67 5f 53 68 6f 77 41 74 3e |.<Dialog_ShowAt>| 00024dd0 0a 3c 44 69 61 6c 6f 67 5f 53 68 6f 77 53 74 61 |.<Dialog_ShowSta| 00024de0 74 69 63 3e 0a 3c 44 69 61 6c 6f 67 5f 48 69 64 |tic>.<Dialog_Hid| 00024df0 65 3e 0a 3c 44 69 61 6c 6f 67 5f 57 61 69 74 46 |e>.<Dialog_WaitF| 00024e00 6f 72 43 6c 69 63 6b 3e 0a 3c 44 69 61 6c 6f 67 |orClick>.<Dialog| 00024e10 5f 57 69 6e 64 6f 77 48 61 6e 64 6c 65 3e 0a 3c |_WindowHandle>.<| 00024e20 44 69 61 6c 6f 67 5f 50 65 72 73 69 73 74 3e 0a |Dialog_Persist>.| 00024e30 3c 44 69 61 6c 6f 67 5f 4c 61 73 74 43 6c 69 63 |<Dialog_LastClic| 00024e40 6b 65 64 3e 0a 3c 44 69 61 6c 6f 67 5f 53 74 69 |ked>.<Dialog_Sti| 00024e50 6c 6c 4f 70 65 6e 3e 0a 23 45 6e 64 54 61 62 6c |llOpen>.#EndTabl| 00024e60 65 0a 0a 23 69 6e 64 65 6e 74 20 30 0a 54 79 70 |e..#indent 0.Typ| 00024e70 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 36 0a |es:..#indent 16.| 00024e80 23 54 61 62 6c 65 20 31 20 32 31 0a 3c 64 69 61 |#Table 1 21.<dia| 00024e90 6c 6f 67 5f 72 65 63 6f 72 64 3e 0a 3c 64 69 61 |log_record>.<dia| 00024ea0 6c 6f 67 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a |log>.#EndTable..| 00024eb0 23 69 6e 64 65 6e 74 20 30 0a 4d 61 63 72 6f 73 |#indent 0.Macros| 00024ec0 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 31 0a 23 54 |:..#indent 11.#T| 00024ed0 61 62 6c 65 20 31 20 32 31 0a 3c 64 69 61 6c 6f |able 1 21.<dialo| 00024ee0 67 5f 43 4c 4f 53 45 3e 0a 3c 64 69 61 6c 6f 67 |g_CLOSE>.<dialog| 00024ef0 5f 4e 4f 43 48 4f 49 43 45 3e 0a 23 45 6e 64 54 |_NOCHOICE>.#EndT| 00024f00 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 30 0a 0a |able.#indent 0..| 00024f10 41 20 64 69 61 6c 6f 67 75 65 20 69 73 20 61 20 |A dialogue is a | 00024f20 77 69 6e 64 6f 77 20 74 68 61 74 20 69 73 20 70 |window that is p| 00024f30 6f 70 70 65 64 20 6f 70 65 6e 20 74 6f 20 67 65 |opped open to ge| 00024f40 74 20 75 73 65 72 20 63 68 6f 69 63 65 73 20 61 |t user choices a| 00024f50 6e 64 20 74 68 65 6e 20 67 6f 65 73 20 61 77 61 |nd then goes awa| 00024f60 79 2e 20 54 68 69 73 20 68 65 61 64 65 72 20 73 |y. This header s| 00024f70 69 6d 70 6c 69 66 69 65 73 20 70 6f 70 70 69 6e |implifies poppin| 00024f80 67 20 75 70 20 73 75 63 68 20 64 69 61 6c 6f 67 |g up such dialog| 00024f90 75 65 73 2c 20 61 73 20 69 74 20 68 61 6e 64 6c |ues, as it handl| 00024fa0 65 73 20 6f 70 65 6e 69 6e 67 2c 20 63 6c 6f 73 |es opening, clos| 00024fb0 69 6e 67 20 61 6e 64 20 73 69 6d 70 6c 65 20 70 |ing and simple p| 00024fc0 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65 |rocessing of the| 00024fd0 20 77 69 6e 64 6f 77 20 66 6f 72 20 79 6f 75 2e | window for you.| 00024fe0 44 41 54 41 27 01 00 00 44 69 61 6c 6f 67 5f 48 |DATA'...Dialog_H| 00024ff0 69 64 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ide.Syntax:.void| 00025000 20 44 69 61 6c 6f 67 5f 48 69 64 65 20 28 3c 64 | Dialog_Hide (<d| 00025010 69 61 6c 6f 67 3e 20 64 29 3b 0a 48 65 61 64 65 |ialog> d);.Heade| 00025020 72 73 3a 09 3c 54 69 6d 73 4c 69 62 3a 44 69 61 |rs:.<TimsLib:Dia| 00025030 6c 6f 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 54 4c |log.h=>Dialog_TL| 00025040 3e 0a 09 09 3c 44 65 73 6b 4c 69 62 3a 44 69 61 |>...<DeskLib:Dia| 00025050 6c 6f 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 68 3e |log.h=>Dialog_h>| 00025060 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00025070 68 69 64 65 73 20 74 68 65 20 67 69 76 65 6e 20 |hides the given | 00025080 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 62 79 20 |dialogue box by | 00025090 63 6c 6f 73 69 6e 67 20 74 68 65 20 77 69 6e 64 |closing the wind| 000250a0 6f 77 2c 20 62 75 74 20 64 6f 65 73 20 6e 6f 74 |ow, but does not| 000250b0 20 64 65 73 74 72 6f 79 20 69 74 2e 20 49 74 20 | destroy it. It | 000250c0 6d 61 79 20 62 65 20 73 75 62 73 65 71 75 65 6e |may be subsequen| 000250d0 74 6c 79 20 72 65 6f 70 65 6e 65 64 20 77 69 74 |tly reopened wit| 000250e0 68 20 3c 44 69 61 6c 6f 67 5f 53 68 6f 77 3e 20 |h <Dialog_Show> | 000250f0 6f 72 20 3c 44 69 61 6c 6f 67 5f 53 68 6f 77 53 |or <Dialog_ShowS| 00025100 74 61 74 69 63 3e 2e 00 44 41 54 41 82 01 00 00 |tatic>..DATA....| 00025110 44 69 61 6c 6f 67 5f 4c 61 73 74 43 6c 69 63 6b |Dialog_LastClick| 00025120 65 64 0a 53 79 6e 74 61 78 3a 09 3c 69 63 6f 6e |ed.Syntax:.<icon| 00025130 5f 68 61 6e 64 6c 65 3e 20 44 69 61 6c 6f 67 5f |_handle> Dialog_| 00025140 4c 61 73 74 43 6c 69 63 6b 65 64 20 28 3c 64 69 |LastClicked (<di| 00025150 61 6c 6f 67 3e 20 64 29 3b 0a 48 65 61 64 65 72 |alog> d);.Header| 00025160 3a 09 3c 44 65 73 6b 4c 69 62 3a 44 69 61 6c 6f |:.<DeskLib:Dialo| 00025170 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 68 3e 0a 0a |g.h=>Dialog_h>..| 00025180 52 65 74 75 72 6e 73 3a 09 49 63 6f 6e 20 6e 75 |Returns:.Icon nu| 00025190 6d 62 65 72 20 6c 61 73 74 20 63 6c 69 63 6b 65 |mber last clicke| 000251a0 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |d...This functio| 000251b0 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 63 |n returns the ic| 000251c0 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 |on number of the| 000251d0 20 6c 61 73 74 20 69 63 6f 6e 20 77 68 69 63 68 | last icon which| 000251e0 20 77 61 73 20 63 6c 69 63 6b 65 64 20 69 6e 20 | was clicked in | 000251f0 74 68 65 20 67 69 76 65 6e 20 64 69 61 6c 6f 67 |the given dialog| 00025200 75 65 20 62 6f 78 2e 20 49 66 20 6e 6f 20 69 63 |ue box. If no ic| 00025210 6f 6e 73 20 68 61 76 65 20 62 65 65 6e 20 63 6c |ons have been cl| 00025220 69 63 6b 65 64 20 79 65 74 2c 20 69 74 20 72 65 |icked yet, it re| 00025230 74 75 72 6e 73 20 3c 64 69 61 6c 6f 67 5f 4e 4f |turns <dialog_NO| 00025240 43 48 4f 49 43 45 3e 2e 20 49 74 20 69 73 20 61 |CHOICE>. It is a| 00025250 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 |ctually defined | 00025260 61 73 20 61 20 6d 61 63 72 6f 20 72 65 74 75 72 |as a macro retur| 00025270 6e 69 6e 67 20 7b 2f 7d 64 2d 3e 6c 61 73 74 63 |ning {/}d->lastc| 00025280 6c 69 63 6b 65 64 7b 2f 7d 2e 00 00 44 41 54 41 |licked{/}...DATA| 00025290 d1 00 00 00 64 69 61 6c 6f 67 5f 4e 4f 43 48 4f |....dialog_NOCHO| 000252a0 49 43 45 0a 54 68 65 20 6d 61 63 72 6f 20 7b 2a |ICE.The macro {*| 000252b0 7d 64 69 61 6c 6f 67 5f 4e 4f 43 48 4f 49 43 45 |}dialog_NOCHOICE| 000252c0 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 |{*} is defined i| 000252d0 6e 20 3c 44 65 73 6b 4c 69 62 3a 44 69 61 6c 6f |n <DeskLib:Dialo| 000252e0 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 68 3e 20 61 |g.h=>Dialog_h> a| 000252f0 6e 64 20 69 73 20 72 65 74 75 72 6e 65 64 20 62 |nd is returned b| 00025300 79 20 3c 44 69 61 6c 6f 67 5f 4c 61 73 74 43 6c |y <Dialog_LastCl| 00025310 69 63 6b 65 64 3e 20 77 68 65 6e 20 74 68 65 20 |icked> when the | 00025320 75 73 65 72 20 68 61 73 20 6e 6f 74 20 79 65 74 |user has not yet| 00025330 20 64 6f 6e 65 20 61 6e 79 74 68 69 6e 67 2e 20 | done anything. | 00025340 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 |It is actually d| 00025350 65 66 69 6e 65 64 20 61 73 20 2d 32 2e 00 00 00 |efined as -2....| 00025360 44 41 54 41 0b 01 00 00 44 69 61 6c 6f 67 5f 50 |DATA....Dialog_P| 00025370 65 72 73 69 73 74 0a 53 79 6e 74 61 78 3a 09 3c |ersist.Syntax:.<| 00025380 42 4f 4f 4c 3e 20 44 69 61 6c 6f 67 5f 50 65 72 |BOOL> Dialog_Per| 00025390 73 69 73 74 20 28 3c 64 69 61 6c 6f 67 3e 20 64 |sist (<dialog> d| 000253a0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000253b0 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e 44 69 |Lib:Dialog.h=>Di| 000253c0 61 6c 6f 67 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |alog_h>..Returns| 000253d0 3a 09 3c 54 52 55 45 3e 20 69 66 20 6c 61 73 74 |:.<TRUE> if last| 000253e0 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 70 65 | dialogue box pe| 000253f0 72 73 69 73 74 73 2e 0a 0a 54 68 69 73 20 66 75 |rsists...This fu| 00025400 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 20 74 6f |nction checks to| 00025410 20 73 65 65 20 69 66 3a 7b 74 61 62 7d 0a 20 09 | see if:{tab}. .| 00025420 8f 09 54 68 65 20 6c 61 73 74 20 63 68 6f 69 63 |..The last choic| 00025430 65 20 77 61 73 20 6d 61 64 65 20 77 69 74 68 20 |e was made with | 00025440 2a 41 64 6a 75 73 74 2a 0a 20 09 8f 09 54 68 65 |*Adjust*. ...The| 00025450 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 69 73 | dialogue box is| 00025460 20 73 74 69 6c 6c 20 6f 70 65 6e 00 44 41 54 41 | still open.DATA| 00025470 6f 01 00 00 64 69 61 6c 6f 67 5f 72 65 63 6f 72 |o...dialog_recor| 00025480 64 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d 64 69 |d.The type {*}di| 00025490 61 6c 6f 67 5f 72 65 63 6f 72 64 7b 2a 7d 20 69 |alog_record{*} i| 000254a0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 000254b0 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e |skLib:Dialog.h=>| 000254c0 44 69 61 6c 6f 67 3e 20 61 73 20 74 68 65 20 66 |Dialog> as the f| 000254d0 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 |ollowing structu| 000254e0 72 65 3a 0a 0a 5c 7b 0a 20 20 20 20 3c 77 69 6e |re:..\{. <win| 000254f0 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 69 6e 64 |dow_handle>.wind| 00025500 6f 77 3b 0a 20 20 20 20 3c 69 63 6f 6e 5f 68 61 |ow;. <icon_ha| 00025510 6e 64 6c 65 3e 09 6c 61 73 74 63 6c 69 63 6b 65 |ndle>.lastclicke| 00025520 64 3b 0a 20 20 20 20 3c 62 75 74 74 6f 6e 5f 73 |d;. <button_s| 00025530 74 61 74 65 3e 09 62 75 74 74 6f 6e 3b 0a 20 20 |tate>.button;. | 00025540 20 20 73 74 72 75 63 74 0a 20 20 20 20 5c 7b 7b | struct. \{{| 00025550 74 61 62 7d 0a 20 20 20 20 20 20 20 20 75 6e 73 |tab}. uns| 00025560 69 67 6e 65 64 20 69 6e 74 20 73 74 69 6c 6c 6f |igned int stillo| 00025570 70 65 6e 09 3a 20 31 3b 0a 20 20 20 20 20 20 20 |pen.: 1;. | 00025580 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 65 | unsigned int pe| 00025590 72 73 69 73 74 09 3a 20 31 3b 0a 20 20 20 20 20 |rsist.: 1;. | 000255a0 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 000255b0 69 73 73 74 61 74 69 63 09 3a 20 31 3b 0a 20 20 |isstatic.: 1;. | 000255c0 20 20 7d 20 73 74 61 74 65 3b 0a 7d 20 64 69 61 | } state;.} dia| 000255d0 6c 6f 67 5f 72 65 63 6f 72 64 3b 00 44 41 54 41 |log_record;.DATA| 000255e0 32 01 00 00 44 69 61 6c 6f 67 5f 53 68 6f 77 0a |2...Dialog_Show.| 000255f0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 44 69 61 |Syntax:.void Dia| 00025600 6c 6f 67 5f 53 68 6f 77 20 28 3c 64 69 61 6c 6f |log_Show (<dialo| 00025610 67 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |g> d);.Header:.<| 00025620 44 65 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 |DeskLib:Dialog.h| 00025630 3d 3e 44 69 61 6c 6f 67 5f 68 3e 0a 0a 54 68 69 |=>Dialog_h>..Thi| 00025640 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 73 |s function shows| 00025650 20 74 68 65 20 64 69 61 6c 6f 67 75 65 20 62 6f | the dialogue bo| 00025660 78 20 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 |x whose handle i| 00025670 73 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 63 |s given in the c| 00025680 65 6e 74 72 65 20 6f 66 20 74 68 65 20 73 63 72 |entre of the scr| 00025690 65 65 6e 2e 20 54 68 65 20 64 69 61 6c 6f 67 75 |een. The dialogu| 000256a0 65 20 62 6f 78 20 69 73 20 6f 70 65 6e 65 64 20 |e box is opened | 000256b0 61 73 20 61 20 74 72 61 6e 73 69 65 6e 74 20 64 |as a transient d| 000256c0 69 61 6c 6f 67 75 65 20 62 6f 78 2c 20 69 2e 65 |ialogue box, i.e| 000256d0 2e 20 69 74 20 77 69 6c 6c 20 64 69 73 61 70 70 |. it will disapp| 000256e0 65 61 72 20 69 66 20 79 6f 75 20 63 6c 69 63 6b |ear if you click| 000256f0 20 6f 75 74 73 69 64 65 20 69 74 20 6f 72 20 70 | outside it or p| 00025700 72 65 73 73 20 2a 45 73 63 61 70 65 2a 2e 00 00 |ress *Escape*...| 00025710 44 41 54 41 63 01 00 00 44 69 61 6c 6f 67 5f 53 |DATAc...Dialog_S| 00025720 68 6f 77 41 74 0a 53 79 6e 74 61 78 3a 09 76 6f |howAt.Syntax:.vo| 00025730 69 64 20 44 69 61 6c 6f 67 5f 53 68 6f 77 41 74 |id Dialog_ShowAt| 00025740 20 28 3c 64 69 61 6c 6f 67 3e 20 64 2c 20 69 6e | (<dialog> d, in| 00025750 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 |t x, int y);.Hea| 00025760 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 44 69 |der:.<DeskLib:Di| 00025770 61 6c 6f 67 2e 68 3d 3e 44 69 61 6c 6f 67 5f 68 |alog.h=>Dialog_h| 00025780 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00025790 73 20 73 68 6f 77 73 20 74 68 65 20 64 69 61 6c |s shows the dial| 000257a0 6f 67 75 65 20 62 6f 78 20 77 68 6f 73 65 20 68 |ogue box whose h| 000257b0 61 6e 64 6c 65 20 69 73 20 67 69 76 65 6e 20 77 |andle is given w| 000257c0 69 74 68 20 74 68 65 20 74 6f 70 20 6c 65 66 74 |ith the top left| 000257d0 20 6f 66 20 74 68 65 20 64 69 61 6c 6f 67 20 61 | of the dialog a| 000257e0 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 73 |t the position s| 000257f0 70 65 63 69 66 69 65 64 2e 20 54 68 65 20 64 69 |pecified. The di| 00025800 61 6c 6f 67 75 65 20 62 6f 78 20 69 73 20 6f 70 |alogue box is op| 00025810 65 6e 65 64 20 61 73 20 61 20 74 72 61 6e 73 69 |ened as a transi| 00025820 65 6e 74 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |ent dialogue box| 00025830 2c 20 69 2e 65 2e 20 69 74 20 77 69 6c 6c 20 64 |, i.e. it will d| 00025840 69 73 61 70 70 65 61 72 20 69 66 20 79 6f 75 20 |isappear if you | 00025850 63 6c 69 63 6b 20 6f 75 74 73 69 64 65 20 69 74 |click outside it| 00025860 20 6f 72 20 70 72 65 73 73 20 2a 45 73 63 61 70 | or press *Escap| 00025870 65 2a 2e 00 44 41 54 41 67 01 00 00 44 69 61 6c |e*..DATAg...Dial| 00025880 6f 67 5f 53 68 6f 77 53 74 61 74 69 63 0a 53 79 |og_ShowStatic.Sy| 00025890 6e 74 61 78 3a 09 76 6f 69 64 20 44 69 61 6c 6f |ntax:.void Dialo| 000258a0 67 5f 53 68 6f 77 53 74 61 74 69 63 20 28 3c 64 |g_ShowStatic (<d| 000258b0 69 61 6c 6f 67 3e 20 64 2c 20 3c 77 69 6e 64 6f |ialog> d, <windo| 000258c0 77 5f 6f 70 65 6e 70 6f 73 3e 20 6f 70 65 6e 70 |w_openpos> openp| 000258d0 6f 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |os);.Header:.<De| 000258e0 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e |skLib:Dialog.h=>| 000258f0 44 69 61 6c 6f 67 5f 68 3e 0a 0a 54 68 69 73 20 |Dialog_h>..This | 00025900 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 73 20 74 |function shows t| 00025910 68 65 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 |he dialogue box | 00025920 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 73 20 |whose handle is | 00025930 67 69 76 65 6e 20 61 73 20 61 20 27 73 74 61 74 |given as a 'stat| 00025940 69 63 27 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |ic' dialogue box| 00025950 20 69 65 20 69 74 20 6f 6e 6c 79 20 63 6c 6f 73 | ie it only clos| 00025960 65 73 20 69 66 20 74 68 65 20 63 6c 6f 73 65 20 |es if the close | 00025970 69 63 6f 6e 20 69 73 20 63 6c 69 63 6b 65 64 20 |icon is clicked | 00025980 6f 72 20 69 66 20 74 68 65 20 61 70 70 6c 69 63 |or if the applic| 00025990 61 74 69 6f 6e 20 63 6c 6f 73 65 73 20 69 74 2e |ation closes it.| 000259a0 20 2f 6f 70 65 6e 70 6f 73 2f 20 67 6f 76 65 72 | /openpos/ gover| 000259b0 6e 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 |ns the position | 000259c0 61 74 20 77 68 69 63 68 20 74 68 65 20 64 62 6f |at which the dbo| 000259d0 78 20 69 73 20 73 68 6f 77 6e 2e 00 44 41 54 41 |x is shown..DATA| 000259e0 ea 00 00 00 44 69 61 6c 6f 67 5f 53 74 69 6c 6c |....Dialog_Still| 000259f0 4f 70 65 6e 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |Open.Syntax:.<BO| 00025a00 4f 4c 3e 20 44 69 61 6c 6f 67 5f 53 74 69 6c 6c |OL> Dialog_Still| 00025a10 4f 70 65 6e 20 28 3c 64 69 61 6c 6f 67 3e 20 64 |Open (<dialog> d| 00025a20 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00025a30 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e 44 69 |Lib:Dialog.h=>Di| 00025a40 61 6c 6f 67 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |alog_h>..Returns| 00025a50 3a 09 3c 54 52 55 45 3e 20 69 66 20 74 68 65 20 |:.<TRUE> if the | 00025a60 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 69 73 20 |dialogue box is | 00025a70 6f 70 65 6e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |open..This funct| 00025a80 69 6f 6e 20 69 73 20 61 63 74 75 61 6c 6c 79 20 |ion is actually | 00025a90 64 65 66 69 6e 65 64 20 61 73 20 61 20 6d 61 63 |defined as a mac| 00025aa0 72 6f 20 72 65 74 75 72 6e 69 6e 67 20 7b 2f 7d |ro returning {/}| 00025ab0 64 2d 3e 73 74 61 74 65 2e 73 74 69 6c 6c 6f 70 |d->state.stillop| 00025ac0 65 6e 7b 2f 7d 2e 00 00 44 41 54 41 b3 00 00 00 |en{/}...DATA....| 00025ad0 54 69 6d 73 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 |TimsLib:Dialog.h| 00025ae0 0a 23 50 61 72 65 6e 74 20 72 6f 5f 74 6c 69 62 |.#Parent ro_tlib| 00025af0 5f 0a 54 68 69 73 20 69 73 20 61 6e 20 65 78 74 |_.This is an ext| 00025b00 65 6e 73 69 6f 6e 20 74 6f 20 3c 44 65 73 6b 4c |ension to <DeskL| 00025b10 69 62 3a 44 69 61 6c 6f 67 2e 68 3d 3e 44 69 61 |ib:Dialog.h=>Dia| 00025b20 6c 6f 67 5f 68 3e 20 77 68 69 63 68 0a 70 72 6f |log_h> which.pro| 00025b30 76 69 64 65 73 20 6f 6e 65 20 66 75 6e 63 74 69 |vides one functi| 00025b40 6f 6e 2c 20 3c 44 69 61 6c 6f 67 5f 48 69 64 65 |on, <Dialog_Hide| 00025b50 3e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 77 20 |>, which is now | 00025b60 69 6e 63 6c 75 64 65 64 20 69 6e 20 44 65 73 6b |included in Desk| 00025b70 4c 69 62 20 61 6e 79 77 61 79 2e 00 44 41 54 41 |Lib anyway..DATA| 00025b80 32 01 00 00 44 69 61 6c 6f 67 5f 57 61 69 74 46 |2...Dialog_WaitF| 00025b90 6f 72 43 6c 69 63 6b 0a 53 79 6e 74 61 78 3a 09 |orClick.Syntax:.| 00025ba0 69 6e 74 20 44 69 61 6c 6f 67 5f 57 61 69 74 46 |int Dialog_WaitF| 00025bb0 6f 72 43 6c 69 63 6b 20 28 3c 64 69 61 6c 6f 67 |orClick (<dialog| 00025bc0 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |> d);.Header:.<D| 00025bd0 65 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3d |eskLib:Dialog.h=| 00025be0 3e 44 69 61 6c 6f 67 5f 68 3e 0a 0a 52 65 74 75 |>Dialog_h>..Retu| 00025bf0 72 6e 73 3a 09 54 68 65 20 69 63 6f 6e 20 63 6c |rns:.The icon cl| 00025c00 69 63 6b 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e |icked...This fun| 00025c10 63 74 69 6f 6e 20 77 61 69 74 73 20 66 6f 72 20 |ction waits for | 00025c20 61 6e 20 69 63 6f 6e 20 74 6f 20 62 65 20 63 6c |an icon to be cl| 00025c30 69 63 6b 65 64 20 69 6e 20 74 68 65 20 64 69 61 |icked in the dia| 00025c40 6c 6f 67 75 65 20 62 6f 78 2e 20 41 6c 6c 20 6f |logue box. All o| 00025c50 74 68 65 72 20 65 76 65 6e 74 73 20 61 72 65 20 |ther events are | 00025c60 70 72 6f 63 65 73 73 65 64 20 6e 6f 72 6d 61 6c |processed normal| 00025c70 6c 79 2e 20 49 66 20 74 68 65 20 75 73 65 72 20 |ly. If the user | 00025c80 63 6c 6f 73 65 73 20 74 68 65 20 77 69 6e 64 6f |closes the windo| 00025c90 77 2c 20 3c 64 69 61 6c 6f 67 5f 43 4c 4f 53 45 |w, <dialog_CLOSE| 00025ca0 3e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 00 00 |> is returned...| 00025cb0 44 41 54 41 28 01 00 00 44 69 61 6c 6f 67 5f 57 |DATA(...Dialog_W| 00025cc0 69 6e 64 6f 77 48 61 6e 64 6c 65 0a 53 79 6e 74 |indowHandle.Synt| 00025cd0 61 78 3a 09 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |ax:.<window_hand| 00025ce0 6c 65 3e 20 44 69 61 6c 6f 67 5f 57 69 6e 64 6f |le> Dialog_Windo| 00025cf0 77 48 61 6e 64 6c 65 20 28 3c 64 69 61 6c 6f 67 |wHandle (<dialog| 00025d00 3e 20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |> d);.Header:.<D| 00025d10 65 73 6b 4c 69 62 3a 44 69 61 6c 6f 67 2e 68 3e |eskLib:Dialog.h>| 00025d20 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 77 |..Returns:.The w| 00025d30 69 6e 64 6f 77 20 68 61 6e 64 6c 65 2e 0a 0a 54 |indow handle...T| 00025d40 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 |his function ret| 00025d50 75 72 6e 73 20 74 68 65 20 52 49 53 43 20 4f 53 |urns the RISC OS| 00025d60 20 57 49 4d 50 20 77 69 6e 64 6f 77 20 68 61 6e | WIMP window han| 00025d70 64 6c 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 |dle associated w| 00025d80 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 64 69 |ith the given di| 00025d90 61 6c 6f 67 75 65 20 62 6f 78 2e 20 49 74 20 69 |alogue box. It i| 00025da0 73 20 61 63 74 75 61 6c 6c 79 20 64 65 66 69 6e |s actually defin| 00025db0 65 64 20 61 73 20 61 20 6d 61 63 72 6f 20 72 65 |ed as a macro re| 00025dc0 74 75 72 6e 69 6e 67 20 7b 2f 7d 64 2d 3e 77 69 |turning {/}d->wi| 00025dd0 6e 64 6f 77 7b 2f 7d 2e 44 41 54 41 da 00 00 00 |ndow{/}.DATA....| 00025de0 64 69 66 66 74 69 6d 65 0a 53 79 6e 74 61 78 3a |difftime.Syntax:| 00025df0 09 64 6f 75 62 6c 65 20 64 69 66 66 74 69 6d 65 |.double difftime| 00025e00 20 28 3c 74 69 6d 65 5f 74 3e 20 74 32 2c 20 74 | (<time_t> t2, t| 00025e10 69 6d 65 5f 74 20 74 31 29 3b 0a 48 65 61 64 65 |ime_t t1);.Heade| 00025e20 72 3a 09 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 |r:.<time.h=>time| 00025e30 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |_h>..Returns:.Th| 00025e40 65 20 69 6e 74 65 72 76 61 6c 20 69 6e 20 73 65 |e interval in se| 00025e50 63 6f 6e 64 73 2e 0a 0a 54 68 69 73 20 66 75 6e |conds...This fun| 00025e60 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 |ction calculates| 00025e70 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 | the difference | 00025e80 62 65 74 77 65 65 6e 20 74 68 65 20 74 77 6f 20 |between the two | 00025e90 63 61 6c 65 6e 64 61 72 20 74 69 6d 65 73 20 28 |calendar times (| 00025ea0 74 32 2d 74 31 29 20 69 6e 20 73 65 63 6f 6e 64 |t2-t1) in second| 00025eb0 73 2e 00 00 44 41 54 41 21 02 00 00 44 69 73 70 |s...DATA!...Disp| 00025ec0 61 74 63 68 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |atch.Syntax:.int| 00025ed0 20 44 69 73 70 61 74 63 68 20 28 69 6e 74 20 76 | Dispatch (int v| 00025ee0 61 6c 75 65 2c 20 69 6e 74 20 73 69 7a 65 2c 20 |alue, int size, | 00025ef0 69 6e 74 20 74 61 62 6c 65 5b 5d 2c 20 3c 64 69 |int table[], <di| 00025f00 73 70 61 74 63 68 5f 70 72 6f 63 3e 20 66 75 6e |spatch_proc> fun| 00025f10 63 74 69 6f 6e 73 5b 5d 2c 20 69 6e 74 20 61 72 |ctions[], int ar| 00025f20 67 30 2c 20 69 6e 74 20 61 72 67 31 2c 20 69 6e |g0, int arg1, in| 00025f30 74 20 61 72 67 32 2c 20 69 6e 74 20 61 72 67 33 |t arg2, int arg3| 00025f40 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00025f50 4c 69 62 3a 44 69 73 70 61 74 63 68 2e 68 3d 3e |Lib:Dispatch.h=>| 00025f60 44 69 73 70 61 74 63 68 5f 68 3e 0a 0a 52 65 74 |Dispatch_h>..Ret| 00025f70 75 72 6e 73 3a 09 2d 31 20 69 66 20 66 61 69 6c |urns:.-1 if fail| 00025f80 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ed...This functi| 00025f90 6f 6e 20 73 65 61 72 63 68 65 73 20 74 68 72 6f |on searches thro| 00025fa0 75 67 68 20 74 68 65 20 61 72 72 61 79 20 2f 74 |ugh the array /t| 00025fb0 61 62 6c 65 2f 20 28 77 68 69 63 68 20 68 61 73 |able/ (which has| 00025fc0 20 2f 73 69 7a 65 2f 20 65 6c 65 6d 65 6e 74 73 | /size/ elements| 00025fd0 29 20 66 6f 72 20 61 20 76 61 6c 75 65 20 77 68 |) for a value wh| 00025fe0 69 63 68 20 6d 61 74 63 68 65 73 20 2f 76 61 6c |ich matches /val| 00025ff0 75 65 2f 2e 20 49 74 20 74 68 65 6e 20 63 61 6c |ue/. It then cal| 00026000 6c 73 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e |ls the correspon| 00026010 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 69 6e |ding function in| 00026020 20 74 68 65 20 2f 66 75 6e 63 74 69 6f 6e 73 2f | the /functions/| 00026030 20 61 72 72 61 79 20 77 69 74 68 20 61 72 67 75 | array with argu| 00026040 6d 65 6e 74 73 20 61 73 20 67 69 76 65 6e 2e 0a |ments as given..| 00026050 0a 49 66 20 6f 6e 65 20 6f 66 20 74 68 65 20 65 |.If one of the e| 00026060 6c 65 6d 65 6e 74 73 20 69 6e 20 2f 74 61 62 6c |lements in /tabl| 00026070 65 2f 20 68 61 73 20 74 68 65 20 76 61 6c 75 65 |e/ has the value| 00026080 20 2d 31 2c 20 69 74 20 69 73 20 61 6c 77 61 79 | -1, it is alway| 00026090 73 20 63 61 6c 6c 65 64 2c 20 73 6f 20 69 66 20 |s called, so if | 000260a0 79 6f 75 20 77 61 6e 74 20 61 20 64 65 66 61 75 |you want a defau| 000260b0 6c 74 20 61 63 74 69 6f 6e 2c 20 6d 61 6b 65 20 |lt action, make | 000260c0 69 74 20 74 68 65 20 6c 61 73 74 20 66 75 6e 63 |it the last func| 000260d0 74 69 6f 6e 2e 00 00 00 44 49 52 24 48 00 00 00 |tion....DIR$H...| 000260e0 48 00 00 00 20 61 02 00 46 fd ff ff 95 a5 f4 24 |H... a..F......$| 000260f0 c3 00 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |............h...| 00026100 e4 61 02 00 46 ff ff ff b3 c1 f2 24 0e 01 00 00 |.a..F......$....| 00026110 13 00 00 00 00 00 00 00 70 72 6f 63 00 00 00 00 |........proc....| 00026120 44 41 54 41 c3 00 00 00 44 65 73 6b 4c 69 62 3a |DATA....DeskLib:| 00026130 44 69 73 70 61 74 63 68 2e 68 0a 56 65 72 73 69 |Dispatch.h.Versi| 00026140 6f 6e 3a 20 31 2e 30 30 20 28 30 33 20 41 70 72 |on: 1.00 (03 Apr| 00026150 20 31 39 39 32 29 0a 23 6c 69 6e 65 0a 54 68 69 | 1992).#line.Thi| 00026160 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 |s header declare| 00026170 73 20 6a 75 73 74 20 6f 6e 65 20 66 75 6e 63 74 |s just one funct| 00026180 69 6f 6e 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 |ion, a function | 00026190 64 69 73 70 61 74 63 68 65 72 2e 20 49 74 20 61 |dispatcher. It a| 000261a0 6c 73 6f 20 64 65 66 69 6e 65 73 20 6f 6e 65 20 |lso defines one | 000261b0 74 79 70 65 2e 0a 0a 46 75 6e 63 74 69 6f 6e 3a |type...Function:| 000261c0 09 3c 44 69 73 70 61 74 63 68 3e 0a 0a 54 79 70 |.<Dispatch>..Typ| 000261d0 65 3a 09 09 3c 64 69 73 70 61 74 63 68 5f 70 72 |e:..<dispatch_pr| 000261e0 6f 63 3e 00 44 41 54 41 0e 01 00 00 64 69 73 70 |oc>.DATA....disp| 000261f0 61 74 63 68 5f 70 72 6f 63 0a 54 68 65 20 74 79 |atch_proc.The ty| 00026200 70 65 20 64 69 73 70 61 74 63 68 5f 70 72 6f 63 |pe dispatch_proc| 00026210 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00026220 44 65 73 6b 4c 69 62 3a 44 69 73 70 61 74 63 68 |DeskLib:Dispatch| 00026230 2e 68 3d 3e 44 69 73 70 61 74 63 68 5f 68 3e 20 |.h=>Dispatch_h> | 00026240 61 73 20 61 20 74 79 70 65 20 63 61 70 61 62 6c |as a type capabl| 00026250 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 70 |e of holding a p| 00026260 6f 69 6e 74 65 72 20 74 6f 20 61 20 66 75 6e 63 |ointer to a func| 00026270 74 69 6f 6e 20 74 6f 20 62 65 20 63 61 6c 6c 65 |tion to be calle| 00026280 64 20 62 79 20 74 68 65 20 3c 44 69 73 70 61 74 |d by the <Dispat| 00026290 63 68 3e 20 66 75 6e 63 74 69 6f 6e 2e 20 46 75 |ch> function. Fu| 000262a0 6e 63 74 69 6f 6e 73 20 73 68 6f 75 6c 64 20 68 |nctions should h| 000262b0 61 76 65 20 74 68 65 20 66 6f 72 6d 3a 20 7b 66 |ave the form: {f| 000262c0 43 6f 64 65 7d 76 6f 69 64 20 6d 79 66 75 6e 63 |Code}void myfunc| 000262d0 28 29 3b 20 7b 66 7d 77 69 74 68 20 75 70 20 74 |(); {f}with up t| 000262e0 6f 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 |o three argument| 000262f0 73 2e 00 00 44 41 54 41 3e 01 00 00 64 69 76 0a |s...DATA>...div.| 00026300 53 79 6e 74 61 78 3a 09 3c 64 69 76 5f 74 3e 20 |Syntax:.<div_t> | 00026310 64 69 76 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 |div (int x, int | 00026320 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |y);.Header:.<std| 00026330 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a |lib.h=>stdlib>..| 00026340 52 65 74 75 72 6e 73 3a 09 54 68 65 20 71 75 6f |Returns:.The quo| 00026350 74 69 65 6e 74 20 61 6e 64 20 72 65 6d 61 69 6e |tient and remain| 00026360 64 65 72 20 6f 66 20 78 2f 79 2e 0a 0a 54 68 69 |der of x/y...Thi| 00026370 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 |s function calcu| 00026380 6c 61 74 65 73 20 74 68 65 20 71 75 6f 74 69 65 |lates the quotie| 00026390 6e 74 20 61 6e 64 20 72 65 6d 61 69 6e 64 65 72 |nt and remainder| 000263a0 20 6f 66 20 78 2f 79 2e 20 46 6f 72 6d 61 6c 6c | of x/y. Formall| 000263b0 79 20 74 68 69 73 20 69 73 20 64 65 66 69 6e 65 |y this is define| 000263c0 64 20 61 73 20 72 3d 78 2d 28 71 2a 79 29 2c 20 |d as r=x-(q*y), | 000263d0 77 68 65 72 65 20 72 20 69 73 20 74 68 65 20 72 |where r is the r| 000263e0 65 6d 61 69 6e 64 65 72 20 61 6e 64 20 71 20 69 |emainder and q i| 000263f0 73 20 74 68 65 20 71 75 6f 74 69 65 6e 74 2e 20 |s the quotient. | 00026400 72 20 69 73 20 61 6c 77 61 79 73 20 6c 65 73 73 |r is always less| 00026410 20 74 68 61 6e 20 79 20 61 6e 64 20 6f 66 20 74 | than y and of t| 00026420 68 65 20 73 61 6d 65 20 73 69 67 6e 20 61 73 20 |he same sign as | 00026430 71 2e 00 00 44 49 52 24 28 00 00 00 28 00 00 00 |q...DIR$(...(...| 00026440 5c 64 02 00 46 ff ff ff 1c 63 de 22 e0 00 00 00 |\d..F....c."....| 00026450 13 00 00 00 00 00 00 00 74 00 00 00 44 41 54 41 |........t...DATA| 00026460 e0 00 00 00 64 69 76 5f 74 0a 54 68 65 20 74 79 |....div_t.The ty| 00026470 70 65 20 7b 2f 7d 64 69 76 5f 74 7b 2f 7d 20 69 |pe {/}div_t{/} i| 00026480 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 |s defined in <st| 00026490 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 20 |dlib.h=>stdlib> | 000264a0 66 6f 72 20 68 6f 6c 64 69 6e 67 20 72 65 74 75 |for holding retu| 000264b0 72 6e 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 74 |rn values from t| 000264c0 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 64 69 76 |he function <div| 000264d0 3e 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |>. It is defined| 000264e0 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 000264f0 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 5c 7b |g structure:..\{| 00026500 0a 20 20 20 20 69 6e 74 20 71 75 6f 74 3b 09 2f |. int quot;./| 00026510 2a 20 51 75 6f 74 69 65 6e 74 20 2a 2f 0a 20 20 |* Quotient */. | 00026520 20 20 69 6e 74 20 72 65 6d 3b 09 2f 2a 20 52 65 | int rem;./* Re| 00026530 6d 61 69 6e 64 65 72 20 2a 2f 0a 7d 44 49 52 24 |mainder */.}DIR$| 00026540 6c 00 00 00 6c 00 00 00 a8 65 02 00 46 fd ff ff |l...l....e..F...| 00026550 2f a8 08 2e 02 03 00 00 13 00 00 00 00 00 00 00 |/...............| 00026560 4d 65 6e 75 00 00 00 00 ac 68 02 00 46 fd ff ff |Menu.....h..F...| 00026570 59 6b 36 26 94 01 00 00 13 00 00 00 00 00 00 00 |Yk6&............| 00026580 54 69 6d 65 00 00 00 00 40 6a 02 00 46 fd ff ff |Time....@j..F...| 00026590 bd 7c 52 26 01 01 00 00 13 00 00 00 00 00 00 00 |.|R&............| 000265a0 70 6f 69 6e 74 65 72 00 44 41 54 41 02 03 00 00 |pointer.DATA....| 000265b0 44 65 73 6b 4c 69 62 3a 4d 65 6e 75 2e 68 0a 56 |DeskLib:Menu.h.V| 000265c0 65 72 73 69 6f 6e 3a 20 31 2e 30 33 20 28 44 65 |ersion: 1.03 (De| 000265d0 63 20 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 |c 1994).#line.Th| 000265e0 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |is header declar| 000265f0 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 |es functions for| 00026600 20 68 61 6e 64 6c 69 6e 67 20 52 49 53 43 20 4f | handling RISC O| 00026610 53 20 6d 65 6e 75 73 20 65 61 73 69 6c 79 2e 0a |S menus easily..| 00026620 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 54 61 |.Functions:..#Ta| 00026630 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 4d |ble columns 3.<M| 00026640 65 6e 75 5f 4e 65 77 3e 0a 3c 4d 65 6e 75 5f 45 |enu_New>.<Menu_E| 00026650 78 74 65 6e 64 3e 0a 3c 4d 65 6e 75 5f 53 68 6f |xtend>.<Menu_Sho| 00026660 77 3e 0a 3c 4d 65 6e 75 5f 53 68 6f 77 4c 61 73 |w>.<Menu_ShowLas| 00026670 74 3e 0a 3c 4d 65 6e 75 5f 41 64 64 53 75 62 4d |t>.<Menu_AddSubM| 00026680 65 6e 75 3e 0a 3c 4d 65 6e 75 5f 43 61 6c 63 48 |enu>.<Menu_CalcH| 00026690 65 69 67 68 74 3e 0a 3c 4d 65 6e 75 5f 53 79 73 |eight>.<Menu_Sys| 000266a0 48 61 6e 64 6c 65 3d 3e 4d 65 6e 75 5f 53 79 73 |Handle=>Menu_Sys| 000266b0 48 61 6e 64 6c 65 5f 3e 0a 3c 4d 65 6e 75 5f 53 |Handle_>.<Menu_S| 000266c0 44 69 73 70 6f 73 65 3e 0a 3c 4d 65 6e 75 5f 46 |Dispose>.<Menu_F| 000266d0 75 6c 6c 44 69 73 70 6f 73 65 3e 0a 3c 4d 65 6e |ullDispose>.<Men| 000266e0 75 5f 4d 61 6b 65 49 6e 64 69 72 65 63 74 65 64 |u_MakeIndirected| 000266f0 3e 0a 3c 4d 65 6e 75 5f 4d 61 6b 65 57 72 69 74 |>.<Menu_MakeWrit| 00026700 61 62 6c 65 3e 0a 3c 4d 65 6e 75 5f 53 65 74 46 |able>.<Menu_SetF| 00026710 6c 61 67 73 3e 0a 3c 4d 65 6e 75 5f 47 65 74 46 |lags>.<Menu_GetF| 00026720 6c 61 67 73 3e 0a 3c 4d 65 6e 75 5f 53 65 74 54 |lags>.<Menu_SetT| 00026730 65 78 74 3e 0a 3c 4d 65 6e 75 5f 47 65 74 54 65 |ext>.<Menu_GetTe| 00026740 78 74 3e 0a 3c 4d 65 6e 75 5f 52 65 6d 6f 76 65 |xt>.<Menu_Remove| 00026750 49 74 65 6d 3e 0a 3c 4d 65 6e 75 5f 57 61 72 6e |Item>.<Menu_Warn| 00026760 3e 0a 3c 4d 65 6e 75 5f 50 6f 70 55 70 3e 0a 3c |>.<Menu_PopUp>.<| 00026770 4d 65 6e 75 5f 50 6f 70 55 70 41 75 74 6f 3e 0a |Menu_PopUpAuto>.| 00026780 3c 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 3e 0a |<Menu_FontMenu>.| 00026790 3c 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 33 3e |<Menu_FontMenu3>| 000267a0 0a 3c 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 44 |.<Menu_FontMenuD| 000267b0 65 63 6f 64 65 3e 0a 3c 4d 65 6e 75 5f 46 6f 6e |ecode>.<Menu_Fon| 000267c0 74 4d 65 6e 75 44 65 63 6f 64 65 33 3e 0a 3c 4d |tMenuDecode3>.<M| 000267d0 65 6e 75 5f 52 65 76 69 73 65 57 69 64 74 68 3e |enu_ReviseWidth>| 000267e0 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 4d 61 63 72 |.#EndTable..Macr| 000267f0 6f 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 0a 23 |os:..#indent 4.#| 00026800 74 61 62 6c 65 20 6c 69 6e 65 73 20 31 0a 3c 4d |table lines 1.<M| 00026810 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 5f 4e 4f 54 |enu_FontMenu_NOT| 00026820 49 43 4b 3e 0a 3c 4d 65 6e 75 5f 46 6f 6e 74 4d |ICK>.<Menu_FontM| 00026830 65 6e 75 5f 54 49 43 4b 53 59 53 46 4f 4e 54 3e |enu_TICKSYSFONT>| 00026840 0a 23 65 6e 64 74 61 62 6c 65 0a 23 69 6e 64 65 |.#endtable.#inde| 00026850 6e 74 0a 0a 56 61 72 69 61 62 6c 65 73 3a 0a 0a |nt..Variables:..| 00026860 23 69 6e 64 65 6e 74 20 31 30 0a 23 54 61 62 6c |#indent 10.#Tabl| 00026870 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 6d 65 6e |e columns 2.<men| 00026880 75 5f 63 75 72 72 65 6e 74 70 6f 73 3e 0a 3c 6d |u_currentpos>.<m| 00026890 65 6e 75 5f 63 75 72 72 65 6e 74 6f 70 65 6e 3e |enu_currentopen>| 000268a0 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 41 54 41 |.#EndTable..DATA| 000268b0 94 01 00 00 44 65 73 6b 4c 69 62 3a 54 69 6d 65 |....DeskLib:Time| 000268c0 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 32 |.h.Version: 1.02| 000268d0 20 28 32 32 20 4d 61 79 20 31 39 39 34 29 0a 23 | (22 May 1994).#| 000268e0 6c 69 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 |line.This header| 000268f0 20 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 | declares functi| 00026900 6f 6e 73 20 74 6f 20 64 6f 20 77 69 74 68 20 74 |ons to do with t| 00026910 69 6d 65 3a 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a |ime:..Functions:| 00026920 0a 0a 23 69 6e 64 65 6e 74 20 31 30 0a 3c 54 69 |..#indent 10.<Ti| 00026930 6d 65 5f 4d 6f 6e 6f 74 6f 6e 69 63 3e 0a 3c 54 |me_Monotonic>.<T| 00026940 69 6d 65 5f 43 6f 6e 76 65 72 74 44 61 74 65 41 |ime_ConvertDateA| 00026950 6e 64 54 69 6d 65 3e 0a 3c 54 69 6d 65 5f 43 6f |ndTime>.<Time_Co| 00026960 6e 76 65 72 74 53 74 61 6e 64 61 72 64 44 61 74 |nvertStandardDat| 00026970 65 41 6e 64 54 69 6d 65 3e 0a 23 69 6e 64 65 6e |eAndTime>.#inden| 00026980 74 20 30 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 23 54 |t 0..Macros:..#T| 00026990 61 62 6c 65 20 32 20 31 36 0a 3c 54 69 6d 65 5f |able 2 16.<Time_| 000269a0 43 54 49 4d 45 3e 0a 3c 54 69 6d 65 5f 53 54 41 |CTIME>.<Time_STA| 000269b0 4e 44 41 52 44 3e 0a 3c 54 69 6d 65 5f 46 41 4e |NDARD>.<Time_FAN| 000269c0 43 59 44 41 54 45 3e 0a 3c 54 69 6d 65 5f 53 48 |CYDATE>.<Time_SH| 000269d0 4f 52 54 54 49 4d 45 3e 0a 3c 54 69 6d 65 5f 4c |ORTTIME>.<Time_L| 000269e0 4f 4e 47 54 49 4d 45 3e 0a 3c 54 69 6d 65 5f 45 |ONGTIME>.<Time_E| 000269f0 55 52 4f 54 49 4d 45 3e 0a 23 45 6e 64 54 61 62 |UROTIME>.#EndTab| 00026a00 6c 65 0a 0a 54 68 65 20 6d 61 63 72 6f 73 20 61 |le..The macros a| 00026a10 72 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 |re format string| 00026a20 73 20 66 6f 72 20 3c 54 69 6d 65 5f 43 6f 6e 76 |s for <Time_Conv| 00026a30 65 72 74 44 61 74 65 41 6e 64 54 69 6d 65 3e 2e |ertDateAndTime>.| 00026a40 44 41 54 41 01 01 00 00 44 65 73 6b 4c 69 62 3a |DATA....DeskLib:| 00026a50 50 6f 69 6e 74 65 72 2e 68 0a 56 65 72 73 69 6f |Pointer.h.Versio| 00026a60 6e 3a 20 31 2e 30 30 20 28 32 38 20 53 65 70 20 |n: 1.00 (28 Sep | 00026a70 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 |1994).#line.This| 00026a80 20 68 65 61 64 65 72 20 63 6f 6e 74 61 69 6e 73 | header contains| 00026a90 20 68 69 67 68 2d 6c 65 76 65 6c 20 70 6f 69 6e | high-level poin| 00026aa0 74 65 72 20 68 61 6e 64 6c 69 6e 67 20 66 75 6e |ter handling fun| 00026ab0 63 74 69 6f 6e 73 2e 0a 0a 46 75 6e 63 74 69 6f |ctions...Functio| 00026ac0 6e 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 |ns:..#table colu| 00026ad0 6d 6e 73 20 32 0a 3c 50 6f 69 6e 74 65 72 5f 52 |mns 2.<Pointer_R| 00026ae0 65 73 74 72 69 63 74 54 6f 57 69 6e 64 6f 77 3e |estrictToWindow>| 00026af0 0a 3c 50 6f 69 6e 74 65 72 5f 52 65 73 74 72 69 |.<Pointer_Restri| 00026b00 63 74 54 6f 49 63 6f 6e 3e 0a 3c 50 6f 69 6e 74 |ctToIcon>.<Point| 00026b10 65 72 5f 52 65 73 74 72 69 63 74 54 6f 52 65 63 |er_RestrictToRec| 00026b20 74 3e 0a 3c 50 6f 69 6e 74 65 72 5f 55 6e 72 65 |t>.<Pointer_Unre| 00026b30 73 74 72 69 63 74 3e 0a 23 65 6e 64 74 61 62 6c |strict>.#endtabl| 00026b40 65 00 00 00 44 41 54 41 df 02 00 00 64 6f 0a 54 |e...DATA....do.T| 00026b50 68 69 73 20 63 6f 6d 6d 61 6e 64 20 64 65 66 69 |his command defi| 00026b60 6e 65 73 20 61 20 2f 64 6f 2f 20 6c 6f 6f 70 2e |nes a /do/ loop.| 00026b70 20 54 68 69 73 20 73 69 6d 69 6c 61 72 20 74 6f | This similar to| 00026b80 20 61 20 3c 52 45 50 45 41 54 3d 3e 42 61 73 69 | a <REPEAT=>Basi| 00026b90 63 3a 52 45 50 45 41 54 3e 20 6c 6f 6f 70 20 69 |c:REPEAT> loop i| 00026ba0 6e 20 42 61 73 69 63 20 28 62 75 74 20 6e 6f 74 |n Basic (but not| 00026bb0 65 20 69 74 20 69 73 20 2a 77 68 69 6c 65 2a 20 |e it is *while* | 00026bc0 6e 6f 74 20 2a 75 6e 74 69 6c 2a 2e 20 49 74 20 |not *until*. It | 00026bd0 68 61 73 20 74 68 65 20 67 65 6e 65 72 61 6c 20 |has the general | 00026be0 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c |form:..{fCode;al| 00026bf0 69 67 6e 20 63 65 6e 74 72 65 7d 64 6f 20 5c 3c |ign centre}do \<| 00026c00 73 74 61 74 65 6d 65 6e 74 3e 3b 20 77 68 69 6c |statement>; whil| 00026c10 65 20 28 5c 3c 63 6f 6e 64 69 74 69 6f 6e 3e 29 |e (\<condition>)| 00026c20 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 5c 3c 73 74 |;{f;align}..\<st| 00026c30 61 74 65 6d 65 6e 74 3e 09 69 73 20 74 68 65 20 |atement>.is the | 00026c40 63 6f 6d 6d 61 6e 64 20 65 78 65 63 75 74 65 64 |command executed| 00026c50 20 77 69 74 68 69 6e 20 74 68 65 20 6c 6f 6f 70 | within the loop| 00026c60 2e 20 49 74 20 69 73 20 65 78 65 63 75 74 65 64 |. It is executed| 00026c70 20 61 74 20 6c 65 61 73 74 20 6f 6e 63 65 2e 20 | at least once. | 00026c80 49 74 20 6d 61 79 20 62 65 20 61 20 63 6f 6d 70 |It may be a comp| 00026c90 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74 20 69 |ound statement i| 00026ca0 65 20 73 65 76 65 72 61 6c 20 73 74 61 74 65 6d |e several statem| 00026cb0 65 6e 74 73 20 65 6e 63 6c 6f 73 65 64 20 69 6e |ents enclosed in| 00026cc0 20 62 72 61 63 65 73 20 5c 7b 7d 2c 20 69 6e 20 | braces \{}, in | 00026cd0 77 68 69 63 68 20 63 61 73 65 20 6e 6f 20 73 65 |which case no se| 00026ce0 6d 69 63 6f 6c 6f 6e 20 6e 65 65 64 20 66 6f 6c |micolon need fol| 00026cf0 6c 6f 77 20 69 74 2c 20 62 75 74 20 74 68 65 20 |low it, but the | 00026d00 66 69 6e 61 6c 20 73 65 6d 69 63 6f 6c 6f 6e 20 |final semicolon | 00026d10 6d 75 73 74 20 73 74 69 6c 6c 20 62 65 20 70 72 |must still be pr| 00026d20 65 73 65 6e 74 2e 0a 0a 5c 3c 63 6f 6e 64 69 74 |esent...\<condit| 00026d30 69 6f 6e 3e 09 69 73 20 65 76 61 6c 75 61 74 65 |ion>.is evaluate| 00026d40 64 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 |d at the end of | 00026d50 65 61 63 68 20 74 69 6d 65 20 72 6f 75 6e 64 20 |each time round | 00026d60 74 68 65 20 6c 6f 6f 70 2e 20 49 66 20 69 74 20 |the loop. If it | 00026d70 69 73 20 66 61 6c 73 65 20 28 30 29 20 74 68 65 |is false (0) the| 00026d80 6e 20 74 68 65 20 6c 6f 6f 70 20 69 73 20 66 69 |n the loop is fi| 00026d90 6e 69 73 68 65 64 2c 20 65 6c 73 65 20 69 74 20 |nished, else it | 00026da0 67 6f 65 73 20 72 6f 75 6e 64 20 61 67 61 69 6e |goes round again| 00026db0 2e 0a 0a 65 67 2e 20 20 20 20 20 7b 66 43 6f 64 |...eg. {fCod| 00026dc0 65 7d 64 6f 20 69 3d 3c 67 65 74 63 68 61 72 3e |e}do i=<getchar>| 00026dd0 28 29 3b 20 77 68 69 6c 65 20 28 69 21 3d 27 51 |(); while (i!='Q| 00026de0 27 29 3b 7b 66 7d 0a 0a 54 68 69 73 20 67 65 74 |');{f}..This get| 00026df0 73 20 63 68 61 72 61 63 74 65 72 73 20 66 72 6f |s characters fro| 00026e00 6d 20 74 68 65 20 6b 65 79 62 6f 61 72 64 20 75 |m the keyboard u| 00026e10 6e 74 69 6c 20 79 6f 75 20 70 72 65 73 73 20 94 |ntil you press .| 00026e20 51 95 2e 00 44 41 54 41 87 01 00 00 44 65 73 6b |Q...DATA....Desk| 00026e30 4c 69 62 3a 44 72 61 67 2e 68 0a 56 65 72 73 69 |Lib:Drag.h.Versi| 00026e40 6f 6e 3a 20 31 2e 30 30 20 28 30 31 20 41 70 72 |on: 1.00 (01 Apr| 00026e50 20 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 | 1994).#line.Thi| 00026e60 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 |s header declare| 00026e70 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 |s functions for | 00026e80 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 68 61 |automatically ha| 00026e90 6e 64 6c 69 6e 67 20 64 72 61 67 20 75 70 64 61 |ndling drag upda| 00026ea0 74 65 20 61 6e 64 20 66 69 6e 69 73 68 20 65 76 |te and finish ev| 00026eb0 65 6e 74 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |ents...Functions| 00026ec0 3a 0a 0a 23 69 6e 64 65 6e 74 20 39 0a 23 54 61 |:..#indent 9.#Ta| 00026ed0 62 6c 65 20 31 20 32 34 0a 3c 44 72 61 67 5f 49 |ble 1 24.<Drag_I| 00026ee0 6e 69 74 69 61 6c 69 73 65 3e 0a 3c 44 72 61 67 |nitialise>.<Drag| 00026ef0 5f 53 65 74 48 61 6e 64 6c 65 72 73 3e 0a 23 45 |_SetHandlers>.#E| 00026f00 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 0a |ndTable.#indent.| 00026f10 0a 54 79 70 65 3a 0a 7b 61 6c 69 67 6e 20 63 65 |.Type:.{align ce| 00026f20 6e 74 72 65 7d 0a 3c 64 72 61 67 5f 68 61 6e 64 |ntre}.<drag_hand| 00026f30 6c 65 72 3e 7b 61 6c 69 67 6e 7d 0a 0a 56 61 72 |ler>{align}..Var| 00026f40 69 61 62 6c 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 |iables:..#indent| 00026f50 20 34 0a 23 54 61 62 6c 65 20 32 20 32 34 0a 3c | 4.#Table 2 24.<| 00026f60 64 72 61 67 5f 63 75 72 72 65 6e 74 75 70 64 61 |drag_currentupda| 00026f70 74 65 3e 0a 3c 64 72 61 67 5f 63 75 72 72 65 6e |te>.<drag_curren| 00026f80 74 63 6f 6d 70 6c 65 74 65 3e 0a 3c 64 72 61 67 |tcomplete>.<drag| 00026f90 5f 63 75 72 72 65 6e 74 75 73 65 72 64 61 74 61 |_currentuserdata| 00026fa0 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 49 52 24 |>.#EndTable.DIR$| 00026fb0 2c 01 00 00 2c 01 00 00 d8 70 02 00 46 ff ff ff |,...,....p..F...| 00026fc0 ea 46 42 26 1e 02 00 00 13 00 00 00 00 00 00 00 |.FB&............| 00026fd0 62 6c 6f 63 6b 00 00 00 f8 72 02 00 46 ff ff ff |block....r..F...| 00026fe0 93 0a f3 24 c1 00 00 00 13 00 00 00 00 00 00 00 |...$............| 00026ff0 63 75 72 72 65 6e 74 63 6f 6d 70 6c 65 74 65 00 |currentcomplete.| 00027000 bc 73 02 00 46 ff ff ff e8 07 f3 24 a2 00 00 00 |.s..F......$....| 00027010 13 00 00 00 00 00 00 00 63 75 72 72 65 6e 74 75 |........currentu| 00027020 70 64 61 74 65 00 00 00 60 74 02 00 46 ff ff ff |pdate...`t..F...| 00027030 88 03 f3 24 46 01 00 00 13 00 00 00 00 00 00 00 |...$F...........| 00027040 68 61 6e 64 6c 65 72 00 a8 75 02 00 46 ff ff ff |handler..u..F...| 00027050 26 e4 f2 24 af 01 00 00 13 00 00 00 00 00 00 00 |&..$............| 00027060 49 6e 69 74 69 61 6c 69 73 65 00 00 58 77 02 00 |Initialise..Xw..| 00027070 46 ff ff ff f4 f3 f2 24 55 02 00 00 13 00 00 00 |F......$U.......| 00027080 00 00 00 00 53 65 74 48 61 6e 64 6c 65 72 73 00 |....SetHandlers.| 00027090 b0 79 02 00 46 ff ff ff 3e 34 42 26 61 03 00 00 |.y..F...>4B&a...| 000270a0 13 00 00 00 00 00 00 00 74 79 70 65 00 00 00 00 |........type....| 000270b0 14 7d 02 00 46 ff ff ff d0 2f f3 24 b5 00 00 00 |.}..F..../.$....| 000270c0 13 00 00 00 00 00 00 00 63 75 72 72 65 6e 74 75 |........currentu| 000270d0 73 65 72 64 61 74 61 00 44 41 54 41 1e 02 00 00 |serdata.DATA....| 000270e0 64 72 61 67 5f 62 6c 6f 63 6b 0a 54 68 69 73 20 |drag_block.This | 000270f0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 00027100 62 79 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |by <DeskLib:Wimp| 00027110 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 69 73 |.h=>Wimp>. It is| 00027120 20 61 20 73 74 72 75 63 74 75 72 65 20 63 6f 6e | a structure con| 00027130 74 61 69 6e 69 6e 67 20 69 6e 66 6f 72 6d 61 74 |taining informat| 00027140 69 6f 6e 20 74 6f 20 62 65 20 70 61 73 73 65 64 |ion to be passed| 00027150 20 74 6f 20 3c 57 69 6d 70 5f 44 72 61 67 42 6f | to <Wimp_DragBo| 00027160 78 3e 2e 0a 0a 20 20 20 5c 7b 0a 20 20 20 20 20 |x>... \{. | 00027170 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 00027180 77 69 6e 64 6f 77 3b 0a 20 20 20 20 20 3c 64 72 |window;. <dr| 00027190 61 67 5f 74 79 70 65 3e 20 20 20 20 20 74 79 70 |ag_type> typ| 000271a0 65 3b 0a 20 20 20 20 20 3c 77 69 6d 70 5f 62 6f |e;. <wimp_bo| 000271b0 78 3e 20 20 20 20 20 20 73 63 72 65 65 6e 72 65 |x> screenre| 000271c0 63 74 3b 0a 20 20 20 20 20 77 69 6d 70 5f 62 6f |ct;. wimp_bo| 000271d0 78 20 20 20 20 20 20 70 61 72 65 6e 74 3b 0a 20 |x parent;. | 000271e0 20 20 7d 0a 0a 2f 77 69 6e 64 6f 77 2f 20 69 73 | }../window/ is| 000271f0 20 6f 6e 6c 79 20 6e 65 65 64 65 64 20 66 6f 72 | only needed for| 00027200 20 64 72 61 67 20 74 79 70 65 73 20 31 2d 34 2e | drag types 1-4.| 00027210 20 2f 70 61 72 65 6e 74 2f 20 69 73 20 6f 6e 6c | /parent/ is onl| 00027220 79 20 6e 65 65 64 65 64 20 66 6f 72 20 74 79 70 |y needed for typ| 00027230 65 73 20 35 2d 31 31 2e 20 4e 6f 74 65 20 74 68 |es 5-11. Note th| 00027240 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 |at there is no s| 00027250 75 70 70 6f 72 74 20 69 6e 20 44 65 73 6b 4c 69 |upport in DeskLi| 00027260 62 20 66 6f 72 20 74 79 70 65 73 20 38 2d 31 31 |b for types 8-11| 00027270 2c 20 62 65 63 61 75 73 65 20 74 68 69 73 20 73 |, because this s| 00027280 74 72 75 63 74 75 72 65 20 64 6f 65 73 20 6e 6f |tructure does no| 00027290 74 20 61 6c 6c 6f 63 61 74 65 20 73 70 61 63 65 |t allocate space| 000272a0 20 66 6f 72 20 74 68 65 20 65 78 74 72 61 20 70 | for the extra p| 000272b0 61 72 61 6d 65 74 65 72 73 20 6e 65 65 64 65 64 |arameters needed| 000272c0 20 62 79 20 74 68 6f 73 65 20 74 79 70 65 73 20 | by those types | 000272d0 28 74 68 65 79 20 61 72 65 20 63 6f 6d 70 6c 69 |(they are compli| 000272e0 63 61 74 65 64 20 74 6f 20 75 73 65 20 61 6e 79 |cated to use any| 000272f0 77 61 79 21 29 2e 00 00 44 41 54 41 c1 00 00 00 |way!)...DATA....| 00027300 64 72 61 67 5f 63 75 72 72 65 6e 74 63 6f 6d 70 |drag_currentcomp| 00027310 6c 65 74 65 0a 54 68 69 73 20 76 61 72 69 61 62 |lete.This variab| 00027320 6c 65 20 69 73 20 64 65 63 6c 61 72 65 64 20 69 |le is declared i| 00027330 6e 20 3c 44 65 73 6b 4c 69 62 3a 44 72 61 67 2e |n <DeskLib:Drag.| 00027340 68 3d 3e 44 72 61 67 3e 20 61 6e 64 20 63 6f 6e |h=>Drag> and con| 00027350 74 61 69 6e 73 20 74 68 65 20 66 75 6e 63 74 69 |tains the functi| 00027360 6f 6e 20 6c 61 73 74 20 70 61 73 73 65 64 20 74 |on last passed t| 00027370 6f 20 3c 44 72 61 67 5f 53 65 74 48 61 6e 64 6c |o <Drag_SetHandl| 00027380 65 72 73 3e 20 61 73 20 74 68 65 20 66 75 6e 63 |ers> as the func| 00027390 74 69 6f 6e 20 74 6f 20 62 65 20 63 61 6c 6c 65 |tion to be calle| 000273a0 64 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 |d at the end of | 000273b0 74 68 65 20 64 72 61 67 2e 00 00 00 44 41 54 41 |the drag....DATA| 000273c0 a2 00 00 00 64 72 61 67 5f 63 75 72 72 65 6e 74 |....drag_current| 000273d0 75 70 64 61 74 65 0a 54 68 69 73 20 76 61 72 69 |update.This vari| 000273e0 61 62 6c 65 20 69 73 20 64 65 63 6c 61 72 65 64 |able is declared| 000273f0 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 44 72 61 | in <DeskLib:Dra| 00027400 67 2e 68 3d 3e 44 72 61 67 3e 20 61 6e 64 20 63 |g.h=>Drag> and c| 00027410 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 75 6e 63 |ontains the func| 00027420 74 69 6f 6e 20 6c 61 73 74 20 70 61 73 73 65 64 |tion last passed| 00027430 20 74 6f 20 3c 44 72 61 67 5f 53 65 74 48 61 6e | to <Drag_SetHan| 00027440 64 6c 65 72 73 3e 20 61 73 20 74 68 65 20 75 70 |dlers> as the up| 00027450 64 61 74 65 20 66 75 6e 63 74 69 6f 6e 2e 00 00 |date function...| 00027460 44 41 54 41 46 01 00 00 64 72 61 67 5f 68 61 6e |DATAF...drag_han| 00027470 64 6c 65 72 0a 54 68 69 73 20 74 79 70 65 20 69 |dler.This type i| 00027480 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 00027490 73 6b 4c 69 62 3a 44 72 61 67 2e 68 3d 3e 44 72 |skLib:Drag.h=>Dr| 000274a0 61 67 3e 2e 20 49 74 20 69 73 20 75 73 65 64 20 |ag>. It is used | 000274b0 74 6f 20 64 65 66 69 6e 65 20 66 75 6e 63 74 69 |to define functi| 000274c0 6f 6e 73 20 63 61 6c 6c 65 64 20 62 79 20 74 68 |ons called by th| 000274d0 65 20 44 72 61 67 20 6d 6f 64 75 6c 65 20 64 75 |e Drag module du| 000274e0 72 69 6e 67 20 61 6e 64 20 61 74 20 74 68 65 20 |ring and at the | 000274f0 65 6e 64 20 6f 66 20 61 20 64 72 61 67 2e 20 46 |end of a drag. F| 00027500 75 6e 63 74 69 6f 6e 73 20 73 68 6f 75 6c 64 20 |unctions should | 00027510 62 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a |be of the form:.| 00027520 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 |{wrap off}.{fCod| 00027530 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 76 |e;align centre}v| 00027540 6f 69 64 20 6d 79 66 75 6e 63 20 28 76 6f 69 64 |oid myfunc (void| 00027550 20 2a 72 65 66 29 3b 7b 66 3b 61 6c 69 67 6e 3b | *ref);{f;align;| 00027560 77 72 61 70 7d 0a 0a 77 68 65 72 65 20 2f 72 65 |wrap}..where /re| 00027570 66 2f 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 |f/ is the value | 00027580 70 61 73 73 65 64 20 77 68 65 6e 20 73 65 74 74 |passed when sett| 00027590 69 6e 67 20 74 68 65 20 64 72 61 67 20 68 61 6e |ing the drag han| 000275a0 64 6c 65 72 73 2e 00 00 44 41 54 41 af 01 00 00 |dlers...DATA....| 000275b0 44 72 61 67 5f 49 6e 69 74 69 61 6c 69 73 65 0a |Drag_Initialise.| 000275c0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 44 72 61 |Syntax:.void Dra| 000275d0 67 5f 49 6e 69 74 69 61 6c 69 73 65 20 28 3c 42 |g_Initialise (<B| 000275e0 4f 4f 4c 3e 20 75 73 65 6e 75 6c 6c 29 3b 0a 48 |OOL> usenull);.H| 000275f0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00027600 44 72 61 67 2e 68 3d 3e 44 72 61 67 3e 0a 0a 54 |Drag.h=>Drag>..T| 00027610 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 |his function mus| 00027620 74 20 62 65 20 63 61 6c 6c 65 64 20 74 6f 20 69 |t be called to i| 00027630 6e 69 74 69 61 6c 69 73 65 20 74 68 65 20 64 72 |nitialise the dr| 00027640 61 67 20 73 79 73 74 65 6d 20 66 6f 72 20 75 73 |ag system for us| 00027650 65 20 77 69 74 68 20 74 68 65 20 3c 45 76 65 6e |e with the <Even| 00027660 74 3e 20 6d 6f 64 75 6c 65 2e 20 2f 75 73 65 6e |t> module. /usen| 00027670 75 6c 6c 2f 20 73 68 6f 75 6c 64 20 62 65 20 3c |ull/ should be <| 00027680 54 52 55 45 3e 20 69 66 20 79 6f 75 20 77 61 6e |TRUE> if you wan| 00027690 74 20 74 68 65 20 44 72 61 67 20 6d 6f 64 75 6c |t the Drag modul| 000276a0 65 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 |e to be able to | 000276b0 64 6f 20 74 68 69 6e 67 73 20 6f 6e 20 4e 75 6c |do things on Nul| 000276c0 6c 20 65 76 65 6e 74 73 2e 20 59 6f 75 20 77 69 |l events. You wi| 000276d0 6c 6c 20 6f 6e 6c 79 20 75 73 75 61 6c 6c 79 20 |ll only usually | 000276e0 6e 65 65 64 20 74 68 69 73 20 69 66 20 79 6f 75 |need this if you| 000276f0 20 61 72 65 20 64 6f 69 6e 67 20 61 6e 79 20 64 | are doing any d| 00027700 72 61 67 67 69 6e 67 20 6f 66 20 75 73 65 72 2d |ragging of user-| 00027710 64 72 61 77 6e 20 6f 62 6a 65 63 74 73 2e 20 59 |drawn objects. Y| 00027720 6f 75 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20 69 |ou do not need i| 00027730 74 20 66 6f 72 20 64 72 61 67 67 69 6e 67 20 73 |t for dragging s| 00027740 61 76 65 20 69 63 6f 6e 73 20 61 6e 64 20 74 68 |ave icons and th| 00027750 65 20 6c 69 6b 65 2e 00 44 41 54 41 55 02 00 00 |e like..DATAU...| 00027760 44 72 61 67 5f 53 65 74 48 61 6e 64 6c 65 72 73 |Drag_SetHandlers| 00027770 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 44 72 |.Syntax:.void Dr| 00027780 61 67 5f 53 65 74 48 61 6e 64 6c 65 72 73 20 28 |ag_SetHandlers (| 00027790 3c 64 72 61 67 5f 68 61 6e 64 6c 65 72 3e 20 75 |<drag_handler> u| 000277a0 70 72 6f 63 2c 20 64 72 61 67 5f 68 61 6e 64 6c |proc, drag_handl| 000277b0 65 72 20 63 70 72 6f 63 2c 20 76 6f 69 64 20 2a |er cproc, void *| 000277c0 72 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ref);.Header:.<D| 000277d0 65 73 6b 4c 69 62 3a 44 72 61 67 2e 68 3d 3e 44 |eskLib:Drag.h=>D| 000277e0 72 61 67 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |rag>..This funct| 000277f0 69 6f 6e 20 73 65 74 73 20 74 68 65 20 66 75 6e |ion sets the fun| 00027800 63 74 69 6f 6e 73 20 77 68 69 63 68 20 77 69 6c |ctions which wil| 00027810 6c 20 62 65 20 63 61 6c 6c 65 64 20 64 75 72 69 |l be called duri| 00027820 6e 67 20 61 6e 64 20 61 66 74 65 72 20 74 68 65 |ng and after the| 00027830 20 64 72 61 67 20 65 76 65 6e 74 2e 20 59 6f 75 | drag event. You| 00027840 20 73 68 6f 75 6c 64 20 63 61 6c 6c 20 74 68 69 | should call thi| 00027850 73 20 61 66 74 65 72 20 73 74 61 72 74 69 6e 67 |s after starting| 00027860 20 74 68 65 20 61 63 74 75 61 6c 20 64 72 61 67 | the actual drag| 00027870 2e 20 4e 6f 77 2c 20 65 76 65 72 79 20 6e 75 6c |. Now, every nul| 00027880 6c 20 65 76 65 6e 74 2c 20 7b 2f 7d 75 70 72 6f |l event, {/}upro| 00027890 63 7b 2f 7d 28 29 20 77 69 6c 6c 20 62 65 20 63 |c{/}() will be c| 000278a0 61 6c 6c 65 64 2e 20 57 68 65 6e 20 74 68 65 20 |alled. When the | 000278b0 64 72 61 67 20 74 65 72 6d 69 6e 61 74 65 73 2c |drag terminates,| 000278c0 20 7b 2f 7d 63 70 72 6f 63 7b 2f 7d 28 29 20 77 | {/}cproc{/}() w| 000278d0 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 2e 20 2f |ill be called. /| 000278e0 72 65 66 2f 20 77 69 6c 6c 20 62 65 20 70 61 73 |ref/ will be pas| 000278f0 73 65 64 20 64 69 72 65 63 74 6c 79 20 74 6f 20 |sed directly to | 00027900 62 6f 74 68 20 66 75 6e 63 74 69 6f 6e 73 2e 20 |both functions. | 00027910 45 69 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 |Either function | 00027920 6d 61 79 20 62 65 20 3c 4e 55 4c 4c 3e 20 69 6e |may be <NULL> in| 00027930 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 77 | which case it w| 00027940 69 6c 6c 20 6e 6f 74 20 62 65 20 75 73 65 64 2c |ill not be used,| 00027950 20 61 6e 64 20 2f 75 70 72 6f 63 2f 20 77 69 6c | and /uproc/ wil| 00027960 6c 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 |l only be used i| 00027970 66 20 2f 75 73 65 6e 75 6c 6c 2f 20 77 61 73 20 |f /usenull/ was | 00027980 73 65 74 20 74 6f 20 3c 54 52 55 45 3e 20 77 68 |set to <TRUE> wh| 00027990 65 6e 20 63 61 6c 6c 69 6e 67 20 3c 44 72 61 67 |en calling <Drag| 000279a0 5f 49 6e 69 74 69 61 6c 69 73 65 3e 2e 00 00 00 |_Initialise>....| 000279b0 44 41 54 41 61 03 00 00 64 72 61 67 5f 74 79 70 |DATAa...drag_typ| 000279c0 65 0a 54 68 69 73 20 65 6e 75 6d 65 72 61 74 65 |e.This enumerate| 000279d0 64 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |d type is define| 000279e0 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 |d in <DeskLib:Wi| 000279f0 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 |mp.h=>Wimp>. It | 00027a00 69 73 20 75 73 65 64 20 74 6f 20 64 65 66 69 6e |is used to defin| 00027a10 65 20 74 68 65 20 64 72 61 67 20 74 79 70 65 20 |e the drag type | 00027a20 66 6f 72 20 3c 57 69 6d 70 5f 44 72 61 67 42 6f |for <Wimp_DragBo| 00027a30 78 3e 20 28 6e 6f 20 73 75 72 70 72 69 73 65 20 |x> (no surprise | 00027a40 74 68 65 72 65 21 29 2e 0a 0a 20 5c 7b 0a 20 20 |there!)... \{. | 00027a50 20 64 72 61 67 5f 4d 4f 56 45 57 49 4e 44 4f 57 | drag_MOVEWINDOW| 00027a60 20 3d 20 31 2c 09 2f 2a 20 44 72 61 67 20 77 69 | = 1,./* Drag wi| 00027a70 6e 64 6f 77 20 70 6f 73 20 2a 2f 0a 20 20 20 64 |ndow pos */. d| 00027a80 72 61 67 5f 52 45 53 49 5a 45 57 49 4e 44 4f 57 |rag_RESIZEWINDOW| 00027a90 2c 09 2f 2a 20 44 72 61 67 20 77 69 6e 64 6f 77 |,./* Drag window| 00027aa0 20 73 69 7a 65 20 2a 2f 0a 20 20 20 64 72 61 67 | size */. drag| 00027ab0 5f 53 43 52 4f 4c 4c 58 2c 09 2f 2a 20 44 72 61 |_SCROLLX,./* Dra| 00027ac0 67 20 48 20 73 63 72 6f 6c 6c 20 2a 2f 0a 20 20 |g H scroll */. | 00027ad0 20 64 72 61 67 5f 53 43 52 4f 4c 4c 59 2c 09 2f | drag_SCROLLY,./| 00027ae0 2a 20 44 72 61 67 20 56 20 73 63 72 6f 6c 6c 20 |* Drag V scroll | 00027af0 2a 2f 0a 20 20 20 64 72 61 67 5f 46 49 58 45 44 |*/. drag_FIXED| 00027b00 42 4f 58 2c 09 2f 2a 20 44 72 61 67 20 66 69 78 |BOX,./* Drag fix| 00027b10 65 64 20 73 69 7a 65 20 62 6f 78 20 2a 2f 0a 20 |ed size box */. | 00027b20 20 20 64 72 61 67 5f 52 55 42 42 45 52 42 4f 58 | drag_RUBBERBOX| 00027b30 2c 09 2f 2a 20 44 72 61 67 20 72 75 62 62 65 72 |,./* Drag rubber| 00027b40 20 62 6f 78 20 2a 2f 0a 20 20 20 64 72 61 67 5f | box */. drag_| 00027b50 49 4e 56 49 53 49 42 4c 45 2c 09 2f 2a 20 44 72 |INVISIBLE,./* Dr| 00027b60 61 67 20 70 6f 69 6e 74 20 2a 2f 0a 20 20 20 64 |ag point */. d| 00027b70 72 61 67 5f 55 53 45 52 46 49 58 45 44 42 42 4f |rag_USERFIXEDBBO| 00027b80 58 2c 09 2f 2a 20 44 72 61 67 20 66 69 78 65 64 |X,./* Drag fixed| 00027b90 20 75 73 65 72 2d 64 72 61 77 6e 20 62 6f 78 20 | user-drawn box | 00027ba0 2a 2f 0a 20 20 20 64 72 61 67 5f 55 53 45 52 52 |*/. drag_USERR| 00027bb0 55 42 42 45 52 42 4f 58 2c 09 2f 2a 20 44 72 61 |UBBERBOX,./* Dra| 00027bc0 67 20 72 75 62 62 65 72 20 75 73 65 72 2d 64 72 |g rubber user-dr| 00027bd0 61 77 6e 20 62 6f 78 20 2a 2f 0a 20 20 20 64 72 |awn box */. dr| 00027be0 61 67 5f 55 53 45 52 46 49 58 45 44 4e 43 09 2f |ag_USERFIXEDNC./| 00027bf0 2a 20 44 72 61 67 20 66 69 78 65 64 20 75 73 65 |* Drag fixed use| 00027c00 72 2d 64 72 61 77 6e 20 62 6f 78 20 2a 2f 0a 20 |r-drawn box */. | 00027c10 20 20 64 72 61 67 5f 55 53 45 52 52 55 42 42 45 | drag_USERRUBBE| 00027c20 52 4e 43 09 2f 2a 20 44 72 61 67 20 72 75 62 62 |RNC./* Drag rubb| 00027c30 65 72 20 75 73 65 72 2d 64 72 61 77 6e 20 62 6f |er user-drawn bo| 00027c40 78 20 2a 2f 0a 20 7d 0a 0a 54 68 65 20 27 4e 43 |x */. }..The 'NC| 00027c50 27 20 74 79 70 65 73 20 61 72 65 20 6e 6f 74 20 |' types are not | 00027c60 63 61 6e 63 65 6c 6c 65 64 20 77 68 65 6e 20 62 |cancelled when b| 00027c70 75 74 74 6f 6e 73 20 61 72 65 20 72 65 6c 65 61 |uttons are relea| 00027c80 73 65 64 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e |sed. In addition| 00027c90 2c 20 61 20 74 79 70 65 20 31 32 20 69 73 20 61 |, a type 12 is a| 00027ca0 76 61 69 6c 61 62 6c 65 20 77 68 69 63 68 20 69 |vailable which i| 00027cb0 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 69 6e |s not defined in| 00027cc0 20 74 68 69 73 20 74 79 70 65 2e 20 49 74 20 64 | this type. It d| 00027cd0 72 61 67 73 20 76 65 72 74 69 63 61 6c 20 61 6e |rags vertical an| 00027ce0 64 20 68 6f 72 69 7a 6f 6e 74 61 6c 20 73 63 72 |d horizontal scr| 00027cf0 6f 6c 6c 20 62 61 72 73 20 28 62 75 74 20 6f 6e |oll bars (but on| 00027d00 6c 79 20 69 6e 20 52 49 53 43 20 4f 53 20 33 29 |ly in RISC OS 3)| 00027d10 2e 00 00 00 44 41 54 41 b5 00 00 00 64 72 61 67 |....DATA....drag| 00027d20 5f 63 75 72 72 65 6e 74 75 73 65 72 64 61 74 61 |_currentuserdata| 00027d30 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 |.This variable i| 00027d40 73 20 64 65 63 6c 61 72 65 64 20 69 6e 20 3c 44 |s declared in <D| 00027d50 65 73 6b 4c 69 62 3a 44 72 61 67 2e 68 3d 3e 44 |eskLib:Drag.h=>D| 00027d60 72 61 67 3e 20 61 6e 64 20 63 6f 6e 74 61 69 6e |rag> and contain| 00027d70 73 20 74 68 65 20 7b 2f 7d 76 6f 69 64 20 2a 7b |s the {/}void *{| 00027d80 2f 7d 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 |/} passed to the| 00027d90 20 63 75 72 72 65 6e 74 20 68 61 6e 64 6c 65 72 | current handler| 00027da0 20 66 75 6e 63 74 69 6f 6e 73 2c 20 61 73 20 73 | functions, as s| 00027db0 65 74 20 62 79 20 3c 44 72 61 67 5f 53 65 74 48 |et by <Drag_SetH| 00027dc0 61 6e 64 6c 65 72 73 3e 2e 00 00 00 44 41 54 41 |andlers>....DATA| 00027dd0 06 01 00 00 44 72 61 67 41 53 70 72 2e 68 0a 56 |....DragASpr.h.V| 00027de0 65 72 73 69 6f 6e 3a 20 31 2e 30 31 20 28 33 30 |ersion: 1.01 (30| 00027df0 20 41 70 72 20 31 39 39 32 29 0a 23 6c 69 6e 65 | Apr 1992).#line| 00027e00 20 0a 54 68 65 20 5c 3c 44 72 61 67 41 53 70 72 | .The \<DragASpr| 00027e10 2e 68 3e 20 68 65 61 64 65 72 20 64 65 66 69 6e |.h> header defin| 00027e20 65 73 20 74 68 72 65 65 20 66 75 6e 63 74 69 6f |es three functio| 00027e30 6e 73 20 77 68 69 63 68 20 61 63 63 65 73 73 20 |ns which access | 00027e40 74 68 65 20 3c 44 72 61 67 41 53 70 72 69 74 65 |the <DragASprite| 00027e50 3d 3e 53 57 49 3a 44 72 61 67 41 53 70 72 69 74 |=>SWI:DragASprit| 00027e60 65 5f 3e 20 6d 6f 64 75 6c 65 20 69 6e 63 6c 75 |e_> module inclu| 00027e70 64 65 64 20 69 6e 20 74 68 65 20 52 49 53 43 20 |ded in the RISC | 00027e80 4f 53 20 33 20 52 4f 4d 2e 0a 0a 23 69 6e 64 65 |OS 3 ROM...#inde| 00027e90 6e 74 20 35 0a 3c 44 72 61 67 41 53 70 72 69 74 |nt 5.<DragASprit| 00027ea0 65 5f 53 74 61 72 74 3e 0a 3c 44 72 61 67 41 53 |e_Start>.<DragAS| 00027eb0 70 72 69 74 65 5f 53 74 6f 70 3e 0a 3c 44 72 61 |prite_Stop>.<Dra| 00027ec0 67 41 53 70 72 69 74 65 5f 44 72 61 67 49 63 6f |gASprite_DragIco| 00027ed0 6e 3e 00 00 44 49 52 24 70 00 00 00 70 00 00 00 |n>..DIR$p...p...| 00027ee0 44 7f 02 00 46 ff ff ff e9 7d f3 24 9a 03 00 00 |D...F....}.$....| 00027ef0 13 00 00 00 00 00 00 00 53 74 61 72 74 00 00 00 |........Start...| 00027f00 e0 82 02 00 46 ff ff ff a8 8d f3 24 f4 00 00 00 |....F......$....| 00027f10 13 00 00 00 00 00 00 00 53 74 6f 70 00 00 00 00 |........Stop....| 00027f20 d4 83 02 00 46 ff ff ff a1 a3 f3 24 f8 01 00 00 |....F......$....| 00027f30 13 00 00 00 00 00 00 00 44 72 61 67 49 63 6f 6e |........DragIcon| 00027f40 00 00 00 00 44 41 54 41 9a 03 00 00 44 72 61 67 |....DATA....Drag| 00027f50 41 53 70 72 69 74 65 5f 53 74 61 72 74 0a 53 79 |ASprite_Start.Sy| 00027f60 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00027f70 20 2a 44 72 61 67 41 53 70 72 69 74 65 5f 53 74 | *DragASprite_St| 00027f80 61 72 74 20 28 69 6e 74 20 3c 66 6c 61 67 73 3d |art (int <flags=| 00027f90 3e 64 73 70 72 5f 66 6c 61 67 73 5f 3e 2c 20 76 |>dspr_flags_>, v| 00027fa0 6f 69 64 20 2a 73 70 72 69 74 65 61 72 65 61 2c |oid *spritearea,| 00027fb0 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 77 69 | char *name, <wi| 00027fc0 6d 70 5f 72 65 63 74 3e 20 2a 62 62 6f 78 2c 20 |mp_rect> *bbox, | 00027fd0 77 69 6d 70 5f 72 65 63 74 20 2a 70 61 72 65 6e |wimp_rect *paren| 00027fe0 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |t);.Header:.<Des| 00027ff0 6b 4c 69 62 3a 44 72 61 67 41 53 70 72 2e 68 3d |kLib:DragASpr.h=| 00028000 3e 44 72 61 67 41 53 70 72 3e 0a 0a 52 65 74 75 |>DragASpr>..Retu| 00028010 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00028020 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00028030 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00028040 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 |function calls t| 00028050 68 65 20 44 72 61 67 41 53 70 72 69 74 65 5f 53 |he DragASprite_S| 00028060 74 61 72 74 20 53 57 49 20 77 69 74 68 20 74 68 |tart SWI with th| 00028070 65 20 61 72 67 75 6d 65 6e 74 73 20 70 6c 61 63 |e arguments plac| 00028080 65 64 20 69 6e 20 74 68 65 20 61 70 70 72 6f 70 |ed in the approp| 00028090 72 69 61 74 65 20 72 65 67 69 73 74 65 72 73 2e |riate registers.| 000280a0 20 54 68 69 73 20 53 57 49 20 63 61 75 73 65 73 | This SWI causes| 000280b0 20 61 20 73 70 72 69 74 65 20 74 6f 20 62 65 20 | a sprite to be | 000280c0 64 72 61 67 67 65 64 20 62 79 20 74 68 65 20 6d |dragged by the m| 000280d0 6f 75 73 65 2e 20 54 68 65 20 61 72 67 75 6d 65 |ouse. The argume| 000280e0 6e 74 73 20 61 72 65 20 61 73 20 66 6f 6c 6c 6f |nts are as follo| 000280f0 77 73 3a 0a 7b 74 61 62 7d 0a 2f 73 70 72 69 74 |ws:.{tab}./sprit| 00028100 65 61 72 65 61 2f 09 69 73 20 61 20 70 6f 69 6e |earea/.is a poin| 00028110 74 65 72 20 74 6f 20 74 68 65 20 3c 73 70 72 69 |ter to the <spri| 00028120 74 65 20 61 72 65 61 3d 3e 53 57 49 3a 6f 73 5f |te area=>SWI:os_| 00028130 73 70 72 69 74 65 6f 70 2e 62 3e 20 68 6f 6c 64 |spriteop.b> hold| 00028140 69 6e 67 20 74 68 65 20 73 70 72 69 74 65 20 79 |ing the sprite y| 00028150 6f 75 20 77 61 6e 74 20 74 6f 20 64 72 61 67 2c |ou want to drag,| 00028160 20 6f 72 20 30 20 66 6f 72 20 74 68 65 20 73 79 | or 0 for the sy| 00028170 73 74 65 6d 20 73 70 72 69 74 65 20 61 72 65 61 |stem sprite area| 00028180 2c 20 6f 72 20 31 20 66 6f 72 20 74 68 65 20 77 |, or 1 for the w| 00028190 69 6d 70 20 73 70 72 69 74 65 20 70 6f 6f 6c 2e |imp sprite pool.| 000281a0 0a 2f 6e 61 6d 65 2f 09 69 73 20 61 20 70 6f 69 |./name/.is a poi| 000281b0 6e 74 65 72 20 74 6f 20 74 68 65 20 73 70 72 69 |nter to the spri| 000281c0 74 65 20 6e 61 6d 65 2e 0a 2f 62 62 6f 78 2f 09 |te name../bbox/.| 000281d0 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 |is a pointer to | 000281e0 74 68 65 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 |the bounding box| 000281f0 20 6f 66 20 74 68 65 20 73 70 72 69 74 65 2c 20 | of the sprite, | 00028200 77 69 74 68 20 2f 70 61 72 65 6e 74 2f 20 61 73 |with /parent/ as| 00028210 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 | a pointer to th| 00028220 65 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 20 66 |e bounding box f| 00028230 6f 72 20 74 68 65 20 77 68 6f 6c 65 20 64 72 61 |or the whole dra| 00028240 67 20 28 69 65 20 74 68 65 20 6d 6f 75 73 65 20 |g (ie the mouse | 00028250 70 6f 69 6e 74 65 72 20 6d 61 79 20 6e 6f 74 20 |pointer may not | 00028260 6d 6f 76 65 20 6f 75 74 73 69 64 65 20 74 68 69 |move outside thi| 00028270 73 20 62 6f 78 29 2e 20 2f 70 61 72 65 6e 74 2f |s box). /parent/| 00028280 20 69 73 20 6f 6e 6c 79 20 75 73 65 64 20 69 66 | is only used if| 00028290 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 | the appropriate| 000282a0 20 66 6c 61 67 20 69 73 20 73 65 74 2e 0a 0a 54 | flag is set...T| 000282b0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 6c |his function onl| 000282c0 79 20 77 6f 72 6b 73 20 6f 6e 20 52 49 53 43 20 |y works on RISC | 000282d0 4f 53 20 33 20 6f 72 20 6c 61 74 65 72 2e 00 00 |OS 3 or later...| 000282e0 44 41 54 41 f4 00 00 00 44 72 61 67 41 53 70 72 |DATA....DragASpr| 000282f0 69 74 65 5f 53 74 6f 70 0a 53 79 6e 74 61 78 3a |ite_Stop.Syntax:| 00028300 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 44 72 61 |.<os_error> *Dra| 00028310 67 41 53 70 72 69 74 65 5f 53 74 6f 70 20 28 76 |gASprite_Stop (v| 00028320 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |oid);.Header:.<D| 00028330 65 73 6b 4c 69 62 3a 44 72 61 67 41 53 70 72 2e |eskLib:DragASpr.| 00028340 68 3d 3e 44 72 61 67 41 53 70 72 3e 0a 0a 52 65 |h=>DragASpr>..Re| 00028350 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 00028360 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 00028370 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 00028380 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 72 6d 69 |s function termi| 00028390 6e 61 74 65 73 20 61 6e 79 20 73 6f 6c 69 64 20 |nates any solid | 000283a0 64 72 61 67 20 62 65 67 75 6e 20 77 69 74 68 20 |drag begun with | 000283b0 3c 44 72 61 67 41 53 70 72 69 74 65 5f 53 74 61 |<DragASprite_Sta| 000283c0 72 74 3e 2e 20 52 49 53 43 20 4f 53 20 33 20 6f |rt>. RISC OS 3 o| 000283d0 6e 6c 79 2e 44 41 54 41 f8 01 00 00 44 72 61 67 |nly.DATA....Drag| 000283e0 41 53 70 72 69 74 65 5f 44 72 61 67 49 63 6f 6e |ASprite_DragIcon| 000283f0 0a 53 79 6e 74 61 78 3a 09 6f 73 5f 65 72 72 6f |.Syntax:.os_erro| 00028400 72 20 2a 44 72 61 67 41 53 70 72 69 74 65 5f 44 |r *DragASprite_D| 00028410 72 61 67 49 63 6f 6e 20 28 3c 77 69 6e 64 6f 77 |ragIcon (<window| 00028420 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 |_handle> hnd, <i| 00028430 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e |con_handle> icon| 00028440 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00028450 4c 69 62 3a 44 72 61 67 41 53 70 72 2e 68 3d 3e |Lib:DragASpr.h=>| 00028460 44 72 61 67 41 53 70 72 3e 0a 0a 52 65 74 75 72 |DragASpr>..Retur| 00028470 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00028480 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00028490 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000284a0 75 6e 63 74 69 6f 6e 20 69 73 20 74 68 65 20 65 |unction is the e| 000284b0 61 73 79 20 77 61 79 20 74 6f 20 75 73 65 20 44 |asy way to use D| 000284c0 72 61 67 41 53 70 72 69 74 65 2e 20 4a 75 73 74 |ragASprite. Just| 000284d0 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 61 20 | call it with a | 000284e0 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 61 6e |window handle an| 000284f0 64 20 69 63 6f 6e 20 6e 75 6d 62 65 72 2c 20 61 |d icon number, a| 00028500 6e 64 20 69 74 20 77 69 6c 6c 20 63 61 6c 6c 20 |nd it will call | 00028510 3c 44 72 61 67 41 53 70 72 69 74 65 5f 53 74 61 |<DragASprite_Sta| 00028520 72 74 3e 20 66 6f 72 20 79 6f 75 20 77 69 74 68 |rt> for you with| 00028530 20 61 6c 6c 20 74 68 65 20 63 6f 72 72 65 63 74 | all the correct| 00028540 20 70 61 72 61 6d 65 74 65 72 73 2e 20 49 66 20 | parameters. If | 00028550 69 74 20 63 61 6e 6e 6f 74 20 64 6f 20 74 68 69 |it cannot do thi| 00028560 73 2c 20 69 74 20 77 69 6c 6c 20 75 73 65 20 61 |s, it will use a| 00028570 20 6e 6f 72 6d 61 6c 20 64 61 73 68 65 64 20 3c | normal dashed <| 00028580 57 69 6d 70 5f 44 72 61 67 42 6f 78 3d 3e 53 57 |Wimp_DragBox=>SW| 00028590 49 3a 57 69 6d 70 5f 44 72 61 67 42 6f 78 3e 20 |I:Wimp_DragBox> | 000285a0 69 6e 73 74 65 61 64 2c 20 73 6f 20 69 74 20 77 |instead, so it w| 000285b0 69 6c 6c 20 77 6f 72 6b 20 6f 6e 20 52 49 53 43 |ill work on RISC| 000285c0 20 4f 53 20 32 20 61 6e 64 20 33 2e 44 41 54 41 | OS 2 and 3.DATA| 000285d0 4f 00 00 00 64 72 61 77 2e 68 0a 54 68 65 20 5c |O...draw.h.The \| 000285e0 3c 64 72 61 77 2e 68 3e 20 68 65 61 64 65 72 20 |<draw.h> header | 000285f0 64 65 63 6c 61 72 65 73 0a 66 75 6e 63 74 69 6f |declares.functio| 00028600 6e 73 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 |ns for handling | 00028610 64 72 61 77 20 66 69 6c 65 73 2e 00 44 49 52 24 |draw files..DIR$| 00028620 a0 09 00 00 a0 09 00 00 bc 8f 02 00 46 ff ff ff |............F...| 00028630 f9 12 25 23 4b 01 00 00 13 00 00 00 00 00 00 00 |..%#K...........| 00028640 61 6c 6c 6f 63 61 74 65 00 00 00 00 08 91 02 00 |allocate........| 00028650 46 ff ff ff 16 5c 24 23 f4 01 00 00 13 00 00 00 |F....\$#........| 00028660 00 00 00 00 61 70 70 65 6e 64 5f 64 69 61 67 00 |....append_diag.| 00028670 fc 92 02 00 46 ff ff ff 45 47 27 23 93 00 00 00 |....F...EG'#....| 00028680 13 00 00 00 00 00 00 00 62 62 6f 78 74 79 70 00 |........bboxtyp.| 00028690 90 93 02 00 46 ff ff ff 27 c2 24 23 9d 00 00 00 |....F...'.$#....| 000286a0 13 00 00 00 00 00 00 00 62 6f 78 00 30 94 02 00 |........box.0...| 000286b0 46 ff ff ff 84 63 27 23 d0 00 00 00 13 00 00 00 |F....c'#........| 000286c0 00 00 00 00 63 61 70 74 79 70 00 00 00 95 02 00 |....captyp......| 000286d0 46 ff ff ff 53 3e 27 23 8e 00 00 00 13 00 00 00 |F...S>'#........| 000286e0 00 00 00 00 63 6f 6c 74 79 70 00 00 90 95 02 00 |....coltyp......| 000286f0 46 ff ff ff 27 91 24 23 5b 01 00 00 13 00 00 00 |F...'.$#[.......| 00028700 00 00 00 00 63 6f 6e 76 65 72 74 42 6f 78 00 00 |....convertBox..| 00028710 ec 96 02 00 46 ff ff ff 4a 50 26 23 a0 01 00 00 |....F...JP&#....| 00028720 13 00 00 00 00 00 00 00 63 72 65 61 74 65 5f 64 |........create_d| 00028730 69 61 67 00 8c 98 02 00 46 ff ff ff 51 a5 26 23 |iag.....F...Q.&#| 00028740 e6 01 00 00 13 00 00 00 00 00 00 00 63 72 65 61 |............crea| 00028750 74 65 4f 62 6a 65 63 74 00 00 00 00 74 9a 02 00 |teObject....t...| 00028760 46 ff ff ff 2c bc 28 23 e2 00 00 00 13 00 00 00 |F...,.(#........| 00028770 00 00 00 00 64 61 73 68 73 74 72 00 58 9b 02 00 |....dashstr.X...| 00028780 46 ff ff ff a5 b5 28 23 d3 00 00 00 13 00 00 00 |F.....(#........| 00028790 00 00 00 00 64 61 73 68 73 74 72 68 64 72 00 00 |....dashstrhdr..| 000287a0 2c 9c 02 00 46 ff ff ff 95 7b 27 23 b1 00 00 00 |,...F....{'#....| 000287b0 13 00 00 00 00 00 00 00 64 61 73 68 74 79 70 00 |........dashtyp.| 000287c0 e0 9c 02 00 46 ff ff ff 7f ae 26 23 5c 01 00 00 |....F.....&#\...| 000287d0 13 00 00 00 00 00 00 00 64 65 6c 65 74 65 4f 62 |........deleteOb| 000287e0 6a 65 63 74 73 00 00 00 3c 9e 02 00 46 ff ff ff |jects...<...F...| 000287f0 b9 b9 24 23 31 01 00 00 13 00 00 00 00 00 00 00 |..$#1...........| 00028800 64 69 61 67 00 00 00 00 70 9f 02 00 46 ff ff ff |diag....p...F...| 00028810 ce 60 26 23 1c 02 00 00 13 00 00 00 00 00 00 00 |.`&#............| 00028820 64 6f 4f 62 6a 65 63 74 73 00 00 00 8c a1 02 00 |doObjects.......| 00028830 46 ff ff ff 1d 3c 24 23 db 00 00 00 13 00 00 00 |F....<$#........| 00028840 00 00 00 00 64 72 61 77 54 6f 53 63 72 65 65 6e |....drawToScreen| 00028850 00 00 00 00 68 a2 02 00 46 ff ff ff cd fc 24 23 |....h...F.....$#| 00028860 18 02 00 00 13 00 00 00 00 00 00 00 65 72 72 6f |............erro| 00028870 72 00 00 00 80 a4 02 00 46 ff ff ff 70 24 25 23 |r.......F...p$%#| 00028880 8a 01 00 00 13 00 00 00 00 00 00 00 65 78 74 65 |............exte| 00028890 6e 64 00 00 0c a6 02 00 46 ff ff ff 98 b6 26 23 |nd......F.....&#| 000288a0 87 01 00 00 13 00 00 00 00 00 00 00 65 78 74 72 |............extr| 000288b0 61 63 74 4f 62 6a 65 63 74 00 00 00 94 a7 02 00 |actObject.......| 000288c0 46 ff ff ff 7b dd 27 23 37 01 00 00 13 00 00 00 |F...{.'#7.......| 000288d0 00 00 00 00 66 69 6c 65 68 65 61 64 65 72 00 00 |....fileheader..| 000288e0 cc a8 02 00 46 ff ff ff 3a d4 26 23 de 00 00 00 |....F...:.&#....| 000288f0 13 00 00 00 00 00 00 00 46 69 72 73 74 4f 62 6a |........FirstObj| 00028900 65 63 74 00 ac a9 02 00 46 ff ff ff e8 11 28 23 |ect.....F.....(#| 00028910 4a 01 00 00 13 00 00 00 00 00 00 00 66 6f 6e 74 |J...........font| 00028920 6c 69 73 74 73 74 72 00 f8 aa 02 00 46 ff ff ff |liststr.....F...| 00028930 99 f6 27 23 15 01 00 00 13 00 00 00 00 00 00 00 |..'#............| 00028940 66 6f 6e 74 6c 69 73 74 73 74 72 68 64 72 00 00 |fontliststrhdr..| 00028950 10 ac 02 00 46 ff ff ff 05 8f 27 23 98 00 00 00 |....F.....'#....| 00028960 13 00 00 00 00 00 00 00 66 6f 6e 74 72 65 66 00 |........fontref.| 00028970 a8 ac 02 00 46 ff ff ff 5a a2 27 23 ab 00 00 00 |....F...Z.'#....| 00028980 13 00 00 00 00 00 00 00 66 6f 6e 74 73 69 7a 65 |........fontsize| 00028990 00 00 00 00 54 ad 02 00 46 ff ff ff d2 32 25 23 |....T...F....2%#| 000289a0 2d 01 00 00 13 00 00 00 00 00 00 00 66 72 65 65 |-...........free| 000289b0 00 00 00 00 84 ae 02 00 46 ff ff ff 2d 14 29 23 |........F...-.)#| 000289c0 c3 00 00 00 13 00 00 00 00 00 00 00 67 72 6f 75 |............grou| 000289d0 70 6e 61 6d 65 74 79 70 00 00 00 00 48 af 02 00 |pnametyp....H...| 000289e0 46 ff ff ff 6f 1e 29 23 1a 01 00 00 13 00 00 00 |F...o.)#........| 000289f0 00 00 00 00 67 72 6f 75 73 74 72 00 64 b0 02 00 |....groustr.d...| 00028a00 46 ff ff ff 43 ca 28 23 68 01 00 00 13 00 00 00 |F...C.(#h.......| 00028a10 00 00 00 00 6a 6f 69 6e 74 73 70 65 63 00 00 00 |....jointspec...| 00028a20 cc b1 02 00 46 ff ff ff 55 54 27 23 c3 00 00 00 |....F...UT'#....| 00028a30 13 00 00 00 00 00 00 00 6a 6f 69 6e 74 79 70 00 |........jointyp.| 00028a40 90 b2 02 00 46 ff ff ff b0 d9 26 23 d9 00 00 00 |....F.....&#....| 00028a50 13 00 00 00 00 00 00 00 4c 61 73 74 4f 62 6a 65 |........LastObje| 00028a60 63 74 00 00 6c b3 02 00 46 ff ff ff 28 cc 26 23 |ct..l...F...(.&#| 00028a70 96 00 00 00 13 00 00 00 00 00 00 00 4e 6f 4f 62 |............NoOb| 00028a80 6a 65 63 74 00 00 00 00 04 b4 02 00 46 ff ff ff |ject........F...| 00028a90 27 c7 27 23 bd 00 00 00 13 00 00 00 00 00 00 00 |'.'#............| 00028aa0 6f 62 6a 63 6f 6f 72 64 00 00 00 00 c4 b4 02 00 |objcoord........| 00028ab0 46 ff ff ff 3a be 24 23 a2 00 00 00 13 00 00 00 |F...:.$#........| 00028ac0 00 00 00 00 6f 62 6a 65 63 74 00 00 68 b5 02 00 |....object..h...| 00028ad0 46 ff ff ff ea f0 26 23 ad 01 00 00 13 00 00 00 |F.....&#........| 00028ae0 00 00 00 00 6f 62 6a 65 63 74 54 79 70 65 00 00 |....objectType..| 00028af0 18 b7 02 00 46 ff ff ff d0 e9 27 23 19 01 00 00 |....F.....'#....| 00028b00 13 00 00 00 00 00 00 00 6f 62 6a 68 64 72 00 00 |........objhdr..| 00028b10 34 b8 02 00 46 ff ff ff 95 4a 28 23 87 01 00 00 |4...F....J(#....| 00028b20 13 00 00 00 00 00 00 00 70 61 74 68 5f 74 61 67 |........path_tag| 00028b30 74 79 70 65 00 00 00 00 bc b9 02 00 46 ff ff ff |type........F...| 00028b40 4a e9 28 23 aa 01 00 00 13 00 00 00 00 00 00 00 |J.(#............| 00028b50 70 61 74 68 73 74 72 00 68 bb 02 00 46 ff ff ff |pathstr.h...F...| 00028b60 c0 d7 28 23 8b 01 00 00 13 00 00 00 00 00 00 00 |..(#............| 00028b70 70 61 74 68 73 74 72 68 64 72 00 00 f4 bc 02 00 |pathstrhdr......| 00028b80 46 ff ff ff a6 86 27 23 2f 01 00 00 13 00 00 00 |F.....'#/.......| 00028b90 00 00 00 00 70 61 74 68 73 74 79 6c 65 00 00 00 |....pathstyle...| 00028ba0 24 be 02 00 46 ff ff ff d4 42 27 23 90 00 00 00 |$...F....B'#....| 00028bb0 13 00 00 00 00 00 00 00 70 61 74 68 77 69 64 74 |........pathwidt| 00028bc0 68 00 00 00 b4 be 02 00 46 ff ff ff 8e 83 24 23 |h.......F.....$#| 00028bd0 29 01 00 00 13 00 00 00 00 00 00 00 71 75 65 72 |)...........quer| 00028be0 79 62 6f 78 00 00 00 00 e0 bf 02 00 46 ff ff ff |ybox........F...| 00028bf0 b3 98 24 23 1d 01 00 00 13 00 00 00 00 00 00 00 |..$#............| 00028c00 72 65 62 69 6e 64 5f 64 69 61 67 00 00 c1 02 00 |rebind_diag.....| 00028c10 46 ff ff ff e2 cb 24 23 41 01 00 00 13 00 00 00 |F.....$#A.......| 00028c20 00 00 00 00 72 65 64 72 61 77 73 74 72 00 00 00 |....redrawstr...| 00028c30 44 c2 02 00 46 ff ff ff b5 b0 24 23 06 02 00 00 |D...F.....$#....| 00028c40 13 00 00 00 00 00 00 00 72 65 67 69 73 74 65 72 |........register| 00028c50 4d 65 6d 6f 72 79 46 75 6e 63 74 69 6f 6e 73 00 |MemoryFunctions.| 00028c60 4c c4 02 00 46 ff ff ff bf 6c 24 23 d0 01 00 00 |L...F....l$#....| 00028c70 13 00 00 00 00 00 00 00 72 65 6e 64 65 72 5f 64 |........render_d| 00028c80 69 61 67 00 1c c6 02 00 46 ff ff ff d9 43 24 23 |iag.....F....C$#| 00028c90 dd 00 00 00 13 00 00 00 00 00 00 00 73 63 72 65 |............scre| 00028ca0 65 6e 54 6f 44 72 61 77 00 00 00 00 fc c6 02 00 |enToDraw........| 00028cb0 46 ff ff ff 0d 8e 26 23 45 01 00 00 13 00 00 00 |F.....&#E.......| 00028cc0 00 00 00 00 73 65 74 46 6f 6e 74 54 61 62 6c 65 |....setFontTable| 00028cd0 00 00 00 00 44 c8 02 00 46 ff ff ff c0 79 24 23 |....D...F....y$#| 00028ce0 1c 01 00 00 13 00 00 00 00 00 00 00 73 68 69 66 |............shif| 00028cf0 74 5f 64 69 61 67 00 00 60 c9 02 00 46 ff ff ff |t_diag..`...F...| 00028d00 bd 38 27 23 8d 00 00 00 13 00 00 00 00 00 00 00 |.8'#............| 00028d10 73 69 7a 65 74 79 70 00 f0 c9 02 00 46 ff ff ff |sizetyp.....F...| 00028d20 36 0d 29 23 39 01 00 00 13 00 00 00 00 00 00 00 |6.)#9...........| 00028d30 73 70 72 69 73 74 72 00 2c cb 02 00 46 ff ff ff |spristr.,...F...| 00028d40 59 f9 28 23 1b 01 00 00 13 00 00 00 00 00 00 00 |Y.(#............| 00028d50 73 70 72 69 73 74 72 68 64 72 00 00 48 cc 02 00 |spristrhdr..H...| 00028d60 46 ff ff ff 5f bc 27 23 39 01 00 00 13 00 00 00 |F..._.'#9.......| 00028d70 00 00 00 00 74 61 67 74 79 70 00 00 84 cd 02 00 |....tagtyp......| 00028d80 46 ff ff ff 2e 53 29 23 41 01 00 00 13 00 00 00 |F....S)#A.......| 00028d90 00 00 00 00 74 65 78 74 61 72 65 61 65 6e 64 00 |....textareaend.| 00028da0 c8 ce 02 00 46 ff ff ff 81 3a 29 23 f8 00 00 00 |....F....:)#....| 00028db0 13 00 00 00 00 00 00 00 74 65 78 74 61 72 65 61 |........textarea| 00028dc0 68 64 72 00 c0 cf 02 00 46 ff ff ff 78 45 29 23 |hdr.....F...xE)#| 00028dd0 64 01 00 00 13 00 00 00 00 00 00 00 74 65 78 74 |d...........text| 00028de0 61 72 65 61 73 74 72 65 6e 64 00 00 24 d1 02 00 |areastrend..$...| 00028df0 46 ff ff ff 2b 31 29 23 19 01 00 00 13 00 00 00 |F...+1)#........| 00028e00 00 00 00 00 74 65 78 74 61 72 65 61 73 74 72 68 |....textareastrh| 00028e10 64 72 00 00 40 d2 02 00 46 ff ff ff b3 27 29 23 |dr..@...F....')#| 00028e20 f2 00 00 00 13 00 00 00 00 00 00 00 74 65 78 74 |............text| 00028e30 63 6f 6c 68 64 72 00 00 34 d3 02 00 46 ff ff ff |colhdr..4...F...| 00028e40 8a 38 28 23 dc 01 00 00 13 00 00 00 00 00 00 00 |.8(#............| 00028e50 74 65 78 74 73 74 72 00 10 d5 02 00 46 ff ff ff |textstr.....F...| 00028e60 9a 25 28 23 e9 01 00 00 13 00 00 00 00 00 00 00 |.%(#............| 00028e70 74 65 78 74 73 74 72 68 64 72 00 00 fc d6 02 00 |textstrhdr......| 00028e80 46 ff ff ff 16 9c 27 23 f3 00 00 00 13 00 00 00 |F.....'#........| 00028e90 00 00 00 00 74 65 78 74 73 74 79 6c 65 00 00 00 |....textstyle...| 00028ea0 f0 d7 02 00 46 ff ff ff 33 be 26 23 46 01 00 00 |....F...3.&#F...| 00028eb0 13 00 00 00 00 00 00 00 74 72 61 6e 73 6c 61 74 |........translat| 00028ec0 65 54 65 78 74 00 00 00 38 d9 02 00 46 ff ff ff |eText...8...F...| 00028ed0 70 fc 26 23 94 01 00 00 13 00 00 00 00 00 00 00 |p.&#............| 00028ee0 74 72 61 6e 73 54 61 62 6c 65 00 00 cc da 02 00 |transTable......| 00028ef0 46 ff ff ff 90 46 25 23 1d 02 00 00 13 00 00 00 |F....F%#........| 00028f00 00 00 00 00 75 6e 6b 6e 6f 77 6e 5f 6f 62 6a 65 |....unknown_obje| 00028f10 63 74 5f 68 61 6e 64 6c 65 72 00 00 ec dc 02 00 |ct_handler......| 00028f20 46 ff ff ff 0b 4d 24 23 61 01 00 00 13 00 00 00 |F....M$#a.......| 00028f30 00 00 00 00 76 65 72 69 66 79 5f 64 69 61 67 00 |....verify_diag.| 00028f40 50 de 02 00 46 ff ff ff 16 97 26 23 9e 01 00 00 |P...F.....&#....| 00028f50 13 00 00 00 00 00 00 00 76 65 72 69 66 79 4f 62 |........verifyOb| 00028f60 6a 65 63 74 00 00 00 00 f0 df 02 00 46 ff ff ff |ject........F...| 00028f70 04 70 27 23 ad 00 00 00 13 00 00 00 00 00 00 00 |.p'#............| 00028f80 77 69 6e 64 74 79 70 00 a0 e0 02 00 46 ff ff ff |windtyp.....F...| 00028f90 8a a4 24 23 d0 01 00 00 13 00 00 00 00 00 00 00 |..$#............| 00028fa0 73 65 74 5f 75 6e 6b 6e 6f 77 6e 5f 6f 62 6a 65 |set_unknown_obje| 00028fb0 63 74 5f 68 61 6e 64 6c 65 72 00 00 44 41 54 41 |ct_handler..DATA| 00028fc0 4b 01 00 00 64 72 61 77 5f 61 6c 6c 6f 63 61 74 |K...draw_allocat| 00028fd0 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |e.This type is d| 00028fe0 65 66 69 6e 65 20 69 6e 20 3c 64 72 61 77 66 64 |efine in <drawfd| 00028ff0 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 |iag.h=>drawfdiag| 00029000 3e 2e 20 49 74 20 69 73 20 61 20 66 75 6e 63 74 |>. It is a funct| 00029010 69 6f 6e 20 75 73 65 64 20 74 6f 20 61 6c 6c 6f |ion used to allo| 00029020 63 61 74 65 20 6d 65 6d 6f 72 79 20 77 69 74 68 |cate memory with| 00029030 20 70 72 6f 74 6f 74 79 70 65 20 61 73 20 66 6f | prototype as fo| 00029040 6c 6c 6f 77 73 3a 0a 7b 77 72 61 70 20 6f 66 66 |llows:.{wrap off| 00029050 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 |}.{fCode;align c| 00029060 65 6e 74 72 65 7d 69 6e 74 20 6d 79 66 75 6e 63 |entre}int myfunc| 00029070 20 28 76 6f 69 64 20 2a 2a 61 6e 63 68 6f 72 2c | (void **anchor,| 00029080 20 69 6e 74 20 6e 29 3b 7b 66 3b 61 6c 69 67 6e | int n);{f;align| 00029090 7d 0a 7b 77 72 61 70 7d 0a 54 68 69 73 20 73 68 |}.{wrap}.This sh| 000290a0 6f 75 6c 64 20 61 6c 6c 6f 63 61 74 65 20 2f 6e |ould allocate /n| 000290b0 2f 20 62 79 74 65 73 20 6f 66 20 73 74 6f 72 65 |/ bytes of store| 000290c0 20 61 6e 64 20 73 65 74 20 7b 2f 7d 2a 61 6e 63 | and set {/}*anc| 000290d0 68 6f 72 7b 2f 7d 20 74 6f 20 70 6f 69 6e 74 20 |hor{/} to point | 000290e0 74 6f 20 74 68 65 6d 2e 20 52 65 74 75 72 6e 20 |to them. Return | 000290f0 6e 6f 6e 2d 7a 65 72 6f 20 69 66 20 73 75 63 63 |non-zero if succ| 00029100 65 73 73 66 75 6c 2e 00 44 41 54 41 f4 01 00 00 |essful..DATA....| 00029110 64 72 61 77 5f 61 70 70 65 6e 64 5f 64 69 61 67 |draw_append_diag| 00029120 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 |.Syntax:.<BOOL> | 00029130 64 72 61 77 5f 61 70 70 65 6e 64 5f 64 69 61 67 |draw_append_diag| 00029140 20 28 3c 64 72 61 77 5f 64 69 61 67 3e 20 2a 64 | (<draw_diag> *d| 00029150 69 61 67 31 2c 20 64 72 61 77 5f 64 69 61 67 20 |iag1, draw_diag | 00029160 2a 64 69 61 67 32 2c 20 3c 64 72 61 77 5f 65 72 |*diag2, <draw_er| 00029170 72 6f 72 3e 20 2a 65 72 72 6f 72 29 3b 0a 48 65 |ror> *error);.He| 00029180 61 64 65 72 3a 09 3c 64 72 61 77 66 64 69 61 67 |ader:.<drawfdiag| 00029190 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 3e 0a 0a |.h=>drawfdiag>..| 000291a0 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 000291b0 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a |if successful...| 000291c0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 65 |This function me| 000291d0 72 67 65 73 20 74 77 6f 20 64 69 61 67 72 61 6d |rges two diagram| 000291e0 73 20 69 6e 74 6f 20 6f 6e 65 2e 20 42 6f 74 68 |s into one. Both| 000291f0 20 64 69 61 67 72 61 6d 73 20 73 68 6f 75 6c 64 | diagrams should| 00029200 20 68 61 76 65 20 62 65 65 6e 20 70 72 6f 63 65 | have been proce| 00029210 73 73 65 64 20 62 79 20 3c 64 72 61 77 5f 76 65 |ssed by <draw_ve| 00029220 72 69 66 79 5f 64 69 61 67 3e 2e 20 7b 2f 7d 64 |rify_diag>. {/}d| 00029230 69 61 67 31 7b 2f 7d 20 6d 75 73 74 20 62 65 20 |iag1{/} must be | 00029240 69 6e 20 61 20 6d 65 6d 6f 72 79 20 62 6c 6f 63 |in a memory bloc| 00029250 6b 20 6c 61 72 67 65 20 65 6e 6f 75 67 68 20 74 |k large enough t| 00029260 6f 20 63 6f 6e 74 69 6e 20 62 6f 74 68 20 64 69 |o contin both di| 00029270 61 67 72 61 6d 73 2e 20 49 74 73 20 6c 65 6e 67 |agrams. Its leng| 00029280 74 68 20 77 69 6c 6c 20 62 65 20 75 70 64 61 74 |th will be updat| 00029290 65 64 20 74 6f 20 69 74 73 20 6e 65 77 20 76 61 |ed to its new va| 000292a0 6c 75 65 20 61 6e 64 20 69 74 73 20 62 6f 75 6e |lue and its boun| 000292b0 64 69 6e 67 20 62 6f 78 20 77 69 6c 6c 20 62 65 |ding box will be| 000292c0 20 73 65 74 20 74 6f 20 74 68 65 20 75 6e 69 6f | set to the unio| 000292d0 6e 20 6f 66 20 74 68 65 20 62 6f 75 6e 64 69 6e |n of the boundin| 000292e0 67 20 62 6f 78 65 73 20 6f 66 20 74 68 65 20 74 |g boxes of the t| 000292f0 77 6f 20 64 69 61 67 72 61 6d 73 2e 44 41 54 41 |wo diagrams.DATA| 00029300 93 00 00 00 64 72 61 77 5f 62 62 6f 78 74 79 70 |....draw_bboxtyp| 00029310 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 00029320 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 |fined in <drawft| 00029330 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 |ypes.h=>drawftyp| 00029340 65 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 61 |es> as a type ca| 00029350 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 |pable of holding| 00029360 20 61 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 2e | a bounding box.| 00029370 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | It is defined a| 00029380 73 20 61 20 3c 64 72 61 77 5f 62 6f 78 3e 2e 00 |s a <draw_box>..| 00029390 44 41 54 41 9d 00 00 00 64 72 61 77 5f 62 6f 78 |DATA....draw_box| 000293a0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 000293b0 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 64 |fined in <drawfd| 000293c0 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 |iag.h=>drawfdiag| 000293d0 3e 2e 20 49 74 20 69 73 20 61 20 62 6f 75 6e 64 |>. It is a bound| 000293e0 69 6e 67 20 62 6f 78 20 64 65 66 69 6e 65 64 20 |ing box defined | 000293f0 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |as the following| 00029400 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 5c | structure:.. \| 00029410 7b 0a 20 20 20 20 69 6e 74 20 78 30 2c 20 79 30 |{. int x0, y0| 00029420 2c 20 78 31 2c 20 79 31 3b 0a 20 20 7d 00 00 00 |, x1, y1;. }...| 00029430 44 41 54 41 d0 00 00 00 64 72 61 77 5f 63 61 70 |DATA....draw_cap| 00029440 74 79 70 0a 54 68 69 73 20 74 79 70 65 20 69 73 |typ.This type is| 00029450 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 00029460 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 |wftypes.h=>drawf| 00029470 74 79 70 65 73 3e 20 61 73 20 61 6e 20 65 6e 75 |types> as an enu| 00029480 6d 65 72 61 74 65 64 20 74 79 70 65 20 64 65 73 |merated type des| 00029490 63 72 69 62 69 6e 67 20 61 20 70 61 74 68 20 63 |cribing a path c| 000294a0 61 70 20 73 74 79 6c 65 3a 0a 0a 20 09 7b 0a 20 |ap style:.. .{. | 000294b0 09 20 09 63 61 70 5f 62 75 74 74 09 3d 20 30 2c |. .cap_butt.= 0,| 000294c0 0a 20 09 20 09 63 61 70 5f 72 6f 75 6e 64 09 3d |. . .cap_round.=| 000294d0 20 31 2c 0a 20 09 20 09 63 61 70 5f 73 71 75 61 | 1,. . .cap_squa| 000294e0 72 65 09 3d 20 32 2c 0a 20 09 20 09 63 61 70 5f |re.= 2,. . .cap_| 000294f0 74 72 69 61 6e 67 6c 65 09 3d 20 33 0a 20 09 7d |triangle.= 3. .}| 00029500 44 41 54 41 8e 00 00 00 64 72 61 77 5f 63 6f 6c |DATA....draw_col| 00029510 74 79 70 0a 54 68 69 73 20 74 79 70 65 20 69 73 |typ.This type is| 00029520 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 00029530 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 |wftypes.h=>drawf| 00029540 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 65 |types> as a type| 00029550 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 | capable of hold| 00029560 69 6e 67 20 61 20 63 6f 6c 6f 75 72 20 76 61 6c |ing a colour val| 00029570 75 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |ue. It is define| 00029580 64 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 |d as an /int/...| 00029590 44 41 54 41 5b 01 00 00 64 72 61 77 5f 63 6f 6e |DATA[...draw_con| 000295a0 76 65 72 74 42 6f 78 0a 53 79 6e 74 61 78 3a 09 |vertBox.Syntax:.| 000295b0 76 6f 69 64 20 64 72 61 77 5f 63 6f 6e 76 65 72 |void draw_conver| 000295c0 74 42 6f 78 20 28 64 72 61 77 5f 62 6f 78 20 2a |tBox (draw_box *| 000295d0 66 72 6f 6d 2c 20 3c 64 72 61 77 5f 62 6f 78 3e |from, <draw_box>| 000295e0 20 2a 74 6f 2c 20 3c 42 4f 4f 4c 3e 20 74 6f 53 | *to, <BOOL> toS| 000295f0 63 72 65 65 6e 29 3b 0a 48 65 61 64 65 72 3a 09 |creen);.Header:.| 00029600 3c 64 72 61 77 66 64 69 61 67 2e 68 3d 3e 64 72 |<drawfdiag.h=>dr| 00029610 61 77 66 64 69 61 67 3e 0a 0a 54 68 69 73 20 66 |awfdiag>..This f| 00029620 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 73 |unction converts| 00029630 20 61 20 62 6f 78 20 74 6f 2f 66 72 6f 6d 20 73 | a box to/from s| 00029640 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 |creen coordinate| 00029650 73 2e 20 2f 66 72 6f 6d 2f 20 61 6e 64 20 2f 74 |s. /from/ and /t| 00029660 6f 2f 20 6d 61 79 20 70 6f 69 6e 74 20 74 6f 20 |o/ may point to | 00029670 74 68 65 20 73 61 6d 65 20 62 6f 78 2e 20 49 66 |the same box. If| 00029680 20 2f 74 6f 53 63 72 65 65 6e 2f 20 69 73 20 3c | /toScreen/ is <| 00029690 54 52 55 45 3e 20 74 68 65 6e 20 63 6f 6e 76 65 |TRUE> then conve| 000296a0 72 73 69 6f 6e 20 69 73 20 66 72 6f 6d 20 64 72 |rsion is from dr| 000296b0 61 77 20 63 6f 6f 72 64 73 20 74 6f 20 73 63 72 |aw coords to scr| 000296c0 65 65 6e 20 63 6f 6f 72 64 73 20 65 6c 73 65 20 |een coords else | 000296d0 69 74 20 69 73 20 74 68 65 20 6f 74 68 65 72 20 |it is the other | 000296e0 77 61 79 20 61 72 6f 75 6e 64 2e 00 44 41 54 41 |way around..DATA| 000296f0 a0 01 00 00 64 72 61 77 5f 63 72 65 61 74 65 5f |....draw_create_| 00029700 64 69 61 67 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |diag.Syntax:.voi| 00029710 64 20 64 72 61 77 5f 63 72 65 61 74 65 5f 64 69 |d draw_create_di| 00029720 61 67 20 28 3c 64 72 61 77 5f 64 69 61 67 3e 20 |ag (<draw_diag> | 00029730 2a 64 69 61 67 2c 20 63 68 61 72 20 2a 63 72 65 |*diag, char *cre| 00029740 61 74 6f 72 2c 20 3c 64 72 61 77 5f 62 6f 78 3e |ator, <draw_box>| 00029750 20 62 62 6f 78 29 3b 0a 48 65 61 64 65 72 3a 09 | bbox);.Header:.| 00029760 3c 64 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 72 61 |<drawfobj.h=>dra| 00029770 77 66 6f 62 6a 3e 0a 0a 54 68 69 73 20 66 75 6e |wfobj>..This fun| 00029780 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 61 6e |ction creates an| 00029790 20 65 6d 70 74 79 20 64 69 61 67 72 61 6d 20 28 | empty diagram (| 000297a0 69 65 20 6a 75 73 74 20 74 68 65 20 66 69 6c 65 |ie just the file| 000297b0 20 68 65 61 64 65 72 29 2c 20 77 69 74 68 20 74 | header), with t| 000297c0 68 65 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 20 |he bounding box | 000297d0 2f 62 62 6f 78 2f 2e 20 2f 64 69 61 67 2f 20 6d |/bbox/. /diag/ m| 000297e0 75 73 74 20 70 6f 69 6e 74 20 61 74 20 73 75 66 |ust point at suf| 000297f0 66 69 63 69 65 6e 74 20 6d 65 6d 6f 72 79 20 74 |ficient memory t| 00029800 6f 20 68 6f 6c 64 20 74 68 65 20 64 69 61 67 72 |o hold the diagr| 00029810 61 6d 2e 20 54 68 65 20 66 69 72 73 74 20 31 32 |am. The first 12| 00029820 20 63 68 61 72 73 20 6f 66 20 2f 63 72 65 61 74 | chars of /creat| 00029830 6f 72 2f 20 61 72 65 20 73 74 6f 72 65 64 20 69 |or/ are stored i| 00029840 6e 20 74 68 65 20 66 69 6c 65 20 68 65 61 64 65 |n the file heade| 00029850 72 2e 20 7b 2f 7d 64 69 61 67 2d 3e 6c 65 6e 67 |r. {/}diag->leng| 00029860 74 68 7b 2f 7d 20 69 73 20 73 65 74 20 61 70 70 |th{/} is set app| 00029870 72 6f 70 72 69 61 74 65 6c 79 20 62 79 20 74 68 |ropriately by th| 00029880 69 73 20 66 75 6e 63 74 69 6f 6e 2e 44 41 54 41 |is function.DATA| 00029890 e6 01 00 00 64 72 61 77 5f 63 72 65 61 74 65 4f |....draw_createO| 000298a0 62 6a 65 63 74 0a 53 79 6e 74 61 78 3a 09 3c 42 |bject.Syntax:.<B| 000298b0 4f 4f 4c 3e 20 64 72 61 77 5f 63 72 65 61 74 65 |OOL> draw_create| 000298c0 4f 62 6a 65 63 74 20 28 3c 64 72 61 77 5f 64 69 |Object (<draw_di| 000298d0 61 67 3e 20 2a 64 69 61 67 2c 20 3c 64 72 61 77 |ag> *diag, <draw| 000298e0 5f 6f 62 6a 65 63 74 54 79 70 65 3e 20 74 79 70 |_objectType> typ| 000298f0 65 2c 20 3c 64 72 61 77 5f 6f 62 6a 65 63 74 3e |e, <draw_object>| 00029900 20 61 66 74 65 72 2c 20 42 4f 4f 4c 20 72 65 62 | after, BOOL reb| 00029910 69 6e 64 2c 20 64 72 61 77 5f 6f 62 6a 65 63 74 |ind, draw_object| 00029920 20 2a 6f 62 6a 2c 20 3c 64 72 61 77 5f 65 72 72 | *obj, <draw_err| 00029930 6f 72 3e 20 2a 65 72 72 6f 72 29 3b 0a 48 65 61 |or> *error);.Hea| 00029940 64 65 72 3a 09 3c 64 72 61 77 66 6f 62 6a 2e 68 |der:.<drawfobj.h| 00029950 3d 3e 64 72 61 77 66 6f 62 6a 3e 0a 0a 52 65 74 |=>drawfobj>..Ret| 00029960 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 00029970 6f 62 6a 65 63 74 20 63 72 65 61 74 65 64 20 4f |object created O| 00029980 4b 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |K...This functio| 00029990 6e 20 63 72 65 61 74 65 73 20 61 6e 20 6f 62 6a |n creates an obj| 000299a0 65 63 74 20 64 65 66 69 6e 65 64 20 69 6e 20 2f |ect defined in /| 000299b0 74 79 70 65 2f 20 69 6e 20 74 68 65 20 67 69 76 |type/ in the giv| 000299c0 65 6e 20 64 69 61 67 72 61 6d 20 61 66 74 65 72 |en diagram after| 000299d0 20 74 68 65 20 6f 62 6a 65 63 74 20 69 6e 20 2f | the object in /| 000299e0 61 66 74 65 72 2f 2e 20 49 66 20 2f 72 65 62 69 |after/. If /rebi| 000299f0 6e 64 2f 20 69 73 20 54 52 55 45 20 74 68 65 6e |nd/ is TRUE then| 00029a00 20 74 68 65 20 64 69 61 67 72 61 6d 20 62 6f 75 | the diagram bou| 00029a10 6e 64 69 6e 67 20 62 6f 78 20 69 73 20 75 70 64 |nding box is upd| 00029a20 61 74 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 |ated to include | 00029a30 74 68 65 20 6e 65 77 20 6f 62 6a 65 63 74 2e 20 |the new object. | 00029a40 54 68 65 20 68 61 6e 64 6c 65 20 6f 66 20 74 68 |The handle of th| 00029a50 65 20 6e 65 77 20 6f 62 6a 65 63 74 20 69 73 20 |e new object is | 00029a60 72 65 74 75 72 6e 65 64 20 69 6e 20 2f 6f 62 6a |returned in /obj| 00029a70 2f 2e 00 00 44 41 54 41 e2 00 00 00 64 72 61 77 |/...DATA....draw| 00029a80 5f 64 61 73 68 73 74 72 0a 54 68 69 73 20 74 79 |_dashstr.This ty| 00029a90 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 00029aa0 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e | <drawftypes.h=>| 00029ab0 64 72 61 77 66 74 79 70 65 73 3e 20 61 73 20 61 |drawftypes> as a| 00029ac0 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 | type containing| 00029ad0 20 64 61 73 68 20 70 61 74 74 65 72 6e 20 64 61 | dash pattern da| 00029ae0 74 61 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |ta. It is define| 00029af0 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |d as the followi| 00029b00 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 |ng structure:.. | 00029b10 09 5c 7b 0a 20 09 20 09 69 6e 74 20 64 61 73 68 |.\{. . .int dash| 00029b20 73 74 61 72 74 3b 0a 20 09 20 09 69 6e 74 20 64 |start;. . .int d| 00029b30 61 73 68 63 6f 75 6e 74 3b 0a 20 09 20 09 69 6e |ashcount;. . .in| 00029b40 74 20 64 61 73 68 65 6c 65 6d 65 6e 74 73 5b 36 |t dashelements[6| 00029b50 5d 3b 0a 20 09 7d 00 00 44 41 54 41 d3 00 00 00 |];. .}..DATA....| 00029b60 64 72 61 77 5f 64 61 73 68 73 74 72 68 64 72 0a |draw_dashstrhdr.| 00029b70 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00029b80 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 |ined in <drawfty| 00029b90 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 |pes.h=>drawftype| 00029ba0 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 6f 6e |s> as a type con| 00029bb0 74 61 69 6e 69 6e 67 20 64 61 73 68 20 70 61 74 |taining dash pat| 00029bc0 74 65 72 6e 20 64 61 74 61 20 68 65 61 64 65 72 |tern data header| 00029bd0 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 00029be0 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |as the following| 00029bf0 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 09 5c | structure:.. .\| 00029c00 7b 0a 20 09 20 09 69 6e 74 20 64 61 73 68 73 74 |{. . .int dashst| 00029c10 61 72 74 3b 0a 20 09 20 09 69 6e 74 20 64 61 73 |art;. . .int das| 00029c20 68 63 6f 75 6e 74 3b 0a 20 09 7d 00 44 41 54 41 |hcount;. .}.DATA| 00029c30 b1 00 00 00 64 72 61 77 5f 64 61 73 68 74 79 70 |....draw_dashtyp| 00029c40 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 00029c50 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 |fined in <drawft| 00029c60 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 |ypes.h=>drawftyp| 00029c70 65 73 3e 20 61 73 20 61 6e 20 65 6e 75 6d 65 72 |es> as an enumer| 00029c80 61 74 65 64 20 74 79 70 65 20 63 6f 6e 74 61 69 |ated type contai| 00029c90 6e 69 6e 67 20 61 20 64 61 73 68 20 70 61 74 74 |ning a dash patt| 00029ca0 65 72 6e 20 66 6c 61 67 3a 0a 0a 20 09 5c 7b 0a |ern flag:.. .\{.| 00029cb0 20 09 20 09 64 61 73 68 5f 61 62 73 65 6e 74 09 | . .dash_absent.| 00029cc0 3d 20 30 2c 0a 20 09 20 09 64 61 73 68 5f 70 72 |= 0,. . .dash_pr| 00029cd0 65 73 65 6e 74 09 3d 20 31 0a 20 09 7d 00 00 00 |esent.= 1. .}...| 00029ce0 44 41 54 41 5c 01 00 00 64 72 61 77 5f 64 65 6c |DATA\...draw_del| 00029cf0 65 74 65 4f 62 6a 65 63 74 73 0a 53 79 6e 74 61 |eteObjects.Synta| 00029d00 78 3a 09 3c 42 4f 4f 4c 3e 20 64 72 61 77 5f 64 |x:.<BOOL> draw_d| 00029d10 65 6c 65 74 65 4f 62 6a 65 63 74 73 20 28 3c 64 |eleteObjects (<d| 00029d20 72 61 77 5f 64 69 61 67 3e 20 2a 64 69 61 67 2c |raw_diag> *diag,| 00029d30 20 3c 64 72 61 77 5f 6f 62 6a 65 63 74 3e 20 73 | <draw_object> s| 00029d40 74 61 72 74 2c 20 64 72 61 77 5f 6f 62 6a 65 63 |tart, draw_objec| 00029d50 74 20 65 6e 64 2c 20 42 4f 4f 4c 20 72 65 62 69 |t end, BOOL rebi| 00029d60 6e 64 2c 20 3c 64 72 61 77 5f 65 72 72 6f 72 3e |nd, <draw_error>| 00029d70 20 2a 65 72 72 6f 72 29 3b 0a 48 65 61 64 65 72 | *error);.Header| 00029d80 3a 09 3c 64 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 |:.<drawfobj.h=>d| 00029d90 72 61 77 66 6f 62 6a 3e 0a 0a 52 65 74 75 72 6e |rawfobj>..Return| 00029da0 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 6f 62 6a |s:.<TRUE> if obj| 00029db0 65 63 74 73 20 64 65 6c 65 74 65 64 20 4f 4b 2e |ects deleted OK.| 00029dc0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00029dd0 64 65 6c 65 74 65 73 20 74 68 65 20 73 70 65 63 |deletes the spec| 00029de0 69 66 69 65 64 20 72 61 6e 67 65 20 6f 66 20 6f |ified range of o| 00029df0 62 6a 65 63 74 73 20 66 72 6f 6d 20 61 20 64 69 |bjects from a di| 00029e00 61 67 72 61 6d 2e 20 49 66 20 2f 72 65 62 69 6e |agram. If /rebin| 00029e10 64 2f 20 69 73 20 54 52 55 45 20 74 68 65 6e 20 |d/ is TRUE then | 00029e20 74 68 65 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 |the bounding box| 00029e30 20 69 73 20 75 70 64 61 74 65 64 2e 44 41 54 41 | is updated.DATA| 00029e40 31 01 00 00 64 72 61 77 5f 64 69 61 67 0a 54 68 |1...draw_diag.Th| 00029e50 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00029e60 65 64 20 69 6e 20 3c 64 72 61 77 66 64 69 61 67 |ed in <drawfdiag| 00029e70 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 3e 2e 20 |.h=>drawfdiag>. | 00029e80 49 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 |It consists of a| 00029e90 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 | pointer to the | 00029ea0 64 61 74 61 20 61 6e 64 20 61 20 6c 65 6e 67 74 |data and a lengt| 00029eb0 68 20 66 69 65 6c 64 3a 0a 0a 20 20 5c 7b 0a 20 |h field:.. \{. | 00029ec0 20 20 20 63 68 61 72 20 2a 64 61 74 61 3b 0a 20 | char *data;. | 00029ed0 20 20 20 69 6e 74 20 20 6c 65 6e 67 74 68 3b 0a | int length;.| 00029ee0 20 20 7d 0a 0a 54 68 65 20 6c 65 6e 67 74 68 20 | }..The length | 00029ef0 6d 75 73 74 20 62 65 20 61 6e 20 65 78 61 63 74 |must be an exact| 00029f00 20 6e 75 6d 62 65 72 20 6f 66 20 77 6f 72 64 73 | number of words| 00029f10 2c 20 61 6e 64 20 69 73 20 74 68 65 20 61 6d 6f |, and is the amo| 00029f20 75 6e 74 20 6f 66 20 73 70 61 63 65 20 75 73 65 |unt of space use| 00029f30 64 20 69 6e 20 74 68 65 20 64 69 61 67 72 61 6d |d in the diagram| 00029f40 2c 20 6e 6f 74 20 74 68 65 20 73 69 7a 65 20 6f |, not the size o| 00029f50 66 20 74 68 65 20 6d 65 6d 6f 72 79 20 61 6c 6c |f the memory all| 00029f60 6f 63 61 74 65 64 20 74 6f 20 69 74 2e 00 00 00 |ocated to it....| 00029f70 44 41 54 41 1c 02 00 00 64 72 61 77 5f 64 6f 4f |DATA....draw_doO| 00029f80 62 6a 65 63 74 73 0a 53 79 6e 74 61 78 3a 09 3c |bjects.Syntax:.<| 00029f90 42 4f 4f 4c 3e 20 64 72 61 77 5f 64 6f 4f 62 6a |BOOL> draw_doObj| 00029fa0 65 63 74 73 20 28 3c 64 72 61 77 5f 64 69 61 67 |ects (<draw_diag| 00029fb0 3e 20 2a 64 69 61 67 2c 20 3c 64 72 61 77 5f 6f |> *diag, <draw_o| 00029fc0 62 6a 65 63 74 3e 20 73 74 61 72 74 2c 20 64 72 |bject> start, dr| 00029fd0 61 77 5f 6f 62 6a 65 63 74 20 65 6e 64 2c 20 3c |aw_object end, <| 00029fe0 64 72 61 77 5f 72 65 64 72 61 77 73 74 72 3e 20 |draw_redrawstr> | 00029ff0 2a 72 2c 20 64 6f 75 62 6c 65 20 73 63 61 6c 65 |*r, double scale| 0002a000 2c 20 3c 64 72 61 77 5f 65 72 72 6f 72 3e 20 2a |, <draw_error> *| 0002a010 65 72 72 6f 72 29 3b 0a 48 65 61 64 65 72 3a 09 |error);.Header:.| 0002a020 3c 64 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 72 61 |<drawfobj.h=>dra| 0002a030 77 66 6f 62 6a 3e 0a 0a 52 65 74 75 72 6e 73 3a |wfobj>..Returns:| 0002a040 09 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 |.<TRUE> if succe| 0002a050 73 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e |ssful...This fun| 0002a060 63 74 69 6f 6e 20 72 65 6e 64 65 72 73 20 61 20 |ction renders a | 0002a070 73 70 65 63 69 66 69 65 64 20 72 61 6e 67 65 20 |specified range | 0002a080 6f 66 20 6f 62 6a 65 63 74 73 20 66 72 6f 6d 20 |of objects from | 0002a090 61 20 64 69 61 67 72 61 6d 2e 20 2f 73 74 61 72 |a diagram. /star| 0002a0a0 74 2f 20 61 6e 64 20 2f 65 6e 64 2f 20 73 70 65 |t/ and /end/ spe| 0002a0b0 63 69 66 79 20 74 68 65 20 6f 62 6a 65 63 74 73 |cify the objects| 0002a0c0 20 74 6f 20 62 65 20 72 65 6e 64 65 72 65 64 2e | to be rendered.| 0002a0d0 20 2f 72 2f 20 69 73 20 74 68 65 20 72 65 64 72 | /r/ is the redr| 0002a0e0 61 77 20 72 65 63 74 61 6e 67 6c 65 20 61 6e 64 |aw rectangle and| 0002a0f0 20 2f 73 63 61 6c 65 2f 20 69 73 20 74 68 65 20 | /scale/ is the | 0002a100 73 63 61 6c 65 20 66 61 63 74 6f 72 2e 20 45 72 |scale factor. Er| 0002a110 72 6f 72 73 20 61 72 65 20 72 65 74 75 72 6e 65 |rors are returne| 0002a120 64 20 69 6e 20 2f 65 72 72 6f 72 2f 2e 20 54 68 |d in /error/. Th| 0002a130 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 73 |is function is s| 0002a140 69 6d 69 6c 61 72 20 74 6f 20 3c 64 72 61 77 5f |imilar to <draw_| 0002a150 72 65 6e 64 65 72 5f 64 69 61 67 3e 2c 20 62 75 |render_diag>, bu| 0002a160 74 20 77 69 74 68 20 74 68 65 20 61 64 64 69 74 |t with the addit| 0002a170 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 79 69 6e |ion of specifyin| 0002a180 67 20 74 68 65 20 72 61 6e 67 65 2e 44 41 54 41 |g the range.DATA| 0002a190 db 00 00 00 64 72 61 77 5f 64 72 61 77 54 6f 53 |....draw_drawToS| 0002a1a0 63 72 65 65 6e 0a 53 79 6e 74 61 78 3a 09 69 6e |creen.Syntax:.in| 0002a1b0 74 20 64 72 61 77 5f 64 72 61 77 54 6f 53 63 72 |t draw_drawToScr| 0002a1c0 65 65 6e 20 28 69 6e 74 20 69 29 3b 0a 48 65 61 |een (int i);.Hea| 0002a1d0 64 65 72 3a 09 3c 64 72 61 77 66 64 69 61 67 2e |der:.<drawfdiag.| 0002a1e0 68 3d 3e 64 72 61 77 66 64 69 61 67 3e 0a 0a 52 |h=>drawfdiag>..R| 0002a1f0 65 74 75 72 6e 73 3a 09 2f 69 2f 20 69 6e 20 73 |eturns:./i/ in s| 0002a200 63 72 65 65 6e 20 75 6e 69 74 73 2e 0a 0a 54 68 |creen units...Th| 0002a210 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 |is function-like| 0002a220 20 6d 61 63 72 6f 20 63 6f 6e 76 65 72 74 73 20 | macro converts | 0002a230 66 72 6f 6d 20 64 72 61 77 20 75 6e 69 74 73 20 |from draw units | 0002a240 74 6f 20 73 63 72 65 65 6e 20 75 6e 69 74 73 2e |to screen units.| 0002a250 20 49 74 20 72 65 74 75 72 6e 73 20 28 28 69 29 | It returns ((i)| 0002a260 20 3e 3e 20 38 29 2e 00 44 41 54 41 18 02 00 00 | >> 8)..DATA....| 0002a270 64 72 61 77 5f 65 72 72 6f 72 0a 54 68 69 73 20 |draw_error.This | 0002a280 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 0002a290 69 6e 20 3c 64 72 61 77 66 64 69 61 67 2e 68 3d |in <drawfdiag.h=| 0002a2a0 3e 64 72 61 77 66 64 69 61 67 3e 2e 20 49 74 20 |>drawfdiag>. It | 0002a2b0 69 73 20 61 6e 20 65 72 72 6f 72 20 74 79 70 65 |is an error type| 0002a2c0 3a 0a 0a 23 69 6e 64 65 6e 74 20 32 0a 5c 7b 0a |:..#indent 2.\{.| 0002a2d0 20 09 65 6e 75 6d 0a 20 09 5c 7b 0a 20 09 20 09 | .enum. .\{. . .| 0002a2e0 44 72 61 77 4f 53 45 72 72 6f 72 2c 0a 20 09 20 |DrawOSError,. . | 0002a2f0 09 44 72 61 77 4f 77 6e 45 72 72 6f 72 2c 0a 20 |.DrawOwnError,. | 0002a300 09 20 09 4e 6f 6e 65 0a 20 09 7d 20 74 79 70 65 |. .None. .} type| 0002a310 3b 0a 20 09 75 6e 69 6f 6e 0a 20 09 5c 7b 0a 20 |;. .union. .\{. | 0002a320 09 20 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 6f 73 |. .<os_error> os| 0002a330 3b 0a 20 09 20 09 73 74 72 75 63 74 0a 20 09 20 |;. . .struct. . | 0002a340 09 5c 7b 0a 20 09 20 09 20 09 69 6e 74 20 63 6f |.\{. . . .int co| 0002a350 64 65 3b 0a 20 09 20 09 20 09 69 6e 74 20 6c 6f |de;. . . .int lo| 0002a360 63 61 74 69 6f 6e 3b 0a 20 09 20 09 7d 20 64 72 |cation;. . .} dr| 0002a370 61 77 3b 0a 20 09 7d 20 65 72 72 3b 0a 7d 0a 23 |aw;. .} err;.}.#| 0002a380 69 6e 64 65 6e 74 0a 0a 57 68 65 72 65 20 61 20 |indent..Where a | 0002a390 72 6f 75 74 69 6e 65 20 63 61 6e 20 70 72 6f 64 |routine can prod| 0002a3a0 75 63 65 20 61 6e 20 65 72 72 6f 72 2c 20 74 68 |uce an error, th| 0002a3b0 65 20 65 72 72 6f 72 20 69 74 73 65 6c 66 20 69 |e error itself i| 0002a3c0 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 61 20 |s returned in a | 0002a3d0 75 73 65 72 20 73 74 72 75 63 74 75 72 65 20 28 |user structure (| 0002a3e0 6f 72 20 6e 6f 74 20 61 74 20 61 6c 6c 20 69 66 |or not at all if| 0002a3f0 20 3c 4e 55 4c 4c 3e 20 69 73 20 70 61 73 73 65 | <NULL> is passe| 0002a400 64 29 2e 20 54 68 65 20 65 72 72 6f 72 20 62 6c |d). The error bl| 0002a410 6f 63 6b 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 |ock may contain | 0002a420 65 69 74 68 65 72 20 61 6e 20 4f 53 20 65 72 72 |either an OS err| 0002a430 6f 72 20 6f 72 20 61 6e 20 69 6e 74 65 72 6e 61 |or or an interna| 0002a440 6c 20 65 72 72 6f 72 2e 20 53 65 65 20 3c 64 72 |l error. See <dr| 0002a450 61 77 66 65 72 72 6f 72 2e 68 3d 3e 64 72 61 77 |awferror.h=>draw| 0002a460 66 65 72 72 6f 72 3e 20 66 6f 72 20 74 68 65 20 |ferror> for the | 0002a470 69 6e 74 65 72 6e 61 6c 20 65 72 72 6f 72 73 2e |internal errors.| 0002a480 44 41 54 41 8a 01 00 00 64 72 61 77 5f 65 78 74 |DATA....draw_ext| 0002a490 65 6e 64 0a 54 68 69 73 20 74 79 70 65 20 69 73 |end.This type is| 0002a4a0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 0002a4b0 77 66 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 |wfdiag.h=>drawfd| 0002a4c0 69 61 67 3e 2e 20 49 74 20 69 73 20 61 20 66 75 |iag>. It is a fu| 0002a4d0 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 65 |nction used to e| 0002a4e0 78 74 65 6e 64 20 6d 65 6d 6f 72 79 20 77 69 74 |xtend memory wit| 0002a4f0 68 20 70 72 6f 74 6f 74 79 70 65 20 61 73 20 66 |h prototype as f| 0002a500 6f 6c 6c 6f 77 73 3a 0a 7b 77 72 61 70 20 6f 66 |ollows:.{wrap of| 0002a510 66 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |f}.{fCode;align | 0002a520 63 65 6e 74 72 65 7d 69 6e 74 20 6d 79 66 75 6e |centre}int myfun| 0002a530 63 20 28 76 6f 69 64 20 2a 2a 61 6e 63 68 6f 72 |c (void **anchor| 0002a540 2c 20 69 6e 74 20 6e 29 3b 7b 66 3b 61 6c 69 67 |, int n);{f;alig| 0002a550 6e 3b 77 72 61 70 7d 0a 0a 54 68 69 73 20 73 68 |n;wrap}..This sh| 0002a560 6f 75 6c 64 20 65 78 74 65 6e 64 20 74 68 65 20 |ould extend the | 0002a570 62 6c 6f 63 6b 20 6f 66 20 6d 65 6d 6f 72 79 20 |block of memory | 0002a580 77 68 69 63 68 20 73 74 61 72 74 73 20 61 74 20 |which starts at | 0002a590 7b 2f 7d 2a 61 6e 63 68 6f 72 7b 2f 7d 20 74 6f |{/}*anchor{/} to| 0002a5a0 20 61 20 74 6f 74 61 6c 20 73 69 7a 65 20 6f 66 | a total size of| 0002a5b0 20 2f 6e 2f 20 62 79 74 65 73 20 6f 66 20 73 74 | /n/ bytes of st| 0002a5c0 6f 72 65 20 61 6e 64 20 73 65 74 20 7b 2f 7d 2a |ore and set {/}*| 0002a5d0 61 6e 63 68 6f 72 7b 2f 7d 20 74 6f 20 70 6f 69 |anchor{/} to poi| 0002a5e0 6e 74 20 74 6f 20 74 68 65 6d 2e 20 52 65 74 75 |nt to them. Retu| 0002a5f0 72 6e 20 6e 6f 6e 2d 7a 65 72 6f 20 69 66 20 73 |rn non-zero if s| 0002a600 75 63 63 65 73 73 66 75 6c 2e 00 00 44 41 54 41 |uccessful...DATA| 0002a610 87 01 00 00 64 72 61 77 5f 65 78 74 72 61 63 74 |....draw_extract| 0002a620 4f 62 6a 65 63 74 0a 53 79 6e 74 61 78 3a 09 3c |Object.Syntax:.<| 0002a630 42 4f 4f 4c 3e 20 64 72 61 77 5f 65 78 74 72 61 |BOOL> draw_extra| 0002a640 63 74 4f 62 6a 65 63 74 20 28 3c 64 72 61 77 5f |ctObject (<draw_| 0002a650 64 69 61 67 3e 20 2a 64 69 61 67 2c 20 3c 64 72 |diag> *diag, <dr| 0002a660 61 77 5f 6f 62 6a 65 63 74 3e 20 6f 62 6a 65 63 |aw_object> objec| 0002a670 74 2c 20 3c 64 72 61 77 5f 6f 62 6a 65 63 74 54 |t, <draw_objectT| 0002a680 79 70 65 3e 20 72 65 73 2c 20 3c 64 72 61 77 5f |ype> res, <draw_| 0002a690 65 72 72 6f 72 3e 20 2a 65 72 72 29 3b 0a 48 65 |error> *err);.He| 0002a6a0 61 64 65 72 3a 09 3c 64 72 61 77 66 6f 62 6a 2e |ader:.<drawfobj.| 0002a6b0 68 3d 3e 64 72 61 77 66 6f 62 6a 3e 0a 0a 52 65 |h=>drawfobj>..Re| 0002a6c0 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 |turns:.<TRUE> if| 0002a6d0 20 6f 62 6a 65 63 74 20 65 78 74 72 61 63 74 65 | object extracte| 0002a6e0 64 20 4f 4b 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |d OK...This func| 0002a6f0 74 69 6f 6e 20 65 78 74 72 61 63 74 73 20 61 6e |tion extracts an| 0002a700 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 61 20 64 | object from a d| 0002a710 69 61 67 72 61 6d 20 69 6e 74 6f 20 61 20 73 75 |iagram into a su| 0002a720 70 70 6c 69 65 64 20 62 75 66 66 65 72 2c 20 2f |pplied buffer, /| 0002a730 72 65 73 2f 2e 20 2f 6f 62 6a 65 63 74 2f 20 63 |res/. /object/ c| 0002a740 6f 6e 74 61 69 6e 73 20 74 68 65 20 6f 62 6a 65 |ontains the obje| 0002a750 63 74 20 74 6f 20 62 65 20 65 78 74 72 61 63 74 |ct to be extract| 0002a760 65 64 2e 20 54 68 65 20 62 75 66 66 65 72 20 66 |ed. The buffer f| 0002a770 6f 72 20 74 68 65 20 72 65 73 75 6c 74 20 6d 75 |or the result mu| 0002a780 73 74 20 62 65 20 6c 61 72 67 65 20 65 6e 6f 75 |st be large enou| 0002a790 67 68 2e 00 44 41 54 41 37 01 00 00 64 72 61 77 |gh..DATA7...draw| 0002a7a0 5f 66 69 6c 65 68 65 61 64 65 72 0a 54 68 69 73 |_fileheader.This| 0002a7b0 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 0002a7c0 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e | in <drawftypes.| 0002a7d0 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 |h=>drawftypes> a| 0002a7e0 73 20 61 20 74 79 70 65 20 63 61 70 61 62 6c 65 |s a type capable| 0002a7f0 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 66 69 | of holding a fi| 0002a800 6c 65 20 68 65 61 64 65 72 2e 20 49 74 20 69 73 |le header. It is| 0002a810 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 | defined as the | 0002a820 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 |following struct| 0002a830 75 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 63 |ure:.. .\{. . .c| 0002a840 68 61 72 09 74 69 74 6c 65 5b 34 5d 3b 09 2f 2a |har.title[4];./*| 0002a850 20 22 44 72 61 77 22 20 2a 2f 0a 20 09 20 09 69 | "Draw" */. . .i| 0002a860 6e 74 09 6d 61 6a 6f 72 73 74 61 6d 70 3b 09 2f |nt.majorstamp;./| 0002a870 2a 20 32 30 31 20 2a 2f 0a 20 09 20 09 69 6e 74 |* 201 */. . .int| 0002a880 09 6d 69 6e 6f 72 73 74 61 6d 70 3b 09 2f 2a 20 |.minorstamp;./* | 0002a890 30 20 2a 2f 0a 20 09 20 09 63 68 61 72 09 70 72 |0 */. . .char.pr| 0002a8a0 6f 67 69 64 65 6e 74 5b 31 32 5d 3b 09 0a 20 09 |ogident[12];.. .| 0002a8b0 20 09 3c 64 72 61 77 5f 62 62 6f 78 74 79 70 3e | .<draw_bboxtyp>| 0002a8c0 09 62 62 6f 78 3b 09 0a 20 09 7d 00 44 41 54 41 |.bbox;.. .}.DATA| 0002a8d0 de 00 00 00 64 72 61 77 5f 46 69 72 73 74 4f 62 |....draw_FirstOb| 0002a8e0 6a 65 63 74 0a 54 68 69 73 20 6d 61 63 72 6f 20 |ject.This macro | 0002a8f0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 |is defined in <d| 0002a900 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 72 61 77 66 |rawfobj.h=>drawf| 0002a910 6f 62 6a 3e 2e 20 49 74 20 69 73 20 61 20 73 79 |obj>. It is a sy| 0002a920 6d 62 6f 6c 69 63 20 63 6f 64 65 20 75 73 65 64 |mbolic code used| 0002a930 20 62 79 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 | by functions th| 0002a940 61 74 20 6f 70 65 72 61 74 65 20 6f 6e 20 61 20 |at operate on a | 0002a950 72 61 6e 67 65 20 6f 66 20 6f 62 6a 65 63 74 73 |range of objects| 0002a960 20 61 6e 64 20 68 61 73 20 74 68 65 20 6d 65 61 | and has the mea| 0002a970 6e 69 6e 67 20 27 66 72 6f 6d 20 74 68 65 20 73 |ning 'from the s| 0002a980 74 61 72 74 27 2e 20 49 74 20 69 73 20 64 65 66 |tart'. It is def| 0002a990 69 6e 65 64 20 61 73 20 28 3c 64 72 61 77 5f 6f |ined as (<draw_o| 0002a9a0 62 6a 65 63 74 3e 29 2d 31 2e 00 00 44 41 54 41 |bject>)-1...DATA| 0002a9b0 4a 01 00 00 64 72 61 77 5f 66 6f 6e 74 6c 69 73 |J...draw_fontlis| 0002a9c0 74 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |tstr.This type i| 0002a9d0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 0002a9e0 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 0002a9f0 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 0002aa00 65 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c |e capable of hol| 0002aa10 64 69 6e 67 20 61 20 66 6f 6e 74 20 74 61 62 6c |ding a font tabl| 0002aa20 65 20 6f 62 6a 65 63 74 2e 20 49 74 20 69 73 20 |e object. It is | 0002aa30 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 |defined as the f| 0002aa40 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 |ollowing structu| 0002aa50 72 65 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 20 |re:.{wrap off}. | 0002aa60 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 74 61 |.\{. . .<draw_ta| 0002aa70 67 74 79 70 3e 20 09 74 61 67 3b 09 2f 2a 20 4f |gtyp> .tag;./* O| 0002aa80 62 6a 65 63 74 20 74 79 70 65 20 3d 20 30 20 2a |bject type = 0 *| 0002aa90 2f 0a 20 09 20 09 3c 64 72 61 77 5f 73 69 7a 65 |/. . .<draw_size| 0002aaa0 74 79 70 3e 09 73 69 7a 65 3b 09 2f 2a 20 4d 75 |typ>.size;./* Mu| 0002aab0 6c 74 69 70 6c 65 20 6f 66 20 34 20 2a 2f 0a 20 |ltiple of 4 */. | 0002aac0 09 20 09 3c 64 72 61 77 5f 66 6f 6e 74 72 65 66 |. .<draw_fontref| 0002aad0 3e 09 66 6f 6e 74 72 65 66 3b 09 0a 20 09 20 09 |>.fontref;.. . .| 0002aae0 63 68 61 72 09 66 6f 6e 74 6e 61 6d 65 5b 31 5d |char.fontname[1]| 0002aaf0 3b 09 0a 20 09 7d 00 00 44 41 54 41 15 01 00 00 |;.. .}..DATA....| 0002ab00 64 72 61 77 5f 66 6f 6e 74 6c 69 73 74 73 74 72 |draw_fontliststr| 0002ab10 68 64 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 |hdr.This type is| 0002ab20 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 0002ab30 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 |wftypes.h=>drawf| 0002ab40 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 65 |types> as a type| 0002ab50 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 | capable of hold| 0002ab60 69 6e 67 20 61 20 66 6f 6e 74 20 74 61 62 6c 65 |ing a font table| 0002ab70 20 6f 62 6a 65 63 74 20 68 65 61 64 65 72 2e 20 | object header. | 0002ab80 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 0002ab90 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 0002aba0 74 72 75 63 74 75 72 65 3a 0a 0a 20 09 5c 7b 0a |tructure:.. .\{.| 0002abb0 20 09 20 09 3c 64 72 61 77 5f 74 61 67 74 79 70 | . .<draw_tagtyp| 0002abc0 3e 09 74 61 67 3b 09 2f 2a 20 4f 62 6a 65 63 74 |>.tag;./* Object| 0002abd0 20 74 79 70 65 20 3d 20 30 20 2a 2f 0a 20 09 20 | type = 0 */. . | 0002abe0 09 3c 64 72 61 77 5f 73 69 7a 65 74 79 70 3e 09 |.<draw_sizetyp>.| 0002abf0 73 69 7a 65 3b 09 2f 2a 20 4d 75 6c 74 69 70 6c |size;./* Multipl| 0002ac00 65 20 6f 66 20 34 20 2a 2f 0a 20 09 7d 00 00 00 |e of 4 */. .}...| 0002ac10 44 41 54 41 98 00 00 00 64 72 61 77 5f 66 6f 6e |DATA....draw_fon| 0002ac20 74 72 65 66 0a 54 68 69 73 20 74 79 70 65 20 69 |tref.This type i| 0002ac30 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 0002ac40 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 0002ac50 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 0002ac60 65 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c |e capable of hol| 0002ac70 64 69 6e 67 20 61 20 66 6f 6e 74 20 72 65 66 65 |ding a font refe| 0002ac80 72 65 6e 63 65 20 6e 75 6d 62 65 72 2e 20 49 74 |rence number. It| 0002ac90 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 | is defined as a| 0002aca0 20 2f 63 68 61 72 2f 2e 44 41 54 41 ab 00 00 00 | /char/.DATA....| 0002acb0 64 72 61 77 5f 66 6f 6e 74 73 69 7a 65 0a 54 68 |draw_fontsize.Th| 0002acc0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0002acd0 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 |ed in <drawftype| 0002ace0 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e |s.h=>drawftypes>| 0002acf0 20 61 73 20 61 20 74 79 70 65 20 63 61 70 61 62 | as a type capab| 0002ad00 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 |le of holding a | 0002ad10 66 6f 6e 74 20 73 69 7a 65 20 76 61 6c 75 65 20 |font size value | 0002ad20 69 6e 20 31 2f 36 34 30 20 70 6f 69 6e 74 2e 20 |in 1/640 point. | 0002ad30 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 0002ad40 20 61 6e 20 2f 75 6e 73 69 67 6e 65 64 20 69 6e | an /unsigned in| 0002ad50 74 2f 2e 00 44 41 54 41 2d 01 00 00 64 72 61 77 |t/..DATA-...draw| 0002ad60 5f 66 72 65 65 0a 54 68 69 73 20 74 79 70 65 20 |_free.This type | 0002ad70 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 |is defined in <d| 0002ad80 72 61 77 66 64 69 61 67 2e 68 3d 3e 64 72 61 77 |rawfdiag.h=>draw| 0002ad90 66 64 69 61 67 3e 2e 20 49 74 20 69 73 20 61 20 |fdiag>. It is a | 0002ada0 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f |function used to| 0002adb0 20 66 72 65 65 20 6d 65 6d 6f 72 79 20 77 69 74 | free memory wit| 0002adc0 68 20 70 72 6f 74 6f 74 79 70 65 20 61 73 20 66 |h prototype as f| 0002add0 6f 6c 6c 6f 77 73 3a 0a 7b 77 72 61 70 20 6f 66 |ollows:.{wrap of| 0002ade0 66 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |f}.{fCode;align | 0002adf0 63 65 6e 74 72 65 7d 76 6f 69 64 20 6d 79 66 75 |centre}void myfu| 0002ae00 6e 63 20 28 76 6f 69 64 20 2a 2a 61 6e 63 68 6f |nc (void **ancho| 0002ae10 72 29 3b 7b 66 3b 61 6c 69 67 6e 3b 77 72 61 70 |r);{f;align;wrap| 0002ae20 7d 0a 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 66 |}..This should f| 0002ae30 72 65 65 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 |ree the block of| 0002ae40 20 6d 65 6d 6f 72 79 20 77 68 69 63 68 20 73 74 | memory which st| 0002ae50 61 72 74 73 20 61 74 20 7b 2f 7d 2a 61 6e 63 68 |arts at {/}*anch| 0002ae60 6f 72 7b 2f 7d 20 61 6e 64 20 73 65 74 20 7b 2f |or{/} and set {/| 0002ae70 7d 2a 61 6e 63 68 6f 72 7b 2f 7d 20 74 6f 20 30 |}*anchor{/} to 0| 0002ae80 2e 00 00 00 44 41 54 41 c3 00 00 00 64 72 61 77 |....DATA....draw| 0002ae90 5f 67 72 6f 75 70 6e 61 6d 65 74 79 70 0a 54 68 |_groupnametyp.Th| 0002aea0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0002aeb0 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 |ed in <drawftype| 0002aec0 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e |s.h=>drawftypes>| 0002aed0 20 61 73 20 61 20 74 79 70 65 20 63 61 70 61 62 | as a type capab| 0002aee0 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 |le of holding a | 0002aef0 67 72 6f 75 70 20 6f 62 6a 65 63 74 20 6e 61 6d |group object nam| 0002af00 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |e. It is defined| 0002af10 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 0002af20 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 |g structure:.. | 0002af30 5c 7b 0a 20 20 20 20 63 68 61 72 20 63 68 5b 31 |\{. char ch[1| 0002af40 32 5d 3b 0a 20 20 7d 00 44 41 54 41 1a 01 00 00 |2];. }.DATA....| 0002af50 64 72 61 77 5f 67 72 6f 75 73 74 72 0a 54 68 69 |draw_groustr.Thi| 0002af60 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 0002af70 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 |d in <drawftypes| 0002af80 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 |.h=>drawftypes> | 0002af90 61 73 20 61 20 74 79 70 65 20 63 6f 6e 74 61 69 |as a type contai| 0002afa0 6e 69 6e 67 20 61 20 67 72 6f 75 70 20 6f 62 6a |ning a group obj| 0002afb0 65 63 74 2e 20 49 74 20 69 73 20 64 65 66 69 6e |ect. It is defin| 0002afc0 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 |ed as the follow| 0002afd0 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a |ing structure:..| 0002afe0 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 74 | .\{. . .<draw_t| 0002aff0 61 67 74 79 70 3e 09 74 61 67 3b 20 20 20 20 20 |agtyp>.tag; | 0002b000 2f 2a 20 74 61 67 20 3d 3d 20 36 20 2a 2f 0a 20 |/* tag == 6 */. | 0002b010 09 20 09 3c 64 72 61 77 5f 73 69 7a 65 74 79 70 |. .<draw_sizetyp| 0002b020 3e 09 73 69 7a 65 3b 0a 20 09 20 09 3c 64 72 61 |>.size;. . .<dra| 0002b030 77 5f 62 62 6f 78 74 79 70 3e 09 62 62 6f 78 3b |w_bboxtyp>.bbox;| 0002b040 0a 20 09 20 09 3c 64 72 61 77 5f 67 72 6f 75 70 |. . .<draw_group| 0002b050 6e 61 6d 65 74 79 70 3e 09 6e 61 6d 65 3b 0a 20 |nametyp>.name;. | 0002b060 09 7d 00 00 44 41 54 41 68 01 00 00 64 72 61 77 |.}..DATAh...draw| 0002b070 5f 6a 6f 69 6e 74 73 70 65 63 0a 54 68 69 73 20 |_jointspec.This | 0002b080 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 0002b090 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 |in <drawftypes.h| 0002b0a0 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 73 |=>drawftypes> as| 0002b0b0 20 61 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 | a type containi| 0002b0c0 6e 67 20 70 61 74 68 20 73 74 79 6c 65 20 69 6e |ng path style in| 0002b0d0 66 6f 72 6d 61 74 69 6f 6e 2e 20 49 74 20 69 73 |formation. It is| 0002b0e0 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 | defined as the | 0002b0f0 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 |following struct| 0002b100 75 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 63 |ure:.. .\{. . .c| 0002b110 68 61 72 09 6a 6f 69 6e 3b 0a 20 09 20 09 63 68 |har.join;. . .ch| 0002b120 61 72 09 65 6e 64 63 61 70 3b 0a 20 09 20 09 63 |ar.endcap;. . .c| 0002b130 68 61 72 09 73 74 61 72 74 63 61 70 3b 0a 20 09 |har.startcap;. .| 0002b140 20 09 63 68 61 72 09 72 65 73 65 72 76 65 64 3b | .char.reserved;| 0002b150 0a 20 09 20 09 69 6e 74 09 6d 69 74 72 65 6c 69 |. . .int.mitreli| 0002b160 6d 69 74 3b 0a 20 09 20 09 73 68 6f 72 74 09 65 |mit;. . .short.e| 0002b170 6e 64 74 72 69 63 61 70 77 69 64 3b 0a 20 09 20 |ndtricapwid;. . | 0002b180 09 73 68 6f 72 74 09 65 6e 64 74 72 69 63 61 70 |.short.endtricap| 0002b190 68 65 69 3b 0a 20 09 20 09 73 68 6f 72 74 09 73 |hei;. . .short.s| 0002b1a0 74 61 72 74 74 72 69 63 61 70 77 69 64 3b 0a 20 |tarttricapwid;. | 0002b1b0 09 20 09 73 68 6f 72 74 09 73 74 61 72 74 74 72 |. .short.starttr| 0002b1c0 69 63 61 70 68 65 69 3b 0a 20 09 7d 44 41 54 41 |icaphei;. .}DATA| 0002b1d0 c3 00 00 00 64 72 61 77 5f 6a 6f 69 6e 74 79 70 |....draw_jointyp| 0002b1e0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0002b1f0 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 |fined in <drawft| 0002b200 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 |ypes.h=>drawftyp| 0002b210 65 73 3e 20 61 73 20 61 6e 20 65 6e 75 6d 65 72 |es> as an enumer| 0002b220 61 74 65 64 20 74 79 70 65 20 64 65 73 63 72 69 |ated type descri| 0002b230 62 69 6e 67 20 61 20 70 61 74 68 20 6a 6f 69 6e |bing a path join| 0002b240 20 74 79 70 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 | type:.. .\{. . | 0002b250 09 6a 6f 69 6e 5f 6d 69 74 72 65 64 09 3d 20 30 |.join_mitred.= 0| 0002b260 2c 0a 20 09 20 09 6a 6f 69 6e 5f 72 6f 75 6e 64 |,. . .join_round| 0002b270 09 3d 20 31 2c 0a 20 09 20 09 6a 6f 69 6e 5f 62 |.= 1,. . .join_b| 0002b280 65 76 65 6c 6c 65 64 09 3d 20 32 0a 20 09 7d 00 |evelled.= 2. .}.| 0002b290 44 41 54 41 d9 00 00 00 64 72 61 77 5f 4c 61 73 |DATA....draw_Las| 0002b2a0 74 4f 62 6a 65 63 74 0a 54 68 69 73 20 6d 61 63 |tObject.This mac| 0002b2b0 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 0002b2c0 20 3c 64 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 72 | <drawfobj.h=>dr| 0002b2d0 61 77 66 6f 62 6a 3e 2e 20 49 74 20 69 73 20 61 |awfobj>. It is a| 0002b2e0 20 73 79 6d 62 6f 6c 69 63 20 63 6f 64 65 20 75 | symbolic code u| 0002b2f0 73 65 64 20 62 79 20 66 75 6e 63 74 69 6f 6e 73 |sed by functions| 0002b300 20 74 68 61 74 20 6f 70 65 72 61 74 65 20 6f 6e | that operate on| 0002b310 20 61 20 72 61 6e 67 65 20 6f 66 20 6f 62 6a 65 | a range of obje| 0002b320 63 74 73 20 61 6e 64 20 68 61 73 20 74 68 65 20 |cts and has the | 0002b330 6d 65 61 6e 69 6e 67 20 27 74 6f 20 74 68 65 20 |meaning 'to the | 0002b340 65 6e 64 27 2e 20 49 74 20 69 73 20 64 65 66 69 |end'. It is defi| 0002b350 6e 65 64 20 61 73 20 28 3c 64 72 61 77 5f 6f 62 |ned as (<draw_ob| 0002b360 6a 65 63 74 3e 29 2d 32 2e 00 00 00 44 41 54 41 |ject>)-2....DATA| 0002b370 96 00 00 00 64 72 61 77 5f 4e 6f 4f 62 6a 65 63 |....draw_NoObjec| 0002b380 74 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 |t.This macro is | 0002b390 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 |defined in <draw| 0002b3a0 66 6f 62 6a 2e 68 3d 3e 64 72 61 77 66 6f 62 6a |fobj.h=>drawfobj| 0002b3b0 3e 2e 20 49 74 20 69 73 20 61 20 73 79 6d 62 6f |>. It is a symbo| 0002b3c0 6c 69 63 20 63 6f 64 65 20 66 6f 72 20 6e 6f 20 |lic code for no | 0002b3d0 6f 62 6a 65 63 74 20 61 6e 64 20 69 73 20 64 65 |object and is de| 0002b3e0 66 69 6e 65 64 20 61 73 20 7b 2f 7d 28 3c 64 72 |fined as {/}(<dr| 0002b3f0 61 77 5f 6f 62 6a 65 63 74 3e 29 20 2d 31 7b 2f |aw_object>) -1{/| 0002b400 7d 2e 00 00 44 41 54 41 bd 00 00 00 64 72 61 77 |}...DATA....draw| 0002b410 5f 6f 62 6a 63 6f 6f 72 64 0a 54 68 69 73 20 74 |_objcoord.This t| 0002b420 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 0002b430 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d |n <drawftypes.h=| 0002b440 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 73 20 |>drawftypes> as | 0002b450 61 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f |a type capable o| 0002b460 66 20 68 6f 6c 64 69 6e 67 20 61 6e 20 6f 62 6a |f holding an obj| 0002b470 65 63 74 20 63 6f 6f 72 64 69 6e 61 74 65 2e 20 |ect coordinate. | 0002b480 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 0002b490 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 0002b4a0 74 72 75 63 74 75 72 65 3a 0a 0a 20 09 5c 7b 0a |tructure:.. .\{.| 0002b4b0 20 09 20 09 69 6e 74 20 78 2c 20 79 3b 0a 20 09 | . .int x, y;. .| 0002b4c0 7d 00 00 00 44 41 54 41 a2 00 00 00 64 72 61 77 |}...DATA....draw| 0002b4d0 5f 6f 62 6a 65 63 74 0a 54 68 69 73 20 74 79 70 |_object.This typ| 0002b4e0 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 0002b4f0 3c 64 72 61 77 66 64 69 61 67 2e 68 3d 3e 64 72 |<drawfdiag.h=>dr| 0002b500 61 77 66 64 69 61 67 3e 2e 20 49 74 20 69 73 20 |awfdiag>. It is | 0002b510 61 6e 20 6f 66 66 73 65 74 20 66 72 6f 6d 20 74 |an offset from t| 0002b520 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 |he start of the | 0002b530 64 69 61 67 72 61 6d 20 74 6f 20 74 68 65 20 6f |diagram to the o| 0002b540 62 6a 65 63 74 20 64 61 74 61 2e 20 49 74 20 69 |bject data. It i| 0002b550 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 |s defined as an | 0002b560 2f 69 6e 74 2f 2e 00 00 44 41 54 41 ad 01 00 00 |/int/...DATA....| 0002b570 64 72 61 77 5f 6f 62 6a 65 63 74 54 79 70 65 0a |draw_objectType.| 0002b580 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 0002b590 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 6f 62 |ined in <drawfob| 0002b5a0 6a 2e 68 3d 3e 64 72 61 77 66 6f 62 6a 3e 2e 20 |j.h=>drawfobj>. | 0002b5b0 49 74 20 69 73 0a 64 65 66 69 6e 65 64 20 61 73 |It is.defined as| 0002b5c0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 75 | the following u| 0002b5d0 6e 69 6f 6e 2c 20 75 73 65 64 20 66 6f 72 0a 6f |nion, used for.o| 0002b5e0 70 65 72 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70 |peration on comp| 0002b5f0 6c 65 74 65 20 6f 62 6a 65 63 74 73 3a 0a 0a 20 |lete objects:.. | 0002b600 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 6f 62 |.\{. . .<draw_ob| 0002b610 6a 68 64 72 3e 09 2a 6f 62 6a 65 63 74 3b 0a 20 |jhdr>.*object;. | 0002b620 09 20 09 3c 64 72 61 77 5f 66 69 6c 65 68 65 61 |. .<draw_filehea| 0002b630 64 65 72 3e 09 2a 66 69 6c 65 48 65 61 64 65 72 |der>.*fileHeader| 0002b640 3b 0a 20 09 20 09 3c 64 72 61 77 5f 66 6f 6e 74 |;. . .<draw_font| 0002b650 6c 69 73 74 73 74 72 3e 09 2a 66 6f 6e 74 4c 69 |liststr>.*fontLi| 0002b660 73 74 3b 0a 20 09 20 09 3c 64 72 61 77 5f 74 65 |st;. . .<draw_te| 0002b670 78 74 73 74 72 3e 09 2a 74 65 78 74 3b 0a 20 09 |xtstr>.*text;. .| 0002b680 20 09 3c 64 72 61 77 5f 70 61 74 68 73 74 72 3e | .<draw_pathstr>| 0002b690 09 2a 70 61 74 68 3b 0a 20 09 20 09 3c 64 72 61 |.*path;. . .<dra| 0002b6a0 77 5f 73 70 72 69 73 74 72 3e 09 2a 73 70 72 69 |w_spristr>.*spri| 0002b6b0 74 65 3b 0a 20 09 20 09 3c 64 72 61 77 5f 67 72 |te;. . .<draw_gr| 0002b6c0 6f 75 73 74 72 3e 09 2a 67 72 6f 75 70 3b 0a 20 |oustr>.*group;. | 0002b6d0 09 20 09 3c 64 72 61 77 5f 74 65 78 74 61 72 65 |. .<draw_textare| 0002b6e0 61 68 64 72 3e 09 2a 74 65 78 74 61 72 65 61 3b |ahdr>.*textarea;| 0002b6f0 0a 20 09 20 09 63 68 61 72 09 2a 62 79 74 65 70 |. . .char.*bytep| 0002b700 3b 0a 20 09 20 09 69 6e 74 09 2a 77 6f 72 64 70 |;. . .int.*wordp| 0002b710 3b 0a 20 09 7d 00 00 00 44 41 54 41 19 01 00 00 |;. .}...DATA....| 0002b720 64 72 61 77 5f 6f 62 6a 68 64 72 0a 54 68 69 73 |draw_objhdr.This| 0002b730 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 0002b740 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e | in <drawftypes.| 0002b750 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 |h=>drawftypes> a| 0002b760 73 20 61 20 74 79 70 65 20 63 61 70 61 62 6c 65 |s a type capable| 0002b770 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 6f 62 | of holding a ob| 0002b780 6a 65 63 74 20 68 65 61 64 65 72 2e 20 49 74 20 |ject header. It | 0002b790 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 |is defined as th| 0002b7a0 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 |e following stru| 0002b7b0 63 74 75 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 |cture:.. .\{. . | 0002b7c0 09 3c 64 72 61 77 5f 74 61 67 74 79 70 65 3e 09 |.<draw_tagtype>.| 0002b7d0 74 61 67 3b 09 2f 2a 20 4f 62 6a 65 63 74 20 74 |tag;./* Object t| 0002b7e0 79 70 65 20 2a 2f 0a 20 09 20 09 3c 64 72 61 77 |ype */. . .<draw| 0002b7f0 5f 73 69 7a 65 74 79 70 3e 09 73 69 7a 65 3b 09 |_sizetyp>.size;.| 0002b800 2f 2a 20 4d 75 6c 74 69 70 6c 65 20 6f 66 20 34 |/* Multiple of 4| 0002b810 20 2a 2f 0a 20 09 20 09 3c 64 72 61 77 5f 62 62 | */. . .<draw_bb| 0002b820 6f 78 74 79 70 3e 09 62 62 6f 78 3b 09 0a 20 09 |oxtyp>.bbox;.. .| 0002b830 7d 00 00 00 44 41 54 41 87 01 00 00 64 72 61 77 |}...DATA....draw| 0002b840 5f 70 61 74 68 5f 74 61 67 74 79 70 65 0a 54 68 |_path_tagtype.Th| 0002b850 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0002b860 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 |ed in <drawftype| 0002b870 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e |s.h=>drawftypes>| 0002b880 20 61 73 20 61 6e 0a 65 6e 75 6d 65 72 61 74 65 | as an.enumerate| 0002b890 64 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e |d type containin| 0002b8a0 67 20 61 20 74 61 67 20 69 6e 64 65 6e 74 69 66 |g a tag indentif| 0002b8b0 69 65 72 0a 77 69 74 68 69 6e 20 61 20 70 61 74 |ier.within a pat| 0002b8c0 68 20 6f 62 6a 65 63 74 2e 20 49 74 20 69 73 20 |h object. It is | 0002b8d0 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a 20 09 5c |defined as:.. .\| 0002b8e0 7b 0a 20 09 20 09 64 72 61 77 5f 50 61 74 68 54 |{. . .draw_PathT| 0002b8f0 45 52 4d 09 3d 20 30 2c 09 2f 2a 20 65 6e 64 20 |ERM.= 0,./* end | 0002b900 6f 66 20 70 61 74 68 20 2a 2f 0a 20 09 20 09 64 |of path */. . .d| 0002b910 72 61 77 5f 50 61 74 68 4d 4f 56 45 09 3d 20 32 |raw_PathMOVE.= 2| 0002b920 2c 09 2f 2a 20 6d 6f 76 65 20 74 6f 20 28 78 2c |,./* move to (x,| 0002b930 79 29 20 2a 2f 0a 20 09 20 09 64 72 61 77 5f 50 |y) */. . .draw_P| 0002b940 61 74 68 4c 49 4e 45 09 3d 20 38 2c 09 2f 2a 20 |athLINE.= 8,./* | 0002b950 64 72 61 77 20 74 6f 20 28 78 2c 79 29 20 2a 2f |draw to (x,y) */| 0002b960 0a 20 09 20 09 64 72 61 77 5f 50 61 74 68 43 55 |. . .draw_PathCU| 0002b970 52 56 45 09 3d 20 36 2c 09 2f 2a 20 62 65 7a 69 |RVE.= 6,./* bezi| 0002b980 65 72 20 63 75 72 76 65 20 2a 2f 0a 20 09 20 09 |er curve */. . .| 0002b990 64 72 61 77 5f 50 61 74 68 43 4c 4f 53 45 09 3d |draw_PathCLOSE.=| 0002b9a0 20 35 2c 09 2f 2a 20 63 6c 6f 73 65 20 73 75 62 | 5,./* close sub| 0002b9b0 70 61 74 68 20 2a 2f 0a 20 09 7d 00 44 41 54 41 |path */. .}.DATA| 0002b9c0 aa 01 00 00 64 72 61 77 5f 70 61 74 68 73 74 72 |....draw_pathstr| 0002b9d0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0002b9e0 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 |fined in <drawft| 0002b9f0 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 |ypes.h=>drawftyp| 0002ba00 65 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 6f |es> as a type co| 0002ba10 6e 74 61 69 6e 69 6e 67 20 61 20 70 61 74 68 20 |ntaining a path | 0002ba20 6f 62 6a 65 63 74 2e 20 49 74 20 69 73 20 64 65 |object. It is de| 0002ba30 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c |fined as the fol| 0002ba40 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 |lowing structure| 0002ba50 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 |:.. .\{. . .<dra| 0002ba60 77 5f 74 61 67 74 79 70 3e 09 74 61 67 3b 0a 20 |w_tagtyp>.tag;. | 0002ba70 09 20 09 3c 64 72 61 77 5f 73 69 7a 65 74 79 70 |. .<draw_sizetyp| 0002ba80 3e 09 73 69 7a 65 3b 0a 20 09 20 09 3c 64 72 61 |>.size;. . .<dra| 0002ba90 77 5f 62 62 6f 78 74 79 70 3e 09 62 62 6f 78 3b |w_bboxtyp>.bbox;| 0002baa0 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 79 |. . .<draw_colty| 0002bab0 70 3e 09 20 66 69 6c 6c 63 6f 6c 6f 75 72 3b 0a |p>. fillcolour;.| 0002bac0 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 79 70 | . .<draw_coltyp| 0002bad0 3e 09 70 61 74 68 63 6f 6c 6f 75 72 3b 0a 20 09 |>.pathcolour;. .| 0002bae0 20 09 3c 64 72 61 77 5f 70 61 74 68 77 69 64 74 | .<draw_pathwidt| 0002baf0 68 3e 09 70 61 74 68 77 69 64 74 68 3b 0a 20 09 |h>.pathwidth;. .| 0002bb00 20 09 3c 64 72 61 77 5f 70 61 74 68 73 74 79 6c | .<draw_pathstyl| 0002bb10 65 3e 09 70 61 74 68 73 74 79 6c 65 3b 0a 20 09 |e>.pathstyle;. .| 0002bb20 20 09 3c 64 72 61 77 5f 64 61 73 68 73 74 72 3e | .<draw_dashstr>| 0002bb30 09 64 61 74 61 3b 09 2f 2a 20 6f 70 74 69 6f 6e |.data;./* option| 0002bb40 61 6c 20 2a 2f 0a 20 09 20 09 69 6e 74 09 50 41 |al */. . .int.PA| 0002bb50 54 48 3b 09 2f 2a 20 3f 21 3f 21 3f 21 3f 21 20 |TH;./* ?!?!?!?! | 0002bb60 2a 2f 0a 20 09 7d 00 00 44 41 54 41 8b 01 00 00 |*/. .}..DATA....| 0002bb70 64 72 61 77 5f 70 61 74 68 73 74 72 68 64 72 0a |draw_pathstrhdr.| 0002bb80 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 0002bb90 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 |ined in <drawfty| 0002bba0 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 |pes.h=>drawftype| 0002bbb0 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 6f 6e |s> as a type con| 0002bbc0 74 61 69 6e 69 6e 67 20 61 20 70 61 74 68 20 6f |taining a path o| 0002bbd0 62 6a 65 63 74 2c 20 77 69 74 68 6f 75 74 20 74 |bject, without t| 0002bbe0 68 65 20 61 63 74 75 61 6c 20 70 61 74 68 20 63 |he actual path c| 0002bbf0 6f 6d 70 6f 6e 65 6e 74 73 2e 20 49 74 20 69 73 |omponents. It is| 0002bc00 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 | defined as the | 0002bc10 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 |following struct| 0002bc20 75 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 3c |ure:.. .\{. . .<| 0002bc30 64 72 61 77 5f 74 61 67 74 79 70 3e 09 74 61 67 |draw_tagtyp>.tag| 0002bc40 3b 0a 20 09 20 09 3c 64 72 61 77 5f 73 69 7a 65 |;. . .<draw_size| 0002bc50 74 79 70 3e 09 73 69 7a 65 3b 0a 20 09 20 09 3c |typ>.size;. . .<| 0002bc60 64 72 61 77 5f 62 62 6f 78 74 79 70 3e 09 62 62 |draw_bboxtyp>.bb| 0002bc70 6f 78 3b 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f |ox;. . .<draw_co| 0002bc80 6c 74 79 70 3e 09 66 69 6c 6c 63 6f 6c 6f 75 72 |ltyp>.fillcolour| 0002bc90 3b 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 |;. . .<draw_colt| 0002bca0 79 70 3e 09 70 61 74 68 63 6f 6c 6f 75 72 3b 0a |yp>.pathcolour;.| 0002bcb0 20 09 20 09 3c 64 72 61 77 5f 70 61 74 68 77 69 | . .<draw_pathwi| 0002bcc0 64 74 68 3e 09 70 61 74 68 77 69 64 74 68 3b 0a |dth>.pathwidth;.| 0002bcd0 20 09 20 09 3c 64 72 61 77 5f 70 61 74 68 73 74 | . .<draw_pathst| 0002bce0 79 6c 65 3e 09 70 61 74 68 73 74 79 6c 65 3b 0a |yle>.pathstyle;.| 0002bcf0 20 09 7d 00 44 41 54 41 2f 01 00 00 64 72 61 77 | .}.DATA/...draw| 0002bd00 5f 70 61 74 68 73 74 79 6c 65 0a 54 68 69 73 20 |_pathstyle.This | 0002bd10 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 0002bd20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 |in <drawftypes.h| 0002bd30 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 73 |=>drawftypes> as| 0002bd40 20 61 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 | a type capable | 0002bd50 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 70 61 74 |of holding a pat| 0002bd60 68 20 73 74 79 6c 65 20 64 65 73 63 72 69 70 74 |h style descript| 0002bd70 69 6f 6e 20 77 6f 72 64 2e 20 49 74 20 69 73 20 |ion word. It is | 0002bd80 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 |defined as the f| 0002bd90 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 |ollowing structu| 0002bda0 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 75 6e |re:.. .\{. . .un| 0002bdb0 73 69 67 6e 65 64 20 63 68 61 72 20 6a 6f 69 6e |signed char join| 0002bdc0 63 61 70 77 69 6e 64 3b 0a 20 09 20 09 75 6e 73 |capwind;. . .uns| 0002bdd0 69 67 6e 65 64 20 63 68 61 72 20 72 65 73 65 72 |igned char reser| 0002bde0 76 65 64 38 3b 0a 20 09 20 09 75 6e 73 69 67 6e |ved8;. . .unsign| 0002bdf0 65 64 20 63 68 61 72 20 74 72 69 63 61 70 77 69 |ed char tricapwi| 0002be00 64 3b 0a 20 09 20 09 75 6e 73 69 67 6e 65 64 20 |d;. . .unsigned | 0002be10 63 68 61 72 20 74 72 69 63 61 70 68 65 69 3b 0a |char tricaphei;.| 0002be20 20 09 7d 00 44 41 54 41 90 00 00 00 64 72 61 77 | .}.DATA....draw| 0002be30 5f 70 61 74 68 77 69 64 74 68 0a 54 68 69 73 20 |_pathwidth.This | 0002be40 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 0002be50 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 |in <drawftypes.h| 0002be60 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 73 |=>drawftypes> as| 0002be70 20 61 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 | a type capable | 0002be80 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 77 69 64 |of holding a wid| 0002be90 74 68 20 76 61 6c 75 65 2e 20 49 74 20 69 73 20 |th value. It is | 0002bea0 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 2f 69 |defined as an /i| 0002beb0 6e 74 2f 2e 44 41 54 41 29 01 00 00 64 72 61 77 |nt/.DATA)...draw| 0002bec0 5f 71 75 65 72 79 62 6f 78 0a 53 79 6e 74 61 78 |_querybox.Syntax| 0002bed0 3a 09 76 6f 69 64 20 64 72 61 77 5f 71 75 65 72 |:.void draw_quer| 0002bee0 79 62 6f 78 20 28 3c 64 72 61 77 5f 64 69 61 67 |ybox (<draw_diag| 0002bef0 3e 20 2a 64 69 61 67 2c 20 3c 64 72 61 77 5f 62 |> *diag, <draw_b| 0002bf00 6f 78 3e 20 2a 62 6f 78 2c 20 3c 42 4f 4f 4c 3e |ox> *box, <BOOL>| 0002bf10 20 73 63 72 65 65 6e 55 6e 69 74 73 29 3b 0a 48 | screenUnits);.H| 0002bf20 65 61 64 65 72 3a 09 3c 64 72 61 77 66 64 69 61 |eader:.<drawfdia| 0002bf30 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 3e 0a |g.h=>drawfdiag>.| 0002bf40 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 |.This function f| 0002bf50 69 6e 64 73 20 74 68 65 20 62 6f 75 6e 64 69 6e |inds the boundin| 0002bf60 67 20 62 6f 78 20 6f 66 20 2f 64 69 61 67 2f 20 |g box of /diag/ | 0002bf70 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 20 69 |and returns it i| 0002bf80 6e 20 2f 62 6f 78 2f 2e 20 49 66 20 2f 73 63 72 |n /box/. If /scr| 0002bf90 65 65 6e 55 6e 69 74 73 2f 20 69 73 20 3c 54 52 |eenUnits/ is <TR| 0002bfa0 55 45 3e 20 74 68 65 6e 20 74 68 65 20 62 6f 78 |UE> then the box| 0002bfb0 20 69 73 20 69 6e 20 73 63 72 65 65 6e 20 75 6e | is in screen un| 0002bfc0 69 74 73 20 65 6c 73 65 20 69 74 20 69 73 20 69 |its else it is i| 0002bfd0 6e 20 64 72 61 77 20 75 6e 69 74 73 2e 00 00 00 |n draw units....| 0002bfe0 44 41 54 41 1d 01 00 00 64 72 61 77 5f 72 65 62 |DATA....draw_reb| 0002bff0 69 6e 64 5f 64 69 61 67 0a 53 79 6e 74 61 78 3a |ind_diag.Syntax:| 0002c000 09 76 6f 69 64 20 64 72 61 77 5f 72 65 62 69 6e |.void draw_rebin| 0002c010 64 5f 64 69 61 67 20 28 3c 64 72 61 77 5f 64 69 |d_diag (<draw_di| 0002c020 61 67 3e 20 2a 64 69 61 67 29 3b 0a 48 65 61 64 |ag> *diag);.Head| 0002c030 65 72 3a 09 3c 64 72 61 77 66 64 69 61 67 2e 68 |er:.<drawfdiag.h| 0002c040 3d 3e 64 72 61 77 66 64 69 61 67 3e 0a 0a 54 68 |=>drawfdiag>..Th| 0002c050 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 63 |is function forc| 0002c060 65 73 20 74 68 65 20 68 65 61 64 65 72 20 6f 66 |es the header of| 0002c070 20 61 20 64 69 61 67 72 61 6d 27 73 20 62 6f 75 | a diagram's bou| 0002c080 6e 64 69 6e 67 20 62 6f 78 20 74 6f 20 62 65 20 |nding box to be | 0002c090 65 78 61 63 74 6c 79 20 74 68 65 20 75 6e 69 6f |exactly the unio| 0002c0a0 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 73 |n of the objects| 0002c0b0 20 69 6e 20 69 74 2e 20 54 68 65 20 64 69 61 67 | in it. The diag| 0002c0c0 72 61 6d 20 73 68 6f 75 6c 64 20 68 61 76 65 20 |ram should have | 0002c0d0 62 65 65 6e 20 70 72 6f 63 65 73 73 65 64 20 62 |been processed b| 0002c0e0 79 20 3c 64 72 61 77 5f 76 65 72 69 66 79 5f 64 |y <draw_verify_d| 0002c0f0 69 61 67 3e 28 29 20 66 69 72 73 74 2e 00 00 00 |iag>() first....| 0002c100 44 41 54 41 41 01 00 00 64 72 61 77 5f 72 65 64 |DATAA...draw_red| 0002c110 72 61 77 73 74 72 0a 54 68 69 73 20 74 79 70 65 |rawstr.This type| 0002c120 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 0002c130 64 72 61 77 66 64 69 61 67 2e 68 3d 3e 64 72 61 |drawfdiag.h=>dra| 0002c140 77 66 64 69 61 67 3e 2e 20 49 74 20 69 73 20 61 |wfdiag>. It is a| 0002c150 20 72 65 64 72 61 77 20 73 74 72 75 63 74 75 72 | redraw structur| 0002c160 65 2e 20 49 74 20 69 73 20 74 68 65 20 73 61 6d |e. It is the sam| 0002c170 65 20 73 74 72 75 63 74 75 72 65 20 61 73 20 61 |e structure as a| 0002c180 20 3c 77 69 6d 70 5f 72 65 64 72 61 77 73 74 72 | <wimp_redrawstr| 0002c190 3e 20 61 6e 64 20 6d 61 79 20 62 65 20 63 61 73 |> and may be cas| 0002c1a0 74 20 66 72 6f 6d 20 6f 6e 65 2e 0a 0a 20 20 5c |t from one... \| 0002c1b0 7b 0a 20 20 20 20 69 6e 74 20 20 20 20 20 20 72 |{. int r| 0002c1c0 65 73 65 72 76 65 64 3b 09 0a 20 20 20 20 64 72 |eserved;.. dr| 0002c1d0 61 77 5f 62 6f 78 20 62 6f 78 3b 09 2f 2a 20 57 |aw_box box;./* W| 0002c1e0 6f 72 6b 20 61 72 65 61 20 62 6f 78 20 2a 2f 0a |ork area box */.| 0002c1f0 20 20 20 20 69 6e 74 20 20 20 20 20 20 73 63 78 | int scx| 0002c200 2c 20 73 63 79 3b 09 2f 2a 20 53 63 72 6f 6c 6c |, scy;./* Scroll| 0002c210 20 70 6f 73 20 2a 2f 0a 20 20 20 20 64 72 61 77 | pos */. draw| 0002c220 5f 62 6f 78 20 67 3b 09 2f 2a 20 47 72 61 70 68 |_box g;./* Graph| 0002c230 69 63 73 20 77 69 6e 64 6f 77 20 2a 2f 0a 20 20 |ics window */. | 0002c240 7d 00 00 00 44 41 54 41 06 02 00 00 64 72 61 77 |}...DATA....draw| 0002c250 5f 72 65 67 69 73 74 65 72 4d 65 6d 6f 72 79 46 |_registerMemoryF| 0002c260 75 6e 63 74 69 6f 6e 73 0a 53 79 6e 74 61 78 3a |unctions.Syntax:| 0002c270 09 76 6f 69 64 20 64 72 61 77 5f 72 65 67 69 73 |.void draw_regis| 0002c280 74 65 72 4d 65 6d 6f 72 79 46 75 6e 63 74 69 6f |terMemoryFunctio| 0002c290 6e 73 20 28 3c 64 72 61 77 5f 61 6c 6c 6f 63 61 |ns (<draw_alloca| 0002c2a0 74 65 3e 20 61 6c 6c 6f 63 2c 20 3c 64 72 61 77 |te> alloc, <draw| 0002c2b0 5f 65 78 74 65 6e 64 3e 20 65 78 74 65 6e 64 2c |_extend> extend,| 0002c2c0 20 3c 64 72 61 77 5f 66 72 65 65 3e 20 66 72 65 | <draw_free> fre| 0002c2d0 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 |e);.Header:.<dra| 0002c2e0 77 66 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 |wfdiag.h=>drawfd| 0002c2f0 69 61 67 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |iag>..This funct| 0002c300 69 6f 6e 20 72 65 67 69 73 74 65 72 73 20 74 68 |ion registers th| 0002c310 72 65 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f |ree functions to| 0002c320 20 62 65 20 75 73 65 64 20 74 6f 20 61 6c 6c 6f | be used to allo| 0002c330 63 61 74 65 2c 20 65 78 74 65 6e 64 2c 20 61 6e |cate, extend, an| 0002c340 64 20 66 72 65 65 20 6d 65 6d 6f 72 79 2c 20 77 |d free memory, w| 0002c350 68 65 6e 20 72 65 6e 64 65 72 69 6e 67 20 74 65 |hen rendering te| 0002c360 78 74 20 61 72 65 61 20 6f 62 6a 65 63 74 73 2e |xt area objects.| 0002c370 20 49 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f | If this functio| 0002c380 6e 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 20 |n is not called | 0002c390 28 6f 72 20 69 66 20 6d 65 6d 6f 72 79 20 63 61 |(or if memory ca| 0002c3a0 6e 6e 6f 74 20 62 65 20 61 6c 6c 6f 63 61 74 65 |nnot be allocate| 0002c3b0 64 29 20 74 68 65 6e 20 72 65 6e 64 65 72 69 6e |d) then renderin| 0002c3c0 67 20 61 20 74 65 78 74 20 61 72 65 61 20 77 69 |g a text area wi| 0002c3d0 6c 6c 20 68 61 76 65 20 6e 6f 20 65 66 66 65 63 |ll have no effec| 0002c3e0 74 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 |t. Note that the| 0002c3f0 20 66 75 6e 63 74 69 6f 6e 73 20 3c 66 6c 65 78 | functions <flex| 0002c400 5f 61 6c 6c 6f 63 3e 2c 20 3c 66 6c 65 78 5f 65 |_alloc>, <flex_e| 0002c410 78 74 65 6e 64 3e 20 61 6e 64 20 3c 66 6c 65 78 |xtend> and <flex| 0002c420 5f 66 72 65 65 3e 20 63 61 6e 20 62 65 20 75 73 |_free> can be us| 0002c430 65 64 20 61 73 20 74 68 65 20 74 68 72 65 65 20 |ed as the three | 0002c440 66 75 6e 63 74 69 6f 6e 73 2e 00 00 44 41 54 41 |functions...DATA| 0002c450 d0 01 00 00 64 72 61 77 5f 72 65 6e 64 65 72 5f |....draw_render_| 0002c460 64 69 61 67 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |diag.Syntax:.<BO| 0002c470 4f 4c 3e 20 64 72 61 77 5f 72 65 6e 64 65 72 5f |OL> draw_render_| 0002c480 64 69 61 67 20 28 3c 64 72 61 77 5f 64 69 61 67 |diag (<draw_diag| 0002c490 3e 20 2a 64 69 61 67 2c 20 3c 64 72 61 77 5f 72 |> *diag, <draw_r| 0002c4a0 65 64 72 61 77 73 74 72 3e 20 2a 72 2c 20 64 6f |edrawstr> *r, do| 0002c4b0 75 62 6c 65 20 73 63 61 6c 65 2c 20 3c 64 72 61 |uble scale, <dra| 0002c4c0 77 5f 65 72 72 6f 72 3e 20 2a 65 72 72 6f 72 29 |w_error> *error)| 0002c4d0 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 77 66 |;.Header:.<drawf| 0002c4e0 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 |diag.h=>drawfdia| 0002c4f0 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 |g>..Returns:.<TR| 0002c500 55 45 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 |UE> if successfu| 0002c510 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |l...This functio| 0002c520 6e 20 72 65 6e 64 65 72 73 20 74 68 65 20 67 69 |n renders the gi| 0002c530 76 65 6e 20 64 69 61 67 72 61 6d 20 77 69 74 68 |ven diagram with| 0002c540 20 74 68 65 20 67 69 76 65 6e 20 73 63 61 6c 65 | the given scale| 0002c550 20 66 61 63 74 6f 72 2c 20 69 6e 20 61 20 67 69 | factor, in a gi| 0002c560 76 65 6e 20 57 69 6d 70 20 72 65 64 72 61 77 20 |ven Wimp redraw | 0002c570 72 65 63 74 61 6e 67 6c 65 2e 20 54 68 65 20 64 |rectangle. The d| 0002c580 69 61 67 72 61 6d 20 6d 75 73 74 20 68 61 76 65 |iagram must have| 0002c590 20 62 65 65 6e 20 70 72 6f 63 65 73 73 65 64 20 | been processed | 0002c5a0 62 79 20 3c 64 72 61 77 5f 76 65 72 69 66 79 5f |by <draw_verify_| 0002c5b0 64 69 61 67 3e 28 29 2e 20 56 65 72 79 20 73 6d |diag>(). Very sm| 0002c5c0 61 6c 6c 20 61 6e 64 20 6e 65 67 61 74 69 76 65 |all and negative| 0002c5d0 20 73 63 61 6c 65 20 66 61 63 74 6f 72 73 20 77 | scale factors w| 0002c5e0 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 61 20 |ill result in a | 0002c5f0 72 75 6e 2d 74 69 6d 65 20 65 72 72 6f 72 2e 20 |run-time error. | 0002c600 2f 73 63 61 6c 65 2f 20 73 68 6f 75 6c 64 20 62 |/scale/ should b| 0002c610 65 20 3e 20 30 2e 30 30 30 30 39 2e 44 41 54 41 |e > 0.00009.DATA| 0002c620 dd 00 00 00 64 72 61 77 5f 73 63 72 65 65 6e 54 |....draw_screenT| 0002c630 6f 44 72 61 77 0a 53 79 6e 74 61 78 3a 09 69 6e |oDraw.Syntax:.in| 0002c640 74 20 64 72 61 77 5f 73 63 72 65 65 6e 54 6f 44 |t draw_screenToD| 0002c650 72 61 77 20 28 69 6e 74 20 69 29 3b 0a 48 65 61 |raw (int i);.Hea| 0002c660 64 65 72 3a 09 3c 64 72 61 77 66 64 69 61 67 2e |der:.<drawfdiag.| 0002c670 68 3d 3e 64 72 61 77 66 64 69 61 67 3e 0a 0a 52 |h=>drawfdiag>..R| 0002c680 65 74 75 72 6e 73 3a 09 2f 69 2f 20 69 6e 20 73 |eturns:./i/ in s| 0002c690 63 72 65 65 6e 20 75 6e 69 74 73 2e 0a 0a 54 68 |creen units...Th| 0002c6a0 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 |is function-like| 0002c6b0 20 6d 61 63 72 6f 20 63 6f 6e 76 65 72 74 73 20 | macro converts | 0002c6c0 66 72 6f 6d 20 73 63 72 65 65 6e 20 75 6e 69 74 |from screen unit| 0002c6d0 73 20 74 6f 20 64 72 61 77 20 75 6e 69 74 73 2e |s to draw units.| 0002c6e0 20 49 74 20 72 65 74 75 72 6e 73 20 28 28 69 29 | It returns ((i)| 0002c6f0 20 5c 3c 5c 3c 20 38 29 2e 00 00 00 44 41 54 41 | \<\< 8)....DATA| 0002c700 45 01 00 00 64 72 61 77 5f 73 65 74 46 6f 6e 74 |E...draw_setFont| 0002c710 54 61 62 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f |Table.Syntax:.vo| 0002c720 69 64 20 64 72 61 77 5f 73 65 74 46 6f 6e 74 54 |id draw_setFontT| 0002c730 61 62 6c 65 20 28 3c 64 72 61 77 5f 64 69 61 67 |able (<draw_diag| 0002c740 3e 20 2a 64 69 61 67 29 3b 0a 48 65 61 64 65 72 |> *diag);.Header| 0002c750 3a 09 3c 64 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 |:.<drawfobj.h=>d| 0002c760 72 61 77 66 6f 62 6a 3e 0a 0a 54 68 69 73 20 66 |rawfobj>..This f| 0002c770 75 6e 63 74 69 6f 6e 20 73 63 61 6e 73 20 74 68 |unction scans th| 0002c780 65 20 67 69 76 65 6e 20 64 69 61 67 72 61 6d 20 |e given diagram | 0002c790 66 6f 72 20 61 20 66 6f 6e 74 20 74 61 62 6c 65 |for a font table| 0002c7a0 20 6f 62 6a 65 63 74 20 61 6e 64 20 72 65 63 6f | object and reco| 0002c7b0 72 64 73 20 69 74 2e 20 49 74 20 6d 75 73 74 20 |rds it. It must | 0002c7c0 62 65 20 63 61 6c 6c 65 64 20 66 6f 72 20 3c 64 |be called for <d| 0002c7d0 72 61 77 5f 64 6f 4f 62 6a 65 63 74 73 3e 20 74 |raw_doObjects> t| 0002c7e0 6f 20 77 6f 72 6b 20 6f 6e 20 61 20 73 65 71 75 |o work on a sequ| 0002c7f0 65 6e 63 65 20 6f 66 20 6f 62 6a 65 63 74 73 20 |ence of objects | 0002c800 74 68 61 74 20 69 6e 63 6c 75 64 65 73 20 74 65 |that includes te| 0002c810 78 74 20 6f 62 6a 65 63 74 73 20 75 73 69 6e 67 |xt objects using| 0002c820 20 66 6f 6e 74 73 2c 20 62 75 74 20 6e 6f 20 66 | fonts, but no f| 0002c830 6f 6e 74 20 74 61 62 6c 65 20 6f 62 6a 65 63 74 |ont table object| 0002c840 2e 00 00 00 44 41 54 41 1c 01 00 00 64 72 61 77 |....DATA....draw| 0002c850 5f 73 68 69 66 74 5f 64 69 61 67 0a 53 79 6e 74 |_shift_diag.Synt| 0002c860 61 78 3a 09 76 6f 69 64 20 64 72 61 77 5f 73 68 |ax:.void draw_sh| 0002c870 69 66 74 5f 64 69 61 67 20 28 3c 64 72 61 77 5f |ift_diag (<draw_| 0002c880 64 69 61 67 3e 20 2a 64 69 61 67 2c 20 69 6e 74 |diag> *diag, int| 0002c890 20 78 4d 6f 76 65 2c 20 69 6e 74 20 79 4d 6f 76 | xMove, int yMov| 0002c8a0 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 |e);.Header:.<dra| 0002c8b0 77 66 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 |wfdiag.h=>drawfd| 0002c8c0 69 61 67 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |iag>..This funct| 0002c8d0 69 6f 6e 20 73 68 69 66 74 73 20 61 20 64 69 61 |ion shifts a dia| 0002c8e0 67 72 61 6d 20 62 79 20 61 20 67 69 76 65 6e 20 |gram by a given | 0002c8f0 64 69 73 74 61 6e 63 65 2e 20 41 6c 6c 20 63 6f |distance. All co| 0002c900 6f 72 64 69 6e 61 74 65 73 20 69 6e 20 74 68 65 |ordinates in the| 0002c910 20 64 69 61 67 72 61 6d 20 61 72 65 20 6d 6f 76 | diagram are mov| 0002c920 65 64 20 62 79 20 2f 78 4d 6f 76 65 2f 20 69 6e |ed by /xMove/ in| 0002c930 20 74 68 65 20 78 20 64 69 72 65 63 74 69 6f 6e | the x direction| 0002c940 20 61 6e 64 20 2f 79 4d 6f 76 65 2f 20 69 6e 20 | and /yMove/ in | 0002c950 74 68 65 20 79 20 64 69 72 65 63 74 69 6f 6e 2e |the y direction.| 0002c960 44 41 54 41 8d 00 00 00 64 72 61 77 5f 73 69 7a |DATA....draw_siz| 0002c970 65 74 79 70 0a 54 68 69 73 20 74 79 70 65 20 69 |etyp.This type i| 0002c980 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 0002c990 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 0002c9a0 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 0002c9b0 65 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c |e capable of hol| 0002c9c0 64 69 6e 67 20 61 20 73 69 7a 65 20 76 61 6c 75 |ding a size valu| 0002c9d0 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |e. It is defined| 0002c9e0 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 00 | as an /int/....| 0002c9f0 44 41 54 41 39 01 00 00 64 72 61 77 5f 73 70 72 |DATA9...draw_spr| 0002ca00 69 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |istr.This type i| 0002ca10 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 0002ca20 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 0002ca30 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 0002ca40 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 73 |e containing a s| 0002ca50 70 72 69 74 65 20 6f 62 6a 65 63 74 2e 20 49 74 |prite object. It| 0002ca60 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 | is defined as t| 0002ca70 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 |he following str| 0002ca80 75 63 74 75 72 65 3a 0a 0a 20 09 09 5c 7b 0a 20 |ucture:.. ..\{. | 0002ca90 09 20 09 3c 64 72 61 77 5f 74 61 67 74 79 70 3e |. .<draw_tagtyp>| 0002caa0 09 74 61 67 3b 09 2f 2a 20 74 61 67 20 3d 3d 20 |.tag;./* tag == | 0002cab0 35 20 2a 2f 0a 20 09 20 09 3c 64 72 61 77 5f 73 |5 */. . .<draw_s| 0002cac0 69 7a 65 74 79 70 3e 09 73 69 7a 65 3b 0a 20 09 |izetyp>.size;. .| 0002cad0 20 09 3c 64 72 61 77 5f 62 62 6f 78 74 79 70 3e | .<draw_bboxtyp>| 0002cae0 09 62 62 6f 78 3b 0a 20 09 20 09 3c 73 70 72 69 |.bbox;. . .<spri| 0002caf0 74 65 5f 68 65 61 64 65 72 3e 09 73 70 72 69 74 |te_header>.sprit| 0002cb00 65 3b 0a 20 09 20 09 69 6e 74 09 70 61 6c 65 74 |e;. . .int.palet| 0002cb10 74 65 5b 31 5d 3b 09 2f 2a 20 6f 70 74 69 6f 6e |te[1];./* option| 0002cb20 61 6c 20 2a 2f 0a 20 09 7d 00 00 00 44 41 54 41 |al */. .}...DATA| 0002cb30 1b 01 00 00 64 72 61 77 5f 73 70 72 69 73 74 72 |....draw_spristr| 0002cb40 68 64 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 |hdr.This type is| 0002cb50 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 0002cb60 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 |wftypes.h=>drawf| 0002cb70 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 65 |types> as a type| 0002cb80 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 73 70 | containing a sp| 0002cb90 72 69 74 65 20 6f 62 6a 65 63 74 2c 20 77 69 74 |rite object, wit| 0002cba0 68 6f 75 74 20 74 68 65 20 61 63 74 75 61 6c 20 |hout the actual | 0002cbb0 73 70 72 69 74 65 2e 20 49 74 20 69 73 20 64 65 |sprite. It is de| 0002cbc0 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c |fined as the fol| 0002cbd0 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 |lowing structure| 0002cbe0 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 |:.. .\{. . .<dra| 0002cbf0 77 5f 74 61 67 74 79 70 3e 09 74 61 67 3b 20 20 |w_tagtyp>.tag; | 0002cc00 20 20 20 2f 2a 20 74 61 67 20 3d 3d 20 35 20 2a | /* tag == 5 *| 0002cc10 2f 0a 20 09 20 09 3c 64 72 61 77 5f 73 69 7a 65 |/. . .<draw_size| 0002cc20 74 79 70 3e 09 73 69 7a 65 3b 0a 20 09 20 09 3c |typ>.size;. . .<| 0002cc30 64 72 61 77 5f 62 62 6f 78 74 79 70 3e 09 62 62 |draw_bboxtyp>.bb| 0002cc40 6f 78 3b 0a 20 09 7d 00 44 41 54 41 39 01 00 00 |ox;. .}.DATA9...| 0002cc50 64 72 61 77 5f 74 61 67 74 79 70 0a 54 68 69 73 |draw_tagtyp.This| 0002cc60 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 0002cc70 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e | in <drawftypes.| 0002cc80 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 |h=>drawftypes> a| 0002cc90 73 20 61 6e 0a 65 6e 75 6d 65 72 61 74 65 64 20 |s an.enumerated | 0002cca0 74 79 70 65 20 68 6f 6c 64 69 6e 67 20 6f 62 6a |type holding obj| 0002ccb0 65 63 74 20 74 79 70 65 20 6e 75 6d 62 65 72 73 |ect type numbers| 0002ccc0 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 64 72 61 77 |:.. .\{. . .draw| 0002ccd0 5f 4f 42 4a 46 4f 4e 54 4c 49 53 54 09 3d 20 30 |_OBJFONTLIST.= 0| 0002cce0 2c 0a 20 09 20 09 64 72 61 77 5f 4f 42 4a 54 45 |,. . .draw_OBJTE| 0002ccf0 58 54 20 20 20 20 09 3d 20 31 2c 0a 20 09 20 09 |XT .= 1,. . .| 0002cd00 64 72 61 77 5f 4f 42 4a 50 41 54 48 20 20 20 20 |draw_OBJPATH | 0002cd10 09 3d 20 32 2c 0a 20 09 20 09 64 72 61 77 5f 4f |.= 2,. . .draw_O| 0002cd20 42 4a 53 50 52 49 54 45 20 20 09 3d 20 33 2c 0a |BJSPRITE .= 3,.| 0002cd30 20 09 20 09 64 72 61 77 5f 4f 42 4a 47 52 4f 55 | . .draw_OBJGROU| 0002cd40 50 20 20 20 09 3d 20 36 2c 0a 20 09 20 09 64 72 |P .= 6,. . .dr| 0002cd50 61 77 5f 4f 42 4a 54 45 58 54 41 52 45 41 09 3d |aw_OBJTEXTAREA.=| 0002cd60 20 39 2c 0a 20 09 20 09 64 72 61 77 5f 4f 42 4a | 9,. . .draw_OBJ| 0002cd70 54 45 58 54 43 4f 4c 20 09 3d 20 31 30 0a 20 09 |TEXTCOL .= 10. .| 0002cd80 7d 00 00 00 44 41 54 41 41 01 00 00 64 72 61 77 |}...DATAA...draw| 0002cd90 5f 74 65 78 74 61 72 65 61 65 6e 64 0a 54 68 69 |_textareaend.Thi| 0002cda0 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 0002cdb0 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 |d in <drawftypes| 0002cdc0 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 |.h=>drawftypes> | 0002cdd0 61 73 20 61 20 74 79 70 65 20 63 6f 6e 74 61 69 |as a type contai| 0002cde0 6e 69 6e 67 20 74 65 78 74 20 61 72 65 61 20 6f |ning text area o| 0002cdf0 62 6a 65 63 74 20 64 61 74 61 2e 20 49 74 20 69 |bject data. It i| 0002ce00 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 |s defined as the| 0002ce10 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 | following struc| 0002ce20 74 75 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 |ture:.. .\{. . .| 0002ce30 69 6e 74 09 65 6e 64 6d 61 72 6b 3b 20 20 20 20 |int.endmark; | 0002ce40 20 2f 2a 20 65 6e 64 6d 61 72 6b 20 3d 3d 20 30 | /* endmark == 0| 0002ce50 20 2a 2f 0a 20 09 20 09 69 6e 74 09 62 6c 61 6e | */. . .int.blan| 0002ce60 6b 31 3b 0a 20 09 20 09 69 6e 74 09 62 6c 61 6e |k1;. . .int.blan| 0002ce70 6b 32 3b 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f |k2;. . .<draw_co| 0002ce80 6c 74 79 70 3e 09 74 65 78 74 63 6f 6c 6f 75 72 |ltyp>.textcolour| 0002ce90 3b 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 |;. . .<draw_colt| 0002cea0 79 70 3e 09 62 61 63 6b 63 6f 6c 6f 75 72 3b 0a |yp>.backcolour;.| 0002ceb0 20 09 20 09 63 68 61 72 09 74 65 78 74 5b 31 5d | . .char.text[1]| 0002cec0 3b 0a 20 09 7d 00 00 00 44 41 54 41 f8 00 00 00 |;. .}...DATA....| 0002ced0 64 72 61 77 5f 74 65 78 74 61 72 65 61 68 64 72 |draw_textareahdr| 0002cee0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0002cef0 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 |fined in <drawft| 0002cf00 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 |ypes.h=>drawftyp| 0002cf10 65 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 6f |es> as a type co| 0002cf20 6e 74 61 69 6e 69 6e 67 20 61 20 74 65 78 74 20 |ntaining a text | 0002cf30 61 72 65 61 20 6f 62 6a 65 63 74 20 68 65 61 64 |area object head| 0002cf40 65 72 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |er. It is define| 0002cf50 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |d as the followi| 0002cf60 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 |ng structure:.. | 0002cf70 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 74 61 |.\{. . .<draw_ta| 0002cf80 67 74 79 70 3e 09 74 61 67 3b 0a 20 09 20 09 3c |gtyp>.tag;. . .<| 0002cf90 64 72 61 77 5f 73 69 7a 65 74 79 70 3e 09 73 69 |draw_sizetyp>.si| 0002cfa0 7a 65 3b 0a 20 09 20 09 3c 64 72 61 77 5f 62 62 |ze;. . .<draw_bb| 0002cfb0 6f 78 74 79 70 3e 09 62 62 6f 78 3b 0a 20 09 7d |oxtyp>.bbox;. .}| 0002cfc0 44 41 54 41 64 01 00 00 64 72 61 77 5f 74 65 78 |DATAd...draw_tex| 0002cfd0 74 61 72 65 61 73 74 72 65 6e 64 0a 54 68 69 73 |tareastrend.This| 0002cfe0 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 0002cff0 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 2e | in <drawftypes.| 0002d000 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 61 |h=>drawftypes> a| 0002d010 73 20 61 20 74 79 70 65 20 63 6f 6e 74 61 69 6e |s a type contain| 0002d020 69 6e 67 20 74 65 78 74 20 61 72 65 61 20 6f 62 |ing text area ob| 0002d030 6a 65 63 74 20 64 61 74 61 2e 20 49 74 20 69 73 |ject data. It is| 0002d040 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 | defined as the | 0002d050 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 |following struct| 0002d060 75 72 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 69 |ure:.. .\{. . .i| 0002d070 6e 74 09 65 6e 64 6d 61 72 6b 3b 20 20 20 20 20 |nt.endmark; | 0002d080 2f 2a 20 65 6e 64 6d 61 72 6b 20 3d 3d 20 30 20 |/* endmark == 0 | 0002d090 2a 2f 0a 20 09 20 09 69 6e 74 09 62 6c 61 6e 6b |*/. . .int.blank| 0002d0a0 31 3b 0a 20 09 20 09 69 6e 74 09 62 6c 61 6e 6b |1;. . .int.blank| 0002d0b0 32 3b 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c |2;. . .<draw_col| 0002d0c0 74 79 70 3e 09 74 65 78 74 63 6f 6c 6f 75 72 3b |typ>.textcolour;| 0002d0d0 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 79 |. . .<draw_colty| 0002d0e0 70 3e 09 62 61 63 6b 63 6f 6c 6f 75 72 3b 0a 20 |p>.backcolour;. | 0002d0f0 09 7d 0a 0a 54 68 69 73 20 69 73 20 66 6f 6c 6c |.}..This is foll| 0002d100 6f 77 65 64 20 69 6d 6d 65 64 69 61 74 65 6c 79 |owed immediately| 0002d110 20 62 79 20 74 68 65 20 74 65 78 74 20 69 74 73 | by the text its| 0002d120 65 6c 66 2e 44 41 54 41 19 01 00 00 64 72 61 77 |elf.DATA....draw| 0002d130 5f 74 65 78 74 61 72 65 61 73 74 72 68 64 72 0a |_textareastrhdr.| 0002d140 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 0002d150 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 |ined in <drawfty| 0002d160 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 |pes.h=>drawftype| 0002d170 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 6f 6e |s> as a type con| 0002d180 74 61 69 6e 69 6e 67 20 61 20 74 65 78 74 20 61 |taining a text a| 0002d190 72 65 61 20 6f 62 6a 65 63 74 20 68 65 61 64 65 |rea object heade| 0002d1a0 72 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |r. It is defined| 0002d1b0 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 0002d1c0 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 09 |g structure:.. .| 0002d1d0 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 74 61 67 |\{. . .<draw_tag| 0002d1e0 74 79 70 3e 09 74 61 67 3b 0a 20 09 20 09 3c 64 |typ>.tag;. . .<d| 0002d1f0 72 61 77 5f 73 69 7a 65 74 79 70 3e 09 73 69 7a |raw_sizetyp>.siz| 0002d200 65 3b 0a 20 09 20 09 3c 64 72 61 77 5f 62 62 6f |e;. . .<draw_bbo| 0002d210 78 74 79 70 3e 09 62 62 6f 78 3b 0a 20 09 20 09 |xtyp>.bbox;. . .| 0002d220 3c 64 72 61 77 5f 74 65 78 74 63 6f 6c 68 64 72 |<draw_textcolhdr| 0002d230 3e 09 63 6f 6c 75 6d 6e 3b 0a 20 09 7d 00 00 00 |>.column;. .}...| 0002d240 44 41 54 41 f2 00 00 00 64 72 61 77 5f 74 65 78 |DATA....draw_tex| 0002d250 74 63 6f 6c 68 64 72 0a 54 68 69 73 20 74 79 70 |tcolhdr.This typ| 0002d260 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 0002d270 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 |<drawftypes.h=>d| 0002d280 72 61 77 66 74 79 70 65 73 3e 20 61 73 20 61 20 |rawftypes> as a | 0002d290 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 |type containing | 0002d2a0 61 20 74 65 78 74 20 63 6f 6c 75 6d 6e 20 6f 62 |a text column ob| 0002d2b0 6a 65 63 74 2e 20 49 74 20 69 73 20 64 65 66 69 |ject. It is defi| 0002d2c0 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ned as the follo| 0002d2d0 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 0002d2e0 0a 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f |. .\{. . .<draw_| 0002d2f0 74 61 67 74 79 70 3e 09 74 61 67 3b 0a 20 09 20 |tagtyp>.tag;. . | 0002d300 09 3c 64 72 61 77 5f 73 69 7a 65 74 79 70 3e 09 |.<draw_sizetyp>.| 0002d310 73 69 7a 65 3b 0a 20 09 20 09 3c 64 72 61 77 5f |size;. . .<draw_| 0002d320 62 62 6f 78 74 79 70 3e 09 62 62 6f 78 3b 0a 20 |bboxtyp>.bbox;. | 0002d330 09 7d 00 00 44 41 54 41 dc 01 00 00 64 72 61 77 |.}..DATA....draw| 0002d340 5f 74 65 78 74 73 74 72 0a 54 68 69 73 20 74 79 |_textstr.This ty| 0002d350 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 0002d360 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e | <drawftypes.h=>| 0002d370 64 72 61 77 66 74 79 70 65 73 3e 20 61 73 20 61 |drawftypes> as a| 0002d380 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 0002d390 20 68 6f 6c 64 69 6e 67 20 61 20 74 65 78 74 20 | holding a text | 0002d3a0 6f 62 6a 65 63 74 2e 20 49 74 20 69 73 20 64 65 |object. It is de| 0002d3b0 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c |fined as the fol| 0002d3c0 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 |lowing structure| 0002d3d0 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 |:.. .\{. . .<dra| 0002d3e0 77 5f 74 61 67 74 79 70 65 3e 09 74 61 67 3b 09 |w_tagtype>.tag;.| 0002d3f0 2f 2a 20 4f 62 6a 65 63 74 20 74 79 70 65 20 3d |/* Object type =| 0002d400 20 31 20 2a 2f 0a 20 09 20 09 3c 64 72 61 77 5f | 1 */. . .<draw_| 0002d410 73 69 7a 65 74 79 70 3e 09 73 69 7a 65 3b 09 2f |sizetyp>.size;./| 0002d420 2a 20 4d 75 6c 74 69 70 6c 65 20 6f 66 20 34 20 |* Multiple of 4 | 0002d430 2a 2f 0a 20 09 20 09 3c 64 72 61 77 5f 62 62 6f |*/. . .<draw_bbo| 0002d440 78 74 79 70 3e 09 62 62 6f 78 3b 0a 20 09 20 09 |xtyp>.bbox;. . .| 0002d450 3c 64 72 61 77 5f 63 6f 6c 74 79 70 3e 09 74 65 |<draw_coltyp>.te| 0002d460 78 74 63 6f 6c 6f 75 72 3b 0a 20 09 20 09 3c 64 |xtcolour;. . .<d| 0002d470 72 61 77 5f 63 6f 6c 74 79 70 3e 09 62 61 63 6b |raw_coltyp>.back| 0002d480 67 72 6f 75 6e 64 3b 0a 20 09 20 09 3c 64 72 61 |ground;. . .<dra| 0002d490 77 5f 74 65 78 74 73 74 79 6c 65 3e 09 74 65 78 |w_textstyle>.tex| 0002d4a0 74 73 74 79 6c 65 3b 0a 20 09 20 09 3c 64 72 61 |tstyle;. . .<dra| 0002d4b0 77 5f 66 6f 6e 74 73 69 7a 65 3e 09 66 73 69 7a |w_fontsize>.fsiz| 0002d4c0 65 78 3b 0a 20 09 20 09 3c 64 72 61 77 5f 66 6f |ex;. . .<draw_fo| 0002d4d0 6e 74 73 69 7a 65 3e 09 66 73 69 7a 65 79 3b 0a |ntsize>.fsizey;.| 0002d4e0 20 09 20 09 3c 64 72 61 77 5f 6f 62 6a 63 6f 6f | . .<draw_objcoo| 0002d4f0 72 64 3e 09 63 6f 6f 72 64 3b 0a 20 09 20 09 63 |rd>.coord;. . .c| 0002d500 68 61 72 09 74 65 78 74 5b 31 5d 3b 0a 20 09 7d |har.text[1];. .}| 0002d510 44 41 54 41 e9 01 00 00 64 72 61 77 5f 74 65 78 |DATA....draw_tex| 0002d520 74 73 74 72 68 64 72 0a 54 68 69 73 20 74 79 70 |tstrhdr.This typ| 0002d530 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 0002d540 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 |<drawftypes.h=>d| 0002d550 72 61 77 66 74 79 70 65 73 3e 20 61 73 20 61 20 |rawftypes> as a | 0002d560 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 20 |type capable of | 0002d570 68 6f 6c 64 69 6e 67 20 61 20 74 65 78 74 20 6f |holding a text o| 0002d580 62 6a 65 63 74 2c 20 61 70 61 72 74 20 66 72 6f |bject, apart fro| 0002d590 6d 20 74 68 65 20 61 63 74 75 61 6c 20 74 65 78 |m the actual tex| 0002d5a0 74 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |t. It is defined| 0002d5b0 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 0002d5c0 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 09 |g structure:.. .| 0002d5d0 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 74 61 67 |\{. . .<draw_tag| 0002d5e0 74 79 70 65 3e 09 74 61 67 3b 09 2f 2a 20 4f 62 |type>.tag;./* Ob| 0002d5f0 6a 65 63 74 20 74 79 70 65 20 3d 20 31 20 2a 2f |ject type = 1 */| 0002d600 0a 20 09 20 09 3c 64 72 61 77 5f 73 69 7a 65 74 |. . .<draw_sizet| 0002d610 79 70 3e 09 73 69 7a 65 3b 09 2f 2a 20 4d 75 6c |yp>.size;./* Mul| 0002d620 74 69 70 6c 65 20 6f 66 20 34 20 2a 2f 0a 20 09 |tiple of 4 */. .| 0002d630 20 09 3c 64 72 61 77 5f 62 62 6f 78 74 79 70 3e | .<draw_bboxtyp>| 0002d640 09 62 62 6f 78 3b 0a 20 09 20 09 3c 64 72 61 77 |.bbox;. . .<draw| 0002d650 5f 63 6f 6c 74 79 70 3e 09 74 65 78 74 63 6f 6c |_coltyp>.textcol| 0002d660 6f 75 72 3b 0a 20 09 20 09 3c 64 72 61 77 5f 63 |our;. . .<draw_c| 0002d670 6f 6c 74 79 70 3e 09 62 61 63 6b 67 72 6f 75 6e |oltyp>.backgroun| 0002d680 64 3b 0a 20 09 20 09 3c 64 72 61 77 5f 74 65 78 |d;. . .<draw_tex| 0002d690 74 73 74 79 6c 65 3e 09 74 65 78 74 73 74 79 6c |tstyle>.textstyl| 0002d6a0 65 3b 0a 20 09 20 09 3c 64 72 61 77 5f 66 6f 6e |e;. . .<draw_fon| 0002d6b0 74 73 69 7a 65 3e 09 66 73 69 7a 65 78 3b 0a 20 |tsize>.fsizex;. | 0002d6c0 09 20 09 3c 64 72 61 77 5f 66 6f 6e 74 73 69 7a |. .<draw_fontsiz| 0002d6d0 65 3e 09 66 73 69 7a 65 79 3b 0a 20 09 20 09 3c |e>.fsizey;. . .<| 0002d6e0 64 72 61 77 5f 6f 62 6a 63 6f 6f 72 64 3e 09 63 |draw_objcoord>.c| 0002d6f0 6f 6f 72 64 3b 0a 20 09 7d 00 00 00 44 41 54 41 |oord;. .}...DATA| 0002d700 f3 00 00 00 64 72 61 77 5f 74 65 78 74 73 74 79 |....draw_textsty| 0002d710 6c 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |le.This type is | 0002d720 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 |defined in <draw| 0002d730 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 |ftypes.h=>drawft| 0002d740 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 65 20 |ypes> as a type | 0002d750 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 |capable of holdi| 0002d760 6e 67 20 61 20 74 65 78 74 20 73 74 79 6c 65 20 |ng a text style | 0002d770 77 6f 72 64 2e 20 49 74 20 69 73 20 64 65 66 69 |word. It is defi| 0002d780 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ned as the follo| 0002d790 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 0002d7a0 0a 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f |. .\{. . .<draw_| 0002d7b0 66 6f 6e 74 72 65 66 3e 09 66 6f 6e 74 72 65 66 |fontref>.fontref| 0002d7c0 3b 0a 20 09 20 09 63 68 61 72 09 72 65 73 65 72 |;. . .char.reser| 0002d7d0 76 65 64 38 3b 0a 20 09 20 09 73 68 6f 72 74 09 |ved8;. . .short.| 0002d7e0 72 65 73 65 72 76 65 64 31 36 3b 0a 20 09 7d 00 |reserved16;. .}.| 0002d7f0 44 41 54 41 46 01 00 00 64 72 61 77 5f 74 72 61 |DATAF...draw_tra| 0002d800 6e 73 6c 61 74 65 54 65 78 74 0a 53 79 6e 74 61 |nslateText.Synta| 0002d810 78 3a 09 76 6f 69 64 20 64 72 61 77 5f 74 72 61 |x:.void draw_tra| 0002d820 6e 73 6c 61 74 65 54 65 78 74 20 28 3c 64 72 61 |nslateText (<dra| 0002d830 77 5f 64 69 61 67 3e 20 2a 64 69 61 67 29 3b 0a |w_diag> *diag);.| 0002d840 48 65 61 64 65 72 3a 09 3c 64 72 61 77 66 6f 62 |Header:.<drawfob| 0002d850 6a 2e 68 3d 3e 64 72 61 77 66 6f 62 6a 3e 0a 0a |j.h=>drawfobj>..| 0002d860 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 0002d870 69 66 20 6f 62 6a 65 63 74 20 65 78 74 72 61 63 |if object extrac| 0002d880 74 65 64 20 4f 4b 2e 0a 0a 54 68 69 73 20 66 75 |ted OK...This fu| 0002d890 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 73 20 61 |nction updates a| 0002d8a0 6c 6c 20 66 6f 6e 74 20 72 65 66 65 72 65 6e 63 |ll font referenc| 0002d8b0 65 20 6e 75 6d 62 65 72 73 20 66 6f 72 20 74 65 |e numbers for te| 0002d8c0 78 74 20 6f 62 6a 65 63 74 73 20 66 6f 6c 6c 6f |xt objects follo| 0002d8d0 77 69 6e 67 20 63 72 65 61 74 69 6f 6e 20 6f 66 |wing creation of| 0002d8e0 20 61 20 66 6f 6e 74 20 74 61 62 6c 65 2e 20 49 | a font table. I| 0002d8f0 66 20 74 68 65 20 66 6f 6e 74 20 74 61 62 6c 65 |f the font table| 0002d900 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 63 68 | has not been ch| 0002d910 61 6e 67 65 64 20 74 68 65 6e 20 74 68 69 73 20 |anged then this | 0002d920 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f |function does no| 0002d930 74 68 69 6e 67 2e 00 00 44 41 54 41 94 01 00 00 |thing...DATA....| 0002d940 64 72 61 77 5f 74 72 61 6e 73 54 61 62 6c 65 0a |draw_transTable.| 0002d950 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 |This is an array| 0002d960 20 6f 66 20 32 35 36 20 69 6e 74 65 67 65 72 73 | of 256 integers| 0002d970 2c 20 75 73 65 64 20 66 6f 72 20 66 6f 6e 74 20 |, used for font | 0002d980 74 72 61 6e 73 6c 61 74 69 6f 6e 2e 20 49 6d 6d |translation. Imm| 0002d990 65 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 61 |ediately after a| 0002d9a0 20 63 61 6c 6c 20 74 6f 20 3c 64 72 61 77 5f 63 | call to <draw_c| 0002d9b0 72 65 61 74 65 4f 62 6a 65 63 74 3e 20 77 68 65 |reateObject> whe| 0002d9c0 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 77 61 |re the object wa| 0002d9d0 73 20 61 20 66 6f 6e 74 20 74 61 62 6c 65 2c 20 |s a font table, | 0002d9e0 74 68 69 73 20 63 6f 6e 74 61 69 6e 73 20 74 68 |this contains th| 0002d9f0 65 20 6d 61 70 70 69 6e 67 20 62 65 74 77 65 65 |e mapping betwee| 0002da00 6e 20 6f 6c 64 20 61 6e 64 20 6e 65 77 20 66 6f |n old and new fo| 0002da10 6e 74 20 72 65 66 65 72 65 6e 63 65 20 6e 75 6d |nt reference num| 0002da20 62 65 72 73 2c 20 73 75 63 68 20 74 68 61 74 20 |bers, such that | 0002da30 64 72 61 77 5f 74 72 61 6e 73 54 61 62 6c 65 5b |draw_transTable[| 0002da40 6f 6c 64 20 66 6f 6e 74 72 65 66 5d 20 3d 20 6e |old fontref] = n| 0002da50 65 77 20 66 6f 6e 74 72 65 66 2e 20 3c 64 72 61 |ew fontref. <dra| 0002da60 77 5f 74 72 61 6e 73 6c 61 74 65 54 65 78 74 3e |w_translateText>| 0002da70 20 6d 61 6b 65 73 20 75 73 65 20 6f 66 20 74 68 | makes use of th| 0002da80 69 73 20 74 61 62 6c 65 3b 20 69 74 20 69 73 20 |is table; it is | 0002da90 65 78 70 6f 72 74 65 64 20 66 6f 72 20 63 61 6c |exported for cal| 0002daa0 6c 65 72 73 20 77 68 6f 20 6d 61 79 20 77 61 6e |lers who may wan| 0002dab0 74 20 74 6f 20 64 6f 20 73 6f 6d 65 74 68 69 6e |t to do somethin| 0002dac0 67 20 65 6c 61 62 6f 72 61 74 65 2e 44 41 54 41 |g elaborate.DATA| 0002dad0 1d 02 00 00 64 72 61 77 5f 75 6e 6b 6e 6f 77 6e |....draw_unknown| 0002dae0 5f 6f 62 6a 65 63 74 5f 68 61 6e 64 6c 65 72 0a |_object_handler.| 0002daf0 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 0002db00 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 64 69 |ined in <drawfdi| 0002db10 61 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 3e |ag.h=>drawfdiag>| 0002db20 2e 20 49 74 20 69 73 20 61 20 66 75 6e 63 74 69 |. It is a functi| 0002db30 6f 6e 20 75 73 65 64 20 66 6f 72 20 68 61 6e 64 |on used for hand| 0002db40 6c 69 6e 67 20 75 6e 6b 6e 6f 77 6e 20 6f 62 6a |ling unknown obj| 0002db50 65 63 74 73 20 77 69 74 68 20 74 68 65 20 66 6f |ects with the fo| 0002db60 6c 6c 6f 77 69 6e 67 20 70 72 6f 74 6f 74 79 70 |llowing prototyp| 0002db70 65 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 |e:.{wrap off}.{f| 0002db80 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 0002db90 65 7d 3c 42 4f 4f 4c 3e 20 6d 79 66 75 6e 63 20 |e}<BOOL> myfunc | 0002dba0 28 76 6f 69 64 20 2a 6f 62 6a 2c 20 76 6f 69 64 |(void *obj, void| 0002dbb0 20 2a 68 6e 64 2c 20 64 72 61 77 5f 65 72 72 6f | *hnd, draw_erro| 0002dbc0 72 20 2a 65 72 72 6f 72 29 3b 7b 66 3b 61 6c 69 |r *error);{f;ali| 0002dbd0 67 6e 3b 77 72 61 70 7d 0a 0a 54 68 69 73 20 68 |gn;wrap}..This h| 0002dbe0 61 6e 64 6c 65 72 20 69 73 20 63 61 6c 6c 65 64 |andler is called| 0002dbf0 20 77 68 65 6e 65 76 65 72 20 61 6e 20 61 74 74 | whenever an att| 0002dc00 65 6d 70 74 20 69 73 20 6d 61 64 65 20 74 6f 20 |empt is made to | 0002dc10 72 65 6e 64 65 72 20 61 6e 20 75 6e 6b 6e 6f 77 |render an unknow| 0002dc20 6e 20 6f 62 6a 65 63 74 2e 20 49 74 20 69 73 20 |n object. It is | 0002dc30 70 61 73 73 65 64 20 61 20 70 6f 69 6e 74 20 74 |passed a point t| 0002dc40 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 2f 6f 62 |o the object /ob| 0002dc50 6a 2f 20 61 6e 64 20 61 20 62 6c 6f 63 6b 20 74 |j/ and a block t| 0002dc60 6f 20 77 72 69 74 65 20 61 6e 20 65 72 72 6f 72 |o write an error| 0002dc70 20 73 74 61 74 75 73 20 69 6e 74 6f 2e 20 49 66 | status into. If| 0002dc80 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 | an error occurs| 0002dc90 2c 20 74 68 65 20 68 61 6e 64 6c 65 72 20 6d 75 |, the handler mu| 0002dca0 73 74 20 72 65 74 75 72 6e 20 3c 46 41 4c 53 45 |st return <FALSE| 0002dcb0 3e 20 61 6e 64 20 73 65 74 20 75 70 20 74 68 65 |> and set up the| 0002dcc0 20 65 72 72 6f 72 20 62 6c 6f 63 6b 2c 20 65 6c | error block, el| 0002dcd0 73 65 20 69 74 20 6d 75 73 74 20 72 65 74 75 72 |se it must retur| 0002dce0 6e 20 3c 54 52 55 45 3e 2e 00 00 00 44 41 54 41 |n <TRUE>....DATA| 0002dcf0 61 01 00 00 64 72 61 77 5f 76 65 72 69 66 79 5f |a...draw_verify_| 0002dd00 64 69 61 67 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |diag.Syntax:.<BO| 0002dd10 4f 4c 3e 20 64 72 61 77 5f 76 65 72 69 66 79 5f |OL> draw_verify_| 0002dd20 64 69 61 67 20 28 3c 64 72 61 77 5f 64 69 61 67 |diag (<draw_diag| 0002dd30 3e 20 2a 64 69 61 67 2c 20 3c 64 72 61 77 5f 65 |> *diag, <draw_e| 0002dd40 72 72 6f 72 3e 20 2a 65 72 72 6f 72 29 3b 0a 48 |rror> *error);.H| 0002dd50 65 61 64 65 72 3a 09 3c 64 72 61 77 66 64 69 61 |eader:.<drawfdia| 0002dd60 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 67 3e 0a |g.h=>drawfdiag>.| 0002dd70 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e |.Returns:.<TRUE>| 0002dd80 20 69 66 20 64 69 61 67 72 61 6d 20 69 73 20 63 | if diagram is c| 0002dd90 6f 72 72 65 63 74 2e 0a 0a 54 68 69 73 20 66 75 |orrect...This fu| 0002dda0 6e 63 74 69 6f 6e 20 76 65 72 69 66 69 65 73 20 |nction verifies | 0002ddb0 61 20 64 69 61 67 72 61 6d 20 77 68 69 63 68 20 |a diagram which | 0002ddc0 68 61 73 20 62 65 65 6e 20 72 65 61 64 20 69 6e |has been read in| 0002ddd0 20 66 72 6f 6d 20 66 69 6c 65 2e 20 45 61 63 68 | from file. Each| 0002dde0 20 6f 62 6a 65 63 74 20 69 6e 20 74 68 65 20 66 | object in the f| 0002ddf0 69 6c 65 20 69 73 20 63 68 65 63 6b 65 64 20 61 |ile is checked a| 0002de00 6e 64 20 74 68 65 20 66 69 72 73 74 20 65 72 72 |nd the first err| 0002de10 6f 72 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 63 |or encountered c| 0002de20 61 75 73 65 73 20 72 65 74 75 72 6e 20 28 77 69 |auses return (wi| 0002de30 74 68 20 2f 65 72 72 6f 72 2f 20 73 65 74 20 61 |th /error/ set a| 0002de40 70 70 72 6f 70 72 69 61 74 65 6c 79 29 00 00 00 |ppropriately)...| 0002de50 44 41 54 41 9e 01 00 00 64 72 61 77 5f 76 65 72 |DATA....draw_ver| 0002de60 69 66 79 4f 62 6a 65 63 74 0a 53 79 6e 74 61 78 |ifyObject.Syntax| 0002de70 3a 09 3c 42 4f 4f 4c 3e 20 64 72 61 77 5f 76 65 |:.<BOOL> draw_ve| 0002de80 72 69 66 79 4f 62 6a 65 63 74 20 28 3c 64 72 61 |rifyObject (<dra| 0002de90 77 5f 64 69 61 67 3e 20 2a 64 69 61 67 2c 20 3c |w_diag> *diag, <| 0002dea0 64 72 61 77 5f 6f 62 6a 65 63 74 3e 20 6f 62 6a |draw_object> obj| 0002deb0 65 63 74 2c 20 69 6e 74 20 2a 73 69 7a 65 29 3b |ect, int *size);| 0002dec0 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 77 66 6f |.Header:.<drawfo| 0002ded0 62 6a 2e 68 3d 3e 64 72 61 77 66 6f 62 6a 3e 0a |bj.h=>drawfobj>.| 0002dee0 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e |.Returns:.<TRUE>| 0002def0 20 69 66 20 6f 62 6a 65 63 74 20 66 6f 75 6e 64 | if object found| 0002df00 20 61 6e 64 20 76 65 72 69 66 69 65 64 2e 0a 0a | and verified...| 0002df10 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 76 65 |This function ve| 0002df20 72 69 66 69 65 73 20 74 68 65 20 64 61 74 61 20 |rifies the data | 0002df30 66 6f 72 20 61 6e 20 65 78 69 73 74 69 6e 67 20 |for an existing | 0002df40 6f 62 6a 65 63 74 2e 20 54 68 69 73 20 65 6e 73 |object. This ens| 0002df50 75 72 65 73 20 74 68 61 74 20 69 74 73 20 62 6f |ures that its bo| 0002df60 75 6e 64 69 6e 67 20 62 6f 78 20 69 73 20 63 6f |unding box is co| 0002df70 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 |nsistent with th| 0002df80 65 20 64 61 74 61 20 69 6e 20 69 74 20 2d 20 61 |e data in it - a| 0002df90 6c 74 65 72 69 6e 67 20 69 74 20 69 66 20 6e 65 |ltering it if ne| 0002dfa0 63 65 73 73 61 72 79 2e 20 54 68 65 20 6f 62 6a |cessary. The obj| 0002dfb0 65 63 74 27 73 20 73 69 7a 65 20 69 73 20 72 65 |ect's size is re| 0002dfc0 74 75 72 6e 65 64 20 69 6e 20 7b 2f 7d 2a 73 69 |turned in {/}*si| 0002dfd0 7a 65 7b 2f 7d 20 69 66 20 2f 73 69 7a 65 2f 20 |ze{/} if /size/ | 0002dfe0 69 73 20 6e 6f 74 20 3c 4e 55 4c 4c 3e 2e 00 00 |is not <NULL>...| 0002dff0 44 41 54 41 ad 00 00 00 64 72 61 77 5f 77 69 6e |DATA....draw_win| 0002e000 64 74 79 70 0a 54 68 69 73 20 74 79 70 65 20 69 |dtyp.This type i| 0002e010 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 0002e020 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 0002e030 66 74 79 70 65 73 3e 20 61 73 20 61 6e 20 65 6e |ftypes> as an en| 0002e040 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 64 65 |umerated type de| 0002e050 73 63 72 69 62 69 6e 67 20 61 20 77 69 6e 64 69 |scribing a windi| 0002e060 6e 67 20 72 75 6c 65 3a 0a 0a 20 09 5c 7b 0a 20 |ng rule:.. .\{. | 0002e070 09 20 09 77 69 6e 64 5f 6e 6f 6e 7a 65 72 6f 09 |. .wind_nonzero.| 0002e080 3d 20 30 2c 0a 20 09 20 09 77 69 6e 64 5f 65 76 |= 0,. . .wind_ev| 0002e090 65 6e 6f 64 64 09 3d 20 31 0a 20 09 7d 00 00 00 |enodd.= 1. .}...| 0002e0a0 44 41 54 41 d0 01 00 00 64 72 61 77 5f 73 65 74 |DATA....draw_set| 0002e0b0 5f 75 6e 6b 6e 6f 77 6e 5f 6f 62 6a 65 63 74 5f |_unknown_object_| 0002e0c0 68 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 |handler.Syntax:.| 0002e0d0 3c 64 72 61 77 5f 75 6e 6b 6e 6f 77 6e 5f 6f 62 |<draw_unknown_ob| 0002e0e0 6a 65 63 74 5f 68 61 6e 64 6c 65 72 3e 20 64 72 |ject_handler> dr| 0002e0f0 61 77 5f 73 65 74 5f 75 6e 6b 6e 6f 77 6e 5f 6f |aw_set_unknown_o| 0002e100 62 6a 65 63 74 5f 68 61 6e 64 6c 65 72 20 28 64 |bject_handler (d| 0002e110 72 61 77 5f 75 6e 6b 6e 6f 77 6e 5f 6f 62 6a 65 |raw_unknown_obje| 0002e120 63 74 5f 68 61 6e 64 6c 65 72 20 68 61 6e 64 6c |ct_handler handl| 0002e130 65 72 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 |er, void *handle| 0002e140 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 77 |);.Header:.<draw| 0002e150 66 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 69 |fdiag.h=>drawfdi| 0002e160 61 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |ag>..Returns:.Th| 0002e170 65 20 6f 6c 64 20 68 61 6e 64 6c 65 72 2e 0a 0a |e old handler...| 0002e180 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 0002e190 67 69 73 74 65 72 73 20 61 20 66 75 6e 63 74 69 |gisters a functi| 0002e1a0 6f 6e 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 |on to be called | 0002e1b0 77 68 65 6e 20 61 6e 20 61 74 74 65 6d 70 74 20 |when an attempt | 0002e1c0 69 73 20 6d 61 64 65 20 74 6f 20 72 65 6e 64 65 |is made to rende| 0002e1d0 72 20 61 6e 20 6f 62 6a 65 63 74 20 77 69 74 68 |r an object with| 0002e1e0 20 61 6e 20 6f 62 6a 65 63 74 20 74 61 67 20 77 | an object tag w| 0002e1f0 68 69 63 68 20 69 73 20 6e 6f 74 20 6b 6e 6f 77 |hich is not know| 0002e200 6e 2e 20 54 68 65 20 68 61 6e 64 6c 65 72 20 63 |n. The handler c| 0002e210 61 6e 20 62 65 20 72 65 6d 6f 76 65 64 20 62 79 |an be removed by| 0002e220 20 63 61 6c 6c 69 6e 67 20 77 69 74 68 20 30 20 | calling with 0 | 0002e230 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 2e 20 |as a parameter. | 0002e240 2f 68 61 6e 64 6c 65 2f 20 69 73 20 70 61 73 73 |/handle/ is pass| 0002e250 65 64 20 64 69 72 65 63 74 20 74 6f 20 74 68 65 |ed direct to the| 0002e260 20 6f 62 6a 65 63 74 20 68 61 6e 64 6c 65 72 2e | object handler.| 0002e270 44 41 54 41 9a 02 00 00 64 72 61 77 66 64 69 61 |DATA....drawfdia| 0002e280 67 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 |g.h.This header | 0002e290 64 65 61 6c 73 20 77 69 74 68 20 70 72 6f 63 65 |deals with proce| 0002e2a0 73 73 69 6e 67 20 6f 66 20 44 72 61 77 20 66 6f |ssing of Draw fo| 0002e2b0 72 6d 61 74 20 66 69 6c 65 73 2e 20 49 74 20 63 |rmat files. It c| 0002e2c0 61 6e 20 72 65 61 64 20 69 6e 20 66 69 6c 65 73 |an read in files| 0002e2d0 20 74 6f 20 64 69 61 67 72 61 6d 73 20 61 6e 64 | to diagrams and| 0002e2e0 20 72 65 6e 64 65 72 20 74 68 65 6d 2e 0a 0a 46 | render them...F| 0002e2f0 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 |unctions:..#Inde| 0002e300 6e 74 20 31 30 0a 23 54 61 62 6c 65 20 35 20 32 |nt 10.#Table 5 2| 0002e310 31 0a 3c 64 72 61 77 66 64 69 61 67 5f 69 6e 69 |1.<drawfdiag_ini| 0002e320 74 3e 0a 3c 64 72 61 77 5f 64 72 61 77 54 6f 53 |t>.<draw_drawToS| 0002e330 63 72 65 65 6e 3e 0a 3c 64 72 61 77 5f 73 63 72 |creen>.<draw_scr| 0002e340 65 65 6e 54 6f 44 72 61 77 3e 0a 3c 64 72 61 77 |eenToDraw>.<draw| 0002e350 5f 76 65 72 69 66 79 5f 64 69 61 67 3e 0a 3c 64 |_verify_diag>.<d| 0002e360 72 61 77 5f 61 70 70 65 6e 64 5f 64 69 61 67 3e |raw_append_diag>| 0002e370 0a 3c 64 72 61 77 5f 72 65 6e 64 65 72 5f 64 69 |.<draw_render_di| 0002e380 61 67 3e 0a 3c 64 72 61 77 5f 73 68 69 66 74 5f |ag>.<draw_shift_| 0002e390 64 69 61 67 3e 0a 3c 64 72 61 77 5f 71 75 65 72 |diag>.<draw_quer| 0002e3a0 79 62 6f 78 3e 0a 3c 64 72 61 77 5f 63 6f 6e 76 |ybox>.<draw_conv| 0002e3b0 65 72 74 42 6f 78 3e 0a 3c 64 72 61 77 5f 72 65 |ertBox>.<draw_re| 0002e3c0 62 69 6e 64 5f 64 69 61 67 3e 0a 23 45 6e 64 54 |bind_diag>.#EndT| 0002e3d0 61 62 6c 65 0a 0a 23 69 6e 64 65 6e 74 20 30 3b |able..#indent 0;| 0002e3e0 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a 3c 64 72 |align centre.<dr| 0002e3f0 61 77 5f 73 65 74 5f 75 6e 6b 6e 6f 77 6e 5f 6f |aw_set_unknown_o| 0002e400 62 6a 65 63 74 5f 68 61 6e 64 6c 65 72 3e 0a 3c |bject_handler>.<| 0002e410 64 72 61 77 5f 72 65 67 69 73 74 65 72 4d 65 6d |draw_registerMem| 0002e420 6f 72 79 46 75 6e 63 74 69 6f 6e 73 3e 0a 0a 23 |oryFunctions>..#| 0002e430 61 6c 69 67 6e 3b 49 6e 64 65 6e 74 20 30 0a 54 |align;Indent 0.T| 0002e440 79 70 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 |ypes:..#indent 1| 0002e450 35 0a 23 54 61 62 6c 65 20 34 20 32 31 0a 3c 64 |5.#Table 4 21.<d| 0002e460 72 61 77 5f 64 69 61 67 3e 0a 3c 64 72 61 77 5f |raw_diag>.<draw_| 0002e470 6f 62 6a 65 63 74 3e 0a 3c 64 72 61 77 5f 62 6f |object>.<draw_bo| 0002e480 78 3e 0a 3c 64 72 61 77 5f 72 65 64 72 61 77 73 |x>.<draw_redraws| 0002e490 74 72 3e 0a 3c 64 72 61 77 5f 65 72 72 6f 72 3e |tr>.<draw_error>| 0002e4a0 0a 3c 64 72 61 77 5f 61 6c 6c 6f 63 61 74 65 3e |.<draw_allocate>| 0002e4b0 0a 3c 64 72 61 77 5f 65 78 74 65 6e 64 3e 0a 3c |.<draw_extend>.<| 0002e4c0 64 72 61 77 5f 66 72 65 65 3e 0a 23 45 6e 64 54 |draw_free>.#EndT| 0002e4d0 61 62 6c 65 0a 0a 23 69 6e 64 65 6e 74 20 30 3b |able..#indent 0;| 0002e4e0 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a 3c 64 72 |align centre.<dr| 0002e4f0 61 77 5f 75 6e 6b 6e 6f 77 6e 5f 6f 62 6a 65 63 |aw_unknown_objec| 0002e500 74 5f 68 61 6e 64 6c 65 72 3e 00 00 44 49 52 24 |t_handler>..DIR$| 0002e510 2c 00 00 00 2c 00 00 00 38 e5 02 00 46 ff ff ff |,...,...8...F...| 0002e520 3e 37 24 23 b5 00 00 00 13 00 00 00 00 00 00 00 |>7$#............| 0002e530 69 6e 69 74 00 00 00 00 44 41 54 41 b5 00 00 00 |init....DATA....| 0002e540 64 72 61 77 66 64 69 61 67 5f 69 6e 69 74 0a 53 |drawfdiag_init.S| 0002e550 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 64 72 |yntax:.<BOOL> dr| 0002e560 61 77 66 64 69 61 67 5f 69 6e 69 74 20 28 76 6f |awfdiag_init (vo| 0002e570 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 |id);.Header:.<dr| 0002e580 61 77 66 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 |awfdiag.h=>drawf| 0002e590 64 69 61 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |diag>..Returns:.| 0002e5a0 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 |<TRUE> if succes| 0002e5b0 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |sful...This func| 0002e5c0 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 73 65 73 |tion initialises| 0002e5d0 20 74 68 65 20 64 69 61 67 72 61 6d 20 6c 65 76 | the diagram lev| 0002e5e0 65 6c 20 69 6e 74 65 72 66 61 63 65 2e 00 00 00 |el interface....| 0002e5f0 44 41 54 41 18 09 00 00 64 72 61 77 66 65 72 72 |DATA....drawferr| 0002e600 6f 72 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 |or.h.This header| 0002e610 20 64 65 66 69 6e 65 73 20 61 6c 6c 20 74 68 65 | defines all the| 0002e620 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f | following macro| 0002e630 73 2c 20 77 68 69 63 68 20 65 61 63 68 20 72 65 |s, which each re| 0002e640 70 72 65 73 65 6e 74 20 61 6e 20 65 72 72 6f 72 |present an error| 0002e650 20 63 6f 64 65 2e 20 54 68 65 20 73 74 61 6e 64 | code. The stand| 0002e660 61 72 64 20 65 72 72 6f 72 20 6d 65 73 73 61 67 |ard error messag| 0002e670 65 20 66 6f 72 20 65 61 63 68 20 6f 66 20 74 68 |e for each of th| 0002e680 65 73 65 20 65 72 72 6f 72 73 20 69 73 20 61 6c |ese errors is al| 0002e690 73 6f 20 67 69 76 65 6e 20 66 6f 72 20 79 6f 75 |so given for you| 0002e6a0 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a |r information...| 0002e6b0 64 72 61 77 5f 42 61 64 4f 62 6a 65 63 74 09 42 |draw_BadObject.B| 0002e6c0 61 64 20 6f 62 6a 65 63 74 20 0a 64 72 61 77 5f |ad object .draw_| 0002e6d0 42 61 64 4f 62 6a 65 63 74 48 61 6e 64 6c 65 09 |BadObjectHandle.| 0002e6e0 42 61 64 20 6f 62 6a 65 63 74 20 68 61 6e 64 6c |Bad object handl| 0002e6f0 65 0a 64 72 61 77 5f 54 6f 6f 4d 61 6e 79 46 6f |e.draw_TooManyFo| 0002e700 6e 74 73 09 54 6f 6f 20 6d 61 6e 79 20 66 6f 6e |nts.Too many fon| 0002e710 74 20 64 65 66 69 6e 69 74 69 6f 6e 73 0a 64 72 |t definitions.dr| 0002e720 61 77 5f 42 42 6f 78 57 72 6f 6e 67 09 42 6f 75 |aw_BBoxWrong.Bou| 0002e730 6e 64 69 6e 67 20 62 6f 78 20 63 6f 6f 72 64 69 |nding box coordi| 0002e740 6e 61 74 65 73 20 61 72 65 20 69 6e 20 74 68 65 |nates are in the| 0002e750 20 77 72 6f 6e 67 20 6f 72 64 65 72 0a 64 72 61 | wrong order.dra| 0002e760 77 5f 42 61 64 43 68 61 72 61 63 74 65 72 09 42 |w_BadCharacter.B| 0002e770 61 64 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 |ad character in | 0002e780 73 74 72 69 6e 67 0a 64 72 61 77 5f 4f 62 6a 65 |string.draw_Obje| 0002e790 63 74 54 6f 6f 53 6d 61 6c 6c 09 4f 62 6a 65 63 |ctTooSmall.Objec| 0002e7a0 74 20 73 69 7a 65 20 69 73 20 74 6f 6f 20 73 6d |t size is too sm| 0002e7b0 61 6c 6c 0a 64 72 61 77 5f 4f 62 6a 65 63 74 54 |all.draw_ObjectT| 0002e7c0 6f 6f 4c 61 72 67 65 09 4f 62 6a 65 63 74 20 73 |ooLarge.Object s| 0002e7d0 69 7a 65 20 69 73 20 74 6f 6f 20 6c 61 72 67 65 |ize is too large| 0002e7e0 0a 64 72 61 77 5f 4f 62 6a 65 63 74 4e 6f 74 4d |.draw_ObjectNotM| 0002e7f0 75 6c 74 34 09 4f 62 6a 65 63 74 20 73 69 7a 65 |ult4.Object size| 0002e800 20 69 73 20 6e 6f 74 20 61 20 6d 75 6c 74 69 70 | is not a multip| 0002e810 6c 65 20 6f 66 20 34 0a 64 72 61 77 5f 4f 62 6a |le of 4.draw_Obj| 0002e820 65 63 74 4f 76 65 72 72 75 6e 09 4f 62 6a 65 63 |ectOverrun.Objec| 0002e830 74 20 64 61 74 61 20 69 73 20 6c 61 72 67 65 72 |t data is larger| 0002e840 20 74 68 61 6e 20 73 70 65 63 69 66 69 65 64 20 | than specified | 0002e850 73 69 7a 65 0a 64 72 61 77 5f 4d 61 6e 79 46 6f |size.draw_ManyFo| 0002e860 6e 74 54 61 62 6c 65 73 09 54 68 65 72 65 20 69 |ntTables.There i| 0002e870 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 |s more than one | 0002e880 66 6f 6e 74 20 74 61 62 6c 65 0a 64 72 61 77 5f |font table.draw_| 0002e890 4c 61 74 65 46 6f 6e 74 54 61 62 6c 65 09 54 68 |LateFontTable.Th| 0002e8a0 65 20 66 6f 6e 74 20 74 61 62 6c 65 20 61 70 70 |e font table app| 0002e8b0 65 61 72 73 20 61 66 74 65 72 20 74 65 78 74 20 |ears after text | 0002e8c0 6f 62 6a 65 63 74 28 73 29 0a 64 72 61 77 5f 42 |object(s).draw_B| 0002e8d0 61 64 54 65 78 74 53 74 79 6c 65 09 42 61 64 20 |adTextStyle.Bad | 0002e8e0 74 65 78 74 20 73 74 79 6c 65 20 77 6f 72 64 0a |text style word.| 0002e8f0 64 72 61 77 5f 4d 6f 76 65 4d 69 73 73 69 6e 67 |draw_MoveMissing| 0002e900 09 50 61 74 68 20 6d 75 73 74 20 73 74 61 72 74 |.Path must start| 0002e910 20 77 69 74 68 20 61 20 6d 6f 76 65 0a 64 72 61 | with a move.dra| 0002e920 77 5f 42 61 64 50 61 74 68 54 61 67 09 50 61 74 |w_BadPathTag.Pat| 0002e930 68 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 6e |h contains an in| 0002e940 76 61 6c 69 64 20 74 61 67 0a 64 72 61 77 5f 4e |valid tag.draw_N| 0002e950 6f 50 61 74 68 45 6c 65 6d 65 6e 74 73 09 50 61 |oPathElements.Pa| 0002e960 74 68 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 |th does not cont| 0002e970 61 69 6e 20 61 6e 79 20 6c 69 6e 65 20 6f 72 20 |ain any line or | 0002e980 63 75 72 76 65 20 65 6c 65 6d 65 6e 74 73 0a 64 |curve elements.d| 0002e990 72 61 77 5f 50 61 74 68 45 78 74 72 61 44 61 74 |raw_PathExtraDat| 0002e9a0 61 09 54 68 65 72 65 20 69 73 20 65 78 74 72 61 |a.There is extra| 0002e9b0 20 64 61 74 61 20 70 72 65 73 65 6e 74 20 61 74 | data present at| 0002e9c0 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 70 61 | the end of a pa| 0002e9d0 74 68 20 6f 62 6a 65 63 74 0a 64 72 61 77 5f 42 |th object.draw_B| 0002e9e0 61 64 53 70 72 69 74 65 53 69 7a 65 09 54 68 65 |adSpriteSize.The| 0002e9f0 20 73 70 72 69 74 65 20 64 65 66 69 6e 69 74 69 | sprite definiti| 0002ea00 6f 6e 20 73 69 7a 65 20 69 73 20 69 6e 63 6f 6e |on size is incon| 0002ea10 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 |sistent with the| 0002ea20 20 6f 62 6a 65 63 74 20 73 69 7a 65 0a 64 72 61 | object size.dra| 0002ea30 77 5f 42 61 64 54 65 78 74 43 6f 6c 75 6d 6e 45 |w_BadTextColumnE| 0002ea40 6e 64 09 4d 69 73 73 69 6e 67 20 65 6e 64 20 6d |nd.Missing end m| 0002ea50 61 72 6b 65 72 20 69 6e 20 74 65 78 74 20 63 6f |arker in text co| 0002ea60 6c 75 6d 6e 73 0a 64 72 61 77 5f 43 6f 6c 75 6d |lumns.draw_Colum| 0002ea70 6e 73 4d 69 73 6d 61 74 63 68 09 41 63 74 75 61 |nsMismatch.Actua| 0002ea80 6c 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 |l number of colu| 0002ea90 6d 6e 73 20 69 6e 20 61 20 74 65 78 74 20 61 72 |mns in a text ar| 0002eaa0 65 61 20 6f 62 6a 65 63 74 20 64 6f 65 73 20 6e |ea object does n| 0002eab0 6f 74 20 6d 61 74 63 68 20 73 70 65 63 69 66 69 |ot match specifi| 0002eac0 65 64 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c |ed number of col| 0002ead0 75 6d 6e 73 0a 64 72 61 77 5f 4e 6f 6e 5a 65 72 |umns.draw_NonZer| 0002eae0 6f 52 65 73 65 72 76 65 64 09 4e 6f 6e 2d 7a 65 |oReserved.Non-ze| 0002eaf0 72 6f 20 72 65 73 65 72 76 65 64 20 77 6f 72 64 |ro reserved word| 0002eb00 73 20 69 6e 20 61 20 74 65 78 74 20 61 72 65 61 |s in a text area| 0002eb10 20 6f 62 6a 65 63 74 0a 64 72 61 77 5f 4e 6f 74 | object.draw_Not| 0002eb20 44 72 61 77 46 69 6c 65 09 54 68 69 73 20 69 73 |DrawFile.This is| 0002eb30 20 6e 6f 74 20 61 20 44 72 61 77 20 66 69 6c 65 | not a Draw file| 0002eb40 0a 64 72 61 77 5f 56 65 72 73 69 6f 6e 54 6f 6f |.draw_VersionToo| 0002eb50 48 69 67 68 09 56 65 72 73 69 6f 6e 20 6e 75 6d |High.Version num| 0002eb60 62 65 72 20 74 6f 6f 20 68 69 67 68 0a 64 72 61 |ber too high.dra| 0002eb70 77 5f 42 61 64 4f 62 6a 65 63 74 54 79 70 65 09 |w_BadObjectType.| 0002eb80 55 6e 6b 6e 6f 77 6e 20 6f 62 6a 65 63 74 20 74 |Unknown object t| 0002eb90 79 70 65 0a 64 72 61 77 5f 43 6f 72 72 75 70 74 |ype.draw_Corrupt| 0002eba0 54 65 78 74 41 72 65 61 09 43 6f 72 72 75 70 74 |TextArea.Corrupt| 0002ebb0 65 64 20 74 65 78 74 20 61 72 65 61 20 28 6d 75 |ed text area (mu| 0002ebc0 73 74 20 73 74 61 72 74 20 77 69 74 68 20 27 5c |st start with '\| 0002ebd0 5c 21 27 29 0a 64 72 61 77 5f 54 65 78 74 41 72 |\!').draw_TextAr| 0002ebe0 65 61 56 65 72 73 69 6f 6e 09 54 65 78 74 20 61 |eaVersion.Text a| 0002ebf0 72 65 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 |rea version numb| 0002ec00 65 72 20 69 73 20 77 72 6f 6e 67 20 6f 72 20 6d |er is wrong or m| 0002ec10 69 73 73 69 6e 67 0a 64 72 61 77 5f 4d 69 73 73 |issing.draw_Miss| 0002ec20 69 6e 67 4e 65 77 6c 69 6e 65 09 54 65 78 74 20 |ingNewline.Text | 0002ec30 61 72 65 61 20 6d 75 73 74 20 65 6e 64 20 77 69 |area must end wi| 0002ec40 74 68 20 61 20 6e 65 77 6c 69 6e 65 20 63 68 61 |th a newline cha| 0002ec50 72 61 63 74 65 72 0a 64 72 61 77 5f 42 61 64 41 |racter.draw_BadA| 0002ec60 6c 69 67 6e 09 54 65 78 74 20 61 72 65 61 3a 20 |lign.Text area: | 0002ec70 62 61 64 20 5c 5c 41 20 63 6f 64 65 20 28 6d 75 |bad \\A code (mu| 0002ec80 73 74 20 62 65 20 4c 2c 20 52 2c 20 43 20 6f 72 |st be L, R, C or| 0002ec90 20 44 29 0a 64 72 61 77 5f 42 61 64 54 65 72 6d | D).draw_BadTerm| 0002eca0 69 6e 61 74 6f 72 09 54 65 78 74 20 61 72 65 61 |inator.Text area| 0002ecb0 3a 20 62 61 64 20 6e 75 6d 62 65 72 20 6f 72 20 |: bad number or | 0002ecc0 6d 69 73 73 69 6e 67 20 74 65 72 6d 69 6e 61 74 |missing terminat| 0002ecd0 6f 72 0a 64 72 61 77 5f 4d 61 6e 79 44 43 6f 6d |or.draw_ManyDCom| 0002ece0 6d 61 6e 64 73 09 54 65 78 74 20 61 72 65 61 3a |mands.Text area:| 0002ecf0 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 5c | more than one \| 0002ed00 5c 44 20 63 6f 6d 6d 61 6e 64 0a 64 72 61 77 5f |\D command.draw_| 0002ed10 42 61 64 46 6f 6e 74 4e 75 6d 62 65 72 09 54 65 |BadFontNumber.Te| 0002ed20 78 74 20 61 72 65 61 3a 20 62 61 64 20 66 6f 6e |xt area: bad fon| 0002ed30 74 20 6e 75 6d 62 65 72 0a 64 72 61 77 5f 55 6e |t number.draw_Un| 0002ed40 65 78 70 65 63 74 65 64 43 68 61 72 61 63 74 65 |expectedCharacte| 0002ed50 72 20 54 65 78 74 20 61 72 65 61 3a 20 75 6e 65 |r Text area: une| 0002ed60 78 70 65 63 74 65 64 20 63 68 61 72 61 63 74 65 |xpected characte| 0002ed70 72 20 69 6e 20 5c 5c 46 20 63 6f 6d 6d 61 6e 64 |r in \\F command| 0002ed80 0a 64 72 61 77 5f 42 61 64 46 6f 6e 74 57 69 64 |.draw_BadFontWid| 0002ed90 74 68 09 54 65 78 74 20 61 72 65 61 3a 20 62 61 |th.Text area: ba| 0002eda0 64 20 6f 72 20 6d 69 73 73 69 6e 67 20 66 6f 6e |d or missing fon| 0002edb0 74 20 77 69 64 74 68 20 69 6e 20 5c 5c 46 20 63 |t width in \\F c| 0002edc0 6f 6d 6d 61 6e 64 0a 64 72 61 77 5f 42 61 64 46 |ommand.draw_BadF| 0002edd0 6f 6e 74 53 69 7a 65 09 54 65 78 74 20 61 72 65 |ontSize.Text are| 0002ede0 61 3a 20 62 61 64 20 6f 72 20 6d 69 73 73 69 6e |a: bad or missin| 0002edf0 67 20 66 6f 6e 74 20 73 69 7a 65 20 69 6e 20 5c |g font size in \| 0002ee00 5c 46 20 63 6f 6d 6d 61 6e 64 0a 64 72 61 77 5f |\F command.draw_| 0002ee10 4e 6f 6e 44 69 67 69 74 56 09 54 65 78 74 20 61 |NonDigitV.Text a| 0002ee20 72 65 61 3a 20 6e 6f 6e 2d 64 69 67 69 74 20 69 |rea: non-digit i| 0002ee30 6e 20 5c 5c 56 20 63 6f 6d 6d 61 6e 64 0a 64 72 |n \\V command.dr| 0002ee40 61 77 5f 42 61 64 45 73 63 61 70 65 09 54 65 78 |aw_BadEscape.Tex| 0002ee50 74 20 61 72 65 61 3a 20 62 61 64 20 65 73 63 61 |t area: bad esca| 0002ee60 70 65 20 73 65 71 75 65 6e 63 65 0a 64 72 61 77 |pe sequence.draw| 0002ee70 5f 46 65 77 43 6f 6c 75 6d 6e 73 09 54 65 78 74 |_FewColumns.Text| 0002ee80 20 61 72 65 61 20 6d 75 73 74 20 68 61 76 65 20 | area must have | 0002ee90 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 63 6f 6c |at least one col| 0002eea0 75 6d 6e 0a 64 72 61 77 5f 54 65 78 74 43 6f 6c |umn.draw_TextCol| 0002eeb0 4d 65 6d 6f 72 79 09 4f 75 74 20 6f 66 20 6d 65 |Memory.Out of me| 0002eec0 6d 6f 72 79 20 77 68 65 6e 20 62 75 69 6c 64 69 |mory when buildi| 0002eed0 6e 67 20 74 65 78 74 20 61 72 65 61 20 5b 6c 6f |ng text area [lo| 0002eee0 63 61 74 69 6f 6e 20 66 69 65 6c 64 20 69 73 20 |cation field is | 0002eef0 61 6c 77 61 79 73 20 30 20 66 6f 72 20 74 68 69 |always 0 for thi| 0002ef00 73 20 65 72 72 6f 72 5d 44 41 54 41 eb 01 00 00 |s error]DATA....| 0002ef10 64 72 61 77 66 6f 62 6a 2e 68 0a 54 68 69 73 20 |drawfobj.h.This | 0002ef20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 |header declares | 0002ef30 74 79 70 65 73 20 61 6e 64 20 66 75 6e 63 74 69 |types and functi| 0002ef40 6f 6e 73 20 66 6f 72 0a 70 72 6f 63 65 73 73 69 |ons for.processi| 0002ef50 6e 67 20 44 72 61 77 20 66 6f 72 6d 61 74 20 66 |ng Draw format f| 0002ef60 69 6c 65 73 20 61 74 20 74 68 65 20 6f 62 6a 65 |iles at the obje| 0002ef70 63 74 0a 6c 65 76 65 6c 2e 0a 0a 46 75 6e 63 74 |ct.level...Funct| 0002ef80 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 32 |ions:..#Indent 2| 0002ef90 0a 23 54 61 62 6c 65 20 35 20 32 31 0a 3c 64 72 |.#Table 5 21.<dr| 0002efa0 61 77 66 6f 62 6a 5f 69 6e 69 74 3e 0a 3c 64 72 |awfobj_init>.<dr| 0002efb0 61 77 5f 63 72 65 61 74 65 5f 64 69 61 67 3e 0a |aw_create_diag>.| 0002efc0 3c 64 72 61 77 5f 64 6f 4f 62 6a 65 63 74 73 3e |<draw_doObjects>| 0002efd0 0a 3c 64 72 61 77 5f 73 65 74 46 6f 6e 74 54 61 |.<draw_setFontTa| 0002efe0 62 6c 65 3e 0a 3c 64 72 61 77 5f 76 65 72 69 66 |ble>.<draw_verif| 0002eff0 79 4f 62 6a 65 63 74 3e 0a 3c 64 72 61 77 5f 63 |yObject>.<draw_c| 0002f000 72 65 61 74 65 4f 62 6a 65 63 74 3e 0a 3c 64 72 |reateObject>.<dr| 0002f010 61 77 5f 64 65 6c 65 74 65 4f 62 6a 65 63 74 73 |aw_deleteObjects| 0002f020 3e 0a 3c 64 72 61 77 5f 65 78 74 72 61 63 74 4f |>.<draw_extractO| 0002f030 62 6a 65 63 74 3e 0a 3c 64 72 61 77 5f 74 72 61 |bject>.<draw_tra| 0002f040 6e 73 6c 61 74 65 54 65 78 74 3e 0a 23 45 6e 64 |nslateText>.#End| 0002f050 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 30 |Table..#Indent 0| 0002f060 0a 4d 61 63 72 6f 73 3a 20 20 20 20 20 20 20 20 |.Macros: | 0002f070 20 20 20 20 20 20 20 20 20 20 54 79 70 65 73 3a | Types:| 0002f080 0a 0a 20 20 3c 64 72 61 77 5f 4e 6f 4f 62 6a 65 |.. <draw_NoObje| 0002f090 63 74 3e 20 20 20 20 20 3c 64 72 61 77 5f 6f 62 |ct> <draw_ob| 0002f0a0 6a 65 63 74 54 79 70 65 3e 0a 20 20 3c 64 72 61 |jectType>. <dra| 0002f0b0 77 5f 46 69 72 73 74 4f 62 6a 65 63 74 3e 0a 20 |w_FirstObject>. | 0002f0c0 20 3c 64 72 61 77 5f 4c 61 73 74 4f 62 6a 65 63 | <draw_LastObjec| 0002f0d0 74 3e 0a 0a 56 61 72 69 61 62 6c 65 73 3a 0a 0a |t>..Variables:..| 0002f0e0 20 20 3c 64 72 61 77 5f 74 72 61 6e 73 54 61 62 | <draw_transTab| 0002f0f0 6c 65 3e 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |le>.DIR$,...,...| 0002f100 20 f1 02 00 46 ff ff ff 53 44 26 23 af 00 00 00 | ...F...SD&#....| 0002f110 13 00 00 00 00 00 00 00 69 6e 69 74 00 00 00 00 |........init....| 0002f120 44 41 54 41 af 00 00 00 64 72 61 77 66 6f 62 6a |DATA....drawfobj| 0002f130 5f 69 6e 69 74 0a 53 79 6e 74 61 78 3a 09 3c 42 |_init.Syntax:.<B| 0002f140 4f 4f 4c 3e 20 64 72 61 77 6f 62 6a 5f 69 6e 69 |OOL> drawobj_ini| 0002f150 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |t (void);.Header| 0002f160 3a 09 3c 64 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 |:.<drawfobj.h=>d| 0002f170 72 61 77 66 6f 62 6a 3e 0a 0a 52 65 74 75 72 6e |rawfobj>..Return| 0002f180 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 73 75 63 |s:.<TRUE> if suc| 0002f190 63 65 73 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 |cessful...This f| 0002f1a0 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 |unction initiali| 0002f1b0 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 6c |ses the object l| 0002f1c0 65 76 65 6c 20 69 6e 74 65 72 66 61 63 65 2e 00 |evel interface..| 0002f1d0 44 41 54 41 7b 04 00 00 64 72 61 77 66 74 79 70 |DATA{...drawftyp| 0002f1e0 65 73 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 |es.h.This header| 0002f1f0 20 64 65 66 69 6e 65 73 20 74 79 70 65 73 20 75 | defines types u| 0002f200 73 65 64 20 62 79 20 74 68 65 20 6f 62 6a 65 63 |sed by the objec| 0002f210 74 20 6c 65 76 65 6c 20 69 6e 74 65 72 66 61 63 |t level interfac| 0002f220 65 20 66 6f 72 20 64 72 61 77 20 66 69 6c 65 73 |e for draw files| 0002f230 2e 20 59 6f 75 20 64 6f 20 6e 6f 74 20 6e 6f 72 |. You do not nor| 0002f240 6d 61 6c 6c 79 20 6e 65 65 64 20 74 6f 20 3c 23 |mally need to <#| 0002f250 69 6e 63 6c 75 64 65 3d 3e 69 6e 63 6c 75 64 65 |include=>include| 0002f260 3e 20 74 68 69 73 2c 20 3c 64 72 61 77 66 6f 62 |> this, <drawfob| 0002f270 6a 2e 68 3d 3e 64 72 61 77 66 6f 62 6a 3e 20 70 |j.h=>drawfobj> p| 0002f280 75 6c 6c 73 20 69 74 20 69 6e 2e 0a 0a 4d 61 63 |ulls it in...Mac| 0002f290 72 6f 73 3a 0a 0a 23 54 61 62 6c 65 20 34 20 32 |ros:..#Table 4 2| 0002f2a0 30 0a 3c 70 61 63 6b 6d 61 73 6b 5f 6a 6f 69 6e |0.<packmask_join| 0002f2b0 3e 0a 3c 70 61 63 6b 6d 61 73 6b 5f 65 6e 64 63 |>.<packmask_endc| 0002f2c0 61 70 3e 0a 3c 70 61 63 6b 6d 61 73 6b 5f 73 74 |ap>.<packmask_st| 0002f2d0 61 72 74 63 61 70 3e 0a 3c 70 61 63 6b 6d 61 73 |artcap>.<packmas| 0002f2e0 6b 5f 77 69 6e 64 72 75 6c 65 3e 0a 3c 70 61 63 |k_windrule>.<pac| 0002f2f0 6b 6d 61 73 6b 5f 64 61 73 68 65 64 3e 0a 3c 70 |kmask_dashed>.<p| 0002f300 61 63 6b 73 68 66 74 5f 6a 6f 69 6e 3e 0a 3c 70 |ackshft_join>.<p| 0002f310 61 63 6b 73 68 66 74 5f 65 6e 64 63 61 70 3e 0a |ackshft_endcap>.| 0002f320 3c 70 61 63 6b 73 68 66 74 5f 73 74 61 72 74 63 |<packshft_startc| 0002f330 61 70 3e 0a 3c 70 61 63 6b 73 68 66 74 5f 77 69 |ap>.<packshft_wi| 0002f340 6e 64 72 75 6c 65 3e 0a 3c 70 61 63 6b 73 68 66 |ndrule>.<packshf| 0002f350 74 5f 64 61 73 68 65 64 3e 0a 23 45 6e 64 54 61 |t_dashed>.#EndTa| 0002f360 62 6c 65 0a 0a 54 79 70 65 73 3a 0a 0a 23 54 61 |ble..Types:..#Ta| 0002f370 62 6c 65 20 31 35 20 32 30 0a 3c 64 72 61 77 5f |ble 15 20.<draw_| 0002f380 73 69 7a 65 74 79 70 3e 0a 3c 64 72 61 77 5f 63 |sizetyp>.<draw_c| 0002f390 6f 6c 74 79 70 3e 0a 3c 64 72 61 77 5f 70 61 74 |oltyp>.<draw_pat| 0002f3a0 68 77 69 64 74 68 3e 0a 3c 64 72 61 77 5f 62 62 |hwidth>.<draw_bb| 0002f3b0 6f 78 74 79 70 3e 0a 3c 64 72 61 77 5f 6a 6f 69 |oxtyp>.<draw_joi| 0002f3c0 6e 74 79 70 3e 0a 3c 64 72 61 77 5f 63 61 70 74 |ntyp>.<draw_capt| 0002f3d0 79 70 3e 0a 3c 64 72 61 77 5f 77 69 6e 64 74 79 |yp>.<draw_windty| 0002f3e0 70 3e 0a 3c 64 72 61 77 5f 64 61 73 68 74 79 70 |p>.<draw_dashtyp| 0002f3f0 3e 0a 3c 64 72 61 77 5f 70 61 74 68 73 74 79 6c |>.<draw_pathstyl| 0002f400 65 3e 0a 3c 64 72 61 77 5f 66 6f 6e 74 72 65 66 |e>.<draw_fontref| 0002f410 3e 0a 3c 64 72 61 77 5f 74 65 78 74 73 74 79 6c |>.<draw_textstyl| 0002f420 65 3e 0a 3c 64 72 61 77 5f 66 6f 6e 74 73 69 7a |e>.<draw_fontsiz| 0002f430 65 3e 0a 3c 66 6f 6e 74 72 65 63 3e 0a 3c 64 72 |e>.<fontrec>.<dr| 0002f440 61 77 5f 74 61 67 74 79 70 3e 0a 3c 64 72 61 77 |aw_tagtyp>.<draw| 0002f450 5f 6f 62 6a 63 6f 6f 72 64 3e 0a 3c 64 72 61 77 |_objcoord>.<draw| 0002f460 5f 66 69 6c 65 68 65 61 64 65 72 3e 0a 3c 64 72 |_fileheader>.<dr| 0002f470 61 77 5f 6f 62 6a 68 64 72 3e 0a 3c 64 72 61 77 |aw_objhdr>.<draw| 0002f480 5f 66 6f 6e 74 6c 69 73 74 73 74 72 68 64 72 3e |_fontliststrhdr>| 0002f490 0a 3c 64 72 61 77 5f 66 6f 6e 74 6c 69 73 74 73 |.<draw_fontlists| 0002f4a0 74 72 3e 0a 3c 64 72 61 77 5f 74 65 78 74 73 74 |tr>.<draw_textst| 0002f4b0 72 68 64 72 3e 0a 3c 64 72 61 77 5f 74 65 78 74 |rhdr>.<draw_text| 0002f4c0 73 74 72 3e 0a 3c 64 72 61 77 5f 70 61 74 68 5f |str>.<draw_path_| 0002f4d0 74 61 67 74 79 70 65 3e 0a 3c 50 61 74 68 5f 6d |tagtype>.<Path_m| 0002f4e0 6f 76 65 73 74 72 3e 0a 3c 50 61 74 68 5f 6c 69 |ovestr>.<Path_li| 0002f4f0 6e 65 73 74 72 3e 0a 3c 50 61 74 68 5f 63 75 72 |nestr>.<Path_cur| 0002f500 76 65 73 74 72 3e 0a 3c 50 61 74 68 5f 63 6c 6f |vestr>.<Path_clo| 0002f510 73 65 73 74 72 3e 0a 3c 50 61 74 68 5f 74 65 72 |sestr>.<Path_ter| 0002f520 6d 73 74 72 3e 0a 3c 4c 61 72 67 65 73 74 5f 70 |mstr>.<Largest_p| 0002f530 61 74 68 5f 73 74 72 3e 0a 3c 50 61 74 68 5f 65 |ath_str>.<Path_e| 0002f540 6c 65 70 74 72 3e 0a 3c 64 72 61 77 5f 64 61 73 |leptr>.<draw_das| 0002f550 68 73 74 72 68 64 72 3e 0a 3c 64 72 61 77 5f 64 |hstrhdr>.<draw_d| 0002f560 61 73 68 73 74 72 3e 0a 3c 64 72 61 77 5f 6a 6f |ashstr>.<draw_jo| 0002f570 69 6e 74 73 70 65 63 3e 0a 3c 64 72 61 77 5f 70 |intspec>.<draw_p| 0002f580 61 74 68 73 74 72 68 64 72 3e 0a 3c 64 72 61 77 |athstrhdr>.<draw| 0002f590 5f 70 61 74 68 73 74 72 3e 0a 3c 64 72 61 77 5f |_pathstr>.<draw_| 0002f5a0 73 70 72 69 73 74 72 68 64 72 3e 0a 3c 64 72 61 |spristrhdr>.<dra| 0002f5b0 77 5f 73 70 72 69 73 74 72 3e 0a 3c 64 72 61 77 |w_spristr>.<draw| 0002f5c0 5f 67 72 6f 75 70 6e 61 6d 65 74 79 70 3e 0a 3c |_groupnametyp>.<| 0002f5d0 64 72 61 77 5f 67 72 6f 75 73 74 72 3e 0a 3c 64 |draw_groustr>.<d| 0002f5e0 72 61 77 5f 74 65 78 74 63 6f 6c 68 64 72 3e 0a |raw_textcolhdr>.| 0002f5f0 3c 64 72 61 77 5f 74 65 78 74 61 72 65 61 73 74 |<draw_textareast| 0002f600 72 68 64 72 3e 0a 3c 64 72 61 77 5f 74 65 78 74 |rhdr>.<draw_text| 0002f610 61 72 65 61 68 64 72 3e 0a 3c 64 72 61 77 5f 74 |areahdr>.<draw_t| 0002f620 65 78 74 61 72 65 61 73 74 72 65 6e 64 3e 0a 3c |extareastrend>.<| 0002f630 64 72 61 77 5f 74 65 78 74 61 72 65 61 65 6e 64 |draw_textareaend| 0002f640 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 0002f650 de 03 00 00 64 72 61 77 6d 6f 64 2e 68 0a 54 68 |....drawmod.h.Th| 0002f660 69 73 20 68 65 61 64 65 72 20 70 72 6f 76 69 64 |is header provid| 0002f670 65 73 20 61 6e 20 69 6e 74 65 72 66 61 63 65 20 |es an interface | 0002f680 74 6f 20 74 68 65 20 44 72 61 77 20 6d 6f 64 75 |to the Draw modu| 0002f690 6c 65 20 28 6e 6f 74 20 74 6f 20 62 65 20 63 6f |le (not to be co| 0002f6a0 6e 66 75 73 65 64 20 77 69 74 68 20 21 44 72 61 |nfused with !Dra| 0002f6b0 77 29 2e 20 49 74 20 63 61 6c 6c 73 20 74 68 65 |w). It calls the| 0002f6c0 20 3c 44 72 61 77 20 53 57 49 73 3d 3e 53 57 49 | <Draw SWIs=>SWI| 0002f6d0 3a 44 72 61 77 5f 3e 2e 0a 0a 46 75 6e 63 74 69 |:Draw_>...Functi| 0002f6e0 6f 6e 73 3a 0a 0a 23 54 61 62 6c 65 20 35 20 32 |ons:..#Table 5 2| 0002f6f0 33 0a 3c 64 72 61 77 6d 6f 64 5f 66 69 6c 6c 3e |3.<drawmod_fill>| 0002f700 0a 3c 64 72 61 77 6d 6f 64 5f 73 74 72 6f 6b 65 |.<drawmod_stroke| 0002f710 3e 0a 3c 64 72 61 77 6d 6f 64 5f 64 6f 5f 73 74 |>.<drawmod_do_st| 0002f720 72 6f 6b 65 70 61 74 68 3e 0a 3c 64 72 61 77 6d |rokepath>.<drawm| 0002f730 6f 64 5f 61 73 6b 5f 73 74 72 6f 6b 65 70 61 74 |od_ask_strokepat| 0002f740 68 3e 0a 3c 64 72 61 77 6d 6f 64 5f 64 6f 5f 66 |h>.<drawmod_do_f| 0002f750 6c 61 74 74 65 6e 70 61 74 68 3e 0a 3c 64 72 61 |lattenpath>.<dra| 0002f760 77 6d 6f 64 5f 61 73 6b 5f 66 6c 61 74 74 65 6e |wmod_ask_flatten| 0002f770 70 61 74 68 3e 0a 3c 64 72 61 77 6d 6f 64 5f 62 |path>.<drawmod_b| 0002f780 75 66 5f 74 72 61 6e 73 66 6f 72 6d 70 61 74 68 |uf_transformpath| 0002f790 3e 0a 3c 64 72 61 77 6d 6f 64 5f 69 6e 73 69 74 |>.<drawmod_insit| 0002f7a0 75 5f 74 72 61 6e 73 66 6f 72 6d 70 61 74 68 3e |u_transformpath>| 0002f7b0 0a 3c 64 72 61 77 6d 6f 64 5f 70 72 6f 63 65 73 |.<drawmod_proces| 0002f7c0 73 70 61 74 68 3e 0a 23 65 6e 64 74 61 62 6c 65 |spath>.#endtable| 0002f7d0 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 23 54 61 62 6c |..Macros:..#Tabl| 0002f7e0 65 20 34 20 32 33 0a 3c 63 61 70 5f 62 75 74 74 |e 4 23.<cap_butt| 0002f7f0 3e 0a 3c 63 61 70 5f 72 6f 75 6e 64 3e 0a 3c 63 |>.<cap_round>.<c| 0002f800 61 70 5f 73 71 75 61 72 65 3e 0a 3c 63 61 70 5f |ap_square>.<cap_| 0002f810 74 72 69 61 6e 67 3e 0a 3c 6a 6f 69 6e 5f 6d 69 |triang>.<join_mi| 0002f820 74 72 65 64 3e 20 0a 3c 6a 6f 69 6e 5f 72 6f 75 |tred> .<join_rou| 0002f830 6e 64 3e 20 0a 3c 6a 6f 69 6e 5f 62 65 76 65 6c |nd> .<join_bevel| 0002f840 6c 65 64 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a |led>.#EndTable..| 0002f850 54 79 70 65 73 3a 0a 0a 23 54 61 62 6c 65 20 31 |Types:..#Table 1| 0002f860 30 20 32 33 0a 3c 64 72 61 77 6d 6f 64 5f 70 61 |0 23.<drawmod_pa| 0002f870 74 68 65 6c 65 6d 70 74 72 3e 0a 3c 64 72 61 77 |thelemptr>.<draw| 0002f880 6d 6f 64 5f 66 69 6c 6c 74 79 70 65 3e 20 0a 3c |mod_filltype> .<| 0002f890 64 72 61 77 6d 6f 64 5f 63 61 70 6a 6f 69 6e 73 |drawmod_capjoins| 0002f8a0 70 65 63 3e 0a 3c 64 72 61 77 6d 6f 64 5f 64 61 |pec>.<drawmod_da| 0002f8b0 73 68 68 64 72 3e 20 0a 3c 64 72 61 77 6d 6f 64 |shhdr> .<drawmod| 0002f8c0 5f 6c 69 6e 65 3e 20 0a 3c 64 72 61 77 6d 6f 64 |_line> .<drawmod| 0002f8d0 5f 74 72 61 6e 73 6d 61 74 3e 20 0a 3c 64 72 61 |_transmat> .<dra| 0002f8e0 77 6d 6f 64 5f 62 6f 78 3e 20 0a 3c 64 72 61 77 |wmod_box> .<draw| 0002f8f0 6d 6f 64 5f 6f 70 74 69 6f 6e 73 3e 20 0a 3c 64 |mod_options> .<d| 0002f900 72 61 77 6d 6f 64 5f 62 75 66 66 65 72 3e 20 0a |rawmod_buffer> .| 0002f910 3c 64 72 61 77 6d 6f 64 5f 74 61 67 74 79 70 65 |<drawmod_tagtype| 0002f920 3e 20 0a 3c 64 72 61 77 6d 6f 64 5f 66 69 6c 6c |> .<drawmod_fill| 0002f930 69 6e 67 5f 6f 70 74 69 6f 6e 73 3e 20 0a 3c 64 |ing_options> .<d| 0002f940 72 61 77 6d 6f 64 5f 70 61 74 68 5f 74 61 67 74 |rawmod_path_tagt| 0002f950 79 70 65 3e 20 0a 3c 64 72 61 77 6d 6f 64 5f 70 |ype> .<drawmod_p| 0002f960 61 74 68 5f 65 6e 64 73 74 72 3e 20 0a 3c 64 72 |ath_endstr> .<dr| 0002f970 61 77 6d 6f 64 5f 70 61 74 68 5f 70 74 72 73 74 |awmod_path_ptrst| 0002f980 72 3e 20 0a 3c 64 72 61 77 6d 6f 64 5f 70 61 74 |r> .<drawmod_pat| 0002f990 68 5f 6d 6f 76 65 73 74 72 3e 20 0a 3c 64 72 61 |h_movestr> .<dra| 0002f9a0 77 6d 6f 64 5f 70 61 74 68 5f 63 6c 6f 73 65 67 |wmod_path_closeg| 0002f9b0 61 70 73 74 72 3e 20 0a 3c 64 72 61 77 6d 6f 64 |apstr> .<drawmod| 0002f9c0 5f 70 61 74 68 5f 63 6c 6f 73 65 6c 69 6e 65 73 |_path_closelines| 0002f9d0 74 72 3e 0a 3c 64 72 61 77 6d 6f 64 5f 70 61 74 |tr>.<drawmod_pat| 0002f9e0 68 5f 62 65 7a 69 65 72 73 74 72 3e 20 0a 3c 64 |h_bezierstr> .<d| 0002f9f0 72 61 77 6d 6f 64 5f 70 61 74 68 5f 67 61 70 74 |rawmod_path_gapt| 0002fa00 6f 73 74 72 3e 20 0a 3c 64 72 61 77 6d 6f 64 5f |ostr> .<drawmod_| 0002fa10 70 61 74 68 5f 6c 69 6e 65 74 6f 73 74 72 3e 20 |path_linetostr> | 0002fa20 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 49 52 24 |.#EndTable..DIR$| 0002fa30 48 04 00 00 48 04 00 00 74 fe 02 00 46 ff ff ff |H...H...t...F...| 0002fa40 26 c6 45 23 86 01 00 00 13 00 00 00 00 00 00 00 |&.E#............| 0002fa50 61 73 6b 5f 66 6c 61 74 74 65 6e 70 61 74 68 00 |ask_flattenpath.| 0002fa60 fc ff 02 00 46 ff ff ff 2e af 45 23 d2 01 00 00 |....F.....E#....| 0002fa70 13 00 00 00 00 00 00 00 61 73 6b 5f 73 74 72 6f |........ask_stro| 0002fa80 6b 65 70 61 74 68 00 00 d0 01 03 00 46 ff ff ff |kepath......F...| 0002fa90 c6 89 46 23 a0 00 00 00 13 00 00 00 00 00 00 00 |..F#............| 0002faa0 62 6f 78 00 70 02 03 00 46 ff ff ff 19 d0 45 23 |box.p...F.....E#| 0002fab0 68 01 00 00 13 00 00 00 00 00 00 00 62 75 66 5f |h...........buf_| 0002fac0 74 72 61 6e 73 66 6f 72 6d 70 61 74 68 00 00 00 |transformpath...| 0002fad0 d8 03 03 00 46 ff ff ff d9 9f 46 23 b9 01 00 00 |....F.....F#....| 0002fae0 13 00 00 00 00 00 00 00 62 75 66 66 65 72 00 00 |........buffer..| 0002faf0 94 05 03 00 46 ff ff ff 73 70 46 23 94 01 00 00 |....F...spF#....| 0002fb00 13 00 00 00 00 00 00 00 63 61 70 6a 6f 69 6e 73 |........capjoins| 0002fb10 70 65 63 00 28 07 03 00 46 ff ff ff 80 78 46 23 |pec.(...F....xF#| 0002fb20 cd 00 00 00 13 00 00 00 00 00 00 00 64 61 73 68 |............dash| 0002fb30 68 64 72 00 f8 07 03 00 46 ff ff ff 1a bc 45 23 |hdr.....F.....E#| 0002fb40 6c 01 00 00 13 00 00 00 00 00 00 00 64 6f 5f 66 |l...........do_f| 0002fb50 6c 61 74 74 65 6e 70 61 74 68 00 00 64 09 03 00 |lattenpath..d...| 0002fb60 46 ff ff ff 93 a3 45 23 69 01 00 00 13 00 00 00 |F.....E#i.......| 0002fb70 00 00 00 00 64 6f 5f 73 74 72 6f 6b 65 70 61 74 |....do_strokepat| 0002fb80 68 00 00 00 d0 0a 03 00 46 ff ff ff 36 84 45 23 |h.......F...6.E#| 0002fb90 1d 02 00 00 13 00 00 00 00 00 00 00 66 69 6c 6c |............fill| 0002fba0 00 00 00 00 f0 0c 03 00 46 ff ff ff bb ba 46 23 |........F.....F#| 0002fbb0 cf 01 00 00 13 00 00 00 00 00 00 00 66 69 6c 6c |............fill| 0002fbc0 69 6e 67 5f 6f 70 74 69 6f 6e 73 00 c0 0e 03 00 |ing_options.....| 0002fbd0 46 ff ff ff 44 61 46 23 4e 02 00 00 13 00 00 00 |F...DaF#N.......| 0002fbe0 00 00 00 00 66 69 6c 6c 74 79 70 65 00 00 00 00 |....filltype....| 0002fbf0 10 11 03 00 46 ff ff ff 8c da 45 23 56 01 00 00 |....F.....E#V...| 0002fc00 13 00 00 00 00 00 00 00 69 6e 73 69 74 75 5f 74 |........insitu_t| 0002fc10 72 61 6e 73 66 6f 72 6d 70 61 74 68 00 00 00 00 |ransformpath....| 0002fc20 68 12 03 00 46 ff ff ff f9 7d 46 23 05 01 00 00 |h...F....}F#....| 0002fc30 13 00 00 00 00 00 00 00 6c 69 6e 65 00 00 00 00 |........line....| 0002fc40 70 13 03 00 46 ff ff ff b1 91 46 23 02 01 00 00 |p...F.....F#....| 0002fc50 13 00 00 00 00 00 00 00 6f 70 74 69 6f 6e 73 00 |........options.| 0002fc60 74 14 03 00 46 ff ff ff e8 ff 46 23 0f 01 00 00 |t...F.....F#....| 0002fc70 13 00 00 00 00 00 00 00 70 61 74 68 5f 62 65 7a |........path_bez| 0002fc80 69 65 72 73 74 72 00 00 84 15 03 00 46 ff ff ff |ierstr......F...| 0002fc90 f9 ec 46 23 c3 00 00 00 13 00 00 00 00 00 00 00 |..F#............| 0002fca0 70 61 74 68 5f 63 6c 6f 73 65 67 61 70 73 74 72 |path_closegapstr| 0002fcb0 00 00 00 00 48 16 03 00 46 ff ff ff 76 f5 46 23 |....H...F...v.F#| 0002fcc0 c5 00 00 00 13 00 00 00 00 00 00 00 70 61 74 68 |............path| 0002fcd0 5f 63 6c 6f 73 65 6c 69 6e 65 73 74 72 00 00 00 |_closelinestr...| 0002fce0 10 17 03 00 46 ff ff ff cd d4 46 23 da 00 00 00 |....F.....F#....| 0002fcf0 13 00 00 00 00 00 00 00 70 61 74 68 5f 65 6e 64 |........path_end| 0002fd00 73 74 72 00 ec 17 03 00 46 ff ff ff 9a 0c 47 23 |str.....F.....G#| 0002fd10 bd 00 00 00 13 00 00 00 00 00 00 00 70 61 74 68 |............path| 0002fd20 5f 67 61 70 74 6f 73 74 72 00 00 00 ac 18 03 00 |_gaptostr.......| 0002fd30 46 ff ff ff 0c 16 47 23 bf 00 00 00 13 00 00 00 |F.....G#........| 0002fd40 00 00 00 00 70 61 74 68 5f 6c 69 6e 65 74 6f 73 |....path_linetos| 0002fd50 74 72 00 00 6c 19 03 00 46 ff ff ff d6 e6 46 23 |tr..l...F.....F#| 0002fd60 be 00 00 00 13 00 00 00 00 00 00 00 70 61 74 68 |............path| 0002fd70 5f 6d 6f 76 65 73 74 72 00 00 00 00 2c 1a 03 00 |_movestr....,...| 0002fd80 46 ff ff ff b7 de 46 23 c7 00 00 00 13 00 00 00 |F.....F#........| 0002fd90 00 00 00 00 70 61 74 68 5f 70 74 72 73 74 72 00 |....path_ptrstr.| 0002fda0 f4 1a 03 00 46 ff ff ff cc c6 46 23 d4 01 00 00 |....F.....F#....| 0002fdb0 13 00 00 00 00 00 00 00 70 61 74 68 5f 74 61 67 |........path_tag| 0002fdc0 74 79 70 65 00 00 00 00 c8 1c 03 00 46 ff ff ff |type........F...| 0002fdd0 9b 38 46 23 02 02 00 00 13 00 00 00 00 00 00 00 |.8F#............| 0002fde0 70 61 74 68 65 6c 65 6d 70 74 72 00 cc 1e 03 00 |pathelemptr.....| 0002fdf0 46 ff ff ff 08 ee 45 23 a5 02 00 00 13 00 00 00 |F.....E#........| 0002fe00 00 00 00 00 70 72 6f 63 65 73 73 70 61 74 68 00 |....processpath.| 0002fe10 74 21 03 00 46 ff ff ff 9b 99 45 23 61 02 00 00 |t!..F.....E#a...| 0002fe20 13 00 00 00 00 00 00 00 73 74 72 6f 6b 65 00 00 |........stroke..| 0002fe30 d8 23 03 00 46 ff ff ff 4a ab 46 23 a3 00 00 00 |.#..F...J.F#....| 0002fe40 13 00 00 00 00 00 00 00 74 61 67 74 79 70 65 00 |........tagtype.| 0002fe50 7c 24 03 00 46 ff ff ff 24 86 46 23 ae 00 00 00 ||$..F...$.F#....| 0002fe60 13 00 00 00 00 00 00 00 74 72 61 6e 73 6d 61 74 |........transmat| 0002fe70 00 00 00 00 44 41 54 41 86 01 00 00 64 72 61 77 |....DATA....draw| 0002fe80 6d 6f 64 5f 61 73 6b 5f 66 6c 61 74 74 65 6e 70 |mod_ask_flattenp| 0002fe90 61 74 68 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ath.Syntax:.<os_| 0002fea0 65 72 72 6f 72 3e 20 2a 64 72 61 77 6d 6f 64 5f |error> *drawmod_| 0002feb0 61 73 6b 5f 66 6c 61 74 74 65 6e 70 61 74 68 20 |ask_flattenpath | 0002fec0 28 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 65 6c |(<drawmod_pathel| 0002fed0 65 6d 70 74 72 3e 20 70 61 74 68 2c 20 69 6e 74 |emptr> path, int| 0002fee0 20 66 6c 61 74 6e 65 73 73 2c 20 69 6e 74 20 2a | flatness, int *| 0002fef0 62 75 66 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a |buflen);.Header:| 0002ff00 09 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 |.<drawmod.h=>dra| 0002ff10 77 6d 6f 64 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |wmod>..Returns:.| 0002ff20 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 0002ff30 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 0002ff40 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 0002ff50 69 6f 6e 20 63 6f 6e 76 65 72 74 73 20 61 6e 20 |ion converts an | 0002ff60 69 6e 70 75 74 20 70 61 74 68 20 28 69 6e 20 7b |input path (in {| 0002ff70 2f 7d 70 61 74 68 7b 2f 7d 29 20 69 6e 74 6f 20 |/}path{/}) into | 0002ff80 61 20 66 6c 61 74 74 65 6e 65 64 20 6f 75 74 70 |a flattened outp| 0002ff90 75 74 20 70 61 74 68 2c 20 61 63 63 6f 72 64 69 |ut path, accordi| 0002ffa0 6e 67 20 74 6f 20 74 68 65 20 66 6c 61 74 6e 65 |ng to the flatne| 0002ffb0 73 73 20 28 30 20 66 6f 72 20 64 65 66 61 75 6c |ss (0 for defaul| 0002ffc0 74 29 2e 20 49 74 20 72 65 74 75 72 6e 73 20 74 |t). It returns t| 0002ffd0 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 73 75 63 |he length of suc| 0002ffe0 68 20 61 20 70 61 74 68 20 69 6e 20 7b 2f 7d 2a |h a path in {/}*| 0002fff0 62 75 66 6c 65 6e 7b 2f 7d 2e 00 00 44 41 54 41 |buflen{/}...DATA| 00030000 d2 01 00 00 64 72 61 77 6d 6f 64 5f 61 73 6b 5f |....drawmod_ask_| 00030010 73 74 72 6f 6b 65 70 61 74 68 0a 53 79 6e 74 61 |strokepath.Synta| 00030020 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 64 |x:.<os_error> *d| 00030030 72 61 77 6d 6f 64 5f 61 73 6b 5f 73 74 72 6f 6b |rawmod_ask_strok| 00030040 65 70 61 74 68 20 28 3c 64 72 61 77 6d 6f 64 5f |epath (<drawmod_| 00030050 70 61 74 68 65 6c 65 6d 70 74 72 3e 20 70 61 74 |pathelemptr> pat| 00030060 68 2c 20 3c 64 72 61 77 6d 6f 64 5f 74 72 61 6e |h, <drawmod_tran| 00030070 73 6d 61 74 3e 20 2a 6d 61 74 72 69 78 2c 20 3c |smat> *matrix, <| 00030080 64 72 61 77 6d 6f 64 5f 6c 69 6e 65 3e 20 2a 6c |drawmod_line> *l| 00030090 69 6e 65 5f 73 74 79 6c 65 2c 20 69 6e 74 20 2a |ine_style, int *| 000300a0 62 75 66 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a |buflen);.Header:| 000300b0 09 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 |.<drawmod.h=>dra| 000300c0 77 6d 6f 64 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |wmod>..Returns:.| 000300d0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000300e0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000300f0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00030100 69 6f 6e 20 64 6f 65 73 20 74 68 65 20 73 61 6d |ion does the sam| 00030110 65 20 61 73 20 3c 64 72 61 77 6d 6f 64 5f 73 74 |e as <drawmod_st| 00030120 72 6f 6b 65 3e 2c 20 65 78 63 65 70 74 20 74 68 |roke>, except th| 00030130 61 74 20 6f 75 74 70 75 74 20 69 73 20 74 6f 20 |at output is to | 00030140 61 20 62 75 66 66 65 72 2e 20 54 68 69 73 20 66 |a buffer. This f| 00030150 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 |unction does not| 00030160 20 61 63 74 75 61 6c 6c 79 20 72 65 74 75 72 6e | actually return| 00030170 20 74 68 65 20 64 61 74 61 2c 20 6a 75 73 74 20 | the data, just | 00030180 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 69 74 |the length of it| 00030190 20 28 69 6e 20 7b 2f 7d 2a 62 75 66 6c 65 6e 7b | (in {/}*buflen{| 000301a0 2f 7d 29 2e 20 3c 64 72 61 77 6d 6f 64 5f 64 6f |/}). <drawmod_do| 000301b0 5f 73 74 72 6f 6b 65 70 61 74 68 3e 20 72 65 74 |_strokepath> ret| 000301c0 75 72 6e 73 20 74 68 65 20 64 61 74 61 2e 00 00 |urns the data...| 000301d0 44 41 54 41 a0 00 00 00 64 72 61 77 6d 6f 64 5f |DATA....drawmod_| 000301e0 62 6f 78 0a 54 68 69 73 20 74 79 70 65 20 69 73 |box.This type is| 000301f0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 00030200 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e |wmod.h=>drawmod>| 00030210 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 00030220 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 |g structure:.. | 00030230 5c 7b 0a 20 20 20 20 69 6e 74 20 6c 6f 77 78 3b |\{. int lowx;| 00030240 0a 20 20 20 20 69 6e 74 20 6c 6f 77 59 3b 0a 20 |. int lowY;. | 00030250 20 20 20 69 6e 74 20 68 69 67 68 58 3b 0a 20 20 | int highX;. | 00030260 20 20 69 6e 74 20 68 69 67 68 59 3b 0a 20 20 7d | int highY;. }| 00030270 44 41 54 41 68 01 00 00 64 72 61 77 6d 6f 64 5f |DATAh...drawmod_| 00030280 62 75 66 5f 74 72 61 6e 73 66 6f 72 6d 70 61 74 |buf_transformpat| 00030290 68 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |h.Syntax:.<os_er| 000302a0 72 6f 72 3e 20 2a 64 72 61 77 6d 6f 64 5f 62 75 |ror> *drawmod_bu| 000302b0 66 5f 74 72 61 6e 73 66 6f 72 6d 70 61 74 68 20 |f_transformpath | 000302c0 28 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 65 6c |(<drawmod_pathel| 000302d0 65 6d 70 74 72 3e 20 70 61 74 68 2c 20 3c 64 72 |emptr> path, <dr| 000302e0 61 77 6d 6f 64 5f 62 75 66 66 65 72 3e 20 2a 62 |awmod_buffer> *b| 000302f0 75 66 66 65 72 2c 20 3c 64 72 61 77 6d 6f 64 5f |uffer, <drawmod_| 00030300 74 72 61 6e 73 6d 61 74 3e 20 2a 6d 61 74 72 69 |transmat> *matri| 00030310 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 |x);.Header:.<dra| 00030320 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e |wmod.h=>drawmod>| 00030330 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 00030340 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 00030350 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 00030360 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 |.This function p| 00030370 75 74 73 20 74 68 65 20 70 61 74 68 20 69 6e 20 |uts the path in | 00030380 2f 70 61 74 68 2f 20 74 68 72 6f 75 67 74 68 20 |/path/ througth | 00030390 74 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 |the transformati| 000303a0 6f 6e 20 6d 61 74 72 69 78 20 69 6e 20 2f 6d 61 |on matrix in /ma| 000303b0 74 72 69 78 2f 20 61 6e 64 20 70 6c 61 63 65 73 |trix/ and places| 000303c0 20 74 68 65 20 72 65 73 75 6c 74 20 69 6e 20 2f | the result in /| 000303d0 62 75 66 66 65 72 2f 2e 44 41 54 41 b9 01 00 00 |buffer/.DATA....| 000303e0 64 72 61 77 6d 6f 64 5f 62 75 66 66 65 72 0a 54 |drawmod_buffer.T| 000303f0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00030400 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 2e |ned in <drawmod.| 00030410 68 3d 3e 64 72 61 77 6d 6f 64 3e 20 61 73 20 61 |h=>drawmod> as a| 00030420 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 | type containing| 00030430 20 61 20 70 61 74 68 20 62 75 66 66 65 72 2e 20 | a path buffer. | 00030440 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00030450 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 20 |:.. \{. int | 00030460 7a 65 72 6f 77 6f 72 64 3b 0a 20 20 20 20 69 6e |zeroword;. in| 00030470 74 20 73 69 7a 65 77 6f 72 64 3b 0a 20 20 7d 0a |t sizeword;. }.| 00030480 0a 54 79 70 69 63 61 6c 6c 79 2c 20 79 6f 75 20 |.Typically, you | 00030490 77 69 6c 6c 20 61 6c 6c 6f 63 61 74 65 20 73 70 |will allocate sp| 000304a0 61 63 65 20 66 6f 72 20 79 6f 75 72 20 70 61 74 |ace for your pat| 000304b0 68 20 61 6e 64 20 74 68 65 6e 20 73 65 74 20 61 |h and then set a| 000304c0 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 | variable of typ| 000304d0 65 20 7b 2f 7d 64 72 61 77 6d 6f 64 5f 62 75 66 |e {/}drawmod_buf| 000304e0 66 65 72 20 2a 7b 2f 7d 20 74 6f 20 70 6f 69 6e |fer *{/} to poin| 000304f0 74 20 61 74 20 69 74 2e 20 46 6f 72 20 66 75 6e |t at it. For fun| 00030500 63 74 69 6f 6e 73 20 77 68 69 63 68 20 74 61 6b |ctions which tak| 00030510 65 20 61 20 7b 2f 7d 64 72 61 77 6d 6f 64 5f 62 |e a {/}drawmod_b| 00030520 75 66 66 65 72 20 2a 7b 2f 7d 20 70 61 72 61 6d |uffer *{/} param| 00030530 65 74 65 72 2c 20 2f 7a 65 72 6f 77 6f 72 64 2f |eter, /zeroword/| 00030540 20 73 68 6f 75 6c 64 20 63 6f 6e 74 61 69 6e 20 | should contain | 00030550 30 20 61 6e 64 20 2f 73 69 7a 65 77 6f 72 64 2f |0 and /sizeword/| 00030560 20 73 68 6f 75 6c 64 20 69 6e 64 69 63 61 74 65 | should indicate| 00030570 20 68 6f 77 20 6d 61 6e 79 20 62 79 74 65 73 20 | how many bytes | 00030580 66 6f 6c 6c 6f 77 20 69 6e 20 6d 65 6d 6f 72 79 |follow in memory| 00030590 2e 00 00 00 44 41 54 41 94 01 00 00 64 72 61 77 |....DATA....draw| 000305a0 6d 6f 64 5f 63 61 70 6a 6f 69 6e 73 70 65 63 0a |mod_capjoinspec.| 000305b0 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 000305c0 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 |ined in <drawmod| 000305d0 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 2e 20 49 74 |.h=>drawmod>. It| 000305e0 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 000305f0 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 |containing the c| 00030600 61 70 73 20 61 6e 64 20 6a 6f 69 6e 20 73 74 79 |aps and join sty| 00030610 6c 65 73 2e 0a 0a 20 09 5c 7b 0a 20 09 20 09 75 |les... .\{. . .u| 00030620 6e 73 69 67 6e 65 64 20 63 68 61 72 20 6a 6f 69 |nsigned char joi| 00030630 6e 3b 0a 20 09 20 09 75 6e 73 69 67 6e 65 64 20 |n;. . .unsigned | 00030640 63 68 61 72 20 6c 65 61 64 63 61 70 3b 0a 20 09 |char leadcap;. .| 00030650 20 09 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 | .unsigned char | 00030660 74 72 61 69 6c 63 61 70 3b 0a 20 09 20 09 75 6e |trailcap;. . .un| 00030670 73 69 67 6e 65 64 20 63 68 61 72 20 72 65 73 65 |signed char rese| 00030680 72 76 65 64 38 3b 0a 20 09 20 09 69 6e 74 20 6d |rved8;. . .int m| 00030690 69 74 72 65 6c 69 6d 69 74 3b 0a 20 09 20 09 75 |itrelimit;. . .u| 000306a0 6e 73 69 67 6e 65 64 20 73 68 6f 72 74 20 6c 65 |nsigned short le| 000306b0 61 64 5f 74 72 69 63 61 70 5f 77 3b 0a 20 09 20 |ad_tricap_w;. . | 000306c0 09 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74 20 |.unsigned short | 000306d0 6c 65 61 66 5f 74 72 69 63 61 70 5f 68 3b 0a 20 |leaf_tricap_h;. | 000306e0 09 20 09 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 |. .unsigned shor| 000306f0 74 20 74 72 61 69 6c 5f 74 72 69 63 61 70 5f 77 |t trail_tricap_w| 00030700 3b 0a 20 09 20 09 75 6e 73 69 67 6e 65 64 20 73 |;. . .unsigned s| 00030710 68 6f 72 74 20 74 72 61 69 6c 5f 74 72 69 63 61 |hort trail_trica| 00030720 70 5f 68 3b 0a 20 09 7d 44 41 54 41 cd 00 00 00 |p_h;. .}DATA....| 00030730 64 72 61 77 6d 6f 64 5f 64 61 73 68 68 64 72 0a |drawmod_dashhdr.| 00030740 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00030750 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 |ined in <drawmod| 00030760 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 20 61 73 20 |.h=>drawmod> as | 00030770 61 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e |a type containin| 00030780 67 20 64 61 73 68 20 70 61 74 74 65 72 6e 20 64 |g dash pattern d| 00030790 61 74 61 20 68 65 61 64 65 72 2e 20 49 74 20 69 |ata header. It i| 000307a0 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 |s defined as the| 000307b0 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 | following struc| 000307c0 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 |ture:.. \{. | 000307d0 69 6e 74 20 64 61 73 68 73 74 61 72 74 3b 0a 20 |int dashstart;. | 000307e0 20 20 20 69 6e 74 20 64 61 73 68 63 6f 75 6e 74 | int dashcount| 000307f0 3b 0a 20 20 7d 00 00 00 44 41 54 41 6c 01 00 00 |;. }...DATAl...| 00030800 64 72 61 77 6d 6f 64 5f 64 6f 5f 66 6c 61 74 74 |drawmod_do_flatt| 00030810 65 6e 70 61 74 68 0a 53 79 6e 74 61 78 3a 09 3c |enpath.Syntax:.<| 00030820 6f 73 5f 65 72 72 6f 72 3e 20 2a 64 72 61 77 6d |os_error> *drawm| 00030830 6f 64 5f 64 6f 5f 66 6c 61 74 74 65 6e 70 61 74 |od_do_flattenpat| 00030840 68 20 28 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 |h (<drawmod_path| 00030850 65 6c 65 6d 70 74 72 3e 20 70 61 74 68 2c 20 3c |elemptr> path, <| 00030860 64 72 61 77 6d 6f 64 5f 62 75 66 66 65 72 3e 20 |drawmod_buffer> | 00030870 2a 62 75 66 66 65 72 2c 20 69 6e 74 20 66 6c 61 |*buffer, int fla| 00030880 74 6e 65 73 73 29 3b 0a 48 65 61 64 65 72 3a 09 |tness);.Header:.| 00030890 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 |<drawmod.h=>draw| 000308a0 6d 6f 64 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |mod>..Returns:.P| 000308b0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000308c0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000308d0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 000308e0 6f 6e 20 63 6f 6e 76 65 72 74 73 20 61 6e 20 69 |on converts an i| 000308f0 6e 70 75 74 20 70 61 74 68 20 28 69 6e 20 7b 2f |nput path (in {/| 00030900 7d 70 61 74 68 7b 2f 7d 29 20 69 6e 74 6f 20 61 |}path{/}) into a| 00030910 20 66 6c 61 74 74 65 6e 65 64 20 6f 75 74 70 75 | flattened outpu| 00030920 74 20 70 61 74 68 20 28 69 6e 20 7b 2f 7d 62 75 |t path (in {/}bu| 00030930 66 66 65 72 7b 2f 7d 29 2c 20 61 63 63 6f 72 64 |ffer{/}), accord| 00030940 69 6e 67 20 74 6f 20 74 68 65 20 66 6c 61 74 6e |ing to the flatn| 00030950 65 73 73 20 28 30 20 66 6f 72 20 64 65 66 61 75 |ess (0 for defau| 00030960 6c 74 29 2e 44 41 54 41 69 01 00 00 64 72 61 77 |lt).DATAi...draw| 00030970 6d 6f 64 5f 64 6f 5f 73 74 72 6f 6b 65 70 61 74 |mod_do_strokepat| 00030980 68 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |h.Syntax:.<os_er| 00030990 72 6f 72 3e 20 2a 64 72 61 77 6d 6f 64 5f 64 6f |ror> *drawmod_do| 000309a0 5f 73 74 72 6f 6b 65 70 61 74 68 20 28 3c 64 72 |_strokepath (<dr| 000309b0 61 77 6d 6f 64 5f 70 61 74 68 65 6c 65 6d 70 74 |awmod_pathelempt| 000309c0 72 3e 20 70 61 74 68 2c 20 3c 64 72 61 77 6d 6f |r> path, <drawmo| 000309d0 64 5f 74 72 61 6e 73 6d 61 74 3e 20 2a 6d 61 74 |d_transmat> *mat| 000309e0 72 69 78 2c 20 3c 64 72 61 77 6d 6f 64 5f 6c 69 |rix, <drawmod_li| 000309f0 6e 65 3e 20 2a 6c 69 6e 65 5f 73 74 79 6c 65 2c |ne> *line_style,| 00030a00 20 3c 64 72 61 77 6d 6f 64 5f 62 75 66 66 65 72 | <drawmod_buffer| 00030a10 3e 20 2a 62 75 66 66 65 72 29 3b 0a 48 65 61 64 |> *buffer);.Head| 00030a20 65 72 3a 09 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e |er:.<drawmod.h=>| 00030a30 64 72 61 77 6d 6f 64 3e 0a 0a 52 65 74 75 72 6e |drawmod>..Return| 00030a40 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00030a50 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00030a60 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00030a70 6e 63 74 69 6f 6e 20 64 6f 65 73 20 74 68 65 20 |nction does the | 00030a80 73 61 6d 65 20 61 73 20 3c 64 72 61 77 6d 6f 64 |same as <drawmod| 00030a90 5f 73 74 72 6f 6b 65 3e 2c 20 65 78 63 65 70 74 |_stroke>, except| 00030aa0 20 74 68 61 74 20 6f 75 74 70 75 74 20 69 73 20 | that output is | 00030ab0 74 6f 20 61 20 62 75 66 66 65 72 20 28 61 6e 64 |to a buffer (and| 00030ac0 20 6e 6f 74 20 66 69 6c 6c 65 64 29 2e 00 00 00 | not filled)....| 00030ad0 44 41 54 41 1d 02 00 00 64 72 61 77 6d 6f 64 5f |DATA....drawmod_| 00030ae0 66 69 6c 6c 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |fill.Syntax:.<os| 00030af0 5f 65 72 72 6f 72 3e 20 2a 64 72 61 77 6d 6f 64 |_error> *drawmod| 00030b00 5f 66 69 6c 6c 20 28 3c 64 72 61 77 6d 6f 64 5f |_fill (<drawmod_| 00030b10 70 61 74 68 65 6c 65 6d 70 74 72 3e 20 70 61 74 |pathelemptr> pat| 00030b20 68 2c 20 3c 64 72 61 77 6d 6f 64 5f 66 69 6c 6c |h, <drawmod_fill| 00030b30 74 79 70 65 3e 20 66 69 6c 6c 2c 20 3c 64 72 61 |type> fill, <dra| 00030b40 77 6d 6f 64 5f 74 72 61 6e 73 6d 61 74 3e 20 2a |wmod_transmat> *| 00030b50 6d 61 74 72 69 78 2c 20 69 6e 74 20 66 6c 61 74 |matrix, int flat| 00030b60 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 77 |);.Header:.<draw| 00030b70 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 0a |mod.h=>drawmod>.| 00030b80 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00030b90 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00030ba0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00030bb0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 6d |This function em| 00030bc0 75 6c 61 74 65 73 20 74 68 65 20 50 6f 73 74 53 |ulates the PostS| 00030bd0 63 72 69 70 74 20 27 66 69 6c 6c 27 20 6f 70 65 |cript 'fill' ope| 00030be0 72 61 74 6f 72 2e 20 49 74 20 70 65 72 66 6f 72 |rator. It perfor| 00030bf0 6d 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |ms the following| 00030c00 3a 0a 7b 74 61 62 7d 0a 8f 09 43 6c 6f 73 65 73 |:.{tab}...Closes| 00030c10 20 6f 70 65 6e 20 73 75 62 70 61 74 68 73 2e 0a | open subpaths..| 00030c20 8f 09 46 6c 61 74 74 65 6e 73 20 74 68 65 20 70 |..Flattens the p| 00030c30 61 74 68 20 61 63 63 6f 72 64 69 6e 67 20 74 6f |ath according to| 00030c40 20 74 68 65 20 66 6c 61 74 6e 65 73 73 2c 20 2f | the flatness, /| 00030c50 66 6c 61 74 2f 2e 20 55 73 65 20 30 20 66 6f 72 |flat/. Use 0 for| 00030c60 20 64 65 66 61 75 6c 74 2e 0a 8f 09 54 72 61 6e | default....Tran| 00030c70 73 66 6f 72 6d 73 20 70 61 74 68 20 74 6f 20 73 |sforms path to s| 00030c80 74 61 6e 64 61 72 64 20 63 6f 6f 72 64 73 2e 0a |tandard coords..| 00030c90 8f 09 46 69 6c 6c 73 20 74 68 65 20 72 65 73 75 |..Fills the resu| 00030ca0 6c 74 61 6e 74 20 70 61 74 68 20 61 6e 64 20 6f |ltant path and o| 00030cb0 75 74 70 75 74 73 20 74 6f 20 56 44 55 2e 0a 0a |utputs to VDU...| 00030cc0 2f 6d 61 74 72 69 78 2f 20 6d 61 79 20 62 65 20 |/matrix/ may be | 00030cd0 30 20 74 6f 20 75 73 65 20 74 68 65 20 69 64 65 |0 to use the ide| 00030ce0 6e 74 69 74 79 20 6d 61 74 72 69 78 2e 00 00 00 |ntity matrix....| 00030cf0 44 41 54 41 cf 01 00 00 64 72 61 77 6d 6f 64 5f |DATA....drawmod_| 00030d00 66 69 6c 6c 69 6e 67 5f 6f 70 74 69 6f 6e 73 0a |filling_options.| 00030d10 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00030d20 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 |ined in <drawmod| 00030d30 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 20 61 73 20 |.h=>drawmod> as | 00030d40 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 6e |the following en| 00030d50 75 6d 65 72 61 74 65 64 20 74 79 70 65 3a 0a 0a |umerated type:..| 00030d60 20 20 5c 7b 0a 20 20 20 20 6f 70 74 69 6f 6e 5f | \{. option_| 00030d70 69 6e 73 69 74 75 09 3d 20 30 2c 0a 20 20 20 20 |insitu.= 0,. | 00030d80 6f 70 74 69 6f 6e 5f 6e 6f 72 6d 61 6c 66 69 6c |option_normalfil| 00030d90 6c 09 3d 20 31 2c 0a 20 20 20 20 6f 70 74 69 6f |l.= 1,. optio| 00030da0 6e 5f 73 75 62 70 61 74 68 66 69 6c 6c 09 3d 20 |n_subpathfill.= | 00030db0 32 2c 0a 20 20 20 20 6f 70 74 69 6f 6e 5f 63 6f |2,. option_co| 00030dc0 75 6e 74 73 69 7a 65 09 3d 20 33 0a 20 20 7d 0a |untsize.= 3. }.| 00030dd0 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 76 |.These are the v| 00030de0 61 6c 75 65 73 20 70 61 73 73 65 64 20 74 6f 20 |alues passed to | 00030df0 3c 64 72 61 77 6d 6f 64 5f 70 72 6f 63 65 73 73 |<drawmod_process| 00030e00 70 61 74 68 3e 2e 20 54 68 65 79 20 68 61 76 65 |path>. They have| 00030e10 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d | the following m| 00030e20 65 61 6e 69 6e 67 3a 0a 7b 74 61 62 7d 0a 69 6e |eaning:.{tab}.in| 00030e30 73 69 74 75 09 3a 20 4f 75 74 70 75 74 20 74 6f |situ.: Output to| 00030e40 20 69 6e 70 75 74 20 70 61 74 68 20 62 75 66 66 | input path buff| 00030e50 65 72 0a 6e 6f 72 6d 61 6c 66 69 6c 6c 09 3a 20 |er.normalfill.: | 00030e60 46 69 6c 6c 20 70 61 74 68 20 6e 6f 72 6d 61 6c |Fill path normal| 00030e70 6c 79 0a 73 75 62 70 61 74 68 66 69 6c 6c 09 3a |ly.subpathfill.:| 00030e80 20 46 69 6c 6c 20 73 75 62 70 61 74 68 2d 62 79 | Fill subpath-by| 00030e90 2d 73 75 62 70 61 74 68 0a 63 6f 75 6e 74 73 69 |-subpath.countsi| 00030ea0 7a 65 09 3a 20 43 6f 75 6e 74 20 72 65 71 75 69 |ze.: Count requi| 00030eb0 72 65 64 20 62 75 66 66 65 72 20 73 69 7a 65 00 |red buffer size.| 00030ec0 44 41 54 41 4e 02 00 00 64 72 61 77 6d 6f 64 5f |DATAN...drawmod_| 00030ed0 66 69 6c 6c 74 79 70 65 0a 54 68 69 73 20 74 79 |filltype.This ty| 00030ee0 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 00030ef0 20 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 | <drawmod.h=>dra| 00030f00 77 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 6e 20 |wmod>. It is an | 00030f10 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 |enumerated type | 00030f20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 66 69 6c |containing a fil| 00030f30 6c 20 74 79 70 65 3a 0a 0a 20 09 5c 7b 0a 20 09 |l type:.. .\{. .| 00030f40 20 09 66 69 6c 6c 5f 44 65 66 61 75 6c 74 09 3d | .fill_Default.=| 00030f50 20 30 78 30 30 30 30 30 30 30 30 2c 0a 20 09 20 | 0x00000000,. . | 00030f60 09 66 69 6c 6c 5f 57 4e 6f 6e 7a 65 72 6f 09 3d |.fill_WNonzero.=| 00030f70 20 30 78 30 30 30 30 30 30 30 30 2c 0a 20 09 20 | 0x00000000,. . | 00030f80 09 66 69 6c 6c 5f 57 4e 65 67 61 74 69 76 65 09 |.fill_WNegative.| 00030f90 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0a 20 09 |= 0x00000001,. .| 00030fa0 20 09 66 69 6c 6c 5f 57 45 76 65 6e 6f 64 64 09 | .fill_WEvenodd.| 00030fb0 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0a 20 09 |= 0x00000002,. .| 00030fc0 20 09 66 69 6c 6c 5f 57 50 6f 73 69 74 69 76 65 | .fill_WPositive| 00030fd0 09 3d 20 30 78 30 30 30 30 30 30 30 33 2c 0a 20 |.= 0x00000003,. | 00030fe0 09 20 09 66 69 6c 6c 5f 46 4e 6f 6e 62 65 78 74 |. .fill_FNonbext| 00030ff0 09 3d 20 30 78 30 30 30 30 30 30 30 34 2c 0a 20 |.= 0x00000004,. | 00031000 09 20 09 66 69 6c 6c 5f 46 42 65 78 74 09 3d 20 |. .fill_FBext.= | 00031010 30 78 30 30 30 30 30 30 30 38 2c 0a 20 09 20 09 |0x00000008,. . .| 00031020 66 69 6c 6c 5f 46 4e 6f 6e 62 69 6e 74 09 3d 20 |fill_FNonbint.= | 00031030 30 78 30 30 30 30 30 30 31 30 2c 0a 20 09 20 09 |0x00000010,. . .| 00031040 66 69 6c 6c 5f 46 42 69 6e 74 09 3d 20 30 78 30 |fill_FBint.= 0x0| 00031050 30 30 30 30 30 32 30 2c 0a 2f 2a 20 4e 65 78 74 |0000020,./* Next| 00031060 20 66 6f 75 72 20 61 72 65 20 6f 6e 6c 79 20 66 | four are only f| 00031070 6f 72 20 3c 64 72 61 77 6d 6f 64 5f 70 72 6f 63 |or <drawmod_proc| 00031080 65 73 73 70 61 74 68 3e 20 2a 2f 0a 20 09 20 09 |esspath> */. . .| 00031090 66 69 6c 6c 5f 50 43 6c 6f 73 65 09 3d 20 30 78 |fill_PClose.= 0x| 000310a0 30 38 30 30 30 30 30 30 2c 0a 20 09 20 09 66 69 |08000000,. . .fi| 000310b0 6c 6c 5f 50 46 6c 61 74 74 65 6e 09 3d 20 30 78 |ll_PFlatten.= 0x| 000310c0 31 30 30 30 30 30 30 30 2c 0a 20 09 20 09 66 69 |10000000,. . .fi| 000310d0 6c 6c 5f 50 54 68 69 63 6b 65 6e 09 3d 20 30 78 |ll_PThicken.= 0x| 000310e0 32 30 30 30 30 30 30 30 2c 0a 20 09 20 09 66 69 |20000000,. . .fi| 000310f0 6c 6c 5f 50 52 65 66 6c 61 74 74 65 6e 09 3d 20 |ll_PReflatten.= | 00031100 30 78 34 30 30 30 30 30 30 30 0a 20 09 7d 00 00 |0x40000000. .}..| 00031110 44 41 54 41 56 01 00 00 64 72 61 77 6d 6f 64 5f |DATAV...drawmod_| 00031120 69 6e 73 69 74 75 5f 74 72 61 6e 73 66 6f 72 6d |insitu_transform| 00031130 70 61 74 68 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |path.Syntax:.<os| 00031140 5f 65 72 72 6f 72 3e 20 2a 64 72 61 77 6d 6f 64 |_error> *drawmod| 00031150 5f 69 6e 73 69 74 75 5f 74 72 61 6e 73 66 6f 72 |_insitu_transfor| 00031160 6d 70 61 74 68 20 28 3c 64 72 61 77 6d 6f 64 5f |mpath (<drawmod_| 00031170 70 61 74 68 65 6c 65 6d 70 74 72 3e 20 70 61 74 |pathelemptr> pat| 00031180 68 2c 20 3c 64 72 61 77 6d 6f 64 5f 74 72 61 6e |h, <drawmod_tran| 00031190 73 6d 61 74 3e 20 2a 6d 61 74 72 69 78 29 3b 0a |smat> *matrix);.| 000311a0 48 65 61 64 65 72 3a 09 3c 64 72 61 77 6d 6f 64 |Header:.<drawmod| 000311b0 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 0a 0a 52 65 |.h=>drawmod>..Re| 000311c0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000311d0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000311e0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000311f0 73 20 66 75 6e 63 74 69 6f 6e 20 70 75 74 73 20 |s function puts | 00031200 74 68 65 20 70 61 74 68 20 69 6e 20 2f 70 61 74 |the path in /pat| 00031210 68 2f 20 74 68 72 6f 75 67 68 20 74 68 65 20 74 |h/ through the t| 00031220 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6d 61 |ransformation ma| 00031230 74 72 69 78 20 69 6e 20 2f 6d 61 74 72 69 78 2f |trix in /matrix/| 00031240 20 61 6e 64 20 70 6c 61 63 65 73 20 74 68 65 20 | and places the | 00031250 72 65 73 75 6c 74 20 62 61 63 6b 20 69 6e 20 2f |result back in /| 00031260 70 61 74 68 2f 2e 00 00 44 41 54 41 05 01 00 00 |path/...DATA....| 00031270 64 72 61 77 6d 6f 64 5f 6c 69 6e 65 0a 54 68 69 |drawmod_line.Thi| 00031280 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 00031290 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 2e 68 3d |d in <drawmod.h=| 000312a0 3e 64 72 61 77 6d 6f 64 3e 20 61 73 20 61 20 74 |>drawmod> as a t| 000312b0 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6c |ype containing l| 000312c0 69 6e 65 20 61 74 74 72 69 62 75 74 65 73 2e 20 |ine attributes. | 000312d0 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 000312e0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 000312f0 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a |tructure:.. \{.| 00031300 20 20 20 20 69 6e 74 20 66 6c 61 74 6e 65 73 73 | int flatness| 00031310 3b 0a 20 20 20 20 69 6e 74 20 74 68 69 63 6b 6e |;. int thickn| 00031320 65 73 73 3b 0a 20 20 20 20 3c 64 72 61 77 6d 6f |ess;. <drawmo| 00031330 64 5f 63 61 70 6a 6f 69 6e 73 70 65 63 3e 20 73 |d_capjoinspec> s| 00031340 70 65 63 3b 0a 20 20 20 20 3c 64 72 61 77 6d 6f |pec;. <drawmo| 00031350 64 5f 64 61 73 68 68 64 72 3e 20 2a 64 61 73 68 |d_dashhdr> *dash| 00031360 5f 70 61 74 74 65 72 6e 3b 0a 20 20 7d 00 00 00 |_pattern;. }...| 00031370 44 41 54 41 02 01 00 00 64 72 61 77 6d 6f 64 5f |DATA....drawmod_| 00031380 6f 70 74 69 6f 6e 73 0a 54 68 69 73 20 74 79 70 |options.This typ| 00031390 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000313a0 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 |<drawmod.h=>draw| 000313b0 6d 6f 64 3e 20 61 73 20 74 68 65 20 66 6f 6c 6c |mod> as the foll| 000313c0 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a |owing structure:| 000313d0 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c 64 72 61 77 |.. \{. <draw| 000313e0 6d 6f 64 5f 74 61 67 74 79 70 65 3e 20 74 61 67 |mod_tagtype> tag| 000313f0 3b 0a 20 20 20 20 75 6e 69 6f 6e 0a 20 20 20 20 |;. union. | 00031400 5c 7b 0a 20 20 20 20 20 20 3c 64 72 61 77 6d 6f |\{. <drawmo| 00031410 64 5f 66 69 6c 6c 69 6e 67 5f 6f 70 74 69 6f 6e |d_filling_option| 00031420 73 3e 20 6f 70 74 73 3b 0a 20 20 20 20 20 20 3c |s> opts;. <| 00031430 64 72 61 77 6d 6f 64 5f 62 6f 78 3e 20 2a 62 6f |drawmod_box> *bo| 00031440 78 3b 0a 20 20 20 20 20 20 3c 64 72 61 77 6d 6f |x;. <drawmo| 00031450 64 5f 62 75 66 66 65 72 3e 20 2a 62 75 66 66 65 |d_buffer> *buffe| 00031460 72 3b 0a 20 20 20 20 7d 20 64 61 74 61 3b 0a 20 |r;. } data;. | 00031470 20 7d 00 00 44 41 54 41 0f 01 00 00 64 72 61 77 | }..DATA....draw| 00031480 6d 6f 64 5f 70 61 74 68 5f 62 65 7a 69 65 72 73 |mod_path_beziers| 00031490 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |tr.This type is | 000314a0 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 |defined in <draw| 000314b0 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 2e |mod.h=>drawmod>.| 000314c0 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 | It is a structu| 000314d0 72 65 20 66 6f 72 20 61 20 62 65 7a 69 65 72 20 |re for a bezier | 000314e0 63 75 72 76 65 20 65 6c 65 6d 65 6e 74 3a 0a 7b |curve element:.{| 000314f0 77 72 61 70 20 6f 66 66 7d 0a 20 20 5c 7b 0a 20 |wrap off}. \{. | 00031500 20 20 20 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 | <drawmod_path| 00031510 5f 74 61 67 74 79 70 65 3e 09 74 61 67 3b 09 2f |_tagtype>.tag;./| 00031520 2a 20 3d 3d 20 36 20 2a 2f 0a 20 20 20 20 69 6e |* == 6 */. in| 00031530 74 09 78 31 2c 79 31 2c 78 32 2c 79 32 2c 78 33 |t.x1,y1,x2,y2,x3| 00031540 2c 79 33 3b 09 0a 20 20 7d 0a 0a 28 78 33 2c 79 |,y3;.. }..(x3,y| 00031550 33 29 20 69 73 20 74 68 65 20 65 6e 64 20 70 6f |3) is the end po| 00031560 69 6e 74 2c 20 74 68 65 20 6f 74 68 65 72 73 20 |int, the others | 00031570 61 72 65 20 63 6f 6e 74 72 6f 6c 20 70 6f 69 6e |are control poin| 00031580 74 73 2e 00 44 41 54 41 c3 00 00 00 64 72 61 77 |ts..DATA....draw| 00031590 6d 6f 64 5f 70 61 74 68 5f 63 6c 6f 73 65 67 61 |mod_path_closega| 000315a0 70 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |pstr.This type i| 000315b0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 000315c0 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 |awmod.h=>drawmod| 000315d0 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 000315e0 74 75 72 65 20 66 6f 72 20 61 20 63 6c 6f 73 65 |ture for a close| 000315f0 20 77 69 74 68 20 67 61 70 20 65 6c 65 6d 65 6e | with gap elemen| 00031600 74 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 20 20 |t:.{wrap off}. | 00031610 5c 7b 0a 20 20 20 20 3c 64 72 61 77 6d 6f 64 5f |\{. <drawmod_| 00031620 70 61 74 68 5f 74 61 67 74 79 70 65 3e 20 74 61 |path_tagtype> ta| 00031630 67 3b 20 20 20 20 20 20 20 2f 2a 20 3d 3d 20 34 |g; /* == 4| 00031640 20 2a 2f 0a 20 20 7d 00 44 41 54 41 c5 00 00 00 | */. }.DATA....| 00031650 64 72 61 77 6d 6f 64 5f 70 61 74 68 5f 63 6c 6f |drawmod_path_clo| 00031660 73 65 6c 69 6e 65 73 74 72 0a 54 68 69 73 20 74 |selinestr.This t| 00031670 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 00031680 6e 20 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 |n <drawmod.h=>dr| 00031690 61 77 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 20 |awmod>. It is a | 000316a0 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 61 20 |structure for a | 000316b0 63 6c 6f 73 65 20 77 69 74 68 20 6c 69 6e 65 20 |close with line | 000316c0 65 6c 65 6d 65 6e 74 3a 0a 7b 77 72 61 70 20 6f |element:.{wrap o| 000316d0 66 66 7d 0a 20 20 5c 7b 0a 20 20 20 20 3c 64 72 |ff}. \{. <dr| 000316e0 61 77 6d 6f 64 5f 70 61 74 68 5f 74 61 67 74 79 |awmod_path_tagty| 000316f0 70 65 3e 20 74 61 67 3b 20 20 20 20 20 20 20 2f |pe> tag; /| 00031700 2a 20 3d 3d 20 35 20 2a 2f 0a 20 20 7d 00 00 00 |* == 5 */. }...| 00031710 44 41 54 41 da 00 00 00 64 72 61 77 6d 6f 64 5f |DATA....drawmod_| 00031720 70 61 74 68 5f 65 6e 64 73 74 72 0a 54 68 69 73 |path_endstr.This| 00031730 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00031740 20 69 6e 20 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e | in <drawmod.h=>| 00031750 64 72 61 77 6d 6f 64 3e 2e 20 49 74 20 69 73 20 |drawmod>. It is | 00031760 61 20 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 |a structure for | 00031770 61 6e 20 65 6e 64 20 6f 66 20 70 61 74 68 20 65 |an end of path e| 00031780 6c 65 6d 65 6e 74 3a 0a 7b 77 72 61 70 20 6f 66 |lement:.{wrap of| 00031790 66 7d 0a 20 20 5c 7b 0a 20 20 20 20 3c 64 72 61 |f}. \{. <dra| 000317a0 77 6d 6f 64 5f 70 61 74 68 5f 74 61 67 74 79 70 |wmod_path_tagtyp| 000317b0 65 3e 09 74 61 67 3b 20 20 20 20 20 20 20 20 2f |e>.tag; /| 000317c0 2a 20 3d 3d 20 30 20 2a 2f 0a 20 20 20 20 75 6e |* == 0 */. un| 000317d0 73 69 67 6e 65 64 20 69 6e 74 09 62 79 74 65 73 |signed int.bytes| 000317e0 5f 66 72 65 65 3b 0a 20 20 7d 00 00 44 41 54 41 |_free;. }..DATA| 000317f0 bd 00 00 00 64 72 61 77 6d 6f 64 5f 70 61 74 68 |....drawmod_path| 00031800 5f 67 61 70 74 6f 73 74 72 0a 54 68 69 73 20 74 |_gaptostr.This t| 00031810 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 00031820 6e 20 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 |n <drawmod.h=>dr| 00031830 61 77 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 20 |awmod>. It is a | 00031840 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 61 20 |structure for a | 00031850 67 61 70 20 65 6c 65 6d 65 6e 74 3a 0a 7b 77 72 |gap element:.{wr| 00031860 61 70 20 6f 66 66 7d 0a 20 20 5c 7b 0a 20 20 20 |ap off}. \{. | 00031870 20 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 5f 74 | <drawmod_path_t| 00031880 61 67 74 79 70 65 3e 09 74 61 67 3b 09 2f 2a 20 |agtype>.tag;./* | 00031890 3d 3d 20 37 20 2a 2f 0a 20 20 20 20 69 6e 74 09 |== 7 */. int.| 000318a0 78 2c 79 3b 09 0a 20 20 7d 00 00 00 44 41 54 41 |x,y;.. }...DATA| 000318b0 bf 00 00 00 64 72 61 77 6d 6f 64 5f 70 61 74 68 |....drawmod_path| 000318c0 5f 6c 69 6e 65 74 6f 73 74 72 0a 54 68 69 73 20 |_linetostr.This | 000318d0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000318e0 69 6e 20 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 |in <drawmod.h=>d| 000318f0 72 61 77 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 |rawmod>. It is a| 00031900 20 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 61 | structure for a| 00031910 20 6c 69 6e 65 20 65 6c 65 6d 65 6e 74 3a 0a 7b | line element:.{| 00031920 77 72 61 70 20 6f 66 66 7d 0a 20 20 5c 7b 0a 20 |wrap off}. \{. | 00031930 20 20 20 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 | <drawmod_path| 00031940 5f 74 61 67 74 79 70 65 3e 09 74 61 67 3b 09 2f |_tagtype>.tag;./| 00031950 2a 20 3d 3d 20 38 20 2a 2f 0a 20 20 20 20 69 6e |* == 8 */. in| 00031960 74 09 78 2c 79 3b 09 0a 20 20 7d 00 44 41 54 41 |t.x,y;.. }.DATA| 00031970 be 00 00 00 64 72 61 77 6d 6f 64 5f 70 61 74 68 |....drawmod_path| 00031980 5f 6d 6f 76 65 73 74 72 0a 54 68 69 73 20 74 79 |_movestr.This ty| 00031990 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000319a0 20 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 | <drawmod.h=>dra| 000319b0 77 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 0a 73 |wmod>. It is a.s| 000319c0 74 72 75 63 74 75 72 65 20 66 6f 72 20 61 20 6d |tructure for a m| 000319d0 6f 76 65 20 65 6c 65 6d 65 6e 74 3a 0a 7b 77 72 |ove element:.{wr| 000319e0 61 70 20 6f 66 66 7d 0a 20 20 5c 7b 0a 20 20 20 |ap off}. \{. | 000319f0 20 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 5f 74 | <drawmod_path_t| 00031a00 61 67 74 79 70 65 3e 09 74 61 67 3b 09 2f 2a 20 |agtype>.tag;./* | 00031a10 3d 3d 20 32 20 2a 2f 0a 20 20 20 20 69 6e 74 09 |== 2 */. int.| 00031a20 78 2c 20 79 3b 09 0a 20 20 7d 00 00 44 41 54 41 |x, y;.. }..DATA| 00031a30 c7 00 00 00 64 72 61 77 6d 6f 64 5f 70 61 74 68 |....drawmod_path| 00031a40 5f 70 74 72 73 74 72 0a 54 68 69 73 20 74 79 70 |_ptrstr.This typ| 00031a50 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 00031a60 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 |<drawmod.h=>draw| 00031a70 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 0a 73 74 |mod>. It is a.st| 00031a80 72 75 63 74 75 72 65 20 66 6f 72 20 61 6e 20 63 |ructure for an c| 00031a90 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 65 6c 65 6d |ontinuation elem| 00031aa0 65 6e 74 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a |ent:.{wrap off}.| 00031ab0 20 20 5c 7b 0a 20 20 20 20 3c 64 72 61 77 6d 6f | \{. <drawmo| 00031ac0 64 5f 70 61 74 68 5f 74 61 67 74 79 70 65 3e 09 |d_path_tagtype>.| 00031ad0 74 61 67 3b 09 2f 2a 20 3d 3d 20 31 20 2a 2f 0a |tag;./* == 1 */.| 00031ae0 20 20 20 20 76 6f 69 64 09 2a 70 74 72 3b 09 0a | void.*ptr;..| 00031af0 20 20 7d 00 44 41 54 41 d4 01 00 00 64 72 61 77 | }.DATA....draw| 00031b00 6d 6f 64 5f 70 61 74 68 5f 74 61 67 74 79 70 65 |mod_path_tagtype| 00031b10 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 00031b20 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f |fined in <drawmo| 00031b30 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 2e 20 49 |d.h=>drawmod>. I| 00031b40 74 20 69 73 20 61 6e 20 65 6e 75 6d 65 72 61 74 |t is an enumerat| 00031b50 65 64 20 74 79 70 65 20 64 65 66 69 6e 69 6e 67 |ed type defining| 00031b60 20 70 61 74 68 20 65 6c 65 6d 65 6e 74 20 74 79 | path element ty| 00031b70 70 65 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 70 |pes:.. \{. p| 00031b80 61 74 68 5f 74 65 72 6d 20 20 20 20 20 09 3d 20 |ath_term .= | 00031b90 30 2c 20 20 2f 2a 20 65 6e 64 20 6f 66 20 70 61 |0, /* end of pa| 00031ba0 74 68 20 2a 2f 0a 20 20 20 20 70 61 74 68 5f 70 |th */. path_p| 00031bb0 74 72 20 20 20 20 20 20 09 3d 20 31 2c 0a 20 20 |tr .= 1,. | 00031bc0 20 20 70 61 74 68 5f 6d 6f 76 65 5f 32 20 20 20 | path_move_2 | 00031bd0 09 3d 20 32 2c 20 20 2f 2a 20 6e 6f 72 6d 61 6c |.= 2, /* normal| 00031be0 20 6d 6f 76 65 20 2a 2f 0a 20 20 20 20 70 61 74 | move */. pat| 00031bf0 68 5f 6d 6f 76 65 5f 33 20 20 20 09 3d 20 33 2c |h_move_3 .= 3,| 00031c00 0a 20 20 20 20 70 61 74 68 5f 63 6c 6f 73 65 67 |. path_closeg| 00031c10 61 70 20 09 3d 20 34 2c 20 20 2f 2a 20 63 6c 6f |ap .= 4, /* clo| 00031c20 73 65 20 73 75 62 70 61 74 68 20 2a 2f 0a 20 20 |se subpath */. | 00031c30 20 20 70 61 74 68 5f 63 6c 6f 73 65 6c 69 6e 65 | path_closeline| 00031c40 09 3d 20 35 2c 20 20 2f 2a 20 63 6c 6f 73 65 20 |.= 5, /* close | 00031c50 77 69 74 68 20 6c 69 6e 65 20 2a 2f 0a 20 20 20 |with line */. | 00031c60 20 70 61 74 68 5f 62 65 7a 69 65 72 20 20 20 09 | path_bezier .| 00031c70 3d 20 36 2c 20 20 2f 2a 20 62 65 7a 69 65 72 20 |= 6, /* bezier | 00031c80 63 75 72 76 65 20 2a 2f 0a 20 20 20 20 70 61 74 |curve */. pat| 00031c90 68 5f 67 61 70 74 6f 20 20 20 20 09 3d 20 37 2c |h_gapto .= 7,| 00031ca0 0a 20 20 20 20 70 61 74 68 5f 6c 69 6e 65 74 6f |. path_lineto| 00031cb0 20 20 20 09 3d 20 38 20 20 20 2f 2a 20 6c 69 6e | .= 8 /* lin| 00031cc0 65 20 2a 2f 0a 20 20 7d 44 41 54 41 02 02 00 00 |e */. }DATA....| 00031cd0 64 72 61 77 6d 6f 64 5f 70 61 74 68 65 6c 65 6d |drawmod_pathelem| 00031ce0 70 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ptr.This type is| 00031cf0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 | defined in <dra| 00031d00 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e |wmod.h=>drawmod>| 00031d10 2e 20 49 74 20 69 73 20 61 20 75 6e 69 6f 6e 20 |. It is a union | 00031d20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 70 6f 69 |containing a poi| 00031d30 6e 74 65 72 20 74 6f 20 61 6e 79 20 74 79 70 65 |nter to any type| 00031d40 20 6f 66 20 70 61 74 68 20 65 6c 65 6d 65 6e 74 | of path element| 00031d50 2e 0a 0a 20 09 5c 7b 0a 20 09 20 09 3c 64 72 61 |... .\{. . .<dra| 00031d60 77 6d 6f 64 5f 70 61 74 68 5f 65 6e 64 73 74 72 |wmod_path_endstr| 00031d70 3e 09 2a 65 6e 64 3b 0a 20 09 20 09 3c 64 72 61 |>.*end;. . .<dra| 00031d80 77 6d 6f 64 5f 70 61 74 68 5f 70 74 72 73 74 72 |wmod_path_ptrstr| 00031d90 3e 09 2a 70 74 72 3b 0a 20 09 20 09 3c 64 72 61 |>.*ptr;. . .<dra| 00031da0 77 6d 6f 64 5f 70 61 74 68 5f 6d 6f 76 65 73 74 |wmod_path_movest| 00031db0 72 3e 09 2a 6d 6f 76 65 32 3b 0a 20 09 20 09 3c |r>.*move2;. . .<| 00031dc0 64 72 61 77 6d 6f 64 5f 70 61 74 68 5f 6d 6f 76 |drawmod_path_mov| 00031dd0 65 73 74 72 3e 09 2a 6d 6f 76 65 33 3b 0a 20 09 |estr>.*move3;. .| 00031de0 20 09 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 5f | .<drawmod_path_| 00031df0 63 6c 6f 73 65 67 61 70 73 74 72 3e 09 2a 63 6c |closegapstr>.*cl| 00031e00 6f 73 65 67 61 70 3b 0a 20 09 20 09 3c 64 72 61 |osegap;. . .<dra| 00031e10 77 6d 6f 64 5f 70 61 74 68 5f 63 6c 6f 73 65 6c |wmod_path_closel| 00031e20 69 6e 65 73 74 72 3e 09 2a 63 6c 6f 73 65 6c 69 |inestr>.*closeli| 00031e30 6e 65 3b 0a 20 09 20 09 3c 64 72 61 77 6d 6f 64 |ne;. . .<drawmod| 00031e40 5f 70 61 74 68 5f 62 65 7a 69 65 72 73 74 72 3e |_path_bezierstr>| 00031e50 09 2a 62 65 7a 69 65 72 3b 0a 20 09 20 09 3c 64 |.*bezier;. . .<d| 00031e60 72 61 77 6d 6f 64 5f 70 61 74 68 5f 67 61 70 74 |rawmod_path_gapt| 00031e70 6f 73 74 72 3e 09 2a 67 61 70 74 6f 3b 0a 20 09 |ostr>.*gapto;. .| 00031e80 20 09 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 5f | .<drawmod_path_| 00031e90 6c 69 6e 65 74 6f 73 74 72 3e 09 2a 6c 69 6e 65 |linetostr>.*line| 00031ea0 74 6f 3b 0a 0a 20 09 20 09 63 68 61 72 09 2a 62 |to;.. . .char.*b| 00031eb0 79 74 65 70 3b 0a 20 09 20 09 69 6e 74 20 09 2a |ytep;. . .int .*| 00031ec0 77 6f 72 64 70 3b 0a 20 09 7d 00 00 44 41 54 41 |wordp;. .}..DATA| 00031ed0 a5 02 00 00 64 72 61 77 6d 6f 64 5f 70 72 6f 63 |....drawmod_proc| 00031ee0 65 73 73 70 61 74 68 0a 53 79 6e 74 61 78 3a 09 |esspath.Syntax:.| 00031ef0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 64 72 61 77 |<os_error> *draw| 00031f00 6d 6f 64 5f 70 72 6f 63 65 73 73 70 61 74 68 20 |mod_processpath | 00031f10 28 3c 64 72 61 77 6d 6f 64 5f 70 61 74 68 65 6c |(<drawmod_pathel| 00031f20 65 6d 70 74 72 3e 20 70 61 74 68 2c 20 3c 64 72 |emptr> path, <dr| 00031f30 61 77 6d 6f 64 5f 66 69 6c 6c 74 79 70 65 3e 20 |awmod_filltype> | 00031f40 66 69 6c 6c 5f 73 74 79 6c 65 2c 20 3c 64 72 61 |fill_style, <dra| 00031f50 77 6d 6f 64 5f 74 72 61 6e 73 6d 61 74 3e 20 2a |wmod_transmat> *| 00031f60 6d 61 74 72 69 78 2c 20 3c 64 72 61 77 6d 6f 64 |matrix, <drawmod| 00031f70 5f 6c 69 6e 65 3e 20 2a 6c 69 6e 65 5f 73 74 79 |_line> *line_sty| 00031f80 6c 65 2c 20 3c 64 72 61 77 6d 6f 64 5f 6f 70 74 |le, <drawmod_opt| 00031f90 69 6f 6e 73 3e 20 2a 6f 70 74 69 6f 6e 73 2c 20 |ions> *options, | 00031fa0 69 6e 74 20 2a 62 75 66 6c 65 6e 29 3b 0a 48 65 |int *buflen);.He| 00031fb0 61 64 65 72 3a 09 3c 64 72 61 77 6d 6f 64 2e 68 |ader:.<drawmod.h| 00031fc0 3d 3e 64 72 61 77 6d 6f 64 3e 0a 0a 52 65 74 75 |=>drawmod>..Retu| 00031fd0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00031fe0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00031ff0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00032000 66 75 6e 63 74 69 6f 6e 20 69 73 20 74 68 65 20 |function is the | 00032010 6d 61 69 6e 20 64 72 61 77 6d 6f 64 20 66 75 6e |main drawmod fun| 00032020 63 74 69 6f 6e 2e 20 41 6c 6c 20 6f 74 68 65 72 |ction. All other| 00032030 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 20 | functions call | 00032040 74 68 65 20 73 61 6d 65 20 53 57 49 20 74 68 61 |the same SWI tha| 00032050 74 20 74 68 69 73 20 63 61 6c 6c 73 20 65 76 65 |t this calls eve| 00032060 6e 74 75 61 6c 6c 79 2e 20 2f 70 61 74 68 2f 20 |ntually. /path/ | 00032070 69 73 20 74 68 65 20 70 61 74 68 3b 20 2f 6d 61 |is the path; /ma| 00032080 74 72 69 78 2f 20 69 73 20 74 68 65 20 74 72 61 |trix/ is the tra| 00032090 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6d 61 74 72 |nsformation matr| 000320a0 69 78 2c 20 6f 72 20 30 20 66 6f 72 20 69 64 65 |ix, or 0 for ide| 000320b0 6e 74 69 74 79 3b 20 7b 2f 7d 6f 70 74 69 6f 6e |ntity; {/}option| 000320c0 73 2d 3e 64 61 74 61 7b 2f 7d 20 63 61 6e 20 62 |s->data{/} can b| 000320d0 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 6f 70 74 |e one of the opt| 000320e0 69 6f 6e 73 2c 20 6f 72 20 61 6e 20 6f 75 74 70 |ions, or an outp| 000320f0 75 74 20 62 75 66 66 65 72 20 70 6f 69 6e 74 65 |ut buffer pointe| 00032100 72 2c 20 6f 72 20 61 20 70 6f 69 6e 74 65 72 20 |r, or a pointer | 00032110 74 6f 20 61 20 62 75 66 66 65 72 20 66 6f 72 20 |to a buffer for | 00032120 68 6f 6c 64 69 6e 67 20 74 68 65 20 70 61 74 68 |holding the path| 00032130 27 73 20 62 6f 75 64 69 6e 67 20 62 6f 78 2e 20 |'s bouding box. | 00032140 7b 2f 7d 6f 70 74 69 6f 6e 73 2d 3e 74 61 67 7b |{/}options->tag{| 00032150 2f 7d 20 74 61 67 73 20 74 68 65 20 75 73 65 20 |/} tags the use | 00032160 6f 66 20 65 61 63 68 20 6f 66 20 74 68 65 73 65 |of each of these| 00032170 2e 00 00 00 44 41 54 41 61 02 00 00 64 72 61 77 |....DATAa...draw| 00032180 6d 6f 64 5f 73 74 72 6f 6b 65 0a 53 79 6e 74 61 |mod_stroke.Synta| 00032190 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 64 |x:.<os_error> *d| 000321a0 72 61 77 6d 6f 64 5f 73 74 72 6f 6b 65 20 28 3c |rawmod_stroke (<| 000321b0 64 72 61 77 6d 6f 64 5f 70 61 74 68 65 6c 65 6d |drawmod_pathelem| 000321c0 70 74 72 3e 20 70 61 74 68 2c 20 3c 64 72 61 77 |ptr> path, <draw| 000321d0 6d 6f 64 5f 66 69 6c 6c 74 79 70 65 3e 20 66 69 |mod_filltype> fi| 000321e0 6c 6c 5f 73 74 79 6c 65 2c 20 3c 64 72 61 77 6d |ll_style, <drawm| 000321f0 6f 64 5f 74 72 61 6e 73 6d 61 74 3e 20 2a 6d 61 |od_transmat> *ma| 00032200 74 72 69 78 2c 20 3c 64 72 61 77 6d 6f 64 5f 6c |trix, <drawmod_l| 00032210 69 6e 65 3e 20 2a 6c 69 6e 65 5f 73 74 79 6c 65 |ine> *line_style| 00032220 29 3b 0a 48 65 61 64 65 72 3a 09 3c 64 72 61 77 |);.Header:.<draw| 00032230 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 0a |mod.h=>drawmod>.| 00032240 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00032250 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00032260 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00032270 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 6d |This function em| 00032280 75 6c 61 74 65 73 20 74 68 65 20 50 6f 73 74 53 |ulates the PostS| 00032290 63 72 69 70 74 20 27 73 74 72 6f 6b 65 27 20 6f |cript 'stroke' o| 000322a0 70 65 72 61 74 6f 72 2e 20 49 74 20 70 65 72 66 |perator. It perf| 000322b0 6f 72 6d 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |orms the followi| 000322c0 6e 67 3a 0a 7b 74 61 62 7d 0a 8f 09 46 6c 61 74 |ng:.{tab}...Flat| 000322d0 74 65 6e 73 20 74 68 65 20 70 61 74 68 20 61 63 |tens the path ac| 000322e0 63 6f 72 64 69 6e 67 20 74 6f 20 7b 2f 7d 6c 69 |cording to {/}li| 000322f0 6e 65 5f 73 74 79 6c 65 2d 3e 66 6c 61 74 6e 65 |ne_style->flatne| 00032300 73 73 7b 2f 7d 2e 0a 8f 09 41 70 70 6c 69 65 73 |ss{/}....Applies| 00032310 20 64 61 73 68 20 70 61 74 74 65 72 6e 20 69 66 | dash pattern if| 00032320 20 7b 2f 7d 6c 69 6e 65 5f 73 74 79 6c 65 2d 3e | {/}line_style->| 00032330 64 61 73 68 5f 70 61 74 74 65 72 6e 7b 2f 7d 21 |dash_pattern{/}!| 00032340 3d 4e 55 4c 4c 2e 0a 8f 09 54 68 69 63 6b 65 6e |=NULL....Thicken| 00032350 73 20 74 68 65 20 70 61 74 68 2c 20 75 73 69 6e |s the path, usin| 00032360 67 20 73 70 65 63 69 66 69 65 64 20 6a 6f 69 6e |g specified join| 00032370 73 2f 63 61 70 73 2e 0a 8f 09 46 69 6c 6c 73 20 |s/caps....Fills | 00032380 74 68 65 20 72 65 73 75 6c 74 61 6e 74 20 70 61 |the resultant pa| 00032390 74 68 20 61 6e 64 20 6f 75 74 70 75 74 73 20 74 |th and outputs t| 000323a0 6f 20 56 44 55 2e 0a 0a 2f 6d 61 74 72 69 78 2f |o VDU.../matrix/| 000323b0 20 6d 61 79 20 62 65 20 30 20 74 6f 20 75 73 65 | may be 0 to use| 000323c0 20 74 68 65 20 69 64 65 6e 74 69 74 79 20 6d 61 | the identity ma| 000323d0 74 72 69 78 2e 00 00 00 44 41 54 41 a3 00 00 00 |trix....DATA....| 000323e0 64 72 61 77 6d 6f 64 5f 74 61 67 74 79 70 65 0a |drawmod_tagtype.| 000323f0 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00032400 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 |ined in <drawmod| 00032410 2e 68 3d 3e 64 72 61 77 6d 6f 64 3e 20 61 73 20 |.h=>drawmod> as | 00032420 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 6e |the following en| 00032430 75 6d 65 72 61 74 65 64 20 74 79 70 65 3a 0a 0a |umerated type:..| 00032440 20 20 5c 7b 0a 20 20 20 20 74 61 67 5f 66 69 6c | \{. tag_fil| 00032450 6c 09 3d 20 31 2c 0a 20 20 20 20 74 61 67 5f 62 |l.= 1,. tag_b| 00032460 6f 78 09 3d 20 32 2c 0a 20 20 20 20 74 61 67 5f |ox.= 2,. tag_| 00032470 62 75 66 09 3d 20 33 0a 20 20 7d 00 44 41 54 41 |buf.= 3. }.DATA| 00032480 ae 00 00 00 64 72 61 77 6d 6f 64 5f 74 72 61 6e |....drawmod_tran| 00032490 73 6d 61 74 0a 54 68 69 73 20 74 79 70 65 20 69 |smat.This type i| 000324a0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 000324b0 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 |awmod.h=>drawmod| 000324c0 3e 20 61 73 20 61 20 74 79 70 65 20 63 6f 6e 74 |> as a type cont| 000324d0 61 69 6e 69 6e 67 20 61 20 74 72 61 6e 73 66 6f |aining a transfo| 000324e0 72 6d 61 74 69 6f 6e 20 6d 61 74 72 69 78 2e 20 |rmation matrix. | 000324f0 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00032500 20 61 6e 20 61 72 72 61 79 20 6f 66 20 73 69 78 | an array of six| 00032510 20 69 6e 74 65 67 65 72 73 20 69 65 20 7b 2f 7d | integers ie {/}| 00032520 69 6e 74 20 5b 36 5d 7b 2f 7d 00 00 44 49 52 24 |int [6]{/}..DIR$| 00032530 2c 00 00 00 2c 00 00 00 58 25 03 00 46 fd ff ff |,...,...X%..F...| 00032540 9a 98 b5 22 e0 01 00 00 13 00 00 00 00 00 00 00 |..."............| 00032550 66 6c 61 67 73 5f 00 00 44 41 54 41 e0 01 00 00 |flags_..DATA....| 00032560 44 72 61 67 41 53 70 72 69 74 65 20 46 6c 61 67 |DragASprite Flag| 00032570 73 0a 42 69 74 73 20 20 20 20 4d 65 61 6e 69 6e |s.Bits Meanin| 00032580 67 0a 30 2d 31 20 20 20 20 20 58 20 70 6f 73 69 |g.0-1 X posi| 00032590 74 69 6f 6e 20 6f 66 20 73 70 72 69 74 65 20 77 |tion of sprite w| 000325a0 69 74 68 69 6e 20 62 62 6f 78 0a 20 20 20 20 20 |ithin bbox. | 000325b0 20 20 20 20 20 20 20 30 30 20 2d 20 6c 65 66 74 | 00 - left| 000325c0 2c 20 30 31 20 2d 20 63 65 6e 74 72 65 2c 20 31 |, 01 - centre, 1| 000325d0 30 20 2d 20 72 69 67 68 74 0a 32 2d 33 20 20 20 |0 - right.2-3 | 000325e0 20 20 59 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 | Y position of | 000325f0 73 70 72 69 74 65 20 77 69 74 68 69 6e 20 62 62 |sprite within bb| 00032600 6f 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 30 |ox. 0| 00032610 30 20 2d 20 62 6f 74 74 6f 6d 2c 20 30 31 20 2d |0 - bottom, 01 -| 00032620 20 63 65 6e 74 72 65 2c 20 31 30 20 2d 20 74 6f | centre, 10 - to| 00032630 70 0a 34 2d 35 20 20 20 20 20 50 61 72 65 6e 74 |p.4-5 Parent| 00032640 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 0a 20 20 | bounding box. | 00032650 20 20 20 20 20 20 20 20 20 20 30 30 20 2d 20 73 | 00 - s| 00032660 63 72 65 65 6e 2c 20 30 31 20 2d 20 77 69 6e 64 |creen, 01 - wind| 00032670 6f 77 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 |ow,. | 00032680 31 30 20 2d 20 73 70 65 63 69 66 69 65 64 20 70 |10 - specified p| 00032690 61 72 65 6e 74 0a 36 20 20 20 20 20 20 20 50 61 |arent.6 Pa| 000326a0 72 65 6e 74 20 62 6f 75 6e 64 69 6e 67 20 62 6f |rent bounding bo| 000326b0 78 20 61 70 70 6c 69 65 73 20 74 6f 0a 20 20 20 |x applies to. | 000326c0 20 20 20 20 20 20 20 20 20 30 20 2d 20 62 62 6f | 0 - bbo| 000326d0 78 2c 20 31 20 2d 20 70 6f 69 6e 74 65 72 0a 37 |x, 1 - pointer.7| 000326e0 20 20 20 20 20 20 20 44 72 6f 70 2d 73 68 61 64 | Drop-shad| 000326f0 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 30 |ow. 0| 00032700 20 2d 20 61 62 73 65 6e 74 2c 20 31 20 2d 20 70 | - absent, 1 - p| 00032710 72 65 73 65 6e 74 0a 38 2d 33 31 20 20 20 20 52 |resent.8-31 R| 00032720 65 73 65 72 76 65 64 2c 20 73 68 6f 75 6c 64 20 |eserved, should | 00032730 62 65 20 7a 65 72 6f 2e 44 49 52 24 48 03 00 00 |be zero.DIR$H...| 00032740 48 03 00 00 80 2a 03 00 46 ff ff ff 08 6c bc 22 |H....*..F....l."| 00032750 df 00 00 00 13 00 00 00 00 00 00 00 45 44 4f 4d |............EDOM| 00032760 00 00 00 00 60 2b 03 00 46 ff ff ff ff 98 b5 22 |....`+..F......"| 00032770 38 00 00 00 13 00 00 00 00 00 00 00 65 6c 73 65 |8...........else| 00032780 00 00 00 00 98 2b 03 00 46 fd ff ff 67 7f 84 2f |.....+..F...g../| 00032790 2c 00 00 00 13 01 00 00 00 00 00 00 65 6c 73 65 |,...........else| 000327a0 5f 00 00 00 5c 2c 03 00 46 ff ff ff 6d 94 e5 22 |_...\,..F...m.."| 000327b0 d3 01 00 00 13 00 00 00 00 00 00 00 65 6c 73 65 |............else| 000327c0 69 66 00 00 30 2e 03 00 46 ff ff ff 0f e0 54 26 |if..0...F.....T&| 000327d0 da 01 00 00 13 00 00 00 00 00 00 00 45 6e 61 62 |............Enab| 000327e0 6c 65 44 62 75 67 00 00 0c 30 03 00 46 ff ff ff |leDbug...0..F...| 000327f0 89 97 e5 22 6c 00 00 00 13 00 00 00 00 00 00 00 |..."l...........| 00032800 65 6e 64 69 66 00 00 00 78 30 03 00 46 ff ff ff |endif...x0..F...| 00032810 d0 ea 54 26 95 00 00 00 13 00 00 00 00 00 00 00 |..T&............| 00032820 45 6e 76 00 10 31 03 00 46 fd ff ff cd 7f 84 2f |Env..1..F....../| 00032830 30 00 00 00 13 01 00 00 00 00 00 00 45 6e 76 5f |0...........Env_| 00032840 00 00 00 00 94 32 03 00 46 ff ff ff 21 97 c1 22 |.....2..F...!.."| 00032850 ef 00 00 00 13 00 00 00 00 00 00 00 45 4f 46 00 |............EOF.| 00032860 84 33 03 00 46 ff ff ff c0 74 bc 22 ed 00 00 00 |.3..F....t."....| 00032870 13 00 00 00 00 00 00 00 45 52 41 4e 47 45 00 00 |........ERANGE..| 00032880 74 34 03 00 46 ff ff ff 9b 06 55 26 22 01 00 00 |t4..F.....U&"...| 00032890 13 00 00 00 00 00 00 00 45 72 72 00 98 35 03 00 |........Err..5..| 000328a0 46 fd ff ff 28 80 84 2f 50 00 00 00 13 01 00 00 |F...(../P.......| 000328b0 00 00 00 00 45 72 72 5f 00 00 00 00 20 39 03 00 |....Err_.... 9..| 000328c0 46 fd ff ff 67 80 84 2f 2c 00 00 00 13 01 00 00 |F...g../,.......| 000328d0 00 00 00 00 65 72 72 68 6e 64 5f 00 dc 39 03 00 |....errhnd_..9..| 000328e0 46 ff ff ff 14 7e bc 22 b7 00 00 00 13 00 00 00 |F....~."........| 000328f0 00 00 00 00 65 72 72 6e 6f 00 00 00 94 3a 03 00 |....errno....:..| 00032900 46 fd ff ff a0 80 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 00032910 00 00 00 00 65 72 72 6e 6f 5f 00 00 bc 3b 03 00 |....errno_...;..| 00032920 46 ff ff ff cb 9c f1 24 97 00 00 00 13 00 00 00 |F......$........| 00032930 00 00 00 00 45 52 52 4f 52 00 00 00 54 3c 03 00 |....ERROR...T<..| 00032940 46 fd ff ff d8 80 84 2f 48 01 00 00 13 01 00 00 |F....../H.......| 00032950 00 00 00 00 45 72 72 6f 72 5f 00 00 44 4d 03 00 |....Error_..DM..| 00032960 46 ff ff ff 74 79 bc 22 ea 00 00 00 13 00 00 00 |F...ty."........| 00032970 00 00 00 00 45 53 49 47 4e 55 4d 00 30 4e 03 00 |....ESIGNUM.0N..| 00032980 46 ff ff ff e4 dd 24 25 4b 03 00 00 13 00 00 00 |F.....$%K.......| 00032990 00 00 00 00 45 76 65 6e 74 00 00 00 7c 51 03 00 |....Event...|Q..| 000329a0 46 fd ff ff d7 81 84 2f 28 04 00 00 13 01 00 00 |F....../(.......| 000329b0 00 00 00 00 65 76 65 6e 74 5f 00 00 88 7d 03 00 |....event_...}..| 000329c0 46 ff ff ff c4 15 27 25 7d 01 00 00 13 00 00 00 |F.....'%}.......| 000329d0 00 00 00 00 45 76 65 6e 74 4d 73 67 00 00 00 00 |....EventMsg....| 000329e0 08 7f 03 00 46 fd ff ff 45 84 84 2f c0 00 00 00 |....F...E../....| 000329f0 13 01 00 00 00 00 00 00 45 76 65 6e 74 4d 73 67 |........EventMsg| 00032a00 5f 00 00 00 5c 86 03 00 46 ff ff ff 6e 8d eb 24 |_...\...F...n..$| 00032a10 dc 01 00 00 13 00 00 00 00 00 00 00 65 78 69 74 |............exit| 00032a20 00 00 00 00 38 88 03 00 46 fd ff ff d0 84 84 2f |....8...F....../| 00032a30 4c 00 00 00 13 01 00 00 00 00 00 00 45 58 49 54 |L...........EXIT| 00032a40 5f 00 00 00 9c 8a 03 00 46 ff ff ff 8e ea bd 22 |_.......F......"| 00032a50 cf 00 00 00 13 00 00 00 00 00 00 00 65 78 70 00 |............exp.| 00032a60 6c 8b 03 00 46 ff ff ff fc e7 e5 22 59 00 00 00 |l...F......"Y...| 00032a70 13 00 00 00 00 00 00 00 45 58 50 4f 52 54 00 00 |........EXPORT..| 00032a80 44 41 54 41 df 00 00 00 45 44 4f 4d 0a 54 68 65 |DATA....EDOM.The| 00032a90 20 6d 61 63 72 6f 20 45 44 4f 4d 20 69 73 20 64 | macro EDOM is d| 00032aa0 65 66 69 6e 65 64 20 69 6e 20 3c 65 72 72 6e 6f |efined in <errno| 00032ab0 2e 68 3d 3e 65 72 72 6e 6f 5f 68 3e 20 61 73 20 |.h=>errno_h> as | 00032ac0 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 |an integer value| 00032ad0 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 74 | which can be st| 00032ae0 6f 72 65 64 20 69 6e 20 3c 65 72 72 6e 6f 3e 20 |ored in <errno> | 00032af0 74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 61 74 |to indicate that| 00032b00 20 74 68 65 20 69 6e 70 75 74 20 61 72 67 75 6d | the input argum| 00032b10 65 6e 74 73 20 66 6f 72 20 61 20 66 75 6e 63 74 |ents for a funct| 00032b20 69 6f 6e 20 61 72 65 20 6f 75 74 20 6f 66 20 61 |ion are out of a| 00032b30 20 73 75 69 74 61 62 6c 65 20 64 6f 6d 61 69 6e | suitable domain| 00032b40 2e 20 49 6e 20 45 61 73 79 a0 43 20 69 74 20 69 |. In Easy.C it i| 00032b50 73 20 64 65 66 69 6e 65 64 20 61 73 20 31 2e 00 |s defined as 1..| 00032b60 44 41 54 41 38 00 00 00 65 6c 73 65 0a 54 68 69 |DATA8...else.Thi| 00032b70 73 20 6b 65 79 77 6f 72 64 20 69 73 20 70 61 72 |s keyword is par| 00032b80 74 20 6f 66 20 74 68 65 20 3c 69 66 3e 20 63 6f |t of the <if> co| 00032b90 6e 73 74 72 75 63 74 2e 44 49 52 24 2c 00 00 00 |nstruct.DIR$,...| 00032ba0 2c 00 00 00 c4 2b 03 00 46 fd ff ff ee 82 e5 22 |,....+..F......"| 00032bb0 95 00 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |............!Roo| 00032bc0 74 00 00 00 44 41 54 41 95 00 00 00 23 65 6c 73 |t...DATA....#els| 00032bd0 65 0a 54 68 69 73 20 64 69 72 65 63 74 69 76 65 |e.This directive| 00032be0 20 66 6f 72 6d 73 20 70 61 72 74 20 6f 66 20 74 | forms part of t| 00032bf0 68 65 20 3c 23 69 66 3d 3e 69 66 3e 2c 20 3c 23 |he <#if=>if>, <#| 00032c00 69 66 64 65 66 3d 3e 69 66 64 65 66 3e 20 61 6e |ifdef=>ifdef> an| 00032c10 64 20 3c 23 69 66 6e 64 65 66 3d 3e 69 66 6e 64 |d <#ifndef=>ifnd| 00032c20 65 66 3e 20 63 6f 6e 73 74 72 75 63 74 73 2e 0a |ef> constructs..| 00032c30 0a 41 6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 66 |.An additional f| 00032c40 6f 72 6d 20 69 73 20 3c 23 65 6c 73 65 69 66 3d |orm is <#elseif=| 00032c50 3e 65 6c 73 65 69 66 3e 2e 00 00 00 44 41 54 41 |>elseif>....DATA| 00032c60 d3 01 00 00 23 65 6c 73 65 69 66 0a 54 68 69 73 |....#elseif.This| 00032c70 20 64 69 72 65 63 74 69 76 65 20 63 6f 6d 62 69 | directive combi| 00032c80 6e 65 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |nes the function| 00032c90 61 6c 69 74 79 20 6f 66 20 3c 23 65 6c 73 65 3d |ality of <#else=| 00032ca0 3e 65 6c 73 65 5f 3e 20 61 6e 64 20 3c 23 69 66 |>else_> and <#if| 00032cb0 3d 3e 69 66 5f 3e 2e 20 49 74 20 68 61 73 20 74 |=>if_>. It has t| 00032cc0 68 65 20 73 61 6d 65 20 66 6f 72 6d 20 61 73 20 |he same form as | 00032cd0 61 20 23 69 66 20 63 6f 6e 73 74 72 75 63 74 20 |a #if construct | 00032ce0 62 75 74 20 63 6f 6d 62 69 6e 65 73 20 74 68 69 |but combines thi| 00032cf0 73 20 77 69 74 68 20 23 65 6c 73 65 20 65 67 2e |s with #else eg.| 00032d00 0a 0a 23 66 43 6f 64 65 0a 20 20 20 20 20 20 3c |..#fCode. <| 00032d10 23 69 66 6e 64 65 66 3d 3e 69 66 6e 64 65 66 3e |#ifndef=>ifndef>| 00032d20 20 4d 41 43 52 4f 0a 20 20 20 20 20 20 5c 3c 73 | MACRO. \<s| 00032d30 74 61 74 65 6d 65 6e 74 73 31 3e 3b 0a 20 20 20 |tatements1>;. | 00032d40 20 20 20 23 65 6c 73 65 69 66 20 4d 41 43 52 4f | #elseif MACRO| 00032d50 3d 3d 31 0a 20 20 20 20 20 20 5c 3c 73 74 61 74 |==1. \<stat| 00032d60 65 6d 65 6e 74 73 32 3e 3b 0a 20 20 20 20 20 20 |ements2>;. | 00032d70 23 65 6c 73 65 0a 20 20 20 20 20 20 5c 3c 73 74 |#else. \<st| 00032d80 61 74 65 6d 65 6e 74 73 33 3e 3b 0a 20 20 20 20 |atements3>;. | 00032d90 20 20 23 65 6e 64 69 66 0a 23 66 0a 0a 49 66 20 | #endif.#f..If | 00032da0 4d 41 43 52 4f 20 69 73 20 75 6e 64 65 66 69 6e |MACRO is undefin| 00032db0 65 64 20 5c 3c 73 74 61 74 6d 65 6e 74 73 31 3e |ed \<statments1>| 00032dc0 20 77 69 6c 6c 20 62 65 20 63 6f 6d 70 69 6c 65 | will be compile| 00032dd0 64 2c 20 65 6c 73 65 20 69 66 20 4d 41 43 52 4f |d, else if MACRO| 00032de0 3d 3d 31 20 74 68 65 6e 20 5c 3c 73 74 61 74 65 |==1 then \<state| 00032df0 6d 65 6e 74 73 32 3e 20 77 69 6c 6c 20 62 65 20 |ments2> will be | 00032e00 63 6f 6d 70 69 6c 65 64 2c 20 65 6c 73 65 20 5c |compiled, else \| 00032e10 3c 73 74 61 74 65 6d 65 6e 74 73 33 3e 20 77 69 |<statements3> wi| 00032e20 6c 6c 20 62 65 20 63 6f 6d 70 69 6c 65 64 2e 00 |ll be compiled..| 00032e30 44 41 54 41 da 01 00 00 54 69 6d 73 4c 69 62 3a |DATA....TimsLib:| 00032e40 45 6e 61 62 6c 65 44 62 75 67 2e 68 0a 23 50 61 |EnableDbug.h.#Pa| 00032e50 72 65 6e 74 20 72 6f 5f 74 6c 69 62 5f 0a 54 68 |rent ro_tlib_.Th| 00032e60 69 73 20 68 65 61 64 65 72 20 73 68 6f 75 6c 64 |is header should| 00032e70 20 62 65 20 3c 23 69 6e 63 6c 75 64 65 3d 3e 69 | be <#include=>i| 00032e80 6e 63 6c 75 64 65 3e 64 20 69 6e 74 6f 20 61 6e |nclude>d into an| 00032e90 79 20 73 6f 75 72 63 65 20 66 69 6c 65 20 79 6f |y source file yo| 00032ea0 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 74 68 |u want to use th| 00032eb0 65 20 3c 4d 61 6c 6c 6f 63 44 62 75 67 3d 3e 4d |e <MallocDbug=>M| 00032ec0 61 6c 6c 6f 63 44 62 75 67 5f 68 3e 20 66 61 63 |allocDbug_h> fac| 00032ed0 69 6c 69 74 69 65 73 2e 20 49 74 20 6d 75 73 74 |ilities. It must| 00032ee0 20 62 65 20 69 6e 63 6c 75 64 65 64 20 61 66 74 | be included aft| 00032ef0 65 72 20 61 6c 6c 20 6f 74 68 65 72 20 68 65 61 |er all other hea| 00032f00 64 65 72 20 66 69 6c 65 73 20 61 6e 64 20 64 65 |der files and de| 00032f10 66 69 6e 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 |fines the follow| 00032f20 69 6e 67 20 6d 61 63 72 6f 73 3a 0a 0a 5c 23 64 |ing macros:..\#d| 00032f30 65 66 69 6e 65 20 3c 6d 61 6c 6c 6f 63 3e 20 3c |efine <malloc> <| 00032f40 6d 61 6c 6c 6f 63 64 62 75 67 3e 0a 5c 23 64 65 |mallocdbug>.\#de| 00032f50 66 69 6e 65 20 3c 66 72 65 65 3e 20 3c 66 72 65 |fine <free> <fre| 00032f60 65 64 62 75 67 3e 0a 5c 23 64 65 66 69 6e 65 20 |edbug>.\#define | 00032f70 3c 53 74 72 53 61 76 65 3e 20 3c 73 74 72 73 61 |<StrSave> <strsa| 00032f80 76 65 64 62 75 67 3e 0a 0a 49 74 20 68 61 73 20 |vedbug>..It has | 00032f90 6e 6f 20 65 66 66 65 63 74 20 69 66 20 74 68 65 |no effect if the| 00032fa0 20 6d 61 63 72 6f 20 7b 2a 7d 5f 44 45 42 55 47 | macro {*}_DEBUG| 00032fb0 7b 2a 7d 20 69 73 20 6e 6f 74 20 64 65 66 69 6e |{*} is not defin| 00032fc0 65 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 3c 54 |ed...See also <T| 00032fd0 69 6d 73 4c 69 62 3a 4d 61 6c 6c 6f 63 44 62 75 |imsLib:MallocDbu| 00032fe0 67 2e 68 3d 3e 4d 61 6c 6c 6f 63 44 62 75 67 3e |g.h=>MallocDbug>| 00032ff0 20 61 6e 64 20 3c 54 69 6d 73 4c 69 62 3a 4c 69 | and <TimsLib:Li| 00033000 62 2e 68 3d 3e 4c 69 62 3e 2e 00 00 44 41 54 41 |b.h=>Lib>...DATA| 00033010 6c 00 00 00 23 65 6e 64 69 66 0a 54 68 69 73 20 |l...#endif.This | 00033020 64 69 72 65 63 74 69 76 65 20 6d 61 72 6b 73 20 |directive marks | 00033030 74 68 65 20 65 6e 64 20 6f 66 20 61 20 3c 23 69 |the end of a <#i| 00033040 66 3d 3e 69 66 5f 3e 2c 20 3c 23 69 66 64 65 66 |f=>if_>, <#ifdef| 00033050 3d 3e 69 66 64 65 66 3e 20 6f 72 20 3c 23 69 66 |=>ifdef> or <#if| 00033060 6e 64 65 66 3d 3e 69 66 6e 64 65 66 3e 20 63 6f |ndef=>ifndef> co| 00033070 6e 73 74 72 75 63 74 2e 44 41 54 41 95 00 00 00 |nstruct.DATA....| 00033080 54 69 6d 73 4c 69 62 3a 45 6e 76 2e 68 0a 23 50 |TimsLib:Env.h.#P| 00033090 61 72 65 6e 74 20 72 6f 5f 74 6c 69 62 5f 0a 54 |arent ro_tlib_.T| 000330a0 68 69 73 20 68 65 61 64 65 72 20 70 72 6f 76 69 |his header provi| 000330b0 64 65 73 20 66 61 63 69 6c 69 74 69 65 73 20 66 |des facilities f| 000330c0 6f 72 20 68 61 6e 64 6c 69 6e 67 20 65 6e 76 69 |or handling envi| 000330d0 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 |ronment variable| 000330e0 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 3a 0a 0a 7b |s...Function:..{| 000330f0 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 45 6e |align centre}<En| 00033100 76 5f 52 65 61 64 56 61 72 56 61 6c 3e 00 00 00 |v_ReadVarVal>...| 00033110 44 49 52 24 30 00 00 00 30 00 00 00 40 31 03 00 |DIR$0...0...@1..| 00033120 46 ff ff ff ca f9 54 26 51 01 00 00 13 00 00 00 |F.....T&Q.......| 00033130 00 00 00 00 52 65 61 64 56 61 72 56 61 6c 00 00 |....ReadVarVal..| 00033140 44 41 54 41 51 01 00 00 45 6e 76 5f 52 65 61 64 |DATAQ...Env_Read| 00033150 56 61 72 56 61 6c 0a 53 79 6e 74 61 78 3a 09 3c |VarVal.Syntax:.<| 00033160 42 4f 4f 4c 3e 20 45 6e 76 5f 52 65 61 64 56 61 |BOOL> Env_ReadVa| 00033170 72 56 61 6c 20 28 63 68 61 72 20 2a 76 61 72 69 |rVal (char *vari| 00033180 61 62 6c 65 2c 20 63 68 61 72 20 2a 62 75 66 2c |able, char *buf,| 00033190 20 69 6e 74 20 62 75 66 73 69 7a 65 29 3b 0a 48 | int bufsize);.H| 000331a0 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a |eader:.<TimsLib:| 000331b0 45 6e 76 2e 68 3d 3e 45 6e 76 3e 0a 0a 52 65 74 |Env.h=>Env>..Ret| 000331c0 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 000331d0 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a 54 68 69 |successful...Thi| 000331e0 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 |s function reads| 000331f0 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 | the value of th| 00033200 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 |e environment va| 00033210 72 69 61 62 6c 65 20 77 68 6f 73 65 20 6e 61 6d |riable whose nam| 00033220 65 20 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 76 |e is given in /v| 00033230 61 72 69 61 62 6c 65 2f 20 61 6e 64 20 70 6c 61 |ariable/ and pla| 00033240 63 65 73 20 69 74 20 69 6e 20 2f 62 75 66 2f 2e |ces it in /buf/.| 00033250 20 2f 62 75 66 73 69 7a 65 2f 20 69 73 20 73 69 | /bufsize/ is si| 00033260 7a 65 20 6f 66 20 2f 62 75 66 2f 2e 20 3c 4f 53 |ze of /buf/. <OS| 00033270 5f 52 65 61 64 56 61 72 56 61 6c 3e 20 64 6f 65 |_ReadVarVal> doe| 00033280 73 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 |s the same thing| 00033290 2e 00 00 00 44 41 54 41 ef 00 00 00 45 4f 46 0a |....DATA....EOF.| 000332a0 23 50 61 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 |#Parent stdio.Th| 000332b0 65 20 6d 61 63 72 6f 20 45 4f 46 20 69 73 20 64 |e macro EOF is d| 000332c0 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f |efined in <stdio| 000332d0 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 73 20 61 20 |.h=>stdio> as a | 000332e0 6e 65 67 61 74 69 76 65 20 76 61 6c 75 65 20 72 |negative value r| 000332f0 65 74 75 72 6e 65 64 20 62 79 20 73 6f 6d 65 20 |eturned by some | 00033300 49 2f 4f 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e |I/O functions in| 00033310 64 69 63 61 74 69 6e 67 20 61 6e 20 65 6e 64 2d |dicating an end-| 00033320 6f 66 2d 66 69 6c 65 20 63 6f 6e 64 69 74 69 6f |of-file conditio| 00033330 6e 2e 20 49 6e 20 45 61 73 79 20 43 20 28 61 6e |n. In Easy C (an| 00033340 64 20 65 76 65 72 79 20 6f 74 68 65 72 20 43 20 |d every other C | 00033350 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 49 |implementation I| 00033360 20 68 61 76 65 20 73 65 65 6e 21 29 20 69 74 20 | have seen!) it | 00033370 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 28 2d |is defined as (-| 00033380 31 29 2e 00 44 41 54 41 ed 00 00 00 45 52 41 4e |1)..DATA....ERAN| 00033390 47 45 0a 54 68 65 20 6d 61 63 72 6f 20 45 52 41 |GE.The macro ERA| 000333a0 4e 47 45 20 69 73 20 64 65 66 69 6e 65 64 20 69 |NGE is defined i| 000333b0 6e 20 3c 65 72 72 6e 6f 2e 68 3d 3e 65 72 72 6e |n <errno.h=>errn| 000333c0 6f 5f 68 3e 20 61 73 20 61 6e 20 69 6e 74 65 67 |o_h> as an integ| 000333d0 65 72 20 76 61 6c 75 65 20 77 68 69 63 68 20 63 |er value which c| 000333e0 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 |an be stored in | 000333f0 3c 65 72 72 6e 6f 3e 20 74 6f 20 69 6e 64 69 63 |<errno> to indic| 00033400 61 74 65 20 74 68 61 74 20 74 68 65 20 72 65 73 |ate that the res| 00033410 75 6c 74 73 20 6f 66 20 61 20 66 75 6e 63 74 69 |ults of a functi| 00033420 6f 6e 20 61 72 65 20 74 6f 6f 20 62 69 67 20 74 |on are too big t| 00033430 6f 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 74 |o be stored in t| 00033440 68 65 20 72 65 74 75 72 6e 20 76 61 72 69 61 62 |he return variab| 00033450 6c 65 2e 20 49 6e 20 45 61 73 79 20 43 20 69 74 |le. In Easy C it| 00033460 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 32 | is defined as 2| 00033470 2e 00 00 00 44 41 54 41 22 01 00 00 54 69 6d 73 |....DATA"...Tims| 00033480 4c 69 62 3a 45 72 72 2e 68 0a 54 68 69 73 20 68 |Lib:Err.h.This h| 00033490 65 61 64 65 72 20 70 72 6f 76 69 64 65 73 20 66 |eader provides f| 000334a0 61 63 69 6c 69 74 69 65 73 20 66 6f 72 20 63 61 |acilities for ca| 000334b0 74 63 68 69 6e 67 20 65 72 72 6f 72 73 2e 0a 0a |tching errors...| 000334c0 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 |Functions:..#Ind| 000334d0 65 6e 74 20 38 0a 23 54 61 62 6c 65 20 31 20 31 |ent 8.#Table 1 1| 000334e0 35 0a 3c 45 72 72 5f 43 68 65 63 6b 3e 0a 3c 45 |5.<Err_Check>.<E| 000334f0 72 72 5f 43 6f 6d 70 6c 61 69 6e 3e 0a 23 45 6e |rr_Complain>.#En| 00033500 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 30 |dTable.#indent 0| 00033510 0a 0a 54 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 |..The format of | 00033520 72 65 70 6f 72 74 65 64 20 65 72 72 6f 72 73 20 |reported errors | 00033530 69 73 3a 0a 0a 7b 66 43 6f 64 65 7d 46 69 6c 65 |is:..{fCode}File| 00033540 6e 61 6d 65 2e 4c 69 6e 65 6e 75 6d 62 65 72 3a |name.Linenumber:| 00033550 45 72 72 6f 72 20 6d 65 73 73 61 67 65 7b 66 7d |Error message{f}| 00033560 0a 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f |..This allows yo| 00033570 75 20 74 6f 20 66 69 6e 64 20 74 68 65 20 73 6f |u to find the so| 00033580 75 72 63 65 20 6f 66 20 65 72 72 6f 72 73 20 65 |urce of errors e| 00033590 61 73 69 6c 79 2e 00 00 44 49 52 24 50 00 00 00 |asily...DIR$P...| 000335a0 50 00 00 00 e8 35 03 00 46 ff ff ff 04 19 55 26 |P....5..F.....U&| 000335b0 13 02 00 00 13 00 00 00 00 00 00 00 43 68 65 63 |............Chec| 000335c0 6b 00 00 00 fc 37 03 00 46 ff ff ff dc 23 55 26 |k....7..F....#U&| 000335d0 22 01 00 00 13 00 00 00 00 00 00 00 43 6f 6d 70 |"...........Comp| 000335e0 6c 61 69 6e 00 00 00 00 44 41 54 41 13 02 00 00 |lain....DATA....| 000335f0 45 72 72 5f 43 68 65 63 6b 0a 53 79 6e 74 61 78 |Err_Check.Syntax| 00033600 3a 09 3c 42 4f 4f 4c 3e 20 45 72 72 5f 43 68 65 |:.<BOOL> Err_Che| 00033610 63 6b 20 28 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ck (<os_error> *| 00033620 65 72 72 6f 72 29 3b 0a 48 65 61 64 65 72 3a 09 |error);.Header:.| 00033630 3c 54 69 6d 73 4c 69 62 3a 45 72 72 2e 68 3d 3e |<TimsLib:Err.h=>| 00033640 45 72 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c |Err>..Returns:.<| 00033650 54 52 55 45 3e 20 69 66 20 27 65 72 72 6f 72 27 |TRUE> if 'error'| 00033660 20 69 73 20 6e 6f 74 20 3c 4e 55 4c 4c 3e 2e 0a | is not <NULL>..| 00033670 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c |.This function-l| 00033680 69 6b 65 20 6d 61 63 72 6f 20 77 69 6c 6c 20 63 |ike macro will c| 00033690 61 6c 6c 20 3c 45 72 72 5f 43 6f 6d 70 6c 61 69 |all <Err_Complai| 000336a0 6e 3e 20 77 69 74 68 20 74 68 65 20 63 75 72 72 |n> with the curr| 000336b0 65 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 20 |ent source file | 000336c0 61 6e 64 20 6c 69 6e 65 2e 20 49 74 20 69 73 20 |and line. It is | 000336d0 69 6e 74 65 6e 64 65 64 20 74 68 61 74 20 69 74 |intended that it| 000336e0 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 74 6f | will be used to| 000336f0 20 65 6e 63 61 70 73 75 6c 61 74 65 20 65 72 72 | encapsulate err| 00033700 6f 72 20 72 65 74 75 72 6e 69 6e 67 20 66 75 6e |or returning fun| 00033710 63 74 69 6f 6e 73 20 61 73 20 66 6f 6c 6c 6f 77 |ctions as follow| 00033720 73 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e |s:..{fCode;align| 00033730 20 63 65 6e 74 72 65 7d 66 61 69 6c 65 64 3d 45 | centre}failed=E| 00033740 72 72 5f 43 68 65 63 6b 28 3c 6f 73 5f 63 6c 69 |rr_Check(<os_cli| 00033750 3e 28 22 4c 6f 61 64 20 42 6c 6f 62 22 29 29 3b |>("Load Blob"));| 00033760 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 49 66 20 7b 2a |{f;align}..If {*| 00033770 7d 6f 73 5f 63 6c 69 7b 2a 7d 20 72 65 74 75 72 |}os_cli{*} retur| 00033780 6e 73 20 61 6e 20 65 72 72 6f 72 20 74 68 65 6e |ns an error then| 00033790 20 69 74 20 77 69 6c 6c 20 62 65 20 72 65 70 6f | it will be repo| 000337a0 72 74 65 64 20 61 6e 64 20 2f 66 61 69 6c 65 64 |rted and /failed| 000337b0 2f 20 77 69 6c 6c 20 65 71 75 61 6c 20 54 52 55 |/ will equal TRU| 000337c0 45 2c 20 65 6c 73 65 20 2f 66 61 69 6c 65 64 2f |E, else /failed/| 000337d0 20 77 69 6c 6c 20 65 71 75 61 6c 20 3c 46 41 4c | will equal <FAL| 000337e0 53 45 3e 20 61 6e 64 20 6e 6f 20 61 63 74 69 6f |SE> and no actio| 000337f0 6e 20 69 73 20 74 61 6b 65 6e 2e 00 44 41 54 41 |n is taken..DATA| 00033800 22 01 00 00 45 72 72 5f 43 6f 6d 70 6c 61 69 6e |"...Err_Complain| 00033810 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 |.Syntax:.<BOOL> | 00033820 45 72 72 5f 43 6f 6d 70 6c 61 69 6e 20 28 63 68 |Err_Complain (ch| 00033830 61 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 69 6e |ar *filename, in| 00033840 74 20 6c 69 6e 65 2c 20 3c 6f 73 5f 65 72 72 6f |t line, <os_erro| 00033850 72 3e 20 2a 65 72 72 6f 72 29 3b 0a 48 65 61 64 |r> *error);.Head| 00033860 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 45 72 72 |er:.<TimsLib:Err| 00033870 2e 68 3d 3e 45 72 72 3e 0a 0a 52 65 74 75 72 6e |.h=>Err>..Return| 00033880 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 2f 65 72 |s:.<TRUE> if /er| 00033890 72 6f 72 2f 20 69 73 20 6e 6f 74 20 3c 4e 55 4c |ror/ is not <NUL| 000338a0 4c 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |L>...This functi| 000338b0 6f 6e 20 77 69 6c 6c 20 72 65 70 6f 72 74 20 74 |on will report t| 000338c0 68 65 20 65 72 72 6f 72 20 69 66 20 2f 65 72 72 |he error if /err| 000338d0 6f 72 2f 20 69 73 20 6e 6f 74 20 3c 4e 55 4c 4c |or/ is not <NULL| 000338e0 3e 2e 20 49 74 20 69 73 20 69 6e 74 65 6e 64 65 |>. It is intende| 000338f0 64 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 62 |d to be called b| 00033900 79 20 75 73 69 6e 67 20 74 68 65 20 6d 61 63 72 |y using the macr| 00033910 6f 20 3c 45 72 72 5f 43 68 65 63 6b 3e 2e 00 00 |o <Err_Check>...| 00033920 44 49 52 24 2c 00 00 00 2c 00 00 00 4c 39 03 00 |DIR$,...,...L9..| 00033930 46 fd ff ff 62 49 c4 22 8d 00 00 00 13 00 00 00 |F...bI."........| 00033940 00 00 00 00 21 52 6f 6f 74 00 00 00 44 41 54 41 |....!Root...DATA| 00033950 8d 00 00 00 45 72 72 6f 72 20 48 61 6e 64 6c 69 |....Error Handli| 00033960 6e 67 20 46 75 6e 63 74 69 6f 6e 73 0a 23 50 61 |ng Functions.#Pa| 00033970 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 65 73 65 |rent stdio.These| 00033980 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 6e 64 6c | functions handl| 00033990 65 20 66 69 6c 65 20 65 72 72 6f 72 73 2e 0a 0a |e file errors...| 000339a0 23 54 61 62 6c 65 20 32 20 31 38 0a 3c 63 6c 65 |#Table 2 18.<cle| 000339b0 61 72 65 72 72 3e 0a 3c 66 65 6f 66 3e 0a 3c 66 |arerr>.<feof>.<f| 000339c0 65 72 72 6f 72 3e 0a 3c 70 65 72 72 6f 72 3e 0a |error>.<perror>.| 000339d0 23 45 6e 64 54 61 62 6c 65 00 00 00 44 41 54 41 |#EndTable...DATA| 000339e0 b7 00 00 00 65 72 72 6e 6f 0a 54 68 65 20 76 61 |....errno.The va| 000339f0 72 69 61 62 6c 65 20 65 72 72 6e 6f 20 69 73 20 |riable errno is | 00033a00 64 65 63 6c 61 72 65 64 20 69 6e 20 3c 65 72 72 |declared in <err| 00033a10 6e 6f 2e 68 3d 3e 65 72 72 6e 6f 5f 68 3e 2e 20 |no.h=>errno_h>. | 00033a20 49 74 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 |It is a variable| 00033a30 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 | which is used t| 00033a40 6f 20 73 74 6f 72 65 20 65 72 72 6f 72 20 63 6f |o store error co| 00033a50 64 65 73 20 77 68 69 63 68 20 73 6f 6d 65 20 41 |des which some A| 00033a60 4e 53 49 20 43 20 66 75 6e 63 74 69 6f 6e 73 20 |NSI C functions | 00033a70 72 65 74 75 72 6e 2c 20 65 67 20 74 68 6f 73 65 |return, eg those| 00033a80 20 69 6e 20 3c 6d 61 74 68 2e 68 3d 3e 6d 61 74 | in <math.h=>mat| 00033a90 68 3e 2e 00 44 49 52 24 28 00 00 00 28 00 00 00 |h>..DIR$(...(...| 00033aa0 bc 3a 03 00 46 fd ff ff 3f 7a bb 22 fe 00 00 00 |.:..F...?z."....| 00033ab0 13 00 00 00 00 00 00 00 68 00 00 00 44 41 54 41 |........h...DATA| 00033ac0 fe 00 00 00 65 72 72 6e 6f 2e 68 0a 54 68 65 20 |....errno.h.The | 00033ad0 5c 3c 65 72 72 6e 6f 2e 68 5c 3e 20 68 65 61 64 |\<errno.h\> head| 00033ae0 65 72 20 64 65 63 6c 61 72 65 73 20 6f 6e 65 20 |er declares one | 00033af0 76 61 72 69 61 62 6c 65 20 61 6e 64 20 64 65 66 |variable and def| 00033b00 69 6e 65 73 20 74 68 72 65 65 20 6d 61 63 72 6f |ines three macro| 00033b10 73 2c 20 61 6c 6c 20 6f 66 20 77 68 69 63 68 20 |s, all of which | 00033b20 61 72 65 20 75 73 65 64 20 66 6f 72 20 72 65 70 |are used for rep| 00033b30 6f 72 74 69 6e 67 20 61 6e 64 20 69 6e 74 65 72 |orting and inter| 00033b40 70 72 65 74 69 6e 67 20 65 72 72 6f 72 73 2e 0a |preting errors..| 00033b50 0a 4d 61 63 72 6f 73 3a 0a 0a 23 49 6e 64 65 6e |.Macros:..#Inden| 00033b60 74 20 35 0a 23 54 61 62 6c 65 20 6c 69 6e 65 73 |t 5.#Table lines| 00033b70 20 31 0a 3c 45 44 4f 4d 3e 0a 3c 45 52 41 4e 47 | 1.<EDOM>.<ERANG| 00033b80 45 3e 0a 3c 45 53 49 47 4e 55 4d 3e 0a 23 45 6e |E>.<ESIGNUM>.#En| 00033b90 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 |dTable..#Indent | 00033ba0 30 0a 56 61 72 69 61 62 6c 65 3a 0a 0a 20 20 20 |0.Variable:.. | 00033bb0 20 20 3c 65 72 72 6e 6f 3e 0a 00 00 44 41 54 41 | <errno>...DATA| 00033bc0 97 00 00 00 45 52 52 4f 52 0a 54 68 65 20 6d 61 |....ERROR.The ma| 00033bd0 63 72 6f 20 45 52 52 4f 52 20 69 73 20 64 65 66 |cro ERROR is def| 00033be0 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 00033bf0 3a 43 6f 72 65 2e 68 3d 3e 43 6f 72 65 3e 20 61 |:Core.h=>Core> a| 00033c00 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 73 |s a value repres| 00033c10 65 6e 74 69 6e 67 20 74 68 65 20 73 74 61 74 65 |enting the state| 00033c20 20 74 68 61 74 20 61 6e 20 65 72 72 6f 72 20 65 | that an error e| 00033c30 78 69 73 74 73 2e 20 49 74 20 69 73 20 61 63 74 |xists. It is act| 00033c40 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 61 73 |ually defined as| 00033c50 20 31 2e 00 44 49 52 24 48 01 00 00 48 01 00 00 | 1..DIR$H...H...| 00033c60 9c 3d 03 00 46 ff ff ff e9 2b f4 24 12 02 00 00 |.=..F....+.$....| 00033c70 13 00 00 00 00 00 00 00 43 68 65 63 6b 00 00 00 |........Check...| 00033c80 b0 3f 03 00 46 ff ff ff 18 48 f4 24 d5 01 00 00 |.?..F....H.$....| 00033c90 13 00 00 00 00 00 00 00 43 68 65 63 6b 46 61 74 |........CheckFat| 00033ca0 61 6c 00 00 88 41 03 00 46 ff ff ff cf 7e 42 26 |al...A..F....~B&| 00033cb0 e7 03 00 00 13 00 00 00 00 00 00 00 66 6c 61 67 |............flag| 00033cc0 73 00 00 00 70 45 03 00 46 fd ff ff 77 b1 f4 24 |s...pE..F...w..$| 00033cd0 f0 01 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |............h...| 00033ce0 60 47 03 00 46 ff ff ff 7d 54 f4 24 63 01 00 00 |`G..F...}T.$c...| 00033cf0 13 00 00 00 00 00 00 00 4f 75 74 4f 66 4d 65 6d |........OutOfMem| 00033d00 6f 72 79 00 c4 48 03 00 46 ff ff ff 6d 01 f4 24 |ory..H..F...m..$| 00033d10 96 01 00 00 13 00 00 00 00 00 00 00 52 65 70 6f |............Repo| 00033d20 72 74 00 00 5c 4a 03 00 46 ff ff ff 85 0e f4 24 |rt..\J..F......$| 00033d30 b7 00 00 00 13 00 00 00 00 00 00 00 52 65 70 6f |............Repo| 00033d40 72 74 46 61 74 61 6c 00 14 4b 03 00 46 ff ff ff |rtFatal..K..F...| 00033d50 23 e8 f3 24 5d 01 00 00 13 00 00 00 00 00 00 00 |#..$]...........| 00033d60 52 65 70 6f 72 74 49 6e 74 65 72 6e 61 6c 00 00 |ReportInternal..| 00033d70 74 4c 03 00 46 ff ff ff 1f f2 f3 24 cf 00 00 00 |tL..F......$....| 00033d80 13 00 00 00 00 00 00 00 52 65 70 6f 72 74 46 61 |........ReportFa| 00033d90 74 61 6c 49 6e 74 65 72 6e 61 6c 00 44 41 54 41 |talInternal.DATA| 00033da0 12 02 00 00 45 72 72 6f 72 5f 43 68 65 63 6b 0a |....Error_Check.| 00033db0 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 45 |Syntax:.<BOOL> E| 00033dc0 72 72 6f 72 5f 43 68 65 63 6b 20 28 3c 6f 73 5f |rror_Check (<os_| 00033dd0 65 72 72 6f 72 3e 20 2a 65 72 72 29 3b 0a 48 65 |error> *err);.He| 00033de0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 45 |ader:.<DeskLib:E| 00033df0 72 72 6f 72 2e 68 3d 3e 45 72 72 6f 72 5f 68 3e |rror.h=>Error_h>| 00033e00 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 |..Returns:.<TRUE| 00033e10 3e 20 69 66 20 2f 65 72 72 2f 20 21 3d a0 3c 4e |> if /err/ !=.<N| 00033e20 55 4c 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ULL>..This funct| 00033e30 69 6f 6e 20 77 69 6c 6c 20 63 61 6c 6c 20 3c 45 |ion will call <E| 00033e40 72 72 6f 72 5f 52 65 70 6f 72 74 3e 2c 20 69 66 |rror_Report>, if| 00033e50 20 2f 65 72 72 2f 20 69 73 20 6e 6f 74 20 2a 4e | /err/ is not *N| 00033e60 55 4c 4c 2a 2e 20 49 74 20 69 73 20 69 6e 74 65 |ULL*. It is inte| 00033e70 6e 64 65 64 20 74 68 61 74 20 69 74 20 77 69 6c |nded that it wil| 00033e80 6c 20 62 65 20 75 73 65 64 20 74 6f 20 65 6e 63 |l be used to enc| 00033e90 61 70 73 75 6c 61 74 65 20 65 72 72 6f 72 20 72 |apsulate error r| 00033ea0 65 74 75 72 6e 69 6e 67 20 66 75 6e 63 74 69 6f |eturning functio| 00033eb0 6e 73 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 7b |ns as follows:.{| 00033ec0 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 |wrap off}.{fCode| 00033ed0 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 66 61 |;align centre}fa| 00033ee0 69 6c 65 64 3d 45 72 72 6f 72 5f 43 68 65 63 6b |iled=Error_Check| 00033ef0 28 3c 6f 73 5f 63 6c 69 3e 28 22 4c 6f 61 64 20 |(<os_cli>("Load | 00033f00 42 6c 6f 62 22 29 29 3b 7b 66 3b 61 6c 69 67 6e |Blob"));{f;align| 00033f10 3b 77 72 61 70 7d 0a 0a 49 66 20 7b 2a 7d 6f 73 |;wrap}..If {*}os| 00033f20 5f 63 6c 69 7b 2a 7d 20 72 65 74 75 72 6e 73 20 |_cli{*} returns | 00033f30 61 6e 20 65 72 72 6f 72 20 74 68 65 6e 20 69 74 |an error then it| 00033f40 20 77 69 6c 6c 20 62 65 20 72 65 70 6f 72 74 65 | will be reporte| 00033f50 64 20 61 6e 64 20 2f 66 61 69 6c 65 64 2f 20 77 |d and /failed/ w| 00033f60 69 6c 6c 20 65 71 75 61 6c 20 7b 2a 7d 54 52 55 |ill equal {*}TRU| 00033f70 45 7b 2a 7d 2c 20 65 6c 73 65 20 2f 66 61 69 6c |E{*}, else /fail| 00033f80 65 64 2f 20 77 69 6c 6c 20 65 71 75 61 6c 20 3c |ed/ will equal <| 00033f90 46 41 4c 53 45 3e 20 61 6e 64 20 6e 6f 20 61 63 |FALSE> and no ac| 00033fa0 74 69 6f 6e 20 69 73 20 74 61 6b 65 6e 2e 00 00 |tion is taken...| 00033fb0 44 41 54 41 d5 01 00 00 45 72 72 6f 72 5f 43 68 |DATA....Error_Ch| 00033fc0 65 63 6b 46 61 74 61 6c 0a 53 79 6e 74 61 78 3a |eckFatal.Syntax:| 00033fd0 09 76 6f 69 64 20 45 72 72 6f 72 5f 43 68 65 63 |.void Error_Chec| 00033fe0 6b 46 61 74 61 6c 20 28 3c 6f 73 5f 65 72 72 6f |kFatal (<os_erro| 00033ff0 72 3e 20 2a 65 72 72 29 3b 0a 48 65 61 64 65 72 |r> *err);.Header| 00034000 3a 09 3c 44 65 73 6b 4c 69 62 3a 45 72 72 6f 72 |:.<DeskLib:Error| 00034010 2e 68 3d 3e 45 72 72 6f 72 5f 68 3e 0a 0a 54 68 |.h=>Error_h>..Th| 00034020 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c |is function will| 00034030 20 63 61 6c 6c 20 3c 45 72 72 6f 72 5f 52 65 70 | call <Error_Rep| 00034040 6f 72 74 46 61 74 61 6c 3e 2c 20 69 66 20 2f 65 |ortFatal>, if /e| 00034050 72 72 2f 20 69 73 20 6e 6f 74 20 3c 4e 55 4c 4c |rr/ is not <NULL| 00034060 3e 2e 20 49 74 20 69 73 20 69 6e 74 65 6e 64 65 |>. It is intende| 00034070 64 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 |d that it will b| 00034080 65 20 75 73 65 64 20 74 6f 20 65 6e 63 61 70 73 |e used to encaps| 00034090 75 6c 61 74 65 20 65 72 72 6f 72 20 72 65 74 75 |ulate error retu| 000340a0 72 6e 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 |rning functions | 000340b0 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 7b 77 72 61 |as follows:.{wra| 000340c0 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 3b 61 6c |p off}.{fCode;al| 000340d0 69 67 6e 20 63 65 6e 74 72 65 7d 45 72 72 6f 72 |ign centre}Error| 000340e0 5f 43 68 65 63 6b 46 61 74 61 6c 28 3c 6f 73 5f |_CheckFatal(<os_| 000340f0 63 6c 69 3e 28 22 4c 6f 61 64 20 42 6c 6f 62 22 |cli>("Load Blob"| 00034100 29 29 3b 7b 66 3b 61 6c 69 67 6e 3b 77 72 61 70 |));{f;align;wrap| 00034110 7d 0a 0a 49 66 20 7b 2a 7d 6f 73 5f 63 6c 69 7b |}..If {*}os_cli{| 00034120 2a 7d 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 |*} returns an er| 00034130 72 6f 72 20 74 68 65 6e 20 69 74 20 77 69 6c 6c |ror then it will| 00034140 20 62 65 20 72 65 70 6f 72 74 65 64 20 61 6e 64 | be reported and| 00034150 20 74 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c | the program wil| 00034160 6c 20 65 78 69 74 2c 20 65 6c 73 65 20 6e 6f 20 |l exit, else no | 00034170 61 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 74 |action will be t| 00034180 61 6b 65 6e 2e 00 00 00 44 41 54 41 e7 03 00 00 |aken....DATA....| 00034190 65 72 72 6f 72 5f 66 6c 61 67 73 0a 54 68 69 73 |error_flags.This| 000341a0 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 000341b0 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d | in <DeskLib:Wim| 000341c0 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 63 |p.h=>Wimp>. It c| 000341d0 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 6c 61 67 |ontains the flag| 000341e0 73 20 6e 65 65 64 65 64 20 62 79 20 3c 57 69 6d |s needed by <Wim| 000341f0 70 5f 52 65 70 6f 72 74 45 72 72 6f 72 3e 2c 20 |p_ReportError>, | 00034200 62 6f 74 68 20 61 73 20 61 20 76 61 6c 75 65 20 |both as a value | 00034210 61 6e 64 20 61 73 20 69 6e 64 69 76 69 64 75 61 |and as individua| 00034220 6c 20 62 69 74 73 20 66 6f 72 20 65 61 73 79 20 |l bits for easy | 00034230 73 65 74 74 69 6e 67 2e 20 49 74 20 69 73 20 64 |setting. It is d| 00034240 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f |efined as the fo| 00034250 6c 6c 6f 77 69 6e 67 20 75 6e 69 6f 6e 3a 0a 0a |llowing union:..| 00034260 20 20 5c 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 | \{. unsigne| 00034270 64 20 69 6e 74 20 76 61 6c 75 65 3b 0a 20 20 20 |d int value;. | 00034280 20 73 74 72 75 63 74 0a 20 20 20 20 5c 7b 0a 20 | struct. \{. | 00034290 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e | unsigned in| 000342a0 74 20 6f 6b 09 3a 20 31 3b 0a 20 20 20 20 20 20 |t ok.: 1;. | 000342b0 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 61 6e |unsigned int can| 000342c0 63 65 6c 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |cel.: 1;. u| 000342d0 6e 73 69 67 6e 65 64 20 69 6e 74 20 68 69 67 68 |nsigned int high| 000342e0 6c 69 67 68 74 63 61 6e 63 65 6c 09 3a 20 31 3b |lightcancel.: 1;| 000342f0 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00034300 69 6e 74 20 6e 6f 70 72 6f 6d 70 74 09 3a 20 31 |int noprompt.: 1| 00034310 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 00034320 20 69 6e 74 20 6e 6f 70 72 65 66 69 78 09 3a 20 | int noprefix.: | 00034330 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 |1;. unsigne| 00034340 64 20 69 6e 74 20 6e 6f 77 61 69 74 09 3a 20 31 |d int nowait.: 1| 00034350 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 00034360 20 69 6e 74 20 63 6c 6f 73 65 62 6f 78 09 3a 20 | int closebox.: | 00034370 31 3b 0a 20 20 20 20 7d 20 64 61 74 61 3b 0a 20 |1;. } data;. | 00034380 20 7d 0a 7b 74 61 62 7d 0a 8f 09 2f 6f 6b 2f 20 | }.{tab}.../ok/ | 00034390 61 6e 64 20 2f 63 61 6e 63 65 6c 2f 20 6d 65 61 |and /cancel/ mea| 000343a0 6e 20 70 72 6f 76 69 64 65 20 61 6e 20 4f 4b 2f |n provide an OK/| 000343b0 43 61 6e 63 65 6c 20 62 6f 78 20 72 65 73 70 65 |Cancel box respe| 000343c0 63 74 69 76 65 6c 79 2e 0a 8f 09 2f 6e 6f 70 72 |ctively..../nopr| 000343d0 6f 6d 70 74 2f 20 6d 65 61 6e 73 20 74 68 61 74 |ompt/ means that| 000343e0 20 22 50 72 65 73 73 20 53 50 41 43 45 20 6f 72 | "Press SPACE or| 000343f0 20 63 6c 69 63 6b 20 6d 6f 75 73 65 20 74 6f 20 | click mouse to | 00034400 63 6f 6e 74 69 6e 75 65 22 20 77 69 6c 6c 20 6e |continue" will n| 00034410 6f 74 20 61 70 70 65 61 72 2e 0a 8f 09 2f 6e 6f |ot appear..../no| 00034420 70 72 65 66 69 78 2f 20 6d 65 61 6e 73 20 74 68 |prefix/ means th| 00034430 61 74 20 74 68 65 20 74 69 74 6c 65 20 62 61 72 |at the title bar| 00034440 20 77 69 6c 6c 20 6e 6f 74 20 63 6f 6e 74 61 69 | will not contai| 00034450 6e 20 22 45 72 72 6f 72 20 66 72 6f 6d 22 2e 0a |n "Error from"..| 00034460 8f 09 2f 6e 6f 77 61 69 74 2f 20 6d 65 61 6e 73 |../nowait/ means| 00034470 20 74 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 | that the functi| 00034480 6f 6e 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 |on will return a| 00034490 6e 64 20 6c 65 61 76 65 20 74 68 65 20 77 69 6e |nd leave the win| 000344a0 64 6f 77 20 6f 70 65 6e 2e 0a 8f 09 2f 63 6c 6f |dow open..../clo| 000344b0 73 65 62 6f 78 2f 20 6d 65 61 6e 73 20 74 68 61 |sebox/ means tha| 000344c0 74 20 6f 6e 65 20 6f 66 20 74 68 65 20 62 6f 78 |t one of the box| 000344d0 65 73 20 77 69 6c 6c 20 62 65 20 73 65 6c 65 63 |es will be selec| 000344e0 74 65 64 20 28 7b 2f 7d 6f 6b 7b 2f 7d 20 6f 72 |ted ({/}ok{/} or| 000344f0 20 7b 2f 7d 63 61 6e 63 65 6c 7b 2f 7d 29 20 61 | {/}cancel{/}) a| 00034500 6e 64 20 74 68 65 20 77 69 6e 64 6f 77 20 63 6c |nd the window cl| 00034510 6f 73 65 64 2e 0a 0a 42 69 74 20 37 2c 20 77 68 |osed...Bit 7, wh| 00034520 69 63 68 20 69 73 20 6e 6f 74 20 70 72 6f 76 69 |ich is not provi| 00034530 64 65 64 20 61 73 20 61 20 73 65 70 61 72 61 74 |ded as a separat| 00034540 65 20 76 61 72 69 61 62 6c 65 2c 20 73 69 6c 65 |e variable, sile| 00034550 6e 63 65 73 20 61 6e 79 20 62 65 65 70 20 28 52 |nces any beep (R| 00034560 49 53 43 20 4f 53 20 33 20 6f 6e 6c 79 29 2e 00 |ISC OS 3 only)..| 00034570 44 41 54 41 f0 01 00 00 45 72 72 6f 72 2e 68 0a |DATA....Error.h.| 00034580 56 65 72 73 69 6f 6e 3a 20 31 2e 30 35 34 20 28 |Version: 1.054 (| 00034590 31 33 20 4a 75 6c 20 31 39 39 33 29 0a 23 6c 69 |13 Jul 1993).#li| 000345a0 6e 65 0a 54 68 65 20 7b 2a 7d 45 72 72 6f 72 2e |ne.The {*}Error.| 000345b0 68 7b 2a 7d 20 68 65 61 64 65 72 20 64 65 66 69 |h{*} header defi| 000345c0 6e 65 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 |nes a number of | 000345d0 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 72 65 70 |function for rep| 000345e0 6f 72 74 69 6e 67 20 65 72 72 6f 72 73 2e 20 54 |orting errors. T| 000345f0 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 |hese functions a| 00034600 72 65 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 |re not included | 00034610 69 6e 20 74 68 65 20 44 65 73 6b 4c 69 62 20 6c |in the DeskLib l| 00034620 69 62 72 61 72 79 2c 20 62 75 74 20 61 72 65 20 |ibrary, but are | 00034630 70 72 65 73 65 6e 74 20 69 6e 20 61 20 73 65 70 |present in a sep| 00034640 61 72 61 74 65 20 6f 62 6a 65 63 74 20 66 69 6c |arate object fil| 00034650 65 2e 20 54 68 69 73 20 69 73 20 73 6f 20 79 6f |e. This is so yo| 00034660 75 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 65 |u can change the| 00034670 69 72 20 61 63 74 69 6f 6e 20 77 69 74 68 6f 75 |ir action withou| 00034680 74 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 63 |t changing the c| 00034690 61 6c 6c 20 75 73 65 64 20 74 6f 20 69 6e 76 6f |all used to invo| 000346a0 6b 65 20 74 68 65 6d 2e 0a 0a 46 75 6e 63 74 69 |ke them...Functi| 000346b0 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 32 0a |ons:..#indent 2.| 000346c0 23 54 61 62 6c 65 20 34 20 32 37 0a 3c 45 72 72 |#Table 4 27.<Err| 000346d0 6f 72 5f 52 65 70 6f 72 74 49 6e 74 65 72 6e 61 |or_ReportInterna| 000346e0 6c 3e 0a 3c 45 72 72 6f 72 5f 52 65 70 6f 72 74 |l>.<Error_Report| 000346f0 46 61 74 61 6c 49 6e 74 65 72 6e 61 6c 3e 0a 3c |FatalInternal>.<| 00034700 45 72 72 6f 72 5f 52 65 70 6f 72 74 3e 0a 3c 45 |Error_Report>.<E| 00034710 72 72 6f 72 5f 52 65 70 6f 72 74 46 61 74 61 6c |rror_ReportFatal| 00034720 3e 0a 3c 45 72 72 6f 72 5f 43 68 65 63 6b 3e 0a |>.<Error_Check>.| 00034730 3c 45 72 72 6f 72 5f 43 68 65 63 6b 46 61 74 61 |<Error_CheckFata| 00034740 6c 3e 0a 3c 45 72 72 6f 72 5f 4f 75 74 4f 66 4d |l>.<Error_OutOfM| 00034750 65 6d 6f 72 79 3e 0a 23 45 6e 64 54 61 62 6c 65 |emory>.#EndTable| 00034760 44 41 54 41 63 01 00 00 45 72 72 6f 72 5f 4f 75 |DATAc...Error_Ou| 00034770 74 4f 66 4d 65 6d 6f 72 79 0a 53 79 6e 74 61 78 |tOfMemory.Syntax| 00034780 3a 09 3c 42 4f 4f 4c 3e 20 45 72 72 6f 72 5f 4f |:.<BOOL> Error_O| 00034790 75 74 4f 66 4d 65 6d 6f 72 79 20 28 42 4f 4f 4c |utOfMemory (BOOL| 000347a0 20 66 61 74 61 6c 2c 20 63 68 61 72 20 2a 70 6c | fatal, char *pl| 000347b0 61 63 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ace);.Header:.<D| 000347c0 65 73 6b 4c 69 62 3a 45 72 72 6f 72 2e 68 3d 3e |eskLib:Error.h=>| 000347d0 45 72 72 6f 72 5f 68 3e 0a 0a 52 65 74 75 72 6e |Error_h>..Return| 000347e0 73 3a 09 30 20 28 3d 3d 20 3c 46 41 4c 53 45 3e |s:.0 (== <FALSE>| 000347f0 20 3d 3d 20 3c 4e 55 4c 4c 3e 29 2e 0a 0a 54 68 | == <NULL>)...Th| 00034800 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6f |is function repo| 00034810 72 74 73 20 61 20 6d 65 6d 6f 72 79 20 65 72 72 |rts a memory err| 00034820 6f 72 20 28 69 65 20 22 55 6e 61 62 6c 65 20 74 |or (ie "Unable t| 00034830 6f 20 63 6c 61 69 6d 20 65 6e 6f 75 67 68 20 6d |o claim enough m| 00034840 65 6d 6f 72 79 20 66 6f 72 20 58 58 58 22 29 2c |emory for XXX"),| 00034850 20 77 68 65 72 65 20 58 58 58 20 69 73 20 74 68 | where XXX is th| 00034860 65 20 70 6c 61 63 65 20 67 69 76 65 6e 2e 20 49 |e place given. I| 00034870 66 20 2f 66 61 74 61 6c 2f 20 69 73 20 3c 54 52 |f /fatal/ is <TR| 00034880 55 45 3e 2c 20 74 68 65 6e 20 3c 45 72 72 6f 72 |UE>, then <Error| 00034890 5f 52 65 70 6f 72 74 46 61 74 61 6c 3e 20 69 73 |_ReportFatal> is| 000348a0 20 75 73 65 64 2c 20 65 6c 73 65 20 3c 45 72 72 | used, else <Err| 000348b0 6f 72 5f 52 65 70 6f 72 74 3e 20 69 73 20 75 73 |or_Report> is us| 000348c0 65 64 2e 00 44 41 54 41 96 01 00 00 45 72 72 6f |ed..DATA....Erro| 000348d0 72 5f 52 65 70 6f 72 74 0a 53 79 6e 74 61 78 3a |r_Report.Syntax:| 000348e0 09 76 6f 69 64 20 45 72 72 6f 72 5f 52 65 70 6f |.void Error_Repo| 000348f0 72 74 20 28 69 6e 74 20 65 72 72 6e 6f 2c 20 63 |rt (int errno, c| 00034900 68 61 72 20 2a 72 65 70 6f 72 74 2c 20 2e 2e 2e |har *report, ...| 00034910 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00034920 4c 69 62 3a 45 72 72 6f 72 2e 68 3d 3e 45 72 72 |Lib:Error.h=>Err| 00034930 6f 72 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |or_h>..This func| 00034940 74 69 6f 6e 20 72 65 70 6f 72 74 73 20 61 6e 20 |tion reports an | 00034950 65 72 72 6f 72 20 74 6f 20 74 68 65 20 75 73 65 |error to the use| 00034960 72 2c 20 75 6e 64 65 72 20 63 6f 6e 74 72 6f 6c |r, under control| 00034970 20 6f 66 20 74 68 65 20 3c 66 6f 72 6d 61 74 20 | of the <format | 00034980 73 74 72 69 6e 67 3d 3e 70 66 6f 72 6d 5f 3e 2c |string=>pform_>,| 00034990 20 2f 72 65 70 6f 72 74 2f 2e 20 54 68 65 20 65 | /report/. The e| 000349a0 72 72 6f 72 20 6e 75 6d 62 65 72 20 69 73 20 67 |rror number is g| 000349b0 69 76 65 6e 20 69 6e 20 2f 65 72 72 6e 6f 2f 2e |iven in /errno/.| 000349c0 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 6d 70 | The default imp| 000349d0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 63 61 6c 6c |lementation call| 000349e0 73 20 3c 57 69 6d 70 5f 52 65 70 6f 72 74 45 72 |s <Wimp_ReportEr| 000349f0 72 6f 72 3d 3e 53 57 49 3a 57 69 6d 70 5f 52 65 |ror=>SWI:Wimp_Re| 00034a00 70 6f 72 74 45 72 72 6f 72 3e 2c 20 62 75 74 20 |portError>, but | 00034a10 79 6f 75 20 63 61 6e 20 63 68 61 6e 67 65 20 7b |you can change {| 00034a20 2a 7d 45 72 72 6f 72 2e 63 7b 2a 7d 20 61 6e 64 |*}Error.c{*} and| 00034a30 20 72 65 63 6f 6d 70 69 6c 65 20 74 6f 20 70 72 | recompile to pr| 00034a40 6f 76 69 64 65 20 61 6e 79 20 61 63 74 69 6f 6e |ovide any action| 00034a50 20 79 6f 75 20 77 61 6e 74 2e 00 00 44 41 54 41 | you want...DATA| 00034a60 b7 00 00 00 45 72 72 6f 72 5f 52 65 70 6f 72 74 |....Error_Report| 00034a70 46 61 74 61 6c 0a 53 79 6e 74 61 78 3a 09 76 6f |Fatal.Syntax:.vo| 00034a80 69 64 20 45 72 72 6f 72 5f 52 65 70 6f 72 74 46 |id Error_ReportF| 00034a90 61 74 61 6c 20 28 69 6e 74 20 65 72 72 6e 6f 2c |atal (int errno,| 00034aa0 20 63 68 61 72 20 2a 72 65 70 6f 72 74 2c 20 2e | char *report, .| 00034ab0 2e 2e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |..);.Header:.<De| 00034ac0 73 6b 4c 69 62 3a 45 72 72 6f 72 2e 68 3d 3e 45 |skLib:Error.h=>E| 00034ad0 72 72 6f 72 5f 68 3e 0a 0a 54 68 69 73 20 66 75 |rror_h>..This fu| 00034ae0 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 3c 45 72 |nction calls <Er| 00034af0 72 6f 72 5f 52 65 70 6f 72 74 3e 2c 20 61 6e 64 |ror_Report>, and| 00034b00 20 74 68 65 6e 20 63 61 6c 6c 73 20 3c 65 78 69 | then calls <exi| 00034b10 74 3e 2e 00 44 41 54 41 5d 01 00 00 45 72 72 6f |t>..DATA]...Erro| 00034b20 72 5f 52 65 70 6f 72 74 49 6e 74 65 72 6e 61 6c |r_ReportInternal| 00034b30 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 45 72 |.Syntax:.void Er| 00034b40 72 6f 72 5f 52 65 70 6f 72 74 49 6e 74 65 72 6e |ror_ReportIntern| 00034b50 61 6c 20 28 69 6e 74 20 65 72 72 6e 6f 2c 20 63 |al (int errno, c| 00034b60 68 61 72 20 2a 72 65 70 6f 72 74 2c 20 2e 2e 2e |har *report, ...| 00034b70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00034b80 4c 69 62 3a 45 72 72 6f 72 2e 68 3d 3e 45 72 72 |Lib:Error.h=>Err| 00034b90 6f 72 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |or_h>..This func| 00034ba0 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 63 61 |tion is identica| 00034bb0 6c 20 74 6f 20 3c 45 72 72 6f 72 5f 52 65 70 6f |l to <Error_Repo| 00034bc0 72 74 3e 2c 20 65 78 63 65 70 74 20 69 74 20 69 |rt>, except it i| 00034bd0 73 20 75 73 65 64 20 66 6f 72 20 6d 6f 73 74 20 |s used for most | 00034be0 65 72 72 6f 72 73 20 72 65 70 6f 72 74 65 64 20 |errors reported | 00034bf0 62 79 20 44 65 73 6b 4c 69 62 2e 20 59 6f 75 20 |by DeskLib. You | 00034c00 73 68 6f 75 6c 64 20 75 73 65 20 45 72 72 6f 72 |should use Error| 00034c10 5f 52 65 70 6f 72 74 2e 20 54 68 69 73 20 63 61 |_Report. This ca| 00034c20 6c 6c 20 65 78 69 73 74 73 20 73 6f 20 79 6f 75 |ll exists so you| 00034c30 20 63 61 6e 20 74 72 65 61 74 20 69 6e 74 65 72 | can treat inter| 00034c40 6e 61 6c 20 65 72 72 6f 72 73 20 64 69 66 66 65 |nal errors diffe| 00034c50 72 65 6e 74 6c 79 20 62 79 20 63 68 61 6e 67 69 |rently by changi| 00034c60 6e 67 20 7b 2a 7d 45 72 72 6f 72 2e 63 7b 2a 7d |ng {*}Error.c{*}| 00034c70 2e 00 00 00 44 41 54 41 cf 00 00 00 45 72 72 6f |....DATA....Erro| 00034c80 72 5f 52 65 70 6f 72 74 46 61 74 61 6c 49 6e 74 |r_ReportFatalInt| 00034c90 65 72 6e 61 6c 0a 53 79 6e 74 61 78 3a 09 76 6f |ernal.Syntax:.vo| 00034ca0 69 64 20 45 72 72 6f 72 5f 52 65 70 6f 72 74 46 |id Error_ReportF| 00034cb0 61 74 61 6c 49 6e 74 65 72 6e 61 6c 20 28 69 6e |atalInternal (in| 00034cc0 74 20 65 72 72 6e 6f 2c 20 63 68 61 72 20 2a 72 |t errno, char *r| 00034cd0 65 70 6f 72 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 |eport, ...);.Hea| 00034ce0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 45 72 |der:.<DeskLib:Er| 00034cf0 72 6f 72 2e 68 3d 3e 45 72 72 6f 72 5f 68 3e 0a |ror.h=>Error_h>.| 00034d00 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 00034d10 61 6c 6c 73 20 3c 45 72 72 6f 72 5f 52 65 70 6f |alls <Error_Repo| 00034d20 72 74 49 6e 74 65 72 6e 61 6c 3e 2c 20 61 6e 64 |rtInternal>, and| 00034d30 20 74 68 65 6e 20 63 61 6c 6c 73 20 3c 65 78 69 | then calls <exi| 00034d40 74 3e 2e 00 44 41 54 41 ea 00 00 00 45 53 49 47 |t>..DATA....ESIG| 00034d50 4e 55 4d 0a 54 68 65 20 6d 61 63 72 6f 20 45 53 |NUM.The macro ES| 00034d60 49 47 4e 55 4d 20 69 73 20 64 65 66 69 6e 65 64 |IGNUM is defined| 00034d70 20 69 6e 20 3c 65 72 72 6e 6f 2e 68 3d 3e 65 72 | in <errno.h=>er| 00034d80 72 6e 6f 5f 68 3e 20 61 73 20 61 6e 20 69 6e 74 |rno_h> as an int| 00034d90 65 67 65 72 20 76 61 6c 75 65 20 77 68 69 63 68 |eger value which| 00034da0 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 | can be stored i| 00034db0 6e 20 3c 65 72 72 6e 6f 3e 20 74 6f 20 69 6e 64 |n <errno> to ind| 00034dc0 69 63 61 74 65 20 74 68 61 74 20 61 6e 20 75 6e |icate that an un| 00034dd0 72 65 63 6f 67 6e 69 73 65 64 20 73 69 67 6e 61 |recognised signa| 00034de0 6c 20 68 61 73 20 62 65 65 6e 20 63 61 75 67 68 |l has been caugh| 00034df0 74 20 62 79 20 74 68 65 20 64 65 66 61 75 6c 74 |t by the default| 00034e00 20 73 69 67 6e 61 6c 20 68 61 6e 64 6c 65 72 2e | signal handler.| 00034e10 20 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 | In Easy C it is| 00034e20 20 64 65 66 69 6e 65 64 20 61 73 20 33 2e 00 00 | defined as 3...| 00034e30 44 41 54 41 4b 03 00 00 44 65 73 6b 4c 69 62 3a |DATAK...DeskLib:| 00034e40 45 76 65 6e 74 2e 68 0a 56 65 72 73 69 6f 6e 3a |Event.h.Version:| 00034e50 20 31 2e 30 31 20 28 31 34 20 4a 75 6c 20 31 39 | 1.01 (14 Jul 19| 00034e60 39 33 29 0a 23 6c 69 6e 65 0a 54 68 69 73 20 68 |93).#line.This h| 00034e70 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 68 |eader declares h| 00034e80 69 67 68 2d 6c 65 76 65 6c 20 66 75 6e 63 74 69 |igh-level functi| 00034e90 6f 6e 73 20 66 6f 72 20 76 65 72 79 20 65 61 73 |ons for very eas| 00034ea0 79 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 57 69 |y handling of Wi| 00034eb0 6d 70 20 65 76 65 6e 74 73 2e 0a 0a 46 75 6e 63 |mp events...Func| 00034ec0 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 |tions:..#Indent | 00034ed0 31 30 0a 23 54 61 62 6c 65 20 34 20 32 31 0a 3c |10.#Table 4 21.<| 00034ee0 45 76 65 6e 74 5f 49 6e 69 74 69 61 6c 69 73 65 |Event_Initialise| 00034ef0 3e 0a 3c 45 76 65 6e 74 5f 49 6e 69 74 69 61 6c |>.<Event_Initial| 00034f00 69 73 65 33 3e 0a 3c 45 76 65 6e 74 5f 43 6c 61 |ise3>.<Event_Cla| 00034f10 69 6d 3e 0a 3c 45 76 65 6e 74 5f 52 65 6c 65 61 |im>.<Event_Relea| 00034f20 73 65 3e 0a 3c 45 76 65 6e 74 5f 52 65 6c 65 61 |se>.<Event_Relea| 00034f30 73 65 57 69 6e 64 6f 77 3e 0a 3c 45 76 65 6e 74 |seWindow>.<Event| 00034f40 5f 50 72 6f 63 65 73 73 3e 0a 3c 45 76 65 6e 74 |_Process>.<Event| 00034f50 5f 50 6f 6c 6c 3e 0a 3c 45 76 65 6e 74 5f 43 6c |_Poll>.<Event_Cl| 00034f60 6f 73 65 44 6f 77 6e 3e 0a 23 45 6e 64 54 61 62 |oseDown>.#EndTab| 00034f70 6c 65 0a 23 49 6e 64 65 6e 74 20 30 0a 0a 54 79 |le.#Indent 0..Ty| 00034f80 70 65 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 |pe:..{align cent| 00034f90 72 65 7d 3c 65 76 65 6e 74 5f 68 61 6e 64 6c 65 |re}<event_handle| 00034fa0 72 3e 7b 61 6c 69 67 6e 7d 0a 0a 56 61 72 69 61 |r>{align}..Varia| 00034fb0 62 6c 65 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 31 |bles:..#Indent 1| 00034fc0 30 0a 23 54 61 62 6c 65 20 33 20 32 31 0a 3c 65 |0.#Table 3 21.<e| 00034fd0 76 65 6e 74 5f 6d 61 73 6b 3e 0a 3c 65 76 65 6e |vent_mask>.<even| 00034fe0 74 5f 74 61 73 6b 68 61 6e 64 6c 65 3e 0a 3c 65 |t_taskhandle>.<e| 00034ff0 76 65 6e 74 5f 77 69 6d 70 76 65 72 73 69 6f 6e |vent_wimpversion| 00035000 3e 0a 3c 65 76 65 6e 74 5f 74 61 73 6b 6e 61 6d |>.<event_tasknam| 00035010 65 3e 0a 3c 65 76 65 6e 74 5f 6c 61 73 74 65 76 |e>.<event_lastev| 00035020 65 6e 74 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 |ent>.#EndTable.#| 00035030 49 6e 64 65 6e 74 20 30 0a 0a 45 76 65 6e 74 20 |Indent 0..Event | 00035040 70 6f 6c 6c 73 20 74 68 65 20 57 69 6d 70 20 66 |polls the Wimp f| 00035050 6f 72 20 79 6f 75 2c 20 74 68 65 6e 20 70 61 73 |or you, then pas| 00035060 73 65 73 20 74 68 65 20 72 65 73 75 6c 74 69 6e |ses the resultin| 00035070 67 20 65 76 65 6e 74 20 74 6f 20 6f 6e 65 20 6f |g event to one o| 00035080 72 20 6d 6f 72 65 20 6f 66 20 79 6f 75 72 20 68 |r more of your h| 00035090 61 6e 64 6c 65 72 20 72 6f 75 74 69 6e 65 73 2c |andler routines,| 000350a0 20 75 6e 74 69 6c 20 79 6f 75 20 69 6e 64 69 63 | until you indic| 000350b0 61 74 65 20 74 68 61 74 20 79 6f 75 20 68 61 76 |ate that you hav| 000350c0 65 20 70 72 6f 63 65 73 73 65 64 20 74 68 65 20 |e processed the | 000350d0 65 76 65 6e 74 2e 20 59 6f 75 20 64 6f 20 6e 6f |event. You do no| 000350e0 74 20 6e 65 65 64 20 74 6f 20 77 6f 72 72 79 20 |t need to worry | 000350f0 61 62 6f 75 74 20 63 68 65 63 6b 69 6e 67 20 76 |about checking v| 00035100 61 6c 75 65 73 20 72 65 74 75 72 6e 65 64 20 62 |alues returned b| 00035110 79 20 57 69 6d 70 5f 50 6f 6c 6c 2c 20 6f 72 20 |y Wimp_Poll, or | 00035120 6d 61 73 6b 69 6e 67 20 6f 75 74 20 75 6e 77 61 |masking out unwa| 00035130 6e 74 65 64 20 65 76 65 6e 74 73 2e 20 44 65 66 |nted events. Def| 00035140 61 75 6c 74 20 68 61 6e 64 6c 65 72 73 20 61 72 |ault handlers ar| 00035150 65 20 70 72 6f 76 69 64 65 64 20 69 6e 20 3c 44 |e provided in <D| 00035160 65 73 6b 4c 69 62 3a 48 61 6e 64 6c 65 72 2e 68 |eskLib:Handler.h| 00035170 3d 3e 48 61 6e 64 6c 65 72 3e 2e 00 44 49 52 24 |=>Handler>..DIR$| 00035180 28 04 00 00 28 04 00 00 a4 55 03 00 46 ff ff ff |(...(....U..F...| 00035190 b7 52 47 23 8d 00 00 00 13 00 00 00 00 00 00 00 |.RG#............| 000351a0 61 6e 79 77 69 6e 64 6f 77 73 00 00 34 56 03 00 |anywindows..4V..| 000351b0 46 ff ff ff d8 60 47 23 fd 01 00 00 13 00 00 00 |F....`G#........| 000351c0 00 00 00 00 61 74 74 61 63 68 6d 65 6e 75 00 00 |....attachmenu..| 000351d0 34 58 03 00 46 ff ff ff 25 7a 47 23 27 02 00 00 |4X..F...%zG#'...| 000351e0 13 00 00 00 00 00 00 00 61 74 74 61 63 68 6d 65 |........attachme| 000351f0 6e 75 6d 61 6b 65 72 00 5c 5a 03 00 46 ff ff ff |numaker.\Z..F...| 00035200 76 8b 24 25 3f 03 00 00 13 00 00 00 00 00 00 00 |v.$%?...........| 00035210 43 6c 61 69 6d 00 00 00 9c 5d 03 00 46 ff ff ff |Claim....]..F...| 00035220 fb 80 47 23 a6 00 00 00 13 00 00 00 00 00 00 00 |..G#............| 00035230 63 6c 65 61 72 5f 63 75 72 72 65 6e 74 5f 6d 65 |clear_current_me| 00035240 6e 75 00 00 44 5e 03 00 46 ff ff ff e7 b0 24 25 |nu..D^..F.....$%| 00035250 a6 00 00 00 13 00 00 00 00 00 00 00 43 6c 6f 73 |............Clos| 00035260 65 44 6f 77 6e 00 00 00 ec 5e 03 00 46 ff ff ff |eDown....^..F...| 00035270 93 83 48 26 a6 01 00 00 13 00 00 00 00 00 00 00 |..H&............| 00035280 64 61 74 61 00 00 00 00 94 60 03 00 46 ff ff ff |data.....`..F...| 00035290 4a 86 47 23 dd 00 00 00 13 00 00 00 00 00 00 00 |J.G#............| 000352a0 67 65 74 6d 61 73 6b 00 74 61 03 00 46 fd ff ff |getmask.ta..F...| 000352b0 96 4d 47 23 8d 01 00 00 13 00 00 00 00 00 00 00 |.MG#............| 000352c0 68 00 00 00 04 63 03 00 46 ff ff ff 8c b9 24 25 |h....c..F.....$%| 000352d0 4d 01 00 00 13 00 00 00 00 00 00 00 68 61 6e 64 |M...........hand| 000352e0 6c 65 72 00 54 64 03 00 46 ff ff ff f5 4e 24 25 |ler.Td..F....N$%| 000352f0 15 01 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |............Init| 00035300 69 61 6c 69 73 65 00 00 6c 65 03 00 46 ff ff ff |ialise..le..F...| 00035310 f4 5b 24 25 32 02 00 00 13 00 00 00 00 00 00 00 |.[$%2...........| 00035320 49 6e 69 74 69 61 6c 69 73 65 33 00 a0 67 03 00 |Initialise3..g..| 00035330 46 ff ff ff ec 8c 47 23 90 00 00 00 13 00 00 00 |F.....G#........| 00035340 00 00 00 00 69 73 5f 6d 65 6e 75 5f 62 65 69 6e |....is_menu_bein| 00035350 67 5f 72 65 63 72 65 61 74 65 64 00 30 68 03 00 |g_recreated.0h..| 00035360 46 ff ff ff 14 e9 24 25 a5 00 00 00 13 00 00 00 |F.....$%........| 00035370 00 00 00 00 6c 61 73 74 65 76 65 6e 74 00 00 00 |....lastevent...| 00035380 d8 68 03 00 46 ff ff ff 86 bf 24 25 b1 00 00 00 |.h..F.....$%....| 00035390 13 00 00 00 00 00 00 00 6d 61 73 6b 00 00 00 00 |........mask....| 000353a0 8c 69 03 00 46 ff ff ff 8a be 47 23 28 01 00 00 |.i..F.....G#(...| 000353b0 13 00 00 00 00 00 00 00 6d 65 6e 75 5f 6d 61 6b |........menu_mak| 000353c0 65 72 00 00 b4 6a 03 00 46 ff ff ff 8c b1 47 23 |er...j..F.....G#| 000353d0 68 01 00 00 13 00 00 00 00 00 00 00 6d 65 6e 75 |h...........menu| 000353e0 5f 70 72 6f 63 00 00 00 1c 6c 03 00 46 ff ff ff |_proc....l..F...| 000353f0 ad ab 24 25 17 01 00 00 13 00 00 00 00 00 00 00 |..$%............| 00035400 50 6f 6c 6c 00 00 00 00 34 6d 03 00 46 ff ff ff |Poll....4m..F...| 00035410 a9 8b 48 26 d3 00 00 00 13 00 00 00 00 00 00 00 |..H&............| 00035420 70 6f 6c 6c 62 6c 6f 63 6b 00 00 00 08 6e 03 00 |pollblock....n..| 00035430 46 ff ff ff e8 5c 48 26 89 04 00 00 13 00 00 00 |F....\H&........| 00035440 00 00 00 00 70 6f 6c 6c 6d 61 73 6b 00 00 00 00 |....pollmask....| 00035450 94 72 03 00 46 ff ff ff 35 9f 24 25 8f 01 00 00 |.r..F...5.$%....| 00035460 13 00 00 00 00 00 00 00 50 72 6f 63 65 73 73 00 |........Process.| 00035470 24 74 03 00 46 ff ff ff c5 96 47 23 3b 01 00 00 |$t..F.....G#;...| 00035480 13 00 00 00 00 00 00 00 70 72 6f 63 65 73 73 5f |........process_| 00035490 00 00 00 00 60 75 03 00 46 ff ff ff 9e 90 24 25 |....`u..F.....$%| 000354a0 48 01 00 00 13 00 00 00 00 00 00 00 52 65 6c 65 |H...........Rele| 000354b0 61 73 65 00 a8 76 03 00 46 ff ff ff 82 94 24 25 |ase..v..F.....$%| 000354c0 f1 00 00 00 13 00 00 00 00 00 00 00 52 65 6c 65 |............Rele| 000354d0 61 73 65 57 69 6e 64 6f 77 00 00 00 9c 77 03 00 |aseWindow....w..| 000354e0 46 ff ff ff 2e 9f 47 23 e4 00 00 00 13 00 00 00 |F.....G#........| 000354f0 00 00 00 00 73 65 74 6d 61 73 6b 00 80 78 03 00 |....setmask..x..| 00035500 46 ff ff ff 0b e4 24 25 7d 00 00 00 13 00 00 00 |F.....$%}.......| 00035510 00 00 00 00 74 61 73 6b 6e 61 6d 65 00 00 00 00 |....taskname....| 00035520 00 79 03 00 46 ff ff ff 97 41 48 26 d7 02 00 00 |.y..F....AH&....| 00035530 13 00 00 00 00 00 00 00 74 79 70 65 00 00 00 00 |........type....| 00035540 d8 7b 03 00 46 ff ff ff 53 a5 47 23 7f 00 00 00 |.{..F...S.G#....| 00035550 13 00 00 00 00 00 00 00 77 00 00 00 58 7c 03 00 |........w...X|..| 00035560 46 ff ff ff 22 e1 24 25 a6 00 00 00 13 00 00 00 |F...".$%........| 00035570 00 00 00 00 77 69 6d 70 76 65 72 73 69 6f 6e 00 |....wimpversion.| 00035580 00 7d 03 00 46 ff ff ff b8 d9 24 25 86 00 00 00 |.}..F.....$%....| 00035590 13 00 00 00 00 00 00 00 74 61 73 6b 68 61 6e 64 |........taskhand| 000355a0 6c 65 00 00 44 41 54 41 8d 00 00 00 65 76 65 6e |le..DATA....even| 000355b0 74 5f 61 6e 79 77 69 6e 64 6f 77 73 0a 53 79 6e |t_anywindows.Syn| 000355c0 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 65 76 65 6e |tax:.<BOOL> even| 000355d0 74 5f 61 6e 79 77 69 6e 64 6f 77 73 20 28 76 6f |t_anywindows (vo| 000355e0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 65 76 |id);.Header:.<ev| 000355f0 65 6e 74 2e 68 3d 3e 65 76 65 6e 74 5f 68 3e 0a |ent.h=>event_h>.| 00035600 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e |.Returns:.<TRUE>| 00035610 20 69 66 20 74 68 65 72 65 20 61 72 65 20 61 6e | if there are an| 00035620 79 20 61 63 74 69 76 65 20 77 69 6e 64 6f 77 73 |y active windows| 00035630 2e 00 00 00 44 41 54 41 fd 01 00 00 65 76 65 6e |....DATA....even| 00035640 74 5f 61 74 74 61 63 68 6d 65 6e 75 0a 53 79 6e |t_attachmenu.Syn| 00035650 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 65 76 65 6e |tax:.<BOOL> even| 00035660 74 5f 61 74 74 61 63 68 6d 65 6e 75 20 28 3c 65 |t_attachmenu (<e| 00035670 76 65 6e 74 5f 77 3e 20 77 69 6e 2c 20 3c 6d 65 |vent_w> win, <me| 00035680 6e 75 3e 20 6d 2c 20 3c 65 76 65 6e 74 5f 6d 65 |nu> m, <event_me| 00035690 6e 75 5f 70 72 6f 63 3e 20 66 6e 2c 20 76 6f 69 |nu_proc> fn, voi| 000356a0 64 20 2a 68 6e 64 29 3b 0a 48 65 61 64 65 72 3a |d *hnd);.Header:| 000356b0 09 3c 65 76 65 6e 74 2e 68 3d 3e 65 76 65 6e 74 |.<event.h=>event| 000356c0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 |_h>..Returns:.<T| 000356d0 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 73 66 |RUE> if successf| 000356e0 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ul...This functi| 000356f0 6f 6e 20 61 74 74 61 63 68 65 73 20 61 20 6d 65 |on attaches a me| 00035700 6e 75 20 2f 6d 2f 20 61 6e 64 20 69 74 73 20 61 |nu /m/ and its a| 00035710 73 73 6f 63 69 61 74 65 64 20 68 61 6e 64 6c 65 |ssociated handle| 00035720 72 20 66 75 6e 63 74 69 6f 6e 20 2f 66 6e 2f 20 |r function /fn/ | 00035730 74 6f 20 61 20 77 69 6e 64 6f 77 20 2f 77 69 6e |to a window /win| 00035740 2f 2e 20 57 68 65 6e 20 74 68 65 20 75 73 65 72 |/. When the user| 00035750 20 69 6e 76 6f 6b 65 73 20 61 20 6d 65 6e 75 20 | invokes a menu | 00035760 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 77 |from the given w| 00035770 69 6e 64 6f 77 2c 20 74 68 69 73 20 6d 65 6e 75 |indow, this menu| 00035780 20 77 69 6c 6c 20 62 65 20 61 63 74 69 76 61 74 | will be activat| 00035790 65 64 2e 20 54 68 65 20 68 61 6e 64 6c 65 72 20 |ed. The handler | 000357a0 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 |function will be| 000357b0 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 | called when the| 000357c0 20 75 73 65 72 20 73 65 6c 65 63 74 73 20 61 20 | user selects a | 000357d0 6d 65 6e 75 20 65 6e 74 72 79 2e 20 41 20 63 61 |menu entry. A ca| 000357e0 6c 6c 20 77 69 74 68 20 7b 2f 7d 6d 3d 3d 30 7b |ll with {/}m==0{| 000357f0 2f 7d 20 72 65 6d 6f 76 65 73 20 74 68 65 20 61 |/} removes the a| 00035800 74 74 61 63 68 6d 65 6e 74 2e 20 2f 68 6e 64 2f |ttachment. /hnd/| 00035810 20 69 73 20 70 61 73 73 65 64 20 64 69 72 65 63 | is passed direc| 00035820 74 20 74 6f 20 74 68 65 20 68 61 6e 64 6c 65 72 |t to the handler| 00035830 2e 00 00 00 44 41 54 41 27 02 00 00 65 76 65 6e |....DATA'...even| 00035840 74 5f 61 74 74 61 63 68 6d 65 6e 75 6d 61 6b 65 |t_attachmenumake| 00035850 72 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e |r.Syntax:.<BOOL>| 00035860 20 65 76 65 6e 74 5f 61 74 74 61 63 68 6d 65 6e | event_attachmen| 00035870 75 6d 61 6b 65 72 20 28 3c 65 76 65 6e 74 5f 77 |umaker (<event_w| 00035880 3e 20 77 69 6e 2c 20 3c 65 76 65 6e 74 5f 6d 65 |> win, <event_me| 00035890 6e 75 5f 6d 61 6b 65 72 3e 20 6d 61 6b 65 2c 20 |nu_maker> make, | 000358a0 3c 65 76 65 6e 74 5f 6d 65 6e 75 5f 70 72 6f 63 |<event_menu_proc| 000358b0 3e 20 66 6e 2c 20 76 6f 69 64 20 2a 68 6e 64 29 |> fn, void *hnd)| 000358c0 3b 0a 48 65 61 64 65 72 3a 09 3c 65 76 65 6e 74 |;.Header:.<event| 000358d0 2e 68 3d 3e 65 76 65 6e 74 5f 68 3e 0a 0a 52 65 |.h=>event_h>..Re| 000358e0 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 |turns:.<TRUE> if| 000358f0 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a 54 68 | successful...Th| 00035900 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 61 |is function atta| 00035910 63 68 65 73 20 61 20 6d 65 6e 75 20 6d 61 6b 65 |ches a menu make| 00035920 72 20 2f 6d 61 6b 65 2f 20 61 6e 64 20 69 74 73 |r /make/ and its| 00035930 20 61 73 73 6f 63 69 61 74 65 64 20 68 61 6e 64 | associated hand| 00035940 6c 65 72 20 66 75 6e 63 74 69 6f 6e 20 2f 66 6e |ler function /fn| 00035950 2f 20 74 6f 20 61 20 77 69 6e 64 6f 77 20 2f 77 |/ to a window /w| 00035960 69 6e 2f 2e 20 57 68 65 6e 20 74 68 65 20 75 73 |in/. When the us| 00035970 65 72 20 69 6e 76 6f 6b 65 73 20 61 20 6d 65 6e |er invokes a men| 00035980 75 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e |u from the given| 00035990 20 77 69 6e 64 6f 77 2c 20 74 68 65 20 6d 65 6e | window, the men| 000359a0 75 20 6d 61 6b 65 72 20 77 69 6c 6c 20 62 65 20 |u maker will be | 000359b0 61 63 74 69 76 61 74 65 64 2e 20 54 68 65 20 68 |activated. The h| 000359c0 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 20 |andler function | 000359d0 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 |will be called w| 000359e0 68 65 6e 20 74 68 65 20 75 73 65 72 20 73 65 6c |hen the user sel| 000359f0 65 63 74 73 20 61 20 6d 65 6e 75 20 65 6e 74 72 |ects a menu entr| 00035a00 79 2e 20 41 20 63 61 6c 6c 20 77 69 74 68 20 7b |y. A call with {| 00035a10 2f 7d 6d 61 6b 65 3d 3d 30 7b 2f 7d 20 72 65 6d |/}make==0{/} rem| 00035a20 6f 76 65 73 20 74 68 65 20 61 74 74 61 63 68 6d |oves the attachm| 00035a30 65 6e 74 2e 20 2f 68 6e 64 2f 20 69 73 20 70 61 |ent. /hnd/ is pa| 00035a40 73 73 65 64 20 64 69 72 65 63 74 20 74 6f 20 74 |ssed direct to t| 00035a50 68 65 20 68 61 6e 64 6c 65 72 2e 00 44 41 54 41 |he handler..DATA| 00035a60 3f 03 00 00 45 76 65 6e 74 5f 43 6c 61 69 6d 0a |?...Event_Claim.| 00035a70 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 45 |Syntax:.<BOOL> E| 00035a80 76 65 6e 74 5f 43 6c 61 69 6d 20 28 3c 65 76 65 |vent_Claim (<eve| 00035a90 6e 74 5f 74 79 70 65 3e 20 74 79 70 65 2c 20 3c |nt_type> type, <| 00035aa0 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 |window_handle> w| 00035ab0 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 |in, <icon_handle| 00035ac0 3e 20 69 63 6f 6e 2c 20 3c 65 76 65 6e 74 5f 68 |> icon, <event_h| 00035ad0 61 6e 64 6c 65 72 3e 20 68 61 6e 64 6c 65 72 2c |andler> handler,| 00035ae0 20 76 6f 69 64 20 2a 72 65 66 29 3b 0a 48 65 61 | void *ref);.Hea| 00035af0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 45 76 |der:.<DeskLib:Ev| 00035b00 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 0a 0a 52 |ent.h=>Event>..R| 00035b10 65 74 75 72 6e 73 3a 09 54 52 55 45 20 69 66 20 |eturns:.TRUE if | 00035b20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a 54 68 69 |successful...Thi| 00035b30 73 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 61 63 |s function attac| 00035b40 68 65 73 20 61 6e 20 65 76 65 6e 74 20 68 61 6e |hes an event han| 00035b50 64 6c 65 72 20 74 6f 20 61 20 70 61 72 74 69 63 |dler to a partic| 00035b60 75 6c 61 72 20 65 76 65 6e 74 20 2f 74 79 70 65 |ular event /type| 00035b70 2f 2c 20 77 69 6e 64 6f 77 20 2f 77 69 6e 2f 2c |/, window /win/,| 00035b80 20 61 6e 64 20 69 63 6f 6e 20 2f 69 63 6f 6e 2f | and icon /icon/| 00035b90 2e 20 41 6e 79 20 6f 66 20 74 68 65 73 65 20 63 |. Any of these c| 00035ba0 61 6e 20 62 65 20 7b 2a 7d 65 76 65 6e 74 5f 41 |an be {*}event_A| 00035bb0 4e 59 7b 2a 7d 20 74 6f 20 62 65 20 6e 6f 6e 2d |NY{*} to be non-| 00035bc0 73 70 65 63 69 66 69 63 2e 20 2f 68 61 6e 64 6c |specific. /handl| 00035bd0 65 72 2f 20 69 73 20 79 6f 75 72 20 68 61 6e 64 |er/ is your hand| 00035be0 6c 65 72 20 66 75 6e 63 74 69 6f 6e 2c 20 2f 72 |ler function, /r| 00035bf0 65 66 2f 20 69 73 20 70 61 73 73 65 64 20 64 69 |ef/ is passed di| 00035c00 72 65 63 74 20 74 6f 20 74 68 65 20 68 61 6e 64 |rect to the hand| 00035c10 6c 65 72 20 69 66 20 69 74 20 69 73 20 63 61 6c |ler if it is cal| 00035c20 6c 65 64 20 61 6e 64 20 63 61 6e 20 62 65 20 61 |led and can be a| 00035c30 6e 79 74 68 69 6e 67 20 79 6f 75 20 6c 69 6b 65 |nything you like| 00035c40 2e 0a 0a 45 76 65 6e 74 73 20 61 72 65 20 70 72 |...Events are pr| 00035c50 69 6f 72 69 74 69 73 65 64 2c 20 77 69 74 68 20 |ioritised, with | 00035c60 74 68 65 20 6d 6f 73 74 20 73 70 65 63 69 66 69 |the most specifi| 00035c70 63 20 65 76 65 6e 74 73 20 62 65 69 6e 67 20 63 |c events being c| 00035c80 61 6c 6c 65 64 20 66 69 72 73 74 20 2d 20 73 6f |alled first - so| 00035c90 20 79 6f 75 20 63 61 6e 20 68 61 76 65 20 61 20 | you can have a | 00035ca0 67 65 6e 65 72 61 6c 20 72 6f 75 74 69 6e 65 20 |general routine | 00035cb0 68 61 6e 64 6c 69 6e 67 20 61 6c 6c 20 69 63 6f |handling all ico| 00035cc0 6e 20 63 6c 69 63 6b 73 2c 20 61 6e 64 20 74 68 |n clicks, and th| 00035cd0 65 6e 20 73 65 76 65 72 61 6c 20 6f 6e 65 73 20 |en several ones | 00035ce0 66 6f 72 20 73 70 65 63 69 66 69 63 20 69 63 6f |for specific ico| 00035cf0 6e 73 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 |ns, which will b| 00035d00 65 20 63 61 6c 6c 65 64 20 66 69 72 73 74 20 69 |e called first i| 00035d10 66 20 74 68 6f 73 65 20 69 63 6f 6e 73 20 61 72 |f those icons ar| 00035d20 65 20 63 6c 69 63 6b 65 64 2e 0a 0a 4e 6f 74 65 |e clicked...Note| 00035d30 20 74 68 61 74 20 4e 75 6c 6c 5f 52 65 61 73 6f | that Null_Reaso| 00035d40 6e 5f 43 6f 64 65 20 65 76 65 6e 74 73 20 77 69 |n_Code events wi| 00035d50 6c 6c 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 |ll not be proces| 00035d60 73 65 64 20 75 6e 6c 65 73 73 20 79 6f 75 20 73 |sed unless you s| 00035d70 70 65 63 69 66 69 63 61 6c 6c 79 20 61 74 74 61 |pecifically atta| 00035d80 63 68 20 61 20 68 61 6e 64 6c 65 72 20 74 6f 20 |ch a handler to | 00035d90 74 68 61 74 20 65 76 65 6e 74 2e 00 44 41 54 41 |that event..DATA| 00035da0 a6 00 00 00 65 76 65 6e 74 5f 63 6c 65 61 72 5f |....event_clear_| 00035db0 63 75 72 72 65 6e 74 5f 6d 65 6e 75 0a 53 79 6e |current_menu.Syn| 00035dc0 74 61 78 3a 09 76 6f 69 64 20 65 76 65 6e 74 5f |tax:.void event_| 00035dd0 63 6c 65 61 72 5f 63 75 72 72 65 6e 74 5f 6d 65 |clear_current_me| 00035de0 6e 75 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |nu (void);.Heade| 00035df0 72 3a 09 3c 65 76 65 6e 74 2e 68 3d 3e 65 76 65 |r:.<event.h=>eve| 00035e00 6e 74 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |nt_h>..This func| 00035e10 74 69 6f 6e 20 63 6c 65 61 72 73 20 74 68 65 20 |tion clears the | 00035e20 63 75 72 72 65 6e 74 20 6d 65 6e 75 20 74 72 65 |current menu tre| 00035e30 65 20 66 72 6f 6d 20 74 68 65 20 73 63 72 65 65 |e from the scree| 00035e40 6e 2e 00 00 44 41 54 41 a6 00 00 00 45 76 65 6e |n...DATA....Even| 00035e50 74 5f 43 6c 6f 73 65 44 6f 77 6e 0a 53 79 6e 74 |t_CloseDown.Synt| 00035e60 61 78 3a 09 76 6f 69 64 20 45 76 65 6e 74 5f 43 |ax:.void Event_C| 00035e70 6c 6f 73 65 44 6f 77 6e 20 28 76 6f 69 64 29 3b |loseDown (void);| 00035e80 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00035e90 62 3a 45 76 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 |b:Event.h=>Event| 00035ea0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00035eb0 20 63 6c 6f 73 65 73 20 64 6f 77 6e 20 28 71 75 | closes down (qu| 00035ec0 69 74 73 29 20 74 68 65 20 61 70 70 6c 69 63 61 |its) the applica| 00035ed0 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 45 76 65 |tion and the Eve| 00035ee0 6e 74 20 73 79 73 74 65 6d 2e 00 00 44 41 54 41 |nt system...DATA| 00035ef0 a6 01 00 00 65 76 65 6e 74 5f 64 61 74 61 0a 54 |....event_data.T| 00035f00 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00035f10 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 00035f20 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 |Wimp.h=>Wimp>. I| 00035f30 74 20 69 73 20 61 20 75 6e 69 6f 6e 20 63 6f 6e |t is a union con| 00035f40 74 61 69 6e 69 6e 67 20 74 68 65 20 64 61 74 61 |taining the data| 00035f50 20 72 65 74 75 72 6e 65 64 20 62 79 20 3c 57 69 | returned by <Wi| 00035f60 6d 70 5f 50 6f 6c 6c 3e 2e 0a 0a 20 20 5c 7b 0a |mp_Poll>... \{.| 00035f70 20 20 20 20 3c 63 61 72 65 74 5f 62 6c 6f 63 6b | <caret_block| 00035f80 3e 09 63 61 72 65 74 3b 0a 20 20 20 20 3c 6b 65 |>.caret;. <ke| 00035f90 79 5f 62 6c 6f 63 6b 3e 09 09 6b 65 79 3b 0a 20 |y_block>..key;. | 00035fa0 20 20 20 3c 70 6f 6c 6c 77 6f 72 64 5f 62 6c 6f | <pollword_blo| 00035fb0 63 6b 3e 09 70 6f 6c 6c 77 6f 72 64 3b 0a 20 20 |ck>.pollword;. | 00035fc0 20 20 3c 77 69 6e 64 6f 77 5f 6f 70 65 6e 62 6c | <window_openbl| 00035fd0 6f 63 6b 3e 09 6f 70 65 6e 62 6c 6f 63 6b 3b 0a |ock>.openblock;.| 00035fe0 20 20 20 20 3c 6d 65 73 73 61 67 65 5f 62 6c 6f | <message_blo| 00035ff0 63 6b 3e 09 6d 65 73 73 61 67 65 3b 0a 20 20 20 |ck>.message;. | 00036000 20 3c 6d 6f 75 73 65 5f 62 6c 6f 63 6b 3e 09 6d | <mouse_block>.m| 00036010 6f 75 73 65 3b 0a 20 20 20 20 3c 77 69 6d 70 5f |ouse;. <wimp_| 00036020 62 6f 78 3e 09 09 73 63 72 65 65 6e 72 65 63 74 |box>..screenrect| 00036030 3b 0a 20 20 20 20 69 6e 74 09 09 09 73 65 6c 65 |;. int...sele| 00036040 63 74 69 6f 6e 5b 31 30 5d 3b 0a 20 20 20 20 3c |ction[10];. <| 00036050 73 63 72 6f 6c 6c 5f 72 71 3e 09 09 73 63 72 6f |scroll_rq>..scro| 00036060 6c 6c 3b 0a 20 20 20 20 63 68 61 72 09 09 62 79 |ll;. char..by| 00036070 74 65 73 5b 32 35 36 5d 3b 0a 20 20 20 20 69 6e |tes[256];. in| 00036080 74 09 09 09 77 6f 72 64 73 5b 36 34 5d 3b 0a 20 |t...words[64];. | 00036090 20 7d 00 00 44 41 54 41 dd 00 00 00 65 76 65 6e | }..DATA....even| 000360a0 74 5f 67 65 74 6d 61 73 6b 0a 53 79 6e 74 61 78 |t_getmask.Syntax| 000360b0 3a 09 3c 77 69 6d 70 5f 65 6d 61 73 6b 3e 20 65 |:.<wimp_emask> e| 000360c0 76 65 6e 74 5f 67 65 74 6d 61 73 6b 20 28 76 6f |vent_getmask (vo| 000360d0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 65 76 |id);.Header:.<ev| 000360e0 65 6e 74 2e 68 3d 3e 65 76 65 6e 74 5f 68 3e 0a |ent.h=>event_h>.| 000360f0 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 6d 61 |.Returns:.The ma| 00036100 73 6b 20 63 75 72 72 65 6e 74 6c 79 20 62 65 69 |sk currently bei| 00036110 6e 67 20 75 73 65 64 2e 0a 0a 54 68 69 73 20 66 |ng used...This f| 00036120 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 74 68 65 |unction gets the| 00036130 20 6d 61 73 6b 20 75 73 65 64 20 62 79 20 3c 77 | mask used by <w| 00036140 69 6d 70 5f 70 6f 6c 6c 3e 20 61 6e 64 20 3c 77 |imp_poll> and <w| 00036150 69 6d 70 74 5f 70 6f 6c 6c 3e 20 77 68 65 6e 20 |impt_poll> when | 00036160 70 6f 6c 6c 69 6e 67 20 74 68 65 20 57 69 6d 70 |polling the Wimp| 00036170 2e 00 00 00 44 41 54 41 8d 01 00 00 65 76 65 6e |....DATA....even| 00036180 74 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 |t.h.This header | 00036190 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f |declares functio| 000361a0 6e 73 20 66 6f 72 20 73 79 73 74 65 6d 2d 69 6e |ns for system-in| 000361b0 64 65 70 65 6e 64 65 6e 74 20 63 65 6e 74 72 61 |dependent centra| 000361c0 6c 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 |l processing of | 000361d0 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 20 65 76 |window system ev| 000361e0 65 6e 74 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |ents...Functions| 000361f0 3a 0a 7b 69 6e 64 65 6e 74 20 31 32 7d 0a 3c 65 |:.{indent 12}.<e| 00036200 76 65 6e 74 5f 61 6e 79 77 69 6e 64 6f 77 73 3e |vent_anywindows>| 00036210 0a 3c 65 76 65 6e 74 5f 61 74 74 61 63 68 6d 65 |.<event_attachme| 00036220 6e 75 3e 0a 3c 65 76 65 6e 74 5f 61 74 74 61 63 |nu>.<event_attac| 00036230 68 6d 65 6e 75 6d 61 6b 65 72 3e 0a 3c 65 76 65 |hmenumaker>.<eve| 00036240 6e 74 5f 63 6c 65 61 72 5f 63 75 72 72 65 6e 74 |nt_clear_current| 00036250 5f 6d 65 6e 75 3e 0a 3c 65 76 65 6e 74 5f 67 65 |_menu>.<event_ge| 00036260 74 6d 61 73 6b 3e 0a 3c 65 76 65 6e 74 5f 69 73 |tmask>.<event_is| 00036270 5f 6d 65 6e 75 5f 62 65 69 6e 67 5f 72 65 63 72 |_menu_being_recr| 00036280 65 61 74 65 64 3e 0a 3c 65 76 65 6e 74 5f 70 72 |eated>.<event_pr| 00036290 6f 63 65 73 73 3d 3e 65 76 65 6e 74 5f 70 72 6f |ocess=>event_pro| 000362a0 63 65 73 73 5f 3e 0a 3c 65 76 65 6e 74 5f 73 65 |cess_>.<event_se| 000362b0 74 6d 61 73 6b 3e 0a 7b 69 6e 64 65 6e 74 7d 0a |tmask>.{indent}.| 000362c0 54 79 70 65 73 3a 0a 7b 69 6e 64 65 6e 74 20 31 |Types:.{indent 1| 000362d0 32 7d 0a 3c 65 76 65 6e 74 5f 77 3e 0a 3c 65 76 |2}.<event_w>.<ev| 000362e0 65 6e 74 5f 6d 65 6e 75 5f 70 72 6f 63 3e 0a 3c |ent_menu_proc>.<| 000362f0 65 76 65 6e 74 5f 6d 65 6e 75 5f 6d 61 6b 65 72 |event_menu_maker| 00036300 3e 00 00 00 44 41 54 41 4d 01 00 00 65 76 65 6e |>...DATAM...even| 00036310 74 5f 68 61 6e 64 6c 65 72 0a 54 68 69 73 20 74 |t_handler.This t| 00036320 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 3c |ype is defined <| 00036330 44 65 73 6b 4c 69 62 3a 45 76 65 6e 74 2e 68 3d |DeskLib:Event.h=| 00036340 3e 45 76 65 6e 74 3e 2e 20 49 74 20 69 73 20 61 |>Event>. It is a| 00036350 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 | function which | 00036360 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 70 |may be used to p| 00036370 72 6f 63 65 73 73 20 65 76 65 6e 74 73 20 63 6c |rocess events cl| 00036380 61 69 6d 65 64 20 75 73 69 6e 67 20 3c 45 76 65 |aimed using <Eve| 00036390 6e 74 5f 43 6c 61 69 6d 3e 2e 20 54 68 65 20 66 |nt_Claim>. The f| 000363a0 75 6e 63 74 69 6f 6e 20 68 61 73 20 74 68 65 20 |unction has the | 000363b0 66 6f 72 6d 3a 0a 7b 77 72 61 70 20 6f 66 66 7d |form:.{wrap off}| 000363c0 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 000363d0 6e 74 72 65 7d 3c 42 4f 4f 4c 3e 20 2a 6d 79 66 |ntre}<BOOL> *myf| 000363e0 75 6e 63 20 28 65 76 65 6e 74 5f 70 6f 6c 6c 62 |unc (event_pollb| 000363f0 6c 6f 63 6b 20 2a 2c 20 76 6f 69 64 20 2a 29 3b |lock *, void *);| 00036400 7b 66 3b 61 6c 69 67 6e 7d 0a 7b 77 72 61 70 7d |{f;align}.{wrap}| 00036410 0a 41 6e 64 20 73 68 6f 75 6c 64 20 72 65 74 75 |.And should retu| 00036420 72 6e 20 3c 54 52 55 45 3e 20 69 66 20 69 74 20 |rn <TRUE> if it | 00036430 70 72 6f 63 65 73 73 65 73 20 74 68 65 20 65 76 |processes the ev| 00036440 65 6e 74 20 70 61 73 73 65 64 20 74 6f 20 69 74 |ent passed to it| 00036450 2e 00 00 00 44 41 54 41 15 01 00 00 45 76 65 6e |....DATA....Even| 00036460 74 5f 49 6e 69 74 69 61 6c 69 73 65 0a 53 79 6e |t_Initialise.Syn| 00036470 74 61 78 3a 09 76 6f 69 64 20 45 76 65 6e 74 5f |tax:.void Event_| 00036480 49 6e 69 74 69 61 6c 69 73 65 20 28 63 68 61 72 |Initialise (char| 00036490 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a | *name);.Header:| 000364a0 09 3c 44 65 73 6b 4c 69 62 3a 45 76 65 6e 74 2e |.<DeskLib:Event.| 000364b0 68 3d 3e 45 76 65 6e 74 3e 0a 0a 54 68 69 73 20 |h=>Event>..This | 000364c0 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c |function initial| 000364d0 69 73 65 73 20 74 68 65 20 57 69 6d 70 20 61 6e |ises the Wimp an| 000364e0 64 20 74 68 65 20 45 76 65 6e 74 20 73 79 73 74 |d the Event syst| 000364f0 65 6d 2e 20 2f 6e 61 6d 65 2f 20 73 68 6f 75 6c |em. /name/ shoul| 00036500 64 20 70 6f 69 6e 74 20 74 6f 20 79 6f 75 72 20 |d point to your | 00036510 74 61 73 6b 20 6e 61 6d 65 2e 20 46 6f 72 20 52 |task name. For R| 00036520 49 53 43 20 4f 53 20 33 20 6f 6e 6c 79 20 61 70 |ISC OS 3 only ap| 00036530 70 6c 69 63 61 74 69 6f 6e 73 2c 20 3c 45 76 65 |plications, <Eve| 00036540 6e 74 5f 49 6e 69 74 69 61 6c 69 73 65 33 3e 20 |nt_Initialise3> | 00036550 73 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 |should be called| 00036560 20 69 6e 73 74 65 61 64 2e 00 00 00 44 41 54 41 | instead....DATA| 00036570 32 02 00 00 45 76 65 6e 74 5f 49 6e 69 74 69 61 |2...Event_Initia| 00036580 6c 69 73 65 33 0a 53 79 6e 74 61 78 3a 09 76 6f |lise3.Syntax:.vo| 00036590 69 64 20 45 76 65 6e 74 5f 49 6e 69 74 69 61 6c |id Event_Initial| 000365a0 69 73 65 33 20 28 63 68 61 72 20 2a 6e 61 6d 65 |ise3 (char *name| 000365b0 2c 20 69 6e 74 20 76 65 72 73 69 6f 6e 2c 20 69 |, int version, i| 000365c0 6e 74 20 2a 6d 65 73 73 61 67 65 73 29 3b 0a 48 |nt *messages);.H| 000365d0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000365e0 45 76 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 0a |Event.h=>Event>.| 000365f0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 00036600 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 57 |nitialises the W| 00036610 69 6d 70 20 61 6e 64 20 74 68 65 20 45 76 65 6e |imp and the Even| 00036620 74 20 73 79 73 74 65 6d 2e 20 2f 6e 61 6d 65 2f |t system. /name/| 00036630 20 73 68 6f 75 6c 64 20 70 6f 69 6e 74 20 74 6f | should point to| 00036640 20 79 6f 75 72 20 74 61 73 6b 20 6e 61 6d 65 2c | your task name,| 00036650 20 2f 76 65 72 73 69 6f 6e 2f 20 74 6f 20 74 68 | /version/ to th| 00036660 65 20 57 69 6d 70 20 76 65 72 73 69 6f 6e 20 6e |e Wimp version n| 00036670 75 6d 62 65 72 20 77 61 6e 74 65 64 20 2a 20 31 |umber wanted * 1| 00036680 30 30 2c 20 61 6e 64 20 2f 6d 65 73 73 61 67 65 |00, and /message| 00036690 73 2f 20 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 |s/ to a list of | 000366a0 75 73 65 72 20 6d 65 73 73 61 67 65 20 6e 75 6d |user message num| 000366b0 62 65 72 73 20 74 65 72 6d 69 6e 61 74 65 64 20 |bers terminated | 000366c0 62 79 20 30 2e 20 4f 6e 6c 79 20 74 68 65 73 65 |by 0. Only these| 000366d0 20 6d 65 73 73 61 67 65 73 20 77 69 6c 6c 20 62 | messages will b| 000366e0 65 20 72 65 74 75 72 6e 65 64 20 74 6f 20 79 6f |e returned to yo| 000366f0 75 72 20 74 61 73 6b 2e 20 46 6f 72 20 61 6c 6c |ur task. For all| 00036700 20 76 65 72 73 69 6f 6e 73 20 62 75 74 20 33 30 | versions but 30| 00036710 30 2c 20 6d 65 73 73 61 67 65 73 20 63 61 6e 20 |0, messages can | 00036720 62 65 20 3c 4e 55 4c 4c 3e 2c 20 69 6e 20 77 68 |be <NULL>, in wh| 00036730 69 63 68 20 63 61 73 65 20 79 6f 75 20 77 69 6c |ich case you wil| 00036740 6c 20 72 65 63 65 69 76 65 20 61 6c 6c 20 6d 65 |l receive all me| 00036750 73 73 61 67 65 73 2e 0a 0a 54 68 65 20 66 75 6e |ssages...The fun| 00036760 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 6f 6e 6c |ction should onl| 00036770 79 20 62 65 20 75 73 65 64 20 6f 6e 20 52 49 53 |y be used on RIS| 00036780 43 20 4f 53 20 33 2c 20 77 69 74 68 20 2f 76 65 |C OS 3, with /ve| 00036790 72 73 69 6f 6e 2f 20 3e 3d 20 33 30 30 2e 00 00 |rsion/ >= 300...| 000367a0 44 41 54 41 90 00 00 00 65 76 65 6e 74 5f 69 73 |DATA....event_is| 000367b0 5f 6d 65 6e 75 5f 62 65 69 6e 67 5f 72 65 63 72 |_menu_being_recr| 000367c0 65 61 74 65 64 0a 53 79 6e 74 61 78 3a 09 3c 42 |eated.Syntax:.<B| 000367d0 4f 4f 4c 3e 20 65 76 65 6e 74 5f 69 73 5f 6d 65 |OOL> event_is_me| 000367e0 6e 75 5f 62 65 69 6e 67 5f 72 65 63 72 65 61 74 |nu_being_recreat| 000367f0 65 64 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |ed (void);.Heade| 00036800 72 3a 09 3c 65 76 65 6e 74 2e 68 3d 3e 65 76 65 |r:.<event.h=>eve| 00036810 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |nt_h>..Returns:.| 00036820 3c 54 52 55 45 3e 20 69 66 20 69 74 20 69 73 2e |<TRUE> if it is.| 00036830 44 41 54 41 a5 00 00 00 65 76 65 6e 74 5f 6c 61 |DATA....event_la| 00036840 73 74 65 76 65 6e 74 0a 54 68 69 73 20 76 61 72 |stevent.This var| 00036850 69 61 62 6c 65 20 69 73 20 64 65 66 69 6e 65 64 |iable is defined| 00036860 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 45 76 65 | in <DeskLib:Eve| 00036870 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 2e 20 49 74 |nt.h=>Event>. It| 00036880 20 69 73 20 61 6e 20 3c 65 76 65 6e 74 5f 70 6f | is an <event_po| 00036890 6c 6c 62 6c 6f 63 6b 3e 20 63 6f 6e 74 61 69 6e |llblock> contain| 000368a0 69 6e 67 20 74 68 65 20 6c 61 73 74 20 57 69 6d |ing the last Wim| 000368b0 70 20 65 76 65 6e 74 20 72 65 63 65 69 76 65 64 |p event received| 000368c0 20 62 79 20 74 68 65 20 45 76 65 6e 74 20 73 79 | by the Event sy| 000368d0 73 74 65 6d 2e 00 00 00 44 41 54 41 b1 00 00 00 |stem....DATA....| 000368e0 65 76 65 6e 74 5f 6d 61 73 6b 0a 54 68 69 73 20 |event_mask.This | 000368f0 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 66 69 |variable is defi| 00036900 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 00036910 45 76 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 2e |Event.h=>Event>.| 00036920 20 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 68 | It is used to h| 00036930 6f 6c 64 20 74 68 65 20 6d 61 73 6b 20 77 68 69 |old the mask whi| 00036940 63 68 20 74 68 65 20 45 76 65 6e 74 20 73 79 73 |ch the Event sys| 00036950 74 65 6d 20 75 73 65 64 20 66 6f 72 20 3c 57 69 |tem used for <Wi| 00036960 6d 70 5f 50 6f 6c 6c 3e 2e 20 49 74 20 69 73 20 |mp_Poll>. It is | 00036970 6f 66 20 74 79 70 65 20 3c 65 76 65 6e 74 5f 70 |of type <event_p| 00036980 6f 6c 6c 6d 61 73 6b 3e 2e 00 00 00 44 41 54 41 |ollmask>....DATA| 00036990 28 01 00 00 65 76 65 6e 74 5f 6d 65 6e 75 5f 6d |(...event_menu_m| 000369a0 61 6b 65 72 0a 54 68 69 73 20 74 79 70 65 20 69 |aker.This type i| 000369b0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 65 76 |s defined in <ev| 000369c0 65 6e 74 2e 68 3d 3e 65 76 65 6e 74 5f 68 3e 2e |ent.h=>event_h>.| 000369d0 20 49 74 20 69 73 20 61 20 66 75 6e 63 74 69 6f | It is a functio| 000369e0 6e 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 |n called when th| 000369f0 65 20 75 73 65 72 20 77 61 6e 74 73 20 61 20 6d |e user wants a m| 00036a00 65 6e 75 20 63 72 65 61 74 69 6e 67 2e 20 54 68 |enu creating. Th| 00036a10 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 66 |e function is of| 00036a20 20 74 68 65 20 66 6f 72 6d 3a 0a 7b 77 72 61 70 | the form:.{wrap| 00036a30 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 | off}.{fCode;ali| 00036a40 67 6e 20 63 65 6e 74 72 65 7d 3c 6d 65 6e 75 3e |gn centre}<menu>| 00036a50 20 6d 79 66 75 6e 63 20 28 76 6f 69 64 20 2a 68 | myfunc (void *h| 00036a60 61 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 6e 3b |andle);{f;align;| 00036a70 77 72 61 70 7d 0a 0a 54 68 65 20 66 75 6e 63 74 |wrap}..The funct| 00036a80 69 6f 6e 20 73 68 6f 75 6c 64 20 63 72 65 61 74 |ion should creat| 00036a90 65 20 61 20 6d 65 6e 75 20 61 6e 64 20 72 65 74 |e a menu and ret| 00036aa0 75 72 6e 20 69 74 73 20 6d 65 6e 75 20 68 61 6e |urn its menu han| 00036ab0 64 6c 65 2e 44 41 54 41 68 01 00 00 65 76 65 6e |dle.DATAh...even| 00036ac0 74 5f 6d 65 6e 75 5f 70 72 6f 63 0a 54 68 69 73 |t_menu_proc.This| 00036ad0 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00036ae0 20 69 6e 20 3c 65 76 65 6e 74 2e 68 3d 3e 65 76 | in <event.h=>ev| 00036af0 65 6e 74 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 |ent_h>. It is a | 00036b00 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 |function called | 00036b10 77 68 65 6e 20 74 68 65 20 75 73 65 72 20 73 65 |when the user se| 00036b20 6c 65 63 74 73 20 61 20 6d 65 6e 75 20 65 6e 74 |lects a menu ent| 00036b30 72 79 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e |ry. The function| 00036b40 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a | is of the form:| 00036b50 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f |.{wrap off}.{fCo| 00036b60 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d |de;align centre}| 00036b70 76 6f 69 64 20 6d 79 66 75 6e 63 20 28 76 6f 69 |void myfunc (voi| 00036b80 64 20 2a 68 61 6e 64 6c 65 2c 20 63 68 61 72 20 |d *handle, char | 00036b90 2a 68 69 74 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a |*hit);{f;align}.| 00036ba0 7b 77 72 61 70 7d 0a 2f 68 69 74 2f 20 69 73 20 |{wrap}./hit/ is | 00036bb0 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e |a string contain| 00036bc0 69 6e 67 20 61 20 63 68 61 72 61 63 74 65 72 20 |ing a character | 00036bd0 66 6f 72 20 65 61 63 68 20 6c 65 76 65 6c 20 6f |for each level o| 00036be0 66 20 6e 65 73 74 69 6e 67 20 69 6e 20 61 20 68 |f nesting in a h| 00036bf0 69 65 72 61 72 63 68 69 63 61 6c 20 6d 65 6e 75 |ierarchical menu| 00036c00 20 73 74 72 75 63 74 75 72 65 2c 20 74 65 72 6d | structure, term| 00036c10 69 6e 61 74 65 64 20 62 79 20 30 2e 44 41 54 41 |inated by 0.DATA| 00036c20 17 01 00 00 45 76 65 6e 74 5f 50 6f 6c 6c 0a 53 |....Event_Poll.S| 00036c30 79 6e 74 61 78 3a 09 76 6f 69 64 20 45 76 65 6e |yntax:.void Even| 00036c40 74 5f 50 6f 6c 6c 20 28 76 6f 69 64 29 3b 0a 48 |t_Poll (void);.H| 00036c50 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00036c60 45 76 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 0a |Event.h=>Event>.| 00036c70 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 00036c80 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 |hould be called | 00036c90 72 65 70 65 61 74 65 64 6c 79 20 6f 6e 63 65 20 |repeatedly once | 00036ca0 79 6f 75 72 20 74 61 73 6b 20 69 73 20 66 75 6c |your task is ful| 00036cb0 6c 79 20 69 6e 69 74 69 61 6c 69 73 65 64 2e 20 |ly initialised. | 00036cc0 49 74 20 63 61 6c 6c 73 20 3c 57 69 6d 70 5f 50 |It calls <Wimp_P| 00036cd0 6f 6c 6c 3e 20 61 6e 64 20 74 68 65 6e 20 3c 45 |oll> and then <E| 00036ce0 76 65 6e 74 5f 50 72 6f 63 65 73 73 3e 20 66 6f |vent_Process> fo| 00036cf0 72 20 79 6f 75 2e 20 55 73 65 20 61 73 20 69 6e |r you. Use as in| 00036d00 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |:..{fCode;align | 00036d10 63 65 6e 74 72 65 7d 77 68 69 6c 65 20 28 3c 54 |centre}while (<T| 00036d20 52 55 45 3e 29 20 45 76 65 6e 74 5f 50 6f 6c 6c |RUE>) Event_Poll| 00036d30 28 29 3b 00 44 41 54 41 d3 00 00 00 65 76 65 6e |();.DATA....even| 00036d40 74 5f 70 6f 6c 6c 62 6c 6f 63 6b 0a 54 68 69 73 |t_pollblock.This| 00036d50 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00036d60 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d | in <DeskLib:Wim| 00036d70 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 69 |p.h=>Wimp>. It i| 00036d80 73 20 61 20 73 74 72 75 63 74 75 72 65 20 63 6f |s a structure co| 00036d90 6e 74 61 69 6e 69 6e 67 20 62 6f 74 68 20 74 68 |ntaining both th| 00036da0 65 20 72 65 61 73 6f 6e 20 63 6f 64 65 20 61 6e |e reason code an| 00036db0 64 20 64 61 74 61 20 72 65 74 75 72 6e 65 64 20 |d data returned | 00036dc0 62 79 20 3c 57 69 6d 70 5f 50 6f 6c 6c 3e 2e 0a |by <Wimp_Poll>..| 00036dd0 0a 20 20 5c 7b 0a 20 20 20 20 3c 65 76 65 6e 74 |. \{. <event| 00036de0 5f 74 79 70 65 3e 09 74 79 70 65 3b 0a 20 20 20 |_type>.type;. | 00036df0 20 3c 65 76 65 6e 74 5f 64 61 74 61 3e 09 64 61 | <event_data>.da| 00036e00 74 61 3b 0a 20 20 7d 00 44 41 54 41 89 04 00 00 |ta;. }.DATA....| 00036e10 65 76 65 6e 74 5f 70 6f 6c 6c 6d 61 73 6b 0a 54 |event_pollmask.T| 00036e20 68 69 73 20 69 73 20 61 20 75 6e 69 6f 6e 20 64 |his is a union d| 00036e30 65 66 69 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c |efined by <DeskL| 00036e40 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e |ib:Wimp.h=>Wimp>| 00036e50 20 75 73 65 64 20 66 6f 72 20 6d 61 73 6b 69 6e | used for maskin| 00036e60 67 20 6f 75 74 20 63 65 72 74 61 69 6e 20 72 65 |g out certain re| 00036e70 61 73 6f 6e 20 63 6f 64 65 73 20 77 68 65 6e 20 |ason codes when | 00036e80 63 61 6c 6c 69 6e 67 20 3c 57 69 6d 70 5f 50 6f |calling <Wimp_Po| 00036e90 6c 6c 3e 2e 20 49 74 20 61 6c 6c 6f 77 73 20 61 |ll>. It allows a| 00036ea0 63 63 65 73 73 20 74 6f 20 74 68 65 20 6d 61 73 |ccess to the mas| 00036eb0 6b 20 61 73 20 69 6e 64 69 76 69 64 75 61 6c 20 |k as individual | 00036ec0 62 69 74 73 20 61 6e 64 20 61 73 20 61 20 76 61 |bits and as a va| 00036ed0 6c 75 65 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 75 |lue... \{. u| 00036ee0 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 61 6c 75 |nsigned int valu| 00036ef0 65 3b 0a 20 20 20 20 73 74 72 75 63 74 0a 20 20 |e;. struct. | 00036f00 20 20 5c 7b 0a 20 20 20 20 20 20 75 6e 73 69 67 | \{. unsig| 00036f10 6e 65 64 20 69 6e 74 20 6e 75 6c 6c 09 3a 20 31 |ned int null.: 1| 00036f20 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 00036f30 20 69 6e 74 20 72 65 64 72 61 77 09 3a 20 31 3b | int redraw.: 1;| 00036f40 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00036f50 69 6e 74 20 6f 70 65 6e 09 3a 20 31 3b 0a 20 20 |int open.: 1;. | 00036f60 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00036f70 20 63 6c 6f 73 65 09 3a 20 31 3b 0a 20 20 20 20 | close.: 1;. | 00036f80 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 | unsigned int p| 00036f90 74 72 6c 65 61 76 65 09 3a 20 31 3b 0a 20 20 20 |trleave.: 1;. | 00036fa0 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 00036fb0 70 74 72 65 6e 74 65 72 09 3a 20 31 3b 0a 20 20 |ptrenter.: 1;. | 00036fc0 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00036fd0 20 63 6c 69 63 6b 09 3a 20 31 3b 0a 20 20 20 20 | click.: 1;. | 00036fe0 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 75 | unsigned int u| 00036ff0 73 65 72 64 72 61 67 09 3a 20 31 3b 0a 20 20 20 |serdrag.: 1;. | 00037000 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 00037010 6b 65 79 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |key.: 1;. u| 00037020 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 65 6e 75 |nsigned int menu| 00037030 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 |.: 1;. unsi| 00037040 67 6e 65 64 20 69 6e 74 20 73 63 72 6f 6c 6c 09 |gned int scroll.| 00037050 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 |: 1;. unsig| 00037060 6e 65 64 20 69 6e 74 20 6c 6f 73 65 63 61 72 65 |ned int losecare| 00037070 74 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 |t.: 1;. uns| 00037080 69 67 6e 65 64 20 69 6e 74 20 67 61 69 6e 63 61 |igned int gainca| 00037090 72 65 74 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |ret.: 1;. u| 000370a0 6e 73 69 67 6e 65 64 20 69 6e 74 20 6e 6f 6e 7a |nsigned int nonz| 000370b0 65 72 6f 70 6f 6c 6c 77 6f 72 64 09 3a 20 31 3b |eropollword.: 1;| 000370c0 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 000370d0 69 6e 74 20 64 75 6d 6d 79 31 34 09 3a 20 31 3b |int dummy14.: 1;| 000370e0 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 000370f0 69 6e 74 20 64 75 6d 6d 79 31 35 09 3a 20 31 3b |int dummy15.: 1;| 00037100 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00037110 69 6e 74 20 64 75 6d 6d 79 31 36 09 3a 20 31 3b |int dummy16.: 1;| 00037120 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00037130 69 6e 74 20 75 73 65 72 6d 65 73 73 61 67 65 09 |int usermessage.| 00037140 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 |: 1;. unsig| 00037150 6e 65 64 20 69 6e 74 20 75 73 65 72 6d 65 73 73 |ned int usermess| 00037160 61 67 65 72 65 63 6f 72 64 65 64 09 3a 20 31 3b |agerecorded.: 1;| 00037170 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00037180 69 6e 74 20 75 73 65 72 6d 65 73 73 61 67 65 61 |int usermessagea| 00037190 63 6b 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |ck.: 1;. un| 000371a0 73 69 67 6e 65 64 20 69 6e 74 20 64 75 6d 6d 79 |signed int dummy| 000371b0 32 30 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |20.: 1;. un| 000371c0 73 69 67 6e 65 64 20 69 6e 74 20 64 75 6d 6d 79 |signed int dummy| 000371d0 32 31 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |21.: 1;. un| 000371e0 73 69 67 6e 65 64 20 69 6e 74 20 72 33 69 73 70 |signed int r3isp| 000371f0 6f 6c 6c 77 6f 72 64 70 74 72 09 3a 20 31 3b 0a |ollwordptr.: 1;.| 00037200 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 00037210 6e 74 20 68 69 67 68 70 72 69 6f 72 69 74 79 70 |nt highpriorityp| 00037220 6f 6c 6c 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |oll.: 1;. u| 00037230 6e 73 69 67 6e 65 64 20 69 6e 74 20 6b 65 65 70 |nsigned int keep| 00037240 66 70 72 65 67 69 73 74 65 72 73 09 3a 20 31 3b |fpregisters.: 1;| 00037250 0a 20 20 20 20 7d 20 64 61 74 61 3b 0a 20 20 7d |. } data;. }| 00037260 0a 0a 54 6f 20 6d 61 73 6b 20 6f 75 74 20 61 6e |..To mask out an| 00037270 20 65 76 65 6e 74 20 73 65 74 20 74 68 65 20 63 | event set the c| 00037280 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 62 69 74 |orresponding bit| 00037290 2e 00 00 00 44 41 54 41 8f 01 00 00 45 76 65 6e |....DATA....Even| 000372a0 74 5f 50 72 6f 63 65 73 73 0a 53 79 6e 74 61 78 |t_Process.Syntax| 000372b0 3a 09 76 6f 69 64 20 45 76 65 6e 74 5f 50 72 6f |:.void Event_Pro| 000372c0 63 65 73 73 20 28 3c 65 76 65 6e 74 5f 70 6f 6c |cess (<event_pol| 000372d0 6c 62 6c 6f 63 6b 3e 20 2a 65 76 65 6e 74 29 3b |lblock> *event);| 000372e0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000372f0 62 3a 45 76 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 |b:Event.h=>Event| 00037300 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00037310 20 70 72 6f 63 65 73 73 65 73 20 61 6e 20 65 76 | processes an ev| 00037320 65 6e 74 2c 20 77 68 6f 73 65 20 64 61 74 61 20 |ent, whose data | 00037330 69 73 20 69 6e 20 2f 65 76 65 6e 74 2f 2e 20 49 |is in /event/. I| 00037340 74 20 6f 66 66 65 72 73 20 69 6e 20 74 75 72 6e |t offers in turn| 00037350 20 74 6f 20 74 68 65 20 68 61 6e 64 6c 65 72 73 | to the handlers| 00037360 20 63 75 72 72 65 6e 74 6c 79 20 61 74 74 61 63 | currently attac| 00037370 68 65 64 2c 20 75 6e 74 69 6c 20 6f 6e 65 20 6f |hed, until one o| 00037380 66 20 74 68 65 6d 20 72 65 74 75 72 6e 73 20 3c |f them returns <| 00037390 54 52 55 45 3e 2e 20 4e 6f 74 65 20 74 68 61 74 |TRUE>. Note that| 000373a0 20 3c 45 76 65 6e 74 5f 50 6f 6c 6c 3e 20 63 61 | <Event_Poll> ca| 000373b0 6c 6c 73 20 3c 57 69 6d 70 5f 50 6f 6c 6c 3e 20 |lls <Wimp_Poll> | 000373c0 61 6e 64 20 45 76 65 6e 74 5f 50 72 6f 63 65 73 |and Event_Proces| 000373d0 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e |s automatically.| 000373e0 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68 65 20 44 |..See also the D| 000373f0 65 73 6b 74 6f 70 20 43 20 66 75 6e 63 74 69 6f |esktop C functio| 00037400 6e 2c 20 3c 65 76 65 6e 74 5f 70 72 6f 63 65 73 |n, <event_proces| 00037410 73 3d 3e 65 76 65 6e 74 5f 70 72 6f 63 65 73 73 |s=>event_process| 00037420 5f 3e 2e 00 44 41 54 41 3b 01 00 00 65 76 65 6e |_>..DATA;...even| 00037430 74 5f 70 72 6f 63 65 73 73 0a 53 79 6e 74 61 78 |t_process.Syntax| 00037440 3a 09 76 6f 69 64 20 65 76 65 6e 74 5f 70 72 6f |:.void event_pro| 00037450 63 65 73 73 20 28 76 6f 69 64 29 3b 0a 48 65 61 |cess (void);.Hea| 00037460 64 65 72 3a 09 3c 65 76 65 6e 74 2e 68 3d 3e 65 |der:.<event.h=>e| 00037470 76 65 6e 74 5f 68 3e 0a 0a 54 68 69 73 20 66 75 |vent_h>..This fu| 00037480 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 65 73 |nction processes| 00037490 20 6f 6e 65 20 65 76 65 6e 74 2e 20 49 66 20 74 | one event. If t| 000374a0 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 75 72 |he number of cur| 000374b0 72 65 6e 74 20 61 63 74 69 76 65 20 77 69 6e 64 |rent active wind| 000374c0 6f 77 73 20 69 73 20 30 20 74 68 65 6e 20 74 68 |ows is 0 then th| 000374d0 65 20 70 72 6f 67 72 61 6d 20 65 78 69 74 73 2e |e program exits.| 000374e0 20 4f 6e 65 20 65 76 65 6e 74 20 69 73 20 70 6f | One event is po| 000374f0 6c 6c 65 64 20 61 6e 64 20 70 72 6f 63 65 73 73 |lled and process| 00037500 65 64 20 28 69 65 20 70 61 73 73 65 64 20 6f 6e |ed (ie passed on| 00037510 20 74 6f 20 74 68 65 20 3c 77 69 6e 3e 20 6d 6f | to the <win> mo| 00037520 64 75 6c 65 29 2e 20 54 79 70 69 63 61 6c 6c 79 |dule). Typically| 00037530 20 74 68 69 73 20 69 73 20 63 61 6c 6c 65 64 20 | this is called | 00037540 69 6e 20 61 20 6c 6f 6f 70 20 69 6e 20 74 68 65 |in a loop in the| 00037550 20 6d 61 69 6e 20 66 75 6e 63 74 69 6f 6e 2e 00 | main function..| 00037560 44 41 54 41 48 01 00 00 45 76 65 6e 74 5f 52 65 |DATAH...Event_Re| 00037570 6c 65 61 73 65 0a 53 79 6e 74 61 78 3a 09 3c 42 |lease.Syntax:.<B| 00037580 4f 4f 4c 3e 20 45 76 65 6e 74 5f 52 65 6c 65 61 |OOL> Event_Relea| 00037590 73 65 20 28 3c 65 76 65 6e 74 5f 74 79 70 65 3e |se (<event_type>| 000375a0 20 74 79 70 65 2c 20 3c 77 69 6e 64 6f 77 5f 68 | type, <window_h| 000375b0 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f |andle> win, <ico| 000375c0 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 |n_handle> icon, | 000375d0 3c 65 76 65 6e 74 5f 68 61 6e 64 6c 65 72 3e 20 |<event_handler> | 000375e0 68 61 6e 64 6c 65 72 2c 20 76 6f 69 64 20 2a 72 |handler, void *r| 000375f0 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |ef);.Header:.<De| 00037600 73 6b 4c 69 62 3a 45 76 65 6e 74 2e 68 3d 3e 45 |skLib:Event.h=>E| 00037610 76 65 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |vent>..Returns:.| 00037620 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 |<TRUE> if succes| 00037630 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |sful...This func| 00037640 74 69 6f 6e 20 72 65 6c 65 61 73 65 73 20 61 6e |tion releases an| 00037650 20 65 76 65 6e 74 20 68 61 6e 64 6c 65 72 2e 20 | event handler. | 00037660 59 6f 75 20 73 68 6f 75 6c 64 20 63 61 6c 6c 20 |You should call | 00037670 74 68 69 73 20 77 69 74 68 20 74 68 65 20 73 61 |this with the sa| 00037680 6d 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 73 |me parameters as| 00037690 20 75 73 65 64 20 66 6f 72 20 3c 45 76 65 6e 74 | used for <Event| 000376a0 5f 43 6c 61 69 6d 3e 2e 44 41 54 41 f1 00 00 00 |_Claim>.DATA....| 000376b0 45 76 65 6e 74 5f 52 65 6c 65 61 73 65 57 69 6e |Event_ReleaseWin| 000376c0 64 6f 77 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |dow.Syntax:.void| 000376d0 20 45 76 65 6e 74 5f 52 65 6c 65 61 73 65 57 69 | Event_ReleaseWi| 000376e0 6e 64 6f 77 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |ndow (<window_ha| 000376f0 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a 48 65 61 64 |ndle> win);.Head| 00037700 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 45 76 65 |er:.<DeskLib:Eve| 00037710 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 0a 0a 54 68 |nt.h=>Event>..Th| 00037720 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 65 |is function rele| 00037730 61 73 65 73 20 61 6c 6c 20 68 61 6e 64 6c 65 72 |ases all handler| 00037740 73 20 61 74 74 61 63 68 65 64 20 74 6f 20 61 20 |s attached to a | 00037750 73 70 65 63 69 66 69 63 20 77 69 6e 64 6f 77 2e |specific window.| 00037760 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 | Note that this | 00037770 69 73 20 64 6f 6e 65 20 61 75 74 6f 6d 61 74 69 |is done automati| 00037780 63 61 6c 6c 79 20 62 79 20 3c 57 69 6e 64 6f 77 |cally by <Window| 00037790 5f 44 65 6c 65 74 65 3e 2e 00 00 00 44 41 54 41 |_Delete>....DATA| 000377a0 e4 00 00 00 65 76 65 6e 74 5f 73 65 74 6d 61 73 |....event_setmas| 000377b0 6b 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 65 |k.Syntax:.void e| 000377c0 76 65 6e 74 5f 73 65 74 6d 61 73 6b 20 28 3c 77 |vent_setmask (<w| 000377d0 69 6d 70 5f 65 6d 61 73 6b 3e 20 6d 61 73 6b 29 |imp_emask> mask)| 000377e0 3b 0a 48 65 61 64 65 72 3a 09 3c 65 76 65 6e 74 |;.Header:.<event| 000377f0 2e 68 3d 3e 65 76 65 6e 74 5f 68 3e 0a 0a 54 68 |.h=>event_h>..Th| 00037800 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 00037810 20 74 68 65 20 6d 61 73 6b 20 75 73 65 64 20 62 | the mask used b| 00037820 79 20 3c 77 69 6d 70 5f 70 6f 6c 6c 3e 20 61 6e |y <wimp_poll> an| 00037830 64 20 3c 77 69 6d 70 74 5f 70 6f 6c 6c 3e 20 77 |d <wimpt_poll> w| 00037840 68 65 6e 20 70 6f 6c 6c 69 6e 67 20 74 68 65 20 |hen polling the | 00037850 57 69 6d 70 2e 20 54 68 65 20 64 65 66 61 75 6c |Wimp. The defaul| 00037860 74 20 69 73 20 74 6f 20 69 67 6e 6f 72 65 20 6e |t is to ignore n| 00037870 75 6c 6c 20 65 76 65 6e 74 73 20 6f 6e 6c 79 2e |ull events only.| 00037880 44 41 54 41 7d 00 00 00 65 76 65 6e 74 5f 74 61 |DATA}...event_ta| 00037890 73 6b 6e 61 6d 65 0a 54 68 69 73 20 76 61 72 69 |skname.This vari| 000378a0 61 62 6c 65 20 69 73 20 64 65 66 69 6e 65 64 20 |able is defined | 000378b0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 45 76 65 6e |in <DeskLib:Even| 000378c0 74 2e 68 3d 3e 45 76 65 6e 74 3e 2e 20 49 74 20 |t.h=>Event>. It | 000378d0 69 73 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 |is a string cont| 000378e0 61 69 6e 69 6e 67 20 79 6f 75 72 20 61 70 70 6c |aining your appl| 000378f0 69 63 61 74 69 6f 6e 20 6e 61 6d 65 2e 00 00 00 |ication name....| 00037900 44 41 54 41 d7 02 00 00 65 76 65 6e 74 5f 74 79 |DATA....event_ty| 00037910 70 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |pe.This type is | 00037920 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 00037930 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 |Lib:Wimp.h=>Wimp| 00037940 3e 2e 20 49 74 20 69 73 20 61 6e 20 65 6e 75 6d |>. It is an enum| 00037950 65 72 61 74 65 64 20 74 79 70 65 20 67 69 76 69 |erated type givi| 00037960 6e 67 20 74 68 65 20 72 65 61 73 6f 6e 20 63 6f |ng the reason co| 00037970 64 65 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 |des returned by | 00037980 3c 57 69 6d 70 5f 50 6f 6c 6c 3e 2e 0a 0a 20 20 |<Wimp_Poll>... | 00037990 5c 7b 0a 20 20 20 20 65 76 65 6e 74 5f 41 4e 59 |\{. event_ANY| 000379a0 09 3d 20 2d 39 39 2c 20 20 0a 20 20 20 20 65 76 |.= -99, . ev| 000379b0 65 6e 74 5f 4e 55 4c 4c 09 3d 20 30 2c 0a 20 20 |ent_NULL.= 0,. | 000379c0 20 20 65 76 65 6e 74 5f 52 45 44 52 41 57 2c 0a | event_REDRAW,.| 000379d0 20 20 20 20 65 76 65 6e 74 5f 4f 50 45 4e 2c 0a | event_OPEN,.| 000379e0 20 20 20 20 65 76 65 6e 74 5f 43 4c 4f 53 45 2c | event_CLOSE,| 000379f0 0a 20 20 20 20 65 76 65 6e 74 5f 50 54 52 4c 45 |. event_PTRLE| 00037a00 41 56 45 2c 0a 20 20 20 20 65 76 65 6e 74 5f 50 |AVE,. event_P| 00037a10 54 52 45 4e 54 45 52 2c 0a 20 20 20 20 65 76 65 |TRENTER,. eve| 00037a20 6e 74 5f 43 4c 49 43 4b 09 3d 20 36 2c 0a 20 20 |nt_CLICK.= 6,. | 00037a30 20 20 65 76 65 6e 74 5f 42 55 54 54 4f 4e 09 3d | event_BUTTON.=| 00037a40 20 36 2c 0a 20 20 20 20 65 76 65 6e 74 5f 55 53 | 6,. event_US| 00037a50 45 52 44 52 41 47 2c 0a 20 20 20 20 65 76 65 6e |ERDRAG,. even| 00037a60 74 5f 4b 45 59 2c 0a 20 20 20 20 65 76 65 6e 74 |t_KEY,. event| 00037a70 5f 4d 45 4e 55 2c 0a 20 20 20 20 65 76 65 6e 74 |_MENU,. event| 00037a80 5f 53 43 52 4f 4c 4c 2c 0a 20 20 20 20 65 76 65 |_SCROLL,. eve| 00037a90 6e 74 5f 4c 4f 53 45 43 41 52 45 54 2c 0a 20 20 |nt_LOSECARET,. | 00037aa0 20 20 65 76 65 6e 74 5f 47 41 49 4e 43 41 52 45 | event_GAINCARE| 00037ab0 54 2c 0a 20 20 20 20 65 76 65 6e 74 5f 4e 4f 4e |T,. event_NON| 00037ac0 5a 45 52 4f 50 4f 4c 4c 57 4f 52 44 2c 0a 20 20 |ZEROPOLLWORD,. | 00037ad0 20 20 65 76 65 6e 74 5f 55 53 45 52 4d 45 53 53 | event_USERMESS| 00037ae0 41 47 45 09 3d 20 31 37 2c 0a 20 20 20 20 65 76 |AGE.= 17,. ev| 00037af0 65 6e 74 5f 53 45 4e 44 09 3d 20 31 37 2c 0a 20 |ent_SEND.= 17,. | 00037b00 20 20 20 65 76 65 6e 74 5f 55 53 45 52 4d 45 53 | event_USERMES| 00037b10 53 41 47 45 52 45 43 4f 52 44 45 44 09 3d 20 31 |SAGERECORDED.= 1| 00037b20 38 2c 0a 20 20 20 20 65 76 65 6e 74 5f 53 45 4e |8,. event_SEN| 00037b30 44 57 41 4e 54 41 43 4b 09 3d 20 31 38 2c 0a 20 |DWANTACK.= 18,. | 00037b40 20 20 20 65 76 65 6e 74 5f 55 53 45 52 4d 45 53 | event_USERMES| 00037b50 53 41 47 45 41 43 4b 09 3d 20 31 39 2c 0a 20 20 |SAGEACK.= 19,. | 00037b60 20 20 65 76 65 6e 74 5f 41 43 4b 09 3d 20 31 39 | event_ACK.= 19| 00037b70 0a 20 20 7d 0a 0a 7b 2a 7d 65 76 65 6e 74 5f 41 |. }..{*}event_A| 00037b80 4e 59 7b 2a 7d 20 69 73 20 75 73 65 64 20 62 79 |NY{*} is used by| 00037b90 20 73 6f 6d 65 20 44 65 73 6b 4c 69 62 20 66 75 | some DeskLib fu| 00037ba0 6e 63 74 69 6f 6e 73 20 74 6f 20 69 6e 64 69 63 |nctions to indic| 00037bb0 61 74 65 20 6d 61 74 63 68 69 6e 67 20 61 6e 79 |ate matching any| 00037bc0 20 65 76 65 6e 74 2f 77 69 6e 64 6f 77 2f 69 63 | event/window/ic| 00037bd0 6f 6e 20 65 74 63 2e 00 44 41 54 41 7f 00 00 00 |on etc..DATA....| 00037be0 65 76 65 6e 74 5f 77 0a 54 68 69 73 20 74 79 70 |event_w.This typ| 00037bf0 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 00037c00 3c 65 76 65 6e 74 2e 68 3d 3e 65 76 65 6e 74 5f |<event.h=>event_| 00037c10 68 3e 2e 20 49 74 20 69 73 20 61 20 74 79 70 65 |h>. It is a type| 00037c20 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 77 69 | containing a wi| 00037c30 6e 64 6f 77 20 68 61 6e 64 6c 65 20 61 6e 64 20 |ndow handle and | 00037c40 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 6e |is defined as an| 00037c50 20 2f 69 6e 74 2f 2e 00 44 41 54 41 a6 00 00 00 | /int/..DATA....| 00037c60 65 76 65 6e 74 5f 77 69 6d 70 76 65 72 73 69 6f |event_wimpversio| 00037c70 6e 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 |n.This variable | 00037c80 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 00037c90 65 73 6b 4c 69 62 3a 45 76 65 6e 74 2e 68 3d 3e |eskLib:Event.h=>| 00037ca0 45 76 65 6e 74 3e 2e 20 49 74 20 69 73 20 75 73 |Event>. It is us| 00037cb0 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 63 |ed to hold the c| 00037cc0 75 72 72 65 6e 74 20 57 69 6d 70 20 76 65 72 73 |urrent Wimp vers| 00037cd0 69 6f 6e 20 6d 75 6c 74 69 70 6c 69 65 64 20 62 |ion multiplied b| 00037ce0 79 20 31 30 30 20 65 67 20 33 31 31 20 66 6f 72 |y 100 eg 311 for| 00037cf0 20 52 49 53 43 20 4f 53 20 33 2e 31 31 2e 00 00 | RISC OS 3.11...| 00037d00 44 41 54 41 86 00 00 00 65 76 65 6e 74 5f 74 61 |DATA....event_ta| 00037d10 73 6b 68 61 6e 64 6c 65 0a 54 68 69 73 20 76 61 |skhandle.This va| 00037d20 72 69 61 62 6c 65 20 69 73 20 64 65 66 69 6e 65 |riable is define| 00037d30 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 45 76 |d in <DeskLib:Ev| 00037d40 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 2e 20 49 |ent.h=>Event>. I| 00037d50 74 0a 69 73 20 75 73 65 64 20 74 6f 20 68 6f 6c |t.is used to hol| 00037d60 64 20 74 68 65 20 74 61 73 6b 20 68 61 6e 64 6c |d the task handl| 00037d70 65 20 6f 66 20 79 6f 75 72 0a 61 70 70 6c 69 63 |e of your.applic| 00037d80 61 74 69 6f 6e 2e 00 00 44 41 54 41 7d 01 00 00 |ation...DATA}...| 00037d90 44 65 73 6b 4c 69 62 3a 45 76 65 6e 74 4d 73 67 |DeskLib:EventMsg| 00037da0 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 30 |.h.Version: 1.00| 00037db0 20 28 31 36 20 4d 61 72 20 31 39 39 32 29 0a 23 | (16 Mar 1992).#| 00037dc0 6c 69 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 |line.This header| 00037dd0 20 69 73 20 61 6e 20 61 64 64 2d 6f 6e 20 66 6f | is an add-on fo| 00037de0 72 20 3c 44 65 73 6b 4c 69 62 3a 45 76 65 6e 74 |r <DeskLib:Event| 00037df0 2e 68 3d 3e 45 76 65 6e 74 3e 2e 20 49 74 20 61 |.h=>Event>. It a| 00037e00 64 64 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f |dds functions to| 00037e10 20 70 72 6f 76 69 64 65 20 61 20 62 65 74 74 65 | provide a bette| 00037e20 72 20 77 61 79 20 6f 66 20 68 61 6e 64 6c 69 6e |r way of handlin| 00037e30 67 20 3c 55 73 65 72 20 4d 65 73 73 61 67 65 73 |g <User Messages| 00037e40 3d 3e 53 57 49 3a 77 69 6d 70 5f 73 65 6e 64 6d |=>SWI:wimp_sendm| 00037e50 65 73 73 61 67 65 2e 31 3e 20 28 72 65 61 73 6f |essage.1> (reaso| 00037e60 6e 20 63 6f 64 65 73 20 31 37 2d 31 39 29 2e 0a |n codes 17-19)..| 00037e70 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 74 61 |.Functions:..#ta| 00037e80 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 45 |ble columns 2.<E| 00037e90 76 65 6e 74 4d 73 67 5f 49 6e 69 74 69 61 6c 69 |ventMsg_Initiali| 00037ea0 73 65 3e 0a 3c 45 76 65 6e 74 4d 73 67 5f 43 6c |se>.<EventMsg_Cl| 00037eb0 61 69 6d 3e 0a 3c 45 76 65 6e 74 4d 73 67 5f 52 |aim>.<EventMsg_R| 00037ec0 65 6c 65 61 73 65 3e 0a 3c 45 76 65 6e 74 4d 73 |elease>.<EventMs| 00037ed0 67 5f 52 65 6c 65 61 73 65 57 69 6e 64 6f 77 20 |g_ReleaseWindow | 00037ee0 3e 0a 3c 45 76 65 6e 74 4d 73 67 5f 52 65 6c 65 |>.<EventMsg_Rele| 00037ef0 61 73 65 4d 65 73 73 61 67 65 3e 0a 23 65 6e 64 |aseMessage>.#end| 00037f00 74 61 62 6c 65 00 00 00 44 49 52 24 c0 00 00 00 |table...DIR$....| 00037f10 c0 00 00 00 c8 7f 03 00 46 ff ff ff dc 36 25 25 |........F....6%%| 00037f20 29 02 00 00 13 00 00 00 00 00 00 00 43 6c 61 69 |)...........Clai| 00037f30 6d 00 00 00 f4 81 03 00 46 ff ff ff 0e 27 25 25 |m.......F....'%%| 00037f40 9b 00 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |............Init| 00037f50 69 61 6c 69 73 65 00 00 90 82 03 00 46 ff ff ff |ialise......F...| 00037f60 23 4c 25 25 9b 01 00 00 13 00 00 00 00 00 00 00 |#L%%............| 00037f70 52 65 6c 65 61 73 65 00 2c 84 03 00 46 ff ff ff |Release.,...F...| 00037f80 74 5e 25 25 19 01 00 00 13 00 00 00 00 00 00 00 |t^%%............| 00037f90 52 65 6c 65 61 73 65 4d 65 73 73 61 67 65 00 00 |ReleaseMessage..| 00037fa0 48 85 03 00 46 ff ff ff 1a 56 25 25 12 01 00 00 |H...F....V%%....| 00037fb0 13 00 00 00 00 00 00 00 52 65 6c 65 61 73 65 57 |........ReleaseW| 00037fc0 69 6e 64 6f 77 00 00 00 44 41 54 41 29 02 00 00 |indow...DATA)...| 00037fd0 45 76 65 6e 74 4d 73 67 5f 43 6c 61 69 6d 0a 53 |EventMsg_Claim.S| 00037fe0 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 45 76 |yntax:.<BOOL> Ev| 00037ff0 65 6e 74 4d 73 67 5f 43 6c 61 69 6d 20 28 3c 6d |entMsg_Claim (<m| 00038000 65 73 73 61 67 65 5f 61 63 74 69 6f 6e 3e 20 74 |essage_action> t| 00038010 79 70 65 2c 20 3c 77 69 6e 64 6f 77 5f 68 61 6e |ype, <window_han| 00038020 64 6c 65 3e 20 77 69 6e 2c 20 3c 65 76 65 6e 74 |dle> win, <event| 00038030 5f 68 61 6e 64 6c 65 72 3e 20 68 61 6e 64 6c 65 |_handler> handle| 00038040 72 2c 20 76 6f 69 64 20 2a 72 65 66 29 3b 0a 48 |r, void *ref);.H| 00038050 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00038060 45 76 65 6e 74 4d 73 67 2e 68 3d 3e 45 76 65 6e |EventMsg.h=>Even| 00038070 74 4d 73 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tMsg>..Returns:.| 00038080 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 |<TRUE> if succes| 00038090 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |sful...This func| 000380a0 74 69 6f 6e 20 61 74 74 61 63 68 65 73 20 61 6e |tion attaches an| 000380b0 20 6d 65 73 73 61 67 65 20 68 61 6e 64 6c 65 72 | message handler| 000380c0 20 74 6f 20 61 20 70 61 72 74 69 63 75 6c 61 72 | to a particular| 000380d0 20 6d 65 73 73 61 67 65 20 2f 74 79 70 65 2f 20 | message /type/ | 000380e0 61 6e 64 20 77 69 6e 64 6f 77 20 2f 77 69 6e 2f |and window /win/| 000380f0 2e 20 45 69 74 68 65 72 20 6f 66 20 74 68 65 73 |. Either of thes| 00038100 65 20 63 61 6e 20 62 65 20 7b 2a 7d 65 76 65 6e |e can be {*}even| 00038110 74 5f 41 4e 59 7b 2a 7d 20 74 6f 20 62 65 20 6e |t_ANY{*} to be n| 00038120 6f 6e 2d 20 73 70 65 63 69 66 69 63 2e 20 2f 68 |on- specific. /h| 00038130 61 6e 64 6c 65 72 2f 20 69 73 20 79 6f 75 72 20 |andler/ is your | 00038140 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e |handler function| 00038150 2c 20 2f 72 65 66 2f 20 69 73 20 70 61 73 73 65 |, /ref/ is passe| 00038160 64 20 64 69 72 65 63 74 20 74 6f 20 74 68 65 20 |d direct to the | 00038170 68 61 6e 64 6c 65 72 20 69 66 20 69 74 20 69 73 |handler if it is| 00038180 20 63 61 6c 6c 65 64 20 61 6e 64 20 63 61 6e 20 | called and can | 00038190 62 65 20 61 6e 79 74 68 69 6e 67 20 79 6f 75 20 |be anything you | 000381a0 6c 69 6b 65 2e 0a 0a 45 76 65 6e 73 20 61 72 65 |like...Evens are| 000381b0 20 70 72 69 6f 72 69 74 69 73 65 64 2c 20 77 69 | prioritised, wi| 000381c0 74 68 20 74 68 6f 73 65 20 66 6f 72 20 73 70 65 |th those for spe| 000381d0 63 69 66 69 63 20 77 69 6e 64 6f 77 73 20 62 65 |cific windows be| 000381e0 69 6e 67 20 63 61 6c 6c 65 64 20 66 69 72 73 74 |ing called first| 000381f0 2e 00 00 00 44 41 54 41 9b 00 00 00 45 76 65 6e |....DATA....Even| 00038200 74 4d 73 67 5f 49 6e 69 74 69 61 6c 69 73 65 0a |tMsg_Initialise.| 00038210 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 45 76 65 |Syntax:.void Eve| 00038220 6e 74 4d 73 67 5f 49 6e 69 74 69 61 6c 69 73 65 |ntMsg_Initialise| 00038230 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 00038240 09 3c 44 65 73 6b 4c 69 62 3a 45 76 65 6e 74 4d |.<DeskLib:EventM| 00038250 73 67 2e 68 3d 3e 45 76 65 6e 74 4d 73 67 3e 0a |sg.h=>EventMsg>.| 00038260 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 00038270 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 45 |nitialises the E| 00038280 76 65 6e 74 4d 73 67 20 73 79 73 74 65 6d 2e 00 |ventMsg system..| 00038290 44 41 54 41 9b 01 00 00 45 76 65 6e 74 4d 73 67 |DATA....EventMsg| 000382a0 5f 52 65 6c 65 61 73 65 0a 53 79 6e 74 61 78 3a |_Release.Syntax:| 000382b0 09 3c 42 4f 4f 4c 3e 20 45 76 65 6e 74 4d 73 67 |.<BOOL> EventMsg| 000382c0 5f 52 65 6c 65 61 73 65 20 28 3c 6d 65 73 73 61 |_Release (<messa| 000382d0 67 65 5f 61 63 74 69 6f 6e 3e 20 74 79 70 65 2c |ge_action> type,| 000382e0 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e | <window_handle>| 000382f0 20 77 69 6e 2c 20 3c 65 76 65 6e 74 5f 68 61 6e | win, <event_han| 00038300 64 6c 65 72 3e 20 68 61 6e 64 6c 65 72 29 3b 0a |dler> handler);.| 00038310 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00038320 3a 45 76 65 6e 74 4d 73 67 2e 68 3d 3e 45 76 65 |:EventMsg.h=>Eve| 00038330 6e 74 4d 73 67 3e 0a 0a 52 65 74 75 72 6e 73 3a |ntMsg>..Returns:| 00038340 09 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 |.<TRUE> if succe| 00038350 73 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e |ssful...This fun| 00038360 63 74 69 6f 6e 20 72 65 6c 65 61 73 65 73 20 61 |ction releases a| 00038370 20 6d 65 73 73 61 67 65 20 68 61 6e 64 6c 65 72 | message handler| 00038380 2e 20 49 66 20 2f 74 79 70 65 2f 20 69 73 20 7b |. If /type/ is {| 00038390 2a 7d 65 76 65 6e 74 5f 41 4e 59 7b 2a 7d 20 74 |*}event_ANY{*} t| 000383a0 68 65 6e 20 6f 6e 6c 79 20 6e 6f 6e 2d 6d 65 73 |hen only non-mes| 000383b0 73 61 67 65 2d 73 70 65 63 69 66 69 63 20 68 61 |sage-specific ha| 000383c0 6e 64 6c 65 72 73 20 6d 61 79 20 62 65 20 72 65 |ndlers may be re| 000383d0 6c 65 61 73 65 64 2e 20 49 66 20 2f 77 69 6e 2f |leased. If /win/| 000383e0 20 69 73 20 7b 2a 7d 65 76 65 6e 74 5f 41 4e 59 | is {*}event_ANY| 000383f0 7b 2a 7d 20 74 68 65 6e 20 6f 6e 6c 79 20 6e 6f |{*} then only no| 00038400 6e 2d 77 69 6e 64 6f 77 2d 73 70 65 63 69 66 69 |n-window-specifi| 00038410 63 20 68 61 6e 64 6c 65 72 73 20 6d 61 79 20 62 |c handlers may b| 00038420 65 20 72 65 6c 65 61 73 65 64 2e 00 44 41 54 41 |e released..DATA| 00038430 19 01 00 00 45 76 65 6e 74 4d 73 67 5f 52 65 6c |....EventMsg_Rel| 00038440 65 61 73 65 4d 65 73 73 61 67 65 0a 53 79 6e 74 |easeMessage.Synt| 00038450 61 78 3a 09 69 6e 74 20 45 76 65 6e 74 4d 73 67 |ax:.int EventMsg| 00038460 5f 52 65 6c 65 61 73 65 4d 65 73 73 61 67 65 20 |_ReleaseMessage | 00038470 28 3c 6d 65 73 73 61 67 65 5f 61 63 74 69 6f 6e |(<message_action| 00038480 3e 20 74 79 70 65 29 3b 0a 48 65 61 64 65 72 3a |> type);.Header:| 00038490 09 3c 44 65 73 6b 4c 69 62 3a 45 76 65 6e 74 4d |.<DeskLib:EventM| 000384a0 73 67 2e 68 3d 3e 45 76 65 6e 74 4d 73 67 3e 0a |sg.h=>EventMsg>.| 000384b0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000384c0 65 6c 65 61 73 65 73 20 61 6c 6c 20 6d 65 73 73 |eleases all mess| 000384d0 61 67 65 20 68 61 6e 64 6c 65 72 73 20 66 6f 72 |age handlers for| 000384e0 20 74 68 65 20 67 69 76 65 6e 20 6d 65 73 73 61 | the given messa| 000384f0 67 65 2e 20 49 66 20 2f 74 79 70 65 2f 20 69 73 |ge. If /type/ is| 00038500 20 7b 2a 7d 65 76 65 6e 74 5f 41 4e 59 7b 2a 7d | {*}event_ANY{*}| 00038510 20 74 68 65 6e 20 61 6c 6c 20 6e 6f 6e 2d 6d 65 | then all non-me| 00038520 73 73 61 67 65 2d 73 70 65 63 69 66 69 63 20 68 |ssage-specific h| 00038530 61 6e 64 6c 65 72 73 20 61 72 65 20 72 65 6c 65 |andlers are rele| 00038540 61 73 65 64 2e 00 00 00 44 41 54 41 12 01 00 00 |ased....DATA....| 00038550 45 76 65 6e 74 4d 73 67 5f 52 65 6c 65 61 73 65 |EventMsg_Release| 00038560 57 69 6e 64 6f 77 0a 53 79 6e 74 61 78 3a 09 69 |Window.Syntax:.i| 00038570 6e 74 20 45 76 65 6e 74 4d 73 67 5f 52 65 6c 65 |nt EventMsg_Rele| 00038580 61 73 65 57 69 6e 64 6f 77 20 28 3c 77 69 6e 64 |aseWindow (<wind| 00038590 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 29 3b |ow_handle> win);| 000385a0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000385b0 62 3a 45 76 65 6e 74 4d 73 67 2e 68 3d 3e 45 76 |b:EventMsg.h=>Ev| 000385c0 65 6e 74 4d 73 67 3e 0a 0a 54 68 69 73 20 66 75 |entMsg>..This fu| 000385d0 6e 63 74 69 6f 6e 20 72 65 6c 65 61 73 65 73 20 |nction releases | 000385e0 61 6c 6c 20 6d 65 73 73 61 67 65 20 68 61 6e 64 |all message hand| 000385f0 6c 65 72 73 20 66 6f 72 20 74 68 65 20 67 69 76 |lers for the giv| 00038600 65 6e 20 77 69 6e 64 6f 77 2e 20 49 66 20 2f 77 |en window. If /w| 00038610 69 6e 2f 20 69 73 20 7b 2a 7d 65 76 65 6e 74 5f |in/ is {*}event_| 00038620 41 4e 59 7b 2a 7d 20 74 68 65 6e 20 61 6c 6c 20 |ANY{*} then all | 00038630 6e 6f 6e 2d 77 69 6e 64 6f 77 2d 73 70 65 63 69 |non-window-speci| 00038640 66 69 63 20 68 61 6e 64 6c 65 72 73 20 61 72 65 |fic handlers are| 00038650 20 72 65 6c 65 61 73 65 64 2e 00 00 44 41 54 41 | released...DATA| 00038660 dc 01 00 00 65 78 69 74 0a 53 79 6e 74 61 78 3a |....exit.Syntax:| 00038670 09 76 6f 69 64 20 65 78 69 74 20 28 69 6e 74 20 |.void exit (int | 00038680 73 74 61 74 75 73 29 3b 0a 48 65 61 64 65 72 3a |status);.Header:| 00038690 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c |.<stdlib.h=>stdl| 000386a0 69 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ib>..This functi| 000386b0 6f 6e 20 63 61 75 73 65 73 20 74 68 65 20 70 72 |on causes the pr| 000386c0 6f 67 72 61 6d 20 74 6f 20 74 65 72 6d 69 6e 61 |ogram to termina| 000386d0 74 65 20 6e 6f 72 6d 61 6c 6c 79 2c 20 72 65 74 |te normally, ret| 000386e0 75 72 6e 69 6e 67 20 73 74 61 74 75 73 20 74 6f |urning status to| 000386f0 20 74 68 65 20 68 6f 73 74 20 65 6e 76 69 72 6f | the host enviro| 00038700 6e 6d 65 6e 74 2e 20 53 74 61 74 75 73 20 73 68 |nment. Status sh| 00038710 6f 75 6c 64 20 62 65 20 7a 65 72 6f 20 28 3c 45 |ould be zero (<E| 00038720 58 49 54 5f 53 55 43 43 45 53 53 3e 29 2c 20 6f |XIT_SUCCESS>), o| 00038730 72 20 3c 45 58 49 54 5f 46 41 49 4c 55 52 45 3e |r <EXIT_FAILURE>| 00038740 2e 20 54 68 69 73 20 69 73 20 77 68 61 74 20 74 |. This is what t| 00038750 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 |he function does| 00038760 3a 0a 7b 74 61 62 7d 0a 8f 09 43 61 6c 6c 73 20 |:.{tab}...Calls | 00038770 66 75 6e 63 74 69 6f 6e 73 20 72 65 67 69 73 74 |functions regist| 00038780 65 72 65 64 20 77 69 74 68 20 3c 61 74 65 78 69 |ered with <atexi| 00038790 74 3e 2c 20 69 6e 20 72 65 76 65 72 73 65 20 6f |t>, in reverse o| 000387a0 72 64 65 72 20 6f 66 20 72 65 67 69 73 74 72 61 |rder of registra| 000387b0 74 69 6f 6e 20 28 6c 61 73 74 20 66 69 72 73 74 |tion (last first| 000387c0 29 2e 0a 8f 09 46 6c 75 73 68 65 73 20 61 6e 64 |)....Flushes and| 000387d0 20 63 6c 6f 73 65 73 20 61 6c 6c 20 6f 70 65 6e | closes all open| 000387e0 20 73 74 72 65 61 6d 73 2e 0a 8f 09 52 65 6d 6f | streams....Remo| 000387f0 76 65 73 20 61 6c 6c 20 66 69 6c 65 73 20 63 72 |ves all files cr| 00038800 65 61 74 65 64 20 77 69 74 68 20 3c 74 6d 70 66 |eated with <tmpf| 00038810 69 6c 65 3e 2e 0a 8f 09 52 65 74 75 72 6e 73 20 |ile>....Returns | 00038820 74 6f 20 74 68 65 20 68 6f 73 74 20 65 6e 76 69 |to the host envi| 00038830 72 6f 6e 6d 65 6e 74 2e 44 49 52 24 4c 00 00 00 |ronment.DIR$L...| 00038840 4c 00 00 00 84 88 03 00 46 ff ff ff 9a ab dd 22 |L.......F......"| 00038850 0c 01 00 00 13 00 00 00 00 00 00 00 46 41 49 4c |............FAIL| 00038860 55 52 45 00 90 89 03 00 46 ff ff ff b8 a0 dd 22 |URE.....F......"| 00038870 0a 01 00 00 13 00 00 00 00 00 00 00 53 55 43 43 |............SUCC| 00038880 45 53 53 00 44 41 54 41 0c 01 00 00 45 58 49 54 |ESS.DATA....EXIT| 00038890 5f 46 41 49 4c 55 52 45 0a 54 68 65 20 6d 61 63 |_FAILURE.The mac| 000388a0 72 6f 20 7b 2f 7d 45 58 49 54 5f 46 41 49 4c 55 |ro {/}EXIT_FAILU| 000388b0 52 45 7b 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 |RE{/} is defined| 000388c0 20 69 6e 20 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 | in <stdlib.h=>s| 000388d0 74 64 6c 69 62 3e 20 61 73 20 61 20 76 61 6c 75 |tdlib> as a valu| 000388e0 65 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 70 |e which may be p| 000388f0 61 73 73 65 64 20 74 6f 20 74 68 65 20 3c 65 78 |assed to the <ex| 00038900 69 74 3e 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 |it> function to | 00038910 69 6e 64 69 63 61 74 65 20 74 68 61 74 20 74 68 |indicate that th| 00038920 65 20 70 72 6f 67 72 61 6d 20 68 61 73 20 62 65 |e program has be| 00038930 65 6e 20 75 6e 73 75 63 63 65 73 73 66 75 6c 2e |en unsuccessful.| 00038940 20 49 6e 20 45 61 73 79 20 43 20 28 61 6e 64 20 | In Easy C (and | 00038950 65 76 65 72 79 20 6f 74 68 65 72 20 43 20 63 6f |every other C co| 00038960 6d 70 69 6c 65 72 20 49 20 68 61 76 65 20 75 73 |mpiler I have us| 00038970 65 64 29 20 69 74 20 69 73 20 61 63 74 75 61 6c |ed) it is actual| 00038980 6c 79 20 64 65 66 69 6e 65 64 20 61 73 20 31 2e |ly defined as 1.| 00038990 44 41 54 41 0a 01 00 00 45 58 49 54 5f 53 55 43 |DATA....EXIT_SUC| 000389a0 43 45 53 53 0a 54 68 65 20 6d 61 63 72 6f 20 7b |CESS.The macro {| 000389b0 2f 7d 45 58 49 54 5f 53 55 43 43 45 53 53 7b 2f |/}EXIT_SUCCESS{/| 000389c0 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |} is defined in | 000389d0 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 |<stdlib.h=>stdli| 000389e0 62 3e 20 61 73 20 61 20 76 61 6c 75 65 20 77 68 |b> as a value wh| 000389f0 69 63 68 20 6d 61 79 20 62 65 20 70 61 73 73 65 |ich may be passe| 00038a00 64 20 74 6f 20 74 68 65 20 3c 65 78 69 74 3e 20 |d to the <exit> | 00038a10 66 75 6e 63 74 69 6f 6e 20 74 6f 20 69 6e 64 69 |function to indi| 00038a20 63 61 74 65 20 74 68 61 74 20 74 68 65 20 70 72 |cate that the pr| 00038a30 6f 67 72 61 6d 20 68 61 73 20 62 65 65 6e 20 73 |ogram has been s| 00038a40 75 63 63 65 73 73 66 75 6c 2e 20 49 6e 20 45 61 |uccessful. In Ea| 00038a50 73 79 20 43 20 28 61 6e 64 20 65 76 65 72 79 20 |sy C (and every | 00038a60 6f 74 68 65 72 20 43 20 63 6f 6d 70 69 6c 65 72 |other C compiler| 00038a70 20 49 20 68 61 76 65 20 75 73 65 64 29 20 69 74 | I have used) it| 00038a80 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 66 | is actually def| 00038a90 69 6e 65 64 20 61 73 20 30 2e 00 00 44 41 54 41 |ined as 0...DATA| 00038aa0 cf 00 00 00 65 78 70 0a 53 79 6e 74 61 78 3a 09 |....exp.Syntax:.| 00038ab0 64 6f 75 62 6c 65 20 65 78 70 20 28 64 6f 75 62 |double exp (doub| 00038ac0 6c 65 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c |le x);.Header:.<| 00038ad0 6d 61 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 |math.h=>math>..R| 00038ae0 65 74 75 72 6e 73 3a 09 54 68 65 20 65 78 70 6f |eturns:.The expo| 00038af0 6e 65 6e 74 69 61 6c 20 6f 66 20 78 2e 0a 0a 54 |nential of x...T| 00038b00 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 |his function ret| 00038b10 75 72 6e 73 20 65 20 74 6f 20 74 68 65 20 70 6f |urns e to the po| 00038b20 77 65 72 20 6f 66 20 78 2c 20 77 68 65 72 65 20 |wer of x, where | 00038b30 65 20 3d 20 65 78 70 28 31 29 20 3d 20 32 2e 37 |e = exp(1) = 2.7| 00038b40 31 38 32 38 31 38 33 8c 20 2e 20 41 6e 20 65 72 |1828183. . An er| 00038b50 72 6f 72 20 6f 63 63 75 72 73 20 69 66 20 78 20 |ror occurs if x | 00038b60 69 73 20 74 6f 6f 20 62 69 67 2e 00 44 41 54 41 |is too big..DATA| 00038b70 59 00 00 00 45 58 50 4f 52 54 20 3c 6c 61 62 65 |Y...EXPORT <labe| 00038b80 6c 3e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 6f |l>.This allows o| 00038b90 6e 65 20 6f 66 20 79 6f 75 72 20 6c 61 62 65 6c |ne of your label| 00038ba0 73 20 74 6f 20 62 65 20 3c 49 4d 50 4f 52 54 3e |s to be <IMPORT>| 00038bb0 65 64 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20 |ed into another | 00038bc0 66 69 6c 65 2e 00 00 00 44 49 52 24 e0 06 00 00 |file....DIR$....| 00038bd0 e0 06 00 00 a8 92 03 00 46 ff ff ff b7 5a be 22 |........F....Z."| 00038be0 e8 00 00 00 13 00 00 00 00 00 00 00 66 61 62 73 |............fabs| 00038bf0 00 00 00 00 90 93 03 00 46 ff ff ff ac 8a b3 24 |........F......$| 00038c00 c5 00 00 00 13 00 00 00 00 00 00 00 46 41 4c 53 |............FALS| 00038c10 45 00 00 00 58 94 03 00 46 ff ff ff bf a5 c1 22 |E...X...F......"| 00038c20 8a 01 00 00 13 00 00 00 00 00 00 00 66 63 6c 6f |............fclo| 00038c30 73 65 00 00 e4 95 03 00 46 ff ff ff 68 51 c4 22 |se......F...hQ."| 00038c40 c3 00 00 00 13 00 00 00 00 00 00 00 66 65 6f 66 |............feof| 00038c50 00 00 00 00 a8 96 03 00 46 ff ff ff 23 55 c4 22 |........F...#U."| 00038c60 ad 00 00 00 13 00 00 00 00 00 00 00 66 65 72 72 |............ferr| 00038c70 6f 72 00 00 58 97 03 00 46 ff ff ff f6 a0 c1 22 |or..X...F......"| 00038c80 67 01 00 00 13 00 00 00 00 00 00 00 66 66 6c 75 |g...........fflu| 00038c90 73 68 00 00 c0 98 03 00 46 ff ff ff fb 62 c2 22 |sh......F....b."| 00038ca0 e6 00 00 00 13 00 00 00 00 00 00 00 66 67 65 74 |............fget| 00038cb0 63 00 00 00 a8 99 03 00 46 ff ff ff 1b 0f c2 22 |c.......F......"| 00038cc0 5a 01 00 00 13 00 00 00 00 00 00 00 66 67 65 74 |Z...........fget| 00038cd0 70 6f 73 00 04 9b 03 00 46 ff ff ff 58 71 c2 22 |pos.....F...Xq."| 00038ce0 f1 01 00 00 13 00 00 00 00 00 00 00 66 67 65 74 |............fget| 00038cf0 73 00 00 00 f8 9c 03 00 46 ff ff ff 39 b5 c4 22 |s.......F...9.."| 00038d00 23 01 00 00 13 00 00 00 00 00 00 00 46 49 4c 45 |#...........FILE| 00038d10 00 00 00 00 1c 9e 03 00 46 fd ff ff 1c 86 84 2f |........F....../| 00038d20 04 04 00 00 13 01 00 00 00 00 00 00 66 69 6c 65 |............file| 00038d30 5f 00 00 00 ac cc 03 00 46 fd ff ff 6f 88 84 2f |_.......F...o../| 00038d40 2c 00 00 00 13 01 00 00 00 00 00 00 66 69 6c 65 |,...........file| 00038d50 68 6e 64 5f 00 00 00 00 bc cd 03 00 46 ff ff ff |hnd_........F...| 00038d60 e9 f4 47 23 31 01 00 00 13 00 00 00 00 00 00 00 |..G#1...........| 00038d70 66 69 6c 65 69 63 6f 6e 00 00 00 00 f0 ce 03 00 |fileicon........| 00038d80 46 fd ff ff ad 88 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 00038d90 00 00 00 00 46 69 6c 65 49 63 6f 6e 5f 00 00 00 |....FileIcon_...| 00038da0 58 d0 03 00 46 fd ff ff d4 88 84 2f 28 00 00 00 |X...F....../(...| 00038db0 13 01 00 00 00 00 00 00 46 49 4c 45 4e 41 4d 45 |........FILENAME| 00038dc0 5f 00 00 00 a0 d1 03 00 46 fd ff ff f9 88 84 2f |_.......F....../| 00038dd0 2c 00 00 00 13 01 00 00 00 00 00 00 66 69 6c 65 |,...........file| 00038de0 6f 70 5f 00 60 d2 03 00 46 fd ff ff 1d 89 84 2f |op_.`...F....../| 00038df0 2c 00 00 00 13 01 00 00 00 00 00 00 46 69 6c 65 |,...........File| 00038e00 72 41 63 74 69 6f 6e 5f 00 00 00 00 dc d2 03 00 |rAction_........| 00038e10 46 ff ff ff 5e e7 27 25 09 01 00 00 13 00 00 00 |F...^.'%........| 00038e20 00 00 00 00 46 49 4c 45 54 59 50 45 00 00 00 00 |....FILETYPE....| 00038e30 e8 d3 03 00 46 fd ff ff 4d 89 84 2f 2c 00 00 00 |....F...M../,...| 00038e40 13 01 00 00 00 00 00 00 66 69 6c 65 74 79 70 65 |........filetype| 00038e50 5f 00 00 00 38 d9 03 00 46 ff ff ff f8 e0 28 25 |_...8...F.....(%| 00038e60 45 01 00 00 13 00 00 00 00 00 00 00 46 69 6c 74 |E...........Filt| 00038e70 65 72 00 00 80 da 03 00 46 fd ff ff 8f 89 84 2f |er......F....../| 00038e80 e0 00 00 00 13 01 00 00 00 00 00 00 46 69 6c 74 |............Filt| 00038e90 65 72 5f 00 24 e1 03 00 46 ff ff ff d5 1a 48 23 |er_.$...F.....H#| 00038ea0 70 01 00 00 13 00 00 00 00 00 00 00 66 6c 65 78 |p...........flex| 00038eb0 00 00 00 00 94 e2 03 00 46 fd ff ff 20 8a 84 2f |........F... ../| 00038ec0 30 01 00 00 13 01 00 00 00 00 00 00 66 6c 65 78 |0...........flex| 00038ed0 5f 00 00 00 14 ed 03 00 46 ff ff ff 3c 92 bb 22 |_.......F...<.."| 00038ee0 27 02 00 00 13 00 00 00 00 00 00 00 66 6c 6f 61 |'...........floa| 00038ef0 74 00 00 00 3c ef 03 00 46 ff ff ff 6f 78 be 22 |t...<...F...ox."| 00038f00 a7 01 00 00 13 00 00 00 00 00 00 00 66 6c 6f 6f |............floo| 00038f10 72 00 00 00 e4 f0 03 00 46 fd ff ff fb 8a 84 2f |r.......F....../| 00038f20 6c 01 00 00 13 01 00 00 00 00 00 00 46 4c 54 5f |l...........FLT_| 00038f30 00 00 00 00 1c f7 03 00 46 ff ff ff 2a 7f be 22 |........F...*.."| 00038f40 2b 01 00 00 13 00 00 00 00 00 00 00 66 6d 6f 64 |+...........fmod| 00038f50 00 00 00 00 48 f8 03 00 46 ff ff ff f6 2a 29 25 |....H...F....*)%| 00038f60 f5 02 00 00 13 00 00 00 00 00 00 00 46 6f 6e 74 |............Font| 00038f70 00 00 00 00 40 fb 03 00 46 fd ff ff 08 8c 84 2f |....@...F....../| 00038f80 40 08 00 00 13 01 00 00 00 00 00 00 66 6f 6e 74 |@...........font| 00038f90 5f 00 00 00 10 5b 04 00 46 ff ff ff b4 7e ab 24 |_....[..F....~.$| 00038fa0 11 01 00 00 13 00 00 00 00 00 00 00 66 6f 6e 74 |............font| 00038fb0 6c 69 73 74 00 00 00 00 24 5c 04 00 46 fd ff ff |list....$\..F...| 00038fc0 c4 90 84 2f 9c 00 00 00 13 01 00 00 00 00 00 00 |.../............| 00038fd0 66 6f 6e 74 6c 69 73 74 5f 00 00 00 50 6d 04 00 |fontlist_...Pm..| 00038fe0 46 ff ff ff 55 b1 27 23 20 01 00 00 13 00 00 00 |F...U.'# .......| 00038ff0 00 00 00 00 66 6f 6e 74 72 65 63 00 70 6e 04 00 |....fontrec.pn..| 00039000 46 ff ff ff ce 1b ad 24 a5 01 00 00 13 00 00 00 |F......$........| 00039010 00 00 00 00 66 6f 6e 74 73 65 6c 65 63 74 00 00 |....fontselect..| 00039020 18 70 04 00 46 fd ff ff 5f 91 84 2f 40 01 00 00 |.p..F..._../@...| 00039030 13 01 00 00 00 00 00 00 66 6f 6e 74 73 65 6c 65 |........fontsele| 00039040 63 74 5f 00 94 79 04 00 46 ff ff ff 8d ae c1 22 |ct_..y..F......"| 00039050 23 01 00 00 13 00 00 00 00 00 00 00 66 6f 70 65 |#...........fope| 00039060 6e 00 00 00 b8 7a 04 00 46 fd ff ff 27 92 84 2f |n....z..F...'../| 00039070 28 00 00 00 13 01 00 00 00 00 00 00 46 4f 50 45 |(...........FOPE| 00039080 4e 5f 00 00 d8 7b 04 00 46 ff ff ff 77 2e e4 22 |N_...{..F...w.."| 00039090 29 04 00 00 13 00 00 00 00 00 00 00 66 6f 72 00 |)...........for.| 000390a0 04 80 04 00 46 fd ff ff 60 92 84 2f 2c 00 00 00 |....F...`../,...| 000390b0 13 01 00 00 00 00 00 00 66 6f 72 6d 69 6f 5f 00 |........formio_.| 000390c0 1c 81 04 00 46 fd ff ff 83 92 84 2f 28 00 00 00 |....F....../(...| 000390d0 13 01 00 00 00 00 00 00 66 70 6f 73 5f 00 00 00 |........fpos_...| 000390e0 e4 81 04 00 46 ff ff ff fa b6 27 25 7d 01 00 00 |....F.....'%}...| 000390f0 13 00 00 00 00 00 00 00 66 70 72 69 6e 74 66 00 |........fprintf.| 00039100 64 83 04 00 46 ff ff ff 58 7a c2 22 c1 00 00 00 |d...F...Xz."....| 00039110 13 00 00 00 00 00 00 00 66 70 75 74 63 00 00 00 |........fputc...| 00039120 28 84 04 00 46 ff ff ff 36 80 c2 22 ed 00 00 00 |(...F...6.."....| 00039130 13 00 00 00 00 00 00 00 66 70 75 74 73 00 00 00 |........fputs...| 00039140 18 85 04 00 46 ff ff ff cf 36 c4 22 33 01 00 00 |....F....6."3...| 00039150 13 00 00 00 00 00 00 00 66 72 65 61 64 00 00 00 |........fread...| 00039160 4c 86 04 00 46 ff ff ff 6a 0a dd 22 db 00 00 00 |L...F...j.."....| 00039170 13 00 00 00 00 00 00 00 66 72 65 65 00 00 00 00 |........free....| 00039180 28 87 04 00 46 ff ff ff de e3 56 26 7e 01 00 00 |(...F.....V&~...| 00039190 13 00 00 00 00 00 00 00 46 72 65 65 44 62 75 67 |........FreeDbug| 000391a0 00 00 00 00 a8 88 04 00 46 ff ff ff 0c a4 b0 24 |........F......$| 000391b0 19 01 00 00 13 00 00 00 00 00 00 00 66 72 65 65 |............free| 000391c0 70 72 6f 63 00 00 00 00 c4 89 04 00 46 ff ff ff |proc........F...| 000391d0 02 bc c1 22 ad 01 00 00 13 00 00 00 00 00 00 00 |..."............| 000391e0 66 72 65 6f 70 65 6e 00 74 8b 04 00 46 ff ff ff |freopen.t...F...| 000391f0 03 fb bd 22 46 01 00 00 13 00 00 00 00 00 00 00 |..."F...........| 00039200 66 72 65 78 70 00 00 00 bc 8c 04 00 46 ff ff ff |frexp.......F...| 00039210 15 06 c4 22 c1 01 00 00 13 00 00 00 00 00 00 00 |..."............| 00039220 66 73 63 61 6e 66 00 00 80 8e 04 00 46 ff ff ff |fscanf......F...| 00039230 ad 2d c2 22 06 02 00 00 13 00 00 00 00 00 00 00 |.-."............| 00039240 66 73 65 65 6b 00 00 00 88 90 04 00 46 ff ff ff |fseek.......F...| 00039250 3f 19 c2 22 64 01 00 00 13 00 00 00 00 00 00 00 |?.."d...........| 00039260 66 73 65 74 70 6f 73 00 ec 91 04 00 46 ff ff ff |fsetpos.....F...| 00039270 eb 47 c2 22 97 01 00 00 13 00 00 00 00 00 00 00 |.G."............| 00039280 66 74 65 6c 6c 00 00 00 96 da 0c 00 46 ff ff ff |ftell.......F...| 00039290 a3 06 2f 31 2a 01 00 00 13 00 00 00 00 00 00 00 |../1*...........| 000392a0 66 77 72 69 74 65 00 00 44 41 54 41 e8 00 00 00 |fwrite..DATA....| 000392b0 66 61 62 73 0a 53 79 6e 74 61 78 3a 09 64 6f 75 |fabs.Syntax:.dou| 000392c0 62 6c 65 20 66 61 62 73 20 28 64 6f 75 62 6c 65 |ble fabs (double| 000392d0 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | x);.Header:.<ma| 000392e0 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 000392f0 75 72 6e 73 3a 09 54 68 65 20 61 62 73 6f 6c 75 |urns:.The absolu| 00039300 74 65 20 76 61 6c 75 65 20 6f 66 20 78 2e 0a 0a |te value of x...| 00039310 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 00039320 74 75 72 6e 73 20 74 68 65 20 61 62 73 6f 6c 75 |turns the absolu| 00039330 74 65 20 76 61 6c 75 65 20 6f 66 20 78 20 69 65 |te value of x ie| 00039340 20 74 68 65 20 6d 61 67 6e 69 74 75 64 65 20 6f | the magnitude o| 00039350 66 20 78 2e 20 54 68 69 73 20 69 73 20 61 6c 77 |f x. This is alw| 00039360 61 79 73 20 70 6f 73 69 74 69 76 65 2c 20 73 6f |ays positive, so| 00039370 20 69 66 20 78 20 3d 20 2d 35 2e 33 20 74 68 65 | if x = -5.3 the| 00039380 6e 20 66 61 62 73 28 78 29 20 3d 20 35 2e 33 2e |n fabs(x) = 5.3.| 00039390 44 41 54 41 c5 00 00 00 46 41 4c 53 45 0a 54 68 |DATA....FALSE.Th| 000393a0 65 20 6d 61 63 72 6f 20 46 41 4c 53 45 20 69 73 |e macro FALSE is| 000393b0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 000393c0 6b 4c 69 62 3a 43 6f 72 65 2e 68 3d 3e 43 6f 72 |kLib:Core.h=>Cor| 000393d0 65 3e 20 3c 54 69 6d 73 4c 69 62 3a 43 6f 72 65 |e> <TimsLib:Core| 000393e0 2e 68 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 6e 64 |.h=>Core_TL> and| 000393f0 20 3c 6f 73 2e 68 3d 3e 6f 73 3e 20 28 45 61 73 | <os.h=>os> (Eas| 00039400 79 20 43 29 20 61 73 20 61 20 76 61 6c 75 65 20 |y C) as a value | 00039410 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 |representing the| 00039420 20 6c 6f 67 69 63 61 6c 20 73 74 61 74 65 20 6f | logical state o| 00039430 66 20 46 61 6c 73 65 2e 20 49 74 20 69 73 20 61 |f False. It is a| 00039440 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 |ctually defined | 00039450 61 73 20 30 2e 00 00 00 44 41 54 41 8a 01 00 00 |as 0....DATA....| 00039460 66 63 6c 6f 73 65 0a 53 79 6e 74 61 78 3a 09 69 |fclose.Syntax:.i| 00039470 6e 74 20 66 63 6c 6f 73 65 20 28 3c 46 49 4c 45 |nt fclose (<FILE| 00039480 3e 20 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 64 |> *stream);.Head| 00039490 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 |er:.<stdio.h=>st| 000394a0 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 5a |dio>..Returns:.Z| 000394b0 65 72 6f 20 69 66 20 74 68 65 20 66 69 6c 65 20 |ero if the file | 000394c0 69 73 20 63 6c 6f 73 65 64 2c 20 3c 45 4f 46 3e |is closed, <EOF>| 000394d0 20 69 66 20 69 74 20 69 73 20 6e 6f 74 2e 0a 0a | if it is not...| 000394e0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6c |This function cl| 000394f0 6f 73 65 73 20 74 68 65 20 66 69 6c 65 20 73 74 |oses the file st| 00039500 72 65 61 6d 20 70 6f 69 6e 74 65 64 20 74 6f 20 |ream pointed to | 00039510 62 79 20 2f 73 74 72 65 61 6d 2f 2e 20 54 68 65 |by /stream/. The| 00039520 20 73 74 72 65 61 6d 20 69 73 20 6e 6f 77 20 69 | stream is now i| 00039530 6e 76 61 6c 69 64 2e 20 41 6e 79 20 64 61 74 61 |nvalid. Any data| 00039540 20 63 75 72 72 65 6e 74 6c 79 20 62 75 66 66 65 | currently buffe| 00039550 72 65 64 20 74 6f 20 62 65 20 77 72 69 74 74 65 |red to be writte| 00039560 6e 20 6f 75 74 20 77 69 6c 6c 20 62 65 20 77 72 |n out will be wr| 00039570 69 74 74 65 6e 20 6f 75 74 20 62 65 66 6f 72 65 |itten out before| 00039580 20 63 6c 6f 73 75 72 65 2e 20 49 66 20 74 68 65 | closure. If the| 00039590 20 62 75 66 66 65 72 20 77 61 73 20 61 6c 6c 6f | buffer was allo| 000395a0 63 61 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 |cated automatica| 000395b0 6c 6c 79 20 28 74 68 65 20 75 73 75 61 6c 20 63 |lly (the usual c| 000395c0 61 73 65 29 2c 20 74 68 65 20 6d 65 6d 6f 72 79 |ase), the memory| 000395d0 20 77 69 6c 6c 20 62 65 20 72 65 6c 65 61 73 65 | will be release| 000395e0 64 2e 00 00 44 41 54 41 c3 00 00 00 66 65 6f 66 |d...DATA....feof| 000395f0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 66 65 6f |.Syntax:.int feo| 00039600 66 20 28 46 49 4c 45 20 2a 73 74 72 65 61 6d 29 |f (FILE *stream)| 00039610 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f |;.Header:.<stdio| 00039620 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 |.h=>stdio>..Retu| 00039630 72 6e 73 3a 09 5a 65 72 6f 20 69 66 20 6e 6f 74 |rns:.Zero if not| 00039640 20 61 74 20 65 6e 64 2d 6f 66 2d 66 69 6c 65 2e | at end-of-file.| 00039650 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 |..This functions| 00039660 20 74 65 73 74 73 20 74 6f 20 73 65 65 20 69 66 | tests to see if| 00039670 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 | the end of the | 00039680 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 20 73 |specified file s| 00039690 74 72 65 61 6d 20 68 61 73 20 62 65 65 6e 20 72 |tream has been r| 000396a0 65 61 63 68 65 64 2e 00 44 41 54 41 ad 00 00 00 |eached..DATA....| 000396b0 66 65 72 72 6f 72 0a 53 79 6e 74 61 78 3a 09 69 |ferror.Syntax:.i| 000396c0 6e 74 20 66 65 72 72 6f 72 20 28 46 49 4c 45 20 |nt ferror (FILE | 000396d0 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 64 65 72 |*stream);.Header| 000396e0 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 |:.<stdio.h=>stdi| 000396f0 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 5a 65 72 |o>..Returns:.Zer| 00039700 6f 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f |o if there is no| 00039710 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 | error...This fu| 00039720 6e 63 74 69 6f 6e 20 74 65 73 74 73 20 74 68 65 |nction tests the| 00039730 20 65 72 72 6f 72 20 66 6c 61 67 20 66 6f 72 20 | error flag for | 00039740 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 74 |the specified st| 00039750 72 65 61 6d 2e 00 00 00 44 41 54 41 67 01 00 00 |ream....DATAg...| 00039760 66 66 6c 75 73 68 0a 53 79 6e 74 61 78 3a 09 69 |fflush.Syntax:.i| 00039770 6e 74 20 66 66 6c 75 73 68 20 28 3c 46 49 4c 45 |nt fflush (<FILE| 00039780 3e 20 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 64 |> *stream);.Head| 00039790 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 |er:.<stdio.h=>st| 000397a0 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c |dio>..Returns:.<| 000397b0 45 4f 46 3e 20 69 66 20 61 6e 79 20 64 61 74 61 |EOF> if any data| 000397c0 20 69 73 20 77 72 69 74 74 65 6e 20 6f 75 74 2c | is written out,| 000397d0 20 6f 72 20 7a 65 72 6f 20 69 66 20 6e 6f 74 2e | or zero if not.| 000397e0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000397f0 63 61 75 73 65 73 20 61 6e 79 20 62 75 66 66 65 |causes any buffe| 00039800 72 65 64 20 6f 75 74 70 75 74 20 64 61 74 61 20 |red output data | 00039810 74 6f 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f |to be written to| 00039820 20 74 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 | the file pointe| 00039830 64 20 74 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f |d to by /stream/| 00039840 2c 20 62 75 74 20 6f 6e 6c 79 20 69 66 20 74 68 |, but only if th| 00039850 65 20 6c 61 73 74 20 6f 70 65 72 61 74 69 6f 6e |e last operation| 00039860 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 77 61 73 | on the file was| 00039870 20 6e 6f 74 20 69 6e 70 75 74 2e 20 49 66 20 2f | not input. If /| 00039880 73 74 72 65 61 6d 2f 20 69 73 20 61 20 6e 75 6c |stream/ is a nul| 00039890 6c 20 70 6f 69 6e 74 65 72 2c 20 66 6c 75 73 68 |l pointer, flush| 000398a0 69 6e 67 20 6f 63 63 75 72 73 20 6f 6e 20 61 6c |ing occurs on al| 000398b0 6c 20 6f 70 65 6e 20 73 74 72 65 61 6d 73 2e 00 |l open streams..| 000398c0 44 41 54 41 e6 00 00 00 66 67 65 74 63 0a 53 79 |DATA....fgetc.Sy| 000398d0 6e 74 61 78 3a 09 69 6e 74 20 66 67 65 74 63 20 |ntax:.int fgetc | 000398e0 28 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 6d 29 |(<FILE> *stream)| 000398f0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f |;.Header:.<stdio| 00039900 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 |.h=>stdio>..Retu| 00039910 72 6e 73 3a 09 43 68 61 72 61 63 74 65 72 20 72 |rns:.Character r| 00039920 65 61 64 2c 20 6f 72 20 3c 45 4f 46 3e 20 66 6f |ead, or <EOF> fo| 00039930 72 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 69 |r an error...Thi| 00039940 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 |s function reads| 00039950 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 | a single charac| 00039960 74 65 72 20 66 72 6f 6d 20 74 68 65 20 73 74 72 |ter from the str| 00039970 65 61 6d 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |eam pointed to b| 00039980 79 20 2f 73 74 72 65 61 6d 2f 20 61 6e 64 20 72 |y /stream/ and r| 00039990 65 74 75 72 6e 73 20 69 74 20 61 73 20 61 6e 20 |eturns it as an | 000399a0 2f 69 6e 74 2f 2e 00 00 44 41 54 41 5a 01 00 00 |/int/...DATAZ...| 000399b0 66 67 65 74 70 6f 73 0a 53 79 6e 74 61 78 3a 09 |fgetpos.Syntax:.| 000399c0 69 6e 74 20 66 67 65 74 70 6f 73 20 28 3c 46 49 |int fgetpos (<FI| 000399d0 4c 45 3e 20 2a 73 74 72 65 61 6d 2c 20 3c 66 70 |LE> *stream, <fp| 000399e0 6f 73 5f 74 3e 20 2a 70 6f 73 29 3b 0a 48 65 61 |os_t> *pos);.Hea| 000399f0 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 00039a00 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tdio>..Returns:.| 00039a10 5a 65 72 6f 20 69 66 20 73 75 63 63 65 73 73 66 |Zero if successf| 00039a20 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ul...This functi| 00039a30 6f 6e 20 73 74 6f 72 65 73 20 74 68 65 20 66 69 |on stores the fi| 00039a40 6c 65 20 70 6f 69 6e 74 65 72 2c 20 66 6f 72 20 |le pointer, for | 00039a50 74 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 64 |the file pointed| 00039a60 20 74 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f 2c | to by /stream/,| 00039a70 20 69 6e 20 2f 70 6f 73 2f 2e 20 54 68 65 20 76 | in /pos/. The v| 00039a80 61 6c 75 65 20 73 74 6f 72 65 64 20 69 73 20 6e |alue stored is n| 00039a90 6f 74 20 69 6e 20 61 6e 79 20 73 70 65 63 69 66 |ot in any specif| 00039aa0 69 63 20 66 6f 72 6d 61 74 20 28 73 6f 20 64 6f |ic format (so do| 00039ab0 6e 27 74 20 74 72 79 20 74 6f 20 75 73 65 20 69 |n't try to use i| 00039ac0 74 2c 20 66 6f 6c 6b 73 21 29 2e 20 49 66 20 74 |t, folks!). If t| 00039ad0 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f 72 |here is an error| 00039ae0 2c 20 74 68 65 20 72 65 61 73 6f 6e 20 69 73 20 |, the reason is | 00039af0 73 74 6f 72 65 64 20 69 6e 20 3c 65 72 72 6e 6f |stored in <errno| 00039b00 3e 2e 00 00 44 41 54 41 f1 01 00 00 66 67 65 74 |>...DATA....fget| 00039b10 73 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a |s.Syntax:.char *| 00039b20 66 67 65 74 73 20 28 63 68 61 72 20 2a 73 74 72 |fgets (char *str| 00039b30 2c 20 69 6e 74 20 6e 2c 20 3c 46 49 4c 45 3e 20 |, int n, <FILE> | 00039b40 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 64 65 72 |*stream);.Header| 00039b50 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 |:.<stdio.h=>stdi| 00039b60 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |o>..Returns:.Poi| 00039b70 6e 74 65 72 20 74 6f 20 73 74 72 69 6e 67 20 72 |nter to string r| 00039b80 65 61 64 2c 20 6f 72 20 61 20 6e 75 6c 6c 20 70 |ead, or a null p| 00039b90 6f 69 6e 74 65 72 20 69 66 20 74 68 65 72 65 20 |ointer if there | 00039ba0 69 73 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 |is an error...Th| 00039bb0 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 |is function read| 00039bc0 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 63 68 |s a string of ch| 00039bd0 61 72 61 63 74 65 72 73 20 66 72 6f 6d 20 74 68 |aracters from th| 00039be0 65 20 73 74 72 65 61 6d 20 69 6e 74 6f 20 74 68 |e stream into th| 00039bf0 65 20 63 68 61 72 61 63 74 65 72 20 61 72 72 61 |e character arra| 00039c00 79 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |y pointed to by | 00039c10 2f 73 74 72 2f 2e 20 41 20 6d 61 78 69 6d 75 6d |/str/. A maximum| 00039c20 20 6f 66 20 28 6e 2d 31 29 20 63 68 61 72 61 63 | of (n-1) charac| 00039c30 74 65 72 73 20 77 69 6c 6c 20 62 65 20 72 65 61 |ters will be rea| 00039c40 64 20 61 6e 64 20 69 6e 20 61 6e 79 20 63 61 73 |d and in any cas| 00039c50 65 20 72 65 61 64 69 6e 67 20 77 69 6c 6c 20 74 |e reading will t| 00039c60 65 72 6d 69 6e 61 74 65 20 61 74 20 61 20 6e 65 |erminate at a ne| 00039c70 77 6c 69 6e 65 20 63 68 61 72 61 63 74 65 72 20 |wline character | 00039c80 6f 72 20 65 6e 64 2d 6f 66 2d 66 69 6c 65 2e 0a |or end-of-file..| 00039c90 0a 49 66 20 74 68 65 72 65 20 69 73 20 61 6e 20 |.If there is an | 00039ca0 65 72 72 6f 72 2c 20 61 20 6e 75 6c 6c 20 70 6f |error, a null po| 00039cb0 69 6e 74 65 72 20 77 69 6c 6c 20 62 65 20 72 65 |inter will be re| 00039cc0 74 75 72 6e 65 64 20 62 75 74 20 74 68 65 20 61 |turned but the a| 00039cd0 72 72 61 79 20 63 6f 6e 74 65 6e 74 73 20 6d 61 |rray contents ma| 00039ce0 79 20 73 74 69 6c 6c 20 68 61 76 65 20 63 68 61 |y still have cha| 00039cf0 6e 67 65 64 2e 00 00 00 44 41 54 41 23 01 00 00 |nged....DATA#...| 00039d00 46 49 4c 45 0a 54 68 65 20 74 79 70 65 20 7b 2f |FILE.The type {/| 00039d10 7d 46 49 4c 45 7b 2f 7d 20 69 73 20 64 65 66 69 |}FILE{/} is defi| 00039d20 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 3d |ned in <stdio.h=| 00039d30 3e 73 74 64 69 6f 3e 20 61 73 20 61 6e 20 6f 62 |>stdio> as an ob| 00039d40 6a 65 63 74 20 68 6f 6c 64 69 6e 67 20 61 6c 6c |ject holding all| 00039d50 20 6e 65 63 65 73 73 61 72 79 20 69 6e 66 6f 72 | necessary infor| 00039d60 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 6e 20 |mation about an | 00039d70 6f 70 65 6e 20 66 69 6c 65 2e 20 49 6e 20 45 61 |open file. In Ea| 00039d80 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 6e |sy C it is defin| 00039d90 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 |ed as the follow| 00039da0 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a |ing structure:..| 00039db0 5c 7b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |\{. unsigned | 00039dc0 63 68 61 72 20 2a 5f 70 74 72 3b 0a 20 20 20 20 |char *_ptr;. | 00039dd0 69 6e 74 20 5f 69 63 6e 74 3b 0a 20 20 20 20 69 |int _icnt;. i| 00039de0 6e 74 20 5f 6f 63 6e 74 3b 0a 20 20 20 20 69 6e |nt _ocnt;. in| 00039df0 74 20 5f 66 6c 61 67 3b 0a 20 20 20 20 69 6e 74 |t _flag;. int| 00039e00 20 3a 33 32 2c 3a 33 32 2c 3a 33 32 2c 3a 33 32 | :32,:32,:32,:32| 00039e10 2c 3a 33 32 2c 3a 33 32 3b 0a 7d 00 44 49 52 24 |,:32,:32;.}.DIR$| 00039e20 04 04 00 00 04 04 00 00 20 a2 03 00 46 ff ff ff |........ ...F...| 00039e30 ff f6 25 25 5e 01 00 00 13 00 00 00 00 00 00 00 |..%%^...........| 00039e40 61 63 63 65 73 73 00 00 80 a3 03 00 46 ff ff ff |access......F...| 00039e50 ed 12 26 25 49 01 00 00 13 00 00 00 00 00 00 00 |..&%I...........| 00039e60 43 6c 6f 73 65 00 00 00 cc a4 03 00 46 ff ff ff |Close.......F...| 00039e70 41 b4 25 25 61 01 00 00 13 00 00 00 00 00 00 00 |A.%%a...........| 00039e80 44 65 6c 65 74 65 00 00 30 a6 03 00 46 ff ff ff |Delete..0...F...| 00039e90 da 18 26 25 d8 00 00 00 13 00 00 00 00 00 00 00 |..&%............| 00039ea0 45 4f 46 00 08 a7 03 00 46 ff ff ff ef c2 25 25 |EOF.....F.....%%| 00039eb0 01 01 00 00 13 00 00 00 00 00 00 00 45 78 69 73 |............Exis| 00039ec0 74 73 00 00 0c a8 03 00 46 ff ff ff 5d b9 26 25 |ts......F...].&%| 00039ed0 80 01 00 00 13 00 00 00 00 00 00 00 47 65 74 4c |............GetL| 00039ee0 65 6e 67 74 68 00 00 00 8c a9 03 00 46 ff ff ff |ength.......F...| 00039ef0 d2 a8 26 25 f7 00 00 00 13 00 00 00 00 00 00 00 |..&%............| 00039f00 47 65 74 54 79 70 65 00 84 aa 03 00 46 fd ff ff |GetType.....F...| 00039f10 b3 8f 27 25 6b 03 00 00 13 00 00 00 00 00 00 00 |..'%k...........| 00039f20 68 00 00 00 f0 ad 03 00 46 ff ff ff de ca 25 25 |h.......F.....%%| 00039f30 87 00 00 00 13 00 00 00 00 00 00 00 68 61 6e 64 |............hand| 00039f40 6c 65 00 00 78 ae 03 00 46 ff ff ff c9 33 27 25 |le..x...F....3'%| 00039f50 b6 00 00 00 13 00 00 00 00 00 00 00 49 73 44 69 |............IsDi| 00039f60 72 65 63 74 6f 72 79 00 30 af 03 00 46 ff ff ff |rectory.0...F...| 00039f70 3a 9d 25 25 77 01 00 00 13 00 00 00 00 00 00 00 |:.%%w...........| 00039f80 6c 61 73 74 65 72 72 6f 72 00 00 00 a8 b0 03 00 |lasterror.......| 00039f90 46 ff ff ff 37 46 27 25 54 01 00 00 13 00 00 00 |F...7F'%T.......| 00039fa0 00 00 00 00 4c 6f 61 64 54 6f 00 00 fc b1 03 00 |....LoadTo......| 00039fb0 46 fd ff ff 70 37 c1 22 dd 03 00 00 13 00 00 00 |F...p7."........| 00039fc0 00 00 00 00 6d 6f 64 65 5f 00 00 00 dc b5 03 00 |....mode_.......| 00039fd0 46 ff ff ff dd 05 26 25 71 01 00 00 13 00 00 00 |F.....&%q.......| 00039fe0 00 00 00 00 4f 70 65 6e 00 00 00 00 50 b7 03 00 |....Open....P...| 00039ff0 46 ff ff ff c7 c7 25 25 8d 00 00 00 13 00 00 00 |F.....%%........| 0003a000 00 00 00 00 70 6f 73 69 74 69 6f 6e 00 00 00 00 |....position....| 0003a010 e0 b7 03 00 46 ff ff ff b9 67 26 25 d0 01 00 00 |....F....g&%....| 0003a020 13 00 00 00 00 00 00 00 52 65 61 64 33 32 00 00 |........Read32..| 0003a030 b0 b9 03 00 46 ff ff ff b6 7d 26 25 36 01 00 00 |....F....}&%6...| 0003a040 13 00 00 00 00 00 00 00 52 65 61 64 33 32 52 00 |........Read32R.| 0003a050 e8 ba 03 00 46 ff ff ff 70 50 26 25 99 01 00 00 |....F...pP&%....| 0003a060 13 00 00 00 00 00 00 00 52 65 61 64 38 00 00 00 |........Read8...| 0003a070 84 bc 03 00 46 ff ff ff 4a 36 26 25 3c 01 00 00 |....F...J6&%<...| 0003a080 13 00 00 00 00 00 00 00 52 65 61 64 42 79 74 65 |........ReadByte| 0003a090 73 00 00 00 c0 bd 03 00 46 ff ff ff 73 e5 25 25 |s.......F...s.%%| 0003a0a0 cc 00 00 00 13 00 00 00 00 00 00 00 52 45 41 44 |............READ| 0003a0b0 45 52 52 4f 52 00 00 00 8c be 03 00 46 ff ff ff |ERROR.......F...| 0003a0c0 26 27 26 25 6a 01 00 00 13 00 00 00 00 00 00 00 |&'&%j...........| 0003a0d0 52 65 74 75 72 6e 50 6f 73 00 00 00 f8 bf 03 00 |ReturnPos.......| 0003a0e0 46 ff ff ff fe 1d 26 25 fd 00 00 00 13 00 00 00 |F.....&%........| 0003a0f0 00 00 00 00 53 65 65 6b 00 00 00 00 f8 c0 03 00 |....Seek........| 0003a100 46 ff ff ff 95 95 26 25 16 01 00 00 13 00 00 00 |F.....&%........| 0003a110 00 00 00 00 53 65 74 54 79 70 65 00 10 c2 03 00 |....SetType.....| 0003a120 46 ff ff ff 8d bd 25 25 49 01 00 00 13 00 00 00 |F.....%%I.......| 0003a130 00 00 00 00 53 69 7a 65 00 00 00 00 5c c3 03 00 |....Size....\...| 0003a140 46 fd ff ff 23 37 55 26 5a 01 00 00 13 00 00 00 |F...#7U&Z.......| 0003a150 00 00 00 00 54 4c 00 00 b8 c4 03 00 46 ff ff ff |....TL......F...| 0003a160 f9 5b 26 25 6e 01 00 00 13 00 00 00 00 00 00 00 |.[&%n...........| 0003a170 57 72 69 74 65 33 32 00 28 c6 03 00 46 ff ff ff |Write32.(...F...| 0003a180 7c 87 26 25 57 01 00 00 13 00 00 00 00 00 00 00 ||.&%W...........| 0003a190 57 72 69 74 65 33 32 52 00 00 00 00 80 c7 03 00 |Write32R........| 0003a1a0 46 ff ff ff 4c 41 26 25 55 01 00 00 13 00 00 00 |F...LA&%U.......| 0003a1b0 00 00 00 00 57 72 69 74 65 38 00 00 d8 c8 03 00 |....Write8......| 0003a1c0 46 ff ff ff 12 2f 26 25 48 01 00 00 13 00 00 00 |F..../&%H.......| 0003a1d0 00 00 00 00 57 72 69 74 65 42 79 74 65 73 00 00 |....WriteBytes..| 0003a1e0 20 ca 03 00 46 ff ff ff 1a 7c 27 25 e0 00 00 00 | ...F....|'%....| 0003a1f0 13 00 00 00 00 00 00 00 44 61 74 65 00 00 00 00 |........Date....| 0003a200 00 cb 03 00 46 ff ff ff 67 d0 27 25 a9 01 00 00 |....F...g.'%....| 0003a210 13 00 00 00 00 00 00 00 70 72 69 6e 74 66 00 00 |........printf..| 0003a220 44 41 54 41 5e 01 00 00 66 69 6c 65 5f 61 63 63 |DATA^...file_acc| 0003a230 65 73 73 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d |ess.The type {*}| 0003a240 66 69 6c 65 5f 61 63 63 65 73 73 7b 2a 7d 20 69 |file_access{*} i| 0003a250 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 0003a260 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 |skLib:File.h=>Fi| 0003a270 6c 65 5f 68 3e 20 61 73 20 61 6e 20 65 6e 75 6d |le_h> as an enum| 0003a280 65 72 61 74 65 64 20 74 79 70 65 20 77 68 69 63 |erated type whic| 0003a290 68 20 64 65 66 69 6e 65 73 20 74 68 65 20 6d 6f |h defines the mo| 0003a2a0 64 65 20 69 6e 20 77 68 69 63 68 20 61 20 66 69 |de in which a fi| 0003a2b0 6c 65 20 73 68 6f 75 6c 64 20 62 65 20 6f 70 65 |le should be ope| 0003a2c0 6e 65 64 2e 20 54 68 65 20 70 6f 73 73 69 62 6c |ned. The possibl| 0003a2d0 65 20 76 61 6c 75 65 73 20 61 72 65 20 66 69 6c |e values are fil| 0003a2e0 65 5f 52 45 41 44 2c 20 66 69 6c 65 5f 57 52 49 |e_READ, file_WRI| 0003a2f0 54 45 2c 20 6f 72 20 66 69 6c 65 5f 41 50 50 45 |TE, or file_APPE| 0003a300 4e 44 3b 20 74 68 65 79 20 61 72 65 20 64 65 66 |ND; they are def| 0003a310 69 6e 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a |ined as follows:| 0003a320 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 20 |.. \{. | 0003a330 20 66 69 6c 65 5f 52 45 41 44 09 3d 20 30 78 34 | file_READ.= 0x4| 0003a340 30 2c 0a 20 20 20 20 20 20 20 20 66 69 6c 65 5f |0,. file_| 0003a350 57 52 49 54 45 09 3d 20 30 78 38 30 2c 0a 20 20 |WRITE.= 0x80,. | 0003a360 20 20 20 20 20 20 66 69 6c 65 5f 41 50 50 45 4e | file_APPEN| 0003a370 44 09 3d 20 30 78 43 30 0a 20 20 20 20 7d 00 00 |D.= 0xC0. }..| 0003a380 44 41 54 41 49 01 00 00 46 69 6c 65 5f 43 6c 6f |DATAI...File_Clo| 0003a390 73 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |se.Syntax:.<os_e| 0003a3a0 72 72 6f 72 3e 20 2a 46 69 6c 65 5f 43 6c 6f 73 |rror> *File_Clos| 0003a3b0 65 20 28 3c 66 69 6c 65 5f 68 61 6e 64 6c 65 3e |e (<file_handle>| 0003a3c0 20 68 6e 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c | hnd);.Header:.<| 0003a3d0 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e |DeskLib:File.h=>| 0003a3e0 46 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |File_h>..Returns| 0003a3f0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 0003a400 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 0003a410 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 0003a420 63 74 69 6f 6e 20 63 6c 6f 73 65 73 20 74 68 65 |ction closes the| 0003a430 20 66 69 6c 65 20 73 74 72 65 61 6d 20 77 68 6f | file stream who| 0003a440 73 65 20 68 61 6e 64 6c 65 20 69 73 20 67 69 76 |se handle is giv| 0003a450 65 6e 20 69 6e 20 2f 68 6e 64 2f 2e 20 54 68 65 |en in /hnd/. The| 0003a460 20 73 74 72 65 61 6d 20 69 73 20 6e 6f 77 20 69 | stream is now i| 0003a470 6e 76 61 6c 69 64 2e 20 41 6e 79 20 64 61 74 61 |nvalid. Any data| 0003a480 20 63 75 72 72 65 6e 74 6c 79 20 62 75 66 66 65 | currently buffe| 0003a490 72 65 64 20 74 6f 20 62 65 20 77 72 69 74 74 65 |red to be writte| 0003a4a0 6e 20 6f 75 74 20 77 69 6c 6c 20 62 65 20 77 72 |n out will be wr| 0003a4b0 69 74 74 65 6e 20 6f 75 74 20 62 65 66 6f 72 65 |itten out before| 0003a4c0 20 63 6c 6f 73 75 72 65 2e 00 00 00 44 41 54 41 | closure....DATA| 0003a4d0 61 01 00 00 46 69 6c 65 5f 44 65 6c 65 74 65 0a |a...File_Delete.| 0003a4e0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0003a4f0 72 3e 20 2a 46 69 6c 65 5f 44 65 6c 65 74 65 20 |r> *File_Delete | 0003a500 28 63 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 29 |(char *filename)| 0003a510 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0003a520 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f |ib:File.h=>File_| 0003a530 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 0003a540 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 0003a550 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 0003a560 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0003a570 20 61 74 74 65 6d 70 74 73 20 74 6f 20 72 65 6d | attempts to rem| 0003a580 6f 76 65 20 74 68 65 20 66 69 6c 65 20 77 68 6f |ove the file who| 0003a590 73 65 20 6e 61 6d 65 20 69 73 20 63 6f 6e 74 61 |se name is conta| 0003a5a0 69 6e 65 64 20 69 6e 20 2f 66 69 6c 65 6e 61 6d |ined in /filenam| 0003a5b0 65 2f 2e 20 54 68 69 73 20 69 73 20 65 71 75 69 |e/. This is equi| 0003a5c0 76 61 6c 65 6e 74 20 74 6f 20 2a 44 65 6c 65 74 |valent to *Delet| 0003a5d0 65 20 6f 72 20 3c 4f 53 5f 46 69 6c 65 20 36 3d |e or <OS_File 6=| 0003a5e0 3e 53 57 49 3a 6f 73 5f 66 69 6c 65 36 3e 2e 20 |>SWI:os_file6>. | 0003a5f0 49 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 6f |If the file is o| 0003a600 70 65 6e 2c 20 74 68 65 20 66 75 6e 63 74 69 6f |pen, the functio| 0003a610 6e 20 77 69 6c 6c 20 61 6c 6d 6f 73 74 20 63 65 |n will almost ce| 0003a620 72 74 61 69 6e 6c 79 20 66 61 69 6c 2e 00 00 00 |rtainly fail....| 0003a630 44 41 54 41 d8 00 00 00 46 69 6c 65 5f 45 4f 46 |DATA....File_EOF| 0003a640 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 |.Syntax:.<BOOL> | 0003a650 46 69 6c 65 5f 45 4f 46 20 28 3c 66 69 6c 65 5f |File_EOF (<file_| 0003a660 68 61 6e 64 6c 65 3e 20 68 6e 64 29 3b 0a 48 65 |handle> hnd);.He| 0003a670 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 |ader:.<DeskLib:F| 0003a680 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 0a 0a |ile.h=>File_h>..| 0003a690 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 0003a6a0 69 66 20 61 74 20 65 6e 64 2d 6f 66 2d 66 69 6c |if at end-of-fil| 0003a6b0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0003a6c0 6e 20 74 65 73 74 73 20 74 6f 20 73 65 65 20 69 |n tests to see i| 0003a6d0 66 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 |f the end of the| 0003a6e0 20 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 20 | specified file | 0003a6f0 73 74 72 65 61 6d 20 68 61 73 20 62 65 65 6e 20 |stream has been | 0003a700 72 65 61 63 68 65 64 2e 44 41 54 41 01 01 00 00 |reached.DATA....| 0003a710 46 69 6c 65 5f 45 78 69 73 74 73 0a 53 79 6e 74 |File_Exists.Synt| 0003a720 61 78 3a 09 3c 42 4f 4f 4c 3e 20 46 69 6c 65 5f |ax:.<BOOL> File_| 0003a730 45 78 69 73 74 73 20 28 63 68 61 72 20 2a 66 69 |Exists (char *fi| 0003a740 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a |lename);.Header:| 0003a750 09 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 |.<DeskLib:File.h| 0003a760 3d 3e 46 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 |=>File_h>..Retur| 0003a770 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 74 68 |ns:.<TRUE> if th| 0003a780 65 20 66 69 6c 65 20 65 78 69 73 74 73 2e 0a 0a |e file exists...| 0003a790 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 |This function ch| 0003a7a0 65 63 6b 73 20 69 66 20 74 68 65 20 66 69 6c 65 |ecks if the file| 0003a7b0 20 77 68 6f 73 65 20 66 69 6c 65 6e 61 6d 65 20 | whose filename | 0003a7c0 69 73 20 67 69 76 65 6e 20 65 78 69 73 74 73 2e |is given exists.| 0003a7d0 20 49 74 20 64 6f 65 73 20 74 68 69 73 20 62 79 | It does this by| 0003a7e0 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 6f | attempting to o| 0003a7f0 70 65 6e 20 74 68 65 20 66 69 6c 65 20 66 6f 72 |pen the file for| 0003a800 20 72 65 61 64 69 6e 67 2e 00 00 00 44 41 54 41 | reading....DATA| 0003a810 80 01 00 00 46 69 6c 65 5f 47 65 74 4c 65 6e 67 |....File_GetLeng| 0003a820 74 68 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |th.Syntax:.<os_e| 0003a830 72 72 6f 72 3e 20 2a 46 69 6c 65 5f 47 65 74 4c |rror> *File_GetL| 0003a840 65 6e 67 74 68 20 28 63 68 61 72 20 2a 66 69 6c |ength (char *fil| 0003a850 65 6e 61 6d 65 2c 20 69 6e 74 20 2a 73 69 7a 65 |ename, int *size| 0003a860 5f 70 74 72 29 3b 0a 48 65 61 64 65 72 73 3a 09 |_ptr);.Headers:.| 0003a870 3c 54 69 6d 73 4c 69 62 3a 46 69 6c 65 2e 68 3d |<TimsLib:File.h=| 0003a880 3e 46 69 6c 65 5f 54 4c 3e 0a 09 3c 44 65 73 6b |>File_TL>..<Desk| 0003a890 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 |Lib:File.h=>File| 0003a8a0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 0003a8b0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 0003a8c0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 0003a8d0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0003a8e0 6e 20 72 65 61 64 73 20 74 68 65 20 6c 65 6e 67 |n reads the leng| 0003a8f0 74 68 20 6f 66 20 74 68 65 20 66 69 6c 65 20 2f |th of the file /| 0003a900 66 69 6c 65 6e 61 6d 65 2f 20 69 6e 20 62 79 74 |filename/ in byt| 0003a910 65 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 |es and returns i| 0003a920 74 20 69 6e 20 7b 2f 7d 2a 73 69 7a 65 5f 70 74 |t in {/}*size_pt| 0003a930 72 7b 2f 7d 2e 20 49 74 20 69 73 20 61 63 74 75 |r{/}. It is actu| 0003a940 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 61 73 20 |ally defined as | 0003a950 61 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 |a function-like | 0003a960 6d 61 63 72 6f 20 63 61 6c 6c 69 6e 67 20 53 57 |macro calling SW| 0003a970 49 20 3c 4f 53 5f 46 69 6c 65 20 35 3d 3e 53 57 |I <OS_File 5=>SW| 0003a980 49 3a 6f 73 5f 66 69 6c 65 35 3e 2e 44 41 54 41 |I:os_file5>.DATA| 0003a990 f7 00 00 00 46 69 6c 65 5f 47 65 74 54 79 70 65 |....File_GetType| 0003a9a0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 46 69 6c |.Syntax:.int Fil| 0003a9b0 65 5f 47 65 74 54 79 70 65 20 28 63 68 61 72 20 |e_GetType (char | 0003a9c0 2a 66 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 |*filename);.Head| 0003a9d0 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 46 69 6c |er:.<TimsLib:Fil| 0003a9e0 65 2e 68 3d 3e 46 69 6c 65 5f 54 4c 3e 0a 09 3c |e.h=>File_TL>..<| 0003a9f0 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e |DeskLib:File.h=>| 0003aa00 46 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |File_h>..Returns| 0003aa10 3a 09 46 69 6c 65 20 74 79 70 65 20 6f 66 20 66 |:.File type of f| 0003aa20 69 6c 65 2c 20 6f 72 20 2d 31 20 66 6f 72 20 65 |ile, or -1 for e| 0003aa30 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |rror...This func| 0003aa40 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 3c |tion reads the <| 0003aa50 66 69 6c 65 20 74 79 70 65 3d 3e 46 69 6c 65 54 |file type=>FileT| 0003aa60 79 70 65 73 3a 21 52 6f 6f 74 3e 20 6f 66 20 74 |ypes:!Root> of t| 0003aa70 68 65 20 66 69 6c 65 20 2f 66 69 6c 65 6e 61 6d |he file /filenam| 0003aa80 65 2f 2e 00 44 41 54 41 6b 03 00 00 44 65 73 6b |e/..DATAk...Desk| 0003aa90 4c 69 62 3a 46 69 6c 65 2e 68 0a 56 65 72 73 69 |Lib:File.h.Versi| 0003aaa0 6f 6e 3a 20 31 2e 30 33 20 28 32 36 20 4a 75 6e |on: 1.03 (26 Jun| 0003aab0 20 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 65 | 1994).#line.The| 0003aac0 20 7b 2a 7d 46 69 6c 65 2e 68 7b 2a 7d 20 68 65 | {*}File.h{*} he| 0003aad0 61 64 65 72 20 64 65 66 69 6e 65 73 20 61 20 6e |ader defines a n| 0003aae0 75 6d 62 65 72 20 6f 66 20 66 75 6e 63 74 69 6f |umber of functio| 0003aaf0 6e 73 20 61 6e 64 20 74 79 70 65 73 20 66 6f 72 |ns and types for| 0003ab00 20 68 61 6e 64 6c 69 6e 67 20 66 69 6c 65 73 2e | handling files.| 0003ab10 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 | These functions| 0003ab20 20 61 72 65 20 6d 75 63 68 20 66 61 73 74 65 72 | are much faster| 0003ab30 20 74 68 61 6e 20 74 68 6f 73 65 20 69 6e 20 3c | than those in <| 0003ab40 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 2c |stdio.h=>stdio>,| 0003ab50 20 61 6e 64 20 75 73 65 20 52 49 53 43 20 4f 53 | and use RISC OS| 0003ab60 20 66 69 6c 65 20 68 61 6e 64 6c 65 73 2e 0a 0a | file handles...| 0003ab70 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 |Functions:..#ind| 0003ab80 65 6e 74 20 36 0a 23 54 61 62 6c 65 20 63 6f 6c |ent 6.#Table col| 0003ab90 75 6d 6e 73 20 33 0a 3c 46 69 6c 65 5f 43 6c 6f |umns 3.<File_Clo| 0003aba0 73 65 3e 0a 3c 46 69 6c 65 5f 44 65 6c 65 74 65 |se>.<File_Delete| 0003abb0 3e 0a 3c 46 69 6c 65 5f 45 4f 46 3e 0a 3c 46 69 |>.<File_EOF>.<Fi| 0003abc0 6c 65 5f 45 78 69 73 74 73 3e 0a 3c 46 69 6c 65 |le_Exists>.<File| 0003abd0 5f 4f 70 65 6e 3e 0a 3c 46 69 6c 65 5f 52 65 61 |_Open>.<File_Rea| 0003abe0 64 38 3e 0a 3c 46 69 6c 65 5f 52 65 61 64 33 32 |d8>.<File_Read32| 0003abf0 3e 0a 3c 46 69 6c 65 5f 52 65 61 64 33 32 52 3e |>.<File_Read32R>| 0003ac00 0a 3c 46 69 6c 65 5f 52 65 61 64 42 79 74 65 73 |.<File_ReadBytes| 0003ac10 3e 0a 3c 46 69 6c 65 5f 52 65 74 75 72 6e 50 6f |>.<File_ReturnPo| 0003ac20 73 3e 0a 3c 46 69 6c 65 5f 53 65 65 6b 3e 0a 3c |s>.<File_Seek>.<| 0003ac30 46 69 6c 65 5f 53 69 7a 65 3e 0a 3c 46 69 6c 65 |File_Size>.<File| 0003ac40 5f 57 72 69 74 65 38 3e 0a 3c 46 69 6c 65 5f 57 |_Write8>.<File_W| 0003ac50 72 69 74 65 33 32 3e 0a 3c 46 69 6c 65 5f 57 72 |rite32>.<File_Wr| 0003ac60 69 74 65 33 32 52 3e 0a 3c 46 69 6c 65 5f 57 72 |ite32R>.<File_Wr| 0003ac70 69 74 65 42 79 74 65 73 3e 0a 3c 46 69 6c 65 5f |iteBytes>.<File_| 0003ac80 53 65 74 54 79 70 65 3e 0a 3c 46 69 6c 65 5f 47 |SetType>.<File_G| 0003ac90 65 74 54 79 70 65 3e 0a 3c 46 69 6c 65 5f 47 65 |etType>.<File_Ge| 0003aca0 74 4c 65 6e 67 74 68 3e 0a 3c 46 69 6c 65 5f 4c |tLength>.<File_L| 0003acb0 6f 61 64 54 6f 3e 0a 3c 46 69 6c 65 5f 49 73 44 |oadTo>.<File_IsD| 0003acc0 69 72 65 63 74 6f 72 79 3e 0a 3c 46 69 6c 65 5f |irectory>.<File_| 0003acd0 44 61 74 65 3e 0a 3c 46 69 6c 65 5f 70 72 69 6e |Date>.<File_prin| 0003ace0 74 66 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 |tf>.#EndTable..#| 0003acf0 49 6e 64 65 6e 74 20 30 0a 4d 61 63 72 6f 73 3a |Indent 0.Macros:| 0003ad00 0a 0a 23 69 6e 64 65 6e 74 20 39 0a 23 54 61 62 |..#indent 9.#Tab| 0003ad10 6c 65 20 32 20 32 30 0a 3c 66 69 6c 65 5f 52 45 |le 2 20.<file_RE| 0003ad20 41 44 45 52 52 4f 52 3e 0a 3c 46 49 4c 45 54 59 |ADERROR>.<FILETY| 0003ad30 50 45 3e 0a 3c 46 69 6c 65 74 79 70 65 20 4d 61 |PE>.<Filetype Ma| 0003ad40 63 72 6f 73 3d 3e 66 69 6c 65 74 79 70 65 5f 3e |cros=>filetype_>| 0003ad50 0a 23 45 6e 64 54 61 62 6c 65 0a 23 49 6e 64 65 |.#EndTable.#Inde| 0003ad60 6e 74 20 30 0a 0a 54 79 70 65 73 3a 0a 0a 23 69 |nt 0..Types:..#i| 0003ad70 6e 64 65 6e 74 20 31 34 0a 23 54 61 62 6c 65 20 |ndent 14.#Table | 0003ad80 32 20 32 30 0a 3c 66 69 6c 65 5f 70 6f 73 69 74 |2 20.<file_posit| 0003ad90 69 6f 6e 3e 0a 3c 66 69 6c 65 5f 68 61 6e 64 6c |ion>.<file_handl| 0003ada0 65 3e 0a 3c 66 69 6c 65 5f 61 63 63 65 73 73 3e |e>.<file_access>| 0003adb0 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 |.#EndTable..#Ind| 0003adc0 65 6e 74 20 30 0a 56 61 72 69 61 62 6c 65 3a 0a |ent 0.Variable:.| 0003add0 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c |.{align centre}<| 0003ade0 66 69 6c 65 5f 6c 61 73 74 65 72 72 6f 72 3e 00 |file_lasterror>.| 0003adf0 44 41 54 41 87 00 00 00 66 69 6c 65 5f 68 61 6e |DATA....file_han| 0003ae00 64 6c 65 0a 54 68 65 20 74 79 70 65 20 66 69 6c |dle.The type fil| 0003ae10 65 5f 68 61 6e 64 6c 65 20 69 73 20 64 65 66 69 |e_handle is defi| 0003ae20 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 0003ae30 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 20 |File.h=>File_h> | 0003ae40 61 73 20 61 20 74 79 70 65 20 63 61 70 61 62 6c |as a type capabl| 0003ae50 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 68 |e of holding a h| 0003ae60 61 6e 64 6c 65 20 66 6f 72 20 61 6e 20 6f 70 65 |andle for an ope| 0003ae70 6e 20 66 69 6c 65 2e 00 44 41 54 41 b6 00 00 00 |n file..DATA....| 0003ae80 46 69 6c 65 5f 49 73 44 69 72 65 63 74 6f 72 79 |File_IsDirectory| 0003ae90 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 |.Syntax:.<BOOL> | 0003aea0 46 69 6c 65 5f 49 73 44 69 72 65 63 74 6f 72 79 |File_IsDirectory| 0003aeb0 20 28 63 68 61 72 20 2a 70 61 74 68 6e 61 6d 65 | (char *pathname| 0003aec0 29 3b 0a 48 65 61 64 65 72 73 3a 09 3c 54 69 6d |);.Headers:.<Tim| 0003aed0 73 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c |sLib:File.h=>Fil| 0003aee0 65 5f 54 4c 3e 0a 09 3c 44 65 73 6b 4c 69 62 3a |e_TL>..<DeskLib:| 0003aef0 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 0a |File.h=>File_h>.| 0003af00 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e |.Returns:.<TRUE>| 0003af10 20 69 66 20 2f 70 61 74 68 6e 61 6d 65 2f 20 69 | if /pathname/ i| 0003af20 73 20 61 20 64 69 72 65 63 74 6f 72 79 2e 00 00 |s a directory...| 0003af30 44 41 54 41 77 01 00 00 66 69 6c 65 5f 6c 61 73 |DATAw...file_las| 0003af40 74 65 72 72 6f 72 0a 54 68 65 20 76 61 72 69 61 |terror.The varia| 0003af50 62 6c 65 20 66 69 6c 65 5f 6c 61 73 74 65 72 72 |ble file_lasterr| 0003af60 6f 72 20 69 73 20 64 65 63 6c 61 72 65 64 20 69 |or is declared i| 0003af70 6e 20 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e |n <DeskLib:File.| 0003af80 68 3d 3e 46 69 6c 65 5f 68 3e 2e 20 49 74 20 69 |h=>File_h>. It i| 0003af90 73 20 6f 66 20 74 79 70 65 20 3c 6f 73 5f 65 72 |s of type <os_er| 0003afa0 72 6f 72 3e 20 2a 2e 20 49 74 20 69 73 20 75 73 |ror> *. It is us| 0003afb0 65 64 20 74 6f 20 72 65 74 75 72 6e 20 65 72 72 |ed to return err| 0003afc0 6f 72 73 20 66 72 6f 6d 20 74 68 65 20 66 6f 6c |ors from the fol| 0003afd0 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 |lowing functions| 0003afe0 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d 6e |:..#table column| 0003aff0 73 20 33 0a 3c 46 69 6c 65 5f 4f 70 65 6e 3e 20 |s 3.<File_Open> | 0003b000 20 20 20 0a 3c 46 69 6c 65 5f 52 65 61 64 38 3e | .<File_Read8>| 0003b010 20 20 20 20 0a 3c 46 69 6c 65 5f 57 72 69 74 65 | .<File_Write| 0003b020 38 3e 20 20 20 20 0a 3c 46 69 6c 65 5f 53 65 65 |8> .<File_See| 0003b030 6b 3e 20 20 0a 3c 46 69 6c 65 5f 43 6c 6f 73 65 |k> .<File_Close| 0003b040 3e 0a 3c 46 69 6c 65 5f 52 65 61 64 33 32 3e 0a |>.<File_Read32>.| 0003b050 3c 46 69 6c 65 5f 57 72 69 74 65 33 32 3e 0a 3c |<File_Write32>.<| 0003b060 46 69 6c 65 5f 52 65 74 75 72 6e 50 6f 73 3e 0a |File_ReturnPos>.| 0003b070 3c 46 69 6c 65 5f 45 4f 46 3e 0a 3c 46 69 6c 65 |<File_EOF>.<File| 0003b080 5f 52 65 61 64 42 79 74 65 73 3e 0a 3c 46 69 6c |_ReadBytes>.<Fil| 0003b090 65 5f 57 72 69 74 65 42 79 74 65 73 3e 0a 23 65 |e_WriteBytes>.#e| 0003b0a0 6e 64 74 61 62 6c 65 00 44 41 54 41 54 01 00 00 |ndtable.DATAT...| 0003b0b0 46 69 6c 65 5f 4c 6f 61 64 54 6f 0a 53 79 6e 74 |File_LoadTo.Synt| 0003b0c0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0003b0d0 46 69 6c 65 5f 4c 6f 61 64 54 6f 20 28 63 68 61 |File_LoadTo (cha| 0003b0e0 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 76 6f 69 |r *filename, voi| 0003b0f0 64 20 2a 61 64 64 72 65 73 73 2c 20 69 6e 74 20 |d *address, int | 0003b100 2a 73 69 7a 65 29 3b 0a 48 65 61 64 65 72 3a 09 |*size);.Header:.| 0003b110 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d |<DeskLib:File.h=| 0003b120 3e 46 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |>File_h>..Return| 0003b130 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 0003b140 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 0003b150 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 0003b160 6e 63 74 69 6f 6e 73 20 6c 6f 61 64 73 20 74 68 |nctions loads th| 0003b170 65 20 66 69 6c 65 20 77 68 6f 73 65 20 66 69 6c |e file whose fil| 0003b180 65 6e 61 6d 65 20 69 73 20 67 69 76 65 6e 20 69 |ename is given i| 0003b190 6e 74 6f 20 6d 65 6d 6f 72 79 20 61 74 20 74 68 |nto memory at th| 0003b1a0 65 20 61 64 64 72 65 73 73 20 73 70 65 63 69 66 |e address specif| 0003b1b0 69 65 64 2e 20 49 66 20 2f 73 69 7a 65 2f 20 69 |ied. If /size/ i| 0003b1c0 73 20 6e 6f 74 20 3c 4e 55 4c 4c 3e 2c 20 74 68 |s not <NULL>, th| 0003b1d0 65 6e 20 74 68 65 20 73 69 7a 65 20 77 69 6c 6c |en the size will| 0003b1e0 20 62 65 20 72 65 74 75 72 6e 65 64 20 69 6e 20 | be returned in | 0003b1f0 7b 2f 7d 2a 73 69 7a 65 7b 2f 7d 2e 44 41 54 41 |{/}*size{/}.DATA| 0003b200 dd 03 00 00 46 69 6c 65 20 4d 6f 64 65 73 0a 54 |....File Modes.T| 0003b210 68 65 20 6d 6f 64 65 20 70 61 72 61 6d 65 74 65 |he mode paramete| 0003b220 72 20 69 73 20 61 20 73 74 72 69 6e 67 20 73 70 |r is a string sp| 0003b230 65 63 69 66 79 69 6e 67 20 74 68 65 20 6d 6f 64 |ecifying the mod| 0003b240 65 73 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 |es in which the | 0003b250 66 69 6c 65 20 69 73 20 74 6f 20 62 65 20 6f 70 |file is to be op| 0003b260 65 6e 65 64 2e 20 54 68 65 72 65 20 61 72 65 20 |ened. There are | 0003b270 74 68 72 65 65 20 62 61 73 69 63 20 6d 6f 64 65 |three basic mode| 0003b280 73 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 23 |s as follows:..#| 0003b290 69 6e 64 65 6e 74 20 32 0a 2a 72 2a 09 46 69 6c |indent 2.*r*.Fil| 0003b2a0 65 20 69 73 20 6f 70 65 6e 65 64 20 66 6f 72 20 |e is opened for | 0003b2b0 72 65 61 64 69 6e 67 2e 20 54 68 65 20 66 69 6c |reading. The fil| 0003b2c0 65 20 6d 75 73 74 20 61 6c 72 65 61 64 79 20 65 |e must already e| 0003b2d0 78 69 73 74 2e 0a 2a 77 2a 09 46 69 6c 65 20 69 |xist..*w*.File i| 0003b2e0 73 20 6f 70 65 6e 65 64 20 66 6f 72 20 77 72 69 |s opened for wri| 0003b2f0 74 69 6e 67 2e 20 49 66 20 74 68 65 20 66 69 6c |ting. If the fil| 0003b300 65 20 65 78 69 73 74 73 20 74 68 65 6e 20 69 74 |e exists then it| 0003b310 20 77 69 6c 6c 20 62 65 20 64 65 6c 65 74 65 64 | will be deleted| 0003b320 20 66 69 72 73 74 2e 0a 2a 61 2a 09 46 69 6c 65 | first..*a*.File| 0003b330 20 69 73 20 6f 70 65 6e 65 64 20 66 6f 72 20 61 | is opened for a| 0003b340 70 70 65 6e 64 69 6e 67 2e 20 41 6c 6c 20 77 72 |ppending. All wr| 0003b350 69 74 69 6e 67 20 74 61 6b 65 73 20 70 6c 61 63 |iting takes plac| 0003b360 65 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 |e at the end of | 0003b370 74 68 65 20 66 69 6c 65 2e 0a 23 69 6e 64 65 6e |the file..#inden| 0003b380 74 0a 0a 54 68 65 6e 20 74 68 65 72 65 20 61 72 |t..Then there ar| 0003b390 65 20 74 68 65 20 74 77 6f 20 71 75 61 6c 69 66 |e the two qualif| 0003b3a0 69 65 72 73 2c 20 62 20 28 62 69 6e 61 72 79 29 |iers, b (binary)| 0003b3b0 20 61 6e 64 20 2b 20 28 75 70 64 61 74 65 29 2e | and + (update).| 0003b3c0 0a 0a 23 69 6e 64 65 6e 74 20 32 0a 2a 62 2a 09 |..#indent 2.*b*.| 0003b3d0 4e 6f 72 6d 61 6c 6c 79 20 66 69 6c 65 73 20 61 |Normally files a| 0003b3e0 72 65 20 6f 70 65 6e 65 64 20 69 6e 20 94 74 65 |re opened in .te| 0003b3f0 78 74 20 6d 6f 64 65 95 20 74 68 69 73 20 6d 65 |xt mode. this me| 0003b400 61 6e 73 20 74 68 61 74 20 77 68 61 74 20 79 6f |ans that what yo| 0003b410 75 20 73 65 6e 64 20 6f 75 74 20 6d 61 79 20 6e |u send out may n| 0003b420 6f 74 20 62 65 20 77 68 61 74 20 69 73 20 70 72 |ot be what is pr| 0003b430 65 73 65 6e 74 20 69 6e 20 74 68 65 20 66 69 6c |esent in the fil| 0003b440 65 2e 20 53 69 6d 69 6c 61 72 6c 79 2c 20 77 68 |e. Similarly, wh| 0003b450 61 74 20 79 6f 75 20 72 65 61 64 20 6d 61 79 20 |at you read may | 0003b460 6e 6f 74 20 62 65 20 77 68 61 74 20 69 73 20 69 |not be what is i| 0003b470 6e 20 74 68 65 20 66 69 6c 65 20 28 43 52 2f 4c |n the file (CR/L| 0003b480 46 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 61 |F combinations a| 0003b490 72 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 |re converted to | 0003b4a0 4c 46 29 2e 20 57 68 61 74 27 73 20 77 72 69 74 |LF). What's writ| 0003b4b0 74 65 6e 20 6f 75 74 20 61 6e 64 20 77 68 61 74 |ten out and what| 0003b4c0 27 73 20 72 65 61 64 20 69 6e 20 77 69 6c 6c 20 |'s read in will | 0003b4d0 62 65 20 74 68 65 20 73 61 6d 65 2e 20 42 69 6e |be the same. Bin| 0003b4e0 61 72 79 20 6d 6f 64 65 20 6d 65 61 6e 73 20 74 |ary mode means t| 0003b4f0 68 61 74 20 77 68 61 74 20 79 6f 75 20 72 65 61 |hat what you rea| 0003b500 64 2f 77 72 69 74 65 20 69 73 20 65 78 61 63 74 |d/write is exact| 0003b510 6c 79 20 77 68 61 74 20 69 73 20 69 6e 20 74 68 |ly what is in th| 0003b520 65 20 66 69 6c 65 2e 0a 7b 2a 7d 2b 7b 2a 7d 09 |e file..{*}+{*}.| 0003b530 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 20 |This allows the | 0003b540 66 69 6c 65 20 74 6f 20 62 65 20 75 70 64 61 74 |file to be updat| 0003b550 65 64 20 28 69 65 20 72 65 61 64 20 61 6e 64 20 |ed (ie read and | 0003b560 77 72 69 74 65 20 61 6c 6c 6f 77 65 64 29 2e 0a |write allowed)..| 0003b570 23 69 6e 64 65 6e 74 0a 0a 54 68 65 20 6d 6f 73 |#indent..The mos| 0003b580 74 20 75 73 65 66 75 6c 20 6f 70 74 69 6f 6e 73 |t useful options| 0003b590 20 61 72 65 20 70 72 6f 62 61 62 6c 79 20 94 77 | are probably .w| 0003b5a0 62 95 20 66 6f 72 20 77 72 69 74 69 6e 67 2c 20 |b. for writing, | 0003b5b0 94 72 62 95 20 66 6f 72 20 72 65 61 64 69 6e 67 |.rb. for reading| 0003b5c0 2c 20 61 6e 64 20 94 72 62 2b 95 20 66 6f 72 20 |, and .rb+. for | 0003b5d0 75 70 64 61 74 69 6e 67 2e 00 00 00 44 41 54 41 |updating....DATA| 0003b5e0 71 01 00 00 46 69 6c 65 5f 4f 70 65 6e 0a 53 79 |q...File_Open.Sy| 0003b5f0 6e 74 61 78 3a 09 3c 66 69 6c 65 5f 68 61 6e 64 |ntax:.<file_hand| 0003b600 6c 65 3e 20 46 69 6c 65 5f 4f 70 65 6e 20 28 63 |le> File_Open (c| 0003b610 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 3c |har *filename, <| 0003b620 66 69 6c 65 5f 61 63 63 65 73 73 3e 20 61 63 63 |file_access> acc| 0003b630 65 73 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ess);.Header:.<D| 0003b640 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 |eskLib:File.h=>F| 0003b650 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |ile_h>..Returns:| 0003b660 09 48 61 6e 64 6c 65 20 6f 66 20 74 68 65 20 66 |.Handle of the f| 0003b670 69 6c 65 20 73 74 72 65 61 6d 2c 20 6f 72 20 3c |ile stream, or <| 0003b680 4e 55 4c 4c 3e 2e 0a 0a 54 68 69 73 20 66 75 6e |NULL>...This fun| 0003b690 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 73 20 74 |ction attempts t| 0003b6a0 6f 20 6f 70 65 6e 20 74 68 65 20 66 69 6c 65 20 |o open the file | 0003b6b0 73 70 65 63 69 66 69 65 64 20 69 6e 20 2f 66 69 |specified in /fi| 0003b6c0 6c 65 6e 61 6d 65 2f 20 66 6f 72 20 72 61 6e 64 |lename/ for rand| 0003b6d0 6f 6d 20 61 63 63 65 73 73 20 61 63 63 6f 72 64 |om access accord| 0003b6e0 69 6e 67 20 74 6f 20 2f 61 63 63 65 73 73 2f 2e |ing to /access/.| 0003b6f0 0a 0a 49 66 20 74 68 65 20 66 75 6e 63 74 69 6f |..If the functio| 0003b700 6e 20 66 61 69 6c 73 2c 20 69 74 20 72 65 74 75 |n fails, it retu| 0003b710 72 6e 73 20 4e 55 4c 4c 20 61 6e 64 20 74 68 65 |rns NULL and the| 0003b720 20 65 72 72 6f 72 20 63 61 6e 20 62 65 20 6f 62 | error can be ob| 0003b730 74 61 69 6e 65 64 20 66 72 6f 6d 20 3c 66 69 6c |tained from <fil| 0003b740 65 5f 6c 61 73 74 65 72 72 6f 72 3e 2e 00 00 00 |e_lasterror>....| 0003b750 44 41 54 41 8d 00 00 00 66 69 6c 65 5f 70 6f 73 |DATA....file_pos| 0003b760 69 74 69 6f 6e 0a 54 68 65 20 74 79 70 65 20 66 |ition.The type f| 0003b770 69 6c 65 5f 70 6f 73 69 74 69 6f 6e 20 69 73 20 |ile_position is | 0003b780 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 0003b790 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 |Lib:File.h=>File| 0003b7a0 5f 68 3e 20 61 73 20 61 20 74 79 70 65 20 73 75 |_h> as a type su| 0003b7b0 69 74 61 62 6c 65 20 66 6f 72 20 68 6f 6c 64 69 |itable for holdi| 0003b7c0 6e 67 20 61 20 73 65 71 75 65 6e 74 69 61 6c 20 |ng a sequential | 0003b7d0 66 69 6c 65 20 70 6f 69 6e 74 65 72 2e 00 00 00 |file pointer....| 0003b7e0 44 41 54 41 d0 01 00 00 46 69 6c 65 5f 52 65 61 |DATA....File_Rea| 0003b7f0 64 33 32 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |d32.Syntax:.int | 0003b800 46 69 6c 65 5f 52 65 61 64 33 32 20 28 3c 66 69 |File_Read32 (<fi| 0003b810 6c 65 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 29 3b |le_handle> hnd);| 0003b820 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 0003b830 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 |b:File.h=>File_h| 0003b840 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 66 69 6c |>..Returns:.<fil| 0003b850 65 5f 52 45 41 44 45 52 52 4f 52 3e 20 69 66 20 |e_READERROR> if | 0003b860 66 61 69 6c 65 64 2e 0a 0a 54 68 69 73 20 66 75 |failed...This fu| 0003b870 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 61 20 33 |nction reads a 3| 0003b880 32 2d 62 69 74 20 76 61 6c 75 65 20 28 77 6f 72 |2-bit value (wor| 0003b890 64 2f 69 6e 74 2f 6c 6f 6e 67 29 20 66 72 6f 6d |d/int/long) from| 0003b8a0 20 74 68 65 20 66 69 6c 65 20 77 68 6f 73 65 20 | the file whose | 0003b8b0 68 61 6e 64 6c 65 20 69 73 20 67 69 76 65 6e 2e |handle is given.| 0003b8c0 20 49 66 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 | If an error occ| 0003b8d0 75 72 73 2c 20 66 69 6c 65 5f 52 45 41 44 45 52 |urs, file_READER| 0003b8e0 52 4f 52 20 69 73 20 72 65 74 75 72 6e 65 64 20 |ROR is returned | 0003b8f0 61 6e 64 20 74 68 65 20 65 72 72 6f 72 20 63 61 |and the error ca| 0003b900 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 66 72 |n be obtained fr| 0003b910 6f 6d 20 3c 66 69 6c 65 5f 6c 61 73 74 65 72 72 |om <file_lasterr| 0003b920 6f 72 3e 2e 20 54 68 65 20 76 61 6c 75 65 20 69 |or>. The value i| 0003b930 73 20 73 74 6f 72 65 64 20 77 69 74 68 20 4c 53 |s stored with LS| 0003b940 42 20 66 69 72 73 74 2e 0a 0a 54 68 69 73 20 66 |B first...This f| 0003b950 75 6e 63 74 69 6f 6e 20 63 61 6e 20 61 6c 73 6f |unction can also| 0003b960 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 | be called with | 0003b970 7b 2a 7d 46 69 6c 65 5f 52 65 61 64 57 6f 72 64 |{*}File_ReadWord| 0003b980 7b 2a 7d 2c 20 7b 2a 7d 46 69 6c 65 5f 52 65 61 |{*}, {*}File_Rea| 0003b990 64 49 6e 74 7b 2a 7d 20 61 6e 64 20 7b 2a 7d 46 |dInt{*} and {*}F| 0003b9a0 69 6c 65 5f 52 65 61 64 4c 6f 6e 67 7b 2a 7d 2e |ile_ReadLong{*}.| 0003b9b0 44 41 54 41 36 01 00 00 46 69 6c 65 5f 52 65 61 |DATA6...File_Rea| 0003b9c0 64 33 32 52 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |d32R.Syntax:.int| 0003b9d0 20 46 69 6c 65 5f 52 65 61 64 33 32 52 20 28 3c | File_Read32R (<| 0003b9e0 66 69 6c 65 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 |file_handle> hnd| 0003b9f0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0003ba00 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 |Lib:File.h=>File| 0003ba10 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 66 |_h>..Returns:.<f| 0003ba20 69 6c 65 5f 52 45 41 44 45 52 52 4f 52 3e 20 69 |ile_READERROR> i| 0003ba30 66 20 66 61 69 6c 65 64 2e 0a 0a 54 68 69 73 20 |f failed...This | 0003ba40 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 64 65 6e |function is iden| 0003ba50 74 69 63 61 6c 20 74 6f 20 3c 46 69 6c 65 5f 52 |tical to <File_R| 0003ba60 65 61 64 33 32 3e 2c 20 62 75 74 20 72 65 61 64 |ead32>, but read| 0003ba70 73 20 74 68 65 20 62 79 74 65 73 20 4d 53 42 20 |s the bytes MSB | 0003ba80 66 69 72 73 74 2e 20 49 74 20 63 61 6e 20 61 6c |first. It can al| 0003ba90 73 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 |so be called wit| 0003baa0 68 20 7b 2a 7d 46 69 6c 65 5f 52 65 61 64 57 6f |h {*}File_ReadWo| 0003bab0 72 64 52 7b 2a 7d 2c 20 7b 2a 7d 46 69 6c 65 5f |rdR{*}, {*}File_| 0003bac0 52 65 61 64 49 6e 74 52 7b 2a 7d 2c 20 61 6e 64 |ReadIntR{*}, and| 0003bad0 20 7b 2a 7d 46 69 6c 65 5f 52 65 61 64 4c 6f 6e | {*}File_ReadLon| 0003bae0 67 52 7b 2a 7d 2e 00 00 44 41 54 41 99 01 00 00 |gR{*}...DATA....| 0003baf0 46 69 6c 65 5f 52 65 61 64 38 0a 53 79 6e 74 61 |File_Read8.Synta| 0003bb00 78 3a 09 69 6e 74 20 46 69 6c 65 5f 52 65 61 64 |x:.int File_Read| 0003bb10 38 20 28 3c 66 69 6c 65 5f 68 61 6e 64 6c 65 3e |8 (<file_handle>| 0003bb20 20 68 6e 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c | hnd);.Header:.<| 0003bb30 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e |DeskLib:File.h=>| 0003bb40 46 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |File_h>..Returns| 0003bb50 3a 09 3c 66 69 6c 65 5f 52 45 41 44 45 52 52 4f |:.<file_READERRO| 0003bb60 52 3e 20 69 66 20 66 61 69 6c 65 64 2e 0a 0a 54 |R> if failed...T| 0003bb70 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 |his function rea| 0003bb80 64 73 20 61 6e 20 38 2d 62 69 74 20 76 61 6c 75 |ds an 8-bit valu| 0003bb90 65 20 28 62 79 74 65 2f 63 68 61 72 29 20 66 72 |e (byte/char) fr| 0003bba0 6f 6d 20 74 68 65 20 66 69 6c 65 20 77 68 6f 73 |om the file whos| 0003bbb0 65 20 68 61 6e 64 6c 65 20 69 73 20 67 69 76 65 |e handle is give| 0003bbc0 6e 20 69 6e 20 68 6e 64 2e 20 49 66 20 61 6e 20 |n in hnd. If an | 0003bbd0 65 72 72 6f 72 20 6f 63 63 75 72 73 2c 20 66 69 |error occurs, fi| 0003bbe0 6c 65 5f 52 45 41 44 45 52 52 4f 52 20 69 73 20 |le_READERROR is | 0003bbf0 72 65 74 75 72 6e 65 64 20 61 6e 64 20 74 68 65 |returned and the| 0003bc00 20 65 72 72 6f 72 20 63 61 6e 20 62 65 20 6f 62 | error can be ob| 0003bc10 74 61 69 6e 65 64 20 66 72 6f 6d 20 3c 66 69 6c |tained from <fil| 0003bc20 65 5f 6c 61 73 74 65 72 72 6f 72 3e 2e 0a 0a 54 |e_lasterror>...T| 0003bc30 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e |his function can| 0003bc40 20 61 6c 73 6f 20 62 65 20 63 61 6c 6c 65 64 20 | also be called | 0003bc50 77 69 74 68 20 7b 2a 7d 46 69 6c 65 5f 52 65 61 |with {*}File_Rea| 0003bc60 64 42 79 74 65 7b 2a 7d 20 61 6e 64 20 7b 2a 7d |dByte{*} and {*}| 0003bc70 46 69 6c 65 5f 52 65 61 64 43 68 61 72 7b 2a 7d |File_ReadChar{*}| 0003bc80 2e 00 00 00 44 41 54 41 3c 01 00 00 46 69 6c 65 |....DATA<...File| 0003bc90 5f 52 65 61 64 42 79 74 65 73 0a 53 79 6e 74 61 |_ReadBytes.Synta| 0003bca0 78 3a 09 69 6e 74 20 46 69 6c 65 5f 52 65 61 64 |x:.int File_Read| 0003bcb0 42 79 74 65 73 20 28 3c 66 69 6c 65 5f 68 61 6e |Bytes (<file_han| 0003bcc0 64 6c 65 3e 20 68 6e 64 2c 20 76 6f 69 64 20 2a |dle> hnd, void *| 0003bcd0 62 75 66 66 65 72 2c 20 69 6e 74 20 6e 62 79 74 |buffer, int nbyt| 0003bce0 65 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |es);.Header:.<De| 0003bcf0 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 |skLib:File.h=>Fi| 0003bd00 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |le_h>..Returns:.| 0003bd10 4e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 |Number of bytes | 0003bd20 4e 4f 54 20 73 75 63 63 65 73 73 66 75 6c 6c 79 |NOT successfully| 0003bd30 20 72 65 61 64 2e 0a 0a 54 68 69 73 20 66 75 6e | read...This fun| 0003bd40 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 |ction reads the | 0003bd50 67 69 76 65 6e 20 6e 75 6d 62 65 72 20 6f 66 20 |given number of | 0003bd60 62 79 74 65 73 20 6f 66 20 64 61 74 61 20 66 72 |bytes of data fr| 0003bd70 6f 6d 20 74 68 65 20 66 69 6c 65 20 77 68 6f 73 |om the file whos| 0003bd80 65 20 68 61 6e 64 6c 65 20 69 73 20 67 69 76 65 |e handle is give| 0003bd90 6e 2c 20 69 6e 74 6f 20 74 68 65 20 61 72 65 61 |n, into the area| 0003bda0 20 6f 66 20 6d 65 6d 6f 72 79 20 70 6f 69 6e 74 | of memory point| 0003bdb0 65 64 20 74 6f 20 62 79 20 62 75 66 66 65 72 2e |ed to by buffer.| 0003bdc0 44 41 54 41 cc 00 00 00 66 69 6c 65 5f 52 45 41 |DATA....file_REA| 0003bdd0 44 45 52 52 4f 52 0a 54 68 65 20 6d 61 63 72 6f |DERROR.The macro| 0003bde0 20 66 69 6c 65 5f 52 45 41 44 45 52 52 4f 52 20 | file_READERROR | 0003bdf0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 0003be00 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 |eskLib:File.h=>F| 0003be10 69 6c 65 5f 68 3e 20 61 73 20 61 20 76 61 6c 75 |ile_h> as a valu| 0003be20 65 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 61 |e indicating tha| 0003be30 74 20 61 6e 20 65 72 72 6f 72 20 68 61 73 20 6f |t an error has o| 0003be40 63 63 75 72 65 64 2e 20 49 74 20 69 73 20 72 65 |ccured. It is re| 0003be50 74 75 72 6e 65 64 20 62 79 20 73 65 76 65 72 61 |turned by severa| 0003be60 6c 20 66 75 6e 63 74 69 6f 6e 73 2e 20 49 74 20 |l functions. It | 0003be70 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 66 69 |is actually defi| 0003be80 6e 65 64 20 61 73 20 28 2d 31 29 2e 44 41 54 41 |ned as (-1).DATA| 0003be90 6a 01 00 00 46 69 6c 65 5f 52 65 74 75 72 6e 50 |j...File_ReturnP| 0003bea0 6f 73 0a 53 79 6e 74 61 78 3a 09 3c 66 69 6c 65 |os.Syntax:.<file| 0003beb0 5f 70 6f 73 69 74 69 6f 6e 3e 20 46 69 6c 65 5f |_position> File_| 0003bec0 52 65 74 75 72 6e 50 6f 73 20 28 3c 66 69 6c 65 |ReturnPos (<file| 0003bed0 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 29 3b 0a 48 |_handle> hnd);.H| 0003bee0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0003bef0 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 0a |File.h=>File_h>.| 0003bf00 0a 52 65 74 75 72 6e 73 3a 09 46 69 6c 65 20 70 |.Returns:.File p| 0003bf10 6f 69 6e 74 65 72 20 66 6f 72 20 73 74 72 65 61 |ointer for strea| 0003bf20 6d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |m...This functio| 0003bf30 6e 20 72 65 61 64 73 20 74 68 65 20 66 69 6c 65 |n reads the file| 0003bf40 20 70 6f 73 69 74 69 6f 6e 20 69 6e 64 69 63 61 | position indica| 0003bf50 74 6f 72 20 66 6f 72 20 74 68 65 20 66 69 6c 65 |tor for the file| 0003bf60 20 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 73 | whose handle is| 0003bf70 20 67 69 76 65 6e 20 69 6e 20 2f 68 6e 64 2f 2e | given in /hnd/.| 0003bf80 20 54 68 69 73 20 69 73 20 74 68 65 20 6e 75 6d | This is the num| 0003bf90 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 |ber of character| 0003bfa0 73 20 66 72 6f 6d 20 74 68 65 20 62 65 67 69 6e |s from the begin| 0003bfb0 6e 69 6e 67 20 6f 66 20 74 68 65 20 66 69 6c 65 |ning of the file| 0003bfc0 2e 20 49 66 20 61 6e 20 65 72 72 6f 72 20 6f 63 |. If an error oc| 0003bfd0 63 75 72 73 20 69 74 20 69 73 20 73 74 6f 72 65 |curs it is store| 0003bfe0 64 20 69 6e 20 3c 66 69 6c 65 5f 6c 61 73 74 65 |d in <file_laste| 0003bff0 72 72 6f 72 3e 2e 00 00 44 41 54 41 fd 00 00 00 |rror>...DATA....| 0003c000 46 69 6c 65 5f 53 65 65 6b 0a 53 79 6e 74 61 78 |File_Seek.Syntax| 0003c010 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 69 |:.<os_error> *Fi| 0003c020 6c 65 5f 53 65 65 6b 20 28 3c 66 69 6c 65 5f 68 |le_Seek (<file_h| 0003c030 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 66 69 6c |andle> hnd, <fil| 0003c040 65 5f 70 6f 73 69 74 69 6f 6e 3e 20 70 6f 73 29 |e_position> pos)| 0003c050 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0003c060 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f |ib:File.h=>File_| 0003c070 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 0003c080 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 0003c090 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 0003c0a0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0003c0b0 20 73 65 74 73 20 74 68 65 20 66 69 6c 65 20 70 | sets the file p| 0003c0c0 6f 73 69 74 69 6f 6e 20 69 6e 64 69 63 61 74 6f |osition indicato| 0003c0d0 72 20 66 6f 72 20 74 68 65 20 66 69 6c 65 20 77 |r for the file w| 0003c0e0 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 73 20 67 |hose handle is g| 0003c0f0 69 76 65 6e 2e 00 00 00 44 41 54 41 16 01 00 00 |iven....DATA....| 0003c100 46 69 6c 65 5f 53 65 74 54 79 70 65 0a 53 79 6e |File_SetType.Syn| 0003c110 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0003c120 2a 46 69 6c 65 5f 53 65 74 54 79 70 65 20 28 63 |*File_SetType (c| 0003c130 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 69 |har *filename, i| 0003c140 6e 74 20 74 79 70 65 29 3b 0a 48 65 61 64 65 72 |nt type);.Header| 0003c150 3a 09 3c 54 69 6d 73 4c 69 62 3a 46 69 6c 65 2e |:.<TimsLib:File.| 0003c160 68 3d 3e 46 69 6c 65 5f 54 4c 3e 0a 09 3c 44 65 |h=>File_TL>..<De| 0003c170 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 |skLib:File.h=>Fi| 0003c180 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |le_h>..Returns:.| 0003c190 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 0003c1a0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 0003c1b0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 0003c1c0 69 6f 6e 20 63 68 61 6e 67 65 73 20 74 68 65 20 |ion changes the | 0003c1d0 3c 66 69 6c 65 20 74 79 70 65 3d 3e 46 69 6c 65 |<file type=>File| 0003c1e0 54 79 70 65 73 3a 21 52 6f 6f 74 3e 20 6f 66 20 |Types:!Root> of | 0003c1f0 74 68 65 20 66 69 6c 65 20 2f 66 69 6c 65 6e 61 |the file /filena| 0003c200 6d 65 2f 20 74 6f 20 2f 74 79 70 65 2f 2e 00 00 |me/ to /type/...| 0003c210 44 41 54 41 49 01 00 00 46 69 6c 65 5f 53 69 7a |DATAI...File_Siz| 0003c220 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 46 69 |e.Syntax:.int Fi| 0003c230 6c 65 5f 53 69 7a 65 20 28 63 68 61 72 20 2a 66 |le_Size (char *f| 0003c240 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 |ilename);.Header| 0003c250 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 65 2e |:.<DeskLib:File.| 0003c260 68 3d 3e 46 69 6c 65 3e 0a 0a 52 65 74 75 72 6e |h=>File>..Return| 0003c270 73 3a 09 53 69 7a 65 20 6f 66 20 74 68 65 20 66 |s:.Size of the f| 0003c280 69 6c 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ile...This funct| 0003c290 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 73 69 |ion reads the si| 0003c2a0 7a 65 20 69 6e 20 62 79 74 65 73 20 6f 66 20 74 |ze in bytes of t| 0003c2b0 68 65 20 66 69 6c 65 20 77 68 6f 73 65 20 66 69 |he file whose fi| 0003c2c0 6c 65 6e 61 6d 65 20 69 73 20 67 69 76 65 6e 2e |lename is given.| 0003c2d0 20 41 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 | A return value | 0003c2e0 6f 66 20 30 20 6d 65 61 6e 73 20 74 68 61 74 20 |of 0 means that | 0003c2f0 74 68 65 20 66 69 6c 65 20 69 73 20 6f 66 20 6c |the file is of l| 0003c300 65 6e 67 74 68 20 30 2c 20 6f 72 20 61 6e 20 65 |ength 0, or an e| 0003c310 72 72 6f 72 20 6f 63 63 75 72 65 64 2e 20 49 66 |rror occured. If| 0003c320 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 65 | an error occure| 0003c330 64 2c 20 69 74 20 63 61 6e 20 62 65 20 66 6f 75 |d, it can be fou| 0003c340 6e 64 20 66 72 6f 6d 20 3c 66 69 6c 65 5f 6c 61 |nd from <file_la| 0003c350 73 74 65 72 72 6f 72 3e 2e 00 00 00 44 41 54 41 |sterror>....DATA| 0003c360 5a 01 00 00 54 69 6d 73 4c 69 62 3a 46 69 6c 65 |Z...TimsLib:File| 0003c370 2e 68 0a 23 50 61 72 65 6e 74 20 72 6f 5f 74 6c |.h.#Parent ro_tl| 0003c380 69 62 5f 0a 54 68 69 73 20 68 65 61 64 65 72 20 |ib_.This header | 0003c390 69 73 20 61 6e 20 65 78 74 65 6e 73 69 6f 6e 20 |is an extension | 0003c3a0 74 6f 20 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 65 |to <DeskLib:File| 0003c3b0 2e 68 3d 3e 46 69 6c 65 5f 68 3e 2e 0a 0a 46 75 |.h=>File_h>...Fu| 0003c3c0 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e |nctions:..#inden| 0003c3d0 74 20 35 0a 23 54 61 62 6c 65 20 33 20 31 38 0a |t 5.#Table 3 18.| 0003c3e0 3c 46 69 6c 65 5f 53 65 74 54 79 70 65 3e 0a 3c |<File_SetType>.<| 0003c3f0 46 69 6c 65 5f 47 65 74 54 79 70 65 3e 0a 3c 46 |File_GetType>.<F| 0003c400 69 6c 65 5f 47 65 74 4c 65 6e 67 74 68 3e 0a 3c |ile_GetLength>.<| 0003c410 52 65 61 64 45 6e 74 72 69 65 73 3e 0a 3c 46 69 |ReadEntries>.<Fi| 0003c420 6c 65 5f 49 73 44 69 72 65 63 74 6f 72 79 3e 0a |le_IsDirectory>.| 0003c430 23 45 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e |#EndTable.#inden| 0003c440 74 20 30 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 23 69 |t 0..Macros:..#i| 0003c450 6e 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 31 |ndent 5.#Table 1| 0003c460 20 31 38 0a 3c 4d 41 58 5f 50 41 54 48 5f 4c 45 | 18.<MAX_PATH_LE| 0003c470 4e 3e 0a 3c 46 49 4c 45 54 59 50 45 3e 0a 23 45 |N>.<FILETYPE>.#E| 0003c480 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 |ndTable.#indent | 0003c490 30 0a 0a 54 79 70 65 73 3a 0a 0a 7b 61 6c 69 67 |0..Types:..{alig| 0003c4a0 6e 20 63 65 6e 74 72 65 7d 3c 6f 62 6a 65 63 74 |n centre}<object| 0003c4b0 5f 69 6e 66 6f 3e 00 00 44 41 54 41 6e 01 00 00 |_info>..DATAn...| 0003c4c0 46 69 6c 65 5f 57 72 69 74 65 33 32 0a 53 79 6e |File_Write32.Syn| 0003c4d0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0003c4e0 2a 46 69 6c 65 5f 57 72 69 74 65 33 32 20 28 3c |*File_Write32 (<| 0003c4f0 66 69 6c 65 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 |file_handle> hnd| 0003c500 2c 20 69 6e 74 20 77 6f 72 64 29 3b 0a 48 65 61 |, int word);.Hea| 0003c510 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 69 |der:.<DeskLib:Fi| 0003c520 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 0a 0a 52 |le.h=>File_h>..R| 0003c530 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0003c540 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0003c550 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0003c560 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 |is function writ| 0003c570 65 73 20 61 20 33 32 2d 62 69 74 20 76 61 6c 75 |es a 32-bit valu| 0003c580 65 20 28 77 6f 72 64 2f 69 6e 74 2f 6c 6f 6e 67 |e (word/int/long| 0003c590 29 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 |) to the file wh| 0003c5a0 6f 73 65 20 68 61 6e 64 6c 65 20 69 73 20 67 69 |ose handle is gi| 0003c5b0 76 65 6e 20 69 6e 20 68 6e 64 2e 0a 0a 54 68 69 |ven in hnd...Thi| 0003c5c0 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 61 |s function can a| 0003c5d0 6c 73 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 69 |lso be called wi| 0003c5e0 74 68 20 7b 2a 7d 46 69 6c 65 5f 57 72 69 74 65 |th {*}File_Write| 0003c5f0 57 6f 72 64 7b 2a 7d 2c 20 7b 2a 7d 46 69 6c 65 |Word{*}, {*}File| 0003c600 5f 57 72 69 74 65 49 6e 74 7b 2a 7d 20 61 6e 64 |_WriteInt{*} and| 0003c610 20 7b 2a 7d 46 69 6c 65 5f 57 72 69 74 65 4c 6f | {*}File_WriteLo| 0003c620 6e 67 7b 2a 7d 2e 00 00 44 41 54 41 57 01 00 00 |ng{*}...DATAW...| 0003c630 46 69 6c 65 5f 57 72 69 74 65 33 32 52 0a 53 79 |File_Write32R.Sy| 0003c640 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 0003c650 20 2a 46 69 6c 65 5f 57 72 69 74 65 33 32 52 20 | *File_Write32R | 0003c660 28 3c 66 69 6c 65 5f 68 61 6e 64 6c 65 3e 20 68 |(<file_handle> h| 0003c670 6e 64 2c 20 69 6e 74 20 77 6f 72 64 29 3b 0a 48 |nd, int word);.H| 0003c680 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0003c690 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 0a |File.h=>File_h>.| 0003c6a0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 0003c6b0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 0003c6c0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 0003c6d0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 |This function is| 0003c6e0 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c 46 | identical to <F| 0003c6f0 69 6c 65 5f 57 72 69 74 65 33 32 3e 2c 20 62 75 |ile_Write32>, bu| 0003c700 74 20 77 72 69 74 65 73 20 74 68 65 20 62 79 74 |t writes the byt| 0003c710 65 73 20 4d 53 42 20 66 69 72 73 74 2e 20 49 74 |es MSB first. It| 0003c720 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 63 61 6c | can also be cal| 0003c730 6c 65 64 20 77 69 74 68 20 7b 2a 7d 46 69 6c 65 |led with {*}File| 0003c740 5f 57 72 69 74 65 57 6f 72 64 52 7b 2a 7d 2c 20 |_WriteWordR{*}, | 0003c750 7b 2a 7d 46 69 6c 65 5f 57 72 69 74 65 49 6e 74 |{*}File_WriteInt| 0003c760 52 7b 2a 7d 20 61 6e 64 20 7b 2a 7d 46 69 6c 65 |R{*} and {*}File| 0003c770 5f 57 72 69 74 65 4c 6f 6e 67 52 7b 2a 7d 2e 00 |_WriteLongR{*}..| 0003c780 44 41 54 41 55 01 00 00 46 69 6c 65 5f 57 72 69 |DATAU...File_Wri| 0003c790 74 65 38 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |te8.Syntax:.<os_| 0003c7a0 65 72 72 6f 72 3e 20 2a 46 69 6c 65 5f 57 72 69 |error> *File_Wri| 0003c7b0 74 65 38 20 28 3c 66 69 6c 65 5f 68 61 6e 64 6c |te8 (<file_handl| 0003c7c0 65 3e 20 68 6e 64 2c 20 69 6e 74 20 62 79 74 65 |e> hnd, int byte| 0003c7d0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0003c7e0 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 |Lib:File.h=>File| 0003c7f0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 0003c800 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 0003c810 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 0003c820 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0003c830 6e 20 77 72 69 74 65 73 20 61 6e 20 38 2d 62 69 |n writes an 8-bi| 0003c840 74 20 76 61 6c 75 65 20 28 62 79 74 65 2f 63 68 |t value (byte/ch| 0003c850 61 72 29 20 74 6f 20 74 68 65 20 66 69 6c 65 20 |ar) to the file | 0003c860 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 73 20 |whose handle is | 0003c870 67 69 76 65 6e 20 69 6e 20 2f 68 6e 64 2f 2e 0a |given in /hnd/..| 0003c880 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0003c890 61 6e 20 61 6c 73 6f 20 62 65 20 63 61 6c 6c 65 |an also be calle| 0003c8a0 64 20 77 69 74 68 20 7b 2a 7d 46 69 6c 65 5f 57 |d with {*}File_W| 0003c8b0 72 69 74 65 42 79 74 65 7b 2a 7d 20 61 6e 64 20 |riteByte{*} and | 0003c8c0 7b 2a 7d 46 69 6c 65 5f 57 72 69 74 65 43 68 61 |{*}File_WriteCha| 0003c8d0 72 7b 2a 7d 2e 00 00 00 44 41 54 41 48 01 00 00 |r{*}....DATAH...| 0003c8e0 46 69 6c 65 5f 57 72 69 74 65 42 79 74 65 73 0a |File_WriteBytes.| 0003c8f0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0003c900 72 3e 20 2a 46 69 6c 65 5f 57 72 69 74 65 42 79 |r> *File_WriteBy| 0003c910 74 65 73 20 28 3c 66 69 6c 65 5f 68 61 6e 64 6c |tes (<file_handl| 0003c920 65 3e 20 68 61 6e 64 6c 65 2c 20 76 6f 69 64 20 |e> handle, void | 0003c930 2a 62 75 66 66 65 72 2c 20 69 6e 74 20 6e 62 79 |*buffer, int nby| 0003c940 74 65 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |tes);.Header:.<D| 0003c950 65 73 6b 4c 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 |eskLib:File.h=>F| 0003c960 69 6c 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |ile_h>..Returns:| 0003c970 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0003c980 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0003c990 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0003c9a0 74 69 6f 6e 20 77 72 69 74 65 73 20 74 68 65 20 |tion writes the | 0003c9b0 67 69 76 65 6e 20 6e 75 6d 62 65 72 20 6f 66 20 |given number of | 0003c9c0 62 79 74 65 73 20 6f 66 20 64 61 74 61 20 69 6e |bytes of data in| 0003c9d0 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 6f 73 |to the file whos| 0003c9e0 65 20 68 61 6e 64 6c 65 20 69 73 20 67 69 76 65 |e handle is give| 0003c9f0 6e 2c 20 66 72 6f 6d 20 74 68 65 20 61 72 65 61 |n, from the area| 0003ca00 20 6f 66 20 6d 65 6d 6f 72 79 20 70 6f 69 6e 74 | of memory point| 0003ca10 65 64 20 74 6f 20 62 79 20 62 75 66 66 65 72 2e |ed to by buffer.| 0003ca20 44 41 54 41 e0 00 00 00 46 69 6c 65 5f 44 61 74 |DATA....File_Dat| 0003ca30 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 46 |e.Syntax:.void F| 0003ca40 69 6c 65 5f 44 61 74 65 20 28 63 68 61 72 20 2a |ile_Date (char *| 0003ca50 66 69 6c 65 6e 61 6d 65 2c 20 63 68 61 72 20 2a |filename, char *| 0003ca60 66 69 76 65 62 79 74 65 64 61 74 65 29 3b 0a 48 |fivebytedate);.H| 0003ca70 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0003ca80 46 69 6c 65 2e 68 3d 3e 66 69 6c 65 5f 68 3e 0a |File.h=>file_h>.| 0003ca90 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 0003caa0 65 61 64 73 20 74 68 65 20 64 61 74 65 73 74 61 |eads the datesta| 0003cab0 6d 70 20 6f 66 20 74 68 65 20 66 69 6c 65 20 2f |mp of the file /| 0003cac0 66 69 6c 65 6e 61 6d 65 2f 20 69 6e 74 6f 20 74 |filename/ into t| 0003cad0 68 65 20 66 69 76 65 20 62 79 74 65 20 62 6c 6f |he five byte blo| 0003cae0 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |ck pointed to by| 0003caf0 20 2f 66 69 76 65 62 79 74 65 64 61 74 61 2f 2e | /fivebytedata/.| 0003cb00 44 41 54 41 a9 01 00 00 46 69 6c 65 5f 70 72 69 |DATA....File_pri| 0003cb10 6e 74 66 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |ntf.Syntax:.int | 0003cb20 46 69 6c 65 5f 70 72 69 6e 74 66 20 28 3c 66 69 |File_printf (<fi| 0003cb30 6c 65 5f 68 61 6e 64 6c 65 3e 20 66 2c 20 63 68 |le_handle> f, ch| 0003cb40 61 72 20 2a 66 6f 72 6d 61 74 2c 20 2e 2e 2e 29 |ar *format, ...)| 0003cb50 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0003cb60 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f |ib:File.h=>File_| 0003cb70 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 |h>..Returns:.The| 0003cb80 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 | number of chara| 0003cb90 63 74 65 72 73 20 77 72 69 74 74 65 6e 2c 20 6f |cters written, o| 0003cba0 72 20 61 20 6e 65 67 61 74 69 76 65 20 76 61 6c |r a negative val| 0003cbb0 75 65 20 69 66 20 74 68 65 72 65 20 77 61 73 20 |ue if there was | 0003cbc0 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 |an error...This | 0003cbd0 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 73 20 |function writes | 0003cbe0 6f 75 74 70 75 74 20 74 6f 20 74 68 65 20 66 69 |output to the fi| 0003cbf0 6c 65 20 2f 66 2f 20 75 6e 64 65 72 20 63 6f 6e |le /f/ under con| 0003cc00 74 72 6f 6c 20 6f 66 20 74 68 65 20 3c 66 6f 72 |trol of the <for| 0003cc10 6d 61 74 20 73 74 72 69 6e 67 3d 3e 70 66 6f 72 |mat string=>pfor| 0003cc20 6d 5f 3e 2e 20 49 74 20 69 73 20 65 71 75 69 76 |m_>. It is equiv| 0003cc30 61 6c 65 6e 74 20 74 6f 20 3c 66 70 72 69 6e 74 |alent to <fprint| 0003cc40 66 3e 28 29 20 62 75 74 20 75 73 69 6e 67 20 61 |f>() but using a| 0003cc50 20 52 49 53 43 20 4f 53 20 66 69 6c 65 20 68 61 | RISC OS file ha| 0003cc60 6e 64 6c 65 2e 0a 0a 53 74 72 69 6e 67 20 6d 75 |ndle...String mu| 0003cc70 73 74 20 6e 6f 74 20 62 65 20 6c 6f 6e 67 65 72 |st not be longer| 0003cc80 20 74 68 61 6e 20 35 31 32 20 63 68 61 72 61 63 | than 512 charac| 0003cc90 74 65 72 73 20 61 66 74 65 72 20 73 75 62 73 74 |ters after subst| 0003cca0 69 74 75 74 69 6f 6e 73 2e 00 00 00 44 49 52 24 |itutions....DIR$| 0003ccb0 2c 00 00 00 2c 00 00 00 d8 cc 03 00 46 fd ff ff |,...,.......F...| 0003ccc0 e8 68 c1 22 e4 00 00 00 13 00 00 00 00 00 00 00 |.h."............| 0003ccd0 21 52 6f 6f 74 00 00 00 44 41 54 41 e4 00 00 00 |!Root...DATA....| 0003cce0 46 69 6c 65 20 48 61 6e 64 6c 69 6e 67 20 46 75 |File Handling Fu| 0003ccf0 6e 63 74 69 6f 6e 73 0a 23 50 61 72 65 6e 74 20 |nctions.#Parent | 0003cd00 73 74 64 69 6f 0a 54 68 65 73 65 20 66 75 6e 63 |stdio.These func| 0003cd10 74 69 6f 6e 73 20 64 65 61 6c 20 77 69 74 68 20 |tions deal with | 0003cd20 6d 61 6e 69 70 75 6c 61 74 69 6e 67 20 72 61 6e |manipulating ran| 0003cd30 64 6f 6d 20 61 63 63 65 73 73 20 66 69 6c 65 73 |dom access files| 0003cd40 2e 0a 0a 23 54 61 62 6c 65 20 34 20 31 36 0a 3c |...#Table 4 16.<| 0003cd50 66 63 6c 6f 73 65 3e 0a 3c 66 66 6c 75 73 68 3e |fclose>.<fflush>| 0003cd60 0a 3c 66 6f 70 65 6e 3e 0a 3c 66 72 65 6f 70 65 |.<fopen>.<freope| 0003cd70 6e 3e 0a 3c 73 65 74 62 75 66 3e 0a 3c 73 65 74 |n>.<setbuf>.<set| 0003cd80 76 62 75 66 3e 0a 3c 66 67 65 74 70 6f 73 3e 0a |vbuf>.<fgetpos>.| 0003cd90 3c 66 73 65 74 70 6f 73 3e 0a 3c 66 73 65 65 6b |<fsetpos>.<fseek| 0003cda0 3e 0a 3c 66 74 65 6c 6c 3e 0a 3c 72 65 77 69 6e |>.<ftell>.<rewin| 0003cdb0 64 3e 0a 23 45 6e 64 54 61 62 6c 65 44 41 54 41 |d>.#EndTableDATA| 0003cdc0 31 01 00 00 66 69 6c 65 69 63 6f 6e 2e 68 0a 54 |1...fileicon.h.T| 0003cdd0 68 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 |his header decla| 0003cde0 72 65 73 20 6a 75 73 74 20 6f 6e 65 20 66 75 6e |res just one fun| 0003cdf0 63 74 69 6f 6e 3a 0a 0a 53 79 6e 74 61 78 3a 09 |ction:..Syntax:.| 0003ce00 76 6f 69 64 20 66 69 6c 65 69 63 6f 6e 20 28 3c |void fileicon (<| 0003ce10 77 69 6d 70 5f 77 3e 20 77 69 6e 2c 20 3c 77 69 |wimp_w> win, <wi| 0003ce20 6d 70 5f 69 3e 20 69 63 6f 6e 2c 20 69 6e 74 20 |mp_i> icon, int | 0003ce30 66 69 6c 65 74 79 70 65 29 3b 0a 0a 54 68 69 73 |filetype);..This| 0003ce40 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 65 | function change| 0003ce50 73 20 74 68 65 20 67 69 76 65 6e 20 69 63 6f 6e |s the given icon| 0003ce60 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 | to display the | 0003ce70 66 69 6c 65 20 69 63 6f 6e 20 66 6f 72 20 74 68 |file icon for th| 0003ce80 65 20 67 69 76 65 6e 20 66 69 6c 65 74 79 70 65 |e given filetype| 0003ce90 2c 20 75 73 69 6e 67 20 22 66 69 6c 65 5f 78 78 |, using "file_xx| 0003cea0 78 22 20 66 6f 72 20 75 6e 6b 6e 6f 77 6e 20 74 |x" for unknown t| 0003ceb0 79 70 65 73 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 |ypes...See also | 0003cec0 74 68 65 20 54 69 6d 73 4c 69 62 20 66 75 6e 63 |the TimsLib func| 0003ced0 74 69 6f 6e 2c 20 3c 46 69 6c 65 49 63 6f 6e 3d |tion, <FileIcon=| 0003cee0 3e 46 69 6c 65 49 63 6f 6e 5f 68 3e 2e 00 00 00 |>FileIcon_h>....| 0003cef0 44 49 52 24 28 00 00 00 28 00 00 00 18 cf 03 00 |DIR$(...(.......| 0003cf00 46 fd ff ff 0c 64 55 26 3e 01 00 00 13 00 00 00 |F....dU&>.......| 0003cf10 00 00 00 00 68 00 00 00 44 41 54 41 3e 01 00 00 |....h...DATA>...| 0003cf20 54 69 6d 73 4c 69 62 3a 46 69 6c 65 49 63 6f 6e |TimsLib:FileIcon| 0003cf30 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 70 |.h.This header p| 0003cf40 72 6f 76 69 64 65 73 20 6a 75 73 74 20 6f 6e 65 |rovides just one| 0003cf50 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a 53 79 6e 74 | function:..Synt| 0003cf60 61 78 3a 09 76 6f 69 64 20 46 69 6c 65 49 63 6f |ax:.void FileIco| 0003cf70 6e 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |n (<window_handl| 0003cf80 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 |e> win, <icon_ha| 0003cf90 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 69 6e 74 20 |ndle> icon, int | 0003cfa0 66 69 6c 65 74 79 70 65 29 3b 0a 0a 54 68 69 73 |filetype);..This| 0003cfb0 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 65 | function change| 0003cfc0 73 20 74 68 65 20 69 63 6f 6e 20 73 70 65 63 69 |s the icon speci| 0003cfd0 66 69 65 64 20 28 77 68 69 63 68 20 6d 75 73 74 |fied (which must| 0003cfe0 20 62 65 20 61 6e 20 69 6e 64 69 72 65 63 74 65 | be an indirecte| 0003cff0 64 20 74 65 78 74 2d 6f 6e 6c 79 20 69 63 6f 6e |d text-only icon| 0003d000 29 20 74 6f 20 61 6e 20 69 6e 64 69 72 65 63 74 |) to an indirect| 0003d010 65 64 20 73 70 72 69 74 65 2d 6f 6e 6c 79 20 69 |ed sprite-only i| 0003d020 63 6f 6e 20 77 69 74 68 20 61 20 73 70 72 69 74 |con with a sprit| 0003d030 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 |e representing t| 0003d040 68 65 20 66 69 6c 65 74 79 70 65 20 73 70 65 63 |he filetype spec| 0003d050 69 66 69 65 64 2e 00 00 44 49 52 24 28 00 00 00 |ified...DIR$(...| 0003d060 28 00 00 00 80 d0 03 00 46 ff ff ff 74 8d c4 22 |(.......F...t.."| 0003d070 20 01 00 00 13 00 00 00 00 00 00 00 4d 41 58 00 | ...........MAX.| 0003d080 44 41 54 41 20 01 00 00 46 49 4c 45 4e 41 4d 45 |DATA ...FILENAME| 0003d090 5f 4d 41 58 0a 23 50 61 72 65 6e 74 20 73 74 64 |_MAX.#Parent std| 0003d0a0 69 6f 0a 54 68 65 20 6d 61 63 72 6f 20 46 49 4c |io.The macro FIL| 0003d0b0 45 4e 41 4d 45 5f 4d 41 58 20 69 73 20 64 65 66 |ENAME_MAX is def| 0003d0c0 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 |ined in <stdio.h| 0003d0d0 3d 3e 73 74 64 69 6f 3e 20 61 73 20 74 68 65 20 |=>stdio> as the | 0003d0e0 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6c 6f |length of the lo| 0003d0f0 6e 67 65 73 74 20 66 69 6c 65 6e 61 6d 65 20 74 |ngest filename t| 0003d100 68 61 74 20 63 61 6e 20 62 65 20 68 61 6e 64 6c |hat can be handl| 0003d110 65 64 20 62 79 20 74 68 65 20 66 69 6c 65 20 49 |ed by the file I| 0003d120 2f 4f 20 66 75 6e 63 74 69 6f 6e 73 2e 20 49 74 |/O functions. It| 0003d130 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 | is intended to | 0003d140 62 65 20 75 73 65 64 20 61 73 20 74 68 65 20 73 |be used as the s| 0003d150 75 62 73 63 72 69 70 74 20 66 6f 72 20 61 20 63 |ubscript for a c| 0003d160 68 61 72 20 61 72 72 61 79 20 75 73 65 64 20 74 |har array used t| 0003d170 6f 20 68 6f 6c 64 20 66 69 6c 65 6e 61 6d 65 73 |o hold filenames| 0003d180 2e 20 49 6e 20 45 61 73 79 a0 43 20 69 74 20 69 |. In Easy.C it i| 0003d190 73 20 64 65 66 69 6e 65 64 20 61 73 20 38 30 2e |s defined as 80.| 0003d1a0 44 49 52 24 2c 00 00 00 2c 00 00 00 cc d1 03 00 |DIR$,...,.......| 0003d1b0 46 fd ff ff 7b 9c c0 22 92 00 00 00 13 00 00 00 |F...{.."........| 0003d1c0 00 00 00 00 21 52 6f 6f 74 00 00 00 44 41 54 41 |....!Root...DATA| 0003d1d0 92 00 00 00 46 69 6c 65 20 4f 70 65 72 61 74 69 |....File Operati| 0003d1e0 6f 6e 20 46 75 6e 63 74 69 6f 6e 73 0a 23 50 61 |on Functions.#Pa| 0003d1f0 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 65 73 65 |rent stdio.These| 0003d200 20 66 75 6e 63 74 69 6f 6e 73 20 6f 70 65 72 61 | functions opera| 0003d210 74 65 20 6f 6e 20 77 68 6f 6c 65 20 66 69 6c 65 |te on whole file| 0003d220 73 3a 0a 0a 23 54 61 62 6c 65 20 32 20 31 38 0a |s:..#Table 2 18.| 0003d230 3c 72 65 6d 6f 76 65 3e 0a 3c 72 65 6e 61 6d 65 |<remove>.<rename| 0003d240 3e 0a 3c 74 6d 70 66 69 6c 65 3e 0a 3c 74 6d 70 |>.<tmpfile>.<tmp| 0003d250 6e 61 6d 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 |nam>.#EndTable..| 0003d260 44 49 52 24 2c 00 00 00 2c 00 00 00 8c d2 03 00 |DIR$,...,.......| 0003d270 46 fd ff ff 0a a9 b5 22 4d 00 00 00 13 00 00 00 |F......"M.......| 0003d280 00 00 00 00 21 52 6f 6f 74 00 00 00 44 41 54 41 |....!Root...DATA| 0003d290 4d 00 00 00 46 69 6c 65 72 41 63 74 69 6f 6e 0a |M...FilerAction.| 0003d2a0 53 65 6e 64 53 65 6c 65 63 74 65 64 44 69 72 65 |SendSelectedDire| 0003d2b0 63 74 6f 72 79 0a 53 65 6e 64 53 65 6c 65 63 74 |ctory.SendSelect| 0003d2c0 65 64 46 69 6c 65 0a 53 65 6e 64 53 74 61 72 74 |edFile.SendStart| 0003d2d0 4f 70 65 72 61 74 69 6f 6e 00 00 00 44 41 54 41 |Operation...DATA| 0003d2e0 09 01 00 00 46 49 4c 45 54 59 50 45 0a 54 68 69 |....FILETYPE.Thi| 0003d2f0 73 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2d |s is a function-| 0003d300 6c 69 6b 65 20 6d 61 63 72 6f 20 64 65 66 69 6e |like macro defin| 0003d310 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 46 |ed in <TimsLib:F| 0003d320 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 54 4c 3e 20 |ile.h=>File_TL> | 0003d330 61 6e 64 20 3c 44 65 73 6b 4c 69 62 3a 46 69 6c |and <DeskLib:Fil| 0003d340 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 2e 20 49 74 |e.h=>File_h>. It| 0003d350 20 73 69 6d 70 6c 79 20 72 65 74 75 72 6e 73 20 | simply returns | 0003d360 61 20 66 69 6c 65 74 79 70 65 20 66 72 6f 6d 20 |a filetype from | 0003d370 61 20 6c 6f 61 64 20 61 64 64 72 65 73 73 2e 20 |a load address. | 0003d380 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 0003d390 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 |:.{wrap off}.{fC| 0003d3a0 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |ode;align centre| 0003d3b0 7d 3c 23 64 65 66 69 6e 65 3d 3e 64 65 66 69 6e |}<#define=>defin| 0003d3c0 65 3e 20 46 49 4c 45 54 59 50 45 28 78 29 20 28 |e> FILETYPE(x) (| 0003d3d0 28 28 78 29 20 26 20 30 78 46 46 46 30 30 29 20 |((x) & 0xFFF00) | 0003d3e0 3e 3e 20 38 29 00 00 00 44 49 52 24 2c 00 00 00 |>> 8)...DIR$,...| 0003d3f0 2c 00 00 00 14 d4 03 00 46 fd ff ff 4a a9 28 25 |,.......F...J.(%| 0003d400 23 05 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |#...........!Roo| 0003d410 74 00 00 00 44 41 54 41 23 05 00 00 46 69 6c 65 |t...DATA#...File| 0003d420 20 74 79 70 65 73 0a 54 68 65 72 65 20 61 72 65 | types.There are| 0003d430 20 6d 61 63 72 6f 73 20 64 65 66 69 6e 65 64 20 | macros defined | 0003d440 66 6f 72 20 6d 61 6e 79 20 6f 66 20 74 68 65 20 |for many of the | 0003d450 63 6f 6d 6d 6f 6e 20 66 69 6c 65 20 74 79 70 65 |common file type| 0003d460 73 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 46 69 |s in <DeskLib:Fi| 0003d470 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 2e 20 54 |le.h=>File_h>. T| 0003d480 68 65 20 6d 61 63 72 6f 73 20 61 72 65 3a 0a 0a |he macros are:..| 0003d490 66 69 6c 65 74 79 70 65 5f 41 49 4d 09 09 30 78 |filetype_AIM..0x| 0003d4a0 30 30 34 09 66 69 6c 65 74 79 70 65 5f 44 45 56 |004.filetype_DEV| 0003d4b0 49 43 45 09 09 30 78 46 43 43 0a 66 69 6c 65 74 |ICE..0xFCC.filet| 0003d4c0 79 70 65 5f 43 4c 45 41 52 09 09 30 78 36 39 30 |ype_CLEAR..0x690| 0003d4d0 09 66 69 6c 65 74 79 70 65 5f 43 41 43 48 45 09 |.filetype_CACHE.| 0003d4e0 09 30 78 46 43 46 0a 66 69 6c 65 74 79 70 65 5f |.0xFCF.filetype_| 0003d4f0 44 45 47 41 53 09 09 30 78 36 39 31 09 66 69 6c |DEGAS..0x691.fil| 0003d500 65 74 79 70 65 5f 50 43 45 4d 43 4f 4e 46 09 30 |etype_PCEMCONF.0| 0003d510 78 46 44 30 0a 66 69 6c 65 74 79 70 65 5f 49 4d |xFD0.filetype_IM| 0003d520 47 09 09 30 78 36 39 32 09 66 69 6c 65 74 79 70 |G..0x692.filetyp| 0003d530 65 5f 44 45 42 49 4d 41 47 45 09 30 78 46 44 33 |e_DEBIMAGE.0xFD3| 0003d540 0a 66 69 6c 65 74 79 70 65 5f 41 4d 49 47 41 49 |.filetype_AMIGAI| 0003d550 46 46 09 30 78 36 39 33 09 66 69 6c 65 74 79 70 |FF.0x693.filetyp| 0003d560 65 5f 54 41 53 4b 45 58 45 43 09 30 78 46 44 36 |e_TASKEXEC.0xFD6| 0003d570 0a 66 69 6c 65 74 79 70 65 5f 4d 41 43 50 41 49 |.filetype_MACPAI| 0003d580 4e 54 09 30 78 36 39 34 09 66 69 6c 65 74 79 70 |NT.0x694.filetyp| 0003d590 65 5f 54 41 53 4b 4f 42 45 59 09 30 78 46 44 37 |e_TASKOBEY.0xFD7| 0003d5a0 0a 66 69 6c 65 74 79 70 65 5f 47 49 46 09 09 30 |.filetype_GIF..0| 0003d5b0 78 36 39 35 09 66 69 6c 65 74 79 70 65 5f 4d 41 |x695.filetype_MA| 0003d5c0 4b 45 46 49 4c 45 09 30 78 46 45 31 0a 66 69 6c |KEFILE.0xFE1.fil| 0003d5d0 65 74 79 70 65 5f 50 43 58 09 09 30 78 36 39 37 |etype_PCX..0x697| 0003d5e0 09 66 69 6c 65 74 79 70 65 5f 44 4f 53 09 09 30 |.filetype_DOS..0| 0003d5f0 78 46 45 34 0a 66 69 6c 65 74 79 70 65 5f 51 52 |xFE4.filetype_QR| 0003d600 54 09 09 30 78 36 39 38 09 66 69 6c 65 74 79 70 |T..0x698.filetyp| 0003d610 65 5f 44 45 53 4b 54 4f 50 09 30 78 46 45 41 0a |e_DESKTOP.0xFEA.| 0003d620 66 69 6c 65 74 79 70 65 5f 4d 54 56 09 09 30 78 |filetype_MTV..0x| 0003d630 36 39 39 09 66 69 6c 65 74 79 70 65 5f 4f 42 45 |699.filetype_OBE| 0003d640 59 09 09 30 78 46 45 42 0a 66 69 6c 65 74 79 70 |Y..0xFEB.filetyp| 0003d650 65 5f 43 41 44 53 4f 46 54 09 30 78 36 39 41 09 |e_CADSOFT.0x69A.| 0003d660 66 69 6c 65 74 79 70 65 5f 54 45 4d 50 4c 41 54 |filetype_TEMPLAT| 0003d670 45 09 30 78 46 45 43 0a 66 69 6c 65 74 79 70 65 |E.0xFEC.filetype| 0003d680 5f 49 52 4c 41 4d 09 09 30 78 36 39 42 09 66 69 |_IRLAM..0x69B.fi| 0003d690 6c 65 74 79 70 65 5f 50 41 4c 45 54 54 45 09 30 |letype_PALETTE.0| 0003d6a0 78 46 45 44 0a 66 69 6c 65 74 79 70 65 5f 42 4d |xFED.filetype_BM| 0003d6b0 50 09 09 30 78 36 39 43 09 66 69 6c 65 74 79 70 |P..0x69C.filetyp| 0003d6c0 65 5f 54 49 46 46 09 09 30 78 46 46 30 0a 66 69 |e_TIFF..0xFF0.fi| 0003d6d0 6c 65 74 79 70 65 5f 54 41 52 47 41 09 09 30 78 |letype_TARGA..0x| 0003d6e0 36 39 44 09 66 69 6c 65 74 79 70 65 5f 43 4f 4e |69D.filetype_CON| 0003d6f0 46 49 47 09 09 30 78 46 46 32 0a 66 69 6c 65 74 |FIG..0xFF2.filet| 0003d700 79 70 65 5f 50 42 4d 50 6c 75 73 09 30 78 36 39 |ype_PBMPlus.0x69| 0003d710 45 09 66 69 6c 65 74 79 70 65 5f 50 52 49 4e 54 |E.filetype_PRINT| 0003d720 4f 55 54 09 30 78 46 46 34 0a 66 69 6c 65 74 79 |OUT.0xFF4.filety| 0003d730 70 65 5f 5a 56 44 41 09 09 30 78 36 39 46 09 66 |pe_ZVDA..0x69F.f| 0003d740 69 6c 65 74 79 70 65 5f 50 4f 53 43 52 49 50 54 |iletype_POSCRIPT| 0003d750 09 30 78 46 46 35 0a 66 69 6c 65 74 79 70 65 5f |.0xFF5.filetype_| 0003d760 41 4c 41 52 4d 53 09 09 30 78 41 45 39 09 66 69 |ALARMS..0xAE9.fi| 0003d770 6c 65 74 79 70 65 5f 46 4f 4e 54 09 09 30 78 46 |letype_FONT..0xF| 0003d780 46 36 0a 66 69 6c 65 74 79 70 65 5f 44 52 41 57 |F6.filetype_DRAW| 0003d790 46 49 4c 45 09 30 78 41 46 46 09 66 69 6c 65 74 |FILE.0xAFF.filet| 0003d7a0 79 70 65 5f 42 42 43 46 4f 4e 54 09 30 78 46 46 |ype_BBCFONT.0xFF| 0003d7b0 37 0a 66 69 6c 65 74 79 70 65 5f 42 42 43 52 4f |7.filetype_BBCRO| 0003d7c0 4d 09 09 30 78 42 42 43 09 66 69 6c 65 74 79 70 |M..0xBBC.filetyp| 0003d7d0 65 5f 41 42 53 4f 4c 55 54 45 09 30 78 46 46 38 |e_ABSOLUTE.0xFF8| 0003d7e0 0a 66 69 6c 65 74 79 70 65 5f 41 55 44 49 4f 57 |.filetype_AUDIOW| 0003d7f0 52 4b 09 30 78 42 44 36 09 66 69 6c 65 74 79 70 |RK.0xBD6.filetyp| 0003d800 65 5f 53 50 52 49 54 45 09 09 30 78 46 46 39 0a |e_SPRITE..0xFF9.| 0003d810 66 69 6c 65 74 79 70 65 5f 52 45 4e 44 50 49 43 |filetype_RENDPIC| 0003d820 09 30 78 44 35 38 09 66 69 6c 65 74 79 70 65 5f |.0xD58.filetype_| 0003d830 4d 4f 44 55 4c 45 09 09 30 78 46 46 41 0a 66 69 |MODULE..0xFFA.fi| 0003d840 6c 65 74 79 70 65 5f 41 52 43 48 49 56 45 09 30 |letype_ARCHIVE.0| 0003d850 78 44 44 43 09 66 69 6c 65 74 79 70 65 5f 42 41 |xDDC.filetype_BA| 0003d860 53 49 43 09 09 30 78 46 46 42 0a 66 69 6c 65 74 |SIC..0xFFB.filet| 0003d870 79 70 65 5f 50 52 4f 41 52 54 09 09 30 78 44 45 |ype_PROART..0xDE| 0003d880 32 09 66 69 6c 65 74 79 70 65 5f 55 54 49 4c 49 |2.filetype_UTILI| 0003d890 54 59 09 30 78 46 46 43 0a 66 69 6c 65 74 79 70 |TY.0xFFC.filetyp| 0003d8a0 65 5f 50 49 43 54 55 52 45 09 30 78 44 46 41 09 |e_PICTURE.0xDFA.| 0003d8b0 66 69 6c 65 74 79 70 65 5f 44 41 54 41 09 09 30 |filetype_DATA..0| 0003d8c0 78 46 46 44 0a 66 69 6c 65 74 79 70 65 5f 50 52 |xFFD.filetype_PR| 0003d8d0 4e 54 44 45 46 4e 09 30 78 46 43 36 09 66 69 6c |NTDEFN.0xFC6.fil| 0003d8e0 65 74 79 70 65 5f 43 4f 4d 4d 41 4e 44 09 30 78 |etype_COMMAND.0x| 0003d8f0 46 46 45 0a 66 69 6c 65 74 79 70 65 5f 44 4f 53 |FFE.filetype_DOS| 0003d900 44 49 53 43 09 30 78 46 43 38 09 66 69 6c 65 74 |DISC.0xFC8.filet| 0003d910 79 70 65 5f 54 45 58 54 09 09 30 78 46 46 46 0a |ype_TEXT..0xFFF.| 0003d920 66 69 6c 65 74 79 70 65 5f 53 55 4e 52 41 53 54 |filetype_SUNRAST| 0003d930 52 09 30 78 46 43 39 00 44 41 54 41 45 01 00 00 |R.0xFC9.DATAE...| 0003d940 44 65 73 6b 4c 69 62 3a 46 69 6c 74 65 72 2e 68 |DeskLib:Filter.h| 0003d950 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 31 20 28 |.Version: 1.01 (| 0003d960 32 32 20 4f 63 74 20 31 39 39 34 29 0a 23 6c 69 |22 Oct 1994).#li| 0003d970 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |ne.This header d| 0003d980 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 0003d990 73 20 66 6f 72 20 74 68 65 20 52 49 53 43 a0 4f |s for the RISC.O| 0003d9a0 53 a0 33 20 46 69 6c 74 65 72 20 4d 61 6e 61 67 |S.3 Filter Manag| 0003d9b0 65 72 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a |er...Functions:.| 0003d9c0 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 |.#table columns | 0003d9d0 32 0a 3c 46 69 6c 74 65 72 5f 52 65 67 69 73 74 |2.<Filter_Regist| 0003d9e0 65 72 50 72 65 46 69 6c 74 65 72 3e 0a 3c 46 69 |erPreFilter>.<Fi| 0003d9f0 6c 74 65 72 5f 52 65 67 69 73 74 65 72 50 6f 73 |lter_RegisterPos| 0003da00 74 46 69 6c 74 65 72 3e 0a 3c 46 69 6c 74 65 72 |tFilter>.<Filter| 0003da10 5f 44 65 52 65 67 69 73 74 65 72 50 72 65 46 69 |_DeRegisterPreFi| 0003da20 6c 74 65 72 3e 0a 3c 46 69 6c 74 65 72 5f 44 65 |lter>.<Filter_De| 0003da30 52 65 67 69 73 74 65 72 50 6f 73 74 46 69 6c 74 |RegisterPostFilt| 0003da40 65 72 3e 0a 23 65 6e 64 74 61 62 6c 65 0a 0a 23 |er>.#endtable..#| 0003da50 69 6e 64 65 6e 74 20 30 0a 54 79 70 65 3a 0a 7b |indent 0.Type:.{| 0003da60 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 66 69 |align centre}<fi| 0003da70 6c 74 65 72 5f 68 61 6e 64 6c 65 72 3e 00 00 00 |lter_handler>...| 0003da80 44 49 52 24 e0 00 00 00 e0 00 00 00 60 db 03 00 |DIR$........`...| 0003da90 46 ff ff ff 02 04 29 25 fe 00 00 00 13 00 00 00 |F.....)%........| 0003daa0 00 00 00 00 44 65 52 65 67 69 73 74 65 72 50 6f |....DeRegisterPo| 0003dab0 73 74 46 69 6c 74 65 72 00 00 00 00 60 dc 03 00 |stFilter....`...| 0003dac0 46 ff ff ff 6b fd 28 25 fa 00 00 00 13 00 00 00 |F...k.(%........| 0003dad0 00 00 00 00 44 65 52 65 67 69 73 74 65 72 50 72 |....DeRegisterPr| 0003dae0 65 46 69 6c 74 65 72 00 5c dd 03 00 46 ff ff ff |eFilter.\...F...| 0003daf0 a2 e9 28 25 ec 00 00 00 13 00 00 00 00 00 00 00 |..(%............| 0003db00 68 61 6e 64 6c 65 72 00 48 de 03 00 46 ff ff ff |handler.H...F...| 0003db10 eb f7 28 25 85 01 00 00 13 00 00 00 00 00 00 00 |..(%............| 0003db20 52 65 67 69 73 74 65 72 50 6f 73 74 46 69 6c 74 |RegisterPostFilt| 0003db30 65 72 00 00 d0 df 03 00 46 ff ff ff d9 f1 28 25 |er......F.....(%| 0003db40 54 01 00 00 13 00 00 00 00 00 00 00 52 65 67 69 |T...........Regi| 0003db50 73 74 65 72 50 72 65 46 69 6c 74 65 72 00 00 00 |sterPreFilter...| 0003db60 44 41 54 41 fe 00 00 00 46 69 6c 74 65 72 5f 44 |DATA....Filter_D| 0003db70 65 52 65 67 69 73 74 65 72 50 6f 73 74 46 69 6c |eRegisterPostFil| 0003db80 74 65 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ter.Syntax:.void| 0003db90 20 46 69 6c 74 65 72 5f 44 65 52 65 67 69 73 74 | Filter_DeRegist| 0003dba0 65 72 50 6f 73 74 46 69 6c 74 65 72 20 28 63 68 |erPostFilter (ch| 0003dbb0 61 72 20 2a 66 69 6c 74 65 72 6e 61 6d 65 2c 20 |ar *filtername, | 0003dbc0 3c 66 69 6c 74 65 72 5f 68 61 6e 64 6c 65 72 3e |<filter_handler>| 0003dbd0 20 68 61 6e 64 6c 65 72 2c 20 69 6e 74 20 52 31 | handler, int R1| 0003dbe0 32 2c 20 3c 74 61 73 6b 5f 68 61 6e 64 6c 65 3e |2, <task_handle>| 0003dbf0 20 74 61 73 6b 29 3b 0a 48 65 61 64 65 72 3a 09 | task);.Header:.| 0003dc00 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 74 65 72 2e |<DeskLib:Filter.| 0003dc10 68 3d 3e 46 69 6c 74 65 72 3e 0a 0a 54 68 69 73 |h=>Filter>..This| 0003dc20 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 | function remove| 0003dc30 73 20 61 20 70 6f 73 74 2d 66 69 6c 74 65 72 20 |s a post-filter | 0003dc40 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 |from the list of| 0003dc50 20 70 6f 73 74 2d 66 69 6c 74 65 72 73 2e 00 00 | post-filters...| 0003dc60 44 41 54 41 fa 00 00 00 46 69 6c 74 65 72 5f 44 |DATA....Filter_D| 0003dc70 65 52 65 67 69 73 74 65 72 50 72 65 46 69 6c 74 |eRegisterPreFilt| 0003dc80 65 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |er.Syntax:.void | 0003dc90 46 69 6c 74 65 72 5f 44 65 52 65 67 69 73 74 65 |Filter_DeRegiste| 0003dca0 72 50 72 65 46 69 6c 74 65 72 20 28 63 68 61 72 |rPreFilter (char| 0003dcb0 20 2a 66 69 6c 74 65 72 6e 61 6d 65 2c 20 3c 66 | *filtername, <f| 0003dcc0 69 6c 74 65 72 5f 68 61 6e 64 6c 65 72 3e 20 68 |ilter_handler> h| 0003dcd0 61 6e 64 6c 65 72 2c 20 69 6e 74 20 52 31 32 2c |andler, int R12,| 0003dce0 20 3c 74 61 73 6b 5f 68 61 6e 64 6c 65 3e 20 74 | <task_handle> t| 0003dcf0 61 73 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ask);.Header:.<D| 0003dd00 65 73 6b 4c 69 62 3a 46 69 6c 74 65 72 2e 68 3d |eskLib:Filter.h=| 0003dd10 3e 46 69 6c 74 65 72 3e 0a 0a 54 68 69 73 20 66 |>Filter>..This f| 0003dd20 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 |unction removes | 0003dd30 61 20 70 72 65 2d 66 69 6c 74 65 72 20 66 72 6f |a pre-filter fro| 0003dd40 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 72 |m the list of pr| 0003dd50 65 2d 66 69 6c 74 65 72 73 2e 00 00 44 41 54 41 |e-filters...DATA| 0003dd60 ec 00 00 00 66 69 6c 74 65 72 5f 68 61 6e 64 6c |....filter_handl| 0003dd70 65 72 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d 66 |er.The type {*}f| 0003dd80 69 6c 74 65 72 5f 68 61 6e 64 6c 65 72 7b 2a 7d |ilter_handler{*}| 0003dd90 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 3c | is defined by <| 0003dda0 44 65 73 6b 4c 69 62 3a 46 69 6c 74 65 72 2e 68 |DeskLib:Filter.h| 0003ddb0 3d 3e 46 69 6c 74 65 72 3e 20 61 73 20 61 20 66 |=>Filter> as a f| 0003ddc0 75 6e 63 74 69 6f 6e 20 74 79 70 65 2e 20 46 75 |unction type. Fu| 0003ddd0 6e 63 74 69 6f 6e 73 20 73 68 6f 75 6c 64 20 62 |nctions should b| 0003dde0 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 7b |e of the form:.{| 0003ddf0 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 |wrap off}.{fCode| 0003de00 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 69 6e |;align centre}in| 0003de10 74 20 6d 79 66 75 6e 63 28 69 6e 74 20 65 76 65 |t myfunc(int eve| 0003de20 6e 74 2c 20 3c 65 76 65 6e 74 5f 70 6f 6c 6c 62 |nt, <event_pollb| 0003de30 6c 6f 63 6b 3e 20 2a 65 76 65 6e 74 2c 20 69 6e |lock> *event, in| 0003de40 74 20 74 61 73 6b 29 3b 44 41 54 41 85 01 00 00 |t task);DATA....| 0003de50 46 69 6c 74 65 72 5f 52 65 67 69 73 74 65 72 50 |Filter_RegisterP| 0003de60 6f 73 74 46 69 6c 74 65 72 0a 53 79 6e 74 61 78 |ostFilter.Syntax| 0003de70 3a 09 76 6f 69 64 20 46 69 6c 74 65 72 5f 52 65 |:.void Filter_Re| 0003de80 67 69 73 74 65 72 50 6f 73 74 46 69 6c 74 65 72 |gisterPostFilter| 0003de90 20 28 63 68 61 72 20 2a 66 69 6c 74 65 72 6e 61 | (char *filterna| 0003dea0 6d 65 2c 20 3c 66 69 6c 74 65 72 5f 68 61 6e 64 |me, <filter_hand| 0003deb0 6c 65 72 3e 20 68 61 6e 64 6c 65 72 2c 20 69 6e |ler> handler, in| 0003dec0 74 20 52 31 32 2c 20 3c 74 61 73 6b 5f 68 61 6e |t R12, <task_han| 0003ded0 64 6c 65 3e 20 74 61 73 6b 2c 20 69 6e 74 20 65 |dle> task, int e| 0003dee0 76 65 6e 74 6d 61 73 6b 29 3b 0a 48 65 61 64 65 |ventmask);.Heade| 0003def0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 69 6c 74 |r:.<DeskLib:Filt| 0003df00 65 72 2e 68 3d 3e 46 69 6c 74 65 72 3e 0a 0a 54 |er.h=>Filter>..T| 0003df10 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 |his function reg| 0003df20 69 73 74 65 72 73 20 61 20 70 6f 73 74 2d 66 69 |isters a post-fi| 0003df30 6c 74 65 72 20 72 6f 75 74 69 6e 65 2c 20 77 68 |lter routine, wh| 0003df40 69 63 68 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c |ich will be call| 0003df50 65 64 20 77 68 65 6e 65 76 65 72 20 74 68 65 20 |ed whenever the | 0003df60 57 69 6d 70 20 69 73 20 61 62 6f 75 74 20 74 6f |Wimp is about to| 0003df70 20 72 65 74 75 72 6e 20 66 72 6f 6d 20 57 69 6d | return from Wim| 0003df80 70 5f 50 6f 6c 6c 20 74 6f 20 74 68 65 20 73 70 |p_Poll to the sp| 0003df90 65 63 69 66 69 65 64 20 74 61 73 6b 2e 20 49 66 |ecified task. If| 0003dfa0 20 2f 74 61 73 6b 2f 20 69 73 20 7a 65 72 6f 2c | /task/ is zero,| 0003dfb0 20 74 68 65 6e 20 61 6c 6c 20 74 61 73 6b 73 20 | then all tasks | 0003dfc0 61 72 65 20 61 66 66 65 63 74 65 64 2e 00 00 00 |are affected....| 0003dfd0 44 41 54 41 54 01 00 00 46 69 6c 74 65 72 5f 52 |DATAT...Filter_R| 0003dfe0 65 67 69 73 74 65 72 50 72 65 46 69 6c 74 65 72 |egisterPreFilter| 0003dff0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 46 69 |.Syntax:.void Fi| 0003e000 6c 74 65 72 5f 52 65 67 69 73 74 65 72 50 72 65 |lter_RegisterPre| 0003e010 46 69 6c 74 65 72 20 28 63 68 61 72 20 2a 66 69 |Filter (char *fi| 0003e020 6c 74 65 72 6e 61 6d 65 2c 20 3c 66 69 6c 74 65 |ltername, <filte| 0003e030 72 5f 68 61 6e 64 6c 65 72 3e 20 68 61 6e 64 6c |r_handler> handl| 0003e040 65 72 2c 20 69 6e 74 20 52 31 32 2c 20 3c 74 61 |er, int R12, <ta| 0003e050 73 6b 5f 68 61 6e 64 6c 65 3e 20 74 61 73 6b 29 |sk_handle> task)| 0003e060 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0003e070 69 62 3a 46 69 6c 74 65 72 2e 68 3d 3e 46 69 6c |ib:Filter.h=>Fil| 0003e080 74 65 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ter>..This funct| 0003e090 69 6f 6e 20 72 65 67 69 73 74 65 72 73 20 61 20 |ion registers a | 0003e0a0 70 72 65 2d 66 69 6c 74 65 72 20 72 6f 75 74 69 |pre-filter routi| 0003e0b0 6e 65 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 |ne, which will b| 0003e0c0 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 65 76 65 |e called wheneve| 0003e0d0 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 |r the specified | 0003e0e0 74 61 73 6b 20 70 6f 6c 6c 73 20 74 68 65 20 57 |task polls the W| 0003e0f0 69 6d 70 2e 20 49 66 20 2f 74 61 73 6b 2f 20 69 |imp. If /task/ i| 0003e100 73 20 7a 65 72 6f 2c 20 74 68 65 6e 20 61 6c 6c |s zero, then all| 0003e110 20 74 61 73 6b 73 20 61 72 65 20 61 66 66 65 63 | tasks are affec| 0003e120 74 65 64 2e 44 41 54 41 70 01 00 00 66 6c 65 78 |ted.DATAp...flex| 0003e130 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 70 |.h.This header p| 0003e140 72 6f 76 69 64 65 73 20 6d 65 6d 6f 72 79 20 61 |rovides memory a| 0003e150 6c 6c 6f 63 61 74 69 6f 6e 20 66 6f 72 20 69 6e |llocation for in| 0003e160 74 65 72 61 63 74 69 76 65 20 70 72 6f 67 72 61 |teractive progra| 0003e170 6d 73 20 72 65 71 75 69 72 69 6e 67 20 6c 61 72 |ms requiring lar| 0003e180 67 65 20 63 68 75 6e 6b 73 20 6f 66 20 73 74 6f |ge chunks of sto| 0003e190 72 65 2e 20 53 75 63 68 20 70 72 6f 67 72 61 6d |re. Such program| 0003e1a0 73 20 6d 75 73 74 20 72 65 73 70 6f 6e 64 20 74 |s must respond t| 0003e1b0 6f 20 6d 65 6d 6f 72 79 20 66 75 6c 6c 20 65 72 |o memory full er| 0003e1c0 72 6f 72 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |rors...Functions| 0003e1d0 3a 0a 0a 23 49 6e 64 65 6e 74 20 35 0a 23 54 61 |:..#Indent 5.#Ta| 0003e1e0 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 66 |ble columns 3.<f| 0003e1f0 6c 65 78 5f 69 6e 69 74 3e 0a 3c 66 6c 65 78 5f |lex_init>.<flex_| 0003e200 61 6c 6c 6f 63 3e 0a 3c 66 6c 65 78 5f 66 72 65 |alloc>.<flex_fre| 0003e210 65 3e 0a 3c 66 6c 65 78 5f 73 69 7a 65 3e 0a 3c |e>.<flex_size>.<| 0003e220 66 6c 65 78 5f 65 78 74 65 6e 64 3e 0a 3c 66 6c |flex_extend>.<fl| 0003e230 65 78 5f 6d 69 64 65 78 74 65 6e 64 3e 0a 3c 66 |ex_midextend>.<f| 0003e240 6c 65 78 5f 62 75 64 67 65 3e 0a 3c 66 6c 65 78 |lex_budge>.<flex| 0003e250 5f 64 6f 6e 74 5f 62 75 64 67 65 3e 0a 23 45 6e |_dont_budge>.#En| 0003e260 64 54 61 62 6c 65 0a 0a 23 62 65 6c 6f 77 3b 49 |dTable..#below;I| 0003e270 6e 64 65 6e 74 20 30 0a 54 79 70 65 73 3a 0a 7b |ndent 0.Types:.{| 0003e280 69 6e 64 65 6e 74 20 35 7d 0a 3c 66 6c 65 78 5f |indent 5}.<flex_| 0003e290 70 74 72 3e 44 49 52 24 30 01 00 00 30 01 00 00 |ptr>DIR$0...0...| 0003e2a0 c4 e3 03 00 46 ff ff ff 4f 2d 48 23 9c 01 00 00 |....F...O-H#....| 0003e2b0 13 00 00 00 00 00 00 00 61 6c 6c 6f 63 00 00 00 |........alloc...| 0003e2c0 60 e5 03 00 46 ff ff ff f0 67 48 23 5f 01 00 00 |`...F....gH#_...| 0003e2d0 13 00 00 00 00 00 00 00 62 75 64 67 65 00 00 00 |........budge...| 0003e2e0 c0 e6 03 00 46 ff ff ff c3 7e 48 23 48 01 00 00 |....F....~H#H...| 0003e2f0 13 00 00 00 00 00 00 00 64 6f 6e 74 5f 62 75 64 |........dont_bud| 0003e300 67 65 00 00 08 e8 03 00 46 ff ff ff a4 43 48 23 |ge......F....CH#| 0003e310 e5 00 00 00 13 00 00 00 00 00 00 00 65 78 74 65 |............exte| 0003e320 6e 64 00 00 f0 e8 03 00 46 ff ff ff 37 3a 48 23 |nd......F...7:H#| 0003e330 ab 00 00 00 13 00 00 00 00 00 00 00 66 72 65 65 |............free| 0003e340 00 00 00 00 9c e9 03 00 46 ff ff ff 33 23 48 23 |........F...3#H#| 0003e350 a5 00 00 00 13 00 00 00 00 00 00 00 69 6e 69 74 |............init| 0003e360 00 00 00 00 44 ea 03 00 46 ff ff ff b0 5b 48 23 |....D...F....[H#| 0003e370 4e 01 00 00 13 00 00 00 00 00 00 00 6d 69 64 65 |N...........mide| 0003e380 78 74 65 6e 64 00 00 00 94 eb 03 00 46 ff ff ff |xtend.......F...| 0003e390 33 87 48 23 c6 00 00 00 13 00 00 00 00 00 00 00 |3.H#............| 0003e3a0 70 74 72 00 5c ec 03 00 46 ff ff ff c8 3d 48 23 |ptr.\...F....=H#| 0003e3b0 b5 00 00 00 13 00 00 00 00 00 00 00 73 69 7a 65 |............size| 0003e3c0 00 00 00 00 44 41 54 41 9c 01 00 00 66 6c 65 78 |....DATA....flex| 0003e3d0 5f 61 6c 6c 6f 63 0a 53 79 6e 74 61 78 3a 09 69 |_alloc.Syntax:.i| 0003e3e0 6e 74 20 66 6c 65 78 5f 61 6c 6c 6f 63 28 3c 66 |nt flex_alloc(<f| 0003e3f0 6c 65 78 5f 70 74 72 3e 20 61 6e 63 68 6f 72 2c |lex_ptr> anchor,| 0003e400 20 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a | int n);.Header:| 0003e410 09 3c 66 6c 65 78 2e 68 3d 3e 66 6c 65 78 3e 0a |.<flex.h=>flex>.| 0003e420 0a 52 65 74 75 72 6e 73 3a 09 30 20 66 6f 72 20 |.Returns:.0 for | 0003e430 66 61 69 6c 75 72 65 2c 20 31 20 66 6f 72 20 73 |failure, 1 for s| 0003e440 75 63 63 65 73 73 2e 0a 0a 54 68 69 73 20 66 75 |uccess...This fu| 0003e450 6e 63 74 69 6f 6e 20 61 6c 6c 6f 63 61 74 65 73 |nction allocates| 0003e460 20 2f 6e 2f 20 62 79 74 65 73 20 6f 66 20 73 74 | /n/ bytes of st| 0003e470 6f 72 65 2c 20 6f 62 74 61 69 6e 65 64 20 66 72 |ore, obtained fr| 0003e480 6f 6d 20 74 68 65 20 57 69 6d 70 20 66 72 65 65 |om the Wimp free| 0003e490 20 70 6f 6f 6c 20 61 6e 64 20 73 74 6f 72 65 73 | pool and stores| 0003e4a0 20 69 74 73 20 61 64 64 72 65 73 73 20 69 6e 20 | its address in | 0003e4b0 74 68 65 20 76 61 72 69 61 62 6c 65 20 70 6f 69 |the variable poi| 0003e4c0 6e 74 65 64 20 74 6f 20 62 79 20 2f 61 6e 63 68 |nted to by /anch| 0003e4d0 6f 72 2f 2e 20 54 68 65 20 61 6c 6c 6f 63 61 74 |or/. The allocat| 0003e4e0 65 64 20 73 74 6f 72 65 20 6d 75 73 74 20 62 65 |ed store must be| 0003e4f0 20 61 63 63 65 73 73 65 64 20 74 68 72 6f 75 67 | accessed throug| 0003e500 68 20 74 68 69 73 20 61 6e 63 68 6f 72 20 65 67 |h this anchor eg| 0003e510 20 61 73 20 28 2a 61 6e 63 68 6f 72 29 5b 30 5d | as (*anchor)[0]| 0003e520 20 65 74 63 2e 20 73 69 6e 63 65 20 74 68 65 20 | etc. since the | 0003e530 61 6e 63 68 6f 72 20 6d 61 79 20 62 65 20 61 6c |anchor may be al| 0003e540 74 65 72 65 64 20 61 73 20 6d 65 6d 6f 72 79 20 |tered as memory | 0003e550 69 73 20 6d 6f 76 65 64 20 61 72 6f 75 6e 64 2e |is moved around.| 0003e560 44 41 54 41 5f 01 00 00 66 6c 65 78 5f 62 75 64 |DATA_...flex_bud| 0003e570 67 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 66 |ge.Syntax:.int f| 0003e580 6c 65 78 5f 62 75 64 67 65 20 28 69 6e 74 20 6e |lex_budge (int n| 0003e590 2c 20 76 6f 69 64 20 2a 2a 61 29 3b 0a 48 65 61 |, void **a);.Hea| 0003e5a0 64 65 72 3a 09 3c 66 6c 65 78 2e 68 3d 3e 66 6c |der:.<flex.h=>fl| 0003e5b0 65 78 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 41 6d |ex>..Returns:.Am| 0003e5c0 6f 75 6e 74 20 6f 66 20 73 74 6f 72 65 20 61 63 |ount of store ac| 0003e5d0 71 75 69 72 65 64 2e 0a 0a 54 68 69 73 20 66 75 |quired...This fu| 0003e5e0 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 74 6f |nction is not to| 0003e5f0 20 62 65 20 63 61 6c 6c 65 64 20 64 69 72 65 63 | be called direc| 0003e600 74 6c 79 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 |tly. It should b| 0003e610 65 20 72 65 67 69 73 74 65 72 65 64 20 75 73 69 |e registered usi| 0003e620 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 |ng the function | 0003e630 3c 5f 6b 65 72 6e 65 6c 5f 72 65 67 69 73 74 65 |<_kernel_registe| 0003e640 72 5f 73 6c 6f 74 65 78 74 65 6e 64 3e 2e 20 49 |r_slotextend>. I| 0003e650 74 20 77 69 6c 6c 20 61 6c 6c 6f 77 20 74 68 65 |t will allow the| 0003e660 20 66 6c 65 78 20 73 74 6f 72 65 20 74 6f 20 62 | flex store to b| 0003e670 65 20 6d 6f 76 65 64 20 69 66 20 6d 6f 72 65 20 |e moved if more | 0003e680 68 65 61 70 20 73 74 6f 72 61 67 65 20 69 73 20 |heap storage is | 0003e690 6e 65 65 64 65 64 2e 20 54 68 65 20 64 65 66 61 |needed. The defa| 0003e6a0 75 6c 74 20 73 74 61 74 65 20 69 73 20 3c 66 6c |ult state is <fl| 0003e6b0 65 78 5f 64 6f 6e 74 5f 62 75 64 67 65 3e 2e 00 |ex_dont_budge>..| 0003e6c0 44 41 54 41 48 01 00 00 66 6c 65 78 5f 64 6f 6e |DATAH...flex_don| 0003e6d0 74 5f 62 75 64 67 65 0a 53 79 6e 74 61 78 3a 09 |t_budge.Syntax:.| 0003e6e0 69 6e 74 20 66 6c 65 78 5f 64 6f 6e 74 5f 62 75 |int flex_dont_bu| 0003e6f0 64 67 65 20 28 69 6e 74 20 6e 2c 20 76 6f 69 64 |dge (int n, void| 0003e700 20 2a 2a 61 29 3b 0a 48 65 61 64 65 72 3a 09 3c | **a);.Header:.<| 0003e710 66 6c 65 78 2e 68 3d 3e 66 6c 65 78 3e 0a 0a 52 |flex.h=>flex>..R| 0003e720 65 74 75 72 6e 73 3a 09 30 0a 0a 54 68 69 73 20 |eturns:.0..This | 0003e730 66 75 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 |function is not | 0003e740 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 64 69 72 |to be called dir| 0003e750 65 63 74 6c 79 2e 20 49 74 20 73 68 6f 75 6c 64 |ectly. It should| 0003e760 20 62 65 20 72 65 67 69 73 74 65 72 65 64 20 75 | be registered u| 0003e770 73 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f |sing the functio| 0003e780 6e 20 3c 5f 6b 65 72 6e 65 6c 5f 72 65 67 69 73 |n <_kernel_regis| 0003e790 74 65 72 5f 73 6c 6f 74 65 78 74 65 6e 64 3e 2e |ter_slotextend>.| 0003e7a0 20 49 74 20 77 69 6c 6c 20 6e 6f 74 20 61 6c 6c | It will not all| 0003e7b0 6f 77 20 74 68 65 20 66 6c 65 78 20 73 74 6f 72 |ow the flex stor| 0003e7c0 65 20 74 6f 20 62 65 20 6d 6f 76 65 64 20 69 66 |e to be moved if| 0003e7d0 20 6d 6f 72 65 20 68 65 61 70 20 73 74 6f 72 61 | more heap stora| 0003e7e0 67 65 20 69 73 20 6e 65 65 64 65 64 2e 20 54 68 |ge is needed. Th| 0003e7f0 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c |is is the defaul| 0003e800 74 20 73 74 61 74 65 2e 44 41 54 41 e5 00 00 00 |t state.DATA....| 0003e810 66 6c 65 78 5f 65 78 74 65 6e 64 0a 53 79 6e 74 |flex_extend.Synt| 0003e820 61 78 3a 09 69 6e 74 20 66 6c 65 78 5f 65 78 74 |ax:.int flex_ext| 0003e830 65 6e 64 20 28 3c 66 6c 65 78 5f 70 74 72 3e 20 |end (<flex_ptr> | 0003e840 61 6e 63 68 6f 72 2c 20 69 6e 74 20 6e 65 77 73 |anchor, int news| 0003e850 69 7a 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 |ize);.Header:.<f| 0003e860 6c 65 78 2e 68 3d 3e 66 6c 65 78 3e 0a 0a 52 65 |lex.h=>flex>..Re| 0003e870 74 75 72 6e 73 3a 09 30 20 66 6f 72 20 66 61 69 |turns:.0 for fai| 0003e880 6c 65 64 2c 20 31 20 66 6f 72 20 4f 4b 2e 0a 0a |led, 1 for OK...| 0003e890 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6c |This function al| 0003e8a0 74 65 72 73 20 74 68 65 20 73 69 7a 65 20 6f 66 |ters the size of| 0003e8b0 20 74 68 65 20 6d 65 6d 6f 72 79 20 62 6c 6f 63 | the memory bloc| 0003e8c0 6b 2c 20 77 68 6f 73 65 20 61 6e 63 68 6f 72 20 |k, whose anchor | 0003e8d0 69 73 20 67 69 76 65 6e 2c 20 74 6f 20 2f 6e 65 |is given, to /ne| 0003e8e0 77 73 69 7a 65 2f 20 62 79 74 65 73 2e 00 00 00 |wsize/ bytes....| 0003e8f0 44 41 54 41 ab 00 00 00 66 6c 65 78 5f 66 72 65 |DATA....flex_fre| 0003e900 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 66 |e.Syntax:.void f| 0003e910 6c 65 78 5f 66 72 65 65 20 28 3c 66 6c 65 78 5f |lex_free (<flex_| 0003e920 70 74 72 3e 20 61 6e 63 68 6f 72 29 3b 0a 48 65 |ptr> anchor);.He| 0003e930 61 64 65 72 3a 09 3c 66 6c 65 78 2e 68 3d 3e 66 |ader:.<flex.h=>f| 0003e940 6c 65 78 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |lex>..This funct| 0003e950 69 6f 6e 20 66 72 65 65 73 20 74 68 65 20 6d 65 |ion frees the me| 0003e960 6d 6f 72 79 20 77 68 6f 73 65 20 61 6e 63 68 6f |mory whose ancho| 0003e970 72 20 69 73 20 67 69 76 65 6e 2e 20 7b 2f 7d 2a |r is given. {/}*| 0003e980 61 6e 63 68 6f 72 7b 2f 7d 20 77 69 6c 6c 20 62 |anchor{/} will b| 0003e990 65 20 73 65 74 20 74 6f 20 30 2e 00 44 41 54 41 |e set to 0..DATA| 0003e9a0 a5 00 00 00 66 6c 65 78 5f 69 6e 69 74 0a 53 79 |....flex_init.Sy| 0003e9b0 6e 74 61 78 3a 09 76 6f 69 64 20 66 6c 65 78 5f |ntax:.void flex_| 0003e9c0 69 6e 69 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 |init (void);.Hea| 0003e9d0 64 65 72 3a 09 3c 66 6c 65 78 2e 68 3d 3e 66 6c |der:.<flex.h=>fl| 0003e9e0 65 78 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ex>..This functi| 0003e9f0 6f 6e 20 69 6e 69 74 69 61 6c 69 73 65 73 20 74 |on initialises t| 0003ea00 68 65 20 66 6c 65 78 20 73 74 6f 72 65 2e 20 49 |he flex store. I| 0003ea10 74 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 |t must be called| 0003ea20 20 62 65 66 6f 72 65 20 61 6e 79 20 6f 74 68 65 | before any othe| 0003ea30 72 20 66 6c 65 78 20 66 75 6e 63 74 69 6f 6e 73 |r flex functions| 0003ea40 2e 00 00 00 44 41 54 41 4e 01 00 00 66 6c 65 78 |....DATAN...flex| 0003ea50 5f 6d 69 64 65 78 74 65 6e 64 0a 53 79 6e 74 61 |_midextend.Synta| 0003ea60 78 3a 09 69 6e 74 20 66 6c 65 78 5f 6d 69 64 65 |x:.int flex_mide| 0003ea70 78 74 65 6e 64 20 28 3c 66 6c 65 78 5f 70 74 72 |xtend (<flex_ptr| 0003ea80 3e 20 61 6e 63 68 6f 72 2c 20 69 6e 74 20 61 74 |> anchor, int at| 0003ea90 2c 20 69 6e 74 20 62 79 29 3b 0a 48 65 61 64 65 |, int by);.Heade| 0003eaa0 72 3a 09 3c 66 6c 65 78 2e 68 3d 3e 66 6c 65 78 |r:.<flex.h=>flex| 0003eab0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 30 20 66 6f |>..Returns:.0 fo| 0003eac0 72 20 66 61 69 6c 65 64 2c 20 31 20 66 6f 72 20 |r failed, 1 for | 0003ead0 4f 4b 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |OK...This functi| 0003eae0 6f 6e 20 61 6c 74 65 72 73 20 74 68 65 20 73 69 |on alters the si| 0003eaf0 7a 65 20 6f 66 20 74 68 65 20 6d 65 6d 6f 72 79 |ze of the memory| 0003eb00 20 62 6c 6f 63 6b 20 77 68 6f 73 65 20 61 6e 63 | block whose anc| 0003eb10 68 6f 72 20 69 73 20 67 69 76 65 6e 2e 20 49 66 |hor is given. If| 0003eb20 20 2f 62 79 2f 20 69 73 20 70 6f 73 69 74 69 76 | /by/ is positiv| 0003eb30 65 20 74 68 65 6e 20 2f 62 79 2f 20 62 79 74 65 |e then /by/ byte| 0003eb40 73 20 61 72 65 20 69 6e 73 65 72 74 65 64 20 61 |s are inserted a| 0003eb50 74 20 6f 66 66 73 65 74 20 2f 61 74 2f 2c 20 65 |t offset /at/, e| 0003eb60 6c 73 65 20 7b 2f 7d 2d 62 79 7b 2f 7d 20 62 79 |lse {/}-by{/} by| 0003eb70 74 65 73 20 61 72 65 20 64 65 6c 65 74 65 64 20 |tes are deleted | 0003eb80 62 65 6c 6f 77 20 6f 66 66 73 65 74 20 2f 61 74 |below offset /at| 0003eb90 2f 2e 00 00 44 41 54 41 c6 00 00 00 66 6c 65 78 |/...DATA....flex| 0003eba0 5f 70 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |_ptr.This type i| 0003ebb0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c |s defined in <fl| 0003ebc0 65 78 2e 68 3d 3e 66 6c 65 78 3e 20 61 73 20 61 |ex.h=>flex> as a| 0003ebd0 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 0003ebe0 20 68 6f 6c 64 69 6e 67 20 61 20 70 6f 69 6e 74 | holding a point| 0003ebf0 65 72 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 |er to a pointer | 0003ec00 74 6f 20 61 20 62 6c 6f 63 6b 20 6f 66 20 6d 65 |to a block of me| 0003ec10 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 65 64 20 62 |mory allocated b| 0003ec20 79 20 3c 66 6c 65 78 5f 61 6c 6c 6f 63 3e 2e 20 |y <flex_alloc>. | 0003ec30 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 |It is actually d| 0003ec40 65 66 69 6e 65 64 20 61 73 20 61 20 7b 2f 7d 76 |efined as a {/}v| 0003ec50 6f 69 64 20 2a 2a 7b 2f 7d 2e 00 00 44 41 54 41 |oid **{/}...DATA| 0003ec60 b5 00 00 00 66 6c 65 78 5f 73 69 7a 65 0a 53 79 |....flex_size.Sy| 0003ec70 6e 74 61 78 3a 09 69 6e 74 20 66 6c 65 78 5f 73 |ntax:.int flex_s| 0003ec80 69 7a 65 20 28 3c 66 6c 65 78 5f 70 74 72 3e 20 |ize (<flex_ptr> | 0003ec90 61 6e 63 68 6f 72 29 3b 0a 48 65 61 64 65 72 3a |anchor);.Header:| 0003eca0 09 3c 66 6c 65 78 2e 68 3d 3e 66 6c 65 78 3e 0a |.<flex.h=>flex>.| 0003ecb0 0a 52 65 74 75 72 6e 73 3a 09 53 69 7a 65 20 69 |.Returns:.Size i| 0003ecc0 6e 20 62 79 74 65 73 2c 0a 0a 54 68 69 73 20 66 |n bytes,..This f| 0003ecd0 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 20 74 68 |unction finds th| 0003ece0 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 6d 65 |e size of the me| 0003ecf0 6d 6f 72 79 20 62 6c 6f 63 6b 20 77 68 6f 73 65 |mory block whose| 0003ed00 20 61 6e 63 68 6f 72 20 69 73 20 67 69 76 65 6e | anchor is given| 0003ed10 2e 00 00 00 44 41 54 41 27 02 00 00 66 6c 6f 61 |....DATA'...floa| 0003ed20 74 2e 68 0a 54 68 65 20 5c 3c 66 6c 6f 61 74 2e |t.h.The \<float.| 0003ed30 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |h> header declar| 0003ed40 65 73 20 6d 61 6e 79 20 6d 61 63 72 6f 73 20 77 |es many macros w| 0003ed50 68 69 63 68 20 67 69 76 65 20 69 6e 66 6f 72 6d |hich give inform| 0003ed60 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 |ation about the | 0003ed70 6c 69 6d 69 74 73 20 6f 66 20 66 6c 6f 61 74 69 |limits of floati| 0003ed80 6e 67 20 70 6f 69 6e 74 20 76 61 72 69 61 62 6c |ng point variabl| 0003ed90 65 73 2e 0a 0a 23 54 61 62 6c 65 20 31 30 20 31 |es...#Table 10 1| 0003eda0 36 0a 3c 46 4c 54 5f 52 4f 55 4e 44 53 3e 0a 3c |6.<FLT_ROUNDS>.<| 0003edb0 46 4c 54 5f 52 41 44 49 58 3e 0a 3c 46 4c 54 5f |FLT_RADIX>.<FLT_| 0003edc0 4d 41 4e 54 5f 44 49 47 3e 0a 3c 44 42 4c 5f 4d |MANT_DIG>.<DBL_M| 0003edd0 41 4e 54 5f 44 49 47 3e 0a 3c 4c 44 42 4c 5f 4d |ANT_DIG>.<LDBL_M| 0003ede0 41 4e 54 5f 44 49 47 3e 20 20 20 0a 3c 46 4c 54 |ANT_DIG> .<FLT| 0003edf0 5f 44 49 47 3e 0a 3c 44 42 4c 5f 44 49 47 3e 0a |_DIG>.<DBL_DIG>.| 0003ee00 3c 4c 44 42 4c 5f 44 49 47 3e 0a 3c 46 4c 54 5f |<LDBL_DIG>.<FLT_| 0003ee10 4d 49 4e 5f 45 58 50 3e 0a 3c 44 42 4c 5f 4d 49 |MIN_EXP>.<DBL_MI| 0003ee20 4e 5f 45 58 50 3e 0a 3c 4c 44 42 4c 5f 4d 49 4e |N_EXP>.<LDBL_MIN| 0003ee30 5f 45 58 50 3e 0a 3c 46 4c 54 5f 4d 49 4e 5f 31 |_EXP>.<FLT_MIN_1| 0003ee40 30 5f 45 58 50 3e 0a 3c 44 42 4c 5f 4d 49 4e 5f |0_EXP>.<DBL_MIN_| 0003ee50 31 30 5f 45 58 50 3e 0a 3c 4c 44 42 4c 5f 4d 49 |10_EXP>.<LDBL_MI| 0003ee60 4e 5f 31 30 5f 45 58 50 3e 0a 3c 46 4c 54 5f 4d |N_10_EXP>.<FLT_M| 0003ee70 41 58 5f 45 58 50 3e 0a 3c 44 42 4c 5f 4d 41 58 |AX_EXP>.<DBL_MAX| 0003ee80 5f 45 58 50 3e 0a 3c 4c 44 42 4c 5f 4d 41 58 5f |_EXP>.<LDBL_MAX_| 0003ee90 45 58 50 3e 0a 3c 46 4c 54 5f 4d 41 58 5f 31 30 |EXP>.<FLT_MAX_10| 0003eea0 5f 45 58 50 3e 0a 3c 44 42 4c 5f 4d 41 58 5f 31 |_EXP>.<DBL_MAX_1| 0003eeb0 30 5f 45 58 50 3e 0a 3c 4c 44 42 4c 5f 4d 41 58 |0_EXP>.<LDBL_MAX| 0003eec0 5f 31 30 5f 45 58 50 3e 0a 3c 46 4c 54 5f 4d 41 |_10_EXP>.<FLT_MA| 0003eed0 58 3e 0a 3c 44 42 4c 5f 4d 41 58 3e 0a 3c 4c 44 |X>.<DBL_MAX>.<LD| 0003eee0 42 4c 5f 4d 41 58 3e 0a 3c 46 4c 54 5f 45 50 53 |BL_MAX>.<FLT_EPS| 0003eef0 49 4c 4f 4e 3e 0a 3c 44 42 4c 5f 45 50 53 49 4c |ILON>.<DBL_EPSIL| 0003ef00 4f 4e 3e 0a 3c 4c 44 42 4c 5f 45 50 53 49 4c 4f |ON>.<LDBL_EPSILO| 0003ef10 4e 3e 0a 3c 46 4c 54 5f 4d 49 4e 3e 0a 3c 44 42 |N>.<FLT_MIN>.<DB| 0003ef20 4c 5f 4d 49 4e 3e 0a 3c 4c 44 42 4c 5f 4d 49 4e |L_MIN>.<LDBL_MIN| 0003ef30 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 0003ef40 a7 01 00 00 66 6c 6f 6f 72 0a 53 79 6e 74 61 78 |....floor.Syntax| 0003ef50 3a 09 64 6f 75 62 6c 65 20 9f 6f 6f 72 20 28 64 |:.double .oor (d| 0003ef60 6f 75 62 6c 65 20 78 29 3b 0a 48 65 61 64 65 72 |ouble x);.Header| 0003ef70 3a 09 3c 6d 61 74 68 2e 68 3d 3e 6d 61 74 68 3e |:.<math.h=>math>| 0003ef80 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 73 |..Returns:.The s| 0003ef90 6d 61 6c 6c 65 73 74 20 69 6e 74 65 67 65 72 20 |mallest integer | 0003efa0 65 71 75 61 6c 20 74 6f 20 6f 72 20 6c 65 73 73 |equal to or less| 0003efb0 20 74 68 61 6e 20 78 2e 0a 0a 54 68 69 73 20 66 | than x...This f| 0003efc0 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 |unction calculat| 0003efd0 65 73 20 74 68 65 20 90 9f 6f 6f 72 91 20 6f 66 |es the ..oor. of| 0003efe0 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 65 | the given value| 0003eff0 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 73 6d |. This is the sm| 0003f000 61 6c 6c 65 73 74 20 69 6e 74 65 67 65 72 20 6e |allest integer n| 0003f010 6f 74 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 |ot greater than | 0003f020 78 2e 20 42 61 73 69 63 61 6c 6c 79 2c 20 69 66 |x. Basically, if| 0003f030 20 78 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 | x is an integer| 0003f040 20 76 61 6c 75 65 20 74 68 65 6e 20 74 68 65 20 | value then the | 0003f050 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 0003f060 20 78 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 | x, otherwise it| 0003f070 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 65 78 | returns the nex| 0003f080 74 20 6c 6f 77 65 73 74 20 69 6e 74 65 67 65 72 |t lowest integer| 0003f090 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 |. Note that the | 0003f0a0 72 65 73 75 6c 74 20 69 73 20 72 65 74 75 72 6e |result is return| 0003f0b0 65 64 20 61 73 20 61 20 64 6f 75 62 6c 65 2c 20 |ed as a double, | 0003f0c0 65 76 65 6e 20 74 68 6f 75 67 68 20 69 74 20 69 |even though it i| 0003f0d0 73 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c |s an integer val| 0003f0e0 75 65 2e 00 44 49 52 24 6c 01 00 00 6c 01 00 00 |ue..DIR$l...l...| 0003f0f0 50 f2 03 00 46 ff ff ff 1a aa b5 22 3a 00 00 00 |P...F......":...| 0003f100 13 00 00 00 00 00 00 00 44 49 47 00 8c f2 03 00 |........DIG.....| 0003f110 46 ff ff ff 22 aa b5 22 3e 00 00 00 13 00 00 00 |F..."..">.......| 0003f120 00 00 00 00 45 50 53 49 4c 4f 4e 00 cc f2 03 00 |....EPSILON.....| 0003f130 46 ff ff ff 3a 89 bc 22 8c 00 00 00 13 00 00 00 |F...:.."........| 0003f140 00 00 00 00 4d 41 4e 54 5f 44 49 47 00 00 00 00 |....MANT_DIG....| 0003f150 58 f3 03 00 46 ff ff ff 80 c4 bc 22 90 00 00 00 |X...F......"....| 0003f160 13 00 00 00 00 00 00 00 4d 41 58 00 e8 f3 03 00 |........MAX.....| 0003f170 46 ff ff ff 73 b8 bc 22 8f 00 00 00 13 00 00 00 |F...s.."........| 0003f180 00 00 00 00 4d 41 58 5f 31 30 5f 45 58 50 00 00 |....MAX_10_EXP..| 0003f190 78 f4 03 00 46 ff ff ff 3a ae bc 22 84 00 00 00 |x...F...:.."....| 0003f1a0 13 00 00 00 00 00 00 00 4d 41 58 5f 45 58 50 00 |........MAX_EXP.| 0003f1b0 fc f4 03 00 46 ff ff ff 67 d4 bc 22 90 00 00 00 |....F...g.."....| 0003f1c0 13 00 00 00 00 00 00 00 4d 49 4e 00 8c f5 03 00 |........MIN.....| 0003f1d0 46 ff ff ff 3a a4 bc 22 8f 00 00 00 13 00 00 00 |F...:.."........| 0003f1e0 00 00 00 00 4d 49 4e 5f 31 30 5f 45 58 50 00 00 |....MIN_10_EXP..| 0003f1f0 1c f6 03 00 46 ff ff ff 4a 99 bc 22 84 00 00 00 |....F...J.."....| 0003f200 13 00 00 00 00 00 00 00 4d 49 4e 5f 45 58 50 00 |........MIN_EXP.| 0003f210 a0 f6 03 00 46 ff ff ff ad ab b5 22 3c 00 00 00 |....F......"<...| 0003f220 13 00 00 00 00 00 00 00 52 41 44 49 58 00 00 00 |........RADIX...| 0003f230 dc f6 03 00 46 ff ff ff b5 ab b5 22 3d 00 00 00 |....F......"=...| 0003f240 13 00 00 00 00 00 00 00 52 4f 55 4e 44 53 00 00 |........ROUNDS..| 0003f250 44 41 54 41 3a 00 00 00 46 4c 54 5f 44 49 47 0a |DATA:...FLT_DIG.| 0003f260 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0003f270 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e |fined in <float.| 0003f280 68 3d 3e 66 6c 6f 61 74 3e 2e 00 00 44 41 54 41 |h=>float>...DATA| 0003f290 3e 00 00 00 46 4c 54 5f 45 50 53 49 4c 4f 4e 0a |>...FLT_EPSILON.| 0003f2a0 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0003f2b0 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e |fined in <float.| 0003f2c0 68 3d 3e 66 6c 6f 61 74 3e 2e 00 00 44 41 54 41 |h=>float>...DATA| 0003f2d0 8c 00 00 00 46 4c 54 5f 4d 41 4e 54 5f 44 49 47 |....FLT_MANT_DIG| 0003f2e0 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 0003f2f0 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 |efined in <float| 0003f300 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 20 67 |.h=>float>. It g| 0003f310 69 76 65 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |ives the number | 0003f320 6f 66 20 64 69 67 69 74 73 20 69 6e 20 74 68 65 |of digits in the| 0003f330 20 6d 61 6e 74 69 73 73 61 20 6f 66 20 61 20 76 | mantissa of a v| 0003f340 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 |ariable of type | 0003f350 27 66 6c 6f 61 74 27 2e 44 41 54 41 90 00 00 00 |'float'.DATA....| 0003f360 46 4c 54 5f 4d 41 58 0a 54 68 69 73 20 6d 61 63 |FLT_MAX.This mac| 0003f370 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 0003f380 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 | <float.h=>float| 0003f390 3e 2e 20 49 74 20 67 69 76 65 73 20 74 68 65 20 |>. It gives the | 0003f3a0 6d 61 78 69 6d 75 6d 20 70 6f 73 69 74 69 76 65 |maximum positive| 0003f3b0 20 76 61 6c 75 65 20 74 68 61 74 20 63 61 6e 20 | value that can | 0003f3c0 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 20 76 |be stored in a v| 0003f3d0 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 |ariable of type | 0003f3e0 27 66 6c 6f 61 74 27 2e 44 41 54 41 8f 00 00 00 |'float'.DATA....| 0003f3f0 46 4c 54 5f 4d 41 58 5f 31 30 5f 45 58 50 0a 54 |FLT_MAX_10_EXP.T| 0003f400 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 0003f410 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 |ined in <float.h| 0003f420 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 |=>float>. It giv| 0003f430 65 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 62 |es the maximum b| 0003f440 61 73 65 20 31 30 20 65 78 70 6f 6e 65 6e 74 20 |ase 10 exponent | 0003f450 61 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 |a variable of ty| 0003f460 70 65 20 27 66 6c 6f 61 74 27 20 63 61 6e 20 63 |pe 'float' can c| 0003f470 6f 6e 74 61 69 6e 2e 00 44 41 54 41 84 00 00 00 |ontain..DATA....| 0003f480 46 4c 54 5f 4d 41 58 5f 45 58 50 0a 54 68 69 73 |FLT_MAX_EXP.This| 0003f490 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 0003f4a0 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 |d in <float.h=>f| 0003f4b0 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 65 73 20 |loat>. It gives | 0003f4c0 74 68 65 20 6d 61 78 69 6d 75 6d 20 65 78 70 6f |the maximum expo| 0003f4d0 6e 65 6e 74 20 61 20 76 61 72 69 61 62 6c 65 20 |nent a variable | 0003f4e0 6f 66 20 74 79 70 65 20 27 66 6c 6f 61 74 27 20 |of type 'float' | 0003f4f0 63 61 6e 20 63 6f 6e 74 61 69 6e 2e 44 41 54 41 |can contain.DATA| 0003f500 90 00 00 00 46 4c 54 5f 4d 49 4e 0a 54 68 69 73 |....FLT_MIN.This| 0003f510 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 0003f520 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 |d in <float.h=>f| 0003f530 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 65 73 20 |loat>. It gives | 0003f540 74 68 65 20 6d 69 6e 69 6d 75 6d 20 70 6f 73 69 |the minimum posi| 0003f550 74 69 76 65 20 76 61 6c 75 65 20 74 68 61 74 20 |tive value that | 0003f560 63 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 6e |can be stored in| 0003f570 20 61 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 | a variable of t| 0003f580 79 70 65 20 27 66 6c 6f 61 74 27 2e 44 41 54 41 |ype 'float'.DATA| 0003f590 8f 00 00 00 46 4c 54 5f 4d 49 4e 5f 31 30 5f 45 |....FLT_MIN_10_E| 0003f5a0 58 50 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |XP.This macro is| 0003f5b0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f | defined in <flo| 0003f5c0 61 74 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 |at.h=>float>. It| 0003f5d0 20 67 69 76 65 73 20 74 68 65 20 6d 69 6e 69 6d | gives the minim| 0003f5e0 75 6d 20 62 61 73 65 20 31 30 20 65 78 70 6f 6e |um base 10 expon| 0003f5f0 65 6e 74 20 61 20 76 61 72 69 61 62 6c 65 20 6f |ent a variable o| 0003f600 66 20 74 79 70 65 20 27 66 6c 6f 61 74 27 20 63 |f type 'float' c| 0003f610 61 6e 20 63 6f 6e 74 61 69 6e 2e 00 44 41 54 41 |an contain..DATA| 0003f620 84 00 00 00 46 4c 54 5f 4d 49 4e 5f 45 58 50 0a |....FLT_MIN_EXP.| 0003f630 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0003f640 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e |fined in <float.| 0003f650 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 74 20 67 69 |h=>float>. It gi| 0003f660 76 65 73 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 |ves the minimum | 0003f670 65 78 70 6f 6e 65 6e 74 20 61 20 76 61 72 69 61 |exponent a varia| 0003f680 62 6c 65 20 6f 66 20 74 79 70 65 20 27 66 6c 6f |ble of type 'flo| 0003f690 61 74 27 20 63 61 6e 20 63 6f 6e 74 61 69 6e 2e |at' can contain.| 0003f6a0 44 41 54 41 3c 00 00 00 46 4c 54 5f 52 41 44 49 |DATA<...FLT_RADI| 0003f6b0 58 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 |X.This macro is | 0003f6c0 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 |defined in <floa| 0003f6d0 74 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 44 41 54 41 |t.h=>float>.DATA| 0003f6e0 3d 00 00 00 46 4c 54 5f 52 4f 55 4e 44 53 0a 54 |=...FLT_ROUNDS.T| 0003f6f0 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 0003f700 69 6e 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 |ined in <float.h| 0003f710 3d 3e 66 6c 6f 61 74 3e 2e 00 00 00 44 41 54 41 |=>float>....DATA| 0003f720 2b 01 00 00 66 6d 6f 64 0a 53 79 6e 74 61 78 3a |+...fmod.Syntax:| 0003f730 09 64 6f 75 62 6c 65 20 66 6d 6f 64 20 28 64 6f |.double fmod (do| 0003f740 75 62 6c 65 20 78 2c 20 64 6f 75 62 6c 65 20 79 |uble x, double y| 0003f750 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 74 68 |);.Header:.<math| 0003f760 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 75 72 |.h=>math>..Retur| 0003f770 6e 73 3a 09 54 68 65 20 72 65 6d 61 69 6e 64 65 |ns:.The remainde| 0003f780 72 20 6f 66 20 78 2f 79 2e 0a 0a 54 68 69 73 20 |r of x/y...This | 0003f790 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 |function calcula| 0003f7a0 74 65 73 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 |tes the floating| 0003f7b0 20 70 6f 69 6e 74 20 72 65 6d 61 69 6e 64 65 72 | point remainder| 0003f7c0 20 6f 66 20 78 2f 79 2e 20 46 6f 72 6d 61 6c 6c | of x/y. Formall| 0003f7d0 79 20 74 68 69 73 20 69 73 20 64 65 66 69 6e 65 |y this is define| 0003f7e0 64 20 61 73 20 78 a0 2d 20 28 69 20 2a 20 79 29 |d as x.- (i * y)| 0003f7f0 2c 20 77 68 65 72 65 20 69 20 69 73 20 61 6e 20 |, where i is an | 0003f800 69 6e 74 65 67 65 72 20 73 75 63 68 20 74 68 61 |integer such tha| 0003f810 74 20 74 68 65 20 72 65 73 75 6c 74 20 68 61 73 |t the result has| 0003f820 20 74 68 65 20 73 61 6d 65 20 73 69 67 6e 20 61 | the same sign a| 0003f830 73 20 78 20 61 6e 64 20 69 73 20 6c 65 73 73 20 |s x and is less | 0003f840 74 68 61 6e 20 79 2e 00 44 41 54 41 f5 02 00 00 |than y..DATA....| 0003f850 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 0a 56 |DeskLib:Font.h.V| 0003f860 65 72 73 69 6f 6e 3a 20 31 2e 30 31 20 28 32 32 |ersion: 1.01 (22| 0003f870 20 4d 61 79 20 31 39 39 32 29 0a 23 6c 69 6e 65 | May 1992).#line| 0003f880 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 63 |.This header dec| 0003f890 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 |lares functions | 0003f8a0 61 6e 64 20 74 79 70 65 73 20 66 6f 72 20 63 61 |and types for ca| 0003f8b0 6c 6c 69 6e 67 20 74 68 65 20 46 6f 6e 74 20 4d |lling the Font M| 0003f8c0 61 6e 61 67 65 72 2e 0a 0a 46 75 6e 63 74 69 6f |anager...Functio| 0003f8d0 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 0a 23 |ns:..#indent 4.#| 0003f8e0 54 61 62 6c 65 20 31 32 20 32 32 0a 3c 46 6f 6e |Table 12 22.<Fon| 0003f8f0 74 5f 43 61 63 68 65 41 64 64 72 3e 0a 3c 46 6f |t_CacheAddr>.<Fo| 0003f900 6e 74 5f 43 61 72 65 74 3e 0a 3c 46 6f 6e 74 5f |nt_Caret>.<Font_| 0003f910 43 68 61 72 42 42 6f 78 3e 0a 3c 46 6f 6e 74 5f |CharBBox>.<Font_| 0003f920 43 6f 6e 76 65 72 74 74 6f 4f 53 3e 0a 3c 46 6f |ConverttoOS>.<Fo| 0003f930 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 70 6f 69 6e |nt_Converttopoin| 0003f940 74 73 3e 0a 3c 46 6f 6e 74 5f 43 75 72 72 65 6e |ts>.<Font_Curren| 0003f950 74 46 6f 6e 74 3e 0a 3c 46 6f 6e 74 5f 46 69 6e |tFont>.<Font_Fin| 0003f960 64 43 61 72 65 74 3e 0a 3c 46 6f 6e 74 5f 46 69 |dCaret>.<Font_Fi| 0003f970 6e 64 43 61 72 65 74 4a 3e 0a 3c 46 6f 6e 74 5f |ndCaretJ>.<Font_| 0003f980 46 69 6e 64 46 6f 6e 74 3e 0a 3c 46 6f 6e 74 5f |FindFont>.<Font_| 0003f990 46 75 74 75 72 65 46 6f 6e 74 3e 0a 3c 46 6f 6e |FutureFont>.<Fon| 0003f9a0 74 5f 4c 69 73 74 46 6f 6e 74 73 3e 0a 3c 46 6f |t_ListFonts>.<Fo| 0003f9b0 6e 74 5f 4c 6f 73 65 41 6c 6c 46 6f 6e 74 73 3e |nt_LoseAllFonts>| 0003f9c0 0a 3c 46 6f 6e 74 5f 4c 6f 73 65 46 6f 6e 74 3e |.<Font_LoseFont>| 0003f9d0 0a 3c 46 6f 6e 74 5f 50 61 69 6e 74 3e 0a 3c 46 |.<Font_Paint>.<F| 0003f9e0 6f 6e 74 5f 52 65 61 64 44 65 66 6e 3e 0a 3c 46 |ont_ReadDefn>.<F| 0003f9f0 6f 6e 74 5f 52 65 61 64 49 6e 66 6f 3e 0a 3c 46 |ont_ReadInfo>.<F| 0003fa00 6f 6e 74 5f 52 65 61 64 53 63 61 6c 65 46 61 63 |ont_ReadScaleFac| 0003fa10 74 6f 72 3e 0a 3c 46 6f 6e 74 5f 52 65 61 64 54 |tor>.<Font_ReadT| 0003fa20 68 72 65 73 68 6f 6c 64 73 3e 0a 3c 46 6f 6e 74 |hresholds>.<Font| 0003fa30 5f 53 65 74 46 6f 6e 74 3e 0a 3c 46 6f 6e 74 5f |_SetFont>.<Font_| 0003fa40 53 65 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 3e 0a |SetFontColours>.| 0003fa50 3c 46 6f 6e 74 5f 53 65 74 50 61 6c 65 74 74 65 |<Font_SetPalette| 0003fa60 3e 0a 3c 46 6f 6e 74 5f 53 65 74 54 68 72 65 73 |>.<Font_SetThres| 0003fa70 68 6f 6c 64 73 3e 0a 3c 46 6f 6e 74 5f 53 74 72 |holds>.<Font_Str| 0003fa80 69 6e 67 42 42 6f 78 3e 0a 3c 46 6f 6e 74 5f 53 |ingBBox>.<Font_S| 0003fa90 74 72 69 6e 67 57 69 64 74 68 3e 0a 23 45 6e 64 |tringWidth>.#End| 0003faa0 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 |Table.#indent..T| 0003fab0 79 70 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 35 |ypes:..#indent 5| 0003fac0 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 |.#Table columns | 0003fad0 33 0a 3c 66 6f 6e 74 5f 68 61 6e 64 6c 65 3e 0a |3.<font_handle>.| 0003fae0 3c 66 6f 6e 74 5f 64 65 66 6e 3e 0a 3c 66 6f 6e |<font_defn>.<fon| 0003faf0 74 5f 69 6e 66 6f 3e 0a 3c 66 6f 6e 74 5f 73 74 |t_info>.<font_st| 0003fb00 72 69 6e 67 3e 0a 3c 66 6f 6e 74 5f 63 6f 6c 6f |ring>.<font_colo| 0003fb10 75 72 73 3e 0a 3c 66 6f 6e 74 5f 73 74 61 74 65 |urs>.<font_state| 0003fb20 3e 0a 3c 66 6f 6e 74 5f 74 68 72 65 73 68 6f 6c |>.<font_threshol| 0003fb30 64 73 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 00 |ds>.#EndTable...| 0003fb40 44 49 52 24 40 08 00 00 40 08 00 00 80 03 04 00 |DIR$@...@.......| 0003fb50 46 fd ff ff 14 fe aa 24 7c 00 00 00 13 00 00 00 |F......$|.......| 0003fb60 00 00 00 00 21 52 6f 6f 74 00 00 00 fc 03 04 00 |....!Root.......| 0003fb70 46 ff ff ff 86 d5 ac 24 98 00 00 00 13 00 00 00 |F......$........| 0003fb80 00 00 00 00 5f 74 72 65 65 00 00 00 94 04 04 00 |...._tree.......| 0003fb90 46 ff ff ff 22 90 5a 24 b7 00 00 00 13 00 00 00 |F...".Z$........| 0003fba0 00 00 00 00 41 42 53 00 4c 05 04 00 46 ff ff ff |....ABS.L...F...| 0003fbb0 85 6a ab 24 99 00 00 00 13 00 00 00 00 00 00 00 |.j.$............| 0003fbc0 61 63 74 69 6f 6e 5f 6f 6e 5f 62 69 74 6d 61 70 |action_on_bitmap| 0003fbd0 00 00 00 00 e8 05 04 00 46 ff ff ff 82 93 48 26 |........F.....H&| 0003fbe0 3a 01 00 00 13 00 00 00 00 00 00 00 61 72 72 61 |:...........arra| 0003fbf0 79 00 00 00 24 07 04 00 46 ff ff ff b3 08 ab 24 |y...$...F......$| 0003fc00 5f 00 00 00 13 00 00 00 00 00 00 00 42 6c 75 65 |_...........Blue| 0003fc10 47 75 6e 00 84 07 04 00 46 ff ff ff 15 47 29 25 |Gun.....F....G)%| 0003fc20 8d 01 00 00 13 00 00 00 00 00 00 00 43 61 63 68 |............Cach| 0003fc30 65 41 64 64 72 00 00 00 14 09 04 00 46 ff ff ff |eAddr.......F...| 0003fc40 67 d2 48 23 8d 01 00 00 13 00 00 00 00 00 00 00 |g.H#............| 0003fc50 63 61 63 68 65 61 64 64 72 65 73 73 00 00 00 00 |cacheaddress....| 0003fc60 a4 0a 04 00 46 ff ff ff 07 ef 48 23 a7 01 00 00 |....F.....H#....| 0003fc70 13 00 00 00 00 00 00 00 43 61 72 65 74 00 00 00 |........Caret...| 0003fc80 4c 0c 04 00 46 ff ff ff bb 10 49 23 38 02 00 00 |L...F.....I#8...| 0003fc90 13 00 00 00 00 00 00 00 43 68 61 72 42 42 6f 78 |........CharBBox| 0003fca0 00 00 00 00 84 0e 04 00 46 ff ff ff 63 32 2a 25 |........F...c2*%| 0003fcb0 9f 00 00 00 13 00 00 00 00 00 00 00 63 6f 6c 6f |............colo| 0003fcc0 75 72 73 00 24 0f 04 00 46 ff ff ff 00 2c 49 23 |urs.$...F....,I#| 0003fcd0 f4 01 00 00 13 00 00 00 00 00 00 00 43 6f 6e 76 |............Conv| 0003fce0 65 72 74 74 6f 4f 53 00 18 11 04 00 46 ff ff ff |erttoOS.....F...| 0003fcf0 5a 3f 49 23 08 02 00 00 13 00 00 00 00 00 00 00 |Z?I#............| 0003fd00 43 6f 6e 76 65 72 74 74 6f 70 6f 69 6e 74 73 00 |Converttopoints.| 0003fd10 20 13 04 00 46 ff ff ff cf 48 49 23 db 00 00 00 | ...F....HI#....| 0003fd20 13 00 00 00 00 00 00 00 63 75 72 72 65 6e 74 00 |........current.| 0003fd30 fc 13 04 00 46 ff ff ff d0 51 29 25 e9 00 00 00 |....F....Q)%....| 0003fd40 13 00 00 00 00 00 00 00 43 75 72 72 65 6e 74 46 |........CurrentF| 0003fd50 6f 6e 74 00 e8 14 04 00 46 ff ff ff 9e 22 ab 24 |ont.....F....".$| 0003fd60 1d 01 00 00 13 00 00 00 00 00 00 00 64 65 66 00 |............def.| 0003fd70 08 16 04 00 46 ff ff ff d2 2b 2a 25 48 01 00 00 |....F....+*%H...| 0003fd80 13 00 00 00 00 00 00 00 64 65 66 6e 00 00 00 00 |........defn....| 0003fd90 50 17 04 00 46 ff ff ff bd 59 49 23 fd 01 00 00 |P...F....YI#....| 0003fda0 13 00 00 00 00 00 00 00 66 69 6e 64 00 00 00 00 |........find....| 0003fdb0 50 19 04 00 46 ff ff ff d7 73 49 23 8c 02 00 00 |P...F....sI#....| 0003fdc0 13 00 00 00 00 00 00 00 46 69 6e 64 43 61 72 65 |........FindCare| 0003fdd0 74 00 00 00 dc 1b 04 00 46 ff ff ff 40 84 49 23 |t.......F...@.I#| 0003fde0 67 01 00 00 13 00 00 00 00 00 00 00 46 69 6e 64 |g...........Find| 0003fdf0 43 61 72 65 74 4a 00 00 44 1d 04 00 46 ff ff ff |CaretJ..D...F...| 0003fe00 ea 63 29 25 f5 01 00 00 13 00 00 00 00 00 00 00 |.c)%............| 0003fe10 46 69 6e 64 46 6f 6e 74 00 00 00 00 3c 1f 04 00 |FindFont....<...| 0003fe20 46 ff ff ff 38 8e 49 23 10 01 00 00 13 00 00 00 |F...8.I#........| 0003fe30 00 00 00 00 66 75 74 75 72 65 00 00 4c 20 04 00 |....future..L ..| 0003fe40 46 ff ff ff 93 6b 29 25 21 01 00 00 13 00 00 00 |F....k)%!.......| 0003fe50 00 00 00 00 46 75 74 75 72 65 46 6f 6e 74 00 00 |....FutureFont..| 0003fe60 70 21 04 00 46 ff ff ff c4 0d ab 24 61 00 00 00 |p!..F......$a...| 0003fe70 13 00 00 00 00 00 00 00 47 72 65 65 6e 47 75 6e |........GreenGun| 0003fe80 00 00 00 00 d4 21 04 00 46 fd ff ff 8b ad 48 23 |.....!..F.....H#| 0003fe90 67 03 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |g...........h...| 0003fea0 3c 25 04 00 46 ff ff ff 72 22 2a 25 89 00 00 00 |<%..F...r"*%....| 0003feb0 13 00 00 00 00 00 00 00 68 61 6e 64 6c 65 00 00 |........handle..| 0003fec0 c8 25 04 00 46 ff ff ff 86 3c ab 24 d8 00 00 00 |.%..F....<.$....| 0003fed0 13 00 00 00 00 00 00 00 69 6e 66 6f 00 00 00 00 |........info....| 0003fee0 a0 26 04 00 46 ff ff ff 78 87 5a 24 b6 00 00 00 |.&..F...x.Z$....| 0003fef0 13 00 00 00 00 00 00 00 4a 55 53 54 49 46 59 00 |........JUSTIFY.| 0003ff00 58 27 04 00 46 ff ff ff 64 a6 49 23 24 02 00 00 |X'..F...d.I#$...| 0003ff10 13 00 00 00 00 00 00 00 6c 69 73 74 00 00 00 00 |........list....| 0003ff20 7c 29 04 00 46 ff ff ff b1 91 29 25 34 02 00 00 ||)..F.....)%4...| 0003ff30 13 00 00 00 00 00 00 00 4c 69 73 74 46 6f 6e 74 |........ListFont| 0003ff40 73 00 00 00 b0 2b 04 00 46 ff ff ff cf af 49 23 |s....+..F.....I#| 0003ff50 de 00 00 00 13 00 00 00 00 00 00 00 6c 6f 73 65 |............lose| 0003ff60 00 00 00 00 90 2c 04 00 46 ff ff ff bf 9e 29 25 |.....,..F.....)%| 0003ff70 f1 00 00 00 13 00 00 00 00 00 00 00 4c 6f 73 65 |............Lose| 0003ff80 41 6c 6c 46 6f 6e 74 73 00 00 00 00 84 2d 04 00 |AllFonts.....-..| 0003ff90 46 ff ff ff 80 a2 29 25 ef 00 00 00 13 00 00 00 |F.....)%........| 0003ffa0 00 00 00 00 4c 6f 73 65 46 6f 6e 74 00 00 00 00 |....LoseFont....| 0003ffb0 74 2e 04 00 46 ff ff ff 75 95 5a 24 b6 00 00 00 |t...F...u.Z$....| 0003ffc0 13 00 00 00 00 00 00 00 4f 53 43 4f 4f 52 44 53 |........OSCOORDS| 0003ffd0 00 00 00 00 2c 2f 04 00 46 ff ff ff 85 b6 49 23 |....,/..F.....I#| 0003ffe0 ea 00 00 00 13 00 00 00 00 00 00 00 6f 75 74 70 |............outp| 0003fff0 75 74 5f 73 69 7a 65 00 18 30 04 00 46 ff ff ff |ut_size..0..F...| 00040000 09 c1 49 23 e5 01 00 00 13 00 00 00 00 00 00 00 |..I#............| 00040010 6f 75 74 70 75 74 5f 74 6f 5f 62 75 66 66 65 72 |output_to_buffer| 00040020 00 00 00 00 00 32 04 00 46 ff ff ff d3 3b 59 24 |.....2..F....;Y$| 00040030 79 02 00 00 13 00 00 00 00 00 00 00 6f 75 74 70 |y...........outp| 00040040 75 74 5f 74 6f 5f 6e 75 6c 6c 00 00 7c 34 04 00 |ut_to_null..|4..| 00040050 46 ff ff ff 20 45 59 24 e8 00 00 00 13 00 00 00 |F... EY$........| 00040060 00 00 00 00 6f 75 74 70 75 74 5f 74 6f 5f 73 63 |....output_to_sc| 00040070 72 65 65 6e 00 00 00 00 64 35 04 00 46 ff ff ff |reen....d5..F...| 00040080 2e 79 f2 2b 7d 03 00 00 13 00 00 00 00 00 00 00 |.y.+}...........| 00040090 50 61 69 6e 74 00 00 00 e4 38 04 00 46 ff ff ff |Paint....8..F...| 000400a0 07 9b 59 24 0c 02 00 00 13 00 00 00 00 00 00 00 |..Y$............| 000400b0 72 65 61 64 64 65 66 00 f0 3a 04 00 46 ff ff ff |readdef..:..F...| 000400c0 35 d2 29 25 9f 02 00 00 13 00 00 00 00 00 00 00 |5.)%............| 000400d0 52 65 61 64 44 65 66 6e 00 00 00 00 90 3d 04 00 |ReadDefn.....=..| 000400e0 46 ff ff ff 00 ae 59 24 1a 02 00 00 13 00 00 00 |F.....Y$........| 000400f0 00 00 00 00 52 65 61 64 49 6e 66 6f 00 00 00 00 |....ReadInfo....| 00040100 ac 3f 04 00 46 ff ff ff 2b c4 59 24 5e 01 00 00 |.?..F...+.Y$^...| 00040110 13 00 00 00 00 00 00 00 52 65 61 64 53 63 61 6c |........ReadScal| 00040120 65 46 61 63 74 6f 72 00 0c 41 04 00 46 ff ff ff |eFactor..A..F...| 00040130 27 ce 59 24 6c 01 00 00 13 00 00 00 00 00 00 00 |'.Y$l...........| 00040140 52 65 61 64 54 68 72 65 73 68 6f 6c 64 73 00 00 |ReadThresholds..| 00040150 78 42 04 00 46 ff ff ff 94 11 ab 24 5d 00 00 00 |xB..F......$]...| 00040160 13 00 00 00 00 00 00 00 52 65 64 47 75 6e 00 00 |........RedGun..| 00040170 d8 42 04 00 46 ff ff ff 77 8b 5a 24 b4 00 00 00 |.B..F...w.Z$....| 00040180 13 00 00 00 00 00 00 00 52 55 42 4f 55 54 00 00 |........RUBOUT..| 00040190 8c 43 04 00 46 ff ff ff 1a ff 59 24 31 02 00 00 |.C..F.....Y$1...| 000401a0 13 00 00 00 00 00 00 00 73 65 74 63 6f 6c 6f 75 |........setcolou| 000401b0 72 00 00 00 c0 45 04 00 46 ff ff ff 83 0b 5a 24 |r....E..F.....Z$| 000401c0 57 01 00 00 13 00 00 00 00 00 00 00 53 65 74 46 |W...........SetF| 000401d0 6f 6e 74 00 18 47 04 00 46 ff ff ff 04 f6 29 25 |ont..G..F.....)%| 000401e0 4c 02 00 00 13 00 00 00 00 00 00 00 53 65 74 46 |L...........SetF| 000401f0 6f 6e 74 43 6f 6c 6f 75 72 73 00 00 64 49 04 00 |ontColours..dI..| 00040200 46 ff ff ff 4a 26 5a 24 98 02 00 00 13 00 00 00 |F...J&Z$........| 00040210 00 00 00 00 53 65 74 50 61 6c 65 74 74 65 00 00 |....SetPalette..| 00040220 fc 4b 04 00 46 ff ff ff 2c 41 5a 24 db 00 00 00 |.K..F...,AZ$....| 00040230 13 00 00 00 00 00 00 00 73 65 74 73 63 61 6c 65 |........setscale| 00040240 66 61 63 74 6f 72 00 00 d8 4c 04 00 46 ff ff ff |factor...L..F...| 00040250 e5 4c 5a 24 59 01 00 00 13 00 00 00 00 00 00 00 |.LZ$Y...........| 00040260 53 65 74 54 68 72 65 73 68 6f 6c 64 73 00 00 00 |SetThresholds...| 00040270 34 4e 04 00 46 ff ff ff 39 5c ab 24 c3 01 00 00 |4N..F...9\.$....| 00040280 13 00 00 00 00 00 00 00 73 74 61 74 65 00 00 00 |........state...| 00040290 f8 4f 04 00 46 ff ff ff 22 47 ab 24 2d 01 00 00 |.O..F..."G.$-...| 000402a0 13 00 00 00 00 00 00 00 73 74 72 69 6e 67 00 00 |........string..| 000402b0 28 51 04 00 46 ff ff ff 78 5d 5a 24 7c 01 00 00 |(Q..F...x]Z$|...| 000402c0 13 00 00 00 00 00 00 00 53 74 72 69 6e 67 42 42 |........StringBB| 000402d0 6f 78 00 00 a4 52 04 00 46 ff ff ff 83 14 2a 25 |ox...R..F.....*%| 000402e0 da 02 00 00 13 00 00 00 00 00 00 00 53 74 72 69 |............Stri| 000402f0 6e 67 57 69 64 74 68 00 80 55 04 00 46 ff ff ff |ngWidth..U..F...| 00040300 32 7e 5a 24 c3 02 00 00 13 00 00 00 00 00 00 00 |2~Z$............| 00040310 73 74 72 77 69 64 74 68 00 00 00 00 44 58 04 00 |strwidth....DX..| 00040320 46 ff ff ff f5 65 ab 24 a8 00 00 00 13 00 00 00 |F....e.$........| 00040330 00 00 00 00 74 68 72 65 73 68 6f 6c 64 00 00 00 |....threshold...| 00040340 ec 58 04 00 46 ff ff ff 99 37 2a 25 af 00 00 00 |.X..F....7*%....| 00040350 13 00 00 00 00 00 00 00 74 68 72 65 73 68 6f 6c |........threshol| 00040360 64 73 00 00 9c 59 04 00 46 ff ff ff c1 68 55 26 |ds...Y..F....hU&| 00040370 73 01 00 00 13 00 00 00 00 00 00 00 54 4c 00 00 |s...........TL..| 00040380 44 41 54 41 7c 00 00 00 66 6f 6e 74 0a 54 68 69 |DATA|...font.Thi| 00040390 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000403a0 64 20 69 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f |d in <font.h=>fo| 000403b0 6e 74 5f 68 3e 2e 20 49 74 20 69 73 20 75 73 65 |nt_h>. It is use| 000403c0 64 20 74 6f 20 68 6f 6c 64 20 61 20 66 6f 6e 74 |d to hold a font| 000403d0 20 68 61 6e 64 6c 65 2e 20 49 74 20 69 73 20 61 | handle. It is a| 000403e0 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 |ctually defined | 000403f0 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 44 41 54 41 |as an /int/.DATA| 00040400 98 00 00 00 66 6f 6e 74 5f 5f 74 72 65 65 0a 54 |....font__tree.T| 00040410 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 |his variable is | 00040420 64 65 63 6c 61 72 65 64 20 69 6e 20 3c 66 6f 6e |declared in <fon| 00040430 74 6c 69 73 74 2e 68 3d 3e 66 6f 6e 74 6c 69 73 |tlist.h=>fontlis| 00040440 74 3e 2e 20 49 74 20 69 73 20 61 20 70 6f 69 6e |t>. It is a poin| 00040450 74 65 72 20 74 6f 20 74 68 65 20 66 6f 6e 74 20 |ter to the font | 00040460 74 72 65 65 20 75 73 65 64 20 62 79 20 74 68 65 |tree used by the| 00040470 20 66 75 6e 63 74 69 6f 6e 20 3c 66 6f 6e 74 6c | function <fontl| 00040480 69 73 74 5f 6c 69 73 74 5f 61 6c 6c 5f 66 6f 6e |ist_list_all_fon| 00040490 74 73 3e 2e 44 41 54 41 b7 00 00 00 66 6f 6e 74 |ts>.DATA....font| 000404a0 5f 41 42 53 0a 54 68 69 73 20 6d 61 63 72 6f 20 |_ABS.This macro | 000404b0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 |is defined in <f| 000404c0 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 2e 20 |ont.h=>font_h>. | 000404d0 49 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 |It is the value | 000404e0 6f 66 20 74 68 65 20 62 69 74 20 75 73 65 64 20 |of the bit used | 000404f0 74 6f 20 69 6e 64 69 63 61 74 65 20 69 6e 20 74 |to indicate in t| 00040500 68 65 20 70 61 69 6e 74 20 6f 70 74 69 6f 6e 73 |he paint options| 00040510 20 74 68 61 74 20 61 62 73 6f 6c 75 74 65 20 63 | that absolute c| 00040520 6f 6f 72 64 69 6e 61 74 65 73 20 61 72 65 20 75 |oordinates are u| 00040530 73 65 64 2e 20 49 74 20 69 73 20 64 65 66 69 6e |sed. It is defin| 00040540 65 64 20 61 73 20 30 78 30 34 2e 00 44 41 54 41 |ed as 0x04..DATA| 00040550 99 00 00 00 66 6f 6e 74 5f 61 63 74 69 6f 6e 5f |....font_action_| 00040560 6f 6e 5f 62 69 74 6d 61 70 0a 54 68 69 73 20 65 |on_bitmap.This e| 00040570 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 69 |numerated type i| 00040580 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6f |s defined in <fo| 00040590 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 61 73 |nt.h=>font_h> as| 000405a0 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 20 5c 7b 0a | follows:.. \{.| 000405b0 20 20 20 20 66 6f 6e 74 5f 43 4f 4e 56 45 52 54 | font_CONVERT| 000405c0 2c 0a 20 20 20 20 66 6f 6e 74 5f 49 47 4e 4f 52 |,. font_IGNOR| 000405d0 45 2c 0a 20 20 20 20 66 6f 6e 74 5f 45 52 52 4f |E,. font_ERRO| 000405e0 52 0a 20 20 7d 00 00 00 44 41 54 41 3a 01 00 00 |R. }...DATA:...| 000405f0 66 6f 6e 74 5f 61 72 72 61 79 0a 54 68 69 73 20 |font_array.This | 00040600 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 00040610 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |in <DeskLib:Wimp| 00040620 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 20 74 |.h=>Wimp> as a t| 00040630 79 70 65 20 68 6f 6c 64 69 6e 67 20 61 20 66 6f |ype holding a fo| 00040640 6e 74 20 61 72 72 61 79 20 75 73 65 64 20 77 68 |nt array used wh| 00040650 65 6e 20 6c 6f 61 64 69 6e 67 20 74 65 6d 70 6c |en loading templ| 00040660 61 74 65 73 2e 20 49 74 20 69 73 20 64 65 66 69 |ates. It is defi| 00040670 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ned as the follo| 00040680 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 00040690 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 20 66 |. \{. char f| 000406a0 6f 6e 74 73 5b 32 35 36 5d 3b 0a 20 20 7d 0a 0a |onts[256];. }..| 000406b0 54 68 65 20 61 72 72 61 79 20 63 6f 6e 74 61 69 |The array contai| 000406c0 6e 73 20 61 20 63 6f 75 6e 74 2c 20 66 6f 72 20 |ns a count, for | 000406d0 65 61 63 68 20 66 6f 6e 74 20 68 61 6e 64 6c 65 |each font handle| 000406e0 20 28 30 2d 32 35 35 29 20 6f 66 20 68 6f 77 20 | (0-255) of how | 000406f0 6d 61 6e 79 20 74 69 6d 65 73 20 69 74 20 68 61 |many times it ha| 00040700 73 20 62 65 65 6e 20 66 6f 75 6e 64 20 77 69 74 |s been found wit| 00040710 68 20 3c 46 6f 6e 74 5f 46 69 6e 64 46 6f 6e 74 |h <Font_FindFont| 00040720 3e 2e 00 00 44 41 54 41 5f 00 00 00 66 6f 6e 74 |>...DATA_...font| 00040730 5f 42 6c 75 65 47 75 6e 0a 54 68 65 20 6d 61 63 |_BlueGun.The mac| 00040740 72 6f 20 7b 2a 7d 66 6f 6e 74 5f 42 6c 75 65 47 |ro {*}font_BlueG| 00040750 75 6e 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 |un{*} is defined| 00040760 20 69 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e | in <font.h=>fon| 00040770 74 5f 68 3e 20 61 73 20 30 78 30 31 30 30 30 30 |t_h> as 0x010000| 00040780 30 30 2e 00 44 41 54 41 8d 01 00 00 46 6f 6e 74 |00..DATA....Font| 00040790 5f 43 61 63 68 65 41 64 64 72 0a 53 79 6e 74 61 |_CacheAddr.Synta| 000407a0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 |x:.<os_error> *F| 000407b0 6f 6e 74 5f 43 61 63 68 65 41 64 64 72 20 28 69 |ont_CacheAddr (i| 000407c0 6e 74 20 2a 76 65 72 73 69 6f 6e 2c 20 69 6e 74 |nt *version, int| 000407d0 20 2a 63 61 63 68 65 75 73 65 64 2c 20 69 6e 74 | *cacheused, int| 000407e0 20 2a 63 61 63 68 65 73 69 7a 65 29 3b 0a 48 65 | *cachesize);.He| 000407f0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 |ader:.<DeskLib:F| 00040800 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 0a 52 65 |ont.h=>Font>..Re| 00040810 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 00040820 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 00040830 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 00040840 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 |s function finds| 00040850 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d | the version num| 00040860 62 65 72 2c 20 66 6f 6e 74 20 63 61 63 68 65 20 |ber, font cache | 00040870 73 69 7a 65 20 61 6e 64 20 61 6d 6f 75 6e 74 20 |size and amount | 00040880 75 73 65 64 2e 20 54 68 65 20 76 61 6c 75 65 73 |used. The values| 00040890 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 69 6e | are returned in| 000408a0 20 74 68 65 20 69 6e 74 65 67 65 72 73 20 77 68 | the integers wh| 000408b0 6f 73 65 20 70 6f 69 6e 74 65 72 73 20 61 72 65 |ose pointers are| 000408c0 20 67 69 76 65 6e 2e 20 2f 76 65 72 73 69 6f 6e | given. /version| 000408d0 2f 20 69 73 20 67 69 76 65 6e 20 6d 75 6c 74 69 |/ is given multi| 000408e0 70 6c 69 65 64 20 62 79 20 31 30 30 2c 20 73 6f |plied by 100, so| 000408f0 20 76 65 72 73 69 6f 6e 20 32 2e 34 32 20 69 73 | version 2.42 is| 00040900 20 72 65 74 75 72 6e 65 64 20 61 73 20 32 34 32 | returned as 242| 00040910 2e 00 00 00 44 41 54 41 8d 01 00 00 66 6f 6e 74 |....DATA....font| 00040920 5f 63 61 63 68 65 61 64 64 72 65 73 73 0a 53 79 |_cacheaddress.Sy| 00040930 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00040940 20 2a 66 6f 6e 74 5f 63 61 63 68 65 61 64 64 72 | *font_cacheaddr| 00040950 65 73 73 20 28 69 6e 74 20 2a 76 65 72 73 69 6f |ess (int *versio| 00040960 6e 2c 20 69 6e 74 20 2a 63 61 63 68 65 75 73 65 |n, int *cacheuse| 00040970 64 2c 20 69 6e 74 20 2a 63 61 63 68 65 73 69 7a |d, int *cachesiz| 00040980 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 6f 6e |e);.Header:.<fon| 00040990 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 0a 0a 52 65 |t.h=>font_h>..Re| 000409a0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000409b0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000409c0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000409d0 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 |s function finds| 000409e0 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d | the version num| 000409f0 62 65 72 2c 20 66 6f 6e 74 20 63 61 63 68 65 20 |ber, font cache | 00040a00 73 69 7a 65 20 61 6e 64 20 61 6d 6f 75 6e 74 20 |size and amount | 00040a10 75 73 65 64 2e 20 54 68 65 20 76 61 6c 75 65 73 |used. The values| 00040a20 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 69 6e | are returned in| 00040a30 20 74 68 65 20 69 6e 74 65 67 65 72 73 20 77 68 | the integers wh| 00040a40 6f 73 65 20 70 6f 69 6e 74 65 72 73 20 61 72 65 |ose pointers are| 00040a50 20 67 69 76 65 6e 2e 20 2f 76 65 72 73 69 6f 6e | given. /version| 00040a60 2f 20 69 73 20 67 69 76 65 6e 20 6d 75 6c 74 69 |/ is given multi| 00040a70 70 6c 69 65 64 20 62 79 20 31 30 30 2c 20 73 6f |plied by 100, so| 00040a80 20 76 65 72 73 69 6f 6e 20 32 2e 34 32 20 69 73 | version 2.42 is| 00040a90 20 72 65 74 75 72 6e 65 64 20 61 73 20 32 34 32 | returned as 242| 00040aa0 2e 00 00 00 44 41 54 41 a7 01 00 00 46 6f 6e 74 |....DATA....Font| 00040ab0 5f 43 61 72 65 74 2f 66 6f 6e 74 5f 63 61 72 65 |_Caret/font_care| 00040ac0 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |t.Syntax:.<os_er| 00040ad0 72 6f 72 3e 20 2a 46 6f 6e 74 5f 43 61 72 65 74 |ror> *Font_Caret| 00040ae0 20 28 69 6e 74 20 63 6f 6c 2c 20 69 6e 74 20 68 | (int col, int h| 00040af0 65 69 67 68 74 2c 20 69 6e 74 20 66 6c 61 67 73 |eight, int flags| 00040b00 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b |, int x, int y);| 00040b10 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00040b20 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a |b:Font.h=>Font>.| 00040b30 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 |.<font.h=>font_h| 00040b40 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a 52 |> (Desktop C)..R| 00040b50 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00040b60 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00040b70 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00040b80 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 |is function is c| 00040b90 61 6c 6c 65 64 20 7b 2a 7d 66 6f 6e 74 5f 63 61 |alled {*}font_ca| 00040ba0 72 65 74 7b 2a 7d 20 69 6e 20 44 65 73 6b 74 6f |ret{*} in Deskto| 00040bb0 70 20 43 2e 0a 0a 53 65 74 73 20 74 68 65 20 63 |p C...Sets the c| 00040bc0 6f 6c 6f 75 72 2c 20 68 65 69 67 68 74 20 28 69 |olour, height (i| 00040bd0 6e 20 4f 53 20 63 6f 6f 72 64 69 6e 61 74 65 73 |n OS coordinates| 00040be0 29 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 6f |) and position o| 00040bf0 66 20 74 68 65 20 63 61 72 65 74 2e 20 49 66 20 |f the caret. If | 00040c00 62 69 74 20 34 20 6f 66 20 2f 66 6c 61 67 73 2f |bit 4 of /flags/| 00040c10 20 69 73 20 73 65 74 2c 20 74 68 65 6e 20 28 78 | is set, then (x| 00040c20 2c 79 29 20 69 73 20 69 6e 20 6d 69 6c 6c 69 70 |,y) is in millip| 00040c30 6f 69 6e 74 73 2c 20 65 6c 73 65 20 69 74 20 69 |oints, else it i| 00040c40 73 20 4f 53 20 75 6e 69 74 73 2e 00 44 41 54 41 |s OS units..DATA| 00040c50 38 02 00 00 46 6f 6e 74 5f 43 68 61 72 42 42 6f |8...Font_CharBBo| 00040c60 78 2f 66 6f 6e 74 5f 63 68 61 72 62 62 6f 78 0a |x/font_charbbox.| 00040c70 53 79 6e 74 61 78 3a 09 28 44 65 73 6b 4c 69 62 |Syntax:.(DeskLib| 00040c80 29 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 6f |).<os_error> *Fo| 00040c90 6e 74 5f 43 68 61 72 42 42 6f 78 20 28 3c 66 6f |nt_CharBBox (<fo| 00040ca0 6e 74 5f 68 61 6e 64 6c 65 3e 20 66 2c 20 63 68 |nt_handle> f, ch| 00040cb0 61 72 20 63 2c 20 69 6e 74 20 66 6c 61 67 73 2c |ar c, int flags,| 00040cc0 20 3c 66 6f 6e 74 5f 69 6e 66 6f 3e 20 2a 69 6e | <font_info> *in| 00040cd0 66 6f 29 3b 0a 09 28 44 65 73 6b 74 6f 70 20 43 |fo);..(Desktop C| 00040ce0 29 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f |).<os_error> *fo| 00040cf0 6e 74 5f 63 68 61 72 62 62 6f 78 20 28 3c 66 6f |nt_charbbox (<fo| 00040d00 6e 74 3d 3e 66 6f 6e 74 5f 3e 20 66 2c 20 63 68 |nt=>font_> f, ch| 00040d10 61 72 20 63 2c 20 69 6e 74 20 66 6c 61 67 73 2c |ar c, int flags,| 00040d20 20 3c 66 6f 6e 74 5f 69 6e 66 6f 3e 20 2a 69 6e | <font_info> *in| 00040d30 66 6f 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |fo);.Header:.<De| 00040d40 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f |skLib:Font.h=>Fo| 00040d50 6e 74 3e 0a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f |nt>..<font.h=>fo| 00040d60 6e 74 5f 68 3e 20 28 44 65 73 6b 74 6f 70 20 43 |nt_h> (Desktop C| 00040d70 29 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |)..Returns:.Poin| 00040d80 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 00040d90 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 00040da0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00040db0 67 65 74 73 20 74 68 65 20 62 6f 75 6e 64 69 6e |gets the boundin| 00040dc0 67 20 62 6f 78 20 6f 66 20 61 20 63 68 61 72 61 |g box of a chara| 00040dd0 63 74 65 72 20 69 6e 74 6f 20 2f 69 6e 66 6f 2f |cter into /info/| 00040de0 2e 20 4f 6e 20 65 6e 74 72 79 2c 20 2f 66 2f 20 |. On entry, /f/ | 00040df0 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 6f 6e |contains the fon| 00040e00 74 20 68 61 6e 64 6c 65 2c 20 2f 63 2f 20 74 68 |t handle, /c/ th| 00040e10 65 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 62 |e character to b| 00040e20 65 20 63 68 65 63 6b 65 64 20 61 6e 64 20 69 66 |e checked and if| 00040e30 20 2f 66 6c 61 67 73 2f 20 62 69 74 20 34 20 69 | /flags/ bit 4 i| 00040e40 73 20 73 65 74 20 74 68 65 20 63 6f 6f 72 64 69 |s set the coordi| 00040e50 6e 61 74 65 73 20 61 72 65 20 69 6e 20 4f 53 20 |nates are in OS | 00040e60 75 6e 69 74 73 2c 20 65 6c 73 65 20 74 68 65 79 |units, else they| 00040e70 20 61 72 65 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 | are in millipoi| 00040e80 6e 74 73 2e 44 41 54 41 9f 00 00 00 66 6f 6e 74 |nts.DATA....font| 00040e90 5f 63 6f 6c 6f 75 72 73 0a 54 68 69 73 20 74 79 |_colours.This ty| 00040ea0 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 00040eb0 20 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 | <DeskLib:Font.h| 00040ec0 3d 3e 46 6f 6e 74 3e 2e 20 49 74 20 69 73 20 61 |=>Font>. It is a| 00040ed0 20 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 | structure used | 00040ee0 66 6f 72 20 68 6f 6c 64 69 6e 67 20 66 6f 6e 74 |for holding font| 00040ef0 20 63 6f 6c 6f 75 72 73 3a 0a 0a 20 20 5c 7b 0a | colours:.. \{.| 00040f00 20 20 20 20 69 6e 74 20 62 61 63 6b 67 72 6f 75 | int backgrou| 00040f10 6e 64 2c 20 66 6f 72 65 67 72 6f 75 6e 64 3b 0a |nd, foreground;.| 00040f20 20 20 7d 00 44 41 54 41 f4 01 00 00 46 6f 6e 74 | }.DATA....Font| 00040f30 5f 43 6f 6e 76 65 72 74 74 6f 4f 53 2f 66 6f 6e |_ConverttoOS/fon| 00040f40 74 5f 63 6f 6e 76 65 72 74 74 6f 6f 73 0a 53 79 |t_converttoos.Sy| 00040f50 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00040f60 20 2a 46 6f 6e 74 5f 43 6f 6e 76 65 72 74 74 6f | *Font_Convertto| 00040f70 4f 53 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 |OS (int x, int y| 00040f80 2c 20 69 6e 74 20 2a 78 6f 75 74 2c 20 69 6e 74 |, int *xout, int| 00040f90 20 2a 79 6f 75 74 29 3b 0a 48 65 61 64 65 72 3a | *yout);.Header:| 00040fa0 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 |.<DeskLib:Font.h| 00040fb0 3d 3e 46 6f 6e 74 3e 0a 09 3c 66 6f 6e 74 2e 68 |=>Font>..<font.h| 00040fc0 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 65 73 6b 74 |=>font_h> (Deskt| 00040fd0 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e 73 3a 09 |op C)..Returns:.| 00040fe0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00040ff0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00041000 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00041010 69 6f 6e 20 63 6f 6e 76 65 72 74 73 20 69 6e 74 |ion converts int| 00041020 65 72 6e 61 6c 20 63 6f 6f 72 64 69 6e 61 74 65 |ernal coordinate| 00041030 73 20 28 78 2c 79 29 20 69 6e 20 6d 69 6c 6c 69 |s (x,y) in milli| 00041040 70 6f 69 6e 74 73 2c 20 74 6f 20 4f 53 20 75 6e |points, to OS un| 00041050 69 74 73 20 28 75 73 69 6e 67 20 74 68 65 20 63 |its (using the c| 00041060 75 72 72 65 6e 74 20 73 63 61 6c 65 20 66 61 63 |urrent scale fac| 00041070 74 6f 72 29 20 61 6e 64 20 70 6c 61 63 65 73 20 |tor) and places | 00041080 74 68 65 20 72 65 73 75 6c 74 20 69 6e 20 28 2a |the result in (*| 00041090 78 6f 75 74 2c 2a 79 6f 75 74 29 2e 0a 0a 54 68 |xout,*yout)...Th| 000410a0 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 |is function may | 000410b0 61 6c 73 6f 20 62 65 20 61 63 63 65 73 73 65 64 |also be accessed| 000410c0 20 61 73 20 7b 2a 7d 46 6f 6e 74 5f 43 6f 6e 76 | as {*}Font_Conv| 000410d0 65 72 74 54 6f 4f 53 7b 2a 7d 20 69 6e 20 44 65 |ertToOS{*} in De| 000410e0 73 6b 4c 69 62 2e 20 49 74 20 69 73 20 63 61 6c |skLib. It is cal| 000410f0 6c 65 64 20 7b 2a 7d 66 6f 6e 74 5f 63 6f 6e 76 |led {*}font_conv| 00041100 65 72 74 74 6f 6f 73 7b 2a 7d 20 69 6e 20 44 65 |erttoos{*} in De| 00041110 73 6b 74 6f 70 20 43 2e 44 41 54 41 08 02 00 00 |sktop C.DATA....| 00041120 46 6f 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 70 6f |Font_Converttopo| 00041130 69 6e 74 73 2f 66 6f 6e 74 5f 63 6f 6e 76 65 72 |ints/font_conver| 00041140 74 74 6f 70 6f 69 6e 74 73 0a 53 79 6e 74 61 78 |ttopoints.Syntax| 00041150 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 6f |:.<os_error> *Fo| 00041160 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 70 6f 69 6e |nt_Converttopoin| 00041170 74 73 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 |ts (int x, int y| 00041180 2c 20 69 6e 74 20 2a 78 6f 75 74 2c 20 69 6e 74 |, int *xout, int| 00041190 20 2a 79 6f 75 74 29 3b 0a 48 65 61 64 65 72 3a | *yout);.Header:| 000411a0 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 |.<DeskLib:Font.h| 000411b0 3d 3e 46 6f 6e 74 3e 0a 09 3c 66 6f 6e 74 2e 68 |=>Font>..<font.h| 000411c0 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 65 73 6b 74 |=>font_h> (Deskt| 000411d0 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e 73 3a 09 |op C)..Returns:.| 000411e0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000411f0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00041200 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00041210 69 6f 6e 20 63 6f 6e 76 65 72 74 73 20 4f 53 20 |ion converts OS | 00041220 75 6e 69 74 73 20 28 78 2c 79 29 2c 20 74 6f 20 |units (x,y), to | 00041230 69 6e 74 65 72 6e 61 6c 20 63 6f 6f 72 64 69 6e |internal coordin| 00041240 61 74 65 73 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 |ates in millipoi| 00041250 6e 74 73 20 28 75 73 69 6e 67 20 74 68 65 20 63 |nts (using the c| 00041260 75 72 72 65 6e 74 20 73 63 61 6c 65 20 66 61 63 |urrent scale fac| 00041270 74 6f 72 29 20 61 6e 64 20 70 6c 61 63 65 73 20 |tor) and places | 00041280 74 68 65 20 72 65 73 75 6c 74 20 69 6e 20 28 2a |the result in (*| 00041290 78 6f 75 74 2c 2a 79 6f 75 74 29 2e 0a 0a 54 68 |xout,*yout)...Th| 000412a0 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 |is function may | 000412b0 61 6c 73 6f 20 62 65 20 61 63 63 65 73 73 65 64 |also be accessed| 000412c0 20 61 73 20 7b 2a 7d 46 6f 6e 74 5f 43 6f 6e 76 | as {*}Font_Conv| 000412d0 65 72 74 54 6f 50 6f 69 6e 74 73 7b 2a 7d 20 69 |ertToPoints{*} i| 000412e0 6e 20 44 65 73 6b 4c 69 62 2e 20 49 74 20 69 73 |n DeskLib. It is| 000412f0 20 63 61 6c 6c 65 64 20 7b 2a 7d 66 6f 6e 74 5f | called {*}font_| 00041300 63 6f 6e 76 65 72 74 74 6f 70 6f 69 6e 74 73 7b |converttopoints{| 00041310 2a 7d 20 69 6e 20 44 65 73 6b 74 6f 70 20 43 2e |*} in Desktop C.| 00041320 44 41 54 41 db 00 00 00 66 6f 6e 74 5f 63 75 72 |DATA....font_cur| 00041330 72 65 6e 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |rent.Syntax:.<os| 00041340 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 5f 63 75 |_error> *font_cu| 00041350 72 72 65 6e 74 20 28 3c 66 6f 6e 74 5f 73 74 61 |rrent (<font_sta| 00041360 74 65 3e 20 2a 73 74 61 74 65 29 3b 0a 48 65 61 |te> *state);.Hea| 00041370 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f |der:.<font.h=>fo| 00041380 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |nt_h>..Returns:.| 00041390 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000413a0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000413b0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000413c0 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 63 75 |ion reads the cu| 000413d0 72 72 65 6e 74 20 66 6f 6e 74 20 68 61 6e 64 6c |rrent font handl| 000413e0 65 20 61 6e 64 20 63 6f 6c 6f 75 72 73 20 69 6e |e and colours in| 000413f0 74 6f 20 2f 73 74 61 74 65 2f 2e 00 44 41 54 41 |to /state/..DATA| 00041400 e9 00 00 00 46 6f 6e 74 5f 43 75 72 72 65 6e 74 |....Font_Current| 00041410 46 6f 6e 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |Font.Syntax:.<os| 00041420 5f 65 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 43 75 |_error> *Font_Cu| 00041430 72 72 65 6e 74 46 6f 6e 74 20 28 3c 66 6f 6e 74 |rrentFont (<font| 00041440 5f 73 74 61 74 65 3e 20 2a 73 74 61 74 65 29 3b |_state> *state);| 00041450 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00041460 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a |b:Font.h=>Font>.| 00041470 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00041480 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00041490 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000414a0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 000414b0 61 64 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 |ads the current | 000414c0 66 6f 6e 74 20 68 61 6e 64 6c 65 20 61 6e 64 20 |font handle and | 000414d0 63 6f 6c 6f 75 72 73 20 69 6e 74 6f 20 2f 73 74 |colours into /st| 000414e0 61 74 65 2f 2e 00 00 00 44 41 54 41 1d 01 00 00 |ate/....DATA....| 000414f0 66 6f 6e 74 5f 64 65 66 0a 54 68 69 73 20 74 79 |font_def.This ty| 00041500 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 00041510 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 | <font.h=>font_h| 00041520 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 00041530 74 75 72 65 20 75 73 65 64 20 66 6f 72 20 68 6f |ture used for ho| 00041540 6c 64 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f |lding informatio| 00041550 6e 20 61 62 6f 75 74 20 61 20 66 6f 6e 74 3a 0a |n about a font:.| 00041560 0a 09 5c 7b 0a 09 20 09 63 68 61 72 20 6e 61 6d |..\{.. .char nam| 00041570 65 5b 31 36 5d 3b 0a 09 20 09 69 6e 74 20 78 73 |e[16];.. .int xs| 00041580 69 7a 65 2c 20 79 73 69 7a 65 2c 20 78 72 65 73 |ize, ysize, xres| 00041590 2c 20 79 72 65 73 3b 0a 09 20 09 69 6e 74 20 75 |, yres;.. .int u| 000415a0 73 61 67 65 2c 20 61 67 65 3b 0a 09 7d 0a 0a 2f |sage, age;..}../| 000415b0 78 73 69 7a 65 2f 20 61 6e 64 20 2f 79 73 69 7a |xsize/ and /ysiz| 000415c0 65 2f 20 61 72 65 20 69 6e 20 31 2f 31 36 74 68 |e/ are in 1/16th| 000415d0 73 20 6f 66 20 61 20 70 6f 69 6e 74 2e 0a 2f 78 |s of a point../x| 000415e0 72 65 73 2f 20 61 6e 64 20 2f 79 72 65 73 2f 20 |res/ and /yres/ | 000415f0 61 72 65 20 69 6e 20 64 6f 74 73 20 70 65 72 20 |are in dots per | 00041600 69 6e 63 68 2e 00 00 00 44 41 54 41 48 01 00 00 |inch....DATAH...| 00041610 66 6f 6e 74 5f 64 65 66 6e 0a 54 68 69 73 20 74 |font_defn.This t| 00041620 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 00041630 6e 20 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e |n <DeskLib:Font.| 00041640 68 3d 3e 46 6f 6e 74 3e 2e 20 49 74 20 69 73 20 |h=>Font>. It is | 00041650 61 20 73 74 72 75 63 74 75 72 65 20 75 73 65 64 |a structure used| 00041660 20 66 6f 72 20 68 6f 6c 64 69 6e 67 20 69 6e 66 | for holding inf| 00041670 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 |ormation about a| 00041680 20 66 6f 6e 74 3a 0a 0a 20 20 5c 7b 0a 20 20 20 | font:.. \{. | 00041690 20 63 68 61 72 20 6e 61 6d 65 5b 31 32 38 5d 3b | char name[128];| 000416a0 20 20 20 2f 2a 20 4d 61 79 20 62 65 20 43 52 20 | /* May be CR | 000416b0 74 65 72 6d 69 6e 61 74 65 64 20 2a 2f 0a 20 20 |terminated */. | 000416c0 20 20 69 6e 74 20 78 73 69 7a 65 2c 20 79 73 69 | int xsize, ysi| 000416d0 7a 65 2c 20 78 72 65 73 2c 20 79 72 65 73 3b 0a |ze, xres, yres;.| 000416e0 20 20 20 20 69 6e 74 20 61 67 65 2c 20 75 73 61 | int age, usa| 000416f0 67 65 3b 0a 20 20 7d 0a 0a 2f 78 73 69 7a 65 2f |ge;. }../xsize/| 00041700 20 61 6e 64 20 2f 79 73 69 7a 65 2f 27 20 61 72 | and /ysize/' ar| 00041710 65 20 69 6e 20 31 2f 31 36 74 68 73 20 6f 66 20 |e in 1/16ths of | 00041720 61 20 70 6f 69 6e 74 2e 0a 2f 78 72 65 73 2f 20 |a point../xres/ | 00041730 61 6e 64 20 2f 79 72 65 73 2f 20 61 72 65 20 69 |and /yres/ are i| 00041740 6e 20 64 6f 74 73 20 70 65 72 20 69 6e 63 68 2e |n dots per inch.| 00041750 44 41 54 41 fd 01 00 00 66 6f 6e 74 5f 66 69 6e |DATA....font_fin| 00041760 64 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |d.Syntax:.<os_er| 00041770 72 6f 72 3e 20 2a 66 6f 6e 74 5f 66 69 6e 64 20 |ror> *font_find | 00041780 28 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 |(char *name, int| 00041790 20 78 73 69 7a 65 2c 20 69 6e 74 20 79 73 69 7a | xsize, int ysiz| 000417a0 65 2c 20 69 6e 74 20 78 72 65 73 2c 20 69 6e 74 |e, int xres, int| 000417b0 20 79 72 65 73 2c 20 3c 66 6f 6e 74 3d 3e 66 6f | yres, <font=>fo| 000417c0 6e 74 5f 3e 20 2a 68 61 6e 64 6c 65 29 3b 0a 48 |nt_> *handle);.H| 000417d0 65 61 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d 3e |eader:.<font.h=>| 000417e0 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |font_h>..Returns| 000417f0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00041800 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00041810 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00041820 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 |ction returns a | 00041830 68 61 6e 64 6c 65 20 28 69 6e 20 7b 2f 7d 2a 68 |handle (in {/}*h| 00041840 61 6e 64 6c 65 7b 2f 7d 29 20 74 6f 20 61 20 66 |andle{/}) to a f| 00041850 6f 6e 74 20 77 68 6f 73 65 20 69 64 65 6e 74 69 |ont whose identi| 00041860 66 69 65 72 2c 20 70 6f 69 6e 74 20 73 69 7a 65 |fier, point size| 00041870 2c 20 61 6e 64 20 73 63 72 65 65 6e 20 72 65 73 |, and screen res| 00041880 6f 6c 75 74 69 6f 6e 20 61 72 65 20 67 69 76 65 |olution are give| 00041890 6e 20 28 69 6e 20 7b 2f 7d 6e 61 6d 65 7b 2f 7d |n (in {/}name{/}| 000418a0 2c 20 7b 2f 7d 78 73 69 7a 65 7b 2f 7d 2c 20 7b |, {/}xsize{/}, {| 000418b0 2f 7d 79 73 69 7a 65 7b 2f 7d 2c 20 7b 2f 7d 78 |/}ysize{/}, {/}x| 000418c0 72 65 73 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 79 72 |res{/} and {/}yr| 000418d0 65 73 7b 2f 7d 29 2e 20 49 74 20 61 6c 73 6f 20 |es{/}). It also | 000418e0 73 65 74 73 20 69 74 20 61 73 20 74 68 65 20 63 |sets it as the c| 000418f0 75 72 72 65 6e 74 20 66 6f 6e 74 20 66 6f 72 20 |urrent font for | 00041900 75 73 65 20 62 79 20 3c 66 6f 6e 74 5f 70 61 69 |use by <font_pai| 00041910 6e 74 3e 20 65 74 63 2e 0a 0a 57 68 65 6e 20 79 |nt> etc...When y| 00041920 6f 75 20 6e 6f 20 6c 6f 6e 67 65 72 20 6e 65 65 |ou no longer nee| 00041930 64 20 74 68 65 20 66 6f 6e 74 2c 20 63 61 6c 6c |d the font, call| 00041940 20 3c 66 6f 6e 74 5f 6c 6f 73 65 3e 2e 00 00 00 | <font_lose>....| 00041950 44 41 54 41 8c 02 00 00 46 6f 6e 74 5f 46 69 6e |DATA....Font_Fin| 00041960 64 43 61 72 65 74 2f 66 6f 6e 74 5f 66 69 6e 64 |dCaret/font_find| 00041970 63 61 72 65 74 0a 53 79 6e 74 61 78 3a 09 3c 6f |caret.Syntax:.<o| 00041980 73 5f 65 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 46 |s_error> *Font_F| 00041990 69 6e 64 43 61 72 65 74 20 28 3c 66 6f 6e 74 5f |indCaret (<font_| 000419a0 73 74 72 69 6e 67 3e 20 2a 73 74 72 69 6e 67 29 |string> *string)| 000419b0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000419c0 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e |ib:Font.h=>Font>| 000419d0 0a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f |..<font.h=>font_| 000419e0 68 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a |h> (Desktop C)..| 000419f0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00041a00 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00041a10 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 43 |ULL> if none...C| 00041a20 61 6c 6c 65 64 20 7b 2a 7d 66 6f 6e 74 5f 66 69 |alled {*}font_fi| 00041a30 6e 64 63 61 72 65 74 7b 2a 7d 20 69 6e 20 44 65 |ndcaret{*} in De| 00041a40 73 6b 74 6f 70 20 43 2e 0a 0a 4f 6e 20 65 6e 74 |sktop C...On ent| 00041a50 72 79 2c 20 7b 2f 7d 73 74 72 69 6e 67 2d 3e 73 |ry, {/}string->s| 00041a60 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 |{/} contains a s| 00041a70 74 72 69 6e 67 20 61 6e 64 20 28 73 74 72 69 6e |tring and (strin| 00041a80 67 2d 3e 78 2c 73 74 72 69 6e 67 2d 3e 79 29 20 |g->x,string->y) | 00041a90 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6f 66 66 |contains the off| 00041aa0 73 65 74 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 6e |set in millipoin| 00041ab0 74 73 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f |ts. This functio| 00041ac0 6e 20 66 69 6e 64 73 20 74 68 65 20 63 68 61 72 |n finds the char| 00041ad0 61 63 74 65 72 20 6e 65 61 72 65 73 74 20 74 6f |acter nearest to| 00041ae0 20 74 68 65 20 67 69 76 65 6e 20 6f 66 66 73 65 | the given offse| 00041af0 74 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 6e |t and returns in| 00041b00 66 6f 20 61 62 6f 75 74 20 69 74 20 69 6e 20 74 |fo about it in t| 00041b10 68 65 20 2f 73 74 72 69 6e 67 2f 20 62 6c 6f 63 |he /string/ bloc| 00041b20 6b 3a 0a 0a 7b 2f 7d 73 74 72 69 6e 67 2d 3e 74 |k:..{/}string->t| 00041b30 65 72 6d 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 |erm{/} contains | 00041b40 74 68 65 20 69 6e 64 65 78 20 69 6e 74 6f 20 74 |the index into t| 00041b50 68 65 20 73 74 72 69 6e 67 2c 20 7b 2f 7d 73 74 |he string, {/}st| 00041b60 72 69 6e 67 2d 3e 73 70 6c 69 74 7b 2f 7d 20 67 |ring->split{/} g| 00041b70 69 76 65 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |ives the number | 00041b80 6f 66 20 70 72 69 6e 74 61 62 6c 65 20 63 68 61 |of printable cha| 00041b90 72 61 63 74 65 72 73 20 62 65 66 6f 72 65 20 74 |racters before t| 00041ba0 68 61 74 20 70 6f 69 6e 74 2c 20 61 6e 64 20 7b |hat point, and {| 00041bb0 2f 7d 73 74 72 69 6e 67 2d 3e 73 7b 2f 7d 20 6e |/}string->s{/} n| 00041bc0 6f 77 20 70 6f 69 6e 74 73 20 74 6f 20 74 68 61 |ow points to tha| 00041bd0 74 20 63 68 61 72 61 63 74 65 72 2e 44 41 54 41 |t character.DATA| 00041be0 67 01 00 00 46 6f 6e 74 5f 46 69 6e 64 43 61 72 |g...Font_FindCar| 00041bf0 65 74 4a 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |etJ.Syntax:.<os_| 00041c00 65 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 46 69 6e |error> *Font_Fin| 00041c10 64 43 61 72 65 74 4a 20 28 3c 66 6f 6e 74 5f 73 |dCaretJ (<font_s| 00041c20 74 72 69 6e 67 3e 20 2a 73 74 72 2c 20 69 6e 74 |tring> *str, int| 00041c30 20 78 6f 66 66 2c 20 69 6e 74 20 79 6f 66 66 29 | xoff, int yoff)| 00041c40 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00041c50 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e |ib:Font.h=>Font>| 00041c60 0a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f |..<font.h=>font_| 00041c70 68 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a |h> (Desktop C)..| 00041c80 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00041c90 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00041ca0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00041cb0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 00041cc0 73 69 6d 69 6c 61 72 20 74 6f 20 3c 46 6f 6e 74 |similar to <Font| 00041cd0 5f 46 69 6e 64 43 61 72 65 74 3e 2c 20 62 75 74 |_FindCaret>, but| 00041ce0 20 2f 78 6f 66 66 2f 20 61 6e 64 20 2f 79 6f 66 | /xoff/ and /yof| 00041cf0 66 2f 20 63 6f 6e 74 61 69 6e 73 20 6a 75 73 74 |f/ contains just| 00041d00 69 66 69 63 61 74 69 6f 6e 20 6f 66 66 73 65 74 |ification offset| 00041d10 73 2e 20 49 74 20 69 73 20 63 61 6c 6c 65 64 20 |s. It is called | 00041d20 7b 2a 7d 66 6f 6e 74 5f 66 69 6e 64 63 61 72 65 |{*}font_findcare| 00041d30 74 6a 7b 2a 7d 20 69 6e 20 44 65 73 6b 74 6f 70 |tj{*} in Desktop| 00041d40 20 43 2e 00 44 41 54 41 f5 01 00 00 46 6f 6e 74 | C..DATA....Font| 00041d50 5f 46 69 6e 64 46 6f 6e 74 0a 53 79 6e 74 61 78 |_FindFont.Syntax| 00041d60 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 6f |:.<os_error> *Fo| 00041d70 6e 74 5f 46 69 6e 64 46 6f 6e 74 20 28 3c 66 6f |nt_FindFont (<fo| 00041d80 6e 74 5f 68 61 6e 64 6c 65 3e 20 2a 66 6f 6e 74 |nt_handle> *font| 00041d90 2c 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e |, char *name, in| 00041da0 74 20 78 73 69 7a 65 2c 20 69 6e 74 20 79 73 69 |t xsize, int ysi| 00041db0 7a 65 2c 20 69 6e 74 20 78 72 65 73 2c 20 69 6e |ze, int xres, in| 00041dc0 74 20 79 72 65 73 29 3b 0a 48 65 61 64 65 72 3a |t yres);.Header:| 00041dd0 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 |.<DeskLib:Font.h| 00041de0 3d 3e 46 6f 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 |=>Font>..Returns| 00041df0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00041e00 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00041e10 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00041e20 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 |ction returns a | 00041e30 68 61 6e 64 6c 65 20 28 69 6e 20 7b 2f 7d 2a 66 |handle (in {/}*f| 00041e40 6f 6e 74 7b 2f 7d 29 20 74 6f 20 61 20 66 6f 6e |ont{/}) to a fon| 00041e50 74 20 77 68 6f 73 65 20 69 64 65 6e 74 69 66 69 |t whose identifi| 00041e60 65 72 2c 20 70 6f 69 6e 74 20 73 69 7a 65 2c 20 |er, point size, | 00041e70 61 6e 64 20 73 63 72 65 65 6e 20 72 65 73 6f 6c |and screen resol| 00041e80 75 74 69 6f 6e 20 61 72 65 20 67 69 76 65 6e 20 |ution are given | 00041e90 69 6e 20 2f 6e 61 6d 65 2f 2c 20 2f 78 73 69 7a |in /name/, /xsiz| 00041ea0 65 2f 2c 20 2f 79 73 69 7a 65 2f 2c 20 2f 78 72 |e/, /ysize/, /xr| 00041eb0 65 73 2f 20 61 6e 64 20 2f 79 72 65 73 2f 2e 20 |es/ and /yres/. | 00041ec0 49 74 20 61 6c 73 6f 20 73 65 74 73 20 69 74 20 |It also sets it | 00041ed0 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 |as the current f| 00041ee0 6f 6e 74 20 66 6f 72 20 75 73 65 20 62 79 20 3c |ont for use by <| 00041ef0 46 6f 6e 74 5f 50 61 69 6e 74 3e 20 65 74 63 2e |Font_Paint> etc.| 00041f00 0a 0a 57 68 65 6e 20 79 6f 75 20 6e 6f 20 6c 6f |..When you no lo| 00041f10 6e 67 65 72 20 6e 65 65 64 20 74 68 65 20 66 6f |nger need the fo| 00041f20 6e 74 2c 20 63 61 6c 6c 20 3c 46 6f 6e 74 5f 4c |nt, call <Font_L| 00041f30 6f 73 65 46 6f 6e 74 3e 2e 00 00 00 44 41 54 41 |oseFont>....DATA| 00041f40 10 01 00 00 66 6f 6e 74 5f 66 75 74 75 72 65 0a |....font_future.| 00041f50 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00041f60 72 3e 20 2a 66 6f 6e 74 5f 66 75 74 75 72 65 20 |r> *font_future | 00041f70 28 3c 66 6f 6e 74 5f 73 74 61 74 65 3e 20 2a 73 |(<font_state> *s| 00041f80 74 61 74 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |tate);.Header:.<| 00041f90 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 0a |font.h=>font_h>.| 00041fa0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00041fb0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00041fc0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00041fd0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 00041fe0 61 64 73 20 77 68 61 74 20 74 68 65 20 73 74 61 |ads what the sta| 00041ff0 74 65 20 61 66 74 65 72 20 74 68 65 20 6e 65 78 |te after the nex| 00042000 74 20 63 61 6c 6c 20 74 6f 20 3c 66 6f 6e 74 5f |t call to <font_| 00042010 70 61 69 6e 74 3e 20 77 6f 75 6c 64 20 62 65 2e |paint> would be.| 00042020 20 59 6f 75 20 6d 75 73 74 20 66 69 72 73 74 20 | You must first | 00042030 68 61 76 65 20 63 61 6c 6c 65 64 20 3c 66 6f 6e |have called <fon| 00042040 74 5f 73 74 72 77 69 64 74 68 3e 2e 44 41 54 41 |t_strwidth>.DATA| 00042050 21 01 00 00 46 6f 6e 74 5f 46 75 74 75 72 65 46 |!...Font_FutureF| 00042060 6f 6e 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ont.Syntax:.<os_| 00042070 65 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 46 75 74 |error> *Font_Fut| 00042080 75 72 65 46 6f 6e 74 20 28 3c 66 6f 6e 74 5f 73 |ureFont (<font_s| 00042090 74 61 74 65 3e 20 2a 73 74 61 74 65 29 3b 0a 48 |tate> *state);.H| 000420a0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000420b0 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 0a 52 |Font.h=>Font>..R| 000420c0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000420d0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000420e0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000420f0 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 |is function read| 00042100 73 20 77 68 61 74 20 74 68 65 20 73 74 61 74 65 |s what the state| 00042110 20 61 66 74 65 72 20 74 68 65 20 6e 65 78 74 20 | after the next | 00042120 63 61 6c 6c 20 74 6f 20 3c 46 6f 6e 74 5f 50 61 |call to <Font_Pa| 00042130 69 6e 74 3e 20 77 6f 75 6c 64 20 62 65 2e 20 59 |int> would be. Y| 00042140 6f 75 20 6d 75 73 74 20 66 69 72 73 74 20 68 61 |ou must first ha| 00042150 76 65 20 63 61 6c 6c 65 64 20 3c 46 6f 6e 74 5f |ve called <Font_| 00042160 53 74 72 69 6e 67 57 69 64 74 68 3e 2e 00 00 00 |StringWidth>....| 00042170 44 41 54 41 61 00 00 00 66 6f 6e 74 5f 47 72 65 |DATAa...font_Gre| 00042180 65 6e 47 75 6e 0a 54 68 65 20 6d 61 63 72 6f 20 |enGun.The macro | 00042190 7b 2a 7d 66 6f 6e 74 5f 47 72 65 65 6e 47 75 6e |{*}font_GreenGun| 000421a0 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 |{*} is defined i| 000421b0 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f |n <font.h=>font_| 000421c0 68 3e 20 61 73 20 30 78 30 30 30 31 30 30 30 30 |h> as 0x00010000| 000421d0 2e 00 00 00 44 41 54 41 67 03 00 00 66 6f 6e 74 |....DATAg...font| 000421e0 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |.h.This header d| 000421f0 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 00042200 73 20 61 6c 6c 6f 77 69 6e 67 20 61 63 63 65 73 |s allowing acces| 00042210 73 0a 74 6f 20 74 68 65 20 52 49 53 43 20 4f 53 |s.to the RISC OS| 00042220 20 66 6f 6e 74 20 66 61 63 69 6c 69 74 69 65 73 | font facilities| 00042230 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 00042240 74 61 62 6c 65 20 31 34 20 32 34 0a 3c 66 6f 6e |table 14 24.<fon| 00042250 74 5f 63 61 63 68 65 61 64 64 72 65 73 73 3e 0a |t_cacheaddress>.| 00042260 3c 66 6f 6e 74 5f 63 61 72 65 74 3e 0a 3c 66 6f |<font_caret>.<fo| 00042270 6e 74 5f 63 68 61 72 62 62 6f 78 3e 0a 3c 66 6f |nt_charbbox>.<fo| 00042280 6e 74 5f 63 6f 6e 76 65 72 74 74 6f 6f 73 3e 0a |nt_converttoos>.| 00042290 3c 66 6f 6e 74 5f 63 6f 6e 76 65 72 74 74 6f 70 |<font_converttop| 000422a0 6f 69 6e 74 73 3e 0a 3c 66 6f 6e 74 5f 63 75 72 |oints>.<font_cur| 000422b0 72 65 6e 74 3e 0a 3c 66 6f 6e 74 5f 66 69 6e 64 |rent>.<font_find| 000422c0 3e 0a 3c 66 6f 6e 74 5f 66 69 6e 64 63 61 72 65 |>.<font_findcare| 000422d0 74 3e 0a 3c 66 6f 6e 74 5f 66 69 6e 64 63 61 72 |t>.<font_findcar| 000422e0 65 74 6a 3e 0a 3c 66 6f 6e 74 5f 66 75 74 75 72 |etj>.<font_futur| 000422f0 65 3e 0a 3c 66 6f 6e 74 5f 6c 69 73 74 3e 0a 3c |e>.<font_list>.<| 00042300 66 6f 6e 74 5f 6c 6f 73 65 3e 0a 3c 66 6f 6e 74 |font_lose>.<font| 00042310 5f 6f 75 74 70 75 74 5f 73 69 7a 65 3e 0a 3c 66 |_output_size>.<f| 00042320 6f 6e 74 5f 6f 75 74 70 75 74 5f 74 6f 5f 62 75 |ont_output_to_bu| 00042330 66 66 65 72 3e 0a 3c 66 6f 6e 74 5f 6f 75 74 70 |ffer>.<font_outp| 00042340 75 74 5f 74 6f 5f 6e 75 6c 6c 3e 0a 3c 66 6f 6e |ut_to_null>.<fon| 00042350 74 5f 6f 75 74 70 75 74 5f 74 6f 5f 73 63 72 65 |t_output_to_scre| 00042360 65 6e 3e 0a 3c 66 6f 6e 74 5f 70 61 69 6e 74 3e |en>.<font_paint>| 00042370 0a 3c 66 6f 6e 74 5f 72 65 61 64 64 65 66 3e 0a |.<font_readdef>.| 00042380 3c 66 6f 6e 74 5f 72 65 61 64 69 6e 66 6f 3e 0a |<font_readinfo>.| 00042390 3c 66 6f 6e 74 5f 72 65 61 64 73 63 61 6c 65 66 |<font_readscalef| 000423a0 61 63 74 6f 72 3e 0a 3c 66 6f 6e 74 5f 72 65 61 |actor>.<font_rea| 000423b0 64 74 68 72 65 73 68 6f 6c 64 73 3e 0a 3c 66 6f |dthresholds>.<fo| 000423c0 6e 74 5f 73 65 74 63 6f 6c 6f 75 72 3e 0a 3c 66 |nt_setcolour>.<f| 000423d0 6f 6e 74 5f 73 65 74 66 6f 6e 74 3e 0a 3c 66 6f |ont_setfont>.<fo| 000423e0 6e 74 5f 73 65 74 70 61 6c 65 74 74 65 3e 0a 3c |nt_setpalette>.<| 000423f0 66 6f 6e 74 5f 73 65 74 73 63 61 6c 65 66 61 63 |font_setscalefac| 00042400 74 6f 72 3e 0a 3c 66 6f 6e 74 5f 73 65 74 74 68 |tor>.<font_setth| 00042410 72 65 73 68 6f 6c 64 73 3e 0a 3c 66 6f 6e 74 5f |resholds>.<font_| 00042420 73 74 72 69 6e 67 62 62 6f 78 3e 0a 3c 66 6f 6e |stringbbox>.<fon| 00042430 74 5f 73 74 72 77 69 64 74 68 3e 0a 23 65 6e 64 |t_strwidth>.#end| 00042440 54 61 62 6c 65 0a 0a 23 54 61 62 6c 65 20 39 20 |Table..#Table 9 | 00042450 32 34 0a 4d 61 63 72 6f 73 3a 0a 0a 3c 66 6f 6e |24.Macros:..<fon| 00042460 74 5f 4a 55 53 54 49 46 59 3e 0a 3c 66 6f 6e 74 |t_JUSTIFY>.<font| 00042470 5f 52 55 42 4f 55 54 3e 0a 3c 66 6f 6e 74 5f 41 |_RUBOUT>.<font_A| 00042480 42 53 3e 0a 3c 66 6f 6e 74 5f 4f 53 43 4f 4f 52 |BS>.<font_OSCOOR| 00042490 44 53 3e 0a 3c 66 6f 6e 74 5f 42 6c 75 65 47 75 |DS>.<font_BlueGu| 000424a0 6e 3e 0a 3c 66 6f 6e 74 5f 47 72 65 65 6e 47 75 |n>.<font_GreenGu| 000424b0 6e 3e 0a 3c 66 6f 6e 74 5f 52 65 64 47 75 6e 3e |n>.<font_RedGun>| 000424c0 0a 54 79 70 65 73 3a 0a 0a 3c 66 6f 6e 74 3d 3e |.Types:..<font=>| 000424d0 66 6f 6e 74 5f 3e 0a 3c 66 6f 6e 74 5f 64 65 66 |font_>.<font_def| 000424e0 3e 0a 3c 66 6f 6e 74 5f 69 6e 66 6f 3e 0a 3c 66 |>.<font_info>.<f| 000424f0 6f 6e 74 5f 73 74 72 69 6e 67 3e 0a 3c 66 6f 6e |ont_string>.<fon| 00042500 74 5f 73 74 61 74 65 3e 0a 3c 66 6f 6e 74 5f 74 |t_state>.<font_t| 00042510 68 72 65 73 68 6f 6c 64 3e 0a 3c 66 6f 6e 74 5f |hreshold>.<font_| 00042520 61 63 74 69 6f 6e 5f 6f 6e 5f 62 69 74 6d 61 70 |action_on_bitmap| 00042530 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 00042540 89 00 00 00 66 6f 6e 74 5f 68 61 6e 64 6c 65 0a |....font_handle.| 00042550 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00042560 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 00042570 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 2e 20 |:Font.h=>Font>. | 00042580 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 68 6f |It is used to ho| 00042590 6c 64 20 61 20 66 6f 6e 74 20 68 61 6e 64 6c 65 |ld a font handle| 000425a0 2e 20 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 |. It is actually| 000425b0 20 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 2f | defined as an /| 000425c0 69 6e 74 2f 2e 00 00 00 44 41 54 41 d8 00 00 00 |int/....DATA....| 000425d0 66 6f 6e 74 5f 69 6e 66 6f 0a 54 68 69 73 20 74 |font_info.This t| 000425e0 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000425f0 6e 20 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e |n <DeskLib:Font.| 00042600 68 3d 3e 46 6f 6e 74 3e 20 61 6e 64 20 3c 66 6f |h=>Font> and <fo| 00042610 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 |nt.h=>font_h> (D| 00042620 65 73 6b 74 6f 70 20 43 29 2e 20 49 74 20 69 73 |esktop C). It is| 00042630 20 61 20 73 74 72 75 63 74 75 72 65 20 75 73 65 | a structure use| 00042640 64 20 66 6f 72 20 68 6f 6c 64 69 6e 67 20 69 6e |d for holding in| 00042650 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 |formation about | 00042660 61 20 66 6f 6e 74 27 73 20 62 6f 75 6e 64 69 6e |a font's boundin| 00042670 67 20 62 6f 78 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |g box:.. \{. | 00042680 20 69 6e 74 20 6d 69 6e 78 2c 20 6d 69 6e 79 2c | int minx, miny,| 00042690 20 6d 61 78 78 2c 20 6d 61 78 79 3b 0a 20 20 7d | maxx, maxy;. }| 000426a0 44 41 54 41 b6 00 00 00 66 6f 6e 74 5f 4a 55 53 |DATA....font_JUS| 000426b0 54 49 46 59 0a 54 68 69 73 20 6d 61 63 72 6f 20 |TIFY.This macro | 000426c0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 |is defined in <f| 000426d0 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 2e 20 |ont.h=>font_h>. | 000426e0 49 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 |It is the value | 000426f0 6f 66 20 74 68 65 20 62 69 74 20 75 73 65 64 20 |of the bit used | 00042700 74 6f 20 69 6e 64 69 63 61 74 65 20 69 6e 20 74 |to indicate in t| 00042710 68 65 20 70 61 69 6e 74 20 6f 70 74 69 6f 6e 73 |he paint options| 00042720 20 74 68 61 74 20 74 65 78 74 20 73 68 6f 75 6c | that text shoul| 00042730 64 20 62 65 20 6a 75 73 74 69 66 69 65 64 2e 20 |d be justified. | 00042740 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00042750 20 30 78 30 31 2e 00 00 44 41 54 41 24 02 00 00 | 0x01...DATA$...| 00042760 66 6f 6e 74 5f 6c 69 73 74 0a 53 79 6e 74 61 78 |font_list.Syntax| 00042770 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f |:.<os_error> *fo| 00042780 6e 74 5f 6c 69 73 74 20 28 63 68 61 72 20 2a 6e |nt_list (char *n| 00042790 61 6d 65 2c 20 69 6e 74 20 2a 63 6f 75 6e 74 29 |ame, int *count)| 000427a0 3b 0a 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 2e |;.Header:.<font.| 000427b0 68 3d 3e 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 |h=>font_h>..Retu| 000427c0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000427d0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000427e0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000427f0 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 |function calls t| 00042800 68 65 20 3c 53 57 49 20 46 6f 6e 74 5f 4c 69 73 |he <SWI Font_Lis| 00042810 74 46 6f 6e 74 73 3d 3e 53 57 49 3a 46 6f 6e 74 |tFonts=>SWI:Font| 00042820 5f 4c 69 73 74 46 6f 6e 74 73 3e 20 28 69 6e 20 |_ListFonts> (in | 00042830 52 49 53 43 20 4f 53 20 32 20 6d 6f 64 65 29 2e |RISC OS 2 mode).| 00042840 20 2f 6e 61 6d 65 2f 20 73 68 6f 75 6c 64 20 70 | /name/ should p| 00042850 6f 69 6e 74 20 74 6f 20 61 20 62 75 66 66 65 72 |oint to a buffer| 00042860 20 66 6f 72 20 74 68 65 20 66 6f 6e 74 20 6e 61 | for the font na| 00042870 6d 65 2c 20 61 6e 64 20 7b 2f 7d 2a 63 6f 75 6e |me, and {/}*coun| 00042880 74 7b 2f 7d 20 73 68 6f 75 6c 64 20 69 6e 69 74 |t{/} should init| 00042890 69 61 6c 6c 79 20 63 6f 6e 74 61 69 6e 20 30 2e |ially contain 0.| 000428a0 20 41 66 74 65 72 20 65 61 63 68 20 63 61 6c 6c | After each call| 000428b0 2c 20 61 20 66 6f 6e 74 20 6e 61 6d 65 20 77 69 |, a font name wi| 000428c0 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 69 |ll be returned i| 000428d0 6e 20 2f 6e 61 6d 65 2f 20 61 6e 64 20 7b 2f 7d |n /name/ and {/}| 000428e0 2a 63 6f 75 6e 74 7b 2f 7d 20 77 69 6c 6c 20 62 |*count{/} will b| 000428f0 65 20 69 6e 63 72 65 6d 65 6e 74 65 64 3b 20 73 |e incremented; s| 00042900 6f 20 62 79 20 73 75 63 63 65 73 73 69 76 65 20 |o by successive | 00042910 63 61 6c 6c 73 20 61 20 63 6f 6d 70 6c 65 74 65 |calls a complete| 00042920 20 66 6f 6e 74 20 6c 69 73 74 20 63 61 6e 20 62 | font list can b| 00042930 65 20 62 75 69 6c 74 20 75 70 2e 20 7b 2f 7d 2a |e built up. {/}*| 00042940 63 6f 75 6e 74 7b 2f 7d 20 63 6f 6e 74 61 69 6e |count{/} contain| 00042950 73 20 2d 31 20 61 66 74 65 72 20 74 68 65 20 6c |s -1 after the l| 00042960 61 73 74 20 66 6f 6e 74 20 6e 61 6d 65 20 68 61 |ast font name ha| 00042970 73 20 62 65 65 6e 20 72 65 61 64 2e 44 41 54 41 |s been read.DATA| 00042980 34 02 00 00 46 6f 6e 74 5f 4c 69 73 74 46 6f 6e |4...Font_ListFon| 00042990 74 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ts.Syntax:.<os_e| 000429a0 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 4c 69 73 74 |rror> *Font_List| 000429b0 46 6f 6e 74 73 20 28 63 68 61 72 20 2a 6e 61 6d |Fonts (char *nam| 000429c0 65 2c 20 69 6e 74 20 2a 63 6f 75 6e 74 29 3b 0a |e, int *count);.| 000429d0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000429e0 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 0a |:Font.h=>Font>..| 000429f0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00042a00 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00042a10 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00042a20 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 00042a30 6c 73 20 74 68 65 20 53 57 49 20 3c 46 6f 6e 74 |ls the SWI <Font| 00042a40 5f 4c 69 73 74 46 6f 6e 74 73 3d 3e 53 57 49 3a |_ListFonts=>SWI:| 00042a50 46 6f 6e 74 5f 4c 69 73 74 46 6f 6e 74 73 3e 20 |Font_ListFonts> | 00042a60 28 69 6e 20 52 49 53 43 20 4f 53 20 32 20 6d 6f |(in RISC OS 2 mo| 00042a70 64 65 29 2e 20 2f 6e 61 6d 65 2f 20 73 68 6f 75 |de). /name/ shou| 00042a80 6c 64 20 70 6f 69 6e 74 20 74 6f 20 61 20 62 75 |ld point to a bu| 00042a90 66 66 65 72 20 66 6f 72 20 74 68 65 20 66 6f 6e |ffer for the fon| 00042aa0 74 20 6e 61 6d 65 2c 20 61 6e 64 20 7b 2f 7d 2a |t name, and {/}*| 00042ab0 63 6f 75 6e 74 7b 2f 7d 20 73 68 6f 75 6c 64 20 |count{/} should | 00042ac0 69 6e 69 74 69 61 6c 6c 79 20 63 6f 6e 74 61 69 |initially contai| 00042ad0 6e 20 30 2e 20 41 66 74 65 72 20 65 61 63 68 20 |n 0. After each | 00042ae0 63 61 6c 6c 2c 20 61 20 66 6f 6e 74 20 6e 61 6d |call, a font nam| 00042af0 65 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e |e will be return| 00042b00 65 64 20 69 6e 20 2f 6e 61 6d 65 2f 20 61 6e 64 |ed in /name/ and| 00042b10 20 7b 2f 7d 2a 63 6f 75 6e 74 7b 2f 7d 20 77 69 | {/}*count{/} wi| 00042b20 6c 6c 20 62 65 20 69 6e 63 72 65 6d 65 6e 74 65 |ll be incremente| 00042b30 64 3b 20 73 6f 20 62 79 20 73 75 63 63 65 73 73 |d; so by success| 00042b40 69 76 65 20 63 61 6c 6c 73 20 61 20 63 6f 6d 70 |ive calls a comp| 00042b50 6c 65 74 65 20 66 6f 6e 74 20 6c 69 73 74 20 63 |lete font list c| 00042b60 61 6e 20 62 65 20 62 75 69 6c 74 20 75 70 2e 20 |an be built up. | 00042b70 7b 2f 7d 2a 63 6f 75 6e 74 7b 2f 7d 20 63 6f 6e |{/}*count{/} con| 00042b80 74 61 69 6e 73 20 2d 31 20 61 66 74 65 72 20 74 |tains -1 after t| 00042b90 68 65 20 6c 61 73 74 20 66 6f 6e 74 20 6e 61 6d |he last font nam| 00042ba0 65 20 68 61 73 20 62 65 65 6e 20 72 65 61 64 2e |e has been read.| 00042bb0 44 41 54 41 de 00 00 00 66 6f 6e 74 5f 6c 6f 73 |DATA....font_los| 00042bc0 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |e.Syntax:.<os_er| 00042bd0 72 6f 72 3e 20 2a 66 6f 6e 74 5f 6c 6f 73 65 20 |ror> *font_lose | 00042be0 28 3c 66 6f 6e 74 3d 3e 66 6f 6e 74 5f 3e 20 66 |(<font=>font_> f| 00042bf0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 |);.Header:.<font| 00042c00 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 |.h=>font_h>..Ret| 00042c10 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00042c20 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00042c30 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00042c40 20 66 75 6e 63 74 69 6f 6e 20 74 65 6c 6c 73 20 | function tells | 00042c50 74 68 65 20 46 6f 6e 74 20 4d 61 6e 61 67 65 72 |the Font Manager| 00042c60 20 74 68 61 74 20 61 20 70 61 72 74 69 63 75 6c | that a particul| 00042c70 61 72 20 66 6f 6e 74 20 69 73 20 6e 6f 20 6c 6f |ar font is no lo| 00042c80 6e 67 65 72 20 72 65 71 75 69 72 65 64 2e 00 00 |nger required...| 00042c90 44 41 54 41 f1 00 00 00 46 6f 6e 74 5f 4c 6f 73 |DATA....Font_Los| 00042ca0 65 41 6c 6c 46 6f 6e 74 73 0a 53 79 6e 74 61 78 |eAllFonts.Syntax| 00042cb0 3a 09 76 6f 69 64 20 46 6f 6e 74 5f 4c 6f 73 65 |:.void Font_Lose| 00042cc0 41 6c 6c 46 6f 6e 74 73 20 28 3c 66 6f 6e 74 5f |AllFonts (<font_| 00042cd0 61 72 72 61 79 3e 20 2a 66 6f 6e 74 73 29 3b 0a |array> *fonts);.| 00042ce0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00042cf0 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 0a |:Font.h=>Font>..| 00042d00 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00042d10 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00042d20 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00042d30 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 00042d40 6c 73 20 3c 46 6f 6e 74 5f 4c 6f 73 65 46 6f 6e |ls <Font_LoseFon| 00042d50 74 3e 20 66 6f 72 20 61 6c 6c 20 66 6f 6e 74 73 |t> for all fonts| 00042d60 20 69 6e 20 74 68 65 20 66 6f 6e 74 20 75 73 61 | in the font usa| 00042d70 67 65 20 61 72 72 61 79 20 2f 66 6f 6e 74 73 2f |ge array /fonts/| 00042d80 2e 00 00 00 44 41 54 41 ef 00 00 00 46 6f 6e 74 |....DATA....Font| 00042d90 5f 4c 6f 73 65 46 6f 6e 74 0a 53 79 6e 74 61 78 |_LoseFont.Syntax| 00042da0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 6f |:.<os_error> *Fo| 00042db0 6e 74 5f 4c 6f 73 65 46 6f 6e 74 20 28 3c 66 6f |nt_LoseFont (<fo| 00042dc0 6e 74 5f 68 61 6e 64 6c 65 3e 20 66 6f 6e 74 29 |nt_handle> font)| 00042dd0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00042de0 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e |ib:Font.h=>Font>| 00042df0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 00042e00 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 00042e10 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 00042e20 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00042e30 65 6c 6c 73 20 74 68 65 20 46 6f 6e 74 20 4d 61 |ells the Font Ma| 00042e40 6e 61 67 65 72 20 74 68 61 74 20 61 20 70 61 72 |nager that a par| 00042e50 74 69 63 75 6c 61 72 20 66 6f 6e 74 20 69 73 20 |ticular font is | 00042e60 6e 6f 20 6c 6f 6e 67 65 72 20 72 65 71 75 69 72 |no longer requir| 00042e70 65 64 2e 00 44 41 54 41 b6 00 00 00 66 6f 6e 74 |ed..DATA....font| 00042e80 5f 4f 53 43 4f 4f 52 44 53 0a 54 68 69 73 20 6d |_OSCOORDS.This m| 00042e90 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 00042ea0 69 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 |in <font.h=>font| 00042eb0 5f 68 3e 2e 20 49 74 20 69 73 20 74 68 65 20 76 |_h>. It is the v| 00042ec0 61 6c 75 65 20 6f 66 20 74 68 65 20 62 69 74 20 |alue of the bit | 00042ed0 75 73 65 64 20 74 6f 20 69 6e 64 69 63 61 74 65 |used to indicate| 00042ee0 20 69 6e 20 74 68 65 20 70 61 69 6e 74 20 6f 70 | in the paint op| 00042ef0 74 69 6f 6e 73 20 74 68 61 74 20 4f 53 20 63 6f |tions that OS co| 00042f00 6f 72 64 69 6e 61 74 65 73 20 61 72 65 20 75 73 |ordinates are us| 00042f10 65 64 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |ed. It is define| 00042f20 64 20 61 73 20 30 78 31 30 2e 00 00 44 41 54 41 |d as 0x10...DATA| 00042f30 ea 00 00 00 66 6f 6e 74 5f 6f 75 74 70 75 74 5f |....font_output_| 00042f40 73 69 7a 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |size.Syntax:.<os| 00042f50 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 5f 6f 75 |_error> *font_ou| 00042f60 74 70 75 74 5f 73 69 7a 65 20 28 3c 73 69 7a 65 |tput_size (<size| 00042f70 5f 74 3e 20 2a 73 69 7a 65 5f 70 74 72 29 3b 0a |_t> *size_ptr);.| 00042f80 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d |Header:.<font.h=| 00042f90 3e 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e |>font_h>..Return| 00042fa0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00042fb0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00042fc0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 63 61 |f none...This ca| 00042fd0 75 73 65 73 20 72 65 74 75 72 6e 73 20 74 68 65 |uses returns the| 00042fe0 20 73 69 7a 65 20 6f 66 20 44 72 61 77 20 66 69 | size of Draw fi| 00042ff0 6c 65 20 70 72 6f 64 75 63 65 64 20 73 6f 20 66 |le produced so f| 00043000 61 72 20 69 6e 20 7b 2f 7d 2a 73 69 7a 65 5f 70 |ar in {/}*size_p| 00043010 74 72 7b 2f 7d 2e 00 00 44 41 54 41 e5 01 00 00 |tr{/}...DATA....| 00043020 66 6f 6e 74 5f 6f 75 74 70 75 74 5f 74 6f 5f 62 |font_output_to_b| 00043030 75 66 66 65 72 0a 53 79 6e 74 61 78 3a 09 3c 6f |uffer.Syntax:.<o| 00043040 73 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 5f 6f |s_error> *font_o| 00043050 75 74 70 75 74 5f 74 6f 5f 62 75 66 66 65 72 20 |utput_to_buffer | 00043060 28 3c 64 72 61 77 6d 6f 64 5f 62 75 66 66 65 72 |(<drawmod_buffer| 00043070 3e 20 2a 62 75 66 66 5f 70 74 72 2c 20 3c 42 4f |> *buff_ptr, <BO| 00043080 4f 4c 3e 20 61 64 64 5f 68 69 6e 74 73 2c 20 42 |OL> add_hints, B| 00043090 4f 4f 4c 20 6f 75 74 70 75 74 5f 73 6b 65 6c 65 |OOL output_skele| 000430a0 74 6f 6e 2c 20 3c 66 6f 6e 74 5f 61 63 74 69 6f |ton, <font_actio| 000430b0 6e 5f 6f 6e 5f 62 69 74 6d 61 70 3e 20 61 63 74 |n_on_bitmap> act| 000430c0 69 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 |ion);.Header:.<f| 000430d0 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 0a 0a |ont.h=>font_h>..| 000430e0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000430f0 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00043100 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00043110 68 69 73 20 63 61 75 73 65 73 20 66 75 72 74 68 |his causes furth| 00043120 65 72 20 63 61 6c 6c 73 20 74 6f 20 3c 66 6f 6e |er calls to <fon| 00043130 74 5f 70 61 69 6e 74 3e 20 74 6f 20 62 65 20 6f |t_paint> to be o| 00043140 75 74 70 75 74 20 74 6f 20 74 68 65 20 62 75 66 |utput to the buf| 00043150 66 65 72 2c 20 61 73 20 69 66 20 74 68 65 79 20 |fer, as if they | 00043160 77 65 72 65 20 61 20 64 72 61 77 20 70 61 74 68 |were a draw path| 00043170 2e 20 49 66 20 7b 2f 7d 61 64 64 5f 68 69 6e 74 |. If {/}add_hint| 00043180 73 7b 2f 7d 20 69 73 20 3c 54 52 55 45 3e 20 74 |s{/} is <TRUE> t| 00043190 68 65 6e 20 68 69 6e 74 73 20 61 72 65 20 61 64 |hen hints are ad| 000431a0 64 65 64 2c 20 69 66 20 7b 2f 7d 6f 75 74 70 75 |ded, if {/}outpu| 000431b0 74 5f 73 6b 65 6c 65 74 6f 6e 7b 2f 7d 20 69 73 |t_skeleton{/} is| 000431c0 20 54 52 55 45 20 74 68 65 6e 20 73 6f 6d 65 74 | TRUE then somet| 000431d0 68 69 6e 67 20 65 6c 73 65 20 68 61 70 70 65 6e |hing else happen| 000431e0 73 20 28 62 75 74 20 69 74 27 73 20 6e 6f 74 20 |s (but it's not | 000431f0 69 6e 20 74 68 65 20 50 52 4d 21 29 2e 00 00 00 |in the PRM!)....| 00043200 44 41 54 41 79 02 00 00 66 6f 6e 74 5f 6f 75 74 |DATAy...font_out| 00043210 70 75 74 5f 74 6f 5f 6e 75 6c 6c 0a 53 79 6e 74 |put_to_null.Synt| 00043220 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00043230 66 6f 6e 74 5f 6f 75 74 70 75 74 5f 74 6f 5f 6e |font_output_to_n| 00043240 75 6c 6c 20 28 3c 42 4f 4f 4c 3e 20 61 64 64 5f |ull (<BOOL> add_| 00043250 68 69 6e 74 73 2c 20 42 4f 4f 4c 20 6f 75 74 70 |hints, BOOL outp| 00043260 75 74 5f 73 6b 65 6c 65 74 6f 6e 2c 20 3c 66 6f |ut_skeleton, <fo| 00043270 6e 74 5f 61 63 74 69 6f 6e 5f 6f 6e 5f 62 69 74 |nt_action_on_bit| 00043280 6d 61 70 3e 20 61 63 74 69 6f 6e 29 3b 0a 48 65 |map> action);.He| 00043290 61 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 |ader:.<font.h=>f| 000432a0 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |ont_h>..Returns:| 000432b0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000432c0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000432d0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 63 61 75 73 |none...This caus| 000432e0 65 73 20 66 75 72 74 68 65 72 20 63 61 6c 6c 73 |es further calls| 000432f0 20 74 6f 20 3c 66 6f 6e 74 5f 70 61 69 6e 74 3e | to <font_paint>| 00043300 20 74 6f 20 62 65 20 6f 75 74 70 75 74 20 74 6f | to be output to| 00043310 20 6e 6f 77 68 65 72 65 20 61 74 20 61 6c 6c 2c | nowhere at all,| 00043320 20 61 73 20 69 66 20 74 68 65 79 20 77 65 72 65 | as if they were| 00043330 20 61 20 64 72 61 77 20 70 61 74 68 2e 20 53 75 | a draw path. Su| 00043340 62 73 65 71 75 65 6e 74 6c 79 20 63 61 6c 6c 69 |bsequently calli| 00043350 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 |ng the function | 00043360 3c 66 6f 6e 74 5f 6f 75 74 70 75 74 5f 73 69 7a |<font_output_siz| 00043370 65 3e 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 |e> will return t| 00043380 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 62 75 66 |he amount of buf| 00043390 66 65 72 20 73 70 61 63 65 20 75 73 65 64 20 28 |fer space used (| 000433a0 73 6f 20 79 6f 75 20 63 61 6e 20 64 6f 20 69 74 |so you can do it| 000433b0 20 66 6f 72 20 72 65 61 6c 20 77 69 74 68 20 74 | for real with t| 000433c0 68 65 20 63 6f 72 72 65 63 74 20 62 75 66 66 65 |he correct buffe| 000433d0 72 20 73 69 7a 65 29 2e 20 49 66 20 7b 2f 7d 61 |r size). If {/}a| 000433e0 64 64 5f 68 69 6e 74 73 7b 2f 7d 20 69 73 20 3c |dd_hints{/} is <| 000433f0 54 52 55 45 3e 20 74 68 65 6e 20 73 70 61 63 65 |TRUE> then space| 00043400 20 69 73 20 61 6c 6c 6f 63 61 74 65 64 20 66 6f | is allocated fo| 00043410 72 20 68 69 6e 74 73 20 61 73 20 77 65 6c 6c 2c |r hints as well,| 00043420 20 69 66 20 7b 2f 7d 6f 75 74 70 75 74 5f 73 6b | if {/}output_sk| 00043430 65 6c 65 74 6f 6e 7b 2f 7d 20 69 73 20 54 52 55 |eleton{/} is TRU| 00043440 45 20 74 68 65 6e 20 73 6f 6d 65 74 68 69 6e 67 |E then something| 00043450 20 65 6c 73 65 20 68 61 70 70 65 6e 73 20 28 62 | else happens (b| 00043460 75 74 20 69 74 27 73 20 6e 6f 74 20 69 6e 20 74 |ut it's not in t| 00043470 68 65 20 50 52 4d 21 29 2e 00 00 00 44 41 54 41 |he PRM!)....DATA| 00043480 e8 00 00 00 66 6f 6e 74 5f 6f 75 74 70 75 74 5f |....font_output_| 00043490 74 6f 5f 73 63 72 65 65 6e 0a 53 79 6e 74 61 78 |to_screen.Syntax| 000434a0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f |:.<os_error> *fo| 000434b0 6e 74 5f 6f 75 74 70 75 74 5f 74 6f 5f 73 63 72 |nt_output_to_scr| 000434c0 65 65 6e 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 |een (void);.Head| 000434d0 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e |er:.<font.h=>fon| 000434e0 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |t_h>..Returns:.P| 000434f0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00043500 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00043510 6e 65 2e 0a 0a 54 68 69 73 20 63 61 75 73 65 73 |ne...This causes| 00043520 20 66 75 72 74 68 65 72 20 63 61 6c 6c 73 20 74 | further calls t| 00043530 6f 20 3c 66 6f 6e 74 5f 70 61 69 6e 74 3e 20 74 |o <font_paint> t| 00043540 6f 20 62 65 20 6f 75 74 70 75 74 20 74 6f 20 74 |o be output to t| 00043550 68 65 20 73 63 72 65 65 6e 20 61 73 20 6e 6f 72 |he screen as nor| 00043560 6d 61 6c 2e 44 41 54 41 7d 03 00 00 46 6f 6e 74 |mal.DATA}...Font| 00043570 5f 50 61 69 6e 74 2f 66 6f 6e 74 5f 70 61 69 6e |_Paint/font_pain| 00043580 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |t.Syntax:.<os_er| 00043590 72 6f 72 3e 20 2a 46 6f 6e 74 5f 50 61 69 6e 74 |ror> *Font_Paint| 000435a0 20 28 63 68 61 72 20 2a 73 74 72 2c 20 69 6e 74 | (char *str, int| 000435b0 20 3c 6f 70 74 69 6f 6e 73 3d 3e 53 57 49 3a 66 | <options=>SWI:f| 000435c0 6f 6e 74 5f 70 61 69 6e 74 30 3e 2c 20 69 6e 74 |ont_paint0>, int| 000435d0 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 | x, int y);.Head| 000435e0 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e |er:.<DeskLib:Fon| 000435f0 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 09 3c 66 6f 6e |t.h=>Font>..<fon| 00043600 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 65 |t.h=>font_h> (De| 00043610 73 6b 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e |sktop C)..Return| 00043620 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00043630 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00043640 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00043650 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 |nction is called| 00043660 20 7b 2a 7d 66 6f 6e 74 5f 70 61 69 6e 74 7b 2a | {*}font_paint{*| 00043670 7d 20 69 6e 20 44 65 73 6b 74 6f 70 20 43 2e 0a |} in Desktop C..| 00043680 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 |.This function w| 00043690 72 69 74 65 73 20 61 20 73 74 72 69 6e 67 20 74 |rites a string t| 000436a0 6f 20 74 68 65 20 73 63 72 65 65 6e 20 28 69 6e |o the screen (in| 000436b0 20 74 68 65 20 52 49 53 43 20 4f 53 20 32 20 77 | the RISC OS 2 w| 000436c0 61 79 29 20 75 73 69 6e 67 20 74 68 65 20 63 75 |ay) using the cu| 000436d0 72 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 |rrently selected| 000436e0 20 66 6f 6e 74 20 28 73 65 6c 65 63 74 20 77 69 | font (select wi| 000436f0 74 68 20 3c 46 6f 6e 74 5f 53 65 74 46 6f 6e 74 |th <Font_SetFont| 00043700 3e 29 2c 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 |>), at position | 00043710 28 78 2c 79 29 2e 20 43 65 72 74 61 69 6e 20 63 |(x,y). Certain c| 00043720 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 |ontrol character| 00043730 73 20 69 6e 20 2f 73 74 72 2f 20 68 61 76 65 20 |s in /str/ have | 00043740 61 6e 20 65 66 66 65 63 74 20 61 73 20 66 6f 6c |an effect as fol| 00043750 6c 6f 77 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 |lows:..#indent 1| 00043760 3b 74 61 62 0a 20 39 2c 6c 6f 77 2c 6d 69 64 64 |;tab. 9,low,midd| 00043770 6c 65 2c 68 69 67 68 09 4d 6f 76 65 20 48 20 70 |le,high.Move H p| 00043780 6f 73 69 74 69 6f 6e 0a 31 31 2c 6c 6f 77 2c 6d |osition.11,low,m| 00043790 69 64 64 6c 65 2c 68 69 67 68 09 4d 6f 76 65 20 |iddle,high.Move | 000437a0 56 20 70 6f 73 69 74 69 6f 6e 0a 31 37 2c 63 6f |V position.17,co| 000437b0 6c 6f 75 72 09 43 68 61 6e 67 65 20 63 6f 6c 6f |lour.Change colo| 000437c0 75 72 0a 31 38 2c 62 61 63 6b 2c 66 6f 72 65 2c |ur.18,back,fore,| 000437d0 6f 66 66 73 65 74 09 43 68 61 6e 67 65 20 63 6f |offset.Change co| 000437e0 6c 6f 75 72 73 0a 32 35 2c 70 6f 73 2c 74 68 69 |lours.25,pos,thi| 000437f0 63 6b 6e 65 73 73 09 55 6e 64 65 72 6c 69 6e 65 |ckness.Underline| 00043800 20 6f 6e 2f 6f 66 66 0a 32 36 2c 66 6f 6e 74 68 | on/off.26,fonth| 00043810 61 6e 64 6c 65 09 43 68 61 6e 67 65 20 66 6f 6e |andle.Change fon| 00043820 74 0a 0a 39 20 61 6e 64 20 31 31 20 68 61 76 65 |t..9 and 11 have| 00043830 20 74 68 72 65 65 2d 62 79 74 65 20 76 61 6c 75 | three-byte valu| 00043840 65 73 2c 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 6e |es, in millipoin| 00043850 74 73 2e 0a 31 37 20 63 68 61 6e 67 65 73 20 6a |ts..17 changes j| 00043860 75 73 74 20 6f 6e 65 20 63 6f 6c 6f 75 72 20 28 |ust one colour (| 00043870 61 73 20 3c 56 44 55 20 31 37 3d 3e 56 44 55 2e |as <VDU 17=>VDU.| 00043880 31 37 3e 29 2e 0a 31 38 20 63 68 61 6e 67 65 73 |17>)..18 changes| 00043890 20 62 6f 74 68 20 63 6f 6c 6f 75 72 73 20 61 6e | both colours an| 000438a0 64 20 61 6e 74 69 2d 61 6c 69 61 73 69 6e 67 2e |d anti-aliasing.| 000438b0 0a 32 35 20 2d 20 70 6f 73 20 61 6e 64 20 74 68 |.25 - pos and th| 000438c0 69 63 6b 6e 65 73 73 20 69 6e 20 31 2f 32 35 36 |ickness in 1/256| 000438d0 74 68 73 20 6f 66 20 66 6f 6e 74 20 73 69 7a 65 |ths of font size| 000438e0 2e 00 00 00 44 41 54 41 0c 02 00 00 66 6f 6e 74 |....DATA....font| 000438f0 5f 72 65 61 64 64 65 66 0a 53 79 6e 74 61 78 3a |_readdef.Syntax:| 00043900 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e |.<os_error> *fon| 00043910 74 5f 72 65 61 64 64 65 66 20 28 3c 66 6f 6e 74 |t_readdef (<font| 00043920 3d 3e 66 6f 6e 74 5f 3e 20 66 2c 20 3c 66 6f 6e |=>font_> f, <fon| 00043930 74 5f 64 65 66 3e 20 2a 64 65 66 6e 29 3b 0a 48 |t_def> *defn);.H| 00043940 65 61 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d 3e |eader:.<font.h=>| 00043950 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |font_h>..Returns| 00043960 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00043970 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00043980 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00043990 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 |ction returns a | 000439a0 6e 75 6d 62 65 72 20 6f 66 20 64 65 74 61 69 6c |number of detail| 000439b0 73 20 61 62 6f 75 74 20 61 20 66 6f 6e 74 2e 20 |s about a font. | 000439c0 2f 66 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |/f/ contains the| 000439d0 20 66 6f 6e 74 20 68 61 6e 64 6c 65 2e 20 4f 6e | font handle. On| 000439e0 20 65 78 69 74 2c 20 7b 2f 7d 64 65 66 6e 2d 3e | exit, {/}defn->| 000439f0 6e 61 6d 65 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 |name{/} contains| 00043a00 20 74 68 65 20 66 6f 6e 74 20 6e 61 6d 65 2c 20 | the font name, | 00043a10 7b 2f 7d 64 65 66 6e 2d 3e 75 73 61 67 65 7b 2f |{/}defn->usage{/| 00043a20 7d 20 67 69 76 65 73 20 74 68 65 20 6e 75 6d 62 |} gives the numb| 00043a30 65 72 20 6f 66 20 74 69 6d 65 73 20 74 68 61 74 |er of times that| 00043a40 20 3c 66 6f 6e 74 5f 66 69 6e 64 3e 20 68 61 73 | <font_find> has| 00043a50 20 66 6f 75 6e 64 20 74 68 65 20 66 6f 6e 74 2c | found the font,| 00043a60 20 6d 69 6e 75 73 20 74 68 65 20 6e 75 6d 62 65 | minus the numbe| 00043a70 72 20 6f 66 20 74 69 6d 65 73 20 74 68 61 74 20 |r of times that | 00043a80 3c 66 6f 6e 74 5f 6c 6f 73 65 3e 20 68 61 73 20 |<font_lose> has | 00043a90 62 65 65 6e 20 75 73 65 64 20 6f 6e 20 69 74 2e |been used on it.| 00043aa0 20 7b 2f 7d 64 65 66 6e 2d 3e 61 67 65 7b 2f 7d | {/}defn->age{/}| 00043ab0 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f | is the number o| 00043ac0 66 20 66 6f 6e 74 20 61 63 63 65 73 65 73 20 6d |f font acceses m| 00043ad0 61 64 65 20 73 69 6e 63 65 20 74 68 69 73 20 6f |ade since this o| 00043ae0 6e 65 20 77 61 73 20 61 63 63 65 73 73 65 64 2e |ne was accessed.| 00043af0 44 41 54 41 9f 02 00 00 46 6f 6e 74 5f 52 65 61 |DATA....Font_Rea| 00043b00 64 44 65 66 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f |dDefn.Syntax:.<o| 00043b10 73 5f 65 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 52 |s_error> *Font_R| 00043b20 65 61 64 44 65 66 6e 20 28 3c 66 6f 6e 74 5f 68 |eadDefn (<font_h| 00043b30 61 6e 64 6c 65 3e 20 66 6f 6e 74 2c 20 3c 66 6f |andle> font, <fo| 00043b40 6e 74 5f 64 65 66 6e 3e 20 2a 64 65 66 6e 29 3b |nt_defn> *defn);| 00043b50 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00043b60 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a |b:Font.h=>Font>.| 00043b70 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00043b80 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00043b90 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00043ba0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 00043bb0 74 75 72 6e 73 20 61 20 6e 75 6d 62 65 72 20 6f |turns a number o| 00043bc0 66 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20 |f details about | 00043bd0 61 20 66 6f 6e 74 2e 20 2f 66 6f 6e 74 2f 20 63 |a font. /font/ c| 00043be0 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 6f 6e 74 |ontains the font| 00043bf0 20 68 61 6e 64 6c 65 2e 20 4f 6e 20 65 78 69 74 | handle. On exit| 00043c00 2c 20 7b 2f 7d 64 65 66 6e 2d 3e 6e 61 6d 65 7b |, {/}defn->name{| 00043c10 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 |/} contains the | 00043c20 66 6f 6e 74 20 6e 61 6d 65 2c 20 7b 2f 7d 64 65 |font name, {/}de| 00043c30 66 6e 2d 3e 75 73 61 67 65 7b 2f 7d 20 67 69 76 |fn->usage{/} giv| 00043c40 65 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 |es the number of| 00043c50 20 74 69 6d 65 73 20 74 68 61 74 20 3c 46 6f 6e | times that <Fon| 00043c60 74 5f 46 69 6e 64 46 6f 6e 74 3e 20 68 61 73 20 |t_FindFont> has | 00043c70 66 6f 75 6e 64 20 74 68 65 20 66 6f 6e 74 2c 20 |found the font, | 00043c80 6d 69 6e 75 73 20 74 68 65 20 6e 75 6d 62 65 72 |minus the number| 00043c90 20 6f 66 20 74 69 6d 65 20 74 68 61 74 20 3c 46 | of time that <F| 00043ca0 6f 6e 74 5f 4c 6f 73 65 46 6f 6e 74 3e 20 68 61 |ont_LoseFont> ha| 00043cb0 73 20 62 65 65 6e 20 75 73 65 64 20 6f 6e 20 69 |s been used on i| 00043cc0 74 2e 20 7b 2f 7d 64 65 66 6e 2d 3e 61 67 65 7b |t. {/}defn->age{| 00043cd0 2f 7d 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 |/} is the number| 00043ce0 20 6f 66 20 66 6f 6e 74 20 61 63 63 65 73 73 65 | of font accesse| 00043cf0 73 20 6d 61 64 65 20 73 69 6e 63 65 20 74 68 69 |s made since thi| 00043d00 73 20 6f 6e 65 20 77 61 73 20 61 63 63 65 73 73 |s one was access| 00043d10 65 64 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 |ed...Note that t| 00043d20 68 65 20 66 6f 6e 74 20 6e 61 6d 65 20 72 65 74 |he font name ret| 00043d30 75 72 6e 65 64 20 62 79 20 74 68 69 73 20 66 75 |urned by this fu| 00043d40 6e 63 74 69 6f 6e 20 69 73 20 43 52 2d 74 65 72 |nction is CR-ter| 00043d50 6d 69 6e 61 74 65 64 2c 20 73 6f 20 75 73 65 20 |minated, so use | 00043d60 74 68 65 20 3c 44 65 73 6b 4c 69 62 3a 53 74 72 |the <DeskLib:Str| 00043d70 3d 3e 53 74 72 5f 44 4c 3e 20 66 75 6e 63 74 69 |=>Str_DL> functi| 00043d80 6f 6e 73 20 74 6f 20 72 65 61 64 20 69 74 2e 00 |ons to read it..| 00043d90 44 41 54 41 1a 02 00 00 46 6f 6e 74 5f 52 65 61 |DATA....Font_Rea| 00043da0 64 49 6e 66 6f 2f 66 6f 6e 74 5f 72 65 61 64 69 |dInfo/font_readi| 00043db0 6e 66 6f 0a 53 79 6e 74 61 78 3a 09 28 44 65 73 |nfo.Syntax:.(Des| 00043dc0 6b 4c 69 62 29 09 3c 6f 73 5f 65 72 72 6f 72 3e |kLib).<os_error>| 00043dd0 20 2a 46 6f 6e 74 5f 52 65 61 64 49 6e 66 6f 20 | *Font_ReadInfo | 00043de0 28 3c 66 6f 6e 74 5f 68 61 6e 64 6c 65 3e 20 66 |(<font_handle> f| 00043df0 6f 6e 74 2c 20 3c 66 6f 6e 74 5f 69 6e 66 6f 3e |ont, <font_info>| 00043e00 20 2a 69 6e 66 6f 29 3b 0a 09 28 44 65 73 6b 74 | *info);..(Deskt| 00043e10 6f 70 20 43 29 09 3c 6f 73 5f 65 72 72 6f 72 3e |op C).<os_error>| 00043e20 20 2a 66 6f 6e 74 5f 72 65 61 64 69 6e 66 6f 20 | *font_readinfo | 00043e30 28 3c 66 6f 6e 74 3d 3e 66 6f 6e 74 5f 3e 20 66 |(<font=>font_> f| 00043e40 2c 20 3c 66 6f 6e 74 5f 69 6e 66 6f 3e 20 2a 69 |, <font_info> *i| 00043e50 6e 66 6f 29 3b 0a 0a 48 65 61 64 65 72 3a 09 3c |nfo);..Header:.<| 00043e60 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e |DeskLib:Font.h=>| 00043e70 46 6f 6e 74 3e 0a 09 3c 66 6f 6e 74 2e 68 3d 3e |Font>..<font.h=>| 00043e80 66 6f 6e 74 5f 68 3e 20 28 44 65 73 6b 74 6f 70 |font_h> (Desktop| 00043e90 20 43 29 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f | C)..Returns:.Po| 00043ea0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00043eb0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00043ec0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00043ed0 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 6f |n returns the bo| 00043ee0 75 6e 64 69 6e 67 20 62 6f 78 20 69 6e 20 4f 53 |unding box in OS| 00043ef0 20 75 6e 69 74 73 20 6f 66 20 74 68 65 20 66 6f | units of the fo| 00043f00 6e 74 20 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 |nt whose handle | 00043f10 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 66 6f 6e |is given in /fon| 00043f20 74 2f 2e 20 54 68 65 20 62 6f 75 6e 64 69 6e 67 |t/. The bounding| 00043f30 20 62 6f 78 20 69 73 20 74 68 65 20 6d 69 6e 69 | box is the mini| 00043f40 6d 61 6c 20 61 72 65 61 20 63 6f 76 65 72 69 6e |mal area coverin| 00043f50 67 20 65 76 65 72 79 20 63 68 61 72 61 63 74 65 |g every characte| 00043f60 72 20 69 6e 20 74 68 65 20 66 6f 6e 74 2e 20 59 |r in the font. Y| 00043f70 6f 75 20 73 68 6f 75 6c 64 20 75 73 65 20 3c 46 |ou should use <F| 00043f80 6f 6e 74 5f 43 68 61 72 42 42 6f 78 3e 20 69 6e |ont_CharBBox> in| 00043f90 20 70 72 65 66 65 72 65 6e 63 65 2c 20 73 6f 20 | preference, so | 00043fa0 41 63 6f 72 6e 20 73 61 79 2e 00 00 44 41 54 41 |Acorn say...DATA| 00043fb0 5e 01 00 00 46 6f 6e 74 5f 52 65 61 64 53 63 61 |^...Font_ReadSca| 00043fc0 6c 65 46 61 63 74 6f 72 0a 53 79 6e 74 61 78 3a |leFactor.Syntax:| 00043fd0 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 46 6f 6e |.<os_error> *Fon| 00043fe0 74 5f 52 65 61 64 53 63 61 6c 65 46 61 63 74 6f |t_ReadScaleFacto| 00043ff0 72 20 28 69 6e 74 20 2a 78 73 63 61 6c 65 2c 20 |r (int *xscale, | 00044000 69 6e 74 20 2a 79 73 63 61 6c 65 29 3b 0a 48 65 |int *yscale);.He| 00044010 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 |ader:.<DeskLib:F| 00044020 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 20 3c 66 6f |ont.h=>Font> <fo| 00044030 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 |nt.h=>font_h> (D| 00044040 65 73 6b 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 |esktop C)..Retur| 00044050 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00044060 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00044070 69 66 20 6e 6f 6e 65 2e 0a 0a 43 61 6c 6c 65 64 |if none...Called| 00044080 20 7b 2a 7d 66 6f 6e 74 5f 72 65 61 64 73 63 61 | {*}font_readsca| 00044090 6c 65 66 61 63 74 6f 72 7b 2a 7d 20 69 6e 20 44 |lefactor{*} in D| 000440a0 65 73 6b 74 6f 70 20 43 2e 0a 0a 54 68 69 73 20 |esktop C...This | 000440b0 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 |function reads t| 000440c0 68 65 20 63 75 72 72 65 6e 74 20 73 63 61 6c 65 |he current scale| 000440d0 20 66 61 63 74 6f 72 73 20 69 6e 20 6d 69 6c 6c | factors in mill| 000440e0 69 70 6f 69 6e 74 73 2f 4f 53 20 75 6e 69 74 2e |ipoints/OS unit.| 000440f0 20 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c | The default val| 00044100 75 65 20 69 73 20 34 30 30 2e 00 00 44 41 54 41 |ue is 400...DATA| 00044110 6c 01 00 00 46 6f 6e 74 5f 52 65 61 64 54 68 72 |l...Font_ReadThr| 00044120 65 73 68 6f 6c 64 73 0a 53 79 6e 74 61 78 3a 09 |esholds.Syntax:.| 00044130 28 44 65 73 6b 4c 69 62 29 09 3c 6f 73 5f 65 72 |(DeskLib).<os_er| 00044140 72 6f 72 3e 20 2a 46 6f 6e 74 5f 52 65 61 64 54 |ror> *Font_ReadT| 00044150 68 72 65 73 68 6f 6c 64 73 20 28 3c 66 6f 6e 74 |hresholds (<font| 00044160 5f 74 68 72 65 73 68 6f 6c 64 73 3e 20 2a 74 29 |_thresholds> *t)| 00044170 3b 0a 09 28 44 65 73 6b 74 6f 70 20 43 29 09 3c |;..(Desktop C).<| 00044180 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 5f |os_error> *font_| 00044190 72 65 61 64 74 68 72 65 73 68 6f 6c 64 73 20 28 |readthresholds (| 000441a0 3c 66 6f 6e 74 5f 74 68 72 65 73 68 6f 6c 64 3e |<font_threshold>| 000441b0 20 2a 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 | *t);.Header:.<D| 000441c0 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 |eskLib:Font.h=>F| 000441d0 6f 6e 74 3e 0a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 |ont>..<font.h=>f| 000441e0 6f 6e 74 5f 68 3e 20 28 44 65 73 6b 74 6f 70 20 |ont_h> (Desktop | 000441f0 43 29 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |C)..Returns:.Poi| 00044200 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00044210 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00044220 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00044230 20 72 65 61 64 73 20 74 68 65 20 6c 69 73 74 20 | reads the list | 00044240 6f 66 20 74 68 72 65 73 68 6f 6c 64 20 76 61 6c |of threshold val| 00044250 75 65 73 20 66 6f 72 20 70 61 69 6e 74 69 6e 67 |ues for painting| 00044260 20 61 6e 64 20 73 74 6f 72 65 73 20 74 68 65 6d | and stores them| 00044270 20 69 6e 20 2f 74 2f 2e 44 41 54 41 5d 00 00 00 | in /t/.DATA]...| 00044280 66 6f 6e 74 5f 52 65 64 47 75 6e 0a 54 68 65 20 |font_RedGun.The | 00044290 6d 61 63 72 6f 20 7b 2a 7d 66 6f 6e 74 5f 52 65 |macro {*}font_Re| 000442a0 64 47 75 6e 7b 2a 7d 20 69 73 20 64 65 66 69 6e |dGun{*} is defin| 000442b0 65 64 20 69 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 |ed in <font.h=>f| 000442c0 6f 6e 74 5f 68 3e 20 61 73 20 30 78 30 30 30 30 |ont_h> as 0x0000| 000442d0 30 31 30 30 2e 00 00 00 44 41 54 41 b4 00 00 00 |0100....DATA....| 000442e0 66 6f 6e 74 5f 52 55 42 4f 55 54 0a 54 68 69 73 |font_RUBOUT.This| 000442f0 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 00044300 64 20 69 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f |d in <font.h=>fo| 00044310 6e 74 5f 68 3e 2e 20 49 74 20 69 73 20 74 68 65 |nt_h>. It is the| 00044320 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 62 69 | value of the bi| 00044330 74 20 75 73 65 64 20 74 6f 20 69 6e 64 69 63 61 |t used to indica| 00044340 74 65 20 69 6e 20 74 68 65 20 70 61 69 6e 74 20 |te in the paint | 00044350 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 61 20 72 |options that a r| 00044360 75 62 2d 6f 75 74 20 62 6f 78 20 69 73 20 6e 65 |ub-out box is ne| 00044370 65 64 65 64 2e 20 49 74 20 69 73 20 64 65 66 69 |eded. It is defi| 00044380 6e 65 64 20 61 73 20 30 78 30 32 2e 44 41 54 41 |ned as 0x02.DATA| 00044390 31 02 00 00 66 6f 6e 74 5f 73 65 74 63 6f 6c 6f |1...font_setcolo| 000443a0 75 72 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ur.Syntax:.<os_e| 000443b0 72 72 6f 72 3e 20 2a 66 6f 6e 74 5f 73 65 74 63 |rror> *font_setc| 000443c0 6f 6c 6f 75 72 20 28 3c 66 6f 6e 74 3d 3e 66 6f |olour (<font=>fo| 000443d0 6e 74 5f 3e 20 66 2c 20 69 6e 74 20 62 61 63 6b |nt_> f, int back| 000443e0 2c 20 69 6e 74 20 66 6f 72 65 2c 20 69 6e 74 20 |, int fore, int | 000443f0 6f 66 66 73 65 74 29 3b 0a 48 65 61 64 65 72 3a |offset);.Header:| 00044400 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 |.<font.h=>font_h| 00044410 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00044420 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 00044430 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 00044440 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00044450 73 65 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 |sets the current| 00044460 20 66 6f 6e 74 20 63 6f 6c 6f 75 72 73 20 28 61 | font colours (a| 00044470 6e 64 20 66 6f 6e 74 20 69 66 20 7b 2f 7d 66 21 |nd font if {/}f!| 00044480 3d 30 7b 2f 7d 29 2e 20 54 68 65 20 63 6f 6c 6f |=0{/}). The colo| 00044490 75 72 73 20 66 6f 72 20 2f 62 61 63 6b 2f 20 61 |urs for /back/ a| 000444a0 6e 64 20 2f 66 6f 72 65 2f 20 61 72 65 20 6c 6f |nd /fore/ are lo| 000444b0 67 69 63 61 6c 20 63 6f 6c 6f 75 72 73 2e 20 2f |gical colours. /| 000444c0 6f 66 66 73 65 74 2f 20 73 65 74 73 20 74 68 65 |offset/ sets the| 000444d0 20 6f 66 66 73 65 74 20 66 72 6f 6d 20 2f 66 6f | offset from /fo| 000444e0 72 65 2f 20 74 6f 20 74 68 65 20 5f 72 65 61 6c |re/ to the _real| 000444f0 5f 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c |_ foreground col| 00044500 6f 75 72 2e 20 56 61 6c 75 65 73 20 62 65 74 77 |our. Values betw| 00044510 65 65 6e 20 2f 66 6f 72 65 2f 20 61 6e 64 20 7b |een /fore/ and {| 00044520 2f 7d 66 6f 72 65 2b 6f 66 66 73 65 74 7b 2f 7d |/}fore+offset{/}| 00044530 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 61 6e | are used for an| 00044540 74 69 2d 61 6c 69 61 73 69 6e 67 2e 0a 0a 65 67 |ti-aliasing...eg| 00044550 20 54 6f 20 68 61 76 65 20 63 6f 6c 6f 75 72 20 | To have colour | 00044560 30 20 61 73 20 62 61 63 6b 67 72 6f 75 6e 64 2c |0 as background,| 00044570 20 61 6e 64 20 75 73 65 20 31 2d 37 20 66 6f 72 | and use 1-7 for| 00044580 20 61 6e 74 69 2d 61 6c 69 61 73 69 6e 67 3a 0a | anti-aliasing:.| 00044590 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 000445a0 6e 74 72 65 7d 66 6f 6e 74 5f 73 65 74 63 6f 6c |ntre}font_setcol| 000445b0 6f 75 72 28 30 2c 30 2c 31 2c 36 29 3b 00 00 00 |our(0,0,1,6);...| 000445c0 44 41 54 41 57 01 00 00 46 6f 6e 74 5f 53 65 74 |DATAW...Font_Set| 000445d0 46 6f 6e 74 2f 66 6f 6e 74 5f 73 65 74 66 6f 6e |Font/font_setfon| 000445e0 74 0a 53 79 6e 74 61 78 3a 09 28 44 65 73 6b 4c |t.Syntax:.(DeskL| 000445f0 69 62 29 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ib).<os_error> *| 00044600 46 6f 6e 74 5f 53 65 74 46 6f 6e 74 20 28 3c 66 |Font_SetFont (<f| 00044610 6f 6e 74 5f 68 61 6e 64 6c 65 3e 20 66 6f 6e 74 |ont_handle> font| 00044620 29 3b 0a 09 28 44 65 73 6b 74 6f 70 20 43 29 09 |);..(Desktop C).| 00044630 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 |<os_error> *font| 00044640 5f 73 65 74 66 6f 6e 74 20 28 3c 66 6f 6e 74 3d |_setfont (<font=| 00044650 3e 66 6f 6e 74 5f 3e 20 66 29 3b 0a 48 65 61 64 |>font_> f);.Head| 00044660 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e |er:.<DeskLib:Fon| 00044670 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 09 3c 66 6f 6e |t.h=>Font>..<fon| 00044680 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 65 |t.h=>font_h> (De| 00044690 73 6b 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e |sktop C)..Return| 000446a0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000446b0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000446c0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000446d0 6e 63 74 69 6f 6e 20 73 65 74 73 20 75 70 20 74 |nction sets up t| 000446e0 68 65 20 66 6f 6e 74 20 74 6f 20 62 65 20 75 73 |he font to be us| 000446f0 65 64 20 62 79 20 66 75 74 75 72 65 20 63 61 6c |ed by future cal| 00044700 6c 73 20 74 6f 20 74 68 65 20 46 6f 6e 74 20 4d |ls to the Font M| 00044710 61 6e 61 67 65 72 2e 00 44 41 54 41 4c 02 00 00 |anager..DATAL...| 00044720 46 6f 6e 74 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f |Font_SetFontColo| 00044730 75 72 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |urs.Syntax:.<os_| 00044740 65 72 72 6f 72 3e 20 2a 46 6f 6e 74 5f 53 65 74 |error> *Font_Set| 00044750 46 6f 6e 74 43 6f 6c 6f 75 72 73 20 28 3c 66 6f |FontColours (<fo| 00044760 6e 74 5f 68 61 6e 64 6c 65 3e 20 66 6f 6e 74 2c |nt_handle> font,| 00044770 20 69 6e 74 20 62 61 63 6b 2c 20 69 6e 74 20 66 | int back, int f| 00044780 6f 72 65 2c 20 69 6e 74 20 6f 66 66 73 65 74 29 |ore, int offset)| 00044790 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000447a0 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e |ib:Font.h=>Font>| 000447b0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000447c0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000447d0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 000447e0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 000447f0 65 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 |ets the current | 00044800 66 6f 6e 74 20 63 6f 6c 6f 75 72 73 20 28 61 6e |font colours (an| 00044810 64 20 66 6f 6e 74 20 69 66 20 7b 2f 7d 66 6f 6e |d font if {/}fon| 00044820 74 7b 2f 7d 21 3d 30 29 2e 20 54 68 65 20 63 6f |t{/}!=0). The co| 00044830 6c 6f 75 72 73 20 66 6f 72 20 2f 62 61 63 6b 2f |lours for /back/| 00044840 20 61 6e 64 20 2f 66 6f 72 65 2f 20 61 72 65 20 | and /fore/ are | 00044850 6c 6f 67 69 63 61 6c 20 63 6f 6c 6f 75 72 73 2e |logical colours.| 00044860 20 2f 6f 66 66 73 65 74 2f 20 73 65 74 73 20 74 | /offset/ sets t| 00044870 68 65 20 6f 66 66 73 65 74 20 66 72 6f 6d 20 2f |he offset from /| 00044880 66 6f 72 65 2f 20 74 6f 20 74 68 65 20 5f 72 65 |fore/ to the _re| 00044890 61 6c 5f 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 |al_ foreground c| 000448a0 6f 6c 6f 75 72 2e 20 56 61 6c 75 65 73 20 62 65 |olour. Values be| 000448b0 74 77 65 65 6e 20 2f 66 6f 72 65 2f 20 61 6e 64 |tween /fore/ and| 000448c0 20 7b 2f 7d 66 6f 72 65 2b 6f 66 66 73 65 74 7b | {/}fore+offset{| 000448d0 2f 7d 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 |/} are used for | 000448e0 61 6e 74 69 2d 61 6c 69 61 73 69 6e 67 2e 0a 0a |anti-aliasing...| 000448f0 65 67 20 54 6f 20 68 61 76 65 20 63 6f 6c 6f 75 |eg To have colou| 00044900 72 20 30 20 61 73 20 62 61 63 6b 67 72 6f 75 6e |r 0 as backgroun| 00044910 64 2c 20 61 6e 64 20 75 73 65 20 31 2d 37 20 66 |d, and use 1-7 f| 00044920 6f 72 20 61 6e 74 69 2d 61 6c 69 61 73 69 6e 67 |or anti-aliasing| 00044930 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |:..{fCode;align | 00044940 63 65 6e 74 72 65 7d 46 6f 6e 74 5f 53 65 74 46 |centre}Font_SetF| 00044950 6f 6e 74 43 6f 6c 6f 75 72 73 28 30 2c 30 2c 31 |ontColours(0,0,1| 00044960 2c 36 29 3b 44 41 54 41 98 02 00 00 46 6f 6e 74 |,6);DATA....Font| 00044970 5f 53 65 74 50 61 6c 65 74 74 65 2f 66 6f 6e 74 |_SetPalette/font| 00044980 5f 73 65 74 70 61 6c 65 74 74 65 0a 53 79 6e 74 |_setpalette.Synt| 00044990 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000449a0 46 6f 6e 74 5f 53 65 74 50 61 6c 65 74 74 65 20 |Font_SetPalette | 000449b0 28 69 6e 74 20 6c 62 61 63 6b 2c 20 69 6e 74 20 |(int lback, int | 000449c0 6c 66 6f 72 65 2c 20 69 6e 74 20 6f 66 66 73 65 |lfore, int offse| 000449d0 74 2c 20 69 6e 74 20 70 62 61 63 6b 2c 20 69 6e |t, int pback, in| 000449e0 74 20 70 66 6f 72 65 29 3b 0a 48 65 61 64 65 72 |t pfore);.Header| 000449f0 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e |:.<DeskLib:Font.| 00044a00 68 3d 3e 46 6f 6e 74 3e 0a 09 3c 66 6f 6e 74 2e |h=>Font>..<font.| 00044a10 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 65 73 6b |h=>font_h> (Desk| 00044a20 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e 73 3a |top C)..Returns:| 00044a30 20 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f | Pointer to erro| 00044a40 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 00044a50 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 69 73 20 63 |none...This is c| 00044a60 61 6c 6c 65 64 20 7b 2a 7d 66 6f 6e 74 5f 73 65 |alled {*}font_se| 00044a70 74 70 61 6c 65 74 74 65 7b 2a 7d 20 69 6e 20 44 |tpalette{*} in D| 00044a80 65 73 6b 74 6f 70 20 43 2e 0a 0a 54 68 69 73 20 |esktop C...This | 00044a90 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 00044aa0 65 20 61 6e 74 69 2d 61 6c 69 61 73 20 70 61 6c |e anti-alias pal| 00044ab0 65 74 74 65 2e 20 49 74 20 73 68 6f 75 6c 64 20 |ette. It should | 00044ac0 6e 6f 74 20 62 65 20 75 73 65 64 20 77 69 74 68 |not be used with| 00044ad0 69 6e 20 74 68 65 20 44 65 73 6b 74 6f 70 2e 20 |in the Desktop. | 00044ae0 54 68 65 20 66 69 72 73 74 20 74 68 72 65 65 20 |The first three | 00044af0 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 74 |parameters are t| 00044b00 68 6f 73 65 20 75 73 65 64 20 69 6e 20 3c 46 6f |hose used in <Fo| 00044b10 6e 74 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f 75 72 |nt_SetFontColour| 00044b20 73 3e 2f 3c 66 6f 6e 74 5f 73 65 74 63 6f 6c 6f |s>/<font_setcolo| 00044b30 75 72 3e 2e 20 2f 70 62 61 63 6b 2f 20 61 6e 64 |ur>. /pback/ and| 00044b40 20 2f 70 66 6f 72 65 2f 20 61 72 65 20 77 6f 72 | /pfore/ are wor| 00044b50 64 73 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 30 |ds in the form 0| 00044b60 78 42 42 47 47 52 52 30 30 20 73 65 74 74 69 6e |xBBGGRR00 settin| 00044b70 67 20 74 68 65 20 70 68 79 73 69 63 61 6c 20 62 |g the physical b| 00044b80 61 63 6b 67 72 6f 75 6e 64 20 61 6e 64 20 66 6f |ackground and fo| 00044b90 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 73 |reground colours| 00044ba0 2e 20 54 68 65 20 70 61 6c 65 74 74 65 20 65 6e |. The palette en| 00044bb0 74 72 69 65 73 20 73 70 65 63 69 66 69 65 64 20 |tries specified | 00044bc0 61 72 65 20 61 6c 74 65 72 65 64 20 74 6f 20 63 |are altered to c| 00044bd0 6f 6e 74 61 69 6e 20 61 20 73 75 69 74 61 62 6c |ontain a suitabl| 00044be0 65 20 70 61 6c 65 74 74 65 20 66 6f 72 20 61 6e |e palette for an| 00044bf0 74 69 2d 61 6c 69 61 73 69 6e 67 2e 44 41 54 41 |ti-aliasing.DATA| 00044c00 db 00 00 00 66 6f 6e 74 5f 73 65 74 73 63 61 6c |....font_setscal| 00044c10 65 66 61 63 74 6f 72 0a 53 79 6e 74 61 78 3a 09 |efactor.Syntax:.| 00044c20 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 |<os_error> *font| 00044c30 5f 73 65 74 73 63 61 6c 65 66 61 63 74 6f 72 20 |_setscalefactor | 00044c40 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a |(int x, int y);.| 00044c50 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 3d |Header:.<font.h=| 00044c60 3e 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 6e |>font_h>..Return| 00044c70 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00044c80 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00044c90 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00044ca0 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 65 20 |nction sets the | 00044cb0 73 63 61 6c 65 20 66 61 63 74 6f 72 73 20 75 73 |scale factors us| 00044cc0 65 64 20 62 79 20 74 68 65 20 66 6f 6e 74 20 6d |ed by the font m| 00044cd0 61 6e 61 67 65 72 2e 00 44 41 54 41 59 01 00 00 |anager..DATAY...| 00044ce0 46 6f 6e 74 5f 53 65 74 54 68 72 65 73 68 6f 6c |Font_SetThreshol| 00044cf0 64 73 0a 53 79 6e 74 61 78 3a 09 28 44 65 73 6b |ds.Syntax:.(Desk| 00044d00 4c 69 62 29 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |Lib).<os_error> | 00044d10 2a 46 6f 6e 74 5f 53 65 74 54 68 72 65 73 68 6f |*Font_SetThresho| 00044d20 6c 64 73 20 28 3c 66 6f 6e 74 5f 74 68 72 65 73 |lds (<font_thres| 00044d30 68 6f 6c 64 73 3e 20 2a 74 29 3b 0a 09 28 44 65 |holds> *t);..(De| 00044d40 73 6b 74 6f 70 20 43 09 3c 6f 73 5f 65 72 72 6f |sktop C.<os_erro| 00044d50 72 3e 20 2a 66 6f 6e 74 5f 73 65 74 74 68 72 65 |r> *font_setthre| 00044d60 73 68 6f 6c 64 73 20 28 3c 66 6f 6e 74 5f 74 68 |sholds (<font_th| 00044d70 72 65 73 68 6f 6c 64 3e 20 2a 74 29 3b 0a 48 65 |reshold> *t);.He| 00044d80 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 |ader:.<DeskLib:F| 00044d90 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 3e 0a 09 3c 66 |ont.h=>Font>..<f| 00044da0 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 |ont.h=>font_h> (| 00044db0 44 65 73 6b 74 6f 70 20 43 29 0a 0a 52 65 74 75 |Desktop C)..Retu| 00044dc0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00044dd0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00044de0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00044df0 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 00044e00 65 20 6c 69 73 74 20 6f 66 20 74 68 72 65 73 68 |e list of thresh| 00044e10 6f 6c 64 20 76 61 6c 75 65 73 20 66 6f 72 20 70 |old values for p| 00044e20 61 69 6e 74 69 6e 67 20 66 72 6f 6d 20 2f 74 2f |ainting from /t/| 00044e30 2e 00 00 00 44 41 54 41 c3 01 00 00 66 6f 6e 74 |....DATA....font| 00044e40 5f 73 74 61 74 65 0a 54 68 69 73 20 74 79 70 65 |_state.This type| 00044e50 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00044e60 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e |DeskLib:Font.h=>| 00044e70 46 6f 6e 74 3e 20 61 6e 64 20 3c 66 6f 6e 74 2e |Font> and <font.| 00044e80 68 3d 3e 66 6f 6e 74 5f 68 3e 20 28 44 65 73 6b |h=>font_h> (Desk| 00044e90 74 6f 70 20 43 29 2e 20 49 74 20 69 73 20 61 20 |top C). It is a | 00044ea0 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 66 |structure used f| 00044eb0 6f 72 20 68 6f 6c 64 69 6e 67 20 66 6f 6e 74 20 |or holding font | 00044ec0 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 49 74 20 |information. It | 00044ed0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 44 65 |is defined in De| 00044ee0 73 6b 4c 69 62 20 61 73 3a 0a 0a 20 20 5c 7b 0a |skLib as:.. \{.| 00044ef0 20 20 20 20 3c 66 6f 6e 74 5f 68 61 6e 64 6c 65 | <font_handle| 00044f00 3e 09 66 6f 6e 74 3b 09 0a 20 20 20 20 3c 66 6f |>.font;.. <fo| 00044f10 6e 74 5f 63 6f 6c 6f 75 72 73 3e 09 63 6f 6c 6f |nt_colours>.colo| 00044f20 75 72 3b 09 0a 20 20 20 20 69 6e 74 09 6f 66 66 |ur;.. int.off| 00044f30 73 65 74 3b 09 2f 2a 20 61 6e 74 69 2d 61 6c 69 |set;./* anti-ali| 00044f40 61 73 20 2a 2f 0a 20 20 7d 0a 0a 61 6e 64 20 69 |as */. }..and i| 00044f50 6e 20 44 65 73 6b 74 6f 70 20 43 20 61 73 3a 0a |n Desktop C as:.| 00044f60 7b 74 61 62 7d 0a 20 20 5c 7b 0a 20 20 20 20 3c |{tab}. \{. <| 00044f70 66 6f 6e 74 3d 3e 66 6f 6e 74 5f 3e 09 66 3b 0a |font=>font_>.f;.| 00044f80 20 20 20 20 69 6e 74 09 62 61 63 6b 5f 63 6f 6c | int.back_col| 00044f90 6f 75 72 3b 0a 20 20 20 20 69 6e 74 09 66 6f 72 |our;. int.for| 00044fa0 65 5f 63 6f 6c 6f 75 72 3b 0a 20 20 20 20 69 6e |e_colour;. in| 00044fb0 74 09 6f 66 66 73 65 74 3b 0a 20 20 7d 0a 0a 53 |t.offset;. }..S| 00044fc0 65 65 20 3c 46 6f 6e 74 5f 53 65 74 46 6f 6e 74 |ee <Font_SetFont| 00044fd0 43 6f 6c 6f 75 72 73 3e 20 66 6f 72 20 61 20 64 |Colours> for a d| 00044fe0 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 2f 6f |escription of /o| 00044ff0 66 66 73 65 74 2f 2e 00 44 41 54 41 2d 01 00 00 |ffset/..DATA-...| 00045000 66 6f 6e 74 5f 73 74 72 69 6e 67 0a 54 68 69 73 |font_string.This| 00045010 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00045020 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e | in <DeskLib:Fon| 00045030 74 2e 68 3d 3e 46 6f 6e 74 3e 20 61 6e 64 20 3c |t.h=>Font> and <| 00045040 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 20 |font.h=>font_h> | 00045050 28 44 65 73 6b 74 6f 70 20 43 29 2e 20 49 74 20 |(Desktop C). It | 00045060 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 75 |is a structure u| 00045070 73 65 64 20 66 6f 72 20 68 6f 6c 64 69 6e 67 20 |sed for holding | 00045080 61 20 66 6f 6e 74 20 73 74 72 69 6e 67 20 61 6e |a font string an| 00045090 64 20 63 61 72 65 74 20 69 6e 66 6f 72 6d 61 74 |d caret informat| 000450a0 69 6f 6e 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 |ion:.. \{. c| 000450b0 68 61 72 20 2a 73 3b 09 2f 2a 20 73 74 72 69 6e |har *s;./* strin| 000450c0 67 20 2a 2f 0a 20 20 20 20 69 6e 74 20 78 3b 09 |g */. int x;.| 000450d0 2f 2a 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 6e 74 |/* in millipoint| 000450e0 73 20 2a 2f 0a 20 20 20 20 69 6e 74 20 79 3b 09 |s */. int y;.| 000450f0 0a 20 20 20 20 69 6e 74 20 73 70 6c 69 74 3b 09 |. int split;.| 00045100 0a 20 20 20 20 69 6e 74 20 74 65 72 6d 3b 09 2f |. int term;./| 00045110 2a 20 69 6e 64 65 78 20 69 6e 74 6f 20 73 20 2a |* index into s *| 00045120 2f 0a 20 20 7d 00 00 00 44 41 54 41 7c 01 00 00 |/. }...DATA|...| 00045130 46 6f 6e 74 5f 53 74 72 69 6e 67 42 42 6f 78 2f |Font_StringBBox/| 00045140 66 6f 6e 74 5f 73 74 72 69 6e 67 62 62 6f 78 0a |font_stringbbox.| 00045150 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00045160 72 3e 20 2a 46 6f 6e 74 5f 53 74 72 69 6e 67 42 |r> *Font_StringB| 00045170 42 6f 78 20 28 63 68 61 72 20 2a 73 74 72 2c 20 |Box (char *str, | 00045180 3c 66 6f 6e 74 5f 69 6e 66 6f 3e 20 2a 69 6e 66 |<font_info> *inf| 00045190 6f 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |o);.Header:.<Des| 000451a0 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e |kLib:Font.h=>Fon| 000451b0 74 3e 0a 09 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e |t>..<font.h=>fon| 000451c0 74 5f 68 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 |t_h> (Desktop C)| 000451d0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000451e0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000451f0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 00045200 0a 43 61 6c 6c 65 64 20 7b 2a 7d 66 6f 6e 74 5f |.Called {*}font_| 00045210 73 74 72 69 6e 67 62 62 6f 78 7b 2a 7d 20 69 6e |stringbbox{*} in| 00045220 20 44 65 73 6b 74 6f 70 20 43 2e 0a 0a 54 68 69 | Desktop C...Thi| 00045230 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 |s function gets | 00045240 74 68 65 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 |the bounding box| 00045250 20 6f 66 20 2f 73 74 72 2f 20 69 6e 74 6f 20 2f | of /str/ into /| 00045260 69 6e 66 6f 2f 2e 20 54 68 65 20 73 74 72 69 6e |info/. The strin| 00045270 67 20 63 61 6e 20 63 6f 6e 74 61 69 6e 20 3c 46 |g can contain <F| 00045280 6f 6e 74 5f 50 61 69 6e 74 3e 20 73 74 79 6c 65 |ont_Paint> style| 00045290 20 63 6f 6e 74 72 6f 6c 20 73 65 71 75 65 6e 63 | control sequenc| 000452a0 65 73 2e 2e 44 41 54 41 da 02 00 00 46 6f 6e 74 |es..DATA....Font| 000452b0 5f 53 74 72 69 6e 67 57 69 64 74 68 0a 53 79 6e |_StringWidth.Syn| 000452c0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000452d0 2a 46 6f 6e 74 5f 53 74 72 69 6e 67 57 69 64 74 |*Font_StringWidt| 000452e0 68 20 28 3c 66 6f 6e 74 5f 73 74 72 69 6e 67 3e |h (<font_string>| 000452f0 20 2a 73 74 72 69 6e 67 29 3b 0a 48 65 61 64 65 | *string);.Heade| 00045300 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 |r:.<DeskLib:Font| 00045310 2e 68 3d 3e 46 6f 6e 74 3e 0a 0a 52 65 74 75 72 |.h=>Font>..Retur| 00045320 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00045330 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00045340 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00045350 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 |unction calculat| 00045360 65 73 20 68 6f 77 20 77 69 64 65 20 61 20 73 74 |es how wide a st| 00045370 72 69 6e 67 20 77 6f 75 6c 64 20 62 65 20 75 6e |ring would be un| 00045380 64 65 72 20 6c 69 6d 69 74 73 2e 20 7b 2f 7d 28 |der limits. {/}(| 00045390 73 74 72 69 6e 67 2d 3e 78 2c 73 74 72 69 6e 67 |string->x,string| 000453a0 2d 3e 79 29 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 |->y){/} contains| 000453b0 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 77 69 64 | the maximum wid| 000453c0 74 68 20 61 6e 64 20 68 65 69 67 68 74 2e 20 7b |th and height. {| 000453d0 2f 7d 73 74 72 69 6e 67 2d 3e 73 70 6c 69 74 7b |/}string->split{| 000453e0 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 |/} contains the | 000453f0 63 68 61 72 61 63 74 65 72 20 61 74 20 77 68 69 |character at whi| 00045400 63 68 20 74 6f 20 73 70 6c 69 74 20 74 68 65 20 |ch to split the | 00045410 73 74 72 69 6e 67 20 28 65 67 20 33 32 29 2e 20 |string (eg 32). | 00045420 7b 2f 7d 73 74 72 69 6e 67 2d 3e 74 65 72 6d 7b |{/}string->term{| 00045430 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 |/} contains the | 00045440 69 6e 64 65 78 20 6f 66 20 74 68 65 20 74 65 72 |index of the ter| 00045450 6d 69 6e 61 74 6f 72 2e 0a 0a 4f 6e 20 65 78 69 |minator...On exi| 00045460 74 2c 20 7b 2f 7d 28 73 74 72 69 6e 67 2d 3e 78 |t, {/}(string->x| 00045470 2c 20 73 74 72 69 6e 67 2d 3e 79 29 7b 2f 7d 20 |, string->y){/} | 00045480 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 78 20 6f |contains the x o| 00045490 66 66 73 65 74 20 61 66 74 65 72 20 70 72 69 6e |ffset after prin| 000454a0 74 69 6e 67 20 74 68 65 20 73 74 72 69 6e 67 2e |ting the string.| 000454b0 20 7b 2f 7d 73 74 72 69 6e 67 2d 3e 73 70 6c 69 | {/}string->spli| 000454c0 74 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 74 68 |t{/} contains th| 000454d0 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 70 6c 69 |e number of spli| 000454e0 74 20 63 68 61 72 61 63 74 65 72 73 2c 20 61 6e |t characters, an| 000454f0 64 20 7b 2f 7d 73 74 72 69 6e 67 2d 3e 73 7b 2f |d {/}string->s{/| 00045500 7d 20 61 6e 64 20 7b 2f 7d 73 74 72 69 6e 67 2d |} and {/}string-| 00045510 3e 69 6e 64 65 78 7b 2f 7d 20 61 72 65 20 75 70 |>index{/} are up| 00045520 64 61 74 65 64 20 74 6f 20 70 6f 69 6e 74 20 61 |dated to point a| 00045530 74 20 74 68 65 20 74 65 72 6d 69 6e 61 74 69 6e |t the terminatin| 00045540 67 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 43 6f 6e |g position...Con| 00045550 74 72 6f 6c 20 73 65 71 75 65 6e 63 65 73 20 61 |trol sequences a| 00045560 73 20 69 6e 20 3c 46 6f 6e 74 5f 50 61 69 6e 74 |s in <Font_Paint| 00045570 3e 20 6d 61 79 20 62 65 20 75 73 65 64 2e 00 00 |> may be used...| 00045580 44 41 54 41 c3 02 00 00 66 6f 6e 74 5f 73 74 72 |DATA....font_str| 00045590 77 69 64 74 68 0a 53 79 6e 74 61 78 3a 09 3c 6f |width.Syntax:.<o| 000455a0 73 5f 65 72 72 6f 72 3e 20 2a 66 6f 6e 74 5f 73 |s_error> *font_s| 000455b0 74 72 77 69 64 74 68 20 28 3c 66 6f 6e 74 5f 73 |trwidth (<font_s| 000455c0 74 72 69 6e 67 3e 20 2a 73 74 72 69 6e 67 29 3b |tring> *string);| 000455d0 0a 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 2e 68 |.Header:.<font.h| 000455e0 3d 3e 66 6f 6e 74 5f 68 3e 0a 0a 52 65 74 75 72 |=>font_h>..Retur| 000455f0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00045600 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00045610 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00045620 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 |unction calculat| 00045630 65 73 20 68 6f 77 20 77 69 64 65 20 61 20 73 74 |es how wide a st| 00045640 72 69 6e 67 20 77 6f 75 6c 64 20 62 65 20 75 6e |ring would be un| 00045650 64 65 72 20 6c 69 6d 69 74 73 2e 20 28 73 74 72 |der limits. (str| 00045660 69 6e 67 2d 3e 78 2c 73 74 72 69 6e 67 2d 3e 79 |ing->x,string->y| 00045670 29 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6d |) contains the m| 00045680 61 78 69 6d 75 6d 20 77 69 64 74 68 20 61 6e 64 |aximum width and| 00045690 20 68 65 69 67 68 74 2e 20 7b 2f 7d 73 74 72 69 | height. {/}stri| 000456a0 6e 67 2d 3e 73 70 6c 69 74 7b 2f 7d 20 63 6f 6e |ng->split{/} con| 000456b0 74 61 69 6e 73 20 74 68 65 20 63 68 61 72 61 63 |tains the charac| 000456c0 74 65 72 20 61 74 20 77 68 69 63 68 20 74 6f 20 |ter at which to | 000456d0 73 70 6c 69 74 20 74 68 65 20 73 74 72 69 6e 67 |split the string| 000456e0 20 28 65 67 20 33 32 29 2e 20 7b 2f 7d 73 74 72 | (eg 32). {/}str| 000456f0 69 6e 67 2d 3e 74 65 72 6d 7b 2f 7d 20 63 6f 6e |ing->term{/} con| 00045700 74 61 69 6e 73 20 74 68 65 20 69 6e 64 65 78 20 |tains the index | 00045710 6f 66 20 74 68 65 20 74 65 72 6d 69 6e 61 74 69 |of the terminati| 00045720 6f 6e 2e 0a 0a 4f 6e 20 65 78 69 74 2c 20 28 73 |on...On exit, (s| 00045730 74 72 69 6e 67 2d 3e 78 2c 20 73 74 72 69 6e 67 |tring->x, string| 00045740 2d 3e 79 29 20 63 6f 6e 74 61 69 6e 73 20 74 68 |->y) contains th| 00045750 65 20 78 20 6f 66 66 73 65 74 20 61 66 74 65 72 |e x offset after| 00045760 20 70 72 69 6e 74 69 6e 67 20 74 68 65 20 73 74 | printing the st| 00045770 72 69 6e 67 2e 20 7b 2f 7d 73 74 72 69 6e 67 2d |ring. {/}string-| 00045780 3e 73 70 6c 69 74 7b 2f 7d 20 63 6f 6e 74 61 69 |>split{/} contai| 00045790 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 |ns the number of| 000457a0 20 73 70 6c 69 74 20 63 68 61 72 61 63 74 65 72 | split character| 000457b0 73 2c 20 61 6e 64 20 7b 2f 7d 73 74 72 69 6e 67 |s, and {/}string| 000457c0 2d 3e 73 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 73 74 |->s{/} and {/}st| 000457d0 72 69 6e 67 2d 3e 69 6e 64 65 78 7b 2f 7d 20 61 |ring->index{/} a| 000457e0 72 65 20 75 70 64 61 74 65 64 20 74 6f 20 70 6f |re updated to po| 000457f0 69 6e 74 20 61 74 20 74 68 65 20 74 65 72 6d 69 |int at the termi| 00045800 6e 61 74 69 6e 67 20 70 6f 73 69 74 69 6f 6e 2e |nating position.| 00045810 0a 0a 43 6f 6e 74 72 6f 6c 20 73 65 71 75 65 6e |..Control sequen| 00045820 63 65 73 20 61 73 20 69 6e 20 3c 66 6f 6e 74 5f |ces as in <font_| 00045830 70 61 69 6e 74 3e 20 6d 61 79 20 62 65 20 75 73 |paint> may be us| 00045840 65 64 2e 00 44 41 54 41 a8 00 00 00 66 6f 6e 74 |ed..DATA....font| 00045850 5f 74 68 72 65 73 68 6f 6c 64 0a 54 68 69 73 20 |_threshold.This | 00045860 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 00045870 69 6e 20 3c 66 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 |in <font.h=>font| 00045880 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 |_h>. It is a str| 00045890 75 63 74 75 72 65 20 75 73 65 64 20 66 6f 72 20 |ucture used for | 000458a0 68 6f 6c 64 69 6e 67 20 66 6f 6e 74 20 74 68 72 |holding font thr| 000458b0 65 73 68 6f 6c 64 73 3a 0a 0a 20 20 5c 7b 0a 20 |esholds:.. \{. | 000458c0 20 20 20 63 68 61 72 20 6f 66 66 73 65 74 3b 0a | char offset;.| 000458d0 20 20 20 20 63 68 61 72 20 74 68 72 65 73 68 6f | char thresho| 000458e0 6c 64 73 5b 31 35 5d 3b 0a 20 20 7d 44 41 54 41 |lds[15];. }DATA| 000458f0 af 00 00 00 66 6f 6e 74 5f 74 68 72 65 73 68 6f |....font_thresho| 00045900 6c 64 73 0a 54 68 69 73 20 74 79 70 65 20 69 73 |lds.This type is| 00045910 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 00045920 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f 6e |kLib:Font.h=>Fon| 00045930 74 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 |t>. It is a stru| 00045940 63 74 75 72 65 20 75 73 65 64 20 66 6f 72 20 68 |cture used for h| 00045950 6f 6c 64 69 6e 67 20 66 6f 6e 74 20 74 68 72 65 |olding font thre| 00045960 73 68 6f 6c 64 73 3a 0a 0a 20 20 5c 7b 0a 20 20 |sholds:.. \{. | 00045970 20 20 63 68 61 72 20 6f 66 66 73 65 74 3b 0a 20 | char offset;. | 00045980 20 20 20 63 68 61 72 20 74 68 72 65 73 68 6f 6c | char threshol| 00045990 64 73 5b 31 35 5d 3b 0a 20 20 7d 00 44 41 54 41 |ds[15];. }.DATA| 000459a0 73 01 00 00 54 69 6d 73 4c 69 62 3a 46 6f 6e 74 |s...TimsLib:Font| 000459b0 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |.h.This header d| 000459c0 65 63 6c 61 72 65 73 20 6e 6f 20 66 75 6e 63 74 |eclares no funct| 000459d0 69 6f 6e 73 2c 20 76 61 72 69 61 62 6c 65 73 2c |ions, variables,| 000459e0 20 6d 61 63 72 6f 73 20 6f 72 20 74 79 70 65 73 | macros or types| 000459f0 2e 20 49 6e 73 74 65 61 64 2c 20 69 74 20 3c 23 |. Instead, it <#| 00045a00 75 6e 64 65 66 3d 3e 75 6e 64 65 66 3e 73 20 74 |undef=>undef>s t| 00045a10 68 65 20 46 6f 6e 74 5f 2e 2e 2e 6d 61 63 72 6f |he Font_...macro| 00045a20 73 20 64 65 66 69 6e 65 64 20 62 79 20 44 65 73 |s defined by Des| 00045a30 6b 74 6f 70 20 43 27 73 20 3c 73 77 69 73 2e 68 |ktop C's <swis.h| 00045a40 3d 3e 73 77 69 73 3e 2c 20 61 6e 64 20 74 68 65 |=>swis>, and the| 00045a50 6e 20 23 69 6e 63 6c 75 64 65 73 20 22 3c 44 65 |n #includes "<De| 00045a60 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 3d 3e 46 6f |skLib:Font.h=>Fo| 00045a70 6e 74 3e 22 2e 20 54 68 69 73 20 61 76 6f 69 64 |nt>". This avoid| 00045a80 73 20 63 6c 61 73 68 65 73 20 62 65 74 77 65 65 |s clashes betwee| 00045a90 6e 20 74 68 65 20 46 6f 6e 74 5f 2e 2e 2e 20 6e |n the Font_... n| 00045aa0 61 6d 65 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |ames defined in | 00045ab0 62 6f 74 68 20 68 65 61 64 65 72 73 2e 0a 0a 42 |both headers...B| 00045ac0 61 73 69 63 61 6c 6c 79 2c 20 69 66 20 79 6f 75 |asically, if you| 00045ad0 20 61 72 65 20 75 73 69 6e 67 20 73 77 69 73 2e | are using swis.| 00045ae0 68 2c 20 74 68 65 6e 20 69 6e 63 6c 75 64 65 20 |h, then include | 00045af0 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 |this instead of | 00045b00 44 65 73 6b 4c 69 62 3a 46 6f 6e 74 2e 68 2e 00 |DeskLib:Font.h..| 00045b10 44 41 54 41 11 01 00 00 66 6f 6e 74 6c 69 73 74 |DATA....fontlist| 00045b20 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |.h.This header d| 00045b30 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 00045b40 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 6c |s for creating l| 00045b50 69 6e 6b 65 64 20 6c 69 73 74 73 20 6f 66 20 61 |inked lists of a| 00045b60 6c 6c 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 |ll the available| 00045b70 20 66 6f 6e 74 73 2e 0a 0a 46 75 6e 63 74 69 6f | fonts...Functio| 00045b80 6e 73 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 |ns:.{align centr| 00045b90 65 7d 0a 3c 66 6f 6e 74 6c 69 73 74 5f 6c 69 73 |e}.<fontlist_lis| 00045ba0 74 5f 61 6c 6c 5f 66 6f 6e 74 73 3e 0a 3c 66 6f |t_all_fonts>.<fo| 00045bb0 6e 74 6c 69 73 74 5f 66 72 65 65 5f 66 6f 6e 74 |ntlist_free_font| 00045bc0 5f 74 72 65 65 3e 0a 7b 61 6c 69 67 6e 7d 0a 54 |_tree>.{align}.T| 00045bd0 79 70 65 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 |ype:.{align cent| 00045be0 72 65 7d 0a 3c 66 6f 6e 74 6c 69 73 74 5f 6e 6f |re}.<fontlist_no| 00045bf0 64 65 3e 0a 7b 61 6c 69 67 6e 7d 0a 56 61 72 69 |de>.{align}.Vari| 00045c00 61 62 6c 65 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e |able:.{align cen| 00045c10 74 72 65 7d 0a 3c 66 6f 6e 74 5f 5f 74 72 65 65 |tre}.<font__tree| 00045c20 3e 00 00 00 44 49 52 24 9c 00 00 00 9c 00 00 00 |>...DIR$........| 00045c30 c0 5c 04 00 46 ff ff ff 66 90 ab 24 c2 00 00 00 |.\..F...f..$....| 00045c40 13 00 00 00 00 00 00 00 66 72 65 65 5f 66 6f 6e |........free_fon| 00045c50 74 5f 74 72 65 65 00 00 84 5d 04 00 46 ff ff ff |t_tree...]..F...| 00045c60 36 8a ab 24 17 01 00 00 13 00 00 00 00 00 00 00 |6..$............| 00045c70 6c 69 73 74 5f 61 6c 6c 5f 66 6f 6e 74 73 00 00 |list_all_fonts..| 00045c80 9c 5e 04 00 46 ff ff ff 0b c3 ac 24 06 03 00 00 |.^..F......$....| 00045c90 13 00 00 00 00 00 00 00 6e 6f 64 65 00 00 00 00 |........node....| 00045ca0 a4 61 04 00 46 ff fa ff b8 94 ac 24 ac 0b 00 00 |.a..F......$....| 00045cb0 13 00 00 00 00 00 00 00 53 74 72 75 63 74 44 00 |........StructD.| 00045cc0 44 41 54 41 c2 00 00 00 66 6f 6e 74 6c 69 73 74 |DATA....fontlist| 00045cd0 5f 66 72 65 65 5f 66 6f 6e 74 5f 74 72 65 65 0a |_free_font_tree.| 00045ce0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 66 6f 6e |Syntax:.void fon| 00045cf0 74 6c 69 73 74 5f 66 72 65 65 5f 66 6f 6e 74 5f |tlist_free_font_| 00045d00 74 72 65 65 20 28 3c 66 6f 6e 74 6c 69 73 74 5f |tree (<fontlist_| 00045d10 6e 6f 64 65 3e 20 2a 66 6f 6e 74 5f 74 72 65 65 |node> *font_tree| 00045d20 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 |);.Header:.<font| 00045d30 6c 69 73 74 2e 68 3d 3e 66 6f 6e 74 6c 69 73 74 |list.h=>fontlist| 00045d40 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00045d50 20 72 65 63 75 72 73 69 76 65 6c 79 20 66 72 65 | recursively fre| 00045d60 65 73 20 74 68 65 20 6d 65 6d 6f 72 79 20 75 73 |es the memory us| 00045d70 65 64 20 62 79 20 61 20 66 6f 6e 74 20 74 72 65 |ed by a font tre| 00045d80 65 2e 00 00 44 41 54 41 17 01 00 00 66 6f 6e 74 |e...DATA....font| 00045d90 6c 69 73 74 5f 6c 69 73 74 5f 61 6c 6c 5f 66 6f |list_list_all_fo| 00045da0 6e 74 73 0a 53 79 6e 74 61 78 3a 09 3c 66 6f 6e |nts.Syntax:.<fon| 00045db0 74 6c 69 73 74 5f 6e 6f 64 65 3e 20 2a 66 6f 6e |tlist_node> *fon| 00045dc0 74 6c 69 73 74 5f 6c 69 73 74 5f 61 6c 6c 5f 66 |tlist_list_all_f| 00045dd0 6f 6e 74 73 20 28 3c 42 4f 4f 4c 3e 20 73 79 73 |onts (<BOOL> sys| 00045de0 74 65 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 |tem);.Header:.<f| 00045df0 6f 6e 74 6c 69 73 74 2e 68 3d 3e 66 6f 6e 74 6c |ontlist.h=>fontl| 00045e00 69 73 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ist>..Returns:.P| 00045e10 6f 69 6e 74 65 72 20 74 6f 20 73 74 61 72 74 20 |ointer to start | 00045e20 6f 66 20 66 6f 6e 74 20 74 72 65 65 2e 0a 0a 54 |of font tree...T| 00045e30 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 |his function rea| 00045e40 64 73 20 69 6e 20 74 68 65 20 66 6f 6e 74 20 6c |ds in the font l| 00045e50 69 73 74 20 69 6e 74 6f 20 61 20 66 6f 6e 74 20 |ist into a font | 00045e60 74 72 65 65 2e 20 49 66 20 2f 73 79 73 74 65 6d |tree. If /system| 00045e70 2f 20 69 73 20 3c 54 52 55 45 3e 20 74 68 65 6e |/ is <TRUE> then| 00045e80 20 69 74 20 69 6e 63 6c 75 64 65 73 20 2a 53 79 | it includes *Sy| 00045e90 73 74 65 6d 20 66 6f 6e 74 2a 2e 00 44 41 54 41 |stem font*..DATA| 00045ea0 06 03 00 00 66 6f 6e 74 6c 69 73 74 5f 6e 6f 64 |....fontlist_nod| 00045eb0 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |e.This type is d| 00045ec0 65 66 69 6e 65 64 20 69 6e 20 3c 66 6f 6e 74 6c |efined in <fontl| 00045ed0 69 73 74 2e 68 3d 3e 66 6f 6e 74 6c 69 73 74 3e |ist.h=>fontlist>| 00045ee0 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 |. It contains a | 00045ef0 73 69 6e 67 6c 65 20 70 61 72 74 20 6f 66 20 61 |single part of a| 00045f00 20 66 6f 6e 74 20 74 72 65 65 2e 20 49 74 20 69 | font tree. It i| 00045f10 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 |s defined as the| 00045f20 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 | following struc| 00045f30 74 75 72 65 3a 0a 0a 20 20 20 20 5c 7b 0a 20 20 |ture:.. \{. | 00045f40 20 20 20 20 63 68 61 72 09 6e 61 6d 65 5b 34 30 | char.name[40| 00045f50 5d 3b 0a 20 20 20 20 20 20 66 6f 6e 74 6c 69 73 |];. fontlis| 00045f60 74 5f 6e 6f 64 65 09 2a 73 6f 6e 3b 0a 20 20 20 |t_node.*son;. | 00045f70 20 20 20 66 6f 6e 74 6c 69 73 74 5f 6e 6f 64 65 | fontlist_node| 00045f80 09 2a 62 72 6f 74 68 65 72 3b 0a 20 20 20 20 20 |.*brother;. | 00045f90 20 69 6e 74 09 66 6c 61 67 3b 0a 20 20 20 20 7d | int.flag;. }| 00045fa0 0a 0a 2f 73 6f 6e 2f 20 70 6f 69 6e 74 73 20 74 |../son/ points t| 00045fb0 6f 20 74 68 65 20 73 6f 6e 20 6f 66 20 74 68 69 |o the son of thi| 00045fc0 73 20 6e 6f 64 65 20 65 67 20 74 68 65 20 73 6f |s node eg the so| 00045fd0 6e 20 6f 66 20 2a 54 72 69 6e 69 74 79 2a 20 69 |n of *Trinity* i| 00045fe0 73 20 2a 4d 65 64 69 75 6d 2a 2e 0a 0a 2f 62 72 |s *Medium*.../br| 00045ff0 6f 74 68 65 72 2f 20 70 6f 69 6e 74 73 20 74 68 |other/ points th| 00046000 65 20 62 72 6f 74 68 65 72 20 6f 66 20 74 68 69 |e brother of thi| 00046010 73 20 6e 6f 64 65 20 65 67 20 74 68 65 20 62 72 |s node eg the br| 00046020 6f 74 68 65 72 20 6f 66 20 2a 54 72 69 6e 69 74 |other of *Trinit| 00046030 79 2a 20 6d 69 67 68 74 20 62 65 20 2a 43 6f 72 |y* might be *Cor| 00046040 70 75 73 2a 2c 20 74 68 65 20 62 72 6f 74 68 65 |pus*, the brothe| 00046050 72 20 6f 66 20 2a 4d 65 64 69 75 6d 2a 20 6d 69 |r of *Medium* mi| 00046060 67 68 74 20 62 65 20 2a 42 6f 6c 64 2a 2e 0a 0a |ght be *Bold*...| 00046070 49 66 20 2f 66 6c 61 67 2f 20 69 73 20 54 52 55 |If /flag/ is TRU| 00046080 45 2c 20 74 68 65 6e 20 74 68 69 73 20 69 73 20 |E, then this is | 00046090 61 20 76 61 6c 69 64 20 66 6f 6e 74 2e 20 54 68 |a valid font. Th| 000460a0 69 73 20 77 6f 75 6c 64 20 62 65 20 73 65 74 20 |is would be set | 000460b0 66 6f 72 20 2a 4d 65 64 69 75 6d 2a 20 62 75 74 |for *Medium* but| 000460c0 20 6e 6f 74 20 2a 54 72 69 6e 69 74 79 2a 2e 20 | not *Trinity*. | 000460d0 54 68 65 20 66 6f 6e 74 20 6e 61 6d 65 20 69 73 |The font name is| 000460e0 20 66 6f 75 6e 64 20 62 79 20 61 64 64 69 6e 67 | found by adding| 000460f0 20 74 68 65 20 6e 61 6d 65 73 20 66 72 6f 6d 20 | the names from | 00046100 74 68 65 20 66 69 72 73 74 20 6e 6f 64 65 20 74 |the first node t| 00046110 6f 20 74 68 69 73 20 6f 6e 65 20 65 67 20 7b 2a |o this one eg {*| 00046120 7d 54 72 69 6e 69 74 79 2e 4d 65 64 69 75 6d 7b |}Trinity.Medium{| 00046130 2a 7d 2e 0a 0a 41 20 74 79 70 69 63 61 6c 20 66 |*}...A typical f| 00046140 6f 6e 74 20 73 74 72 75 63 74 75 72 65 20 6d 69 |ont structure mi| 00046150 67 68 74 20 62 65 3a 0a 0a 23 64 72 61 77 20 63 |ght be:..#draw c| 00046160 2c 66 20 66 6f 6e 74 6c 69 73 74 5f 53 74 72 75 |,f fontlist_Stru| 00046170 63 74 44 0a 0a 23 62 65 6c 6f 77 0a 54 68 69 73 |ctD..#below.This| 00046180 20 69 73 20 74 68 65 20 73 74 72 75 63 74 75 72 | is the structur| 00046190 65 20 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 |e described abov| 000461a0 65 2e 00 00 44 41 54 41 ac 0b 00 00 44 72 61 77 |e...DATA....Draw| 000461b0 c9 00 00 00 00 00 00 00 44 72 61 77 20 20 20 20 |........Draw | 000461c0 20 20 20 20 10 88 00 00 c0 8c 00 00 40 7c 02 00 | ........@|..| 000461d0 10 c4 01 00 00 00 00 00 34 00 00 00 01 48 6f 6d |........4....Hom| 000461e0 65 72 74 6f 6e 2e 4d 65 64 69 75 6d 00 03 48 6f |erton.Medium..Ho| 000461f0 6d 65 72 74 6f 6e 2e 4d 65 64 69 75 6d 2e 4f 62 |merton.Medium.Ob| 00046200 6c 69 71 75 65 00 00 00 0b 00 00 00 58 00 00 00 |lique.......X...| 00046210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00046220 00 05 00 00 00 01 00 00 00 00 f0 3f 00 00 00 00 |...........?....| 00046230 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 |................| 00046240 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 |................| 00046250 00 00 00 00 01 00 00 00 80 00 00 00 88 13 00 00 |................| 00046260 06 00 00 00 f0 0a 00 00 10 88 00 00 c0 8c 00 00 |................| 00046270 40 7c 02 00 10 c4 01 00 20 20 20 20 20 20 20 20 |@|...... | 00046280 20 20 20 20 01 00 00 00 3c 00 00 00 b0 cd 00 00 | ....<.......| 00046290 90 b1 01 00 70 0f 01 00 50 c3 01 00 00 00 00 00 |....p...P.......| 000462a0 00 ff ff ff 03 00 00 00 00 1e 00 00 00 1e 00 00 |................| 000462b0 70 cd 00 00 90 b2 01 00 73 6f 6e 73 00 00 00 00 |p.......sons....| 000462c0 01 00 00 00 40 00 00 00 10 88 00 00 90 8b 01 00 |....@...........| 000462d0 50 f7 00 00 10 a3 01 00 00 00 00 00 00 ff ff ff |P...............| 000462e0 03 00 00 00 00 1e 00 00 00 1e 00 00 90 86 00 00 |................| 000462f0 90 8c 01 00 62 72 6f 74 68 65 72 73 00 00 00 00 |....brothers....| 00046300 01 00 00 00 3c 00 00 00 e0 d4 00 00 60 5b 01 00 |....<.......`[..| 00046310 e0 25 01 00 e0 78 01 00 00 00 00 00 00 ff ff ff |.%...x..........| 00046320 01 00 00 00 00 1e 00 00 00 1e 00 00 a0 d4 00 00 |................| 00046330 60 62 01 00 54 72 69 6e 69 74 79 00 01 00 00 00 |`b..Trinity.....| 00046340 3c 00 00 00 a0 d5 00 00 a0 cd 00 00 60 34 01 00 |<...........`4..| 00046350 a0 eb 00 00 00 00 00 00 00 ff ff ff 01 00 00 00 |................| 00046360 00 1e 00 00 00 1e 00 00 a0 d4 00 00 a0 d4 00 00 |................| 00046370 43 6f 72 70 75 73 00 00 01 00 00 00 3c 00 00 00 |Corpus......<...| 00046380 10 88 01 00 60 61 01 00 90 ee 01 00 e0 78 01 00 |....`a.......x..| 00046390 00 00 00 00 00 ff ff ff 01 00 00 00 00 1e 00 00 |................| 000463a0 00 1e 00 00 d0 85 01 00 60 62 01 00 4d 65 64 69 |........`b..Medi| 000463b0 75 6d 00 00 01 00 00 00 3c 00 00 00 10 88 01 00 |um......<.......| 000463c0 a0 d3 00 00 90 ee 01 00 20 eb 00 00 00 00 00 00 |........ .......| 000463d0 00 ff ff ff 01 00 00 00 00 1e 00 00 00 1e 00 00 |................| 000463e0 d0 85 01 00 a0 d4 00 00 4d 65 64 69 75 6d 00 00 |........Medium..| 000463f0 01 00 00 00 3c 00 00 00 10 88 01 00 80 1a 01 00 |....<...........| 00046400 90 c0 01 00 00 32 01 00 00 00 00 00 00 ff ff ff |.....2..........| 00046410 01 00 00 00 00 1e 00 00 00 1e 00 00 d0 85 01 00 |................| 00046420 80 1b 01 00 42 6f 6c 64 00 00 00 00 01 00 00 00 |....Bold........| 00046430 3c 00 00 00 10 88 01 00 c0 8c 00 00 90 c0 01 00 |<...............| 00046440 40 a4 00 00 00 00 00 00 00 ff ff ff 01 00 00 00 |@...............| 00046450 00 1e 00 00 00 1e 00 00 d0 85 01 00 c0 8d 00 00 |................| 00046460 42 6f 6c 64 00 00 00 00 01 00 00 00 3c 00 00 00 |Bold........<...| 00046470 40 41 02 00 60 61 01 00 40 7c 02 00 e0 78 01 00 |@A..`a..@|...x..| 00046480 00 00 00 00 00 ff ff ff 01 00 00 00 00 1e 00 00 |................| 00046490 00 1e 00 00 00 3f 02 00 60 62 01 00 49 74 61 6c |.....?..`b..Ital| 000464a0 69 63 00 00 01 00 00 00 3c 00 00 00 40 41 02 00 |ic......<...@A..| 000464b0 80 1a 01 00 40 7c 02 00 00 32 01 00 00 00 00 00 |....@|...2......| 000464c0 00 ff ff ff 01 00 00 00 00 1e 00 00 00 1e 00 00 |................| 000464d0 00 3f 02 00 80 1b 01 00 49 74 61 6c 69 63 00 00 |.?......Italic..| 000464e0 06 00 00 00 f0 00 00 00 c0 13 01 00 0d b3 01 00 |................| 000464f0 3a 4d 01 00 10 c4 01 00 20 20 20 20 20 20 20 20 |:M...... | 00046500 20 20 20 20 02 00 00 00 60 00 00 00 38 3c 01 00 | ....`...8<..| 00046510 0d b3 01 00 3a 4d 01 00 10 c4 01 00 00 00 00 00 |....:M..........| 00046520 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046530 38 3c 01 00 10 c4 01 00 08 00 00 00 38 3c 01 00 |8<..........8<..| 00046540 0d b3 01 00 08 00 00 00 3a 4d 01 00 8e bb 01 00 |........:M......| 00046550 08 00 00 00 38 3c 01 00 10 c4 01 00 05 00 00 00 |....8<..........| 00046560 00 00 00 00 02 00 00 00 6c 00 00 00 c0 13 01 00 |........l.......| 00046570 fa b7 01 00 92 3c 01 00 c8 be 01 00 00 00 00 00 |.....<..........| 00046580 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046590 c0 13 01 00 c8 be 01 00 08 00 00 00 92 3c 01 00 |.............<..| 000465a0 c8 be 01 00 08 00 00 00 92 3c 01 00 fa b7 01 00 |.........<......| 000465b0 08 00 00 00 c0 13 01 00 fa b7 01 00 08 00 00 00 |................| 000465c0 c0 13 01 00 c8 be 01 00 05 00 00 00 00 00 00 00 |................| 000465d0 06 00 00 00 f0 00 00 00 e8 8a 00 00 dd 4a 01 00 |.............J..| 000465e0 ea 9b 00 00 58 84 01 00 20 20 20 20 20 20 20 20 |....X... | 000465f0 20 20 20 20 02 00 00 00 60 00 00 00 e8 8a 00 00 | ....`.......| 00046600 dd 4a 01 00 ea 9b 00 00 df 5b 01 00 00 00 00 00 |.J.......[......| 00046610 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046620 ea 9b 00 00 df 5b 01 00 08 00 00 00 e8 8a 00 00 |.....[..........| 00046630 df 5b 01 00 08 00 00 00 69 93 00 00 dd 4a 01 00 |.[......i....J..| 00046640 08 00 00 00 ea 9b 00 00 df 5b 01 00 05 00 00 00 |.........[......| 00046650 00 00 00 00 02 00 00 00 6c 00 00 00 d4 8f 00 00 |........l.......| 00046660 84 5b 01 00 a3 96 00 00 58 84 01 00 00 00 00 00 |.[......X.......| 00046670 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046680 a2 96 00 00 58 84 01 00 08 00 00 00 a3 96 00 00 |....X...........| 00046690 85 5b 01 00 08 00 00 00 d5 8f 00 00 84 5b 01 00 |.[...........[..| 000466a0 08 00 00 00 d4 8f 00 00 57 84 01 00 08 00 00 00 |........W.......| 000466b0 a2 96 00 00 58 84 01 00 05 00 00 00 00 00 00 00 |....X...........| 000466c0 06 00 00 00 f0 00 00 00 f0 3e 01 00 cd 64 01 00 |.........>...d..| 000466d0 6a 78 01 00 d0 75 01 00 20 20 20 20 20 20 20 20 |jx...u.. | 000466e0 20 20 20 20 02 00 00 00 60 00 00 00 68 67 01 00 | ....`...hg..| 000466f0 cd 64 01 00 6a 78 01 00 d0 75 01 00 00 00 00 00 |.d..jx...u......| 00046700 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046710 68 67 01 00 d0 75 01 00 08 00 00 00 68 67 01 00 |hg...u......hg..| 00046720 cd 64 01 00 08 00 00 00 6a 78 01 00 4e 6d 01 00 |.d......jx..Nm..| 00046730 08 00 00 00 68 67 01 00 d0 75 01 00 05 00 00 00 |....hg...u......| 00046740 00 00 00 00 02 00 00 00 6c 00 00 00 f0 3e 01 00 |........l....>..| 00046750 ba 69 01 00 c2 67 01 00 88 70 01 00 00 00 00 00 |.i...g...p......| 00046760 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046770 f0 3e 01 00 88 70 01 00 08 00 00 00 c2 67 01 00 |.>...p.......g..| 00046780 88 70 01 00 08 00 00 00 c2 67 01 00 ba 69 01 00 |.p.......g...i..| 00046790 08 00 00 00 f0 3e 01 00 ba 69 01 00 08 00 00 00 |.....>...i......| 000467a0 f0 3e 01 00 88 70 01 00 05 00 00 00 00 00 00 00 |.>...p..........| 000467b0 06 00 00 00 f0 00 00 00 f0 3e 01 00 0d d7 00 00 |.........>......| 000467c0 6a 78 01 00 10 e8 00 00 20 20 20 20 20 20 20 20 |jx...... | 000467d0 20 20 20 20 02 00 00 00 60 00 00 00 68 67 01 00 | ....`...hg..| 000467e0 0d d7 00 00 6a 78 01 00 10 e8 00 00 00 00 00 00 |....jx..........| 000467f0 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046800 68 67 01 00 10 e8 00 00 08 00 00 00 68 67 01 00 |hg..........hg..| 00046810 0d d7 00 00 08 00 00 00 6a 78 01 00 8e df 00 00 |........jx......| 00046820 08 00 00 00 68 67 01 00 10 e8 00 00 05 00 00 00 |....hg..........| 00046830 00 00 00 00 02 00 00 00 6c 00 00 00 f0 3e 01 00 |........l....>..| 00046840 fa db 00 00 c2 67 01 00 c8 e2 00 00 00 00 00 00 |.....g..........| 00046850 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046860 f0 3e 01 00 c8 e2 00 00 08 00 00 00 c2 67 01 00 |.>...........g..| 00046870 c8 e2 00 00 08 00 00 00 c2 67 01 00 fa db 00 00 |.........g......| 00046880 08 00 00 00 f0 3e 01 00 fa db 00 00 08 00 00 00 |.....>..........| 00046890 f0 3e 01 00 c8 e2 00 00 05 00 00 00 00 00 00 00 |.>..............| 000468a0 06 00 00 00 f0 00 00 00 20 f8 01 00 cd 64 01 00 |........ ....d..| 000468b0 9a 31 02 00 d0 75 01 00 20 20 20 20 20 20 20 20 |.1...u.. | 000468c0 20 20 20 20 02 00 00 00 60 00 00 00 98 20 02 00 | ....`.... ..| 000468d0 cd 64 01 00 9a 31 02 00 d0 75 01 00 00 00 00 00 |.d...1...u......| 000468e0 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 000468f0 98 20 02 00 d0 75 01 00 08 00 00 00 98 20 02 00 |. ...u....... ..| 00046900 cd 64 01 00 08 00 00 00 9a 31 02 00 4e 6d 01 00 |.d.......1..Nm..| 00046910 08 00 00 00 98 20 02 00 d0 75 01 00 05 00 00 00 |..... ...u......| 00046920 00 00 00 00 02 00 00 00 6c 00 00 00 20 f8 01 00 |........l... ...| 00046930 ba 69 01 00 f2 20 02 00 88 70 01 00 00 00 00 00 |.i... ...p......| 00046940 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046950 20 f8 01 00 88 70 01 00 08 00 00 00 f2 20 02 00 | ....p....... ..| 00046960 88 70 01 00 08 00 00 00 f2 20 02 00 ba 69 01 00 |.p....... ...i..| 00046970 08 00 00 00 20 f8 01 00 ba 69 01 00 08 00 00 00 |.... ....i......| 00046980 20 f8 01 00 88 70 01 00 05 00 00 00 00 00 00 00 | ....p..........| 00046990 06 00 00 00 f0 00 00 00 20 f8 01 00 ed 1d 01 00 |........ .......| 000469a0 9a 31 02 00 f0 2e 01 00 20 20 20 20 20 20 20 20 |.1...... | 000469b0 20 20 20 20 02 00 00 00 60 00 00 00 98 20 02 00 | ....`.... ..| 000469c0 ed 1d 01 00 9a 31 02 00 f0 2e 01 00 00 00 00 00 |.....1..........| 000469d0 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 000469e0 98 20 02 00 f0 2e 01 00 08 00 00 00 98 20 02 00 |. ........... ..| 000469f0 ed 1d 01 00 08 00 00 00 9a 31 02 00 6e 26 01 00 |.........1..n&..| 00046a00 08 00 00 00 98 20 02 00 f0 2e 01 00 05 00 00 00 |..... ..........| 00046a10 00 00 00 00 02 00 00 00 6c 00 00 00 20 f8 01 00 |........l... ...| 00046a20 da 22 01 00 f2 20 02 00 a8 29 01 00 00 00 00 00 |."... ...)......| 00046a30 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046a40 20 f8 01 00 a8 29 01 00 08 00 00 00 f2 20 02 00 | ....)....... ..| 00046a50 a8 29 01 00 08 00 00 00 f2 20 02 00 da 22 01 00 |.)....... ..."..| 00046a60 08 00 00 00 20 f8 01 00 da 22 01 00 08 00 00 00 |.... ...."......| 00046a70 20 f8 01 00 a8 29 01 00 05 00 00 00 00 00 00 00 | ....)..........| 00046a80 06 00 00 00 f0 00 00 00 f8 82 01 00 6b 36 01 00 |............k6..| 00046a90 2c 8d 01 00 e8 58 01 00 20 20 20 20 20 20 20 20 |,....X.. | 00046aa0 20 20 20 20 02 00 00 00 60 00 00 00 f8 82 01 00 | ....`.......| 00046ab0 6b 36 01 00 2c 8d 01 00 9f 40 01 00 00 00 00 00 |k6..,....@......| 00046ac0 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046ad0 2c 8d 01 00 9f 40 01 00 08 00 00 00 f8 82 01 00 |,....@..........| 00046ae0 9f 40 01 00 08 00 00 00 12 88 01 00 6b 36 01 00 |.@..........k6..| 00046af0 08 00 00 00 2c 8d 01 00 9f 40 01 00 05 00 00 00 |....,....@......| 00046b00 00 00 00 00 02 00 00 00 6c 00 00 00 ec 85 01 00 |........l.......| 00046b10 68 40 01 00 01 8a 01 00 e8 58 01 00 00 00 00 00 |h@.......X......| 00046b20 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046b30 01 8a 01 00 e8 58 01 00 08 00 00 00 01 8a 01 00 |.....X..........| 00046b40 69 40 01 00 08 00 00 00 ec 85 01 00 68 40 01 00 |i@..........h@..| 00046b50 08 00 00 00 ec 85 01 00 e7 58 01 00 08 00 00 00 |.........X......| 00046b60 01 8a 01 00 e8 58 01 00 05 00 00 00 00 00 00 00 |.....X..........| 00046b70 06 00 00 00 f0 00 00 00 f8 82 01 00 ab a8 00 00 |................| 00046b80 2c 8d 01 00 28 cb 00 00 20 20 20 20 20 20 20 20 |,...(... | 00046b90 20 20 20 20 02 00 00 00 60 00 00 00 f8 82 01 00 | ....`.......| 00046ba0 ab a8 00 00 2c 8d 01 00 df b2 00 00 00 00 00 00 |....,...........| 00046bb0 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046bc0 2c 8d 01 00 df b2 00 00 08 00 00 00 f8 82 01 00 |,...............| 00046bd0 df b2 00 00 08 00 00 00 12 88 01 00 ab a8 00 00 |................| 00046be0 08 00 00 00 2c 8d 01 00 df b2 00 00 05 00 00 00 |....,...........| 00046bf0 00 00 00 00 02 00 00 00 6c 00 00 00 ec 85 01 00 |........l.......| 00046c00 a8 b2 00 00 01 8a 01 00 28 cb 00 00 00 00 00 00 |........(.......| 00046c10 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046c20 01 8a 01 00 28 cb 00 00 08 00 00 00 01 8a 01 00 |....(...........| 00046c30 a9 b2 00 00 08 00 00 00 ec 85 01 00 a8 b2 00 00 |................| 00046c40 08 00 00 00 ec 85 01 00 27 cb 00 00 08 00 00 00 |........'.......| 00046c50 01 8a 01 00 28 cb 00 00 05 00 00 00 00 00 00 00 |....(...........| 00046c60 06 00 00 00 f0 00 00 00 c8 d1 00 00 fd 03 01 00 |................| 00046c70 ca e2 00 00 78 3d 01 00 20 20 20 20 20 20 20 20 |....x=.. | 00046c80 20 20 20 20 02 00 00 00 60 00 00 00 c8 d1 00 00 | ....`.......| 00046c90 fd 03 01 00 ca e2 00 00 ff 14 01 00 00 00 00 00 |................| 00046ca0 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046cb0 ca e2 00 00 ff 14 01 00 08 00 00 00 c8 d1 00 00 |................| 00046cc0 ff 14 01 00 08 00 00 00 49 da 00 00 fd 03 01 00 |........I.......| 00046cd0 08 00 00 00 ca e2 00 00 ff 14 01 00 05 00 00 00 |................| 00046ce0 00 00 00 00 02 00 00 00 6c 00 00 00 b4 d6 00 00 |........l.......| 00046cf0 a4 14 01 00 83 dd 00 00 78 3d 01 00 00 00 00 00 |........x=......| 00046d00 00 00 00 00 00 00 00 00 42 00 10 20 02 00 00 00 |........B.. ....| 00046d10 82 dd 00 00 78 3d 01 00 08 00 00 00 83 dd 00 00 |....x=..........| 00046d20 a5 14 01 00 08 00 00 00 b5 d6 00 00 a4 14 01 00 |................| 00046d30 08 00 00 00 b4 d6 00 00 77 3d 01 00 08 00 00 00 |........w=......| 00046d40 82 dd 00 00 78 3d 01 00 05 00 00 00 00 00 00 00 |....x=..........| 00046d50 44 41 54 41 20 01 00 00 66 6f 6e 74 72 65 63 0a |DATA ...fontrec.| 00046d60 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00046d70 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 |ined in <drawfty| 00046d80 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 |pes.h=>drawftype| 00046d90 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 61 70 |s> as a type cap| 00046da0 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 |able of holding | 00046db0 61 20 66 6f 6e 74 20 72 65 63 6f 72 64 20 28 49 |a font record (I| 00046dc0 20 74 68 69 6e 6b 29 2e 20 49 74 20 69 73 20 64 | think). It is d| 00046dd0 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f |efined as the fo| 00046de0 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 |llowing structur| 00046df0 65 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 69 6e 74 |e:.. .\{. . .int| 00046e00 09 74 79 70 65 66 61 63 65 3b 0a 20 09 20 09 69 |.typeface;. . .i| 00046e10 6e 74 09 74 79 70 65 73 69 7a 65 78 3b 0a 20 09 |nt.typesizex;. .| 00046e20 20 09 69 6e 74 09 74 79 70 65 73 69 7a 65 79 3b | .int.typesizey;| 00046e30 0a 20 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 79 |. . .<draw_colty| 00046e40 70 3e 09 74 65 78 74 63 6f 6c 6f 75 72 3b 0a 20 |p>.textcolour;. | 00046e50 09 20 09 3c 64 72 61 77 5f 63 6f 6c 74 79 70 3e |. .<draw_coltyp>| 00046e60 09 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 20 09 7d |.background;. .}| 00046e70 44 41 54 41 a5 01 00 00 66 6f 6e 74 73 65 6c 65 |DATA....fontsele| 00046e80 63 74 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 |ct.h.This header| 00046e90 20 70 72 6f 76 69 64 65 73 20 61 20 63 6f 6e 73 | provides a cons| 00046ea0 69 73 74 65 6e 74 20 69 6e 74 65 72 66 61 63 65 |istent interface| 00046eb0 20 74 6f 20 66 6f 6e 74 20 63 68 6f 6f 73 69 6e | to font choosin| 00046ec0 67 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |g...Functions:..| 00046ed0 23 69 6e 64 65 6e 74 20 33 3b 74 61 62 6c 65 20 |#indent 3;table | 00046ee0 63 6f 6c 75 6d 6e 73 20 32 0a 3c 66 6f 6e 74 73 |columns 2.<fonts| 00046ef0 65 6c 65 63 74 5f 69 6e 69 74 3e 0a 3c 66 6f 6e |elect_init>.<fon| 00046f00 74 73 65 6c 65 63 74 5f 63 6c 6f 73 65 64 6f 77 |tselect_closedow| 00046f10 6e 3e 0a 3c 66 6f 6e 74 73 65 6c 65 63 74 5f 63 |n>.<fontselect_c| 00046f20 6c 6f 73 65 77 69 6e 64 6f 77 73 3e 0a 3c 66 6f |losewindows>.<fo| 00046f30 6e 74 73 65 6c 65 63 74 5f 73 65 6c 65 63 74 6f |ntselect_selecto| 00046f40 72 3e 0a 3c 66 6f 6e 74 73 65 6c 65 63 74 5f 61 |r>.<fontselect_a| 00046f50 74 74 61 63 68 5f 6d 65 6e 75 3e 0a 23 65 6e 64 |ttach_menu>.#end| 00046f60 74 61 62 6c 65 3b 62 65 6c 6f 77 0a 7b 69 6e 64 |table;below.{ind| 00046f70 65 6e 74 7d 0a 4d 61 63 72 6f 73 3a 0a 0a 23 69 |ent}.Macros:..#i| 00046f80 6e 64 65 6e 74 20 34 3b 74 61 62 6c 65 20 63 6f |ndent 4;table co| 00046f90 6c 75 6d 6e 73 20 32 0a 3c 66 6f 6e 74 73 65 6c |lumns 2.<fontsel| 00046fa0 65 63 74 5f 52 45 4f 50 45 4e 3e 0a 3c 66 6f 6e |ect_REOPEN>.<fon| 00046fb0 74 73 65 6c 65 63 74 5f 53 45 54 54 49 54 4c 45 |tselect_SETTITLE| 00046fc0 3e 0a 3c 66 6f 6e 74 73 65 6c 65 63 74 5f 53 45 |>.<fontselect_SE| 00046fd0 54 46 4f 4e 54 3e 0a 23 65 6e 64 74 61 62 6c 65 |TFONT>.#endtable| 00046fe0 3b 62 65 6c 6f 77 0a 7b 69 6e 64 65 6e 74 7d 0a |;below.{indent}.| 00046ff0 54 79 70 65 73 3a 0a 7b 61 6c 69 67 6e 20 63 65 |Types:.{align ce| 00047000 6e 74 72 65 7d 0a 3c 66 6f 6e 74 73 65 6c 65 63 |ntre}.<fontselec| 00047010 74 5f 66 6e 3e 00 00 00 44 49 52 24 40 01 00 00 |t_fn>...DIR$@...| 00047020 40 01 00 00 58 71 04 00 46 ff ff ff 1b 49 ad 24 |@...Xq..F....I.$| 00047030 4d 01 00 00 13 00 00 00 00 00 00 00 61 74 74 61 |M...........atta| 00047040 63 68 5f 6d 65 6e 75 00 a8 72 04 00 46 ff ff ff |ch_menu..r..F...| 00047050 4c 26 ad 24 cd 00 00 00 13 00 00 00 00 00 00 00 |L&.$............| 00047060 63 6c 6f 73 65 64 6f 77 6e 00 00 00 78 73 04 00 |closedown...xs..| 00047070 46 ff ff ff 9c 29 ad 24 bc 00 00 00 13 00 00 00 |F....).$........| 00047080 00 00 00 00 63 6c 6f 73 65 77 69 6e 64 6f 77 73 |....closewindows| 00047090 00 00 00 00 34 74 04 00 46 ff ff ff fd 5e ad 24 |....4t..F....^.$| 000470a0 1a 01 00 00 13 00 00 00 00 00 00 00 66 6e 00 00 |............fn..| 000470b0 50 75 04 00 46 ff ff ff a8 22 ad 24 ce 00 00 00 |Pu..F....".$....| 000470c0 13 00 00 00 00 00 00 00 69 6e 69 74 00 00 00 00 |........init....| 000470d0 20 76 04 00 46 ff ff ff 3d 4e ad 24 66 00 00 00 | v..F...=N.$f...| 000470e0 13 00 00 00 00 00 00 00 52 45 4f 50 45 4e 00 00 |........REOPEN..| 000470f0 88 76 04 00 46 ff ff ff 62 34 ad 24 3c 02 00 00 |.v..F...b4.$<...| 00047100 13 00 00 00 00 00 00 00 73 65 6c 65 63 74 6f 72 |........selector| 00047110 00 00 00 00 c4 78 04 00 46 ff ff ff 88 52 ad 24 |.....x..F....R.$| 00047120 67 00 00 00 13 00 00 00 00 00 00 00 53 45 54 46 |g...........SETF| 00047130 4f 4e 54 00 2c 79 04 00 46 ff ff ff 4e 50 ad 24 |ONT.,y..F...NP.$| 00047140 68 00 00 00 13 00 00 00 00 00 00 00 53 45 54 54 |h...........SETT| 00047150 49 54 4c 45 00 00 00 00 44 41 54 41 4d 01 00 00 |ITLE....DATAM...| 00047160 66 6f 6e 74 73 65 6c 65 63 74 5f 61 74 74 61 63 |fontselect_attac| 00047170 68 5f 6d 65 6e 75 0a 53 79 6e 74 61 78 3a 09 3c |h_menu.Syntax:.<| 00047180 42 4f 4f 4c 3e 20 66 6f 6e 74 73 65 6c 65 63 74 |BOOL> fontselect| 00047190 5f 61 74 74 61 63 68 5f 6d 65 6e 75 20 28 3c 6d |_attach_menu (<m| 000471a0 65 6e 75 3e 20 6d 6e 2c 20 3c 65 76 65 6e 74 5f |enu> mn, <event_| 000471b0 6d 65 6e 75 5f 70 72 6f 63 3e 20 70 72 6f 63 65 |menu_proc> proce| 000471c0 73 73 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 |ss, void *handle| 000471d0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 |);.Header:.<font| 000471e0 73 65 6c 65 63 74 2e 68 3d 3e 66 6f 6e 74 73 65 |select.h=>fontse| 000471f0 6c 65 63 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |lect>..Returns:.| 00047200 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 |<TRUE> if succes| 00047210 73 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |sful...This func| 00047220 74 69 6f 6e 20 61 74 74 61 63 68 65 73 20 61 20 |tion attaches a | 00047230 6d 65 6e 75 20 2f 6d 6e 2f 20 74 6f 20 61 6c 6c |menu /mn/ to all| 00047240 20 66 6f 75 72 20 66 6f 6e 74 20 73 65 6c 65 63 | four font selec| 00047250 74 6f 72 20 77 69 6e 64 6f 77 73 2e 20 2f 70 72 |tor windows. /pr| 00047260 6f 63 65 73 73 2f 20 69 73 20 63 61 6c 6c 65 64 |ocess/ is called| 00047270 20 74 6f 20 68 61 6e 64 6c 65 20 6d 65 6e 75 20 | to handle menu | 00047280 73 65 6c 65 63 74 69 6f 6e 73 20 77 69 74 68 20 |selections with | 00047290 74 68 65 20 73 70 65 63 69 66 69 65 64 20 68 61 |the specified ha| 000472a0 6e 64 6c 65 2e 00 00 00 44 41 54 41 cd 00 00 00 |ndle....DATA....| 000472b0 66 6f 6e 74 73 65 6c 65 63 74 5f 63 6c 6f 73 65 |fontselect_close| 000472c0 64 6f 77 6e 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |down.Syntax:.voi| 000472d0 64 20 66 6f 6e 74 73 65 6c 65 63 74 5f 63 6c 6f |d fontselect_clo| 000472e0 73 65 64 6f 77 6e 20 28 76 6f 69 64 29 3b 0a 48 |sedown (void);.H| 000472f0 65 61 64 65 72 3a 09 3c 66 6f 6e 74 73 65 6c 65 |eader:.<fontsele| 00047300 63 74 2e 68 3d 3e 66 6f 6e 74 73 65 6c 65 63 74 |ct.h=>fontselect| 00047310 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00047320 20 63 6c 6f 73 65 73 20 74 68 65 20 66 6f 6e 74 | closes the font| 00047330 20 73 65 6c 65 63 74 6f 72 20 77 69 6e 64 6f 77 | selector window| 00047340 73 20 61 6e 64 20 66 72 65 65 73 20 61 6c 6c 20 |s and frees all | 00047350 6d 65 6d 6f 72 79 20 75 73 65 64 20 62 79 20 74 |memory used by t| 00047360 68 65 20 66 6f 6e 74 73 65 6c 65 63 74 20 73 79 |he fontselect sy| 00047370 73 74 65 6d 2e 00 00 00 44 41 54 41 bc 00 00 00 |stem....DATA....| 00047380 66 6f 6e 74 73 65 6c 65 63 74 5f 63 6c 6f 73 65 |fontselect_close| 00047390 77 69 6e 64 6f 77 73 0a 53 79 6e 74 61 78 3a 09 |windows.Syntax:.| 000473a0 76 6f 69 64 20 66 6f 6e 74 73 65 6c 65 63 74 5f |void fontselect_| 000473b0 63 6c 6f 73 65 77 69 6e 64 6f 77 73 20 28 76 6f |closewindows (vo| 000473c0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 66 6f |id);.Header:.<fo| 000473d0 6e 74 73 65 6c 65 63 74 2e 68 3d 3e 66 6f 6e 74 |ntselect.h=>font| 000473e0 73 65 6c 65 63 74 3e 0a 0a 54 68 69 73 20 66 75 |select>..This fu| 000473f0 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 73 20 74 68 |nction closes th| 00047400 65 20 66 6f 6e 74 20 73 65 6c 65 63 74 6f 72 20 |e font selector | 00047410 77 69 6e 64 6f 77 73 20 61 6e 64 20 75 6e 61 74 |windows and unat| 00047420 74 61 63 68 65 73 20 61 6e 79 20 68 61 6e 64 6c |taches any handl| 00047430 65 72 73 2e 44 41 54 41 1a 01 00 00 66 6f 6e 74 |ers.DATA....font| 00047440 73 65 6c 65 63 74 5f 66 6e 0a 54 68 69 73 20 74 |select_fn.This t| 00047450 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 00047460 6e 20 3c 66 6f 6e 74 73 65 6c 65 63 74 2e 68 3d |n <fontselect.h=| 00047470 3e 66 6f 6e 74 73 65 6c 65 63 74 3e 2e 20 49 74 |>fontselect>. It| 00047480 20 64 6f 65 73 20 6e 6f 74 20 73 65 65 6d 20 74 | does not seem t| 00047490 6f 20 62 65 20 64 6f 63 75 6d 65 6e 74 65 64 20 |o be documented | 000474a0 61 6e 64 20 49 20 77 6f 6e 64 65 72 20 69 66 20 |and I wonder if | 000474b0 41 63 6f 72 6e 20 6b 6e 6f 77 20 77 68 61 74 20 |Acorn know what | 000474c0 69 74 27 73 20 75 73 65 64 20 66 6f 72 3f 20 49 |it's used for? I| 000474d0 74 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 |t is a function | 000474e0 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 |of the form:..{f| 000474f0 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 00047500 65 7d 3c 42 4f 4f 4c 3e 20 6d 79 66 75 6e 63 20 |e}<BOOL> myfunc | 00047510 28 63 68 61 72 20 2a 6e 61 6d 65 2c 20 64 6f 75 |(char *name, dou| 00047520 62 6c 65 20 77 69 64 74 68 2c 20 64 6f 75 62 6c |ble width, doubl| 00047530 65 20 68 65 69 67 68 74 2c 20 3c 77 69 6d 70 5f |e height, <wimp_| 00047540 65 76 65 6e 74 73 74 72 3e 20 2a 65 29 3b 00 00 |eventstr> *e);..| 00047550 44 41 54 41 ce 00 00 00 66 6f 6e 74 73 65 6c 65 |DATA....fontsele| 00047560 63 74 5f 69 6e 69 74 0a 53 79 6e 74 61 78 3a 09 |ct_init.Syntax:.| 00047570 69 6e 74 20 66 6f 6e 74 73 65 6c 65 63 74 5f 69 |int fontselect_i| 00047580 6e 69 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 |nit (void);.Head| 00047590 65 72 3a 09 3c 66 6f 6e 74 73 65 6c 65 63 74 2e |er:.<fontselect.| 000475a0 68 3d 3e 66 6f 6e 74 73 65 6c 65 63 74 3e 0a 0a |h=>fontselect>..| 000475b0 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 000475c0 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a |if successful...| 000475d0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 000475e0 61 64 73 20 69 6e 20 74 68 65 20 66 6f 6e 74 20 |ads in the font | 000475f0 6c 69 73 74 20 61 6e 64 20 69 6e 69 74 69 61 6c |list and initial| 00047600 69 73 65 73 20 74 68 65 20 66 6f 6e 74 20 73 65 |ises the font se| 00047610 6c 65 63 74 6f 72 20 77 69 6e 64 6f 77 2e 00 00 |lector window...| 00047620 44 41 54 41 66 00 00 00 66 6f 6e 74 73 65 6c 65 |DATAf...fontsele| 00047630 63 74 5f 52 45 4f 50 45 4e 0a 54 68 69 73 20 6d |ct_REOPEN.This m| 00047640 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 00047650 69 6e 20 3c 66 6f 6e 74 73 65 6c 65 63 74 2e 68 |in <fontselect.h| 00047660 3d 3e 66 6f 6e 74 73 65 6c 65 63 74 3e 2e 20 49 |=>fontselect>. I| 00047670 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 |t is defined as | 00047680 30 78 30 30 31 2e 00 00 44 41 54 41 3c 02 00 00 |0x001...DATA<...| 00047690 66 6f 6e 74 73 65 6c 65 63 74 5f 73 65 6c 65 63 |fontselect_selec| 000476a0 74 6f 72 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |tor.Syntax:.int | 000476b0 66 6f 6e 74 73 65 6c 65 63 74 5f 73 65 6c 65 63 |fontselect_selec| 000476c0 74 6f 72 20 28 63 68 61 72 20 2a 74 69 74 6c 65 |tor (char *title| 000476d0 2c 20 69 6e 74 20 66 6c 61 67 73 2c 20 63 68 61 |, int flags, cha| 000476e0 72 20 2a 6e 61 6d 65 2c 20 64 6f 75 62 6c 65 20 |r *name, double | 000476f0 77 69 64 74 68 2c 20 64 6f 75 62 6c 65 20 68 65 |width, double he| 00047700 69 67 68 74 2c 20 3c 66 6f 6e 74 73 65 6c 65 63 |ight, <fontselec| 00047710 74 5f 66 6e 3e 20 75 6b 5f 69 63 6f 6e 29 3b 0a |t_fn> uk_icon);.| 00047720 48 65 61 64 65 72 3a 09 3c 66 6f 6e 74 73 65 6c |Header:.<fontsel| 00047730 65 63 74 2e 68 3d 3e 66 6f 6e 74 73 65 6c 65 63 |ect.h=>fontselec| 00047740 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 57 69 6e |t>..Returns:.Win| 00047750 64 6f 77 20 68 61 6e 64 6c 65 2c 20 6f 72 20 30 |dow handle, or 0| 00047760 20 69 66 20 75 6e 73 75 63 63 65 73 73 66 75 6c | if unsuccessful| 00047770 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00047780 20 6f 70 65 6e 73 20 6f 72 20 72 65 6f 70 65 6e | opens or reopen| 00047790 73 20 74 68 65 20 66 6f 6e 74 20 63 68 6f 6f 73 |s the font choos| 000477a0 65 72 20 77 69 6e 64 6f 77 2e 0a 0a 46 6c 61 67 |er window...Flag| 000477b0 73 3a 7b 74 61 62 7d 0a 8f 09 49 66 20 3c 66 6f |s:{tab}...If <fo| 000477c0 6e 74 73 65 6c 65 63 74 5f 53 45 54 46 4f 4e 54 |ntselect_SETFONT| 000477d0 3e 20 69 73 20 73 65 74 20 74 68 65 6e 20 74 68 |> is set then th| 000477e0 65 20 66 6f 6e 74 20 6e 61 6d 65 2c 20 77 69 64 |e font name, wid| 000477f0 74 68 20 61 6e 64 20 68 65 69 67 68 74 20 61 72 |th and height ar| 00047800 65 20 73 65 74 20 61 70 70 72 6f 70 72 69 61 74 |e set appropriat| 00047810 65 6c 79 2e 0a 8f 09 49 66 20 3c 66 6f 6e 74 73 |ely....If <fonts| 00047820 65 6c 65 63 74 5f 53 45 54 54 49 54 4c 45 3e 20 |elect_SETTITLE> | 00047830 69 73 20 73 65 74 20 74 68 65 6e 20 74 68 65 20 |is set then the | 00047840 74 69 74 6c 65 20 69 73 20 73 65 74 20 61 70 70 |title is set app| 00047850 72 6f 70 72 69 61 74 65 6c 79 2e 0a 8f 09 49 66 |ropriately....If| 00047860 20 3c 66 6f 6e 74 73 65 6c 65 63 74 5f 52 45 4f | <fontselect_REO| 00047870 50 45 4e 3e 20 69 73 20 73 65 74 20 74 68 65 6e |PEN> is set then| 00047880 20 74 68 65 20 77 69 6e 64 6f 77 20 77 69 6c 6c | the window will| 00047890 20 6f 6e 6c 79 20 6f 70 65 6e 20 69 66 20 69 74 | only open if it| 000478a0 20 61 6c 72 65 61 64 79 20 69 73 20 6f 70 65 6e | already is open| 000478b0 20 28 75 73 65 20 66 6f 72 20 75 70 64 61 74 69 | (use for updati| 000478c0 6e 67 29 2e 44 41 54 41 67 00 00 00 66 6f 6e 74 |ng).DATAg...font| 000478d0 73 65 6c 65 63 74 5f 53 45 54 46 4f 4e 54 0a 54 |select_SETFONT.T| 000478e0 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 000478f0 69 6e 65 64 20 69 6e 20 3c 66 6f 6e 74 73 65 6c |ined in <fontsel| 00047900 65 63 74 2e 68 3d 3e 66 6f 6e 74 73 65 6c 65 63 |ect.h=>fontselec| 00047910 74 3e 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |t>. It is define| 00047920 64 20 61 73 20 30 78 30 30 34 2e 00 44 41 54 41 |d as 0x004..DATA| 00047930 68 00 00 00 66 6f 6e 74 73 65 6c 65 63 74 5f 53 |h...fontselect_S| 00047940 45 54 54 49 54 4c 45 0a 54 68 69 73 20 6d 61 63 |ETTITLE.This mac| 00047950 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 00047960 20 3c 66 6f 6e 74 73 65 6c 65 63 74 2e 68 3d 3e | <fontselect.h=>| 00047970 66 6f 6e 74 73 65 6c 65 63 74 3e 2e 20 49 74 20 |fontselect>. It | 00047980 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 30 78 |is defined as 0x| 00047990 30 30 32 2e 44 41 54 41 23 01 00 00 66 6f 70 65 |002.DATA#...fope| 000479a0 6e 0a 53 79 6e 74 61 78 3a 09 3c 46 49 4c 45 3e |n.Syntax:.<FILE>| 000479b0 20 2a 66 6f 70 65 6e 20 28 63 68 61 72 20 2a 66 | *fopen (char *f| 000479c0 69 6c 65 6e 61 6d 65 2c 20 63 68 61 72 20 2a 6d |ilename, char *m| 000479d0 6f 64 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 |ode);.Header:.<s| 000479e0 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a |tdio.h=>stdio>..| 000479f0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00047a00 20 74 6f 20 74 68 65 20 73 74 72 65 61 6d 2c 20 | to the stream, | 00047a10 6f 72 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 |or a null pointe| 00047a20 72 20 69 66 20 74 68 65 20 66 69 6c 65 20 63 61 |r if the file ca| 00047a30 6e 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 2e 0a |nnot be opened..| 00047a40 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 |.This function a| 00047a50 74 74 65 6d 70 74 73 20 74 6f 20 6f 70 65 6e 20 |ttempts to open | 00047a60 74 68 65 20 66 69 6c 65 20 73 70 65 63 69 66 69 |the file specifi| 00047a70 65 64 20 69 6e 20 2f 66 69 6c 65 6e 61 6d 65 2f |ed in /filename/| 00047a80 20 66 6f 72 20 72 61 6e 64 6f 6d 20 61 63 63 65 | for random acce| 00047a90 73 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 |ss according to | 00047aa0 74 68 65 20 3c 6d 6f 64 65 3d 3e 66 69 6c 65 5f |the <mode=>file_| 00047ab0 6d 6f 64 65 5f 3e 2e 00 44 49 52 24 28 00 00 00 |mode_>..DIR$(...| 00047ac0 28 00 00 00 e0 7a 04 00 46 ff ff ff bb 7e c4 22 |(....z..F....~."| 00047ad0 f8 00 00 00 13 00 00 00 00 00 00 00 4d 41 58 00 |............MAX.| 00047ae0 44 41 54 41 f8 00 00 00 46 4f 50 45 4e 5f 4d 41 |DATA....FOPEN_MA| 00047af0 58 0a 23 50 61 72 65 6e 74 20 73 74 64 69 6f 0a |X.#Parent stdio.| 00047b00 54 68 65 20 6d 61 63 72 6f 20 46 4f 50 45 4e 5f |The macro FOPEN_| 00047b10 4d 41 58 20 69 73 20 64 65 66 69 6e 65 64 20 69 |MAX is defined i| 00047b20 6e 20 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 |n <stdio.h=>stdi| 00047b30 6f 3e 20 61 73 20 74 68 65 20 6e 75 6d 62 65 72 |o> as the number| 00047b40 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 63 | of files that c| 00047b50 61 6e 20 62 65 20 6f 70 65 6e 65 64 20 73 69 6d |an be opened sim| 00047b60 75 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 49 74 20 |ultaneously. It | 00047b70 6d 61 79 20 62 65 20 70 6f 73 73 69 62 6c 65 20 |may be possible | 00047b80 74 6f 20 6f 70 65 6e 20 6d 6f 72 65 20 66 69 6c |to open more fil| 00047b90 65 73 20 74 68 61 6e 20 74 68 69 73 20 6e 75 6d |es than this num| 00047ba0 62 65 72 2c 20 62 75 74 20 64 61 74 61 20 6d 61 |ber, but data ma| 00047bb0 79 20 62 65 20 6c 6f 73 74 2e 20 49 6e 20 45 61 |y be lost. In Ea| 00047bc0 73 79 a0 43 20 69 74 20 69 73 20 64 65 66 69 6e |sy.C it is defin| 00047bd0 65 64 20 61 73 20 38 2e 44 41 54 41 29 04 00 00 |ed as 8.DATA)...| 00047be0 66 6f 72 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 |for.This command| 00047bf0 20 64 65 66 69 6e 65 73 20 61 6e 20 69 6e 74 65 | defines an inte| 00047c00 72 61 74 69 76 65 20 6c 6f 6f 70 2e 20 49 74 20 |rative loop. It | 00047c10 68 61 73 20 74 68 65 20 67 65 6e 65 72 61 6c 20 |has the general | 00047c20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c |form:..{fCode;al| 00047c30 69 67 6e 20 63 65 6e 74 72 65 7d 66 6f 72 20 28 |ign centre}for (| 00047c40 5c 3c 69 6e 69 74 3e 3b 20 5c 3c 63 6f 6e 64 3e |\<init>; \<cond>| 00047c50 3b 20 5c 3c 69 74 65 72 3e 29 20 5c 3c 73 74 61 |; \<iter>) \<sta| 00047c60 74 65 6d 65 6e 74 3e 3b 7b 66 3b 61 6c 69 67 6e |tement>;{f;align| 00047c70 7d 0a 0a 5c 3c 69 6e 69 74 3e 09 69 73 20 61 6e |}..\<init>.is an| 00047c80 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20 | initialisation | 00047c90 73 74 61 74 65 6d 65 6e 74 2e 20 49 74 20 69 73 |statement. It is| 00047ca0 20 63 61 6c 6c 65 64 20 6f 6e 63 65 20 77 68 65 | called once whe| 00047cb0 6e 20 74 68 65 20 66 6f 72 20 73 74 61 74 65 6d |n the for statem| 00047cc0 65 6e 74 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 |ent is encounter| 00047cd0 65 64 2e 20 4d 6f 72 65 20 74 68 61 6e 20 6f 6e |ed. More than on| 00047ce0 65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 |e statement can | 00047cf0 62 65 20 75 73 65 64 2c 20 73 65 70 61 72 61 74 |be used, separat| 00047d00 65 64 20 62 79 20 63 6f 6d 6d 61 73 2e 0a 0a 5c |ed by commas...\| 00047d10 3c 63 6f 6e 64 3e 09 69 73 20 61 20 63 6f 6e 64 |<cond>.is a cond| 00047d20 69 74 69 6f 6e 2e 20 49 74 20 69 73 20 65 76 61 |ition. It is eva| 00047d30 6c 75 61 74 65 64 20 65 61 63 68 20 74 69 6d 65 |luated each time| 00047d40 20 62 65 66 6f 72 65 20 65 78 65 63 75 74 69 6e | before executin| 00047d50 67 20 74 68 65 20 5c 3c 73 74 61 74 65 6d 65 6e |g the \<statemen| 00047d60 74 3e 2e 20 49 66 20 69 74 20 65 76 61 6c 75 61 |t>. If it evalua| 00047d70 74 65 73 20 74 6f 20 30 2c 20 6f 72 20 66 61 6c |tes to 0, or fal| 00047d80 73 65 2c 20 74 68 65 6e 20 74 68 65 20 5c 3c 73 |se, then the \<s| 00047d90 74 61 74 65 6d 65 6e 74 3e 20 69 73 20 6e 6f 74 |tatement> is not| 00047da0 20 65 78 65 63 75 74 65 64 20 61 6e 64 20 74 68 | executed and th| 00047db0 65 20 6e 65 78 74 20 63 6f 6d 6d 61 6e 64 20 69 |e next command i| 00047dc0 73 20 65 78 65 63 75 74 65 64 20 2d 20 74 68 65 |s executed - the| 00047dd0 20 66 6f 72 20 6c 6f 6f 70 20 69 73 20 66 69 6e | for loop is fin| 00047de0 69 73 68 65 64 2e 0a 0a 5c 3c 69 74 65 72 3e 09 |ished...\<iter>.| 00047df0 69 73 20 65 78 65 63 75 74 65 64 20 61 66 74 65 |is executed afte| 00047e00 72 20 65 61 63 68 20 74 69 6d 65 20 74 68 65 20 |r each time the | 00047e10 6c 6f 6f 70 20 69 73 20 65 78 65 63 75 74 65 64 |loop is executed| 00047e20 2e 20 4d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 |. More than one | 00047e30 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 62 65 |statement can be| 00047e40 20 75 73 65 64 2c 20 73 65 70 61 72 61 74 65 64 | used, separated| 00047e50 20 62 79 20 63 6f 6d 6d 61 73 2e 0a 0a 5c 3c 73 | by commas...\<s| 00047e60 74 61 74 65 6d 65 6e 74 3e 09 69 73 20 74 68 65 |tatement>.is the| 00047e70 20 63 6f 6d 6d 61 6e 64 20 65 78 65 63 75 74 65 | command execute| 00047e80 64 20 77 69 74 68 69 6e 20 74 68 65 20 6c 6f 6f |d within the loo| 00047e90 70 2e 20 49 74 20 63 61 6e 20 62 65 20 61 20 63 |p. It can be a c| 00047ea0 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e |ompound statemen| 00047eb0 74 20 69 65 20 73 65 76 65 72 61 6c 20 73 74 61 |t ie several sta| 00047ec0 74 65 6d 65 6e 74 73 20 65 6e 63 6c 6f 73 65 64 |tements enclosed| 00047ed0 20 69 6e 20 62 72 61 63 65 73 20 5c 7b 7d 20 28 | in braces \{} (| 00047ee0 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 |in which case th| 00047ef0 65 72 65 20 69 73 20 6e 6f 20 66 69 6e 61 6c 20 |ere is no final | 00047f00 73 65 6d 69 63 6f 6c 6f 6e 29 2c 20 6f 72 20 69 |semicolon), or i| 00047f10 74 20 63 61 6e 20 62 65 20 6e 6f 74 68 69 6e 67 |t can be nothing| 00047f20 20 69 65 20 61 6c 6c 20 74 68 65 20 77 6f 72 6b | ie all the work| 00047f30 20 69 73 20 64 6f 6e 65 20 69 6e 20 74 68 65 20 | is done in the | 00047f40 66 6f 72 20 73 74 61 74 65 6d 65 6e 74 2e 0a 0a |for statement...| 00047f50 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 74 |As an example, t| 00047f60 68 69 73 20 6c 6f 6f 70 20 63 6f 75 6e 74 73 20 |his loop counts | 00047f70 66 72 6f 6d 20 31 20 74 6f 20 31 30 2c 20 70 72 |from 1 to 10, pr| 00047f80 69 6e 74 69 6e 67 20 65 61 63 68 20 6e 75 6d 62 |inting each numb| 00047f90 65 72 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 |er:..{fCode;alig| 00047fa0 6e 20 63 65 6e 74 72 65 7d 66 6f 72 20 28 69 3d |n centre}for (i=| 00047fb0 31 3b 69 5c 3c 3d 31 30 3b 69 2b 2b 29 20 3c 70 |1;i\<=10;i++) <p| 00047fc0 72 69 6e 74 66 3e 28 22 25 64 5c 6e 22 2c 69 29 |rintf>("%d\n",i)| 00047fd0 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 4d 75 63 68 |;{f;align}..Much| 00047fe0 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 6c 6f | more complex lo| 00047ff0 6f 70 73 20 61 72 65 20 70 6f 73 73 69 62 6c 65 |ops are possible| 00048000 21 00 00 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |!...DIR$,...,...| 00048010 30 80 04 00 46 fd ff ff 32 da c2 22 eb 00 00 00 |0...F...2.."....| 00048020 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 00048030 44 41 54 41 eb 00 00 00 46 6f 72 6d 61 74 74 65 |DATA....Formatte| 00048040 64 20 49 2f 4f 20 46 75 6e 63 74 69 6f 6e 73 0a |d I/O Functions.| 00048050 23 50 61 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 |#Parent stdio.Th| 00048060 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 |ese functions re| 00048070 61 64 20 61 6e 64 20 77 72 69 74 65 2c 20 66 72 |ad and write, fr| 00048080 6f 6d 20 61 6e 79 20 73 74 72 65 61 6d 2c 20 66 |om any stream, f| 00048090 6f 72 6d 61 74 74 65 64 20 73 65 71 75 65 6e 63 |ormatted sequenc| 000480a0 65 73 20 6f 66 20 76 61 6c 75 65 73 2e 0a 0a 23 |es of values...#| 000480b0 54 61 62 6c 65 20 33 20 31 36 0a 3c 70 72 69 6e |Table 3 16.<prin| 000480c0 74 66 3e 0a 3c 66 70 72 69 6e 74 66 3e 0a 3c 73 |tf>.<fprintf>.<s| 000480d0 70 72 69 6e 74 66 3e 0a 3c 73 63 61 6e 66 3e 0a |printf>.<scanf>.| 000480e0 3c 66 73 63 61 6e 66 3e 0a 3c 73 73 63 61 6e 66 |<fscanf>.<sscanf| 000480f0 3e 0a 3c 76 66 70 72 69 6e 74 66 3e 0a 3c 76 70 |>.<vfprintf>.<vp| 00048100 72 69 6e 74 66 3e 0a 3c 76 73 70 72 69 6e 74 66 |rintf>.<vsprintf| 00048110 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 49 52 24 |>.#EndTable.DIR$| 00048120 28 00 00 00 28 00 00 00 44 81 04 00 46 ff ff ff |(...(...D...F...| 00048130 f8 af c4 22 9f 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00048140 74 00 00 00 44 41 54 41 9f 00 00 00 66 70 6f 73 |t...DATA....fpos| 00048150 5f 74 0a 54 68 65 20 74 79 70 65 20 7b 2f 7d 66 |_t.The type {/}f| 00048160 70 6f 73 5f 74 7b 2f 7d 20 69 73 20 64 65 66 69 |pos_t{/} is defi| 00048170 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 3d |ned in <stdio.h=| 00048180 3e 73 74 64 69 6f 3e 20 61 73 20 61 6e 20 6f 62 |>stdio> as an ob| 00048190 6a 65 63 74 20 63 61 70 61 62 6c 65 20 6f 66 20 |ject capable of | 000481a0 68 6f 6c 64 69 6e 67 20 61 6e 79 20 66 69 6c 65 |holding any file| 000481b0 20 70 6f 73 69 74 69 6f 6e 2e 20 49 6e 20 45 61 | position. In Ea| 000481c0 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 6e |sy C it is defin| 000481d0 65 64 20 61 73 20 61 20 2f 6c 6f 6e 67 20 69 6e |ed as a /long in| 000481e0 74 2f 2e 00 44 41 54 41 7d 01 00 00 66 70 72 69 |t/..DATA}...fpri| 000481f0 6e 74 66 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |ntf.Syntax:.int | 00048200 66 70 72 69 6e 74 66 20 28 3c 46 49 4c 45 3e 20 |fprintf (<FILE> | 00048210 2a 73 74 72 65 61 6d 2c 20 63 68 61 72 20 2a 66 |*stream, char *f| 00048220 6f 72 6d 61 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 |ormat, ...);.Hea| 00048230 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 00048240 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tdio>..Returns:.| 00048250 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 |The number of ch| 00048260 61 72 61 63 74 65 72 73 20 77 72 69 74 74 65 6e |aracters written| 00048270 2c 20 6f 72 20 61 20 6e 65 67 61 74 69 76 65 20 |, or a negative | 00048280 76 61 6c 75 65 20 69 66 20 74 68 65 72 65 20 77 |value if there w| 00048290 61 73 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 |as an error...Th| 000482a0 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 |is function writ| 000482b0 65 73 20 6f 75 74 70 75 74 20 74 6f 20 74 68 65 |es output to the| 000482c0 20 73 74 72 65 61 6d 20 75 6e 64 65 72 20 63 6f | stream under co| 000482d0 6e 74 72 6f 6c 20 6f 66 20 74 68 65 20 3c 66 6f |ntrol of the <fo| 000482e0 72 6d 61 74 20 73 74 72 69 6e 67 3d 3e 70 66 6f |rmat string=>pfo| 000482f0 72 6d 5f 3e 2e 20 49 66 20 74 68 65 72 65 20 61 |rm_>. If there a| 00048300 72 65 20 6d 6f 72 65 20 61 72 67 75 6d 65 6e 74 |re more argument| 00048310 73 20 74 68 61 6e 20 63 6f 6e 76 65 72 73 69 6f |s than conversio| 00048320 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 |n specifications| 00048330 2c 20 74 68 65 20 65 78 74 72 61 20 61 72 67 75 |, the extra argu| 00048340 6d 65 6e 74 73 20 61 72 65 20 65 76 61 6c 75 61 |ments are evalua| 00048350 74 65 64 20 62 75 74 20 6e 6f 74 20 75 73 65 64 |ted but not used| 00048360 2e 00 00 00 44 41 54 41 c1 00 00 00 66 70 75 74 |....DATA....fput| 00048370 63 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 66 70 |c.Syntax:.int fp| 00048380 75 74 63 20 28 69 6e 74 20 63 2c 20 3c 46 49 4c |utc (int c, <FIL| 00048390 45 3e 20 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 |E> *stream);.Hea| 000483a0 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 000483b0 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tdio>..Returns:.| 000483c0 63 2c 20 6f 72 20 3c 45 4f 46 3e 20 69 66 20 74 |c, or <EOF> if t| 000483d0 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f 72 |here is an error| 000483e0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000483f0 20 77 72 69 74 65 73 20 74 68 65 20 63 68 61 72 | writes the char| 00048400 61 63 74 65 72 20 69 6e 20 2f 63 2f 20 74 6f 20 |acter in /c/ to | 00048410 74 68 65 20 73 74 72 65 61 6d 20 73 70 65 63 69 |the stream speci| 00048420 66 69 65 64 2e 00 00 00 44 41 54 41 ed 00 00 00 |fied....DATA....| 00048430 66 70 75 74 73 0a 53 79 6e 74 61 78 3a 09 69 6e |fputs.Syntax:.in| 00048440 74 20 66 70 75 74 73 20 28 63 68 61 72 20 2a 73 |t fputs (char *s| 00048450 74 72 2c 20 3c 46 49 4c 45 3e 20 2a 73 74 72 65 |tr, <FILE> *stre| 00048460 61 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 |am);.Header:.<st| 00048470 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 |dio.h=>stdio>..R| 00048480 65 74 75 72 6e 73 3a 09 3c 45 4f 46 3e 20 69 66 |eturns:.<EOF> if| 00048490 20 74 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 | there is an err| 000484a0 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |or...This functi| 000484b0 6f 6e 20 77 72 69 74 65 73 20 74 68 65 20 73 74 |on writes the st| 000484c0 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 |ring pointed to | 000484d0 62 79 20 2f 73 74 72 2f 20 74 6f 20 74 68 65 20 |by /str/ to the | 000484e0 73 74 72 65 61 6d 20 73 70 65 63 69 66 69 65 64 |stream specified| 000484f0 2e 20 54 68 65 20 6e 75 6c 6c 20 74 65 72 6d 69 |. The null termi| 00048500 6e 61 74 6f 72 20 69 73 20 6e 6f 74 20 77 72 69 |nator is not wri| 00048510 74 74 65 6e 2e 00 00 00 44 41 54 41 33 01 00 00 |tten....DATA3...| 00048520 66 72 65 61 64 0a 53 79 6e 74 61 78 3a 09 3c 73 |fread.Syntax:.<s| 00048530 69 7a 65 5f 74 3e 20 66 72 65 61 64 20 28 76 6f |ize_t> fread (vo| 00048540 69 64 20 2a 70 74 72 2c 20 73 69 7a 65 5f 74 20 |id *ptr, size_t | 00048550 73 69 7a 65 2c 20 73 69 7a 65 5f 74 20 6e 6f 62 |size, size_t nob| 00048560 6a 2c 20 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 |j, <FILE> *strea| 00048570 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |m);.Header:.<std| 00048580 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 |io.h=>stdio>..Re| 00048590 74 75 72 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 |turns:.The numbe| 000485a0 72 20 6f 66 20 6f 62 6a 65 63 74 73 20 73 75 63 |r of objects suc| 000485b0 63 65 73 73 66 75 6c 6c 79 20 72 65 61 64 2e 0a |cessfully read..| 000485c0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000485d0 65 61 64 73 20 2f 6e 6f 62 6a 2f 20 6f 62 6a 65 |eads /nobj/ obje| 000485e0 63 74 73 20 6f 66 20 73 69 7a 65 20 73 70 65 63 |cts of size spec| 000485f0 69 66 69 65 64 20 62 79 20 2f 73 69 7a 65 2f 20 |ified by /size/ | 00048600 69 6e 74 6f 20 74 68 65 20 61 72 72 61 79 20 70 |into the array p| 00048610 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 70 74 |ointed to by /pt| 00048620 72 2f 2c 20 66 72 6f 6d 20 74 68 65 20 73 74 72 |r/, from the str| 00048630 65 61 6d 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |eam pointed to b| 00048640 79 20 2f 73 74 72 65 61 6d 2f 2e 00 44 41 54 41 |y /stream/..DATA| 00048650 db 00 00 00 66 72 65 65 0a 53 79 6e 74 61 78 3a |....free.Syntax:| 00048660 09 76 6f 69 64 20 66 72 65 65 20 28 76 6f 69 64 |.void free (void| 00048670 20 2a 70 74 72 29 3b 0a 48 65 61 64 65 72 3a 09 | *ptr);.Header:.| 00048680 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 |<stdlib.h=>stdli| 00048690 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |b>..This functio| 000486a0 6e 20 66 72 65 65 73 20 6d 65 6d 6f 72 79 20 61 |n frees memory a| 000486b0 6c 6c 6f 63 61 74 65 64 20 62 79 20 65 69 74 68 |llocated by eith| 000486c0 65 72 20 3c 63 61 6c 6c 6f 63 3e 2c 20 3c 6d 61 |er <calloc>, <ma| 000486d0 6c 6c 6f 63 3e 20 6f 72 20 3c 72 65 61 6c 6c 6f |lloc> or <reallo| 000486e0 63 3e 2e 20 54 68 69 73 20 6d 65 6d 6f 72 79 20 |c>. This memory | 000486f0 63 61 6e 20 74 68 65 6e 20 62 65 20 72 65 2d 75 |can then be re-u| 00048700 73 65 64 20 6f 6e 20 61 6e 6f 74 68 65 72 20 6f |sed on another o| 00048710 63 63 61 73 69 6f 6e 20 62 79 20 74 68 65 20 70 |ccasion by the p| 00048720 72 6f 67 72 61 6d 2e 00 44 41 54 41 7e 01 00 00 |rogram..DATA~...| 00048730 46 72 65 65 44 62 75 67 0a 53 79 6e 74 61 78 3a |FreeDbug.Syntax:| 00048740 09 76 6f 69 64 20 46 72 65 65 44 62 75 67 20 28 |.void FreeDbug (| 00048750 76 6f 69 64 20 2a 70 2c 63 68 61 72 20 2a 66 69 |void *p,char *fi| 00048760 6c 65 6e 61 6d 65 2c 20 69 6e 74 20 6c 69 6e 65 |lename, int line| 00048770 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 00048780 4c 69 62 3a 4d 61 6c 6c 6f 63 44 62 75 67 2e 68 |Lib:MallocDbug.h| 00048790 3d 3e 4d 61 6c 6c 6f 63 44 62 75 67 3e 0a 0a 54 |=>MallocDbug>..T| 000487a0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 000487b0 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c 66 72 |identical to <fr| 000487c0 65 65 3e 28 29 2c 20 62 75 74 20 72 65 6d 65 6d |ee>(), but remem| 000487d0 62 65 72 73 20 74 68 65 20 66 69 6c 65 20 61 6e |bers the file an| 000487e0 64 20 6c 69 6e 65 20 61 74 20 77 68 69 63 68 20 |d line at which | 000487f0 74 68 65 20 63 61 6c 6c 20 6f 63 63 75 72 72 65 |the call occurre| 00048800 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |d...This functio| 00048810 6e 20 77 69 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 |n will normally | 00048820 62 65 20 63 61 6c 6c 65 64 20 74 72 61 6e 73 70 |be called transp| 00048830 61 72 65 6e 74 6c 79 2e 20 54 68 65 20 6d 61 63 |arently. The mac| 00048840 72 6f 20 7b 2a 7d 66 72 65 65 64 62 75 67 7b 2a |ro {*}freedbug{*| 00048850 7d 20 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 |} is defined to | 00048860 63 61 6c 6c 20 74 68 69 73 20 66 75 6e 63 74 69 |call this functi| 00048870 6f 6e 20 69 6e 20 64 65 62 75 67 20 62 75 69 6c |on in debug buil| 00048880 64 73 2c 20 61 6e 64 20 6e 6f 72 6d 61 6c 20 66 |ds, and normal f| 00048890 72 65 65 20 69 6e 20 72 65 6c 65 61 73 65 20 62 |ree in release b| 000488a0 75 69 6c 64 73 2e 00 00 44 41 54 41 19 01 00 00 |uilds...DATA....| 000488b0 66 72 65 65 70 72 6f 63 0a 54 68 65 20 74 79 70 |freeproc.The typ| 000488c0 65 20 2a 66 72 65 65 70 72 6f 63 2a 20 69 73 20 |e *freeproc* is | 000488d0 64 65 66 69 6e 65 64 20 69 6e 20 3c 6b 65 72 6e |defined in <kern| 000488e0 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c 3e 20 61 73 |el.h=>kernel> as| 000488f0 20 61 20 70 72 6f 63 65 64 75 72 65 20 77 68 69 | a procedure whi| 00048900 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 |ch can be used t| 00048910 6f 20 66 72 65 65 20 6d 65 6d 6f 72 79 20 61 6c |o free memory al| 00048920 6c 6f 63 61 74 65 64 20 62 79 20 61 6e 20 3c 61 |located by an <a| 00048930 6c 6c 6f 63 70 72 6f 63 3e 2e 20 49 74 20 69 73 |llocproc>. It is| 00048940 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a 7b 66 | defined as:..{f| 00048950 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 00048960 65 7d 76 6f 69 64 20 66 72 65 65 70 72 6f 63 20 |e}void freeproc | 00048970 28 76 6f 69 64 20 2a 29 3b 7b 66 3b 61 6c 69 67 |(void *);{f;alig| 00048980 6e 7d 0a 0a 54 68 65 20 70 61 72 61 6d 65 74 65 |n}..The paramete| 00048990 72 20 70 61 73 73 65 64 20 69 73 20 74 68 65 20 |r passed is the | 000489a0 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 73 |pointer to the s| 000489b0 70 61 63 65 20 74 6f 20 62 65 20 66 72 65 65 64 |pace to be freed| 000489c0 2e 00 00 00 44 41 54 41 ad 01 00 00 66 72 65 6f |....DATA....freo| 000489d0 70 65 6e 0a 53 79 6e 74 61 78 3a 09 3c 46 49 4c |pen.Syntax:.<FIL| 000489e0 45 3e 20 2a 66 72 65 6f 70 65 6e 20 28 63 68 61 |E> *freopen (cha| 000489f0 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 63 68 61 |r *filename, cha| 00048a00 72 20 2a 6d 6f 64 65 2c 20 46 49 4c 45 20 2a 73 |r *mode, FILE *s| 00048a10 74 72 65 61 6d 29 3b 0a 48 65 61 64 65 72 3a 09 |tream);.Header:.| 00048a20 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e |<stdio.h=>stdio>| 00048a30 0a 0a 52 65 74 75 72 6e 73 3a 09 41 20 6e 75 6c |..Returns:.A nul| 00048a40 6c 20 70 6f 69 6e 74 65 72 20 69 66 20 69 74 20 |l pointer if it | 00048a50 66 61 69 6c 73 2c 20 6f 74 68 65 72 77 69 73 65 |fails, otherwise| 00048a60 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 | a pointer to th| 00048a70 65 20 73 61 6d 65 20 73 74 72 65 61 6d 2e 0a 0a |e same stream...| 00048a80 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6f 70 |This function op| 00048a90 65 6e 73 20 74 68 65 20 66 69 6c 65 20 73 70 65 |ens the file spe| 00048aa0 63 69 66 69 65 64 20 69 6e 20 2f 66 69 6c 65 6e |cified in /filen| 00048ab0 61 6d 65 2f 2c 20 61 63 63 6f 72 64 69 6e 67 20 |ame/, according | 00048ac0 74 6f 20 74 68 65 20 3c 6d 6f 64 65 3d 3e 66 69 |to the <mode=>fi| 00048ad0 6c 65 5f 6d 6f 64 65 5f 3e 2c 20 66 69 72 73 74 |le_mode_>, first| 00048ae0 20 63 6c 6f 73 69 6e 67 20 74 68 65 20 66 69 6c | closing the fil| 00048af0 65 20 70 72 65 76 69 6f 75 73 6c 79 20 61 73 73 |e previously ass| 00048b00 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 61 |ociated with tha| 00048b10 74 20 73 74 72 65 61 6d 2e 20 49 66 20 74 68 65 |t stream. If the| 00048b20 20 66 69 6c 65 20 63 61 6e 6e 6f 74 20 62 65 20 | file cannot be | 00048b30 63 6c 6f 73 65 64 20 70 72 6f 70 65 72 6c 79 20 |closed properly | 00048b40 69 74 20 69 73 20 61 62 61 6e 64 6f 6e 65 64 20 |it is abandoned | 00048b50 61 6e 64 20 74 68 65 20 6e 65 77 20 66 69 6c 65 |and the new file| 00048b60 20 69 73 20 73 74 69 6c 6c 20 6f 70 65 6e 65 64 | is still opened| 00048b70 2e 00 00 00 44 41 54 41 46 01 00 00 66 72 65 78 |....DATAF...frex| 00048b80 70 0a 53 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 |p.Syntax:.double| 00048b90 20 66 72 65 78 70 20 28 64 6f 75 62 6c 65 20 78 | frexp (double x| 00048ba0 2c 20 69 6e 74 20 2a 65 78 70 29 3b 0a 48 65 61 |, int *exp);.Hea| 00048bb0 64 65 72 3a 09 3c 6d 61 74 68 2e 68 3d 3e 6d 61 |der:.<math.h=>ma| 00048bc0 74 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 79 2c |th>..Returns:.y,| 00048bd0 20 77 68 65 72 65 20 78 20 3d 20 79 20 2a 20 28 | where x = y * (| 00048be0 31 20 5c 3c 5c 3c 20 2a 65 78 70 29 2e 0a 0a 54 |1 \<\< *exp)...T| 00048bf0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 70 6c |his function spl| 00048c00 69 74 73 20 74 68 65 20 76 61 6c 75 65 20 78 20 |its the value x | 00048c10 69 6e 74 6f 20 61 20 6e 6f 72 6d 61 6c 69 73 65 |into a normalise| 00048c20 64 20 66 72 61 63 74 69 6f 6e 20 28 74 68 65 20 |d fraction (the | 00048c30 72 65 73 75 6c 74 2c 20 79 29 20 61 6e 64 20 61 |result, y) and a| 00048c40 20 70 6f 77 65 72 20 6f 66 20 74 77 6f 20 28 73 | power of two (s| 00048c50 74 6f 72 65 64 20 69 6e 20 74 68 65 20 69 6e 74 |tored in the int| 00048c60 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 65 | pointed to by e| 00048c70 78 70 29 2e 20 49 66 20 78 20 69 73 20 7a 65 72 |xp). If x is zer| 00048c80 6f 20 74 68 65 6e 20 62 6f 74 68 20 2a 65 78 70 |o then both *exp| 00048c90 20 61 6e 64 20 79 20 77 69 6c 6c 20 62 65 20 7a | and y will be z| 00048ca0 65 72 6f 2c 20 65 6c 73 65 20 30 2e 35 20 5c 3c |ero, else 0.5 \<| 00048cb0 20 79 20 5c 3c 20 31 2e 30 2e 00 00 44 41 54 41 | y \< 1.0...DATA| 00048cc0 c1 01 00 00 66 73 63 61 6e 66 0a 53 79 6e 74 61 |....fscanf.Synta| 00048cd0 78 3a 09 69 6e 74 20 66 73 63 61 6e 66 20 28 3c |x:.int fscanf (<| 00048ce0 46 49 4c 45 3e 20 2a 73 74 72 65 61 6d 2c 20 63 |FILE> *stream, c| 00048cf0 68 61 72 20 2a 66 6f 72 6d 61 74 2c 20 2e 2e 2e |har *format, ...| 00048d00 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 |);.Header:.<stdi| 00048d10 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 |o.h=>stdio>..Ret| 00048d20 75 72 6e 73 3a 09 4e 75 6d 62 65 72 20 6f 66 20 |urns:.Number of | 00048d30 73 75 63 63 65 73 73 66 75 6c 20 69 6e 70 75 74 |successful input| 00048d40 73 2c 20 6f 72 20 3c 45 4f 46 3e 20 69 66 20 74 |s, or <EOF> if t| 00048d50 68 65 72 65 20 77 61 73 20 61 6e 20 69 6e 70 75 |here was an inpu| 00048d60 74 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 |t error...This f| 00048d70 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 69 6e |unction reads in| 00048d80 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73 74 72 |put from the str| 00048d90 65 61 6d 20 75 6e 64 65 72 20 63 6f 6e 74 72 6f |eam under contro| 00048da0 6c 20 6f 66 20 74 68 65 20 3c 66 6f 72 6d 61 74 |l of the <format| 00048db0 20 73 74 72 69 6e 67 3d 3e 73 66 6f 72 6d 5f 3e | string=>sform_>| 00048dc0 2e 20 45 61 63 68 20 73 75 62 73 65 71 75 65 6e |. Each subsequen| 00048dd0 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 |t argument is a | 00048de0 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 6f 62 6a |pointer to a obj| 00048df0 65 63 74 20 69 6e 20 77 68 69 63 68 20 74 6f 20 |ect in which to | 00048e00 70 6c 61 63 65 20 74 68 65 20 72 65 73 75 6c 74 |place the result| 00048e10 2e 20 49 66 20 74 68 65 72 65 20 61 72 65 20 6d |. If there are m| 00048e20 6f 72 65 20 61 72 67 75 6d 65 6e 74 73 20 74 68 |ore arguments th| 00048e30 61 6e 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 |an conversion sp| 00048e40 65 63 69 66 69 63 61 74 69 6f 6e 73 2c 20 74 68 |ecifications, th| 00048e50 65 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 |e extra argument| 00048e60 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 |s are evaluated | 00048e70 62 75 74 20 6e 6f 74 20 75 73 65 64 2e 00 00 00 |but not used....| 00048e80 44 41 54 41 06 02 00 00 66 73 65 65 6b 0a 53 79 |DATA....fseek.Sy| 00048e90 6e 74 61 78 3a 09 69 6e 74 20 66 73 65 65 6b 20 |ntax:.int fseek | 00048ea0 28 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 6d 2c |(<FILE> *stream,| 00048eb0 20 6c 6f 6e 67 20 69 6e 74 20 70 6f 73 2c 20 69 | long int pos, i| 00048ec0 6e 74 20 66 72 6f 6d 29 3b 0a 48 65 61 64 65 72 |nt from);.Header| 00048ed0 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 |:.<stdio.h=>stdi| 00048ee0 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 5a 65 72 |o>..Returns:.Zer| 00048ef0 6f 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e |o if successful.| 00048f00 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00048f10 73 65 74 73 20 74 68 65 20 66 69 6c 65 20 70 6f |sets the file po| 00048f20 73 69 74 69 6f 6e 20 69 6e 64 69 63 61 74 6f 72 |sition indicator| 00048f30 20 66 6f 72 20 74 68 65 20 66 69 6c 65 20 70 6f | for the file po| 00048f40 69 6e 74 65 64 20 74 6f 20 62 79 20 73 74 72 65 |inted to by stre| 00048f50 61 6d 2e 20 54 68 65 20 70 6f 73 69 74 69 6f 6e |am. The position| 00048f60 20 69 73 20 73 65 74 20 75 73 69 6e 67 20 61 20 | is set using a | 00048f70 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 2f |combination of /| 00048f80 70 6f 73 2f 20 61 6e 64 20 2f 66 72 6f 6d 2f 2e |pos/ and /from/.| 00048f90 20 2f 70 6f 73 2f 20 67 69 76 65 73 20 74 68 65 | /pos/ gives the| 00048fa0 20 6f 66 66 73 65 74 20 66 72 6f 6d 20 74 68 65 | offset from the| 00048fb0 20 70 6f 73 69 74 69 6f 6e 20 73 65 74 20 69 6e | position set in| 00048fc0 20 2f 66 72 6f 6d 2f 2e 20 2f 66 72 6f 6d 2f 20 | /from/. /from/ | 00048fd0 73 68 6f 75 6c 64 20 62 65 20 65 69 74 68 65 72 |should be either| 00048fe0 20 3c 53 45 45 4b 5f 53 45 54 3e 2c 20 3c 53 45 | <SEEK_SET>, <SE| 00048ff0 45 4b 5f 43 55 52 3e 20 6f 72 20 3c 53 45 45 4b |EK_CUR> or <SEEK| 00049000 5f 45 4e 44 3e 2e 20 46 6f 72 20 66 69 6c 65 73 |_END>. For files| 00049010 20 6e 6f 74 20 6f 70 65 6e 65 64 20 69 6e 20 62 | not opened in b| 00049020 69 6e 61 72 79 20 6d 6f 64 65 2c 20 2f 70 6f 73 |inary mode, /pos| 00049030 2f 20 73 68 6f 75 6c 64 20 62 65 20 65 69 74 68 |/ should be eith| 00049040 65 72 20 7a 65 72 6f 2c 20 6f 72 20 61 20 76 61 |er zero, or a va| 00049050 6c 75 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 |lue returned by | 00049060 3c 66 74 65 6c 6c 3e 20 77 69 74 68 20 2f 66 72 |<ftell> with /fr| 00049070 6f 6d 2f 20 65 71 75 61 6c 20 74 6f 20 53 45 45 |om/ equal to SEE| 00049080 4b 5f 53 45 54 2e 00 00 44 41 54 41 64 01 00 00 |K_SET...DATAd...| 00049090 66 73 65 74 70 6f 73 0a 53 79 6e 74 61 78 3a 09 |fsetpos.Syntax:.| 000490a0 69 6e 74 20 66 73 65 74 70 6f 73 20 28 3c 46 49 |int fsetpos (<FI| 000490b0 4c 45 3e 20 2a 73 74 72 65 61 6d 2c 20 3c 66 70 |LE> *stream, <fp| 000490c0 6f 73 5f 74 3e 20 2a 70 6f 73 29 3b 0a 48 65 61 |os_t> *pos);.Hea| 000490d0 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 000490e0 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tdio>..Returns:.| 000490f0 5a 65 72 6f 20 69 66 20 73 75 63 63 65 73 73 66 |Zero if successf| 00049100 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ul...This functi| 00049110 6f 6e 20 73 65 74 73 20 74 68 65 20 66 69 6c 65 |on sets the file| 00049120 20 70 6f 69 6e 74 65 72 2c 20 66 6f 72 20 74 68 | pointer, for th| 00049130 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 64 20 74 |e file pointed t| 00049140 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f 2c 20 74 |o by /stream/, t| 00049150 6f 20 74 68 65 20 76 61 6c 75 65 20 73 74 6f 72 |o the value stor| 00049160 65 64 20 69 6e 20 2f 70 6f 73 2f 2e 20 54 68 69 |ed in /pos/. Thi| 00049170 73 20 76 61 6c 75 65 20 73 68 6f 75 6c 64 20 68 |s value should h| 00049180 61 76 65 20 62 65 65 6e 20 70 72 65 76 69 6f 75 |ave been previou| 00049190 73 6c 79 20 73 74 6f 72 65 64 20 62 79 20 74 68 |sly stored by th| 000491a0 65 20 3c 66 67 65 74 70 6f 73 3e 20 66 75 6e 63 |e <fgetpos> func| 000491b0 74 69 6f 6e 2e 20 49 66 20 74 68 65 72 65 20 69 |tion. If there i| 000491c0 73 20 61 6e 20 65 72 72 6f 72 2c 20 74 68 65 20 |s an error, the | 000491d0 72 65 61 73 6f 6e 20 69 73 20 73 74 6f 72 65 64 |reason is stored| 000491e0 20 69 6e 20 3c 65 72 72 6e 6f 3e 2e 44 41 54 41 | in <errno>.DATA| 000491f0 97 01 00 00 66 74 65 6c 6c 0a 53 79 6e 74 61 78 |....ftell.Syntax| 00049200 3a 09 6c 6f 6e 67 20 69 6e 74 20 66 74 65 6c 6c |:.long int ftell| 00049210 20 28 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 6d | (<FILE> *stream| 00049220 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 |);.Header:.<stdi| 00049230 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 |o.h=>stdio>..Ret| 00049240 75 72 6e 73 3a 09 46 69 6c 65 20 70 6f 69 6e 74 |urns:.File point| 00049250 65 72 20 66 6f 72 20 73 74 72 65 61 6d 2c 20 6f |er for stream, o| 00049260 72 20 2d 31 4c 20 69 66 20 74 68 65 72 65 20 69 |r -1L if there i| 00049270 73 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 69 |s an error...Thi| 00049280 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 |s function reads| 00049290 20 74 68 65 20 66 69 6c 65 20 70 6f 73 69 74 69 | the file positi| 000492a0 6f 6e 20 69 6e 64 69 63 61 74 6f 72 20 66 6f 72 |on indicator for| 000492b0 20 74 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 | the file pointe| 000492c0 64 20 74 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f |d to by /stream/| 000492d0 2e 20 46 6f 72 20 62 69 6e 61 72 79 20 66 69 6c |. For binary fil| 000492e0 65 73 20 74 68 69 73 20 69 73 20 74 68 65 20 6e |es this is the n| 000492f0 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 |umber of charact| 00049300 65 72 73 20 66 72 6f 6d 20 74 68 65 20 62 65 67 |ers from the beg| 00049310 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 66 69 |inning of the fi| 00049320 6c 65 2c 20 62 75 74 20 66 6f 72 20 74 65 78 74 |le, but for text| 00049330 20 66 69 6c 65 73 20 69 74 20 63 6f 75 6c 64 20 | files it could | 00049340 62 65 20 61 6e 79 74 68 69 6e 67 2e 20 49 66 20 |be anything. If | 00049350 74 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f |there is an erro| 00049360 72 2c 20 74 68 65 20 72 65 61 73 6f 6e 20 69 73 |r, the reason is| 00049370 20 73 74 6f 72 65 64 20 69 6e 20 3c 65 72 72 6e | stored in <errn| 00049380 6f 3e 2e 00 46 52 45 45 29 01 00 00 94 d6 0c 00 |o>..FREE).......| 00049390 74 65 0a 53 79 6e 74 61 78 3a 09 3c 73 69 7a 65 |te.Syntax:.<size| 000493a0 5f 74 3e 20 66 72 65 61 64 20 28 76 6f 69 64 20 |_t> fread (void | 000493b0 2a 70 74 72 2c 20 73 69 7a 65 5f 74 20 73 69 7a |*ptr, size_t siz| 000493c0 65 2c 20 73 69 7a 65 5f 74 20 6e 6f 62 6a 2c 20 |e, size_t nobj, | 000493d0 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 6d 29 3b |<FILE> *stream);| 000493e0 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f 2e |.Header:.<stdio.| 000493f0 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 72 |h=>stdio>..Retur| 00049400 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 72 20 6f |ns:.The number o| 00049410 66 20 6f 62 6a 65 63 74 73 20 77 72 69 74 74 65 |f objects writte| 00049420 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |n...This functio| 00049430 6e 20 77 72 69 74 65 73 20 2f 6e 6f 62 6a 2f 20 |n writes /nobj/ | 00049440 6f 62 6a 65 63 74 73 20 6f 66 20 73 69 7a 65 20 |objects of size | 00049450 73 70 65 63 69 66 69 65 64 20 62 79 20 2f 73 69 |specified by /si| 00049460 7a 65 2f 20 66 72 6f 6d 20 74 68 65 20 61 72 72 |ze/ from the arr| 00049470 61 79 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |ay pointed to by| 00049480 20 2f 70 74 72 2f 2c 20 69 6e 74 6f 20 74 68 65 | /ptr/, into the| 00049490 20 66 69 6c 65 20 70 6f 69 6e 74 65 64 20 74 6f | file pointed to| 000494a0 20 62 79 20 2f 73 74 72 65 61 6d 2f 2e 00 00 00 | by /stream/....| 000494b0 44 49 52 24 78 02 00 00 78 02 00 00 28 97 04 00 |DIR$x...x...(...| 000494c0 46 ff ff ff c5 6f 5a 26 93 00 00 00 13 00 00 00 |F....oZ&........| 000494d0 00 00 00 00 47 42 6f 64 65 6e 00 00 bc 97 04 00 |....GBoden......| 000494e0 46 ff ff ff 13 7a 55 26 bb 00 00 00 13 00 00 00 |F....zU&........| 000494f0 00 00 00 00 47 43 6f 6c 00 00 00 00 78 98 04 00 |....GCol....x...| 00049500 46 ff ff ff 6b 8a c2 22 e6 01 00 00 13 00 00 00 |F...k.."........| 00049510 00 00 00 00 67 65 74 63 00 00 00 00 60 9a 04 00 |....getc....`...| 00049520 46 ff ff ff e2 92 c2 22 2f 01 00 00 13 00 00 00 |F......"/.......| 00049530 00 00 00 00 67 65 74 63 68 61 72 00 90 9b 04 00 |....getchar.....| 00049540 46 ff ff ff 56 c1 dd 22 4b 02 00 00 13 00 00 00 |F...V.."K.......| 00049550 00 00 00 00 67 65 74 65 6e 76 00 00 dc 9d 04 00 |....getenv......| 00049560 46 ff ff ff 48 9f c2 22 37 01 00 00 13 00 00 00 |F...H.."7.......| 00049570 00 00 00 00 67 65 74 73 00 00 00 00 14 9f 04 00 |....gets........| 00049580 46 ff ff ff 6a 52 2a 25 ce 01 00 00 13 00 00 00 |F...jR*%........| 00049590 00 00 00 00 47 46 58 00 e4 a0 04 00 46 fd ff ff |....GFX.....F...| 000495a0 58 94 84 2f c0 02 00 00 13 01 00 00 00 00 00 00 |X../............| 000495b0 47 46 58 5f 00 00 00 00 1c bf 04 00 46 ff ff ff |GFX_........F...| 000495c0 58 e3 e1 22 02 01 00 00 13 00 00 00 00 00 00 00 |X.."............| 000495d0 67 6d 74 69 6d 65 00 00 20 c0 04 00 46 ff ff ff |gmtime.. ...F...| 000495e0 7d a4 2b 25 3a 02 00 00 13 00 00 00 00 00 00 00 |}.+%:...........| 000495f0 48 61 6e 64 6c 65 72 00 5c c2 04 00 46 fd ff ff |Handler.\...F...| 00049600 20 96 84 2f 50 01 00 00 13 01 00 00 00 00 00 00 | ../P...........| 00049610 48 61 6e 64 6c 65 72 5f 00 00 00 00 10 ce 04 00 |Handler_........| 00049620 46 ff ff ff ef 82 ad 24 b4 00 00 00 13 00 00 00 |F......$........| 00049630 00 00 00 00 68 65 61 70 00 00 00 00 c4 ce 04 00 |....heap........| 00049640 46 fd ff ff ef 96 84 2f 6c 00 00 00 13 01 00 00 |F....../l.......| 00049650 00 00 00 00 68 65 61 70 5f 00 00 00 d0 d1 04 00 |....heap_.......| 00049660 46 ff ff ff b4 a8 ad 24 ee 00 00 00 13 00 00 00 |F......$........| 00049670 00 00 00 00 68 65 6c 70 00 00 00 00 c0 d2 04 00 |....help........| 00049680 46 fd ff ff 4b 97 84 2f ec 00 00 00 13 01 00 00 |F...K../........| 00049690 00 00 00 00 68 65 6c 70 5f 00 00 00 ec dc 04 00 |....help_.......| 000496a0 46 ff ff ff 5b 53 56 26 e0 00 00 00 13 00 00 00 |F...[SV&........| 000496b0 00 00 00 00 48 65 78 44 69 67 69 74 00 00 00 00 |....HexDigit....| 000496c0 cc dd 04 00 46 ff ff ff a1 ff 2b 25 11 01 00 00 |....F.....+%....| 000496d0 13 00 00 00 00 00 00 00 48 6f 75 72 67 6c 61 73 |........Hourglas| 000496e0 73 00 00 00 e0 de 04 00 46 fd ff ff fa 97 84 2f |s.......F....../| 000496f0 a8 00 00 00 13 01 00 00 00 00 00 00 48 6f 75 72 |............Hour| 00049700 67 6c 61 73 73 5f 00 00 c4 e5 04 00 46 fd ff ff |glass_......F...| 00049710 6f 98 84 2f 28 00 00 00 13 01 00 00 00 00 00 00 |o../(...........| 00049720 48 55 47 45 5f 00 00 00 44 41 54 41 93 00 00 00 |HUGE_...DATA....| 00049730 47 61 72 65 74 68 20 42 6f 64 65 6e 0a 46 69 64 |Gareth Boden.Fid| 00049740 6f 4e 65 74 20 65 6d 61 69 6c 3a 09 32 3a 32 35 |oNet email:.2:25| 00049750 30 2f 32 32 35 2e 31 30 0a 49 6e 74 65 72 6e 65 |0/225.10.Interne| 00049760 74 20 65 6d 61 69 6c 3a 09 67 64 62 32 30 40 63 |t email:.gdb20@c| 00049770 61 6d 2e 61 63 2e 75 6b 0a 0a 53 6e 61 69 6c 2d |am.ac.uk..Snail-| 00049780 6d 61 69 6c 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 |mail:..{align ce| 00049790 6e 74 72 65 7d 34 35 20 43 65 64 61 72 20 53 74 |ntre}45 Cedar St| 000497a0 72 65 65 74 0a 53 4f 55 54 48 50 4f 52 54 0a 50 |reet.SOUTHPORT.P| 000497b0 52 38 20 36 4e 51 0a 55 2e 4b 2e 00 44 41 54 41 |R8 6NQ.U.K..DATA| 000497c0 bb 00 00 00 47 43 6f 6c 0a 53 79 6e 74 61 78 3a |....GCol.Syntax:| 000497d0 09 47 43 6f 6c 20 28 69 6e 74 20 61 63 74 69 6f |.GCol (int actio| 000497e0 6e 2c 20 69 6e 74 20 63 6f 6c 6f 75 72 29 3b 0a |n, int colour);.| 000497f0 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 |Header:.<TimsLib| 00049800 3a 47 46 58 2e 68 3d 3e 47 46 58 5f 54 4c 3e 0a |:GFX.h=>GFX_TL>.| 00049810 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c |.This function-l| 00049820 69 6b 65 20 6d 61 63 72 6f 20 75 73 65 73 20 3c |ike macro uses <| 00049830 57 69 6d 70 5f 53 65 74 43 6f 6c 6f 75 72 3e 20 |Wimp_SetColour> | 00049840 74 6f 20 73 65 74 20 74 68 65 20 63 75 72 72 65 |to set the curre| 00049850 6e 74 20 63 6f 6c 6f 75 72 20 6e 75 6d 62 65 72 |nt colour number| 00049860 20 61 6e 64 20 3c 61 63 74 69 6f 6e 3d 3e 56 44 | and <action=>VD| 00049870 55 3a 31 38 61 3e 2e 00 44 41 54 41 e6 01 00 00 |U:18a>..DATA....| 00049880 67 65 74 63 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |getc.Syntax:.int| 00049890 20 67 65 74 63 20 28 3c 46 49 4c 45 3e 20 2a 73 | getc (<FILE> *s| 000498a0 74 72 65 61 6d 29 3b 0a 48 65 61 64 65 72 3a 09 |tream);.Header:.| 000498b0 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e |<stdio.h=>stdio>| 000498c0 0a 0a 52 65 74 75 72 6e 73 3a 09 43 68 61 72 61 |..Returns:.Chara| 000498d0 63 74 65 72 20 72 65 61 64 2c 20 6f 72 20 3c 45 |cter read, or <E| 000498e0 4f 46 3e 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 |OF> for an error| 000498f0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00049900 20 72 65 61 64 73 20 61 20 73 69 6e 67 6c 65 20 | reads a single | 00049910 63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 74 |character from t| 00049920 68 65 20 73 74 72 65 61 6d 20 70 6f 69 6e 74 65 |he stream pointe| 00049930 64 20 74 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f |d to by /stream/| 00049940 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 20 | and returns it | 00049950 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 20 49 74 20 |as an /int/. It | 00049960 69 73 20 76 69 72 74 75 61 6c 6c 79 20 69 64 65 |is virtually ide| 00049970 6e 74 69 63 61 6c 20 74 6f 20 3c 66 67 65 74 63 |ntical to <fgetc| 00049980 3e 2e 20 54 68 65 20 6f 6e 6c 79 20 64 69 66 66 |>. The only diff| 00049990 65 72 65 6e 63 65 20 69 73 20 74 68 61 74 20 74 |erence is that t| 000499a0 68 65 20 66 75 6e 63 74 69 6f 6e 20 6d 69 67 68 |he function migh| 000499b0 74 20 62 65 20 61 20 6d 61 63 72 6f 20 61 6e 64 |t be a macro and| 000499c0 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6d 61 | the argument ma| 000499d0 79 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 6d |y be evaluated m| 000499e0 6f 72 65 20 74 68 61 6e 20 6f 6e 63 65 20 73 6f |ore than once so| 000499f0 20 79 6f 75 20 63 61 6e 27 74 20 75 73 65 20 61 | you can't use a| 00049a00 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 |n expression wit| 00049a10 68 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 20 |h side effects. | 00049a20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 20 67 65 74 |For example: get| 00049a30 63 28 66 5b 69 2b 2b 5d 29 20 6d 61 79 20 63 61 |c(f[i++]) may ca| 00049a40 75 73 65 20 69 20 74 6f 20 62 65 20 69 6e 63 72 |use i to be incr| 00049a50 65 6d 65 6e 74 65 64 20 74 77 69 63 65 2e 00 00 |emented twice...| 00049a60 44 41 54 41 2f 01 00 00 67 65 74 63 68 61 72 0a |DATA/...getchar.| 00049a70 53 79 6e 74 61 78 3a 09 69 6e 74 20 67 65 74 63 |Syntax:.int getc| 00049a80 68 61 72 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 |har (void);.Head| 00049a90 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 |er:.<stdio.h=>st| 00049aa0 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 43 |dio>..Returns:.C| 00049ab0 68 61 72 61 63 74 65 72 20 72 65 61 64 2c 20 6f |haracter read, o| 00049ac0 72 20 3c 45 4f 46 3e 20 66 6f 72 20 61 6e 20 65 |r <EOF> for an e| 00049ad0 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |rror...This func| 00049ae0 74 69 6f 6e 20 72 65 61 64 73 20 61 20 73 69 6e |tion reads a sin| 00049af0 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 72 |gle character fr| 00049b00 6f 6d 20 3c 73 74 64 69 6e 3e 2e 20 49 74 20 69 |om <stdin>. It i| 00049b10 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c |s identical to <| 00049b20 67 65 74 63 3e 28 73 74 64 69 6e 29 2e 20 49 74 |getc>(stdin). It| 00049b30 20 6d 61 79 20 62 65 20 69 6d 70 6c 65 6d 65 6e | may be implemen| 00049b40 74 65 64 20 61 73 20 61 20 6d 61 63 72 6f 20 73 |ted as a macro s| 00049b50 6f 20 62 65 20 63 61 72 65 66 75 6c 20 6f 66 20 |o be careful of | 00049b60 75 73 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e |using expression| 00049b70 73 20 77 68 69 63 68 20 6d 6f 64 69 66 79 20 6f |s which modify o| 00049b80 74 68 65 72 20 76 61 72 69 61 62 6c 65 73 2e 00 |ther variables..| 00049b90 44 41 54 41 4b 02 00 00 67 65 74 65 6e 76 0a 53 |DATAK...getenv.S| 00049ba0 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 67 65 74 |yntax:.char *get| 00049bb0 65 6e 76 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 |env (char *name)| 00049bc0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 6c 69 |;.Header:.<stdli| 00049bd0 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a 52 65 |b.h=>stdlib>..Re| 00049be0 74 75 72 6e 73 3a 09 41 20 70 6f 69 6e 74 65 72 |turns:.A pointer| 00049bf0 20 74 6f 20 74 68 65 20 76 61 72 69 61 62 6c 65 | to the variable| 00049c00 20 63 6f 6e 74 65 6e 74 73 2e 0a 0a 54 68 69 73 | contents...This| 00049c10 20 72 65 61 64 73 20 74 68 65 20 63 6f 6e 74 65 | reads the conte| 00049c20 6e 74 73 20 6f 66 20 61 6e 20 65 6e 76 69 72 6f |nts of an enviro| 00049c30 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 |nment variable, | 00049c40 77 68 6f 73 65 20 6e 61 6d 65 20 69 73 20 67 69 |whose name is gi| 00049c50 76 65 6e 2e 20 49 6e 20 44 4f 53 20 69 74 20 72 |ven. In DOS it r| 00049c60 65 61 64 73 20 74 68 65 20 44 4f 53 20 65 6e 76 |eads the DOS env| 00049c70 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c |ironment variabl| 00049c80 65 73 20 65 67 20 2f 50 41 54 48 2f 2c 20 77 68 |es eg /PATH/, wh| 00049c90 65 72 65 61 73 20 69 6e 20 52 49 53 43 20 4f 53 |ereas in RISC OS| 00049ca0 20 69 74 20 72 65 61 64 73 20 74 68 65 20 73 79 | it reads the sy| 00049cb0 73 74 65 6d 20 76 61 72 69 61 62 6c 65 20 65 67 |stem variable eg| 00049cc0 20 7b 2f 7d 4f 62 65 79 24 44 69 72 7b 2f 7d 2e | {/}Obey$Dir{/}.| 00049cd0 20 57 68 65 6e 20 72 65 61 64 69 6e 67 20 74 68 | When reading th| 00049ce0 65 20 76 61 72 69 61 62 6c 65 73 20 69 74 20 63 |e variables it c| 00049cf0 6f 6e 76 65 72 74 73 20 6e 75 6d 62 65 72 73 20 |onverts numbers | 00049d00 74 6f 20 73 74 72 69 6e 67 73 20 61 6e 64 20 65 |to strings and e| 00049d10 78 70 61 6e 64 73 20 6d 61 63 72 6f 73 2e 0a 0a |xpands macros...| 00049d20 59 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6d |You should not m| 00049d30 6f 64 69 66 79 20 74 68 65 20 72 65 74 75 72 6e |odify the return| 00049d40 65 64 20 73 74 72 69 6e 67 20 61 6e 64 20 69 74 |ed string and it| 00049d50 20 6d 61 79 20 62 65 20 6f 76 65 72 77 72 69 74 | may be overwrit| 00049d60 74 65 6e 20 62 79 20 73 75 62 73 65 71 75 65 6e |ten by subsequen| 00049d70 74 20 63 61 6c 6c 73 20 74 6f 20 2f 67 65 74 65 |t calls to /gete| 00049d80 6e 76 2f 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |nv/...This funct| 00049d90 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 6e |ion is equivalen| 00049da0 74 20 74 6f 20 74 68 65 20 53 57 49 20 3c 4f 53 |t to the SWI <OS| 00049db0 5f 52 65 61 64 56 61 72 56 61 6c 3d 3e 53 57 49 |_ReadVarVal=>SWI| 00049dc0 3a 4f 53 5f 52 65 61 64 56 61 72 56 61 6c 3e 2c |:OS_ReadVarVal>,| 00049dd0 20 77 69 74 68 20 52 34 3d 33 2e 00 44 41 54 41 | with R4=3..DATA| 00049de0 37 01 00 00 67 65 74 73 0a 53 79 6e 74 61 78 3a |7...gets.Syntax:| 00049df0 09 63 68 61 72 20 2a 67 65 74 73 20 28 63 68 61 |.char *gets (cha| 00049e00 72 20 2a 73 74 72 29 3b 0a 48 65 61 64 65 72 3a |r *str);.Header:| 00049e10 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f |.<stdio.h=>stdio| 00049e20 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 73 74 72 2c |>..Returns:.str,| 00049e30 20 6f 72 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 | or a null point| 00049e40 65 72 20 69 66 20 74 68 65 72 65 20 69 73 20 61 |er if there is a| 00049e50 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 |n error...This f| 00049e60 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 61 20 |unction reads a | 00049e70 73 74 72 69 6e 67 20 6f 66 20 63 68 61 72 61 63 |string of charac| 00049e80 74 65 72 73 20 66 72 6f 6d 20 3c 73 74 64 69 6e |ters from <stdin| 00049e90 3e 20 69 6e 74 6f 20 74 68 65 20 73 74 72 69 6e |> into the strin| 00049ea0 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |g pointed to by | 00049eb0 2f 73 74 72 2f 2e 20 52 65 61 64 69 6e 67 20 77 |/str/. Reading w| 00049ec0 69 6c 6c 20 74 65 72 6d 69 6e 61 74 65 20 61 74 |ill terminate at| 00049ed0 20 61 20 6e 65 77 6c 69 6e 65 20 63 68 61 72 61 | a newline chara| 00049ee0 63 74 65 72 20 6f 72 20 65 6e 64 2d 6f 66 2d 66 |cter or end-of-f| 00049ef0 69 6c 65 2e 20 53 65 65 20 61 6c 73 6f 20 74 68 |ile. See also th| 00049f00 65 20 66 75 6e 63 74 69 6f 6e 20 3c 66 67 65 74 |e function <fget| 00049f10 73 3e 2e 00 44 41 54 41 ce 01 00 00 44 65 73 6b |s>..DATA....Desk| 00049f20 4c 69 62 3a 47 46 58 2e 68 0a 56 65 72 73 69 6f |Lib:GFX.h.Versio| 00049f30 6e 3a 20 30 2e 37 30 20 28 33 30 20 4d 61 79 20 |n: 0.70 (30 May | 00049f40 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 |1994).#line.This| 00049f50 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 00049f60 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 6d 61 | function and ma| 00049f70 63 72 6f 73 20 66 6f 72 20 67 72 61 70 68 69 63 |cros for graphic| 00049f80 73 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 2e 0a |s manipulation..| 00049f90 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e |.Functions:..#In| 00049fa0 64 65 6e 74 20 37 0a 23 54 61 62 6c 65 20 33 20 |dent 7.#Table 3 | 00049fb0 31 36 0a 3c 47 46 58 5f 50 6c 6f 74 3e 0a 3c 47 |16.<GFX_Plot>.<G| 00049fc0 46 58 5f 52 65 63 74 61 6e 67 6c 65 3e 0a 3c 47 |FX_Rectangle>.<G| 00049fd0 46 58 5f 43 4c 47 20 3e 0a 3c 47 46 58 5f 56 44 |FX_CLG >.<GFX_VD| 00049fe0 55 3e 0a 3c 47 46 58 5f 57 72 69 74 65 30 3e 0a |U>.<GFX_Write0>.| 00049ff0 3c 47 46 58 5f 57 72 69 74 65 4e 3e 0a 3c 47 46 |<GFX_WriteN>.<GF| 0004a000 58 5f 57 61 69 74 3e 0a 23 45 6e 64 54 61 62 6c |X_Wait>.#EndTabl| 0004a010 65 0a 23 69 6e 64 65 6e 74 20 30 0a 0a 46 75 6e |e.#indent 0..Fun| 0004a020 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f |ction-like macro| 0004a030 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 39 0a 23 54 |s:..#Indent 9.#T| 0004a040 61 62 6c 65 20 35 20 31 38 0a 3c 47 46 58 5f 4d |able 5 18.<GFX_M| 0004a050 6f 76 65 3e 0a 3c 47 46 58 5f 4d 6f 76 65 42 79 |ove>.<GFX_MoveBy| 0004a060 3e 0a 3c 47 46 58 5f 50 6c 6f 74 50 6f 69 6e 74 |>.<GFX_PlotPoint| * 0004a080 42 79 3e 0a 3c 47 46 58 5f 44 72 61 77 3e 0a 3c |By>.<GFX_Draw>.<| 0004a090 47 46 58 5f 44 72 61 77 42 79 3e 0a 3c 47 46 58 |GFX_DrawBy>.<GFX| 0004a0a0 5f 52 65 63 74 61 6e 67 6c 65 46 69 6c 6c 3e 0a |_RectangleFill>.| 0004a0b0 3c 47 46 58 5f 43 69 72 63 6c 65 3e 0a 3c 47 46 |<GFX_Circle>.<GF| 0004a0c0 58 5f 43 69 72 63 6c 65 46 69 6c 6c 3e 0a 3c 47 |X_CircleFill>.<G| 0004a0d0 46 58 5f 47 43 4f 4c 3e 0a 23 45 6e 64 54 61 62 |FX_GCOL>.#EndTab| 0004a0e0 6c 65 00 00 44 49 52 24 c0 02 00 00 c0 02 00 00 |le..DIR$........| 0004a0f0 a4 a3 04 00 46 ff ff ff 4d 4a 2b 25 e6 00 00 00 |....F...MJ+%....| 0004a100 13 00 00 00 00 00 00 00 43 69 72 63 6c 65 00 00 |........Circle..| 0004a110 8c a4 04 00 46 ff ff ff 6c 51 2b 25 eb 00 00 00 |....F...lQ+%....| 0004a120 13 00 00 00 00 00 00 00 43 69 72 63 6c 65 46 69 |........CircleFi| 0004a130 6c 6c 00 00 78 a5 04 00 46 ff ff ff 9e ee 2a 25 |ll..x...F.....*%| 0004a140 9e 00 00 00 13 00 00 00 00 00 00 00 43 4c 47 00 |............CLG.| 0004a150 18 a6 04 00 46 ff ff ff e4 37 2b 25 e2 00 00 00 |....F....7+%....| 0004a160 13 00 00 00 00 00 00 00 44 72 61 77 00 00 00 00 |........Draw....| 0004a170 fc a6 04 00 46 ff ff ff 8e 3d 2b 25 fc 00 00 00 |....F....=+%....| 0004a180 13 00 00 00 00 00 00 00 44 72 61 77 42 79 00 00 |........DrawBy..| 0004a190 f8 a7 04 00 46 ff ff ff d3 57 2b 25 ad 00 00 00 |....F....W+%....| 0004a1a0 13 00 00 00 00 00 00 00 47 43 4f 4c 00 00 00 00 |........GCOL....| 0004a1b0 a8 a8 04 00 46 ff ff ff 0c 26 2b 25 d2 00 00 00 |....F....&+%....| 0004a1c0 13 00 00 00 00 00 00 00 4d 6f 76 65 00 00 00 00 |........Move....| 0004a1d0 7c a9 04 00 46 ff ff ff d5 29 2b 25 c3 00 00 00 ||...F....)+%....| 0004a1e0 13 00 00 00 00 00 00 00 4d 6f 76 65 42 79 00 00 |........MoveBy..| 0004a1f0 40 aa 04 00 46 ff ff ff d3 5e 2a 25 1a 01 00 00 |@...F....^*%....| 0004a200 13 00 00 00 00 00 00 00 50 6c 6f 74 00 00 00 00 |........Plot....| 0004a210 5c ab 04 00 46 ff ff ff b5 ad 2a 25 8b 06 00 00 |\...F.....*%....| 0004a220 13 00 00 00 00 00 00 00 70 6c 6f 74 5f 00 00 00 |........plot_...| 0004a230 e8 b1 04 00 46 ff ff ff 46 c4 2a 25 6f 01 00 00 |....F...F.*%o...| 0004a240 13 00 00 00 00 00 00 00 70 6c 6f 74 62 6d 6f 64 |........plotbmod| 0004a250 5f 00 00 00 58 b3 04 00 46 ff ff ff f9 d6 2a 25 |_...X...F.....*%| 0004a260 e9 01 00 00 13 00 00 00 00 00 00 00 70 6c 6f 74 |............plot| 0004a270 6d 6f 64 5f 00 00 00 00 44 b5 04 00 46 ff ff ff |mod_....D...F...| 0004a280 12 2e 2b 25 d8 00 00 00 13 00 00 00 00 00 00 00 |..+%............| 0004a290 50 6c 6f 74 50 6f 69 6e 74 00 00 00 1c b6 04 00 |PlotPoint.......| 0004a2a0 46 ff ff ff 2d 33 2b 25 25 01 00 00 13 00 00 00 |F...-3+%%.......| 0004a2b0 00 00 00 00 50 6c 6f 74 50 6f 69 6e 74 42 79 00 |....PlotPointBy.| 0004a2c0 44 b7 04 00 46 ff ff ff 66 e9 2a 25 0d 01 00 00 |D...F...f.*%....| 0004a2d0 13 00 00 00 00 00 00 00 52 65 63 74 61 6e 67 6c |........Rectangl| 0004a2e0 65 00 00 00 54 b8 04 00 46 ff ff ff f2 43 2b 25 |e...T...F....C+%| 0004a2f0 15 01 00 00 13 00 00 00 00 00 00 00 52 65 63 74 |............Rect| 0004a300 61 6e 67 6c 65 46 69 6c 6c 00 00 00 6c b9 04 00 |angleFill...l...| 0004a310 46 fd ff ff c3 6e 55 26 55 00 00 00 13 00 00 00 |F....nU&U.......| 0004a320 00 00 00 00 54 4c 00 00 c4 b9 04 00 46 ff ff ff |....TL......F...| 0004a330 d0 f9 2a 25 76 01 00 00 13 00 00 00 00 00 00 00 |..*%v...........| 0004a340 56 44 55 00 3c bb 04 00 46 ff ff ff 62 17 2b 25 |VDU.<...F...b.+%| 0004a350 14 02 00 00 13 00 00 00 00 00 00 00 57 61 69 74 |............Wait| 0004a360 00 00 00 00 50 bd 04 00 46 ff ff ff 4f 06 2b 25 |....P...F...O.+%| 0004a370 d7 00 00 00 13 00 00 00 00 00 00 00 57 72 69 74 |............Writ| 0004a380 65 30 00 00 28 be 04 00 46 ff ff ff 08 0d 2b 25 |e0..(...F.....+%| 0004a390 f3 00 00 00 13 00 00 00 00 00 00 00 57 72 69 74 |............Writ| 0004a3a0 65 4e 00 00 44 41 54 41 e6 00 00 00 47 46 58 5f |eN..DATA....GFX_| 0004a3b0 43 69 72 63 6c 65 0a 53 79 6e 74 61 78 3a 09 76 |Circle.Syntax:.v| 0004a3c0 6f 69 64 20 47 46 58 5f 43 69 72 63 6c 65 20 28 |oid GFX_Circle (| 0004a3d0 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e |int x, int y, in| 0004a3e0 74 20 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |t r);.Header:.<D| 0004a3f0 65 73 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 |eskLib:GFX.h=>GF| 0004a400 58 3e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 75 |X>..This macro u| 0004a410 73 65 73 20 3c 47 46 58 5f 50 6c 6f 74 3e 20 74 |ses <GFX_Plot> t| 0004a420 6f 20 64 72 61 77 20 61 20 63 69 72 63 6c 65 20 |o draw a circle | 0004a430 6f 75 74 6c 69 6e 65 20 77 69 74 68 20 63 65 6e |outline with cen| 0004a440 74 72 65 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 20 |tre {/}(x,y){/} | 0004a450 61 6e 64 20 72 61 64 69 75 73 20 2f 72 2f 2c 20 |and radius /r/, | 0004a460 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 |in the current g| 0004a470 72 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f 75 |raphics foregrou| 0004a480 6e 64 20 63 6f 6c 6f 75 72 2e 00 00 44 41 54 41 |nd colour...DATA| 0004a490 eb 00 00 00 47 46 58 5f 43 69 72 63 6c 65 46 69 |....GFX_CircleFi| 0004a4a0 6c 6c 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |ll.Syntax:.void | 0004a4b0 47 46 58 5f 43 69 72 63 6c 65 46 69 6c 6c 20 28 |GFX_CircleFill (| 0004a4c0 69 6e 74 20 78 2c 69 6e 74 20 79 2c 69 6e 74 20 |int x,int y,int | 0004a4d0 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |r);.Header:.<Des| 0004a4e0 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 58 3e |kLib:GFX.h=>GFX>| 0004a4f0 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 75 73 65 |..This macro use| 0004a500 73 20 3c 47 46 58 5f 50 6c 6f 74 3e 20 74 6f 20 |s <GFX_Plot> to | 0004a510 64 72 61 77 20 61 20 66 69 6c 6c 65 64 20 63 69 |draw a filled ci| 0004a520 72 63 6c 65 20 77 69 74 68 20 63 65 6e 74 72 65 |rcle with centre| 0004a530 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 20 61 6e 64 | {/}(x,y){/} and| 0004a540 20 72 61 64 69 75 73 20 2f 72 2f 2c 20 69 6e 20 | radius /r/, in | 0004a550 74 68 65 20 63 75 72 72 65 6e 74 20 67 72 61 70 |the current grap| 0004a560 68 69 63 73 20 66 6f 72 65 67 72 6f 75 6e 64 20 |hics foreground | 0004a570 63 6f 6c 6f 75 72 2e 00 44 41 54 41 9e 00 00 00 |colour..DATA....| 0004a580 47 46 58 5f 43 4c 47 0a 53 79 6e 74 61 78 3a 09 |GFX_CLG.Syntax:.| 0004a590 76 6f 69 64 20 47 46 58 5f 43 4c 47 20 28 76 6f |void GFX_CLG (vo| 0004a5a0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |id);.Header:.<De| 0004a5b0 73 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 58 |skLib:GFX.h=>GFX| 0004a5c0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 0004a5d0 20 63 6c 65 61 72 73 20 74 68 65 20 67 72 61 70 | clears the grap| 0004a5e0 68 69 63 73 20 77 69 6e 64 6f 77 20 74 6f 20 74 |hics window to t| 0004a5f0 68 65 20 63 75 72 72 65 6e 74 20 62 61 63 6b 67 |he current backg| 0004a600 72 6f 75 6e 64 20 67 72 61 70 68 69 63 73 20 63 |round graphics c| 0004a610 6f 6c 6f 75 72 2e 00 00 44 41 54 41 e2 00 00 00 |olour...DATA....| 0004a620 47 46 58 5f 44 72 61 77 0a 53 79 6e 74 61 78 3a |GFX_Draw.Syntax:| 0004a630 09 76 6f 69 64 20 47 46 58 5f 44 72 61 77 20 28 |.void GFX_Draw (| 0004a640 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 |int x, int y);.H| 0004a650 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0004a660 47 46 58 2e 68 3d 3e 47 46 58 3e 0a 0a 54 68 69 |GFX.h=>GFX>..Thi| 0004a670 73 20 6d 61 63 72 6f 20 75 73 65 73 20 3c 47 46 |s macro uses <GF| 0004a680 58 5f 50 6c 6f 74 3e 20 74 6f 20 64 72 61 77 20 |X_Plot> to draw | 0004a690 61 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 63 75 |a line in the cu| 0004a6a0 72 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 66 |rrent graphics f| 0004a6b0 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |oreground colour| 0004a6c0 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e | from the curren| 0004a6d0 74 20 67 72 61 70 68 69 63 73 20 63 75 72 73 6f |t graphics curso| 0004a6e0 72 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 7b 2f |r position to {/| 0004a6f0 7d 28 78 2c 79 29 7b 2f 7d 2e 00 00 44 41 54 41 |}(x,y){/}...DATA| 0004a700 fc 00 00 00 47 46 58 5f 44 72 61 77 42 79 0a 53 |....GFX_DrawBy.S| 0004a710 79 6e 74 61 78 3a 09 76 6f 69 64 20 47 46 58 5f |yntax:.void GFX_| 0004a720 44 72 61 77 42 79 20 28 69 6e 74 20 78 2c 20 69 |DrawBy (int x, i| 0004a730 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt y);.Header:.<| 0004a740 44 65 73 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 |DeskLib:GFX.h=>G| 0004a750 46 58 3e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 |FX>..This macro | 0004a760 75 73 65 73 20 3c 47 46 58 5f 50 6c 6f 74 3e 20 |uses <GFX_Plot> | 0004a770 74 6f 20 64 72 61 77 20 61 20 6c 69 6e 65 20 69 |to draw a line i| 0004a780 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 72 |n the current gr| 0004a790 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f 75 6e |aphics foregroun| 0004a7a0 64 20 63 6f 6c 6f 75 72 20 66 72 6f 6d 20 74 68 |d colour from th| 0004a7b0 65 20 63 75 72 72 65 6e 74 20 67 72 61 70 68 69 |e current graphi| 0004a7c0 63 73 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 |cs cursor positi| 0004a7d0 6f 6e 20 74 6f 20 61 20 70 6f 73 69 74 69 6f 6e |on to a position| 0004a7e0 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 20 75 6e 69 | {/}(x,y){/} uni| 0004a7f0 74 73 20 61 77 61 79 2e 44 41 54 41 ad 00 00 00 |ts away.DATA....| 0004a800 47 46 58 5f 47 43 4f 4c 0a 53 79 6e 74 61 78 3a |GFX_GCOL.Syntax:| 0004a810 09 47 46 58 5f 47 43 4f 4c 20 28 69 6e 74 20 61 |.GFX_GCOL (int a| 0004a820 63 74 69 6f 6e 2c 20 69 6e 74 20 63 6f 6c 6f 75 |ction, int colou| 0004a830 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |r);.Header:.<Des| 0004a840 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 58 3e |kLib:GFX.h=>GFX>| 0004a850 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 75 73 65 |..This macro use| 0004a860 73 20 3c 47 46 58 5f 56 44 55 3e 20 74 6f 20 73 |s <GFX_VDU> to s| 0004a870 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 |et the current g| 0004a880 72 61 70 68 69 63 73 20 63 6f 6c 6f 75 72 20 61 |raphics colour a| 0004a890 6e 64 20 3c 61 63 74 69 6f 6e 3d 3e 56 44 55 3a |nd <action=>VDU:| 0004a8a0 31 38 61 3e 2e 00 00 00 44 41 54 41 d2 00 00 00 |18a>....DATA....| 0004a8b0 47 46 58 5f 4d 6f 76 65 0a 53 79 6e 74 61 78 3a |GFX_Move.Syntax:| 0004a8c0 09 76 6f 69 64 20 47 46 58 5f 4d 6f 76 65 20 28 |.void GFX_Move (| 0004a8d0 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 |int x, int y);.H| 0004a8e0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0004a8f0 47 46 58 2e 68 3d 3e 47 46 58 3e 0a 0a 54 68 69 |GFX.h=>GFX>..Thi| 0004a900 73 20 6d 61 63 72 6f 20 75 73 65 73 20 3c 47 46 |s macro uses <GF| 0004a910 58 5f 50 6c 6f 74 3e 20 74 6f 20 6d 6f 76 65 20 |X_Plot> to move | 0004a920 74 68 65 20 67 72 61 70 68 69 63 73 20 63 75 72 |the graphics cur| 0004a930 73 6f 72 20 74 6f 20 74 68 65 20 70 6f 73 69 74 |sor to the posit| 0004a940 6f 6e 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 20 |on {/}(x,y){/}. | 0004a950 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4d |Equivalent to <M| 0004a960 4f 56 45 3d 3e 42 61 73 69 63 3a 4d 4f 56 45 3e |OVE=>Basic:MOVE>| 0004a970 20 69 6e 20 42 61 73 69 63 2e 00 00 44 41 54 41 | in Basic...DATA| 0004a980 c3 00 00 00 47 46 58 5f 4d 6f 76 65 42 79 0a 53 |....GFX_MoveBy.S| 0004a990 79 6e 74 61 78 3a 09 76 6f 69 64 20 47 46 58 5f |yntax:.void GFX_| 0004a9a0 4d 6f 76 65 42 79 20 28 69 6e 74 20 78 2c 20 69 |MoveBy (int x, i| 0004a9b0 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt y);.Header:.<| 0004a9c0 44 65 73 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 |DeskLib:GFX.h=>G| 0004a9d0 46 58 3e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 |FX>..This macro | 0004a9e0 75 73 65 73 20 3c 47 46 58 5f 50 6c 6f 74 3e 20 |uses <GFX_Plot> | 0004a9f0 74 6f 20 6d 6f 76 65 20 74 68 65 20 67 72 61 70 |to move the grap| 0004aa00 68 69 63 73 20 63 75 72 73 6f 72 20 66 72 6f 6d |hics cursor from| 0004aa10 20 74 68 65 20 63 75 72 72 65 6e 20 70 6f 73 69 | the curren posi| 0004aa20 74 69 6f 6e 20 72 65 6c 61 74 69 76 65 6c 79 20 |tion relatively | 0004aa30 62 79 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 00 |by {/}(x,y){/}..| 0004aa40 44 41 54 41 1a 01 00 00 47 46 58 5f 50 6c 6f 74 |DATA....GFX_Plot| 0004aa50 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 47 46 |.Syntax:.void GF| 0004aa60 58 5f 50 6c 6f 74 20 28 69 6e 74 20 63 6f 64 65 |X_Plot (int code| 0004aa70 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b |, int x, int y);| 0004aa80 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 0004aa90 62 3a 47 46 58 2e 68 3d 3e 47 46 58 3e 0a 0a 54 |b:GFX.h=>GFX>..T| 0004aaa0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 |his function doe| 0004aab0 73 20 61 20 70 6c 6f 74 20 63 6f 6d 6d 61 6e 64 |s a plot command| 0004aac0 2e 20 49 74 20 69 73 20 74 68 65 20 73 61 6d 65 |. It is the same| 0004aad0 20 61 73 20 3c 50 4c 4f 54 3d 3e 42 61 73 69 63 | as <PLOT=>Basic| 0004aae0 3a 50 4c 4f 54 3e 20 69 6e 20 42 61 73 69 63 2c |:PLOT> in Basic,| 0004aaf0 20 6f 72 20 74 68 65 20 53 57 49 20 3c 4f 53 5f | or the SWI <OS_| 0004ab00 50 6c 6f 74 3d 3e 53 57 49 3a 4f 53 5f 50 6c 6f |Plot=>SWI:OS_Plo| 0004ab10 74 3e 2e 20 2f 63 6f 64 65 2f 20 69 73 20 74 68 |t>. /code/ is th| 0004ab20 65 20 3c 70 6c 6f 74 20 74 79 70 65 3d 3e 67 66 |e <plot type=>gf| 0004ab30 78 5f 70 6c 6f 74 5f 3e 2c 20 61 6e 64 20 2f 78 |x_plot_>, and /x| 0004ab40 2f 20 61 6e 64 20 2f 79 2f 20 61 72 65 20 63 6f |/ and /y/ are co| 0004ab50 6f 72 64 69 6e 61 74 65 73 2e 00 00 44 41 54 41 |ordinates...DATA| 0004ab60 8b 06 00 00 50 6c 6f 74 20 43 6f 6d 6d 61 6e 64 |....Plot Command| 0004ab70 73 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 |s.The following | 0004ab80 6d 61 63 72 6f 73 20 61 72 65 20 64 65 66 69 6e |macros are defin| 0004ab90 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 47 |ed in <DeskLib:G| 0004aba0 46 58 2e 68 3d 3e 47 46 58 3e 3a 0a 0a 4d 61 63 |FX.h=>GFX>:..Mac| 0004abb0 72 6f 09 09 09 43 6f 64 65 09 4d 65 61 6e 69 6e |ro...Code.Meanin| 0004abc0 67 0a 23 6c 69 6e 65 0a 70 6c 6f 74 5f 53 4f 4c |g.#line.plot_SOL| 0004abd0 49 44 42 4f 54 48 09 09 30 78 30 30 09 53 6f 6c |IDBOTH..0x00.Sol| 0004abe0 69 64 20 6c 69 6e 65 20 69 6e 63 6c 75 64 69 6e |id line includin| 0004abf0 67 20 62 6f 74 68 20 65 6e 64 20 70 6f 69 6e 74 |g both end point| 0004ac00 73 0a 70 6c 6f 74 5f 53 4f 4c 49 44 45 58 46 49 |s.plot_SOLIDEXFI| 0004ac10 4e 41 4c 09 30 78 30 38 09 53 6f 6c 69 64 20 6c |NAL.0x08.Solid l| 0004ac20 69 6e 65 20 65 78 63 6c 75 64 69 6e 67 20 74 68 |ine excluding th| 0004ac30 65 20 66 69 6e 61 6c 20 70 6f 69 6e 74 0a 70 6c |e final point.pl| 0004ac40 6f 74 5f 44 4f 54 54 45 44 42 4f 54 48 09 09 30 |ot_DOTTEDBOTH..0| 0004ac50 78 31 30 09 44 6f 74 74 65 64 20 6c 69 6e 65 20 |x10.Dotted line | 0004ac60 69 6e 63 6c 2e 20 62 6f 74 68 20 65 6e 64 20 70 |incl. both end p| 0004ac70 6f 69 6e 74 73 2c 20 70 61 74 74 65 72 6e 20 72 |oints, pattern r| 0004ac80 65 73 74 61 72 74 65 64 0a 70 6c 6f 74 5f 44 4f |estarted.plot_DO| 0004ac90 54 54 45 44 45 58 46 49 4e 41 4c 09 30 78 31 38 |TTEDEXFINAL.0x18| 0004aca0 09 44 6f 74 74 65 64 20 6c 69 6e 65 20 65 78 63 |.Dotted line exc| 0004acb0 6c 2e 20 66 69 6e 61 6c 20 70 6f 69 6e 74 2c 20 |l. final point, | 0004acc0 70 61 74 74 65 72 6e 20 72 65 73 74 61 72 74 65 |pattern restarte| 0004acd0 64 0a 70 6c 6f 74 5f 53 4f 4c 49 44 45 58 49 4e |d.plot_SOLIDEXIN| 0004ace0 49 54 09 30 78 32 30 09 53 6f 6c 69 64 20 6c 69 |IT.0x20.Solid li| 0004acf0 6e 65 20 65 78 63 6c 75 64 69 6e 67 20 74 68 65 |ne excluding the| 0004ad00 20 69 6e 69 74 69 61 6c 20 70 6f 69 6e 74 0a 70 | initial point.p| 0004ad10 6c 6f 74 5f 53 4f 4c 49 44 45 58 42 4f 54 48 09 |lot_SOLIDEXBOTH.| 0004ad20 30 78 32 38 09 53 6f 6c 69 64 20 6c 69 6e 65 20 |0x28.Solid line | 0004ad30 65 78 63 6c 75 64 69 6e 67 20 62 6f 74 68 20 65 |excluding both e| 0004ad40 6e 64 20 70 6f 69 6e 74 73 0a 70 6c 6f 74 5f 44 |nd points.plot_D| 0004ad50 4f 54 54 45 44 45 58 49 4e 49 54 09 30 78 33 30 |OTTEDEXINIT.0x30| 0004ad60 09 44 6f 74 74 65 64 20 6c 69 6e 65 20 65 78 63 |.Dotted line exc| 0004ad70 6c 2e 20 69 6e 69 74 69 61 6c 20 70 6f 69 6e 74 |l. initial point| 0004ad80 2c 20 70 61 74 74 65 72 6e 20 63 6f 6e 74 69 6e |, pattern contin| 0004ad90 75 65 64 0a 70 6c 6f 74 5f 44 4f 54 54 45 44 45 |ued.plot_DOTTEDE| 0004ada0 58 42 4f 54 48 09 30 78 33 38 09 44 6f 74 74 65 |XBOTH.0x38.Dotte| 0004adb0 64 20 6c 69 6e 65 20 65 78 63 6c 2e 20 62 6f 74 |d line excl. bot| 0004adc0 68 20 65 6e 64 20 70 6f 69 6e 74 73 2c 20 70 61 |h end points, pa| 0004add0 74 74 65 72 6e 20 63 6f 6e 74 69 6e 75 65 64 0a |ttern continued.| 0004ade0 70 6c 6f 74 5f 50 4f 49 4e 54 09 09 30 78 34 30 |plot_POINT..0x40| 0004adf0 09 50 6f 69 6e 74 20 70 6c 6f 74 0a 70 6c 6f 74 |.Point plot.plot| 0004ae00 5f 48 4f 52 49 5a 4c 49 4e 45 46 49 4c 4c 4e 42 |_HORIZLINEFILLNB| 0004ae10 09 30 78 34 38 09 48 6f 72 69 7a 6f 6e 74 61 6c |.0x48.Horizontal| 0004ae20 20 6c 69 6e 65 20 66 69 6c 6c 20 28 6c 65 66 74 | line fill (left| 0004ae30 20 26 20 72 69 67 68 74 29 20 74 6f 20 6e 6f 6e | & right) to non| 0004ae40 2d 62 61 63 6b 67 72 6f 75 6e 64 0a 70 6c 6f 74 |-background.plot| 0004ae50 5f 54 52 49 41 4e 47 4c 45 46 49 4c 4c 09 30 78 |_TRIANGLEFILL.0x| 0004ae60 35 30 09 54 72 69 61 6e 67 6c 65 20 66 69 6c 6c |50.Triangle fill| 0004ae70 0a 70 6c 6f 74 5f 48 4f 52 49 5a 4c 49 4e 45 46 |.plot_HORIZLINEF| 0004ae80 49 4c 4c 42 09 30 78 35 38 09 48 6f 72 69 7a 6f |ILLB.0x58.Horizo| 0004ae90 6e 74 61 6c 20 6c 69 6e 65 20 66 69 6c 6c 20 28 |ntal line fill (| 0004aea0 72 69 67 68 74 20 6f 6e 6c 79 29 20 74 6f 20 62 |right only) to b| 0004aeb0 61 63 6b 67 72 6f 75 6e 64 0a 70 6c 6f 74 5f 52 |ackground.plot_R| 0004aec0 45 43 54 41 4e 47 4c 45 46 49 4c 4c 09 30 78 36 |ECTANGLEFILL.0x6| 0004aed0 30 09 52 65 63 74 61 6e 67 6c 65 20 66 69 6c 6c |0.Rectangle fill| 0004aee0 0a 70 6c 6f 74 5f 48 4f 52 49 5a 4c 49 4e 45 46 |.plot_HORIZLINEF| 0004aef0 49 4c 4c 46 09 30 78 36 38 09 48 6f 72 69 7a 6f |ILLF.0x68.Horizo| 0004af00 6e 74 61 6c 20 6c 69 6e 65 20 66 69 6c 6c 20 28 |ntal line fill (| 0004af10 6c 65 66 74 20 26 20 72 69 67 68 74 29 20 74 6f |left & right) to| 0004af20 20 66 6f 72 65 67 72 6f 75 6e 64 0a 70 6c 6f 74 | foreground.plot| 0004af30 5f 50 41 52 41 4c 4c 45 4c 46 49 4c 4c 09 30 78 |_PARALLELFILL.0x| 0004af40 37 30 09 50 61 72 61 6c 6c 65 6c 6f 67 72 61 6d |70.Parallelogram| 0004af50 20 66 69 6c 6c 0a 70 6c 6f 74 5f 48 4f 52 49 5a | fill.plot_HORIZ| 0004af60 4c 49 4e 45 46 49 4c 4c 4e 46 09 30 78 37 38 09 |LINEFILLNF.0x78.| 0004af70 48 6f 72 69 7a 6f 6e 74 61 6c 20 6c 69 6e 65 20 |Horizontal line | 0004af80 66 69 6c 6c 20 28 72 69 67 68 74 20 6f 6e 6c 79 |fill (right only| 0004af90 29 20 74 6f 20 6e 6f 6e 2d 66 6f 72 65 67 72 6f |) to non-foregro| 0004afa0 75 6e 64 0a 70 6c 6f 74 5f 46 4c 4f 4f 44 54 4f |und.plot_FLOODTO| 0004afb0 42 41 43 4b 09 30 78 38 30 09 46 6c 6f 6f 64 20 |BACK.0x80.Flood | 0004afc0 74 6f 20 6e 6f 6e 2d 62 61 63 6b 67 72 6f 75 6e |to non-backgroun| 0004afd0 64 0a 70 6c 6f 74 5f 46 4c 4f 4f 44 54 4f 46 4f |d.plot_FLOODTOFO| 0004afe0 52 45 09 30 78 38 38 09 46 6c 6f 6f 64 20 74 6f |RE.0x88.Flood to| 0004aff0 20 66 6f 72 65 67 72 6f 75 6e 64 0a 70 6c 6f 74 | foreground.plot| 0004b000 5f 43 49 52 43 4c 45 09 09 30 78 39 30 09 43 69 |_CIRCLE..0x90.Ci| 0004b010 72 63 6c 65 20 6f 75 74 6c 69 6e 65 0a 70 6c 6f |rcle outline.plo| 0004b020 74 5f 43 49 52 43 4c 45 46 49 4c 4c 09 09 30 78 |t_CIRCLEFILL..0x| 0004b030 39 38 09 43 69 72 63 6c 65 20 66 69 6c 6c 0a 70 |98.Circle fill.p| 0004b040 6c 6f 74 5f 43 49 52 43 4c 45 41 52 43 09 09 30 |lot_CIRCLEARC..0| 0004b050 78 41 30 09 43 69 72 63 75 6c 61 72 20 61 72 63 |xA0.Circular arc| 0004b060 0a 70 6c 6f 74 5f 53 45 47 4d 45 4e 54 09 09 30 |.plot_SEGMENT..0| 0004b070 78 41 38 09 53 65 67 6d 65 6e 74 0a 70 6c 6f 74 |xA8.Segment.plot| 0004b080 5f 53 45 43 54 4f 52 09 09 30 78 42 30 09 53 65 |_SECTOR..0xB0.Se| 0004b090 63 74 6f 72 0a 70 6c 6f 74 5f 42 4c 4f 43 4b 09 |ctor.plot_BLOCK.| 0004b0a0 09 30 78 42 38 09 42 6c 6f 63 6b 20 63 6f 70 79 |.0xB8.Block copy| 0004b0b0 2f 6d 6f 76 65 20 28 68 61 73 20 64 69 66 66 65 |/move (has diffe| 0004b0c0 72 65 6e 74 20 3c 6d 6f 64 69 66 69 65 72 73 3d |rent <modifiers=| 0004b0d0 3e 47 46 58 5f 70 6c 6f 74 62 6d 6f 64 5f 3e 29 |>GFX_plotbmod_>)| 0004b0e0 0a 70 6c 6f 74 5f 45 4c 4c 49 50 53 45 09 09 30 |.plot_ELLIPSE..0| 0004b0f0 78 43 30 09 45 6c 6c 69 70 73 65 20 6f 75 74 6c |xC0.Ellipse outl| 0004b100 69 6e 65 0a 70 6c 6f 74 5f 45 4c 4c 49 50 53 45 |ine.plot_ELLIPSE| 0004b110 46 49 4c 4c 09 30 78 43 38 09 45 6c 6c 69 70 73 |FILL.0xC8.Ellips| 0004b120 65 20 66 69 6c 6c 0a 70 6c 6f 74 5f 47 52 41 50 |e fill.plot_GRAP| 0004b130 48 49 43 53 43 48 41 52 09 30 78 44 30 09 46 6f |HICSCHAR.0xD0.Fo| 0004b140 6e 74 20 70 72 69 6e 74 69 6e 67 20 28 6f 62 73 |nt printing (obs| 0004b150 6f 6c 65 74 65 20 2d 20 64 6f 6e 27 74 20 75 73 |olete - don't us| 0004b160 65 29 0a 70 6c 6f 74 5f 53 50 52 49 54 45 09 09 |e).plot_SPRITE..| 0004b170 30 78 45 38 09 53 70 72 69 74 65 20 70 6c 6f 74 |0xE8.Sprite plot| 0004b180 0a 0a 4f 6e 74 6f 20 65 61 63 68 20 6f 66 20 74 |..Onto each of t| 0004b190 68 65 73 65 20 63 61 6e 20 62 65 20 61 64 64 65 |hese can be adde| 0004b1a0 64 20 61 20 3c 6d 6f 64 69 66 69 65 72 3d 3e 47 |d a <modifier=>G| 0004b1b0 46 58 5f 70 6c 6f 74 6d 6f 64 5f 3e 20 77 68 69 |FX_plotmod_> whi| 0004b1c0 63 68 20 61 66 66 65 63 74 73 20 74 68 65 20 77 |ch affects the w| 0004b1d0 61 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 62 |ay the command b| 0004b1e0 65 68 61 76 65 73 2e 00 44 41 54 41 6f 01 00 00 |ehaves..DATAo...| 0004b1f0 50 6c 6f 74 20 43 6f 64 65 20 42 6c 6f 63 6b 20 |Plot Code Block | 0004b200 4d 6f 64 69 66 69 65 72 73 0a 54 68 65 20 66 6f |Modifiers.The fo| 0004b210 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20 61 |llowing macros a| 0004b220 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |re defined in <D| 0004b230 65 73 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 |eskLib:GFX.h=>GF| 0004b240 58 3e 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 4d 61 |X>.{wrap off}.Ma| 0004b250 63 72 6f 09 09 09 43 6f 64 65 09 4d 65 61 6e 69 |cro...Code.Meani| 0004b260 6e 67 0a 23 6c 69 6e 65 0a 70 6c 6f 74 5f 42 4d |ng.#line.plot_BM| 0004b270 4f 56 45 52 45 4c 09 09 30 09 4d 6f 76 65 20 72 |OVEREL..0.Move r| 0004b280 65 6c 61 74 69 76 65 0a 70 6c 6f 74 5f 42 4d 4f |elative.plot_BMO| 0004b290 56 45 52 45 43 54 52 45 4c 09 31 09 4d 6f 76 65 |VERECTREL.1.Move| 0004b2a0 20 72 65 63 74 61 6e 67 6c 65 20 72 65 6c 61 74 | rectangle relat| 0004b2b0 69 76 65 0a 70 6c 6f 74 5f 42 43 4f 50 59 52 45 |ive.plot_BCOPYRE| 0004b2c0 43 54 52 45 4c 09 32 09 43 6f 70 79 20 72 65 63 |CTREL.2.Copy rec| 0004b2d0 74 61 6e 67 6c 65 20 72 65 6c 61 74 69 76 65 0a |tangle relative.| 0004b2e0 0a 70 6c 6f 74 5f 42 4d 4f 56 45 41 42 53 09 09 |.plot_BMOVEABS..| 0004b2f0 34 09 4d 6f 76 65 20 61 62 73 6f 6c 75 74 65 0a |4.Move absolute.| 0004b300 70 6c 6f 74 5f 42 4d 4f 56 45 52 45 43 54 41 42 |plot_BMOVERECTAB| 0004b310 53 09 35 09 4d 6f 76 65 20 72 65 63 74 61 6e 67 |S.5.Move rectang| 0004b320 6c 65 20 61 62 73 6f 6c 75 74 65 0a 70 6c 6f 74 |le absolute.plot| 0004b330 5f 42 43 4f 50 59 52 45 43 54 41 42 53 09 36 09 |_BCOPYRECTABS.6.| 0004b340 43 6f 70 79 20 72 65 63 74 61 6e 67 6c 65 20 61 |Copy rectangle a| 0004b350 62 73 6f 6c 75 74 65 00 44 41 54 41 e9 01 00 00 |bsolute.DATA....| 0004b360 50 6c 6f 74 20 43 6f 64 65 20 4d 6f 64 69 66 69 |Plot Code Modifi| 0004b370 65 72 73 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e |ers.The followin| 0004b380 67 20 6d 61 63 72 6f 73 20 61 72 65 20 64 65 66 |g macros are def| 0004b390 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 0004b3a0 3a 47 46 58 2e 68 3d 3e 47 46 58 3e 2e 0a 7b 77 |:GFX.h=>GFX>..{w| 0004b3b0 72 61 70 20 6f 66 66 7d 0a 4d 61 63 72 6f 09 09 |rap off}.Macro..| 0004b3c0 09 43 6f 64 65 09 4d 65 61 6e 69 6e 67 0a 23 6c |.Code.Meaning.#l| 0004b3d0 69 6e 65 0a 70 6c 6f 74 5f 4d 4f 56 45 43 55 52 |ine.plot_MOVECUR| 0004b3e0 53 4f 52 52 45 4c 09 30 09 4d 6f 76 65 20 63 75 |SORREL.0.Move cu| 0004b3f0 72 73 6f 72 20 72 65 6c 61 74 69 76 65 0a 70 6c |rsor relative.pl| 0004b400 6f 74 5f 44 52 41 57 52 45 4c 46 4f 52 45 09 31 |ot_DRAWRELFORE.1| 0004b410 09 50 6c 6f 74 20 72 65 6c 61 74 69 76 65 20 69 |.Plot relative i| 0004b420 6e 20 66 6f 72 65 67 72 6f 75 6e 64 0a 70 6c 6f |n foreground.plo| 0004b430 74 5f 44 52 41 57 52 45 4c 49 4e 56 45 52 53 45 |t_DRAWRELINVERSE| 0004b440 09 32 09 50 6c 6f 74 20 72 65 6c 61 74 69 76 65 |.2.Plot relative| 0004b450 20 69 6e 20 69 6e 76 65 72 73 65 0a 70 6c 6f 74 | in inverse.plot| 0004b460 5f 44 52 41 57 52 45 4c 42 41 43 4b 09 33 09 50 |_DRAWRELBACK.3.P| 0004b470 6c 6f 74 20 72 65 6c 61 74 69 76 65 20 69 6e 20 |lot relative in | 0004b480 62 61 63 6b 67 72 6f 75 6e 64 0a 70 6c 6f 74 5f |background.plot_| 0004b490 4d 4f 56 45 43 55 52 53 4f 52 41 42 53 09 34 09 |MOVECURSORABS.4.| 0004b4a0 4d 6f 76 65 20 63 75 72 73 6f 72 20 61 62 73 6f |Move cursor abso| 0004b4b0 6c 75 74 65 0a 70 6c 6f 74 5f 44 52 41 57 41 42 |lute.plot_DRAWAB| 0004b4c0 53 46 4f 52 45 09 35 09 50 6c 6f 74 20 61 62 73 |SFORE.5.Plot abs| 0004b4d0 6f 6c 75 74 65 20 69 6e 20 66 6f 72 65 67 72 6f |olute in foregro| 0004b4e0 75 6e 64 0a 70 6c 6f 74 5f 44 52 41 57 41 42 53 |und.plot_DRAWABS| 0004b4f0 49 4e 56 45 52 53 45 09 36 09 50 6c 6f 74 20 61 |INVERSE.6.Plot a| 0004b500 62 73 6f 6c 75 74 65 20 69 6e 20 69 6e 76 65 72 |bsolute in inver| 0004b510 73 65 0a 70 6c 6f 74 5f 44 52 41 57 41 42 53 42 |se.plot_DRAWABSB| 0004b520 41 43 4b 09 37 09 50 6c 6f 74 20 61 62 73 6f 6c |ACK.7.Plot absol| 0004b530 75 74 65 20 69 6e 20 62 61 63 6b 67 72 6f 75 6e |ute in backgroun| 0004b540 64 00 00 00 44 41 54 41 d8 00 00 00 47 46 58 5f |d...DATA....GFX_| 0004b550 50 6c 6f 74 50 6f 69 6e 74 0a 53 79 6e 74 61 78 |PlotPoint.Syntax| 0004b560 3a 09 76 6f 69 64 20 47 46 58 5f 50 6c 6f 74 50 |:.void GFX_PlotP| 0004b570 6f 69 6e 74 20 28 69 6e 74 20 78 2c 20 69 6e 74 |oint (int x, int| 0004b580 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 | y);.Header:.<De| 0004b590 73 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 58 |skLib:GFX.h=>GFX| 0004b5a0 3e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 75 73 |>..This macro us| 0004b5b0 65 73 20 3c 47 46 58 5f 50 6c 6f 74 3e 20 74 6f |es <GFX_Plot> to| 0004b5c0 20 70 6c 6f 74 20 61 20 73 69 6e 67 6c 65 20 70 | plot a single p| 0004b5d0 6f 69 6e 74 20 6f 6e 20 74 68 65 20 73 63 72 65 |oint on the scre| 0004b5e0 65 6e 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e |en in the curren| 0004b5f0 74 20 67 72 61 70 68 69 63 73 20 66 6f 72 65 67 |t graphics foreg| 0004b600 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 20 61 74 20 |round colour at | 0004b610 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 44 41 54 41 |{/}(x,y){/}.DATA| 0004b620 25 01 00 00 47 46 58 5f 50 6c 6f 74 50 6f 69 6e |%...GFX_PlotPoin| 0004b630 74 42 79 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |tBy.Syntax:.void| 0004b640 20 47 46 58 5f 50 6c 6f 74 50 6f 69 6e 74 42 79 | GFX_PlotPointBy| 0004b650 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b | (int x, int y);| 0004b660 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 0004b670 62 3a 47 46 58 2e 68 3d 3e 47 46 58 3e 0a 0a 54 |b:GFX.h=>GFX>..T| 0004b680 68 69 73 20 6d 61 63 72 6f 20 75 73 65 73 20 3c |his macro uses <| 0004b690 47 46 58 5f 50 6c 6f 74 3e 20 74 6f 20 70 6c 6f |GFX_Plot> to plo| 0004b6a0 74 20 61 20 73 69 6e 67 6c 65 20 70 6f 69 6e 74 |t a single point| 0004b6b0 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 20 69 | on the screen i| 0004b6c0 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 72 |n the current gr| 0004b6d0 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f 75 6e |aphics foregroun| 0004b6e0 64 20 63 6f 6c 6f 75 72 20 61 74 20 61 20 70 6f |d colour at a po| 0004b6f0 69 6e 74 20 77 68 6f 73 65 20 6f 66 66 73 65 74 |int whose offset| 0004b700 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 | relative to the| 0004b710 20 63 75 72 72 65 6e 74 20 67 72 61 70 68 69 63 | current graphic| 0004b720 73 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f |s cursor positio| 0004b730 6e 20 69 73 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d |n is {/}(x,y){/}| 0004b740 2e 00 00 00 44 41 54 41 0d 01 00 00 47 46 58 5f |....DATA....GFX_| 0004b750 52 65 63 74 61 6e 67 6c 65 0a 53 79 6e 74 61 78 |Rectangle.Syntax| 0004b760 3a 09 76 6f 69 64 20 47 46 58 5f 52 65 63 74 61 |:.void GFX_Recta| 0004b770 6e 67 6c 65 20 28 69 6e 74 20 78 2c 20 69 6e 74 |ngle (int x, int| 0004b780 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 | y, int w, int h| 0004b790 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0004b7a0 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 58 3e 0a |Lib:GFX.h=>GFX>.| 0004b7b0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 |.This function d| 0004b7c0 72 61 77 73 20 61 20 72 65 63 74 61 6e 67 6c 65 |raws a rectangle| 0004b7d0 20 6f 75 74 6c 69 6e 65 20 6f 6e 20 74 68 65 20 | outline on the | 0004b7e0 73 63 72 65 65 6e 20 69 6e 20 74 68 65 20 63 75 |screen in the cu| 0004b7f0 72 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 66 |rrent graphics f| 0004b800 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |oreground colour| 0004b810 2c 20 77 69 74 68 20 6f 6e 65 20 63 6f 72 6e 65 |, with one corne| 0004b820 72 20 61 74 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d |r at {/}(x,y){/}| 0004b830 20 61 6e 64 20 61 6e 6f 74 68 65 72 20 61 74 20 | and another at | 0004b840 7b 2f 7d 28 78 2b 77 2c 20 79 2b 68 29 7b 2f 7d |{/}(x+w, y+h){/}| 0004b850 2e 00 00 00 44 41 54 41 15 01 00 00 47 46 58 5f |....DATA....GFX_| 0004b860 52 65 63 74 61 6e 67 6c 65 46 69 6c 6c 0a 53 79 |RectangleFill.Sy| 0004b870 6e 74 61 78 3a 09 76 6f 69 64 20 47 46 58 5f 52 |ntax:.void GFX_R| 0004b880 65 63 74 61 6e 67 6c 65 46 69 6c 6c 20 28 69 6e |ectangleFill (in| 0004b890 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 |t x, int y, int | 0004b8a0 77 2c 20 69 6e 74 20 68 29 3b 0a 48 65 61 64 65 |w, int h);.Heade| 0004b8b0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 47 46 58 2e |r:.<DeskLib:GFX.| 0004b8c0 68 3d 3e 47 46 58 3e 0a 0a 54 68 69 73 20 6d 61 |h=>GFX>..This ma| 0004b8d0 63 72 6f 20 75 73 65 73 20 3c 47 46 58 5f 50 6c |cro uses <GFX_Pl| 0004b8e0 6f 74 3e 20 74 6f 20 64 72 61 77 20 61 20 66 69 |ot> to draw a fi| 0004b8f0 6c 6c 65 64 20 72 65 63 74 61 6e 67 6c 65 20 69 |lled rectangle i| 0004b900 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 72 |n the current gr| 0004b910 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f 75 6e |aphics foregroun| 0004b920 64 20 63 6f 6c 6f 75 72 2c 20 77 69 74 68 20 6f |d colour, with o| 0004b930 6e 65 20 63 6f 72 6e 65 72 20 61 74 20 7b 2f 7d |ne corner at {/}| 0004b940 28 78 2c 79 29 7b 2f 7d 20 61 6e 64 20 61 6e 6f |(x,y){/} and ano| 0004b950 74 68 65 72 20 61 74 20 7b 2f 7d 28 78 2b 77 2c |ther at {/}(x+w,| 0004b960 20 79 2b 68 29 7b 2f 7d 2e 00 00 00 44 41 54 41 | y+h){/}....DATA| 0004b970 55 00 00 00 54 69 6d 73 4c 69 62 3a 47 46 58 2e |U...TimsLib:GFX.| 0004b980 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 66 69 |h.This header fi| 0004b990 6c 65 20 64 65 63 6c 61 72 65 73 20 6a 75 73 74 |le declares just| 0004b9a0 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 | one function-li| 0004b9b0 6b 65 20 6d 61 63 72 6f 2c 20 3c 47 43 6f 6c 3e |ke macro, <GCol>| 0004b9c0 2e 00 00 00 44 41 54 41 76 01 00 00 47 46 58 5f |....DATAv...GFX_| 0004b9d0 56 44 55 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |VDU.Syntax:.void| 0004b9e0 20 47 46 58 5f 56 44 55 20 28 63 68 61 72 20 63 | GFX_VDU (char c| 0004b9f0 68 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |h);.Header:.<Des| 0004ba00 6b 4c 69 62 3a 47 46 58 2e 68 3d 3e 47 46 58 3e |kLib:GFX.h=>GFX>| 0004ba10 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0004ba20 73 65 6e 64 73 20 74 68 65 20 73 69 6e 67 6c 65 |sends the single| 0004ba30 20 63 68 61 72 61 63 74 65 72 20 73 70 65 63 69 | character speci| 0004ba40 66 69 65 64 20 69 6e 20 2f 63 68 2f 20 74 6f 20 |fied in /ch/ to | 0004ba50 74 68 65 20 56 44 55 20 64 72 69 76 65 72 73 20 |the VDU drivers | 0004ba60 28 61 73 20 69 66 20 3c 4f 53 5f 57 72 69 74 65 |(as if <OS_Write| 0004ba70 43 3d 3e 53 57 49 3a 4f 53 5f 57 72 69 74 65 43 |C=>SWI:OS_WriteC| 0004ba80 3e 20 68 61 64 20 62 65 65 6e 20 63 61 6c 6c 65 |> had been calle| 0004ba90 64 29 2e 20 2f 63 68 2f 20 63 61 6e 20 63 6f 6e |d). /ch/ can con| 0004baa0 74 61 69 6e 20 73 6f 6d 65 20 3c 63 6f 6e 74 72 |tain some <contr| 0004bab0 6f 6c 20 63 6f 64 65 73 3d 3e 56 44 55 3a 21 52 |ol codes=>VDU:!R| 0004bac0 6f 6f 74 3e 2c 20 61 73 20 77 65 6c 6c 20 61 73 |oot>, as well as| 0004bad0 20 70 72 69 6e 74 61 62 6c 65 20 63 68 61 72 61 | printable chara| 0004bae0 63 74 65 72 73 2e 0a 0a 41 20 6d 61 63 72 6f 20 |cters...A macro | 0004baf0 69 73 20 64 65 66 69 6e 65 64 20 77 68 69 63 68 |is defined which| 0004bb00 20 65 6e 61 62 6c 65 73 20 79 6f 75 20 74 6f 20 | enables you to | 0004bb10 63 61 6c 6c 20 74 68 69 73 20 66 75 6e 63 74 69 |call this functi| 0004bb20 6f 6e 20 77 69 74 68 20 7b 66 43 6f 64 65 7d 56 |on with {fCode}V| 0004bb30 44 55 28 63 68 29 7b 66 7d 2e 00 00 44 41 54 41 |DU(ch){f}...DATA| 0004bb40 14 02 00 00 47 46 58 5f 57 61 69 74 0a 53 79 6e |....GFX_Wait.Syn| 0004bb50 74 61 78 3a 09 76 6f 69 64 20 47 46 58 5f 57 61 |tax:.void GFX_Wa| 0004bb60 69 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |it (void);.Heade| 0004bb70 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 47 46 58 2e |r:.<DeskLib:GFX.| 0004bb80 68 3d 3e 47 46 58 3e 0a 0a 54 68 69 73 20 66 75 |h=>GFX>..This fu| 0004bb90 6e 63 74 69 6f 6e 20 77 61 69 74 73 20 75 6e 74 |nction waits unt| 0004bba0 69 6c 20 74 68 65 20 76 65 72 74 69 63 61 6c 20 |il the vertical | 0004bbb0 73 63 72 65 65 6e 20 72 65 66 72 65 73 68 20 68 |screen refresh h| 0004bbc0 61 73 20 66 69 6e 69 73 68 65 64 2e 20 54 68 69 |as finished. Thi| 0004bbd0 73 20 6d 65 61 6e 73 20 74 68 61 74 20 69 74 20 |s means that it | 0004bbe0 72 65 74 75 72 6e 73 20 5f 6a 75 73 74 20 61 66 |returns _just af| 0004bbf0 74 65 72 5f 20 74 68 65 20 73 63 72 65 65 6e 20 |ter_ the screen | 0004bc00 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 |has been updated| 0004bc10 20 6f 6e 20 74 68 65 20 6d 6f 6e 69 74 6f 72 2c | on the monitor,| 0004bc20 20 73 6f 20 61 6e 79 20 61 6c 74 65 72 61 74 69 | so any alterati| 0004bc30 6f 6e 20 6d 61 64 65 20 74 6f 20 74 68 65 20 73 |on made to the s| 0004bc40 63 72 65 65 6e 20 6e 6f 77 20 77 69 6c 6c 20 6e |creen now will n| 0004bc50 6f 74 20 6f 63 63 75 72 20 77 68 69 6c 65 20 69 |ot occur while i| 0004bc60 74 20 69 73 20 62 65 69 6e 67 20 72 65 64 72 61 |t is being redra| 0004bc70 77 6e 20 28 61 6e 64 20 74 68 65 72 65 66 6f 72 |wn (and therefor| 0004bc80 65 20 61 76 6f 69 64 73 20 66 6c 69 63 6b 65 72 |e avoids flicker| 0004bc90 29 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c |). It is equival| 0004bca0 65 6e 74 20 74 6f 20 3c 57 41 49 54 3d 3e 42 61 |ent to <WAIT=>Ba| 0004bcb0 73 69 63 3a 57 41 49 54 3e 20 69 6e 20 42 61 73 |sic:WAIT> in Bas| 0004bcc0 69 63 2e 0a 0a 4f 6e 20 54 56 2d 74 79 70 65 20 |ic...On TV-type | 0004bcd0 6d 6f 6e 69 74 6f 72 73 20 74 68 65 20 72 65 66 |monitors the ref| 0004bce0 72 65 73 68 20 68 61 70 70 65 6e 73 20 35 30 20 |resh happens 50 | 0004bcf0 74 69 6d 65 73 20 61 20 73 65 63 6f 6e 64 2c 20 |times a second, | 0004bd00 62 75 74 20 6d 75 6c 74 69 73 63 61 6e 73 2c 20 |but multiscans, | 0004bd10 56 47 41 2c 20 53 56 47 41 20 61 6e 64 20 68 69 |VGA, SVGA and hi| 0004bd20 2d 72 65 73 20 6d 6f 6e 6f 20 6d 6f 6e 69 74 6f |-res mono monito| 0004bd30 72 73 20 68 61 76 65 20 64 69 66 66 65 72 65 6e |rs have differen| 0004bd40 74 20 72 65 66 72 65 73 68 20 72 61 74 65 73 2e |t refresh rates.| 0004bd50 44 41 54 41 d7 00 00 00 47 46 58 5f 57 72 69 74 |DATA....GFX_Writ| 0004bd60 65 30 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |e0.Syntax:.void | 0004bd70 47 46 58 5f 57 72 69 74 65 30 20 28 63 68 61 72 |GFX_Write0 (char| 0004bd80 20 2a 73 74 72 69 6e 67 29 3b 0a 48 65 61 64 65 | *string);.Heade| 0004bd90 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 47 46 58 2e |r:.<DeskLib:GFX.| 0004bda0 68 3d 3e 47 46 58 3e 0a 0a 54 68 69 73 20 66 75 |h=>GFX>..This fu| 0004bdb0 6e 63 74 69 6f 6e 20 77 72 69 74 65 73 20 74 68 |nction writes th| 0004bdc0 65 20 67 69 76 65 6e 20 6e 75 6c 6c 2d 74 65 72 |e given null-ter| 0004bdd0 6d 69 6e 61 74 65 64 20 73 74 72 69 6e 67 20 74 |minated string t| 0004bde0 6f 20 74 68 65 20 56 44 55 20 73 74 72 65 61 6d |o the VDU stream| 0004bdf0 2c 20 61 73 20 69 66 20 53 57 49 20 3c 4f 53 5f |, as if SWI <OS_| 0004be00 57 72 69 74 65 30 3d 3e 53 57 49 3a 4f 53 5f 57 |Write0=>SWI:OS_W| 0004be10 72 69 74 65 30 3e 20 68 61 64 20 62 65 65 6e 20 |rite0> had been | 0004be20 63 61 6c 6c 65 64 2e 00 44 41 54 41 f3 00 00 00 |called..DATA....| 0004be30 47 46 58 5f 57 72 69 74 65 4e 0a 53 79 6e 74 61 |GFX_WriteN.Synta| 0004be40 78 3a 09 76 6f 69 64 20 47 46 58 5f 57 72 69 74 |x:.void GFX_Writ| 0004be50 65 4e 20 28 63 68 61 72 20 2a 73 74 72 69 6e 67 |eN (char *string| 0004be60 2c 20 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 72 |, int n);.Header| 0004be70 3a 09 3c 44 65 73 6b 4c 69 62 3a 47 46 58 2e 68 |:.<DeskLib:GFX.h| 0004be80 3d 3e 47 46 58 3e 0a 0a 54 68 69 73 20 66 75 6e |=>GFX>..This fun| 0004be90 63 74 69 6f 6e 20 77 72 69 74 65 73 20 2f 6e 2f |ction writes /n/| 0004bea0 20 63 68 61 72 61 63 74 65 72 73 2c 20 66 72 6f | characters, fro| 0004beb0 6d 20 74 68 65 20 73 74 72 69 6e 67 20 77 68 6f |m the string who| 0004bec0 73 65 20 70 6f 69 6e 74 65 72 20 69 73 20 67 69 |se pointer is gi| 0004bed0 76 65 6e 2c 20 74 6f 20 74 68 65 20 56 44 55 20 |ven, to the VDU | 0004bee0 73 74 72 65 61 6d 2e 20 49 74 20 69 73 20 65 71 |stream. It is eq| 0004bef0 75 69 76 61 6c 65 6e 74 20 74 6f 20 53 57 49 20 |uivalent to SWI | 0004bf00 3c 4f 53 5f 57 72 69 74 65 4e 3d 3e 53 57 49 3a |<OS_WriteN=>SWI:| 0004bf10 4f 53 5f 57 72 69 74 65 4e 3e 2e 00 44 41 54 41 |OS_WriteN>..DATA| 0004bf20 02 01 00 00 67 6d 74 69 6d 65 0a 53 79 6e 74 61 |....gmtime.Synta| 0004bf30 78 3a 09 3c 73 74 72 75 63 74 a0 74 6d 3e 20 2a |x:.<struct.tm> *| 0004bf40 67 6d 74 69 6d 65 20 28 3c 74 69 6d 65 5f 74 3e |gmtime (<time_t>| 0004bf50 20 2a 74 69 6d 65 72 29 3b 0a 48 65 61 64 65 72 | *timer);.Header| 0004bf60 3a 09 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 5f |:.<time.h=>time_| 0004bf70 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 0004bf80 6e 74 65 72 20 74 6f 20 74 68 65 20 62 72 6f 6b |nter to the brok| 0004bf90 65 6e 2d 64 6f 77 6e 20 74 69 6d 65 2e 0a 0a 54 |en-down time...T| 0004bfa0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e |his function con| 0004bfb0 76 65 72 74 73 20 74 68 65 20 63 61 6c 65 6e 64 |verts the calend| 0004bfc0 61 72 20 74 69 6d 65 20 70 6f 69 6e 74 65 64 20 |ar time pointed | 0004bfd0 74 6f 20 62 79 20 2f 74 69 6d 65 72 2f 20 69 6e |to by /timer/ in| 0004bfe0 74 6f 20 61 20 62 72 6f 6b 65 6e 2d 64 6f 77 6e |to a broken-down| 0004bff0 20 74 69 6d 65 2c 20 65 78 70 72 65 73 73 65 64 | time, expressed| 0004c000 20 69 6e 20 47 72 65 65 6e 77 69 63 68 20 4d 65 | in Greenwich Me| 0004c010 61 6e 20 54 69 6d 65 20 28 47 4d 54 29 2e 00 00 |an Time (GMT)...| 0004c020 44 41 54 41 3a 02 00 00 44 65 73 6b 4c 69 62 3a |DATA:...DeskLib:| 0004c030 48 61 6e 64 6c 65 72 2e 68 0a 56 65 72 73 69 6f |Handler.h.Versio| 0004c040 6e 3a 20 31 2e 30 33 20 28 30 31 20 41 70 72 20 |n: 1.03 (01 Apr | 0004c050 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 |1994).#line.This| 0004c060 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 0004c070 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 | functions which| 0004c080 20 61 72 65 20 66 6f 72 20 75 73 65 20 77 69 74 | are for use wit| 0004c090 68 20 74 68 65 20 3c 45 76 65 6e 74 3e 20 6f 72 |h the <Event> or| 0004c0a0 20 3c 45 76 65 6e 74 4d 73 67 3e 20 73 79 73 74 | <EventMsg> syst| 0004c0b0 65 6d 73 2e 20 54 68 65 79 20 61 72 65 20 6e 6f |ems. They are no| 0004c0c0 74 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 |t intended to be| 0004c0d0 20 63 61 6c 6c 65 64 20 64 69 72 65 63 74 6c 79 | called directly| 0004c0e0 2e 0a 0a 23 69 6e 64 65 6e 74 20 35 0a 23 74 61 |...#indent 5.#ta| 0004c0f0 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 48 |ble columns 2.<H| 0004c100 61 6e 64 6c 65 72 5f 43 6c 6f 73 65 57 69 6e 64 |andler_CloseWind| 0004c110 6f 77 3e 0a 3c 48 61 6e 64 6c 65 72 5f 44 65 6c |ow>.<Handler_Del| 0004c120 65 74 65 57 69 6e 64 6f 77 3e 0a 3c 48 61 6e 64 |eteWindow>.<Hand| 0004c130 6c 65 72 5f 4f 70 65 6e 57 69 6e 64 6f 77 3e 0a |ler_OpenWindow>.| 0004c140 3c 48 61 6e 64 6c 65 72 5f 4e 75 6c 6c 52 65 64 |<Handler_NullRed| 0004c150 72 61 77 3e 0a 3c 48 61 6e 64 6c 65 72 5f 43 6c |raw>.<Handler_Cl| 0004c160 69 63 6b 4f 4b 3e 0a 3c 48 61 6e 64 6c 65 72 5f |ickOK>.<Handler_| 0004c170 4d 6f 64 65 43 68 61 6e 67 65 3e 0a 3c 48 61 6e |ModeChange>.<Han| 0004c180 64 6c 65 72 5f 44 72 61 67 4e 55 4c 4c 3e 0a 3c |dler_DragNULL>.<| 0004c190 48 61 6e 64 6c 65 72 5f 44 72 61 67 46 69 6e 69 |Handler_DragFini| 0004c1a0 73 68 3e 0a 3c 48 61 6e 64 6c 65 72 5f 48 61 74 |sh>.<Handler_Hat| 0004c1b0 63 68 52 65 64 72 61 77 3e 0a 23 65 6e 64 74 61 |chRedraw>.#endta| 0004c1c0 62 6c 65 0a 0a 23 69 6e 64 65 6e 74 0a 41 73 20 |ble..#indent.As | 0004c1d0 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 |a consequence of| 0004c1e0 20 74 68 65 69 72 20 75 73 65 2c 20 61 6c 6c 20 | their use, all | 0004c1f0 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 |the functions ha| 0004c200 76 65 20 74 68 65 20 73 61 6d 65 20 70 72 6f 74 |ve the same prot| 0004c210 6f 74 79 70 65 20 28 74 68 65 79 20 61 72 65 20 |otype (they are | 0004c220 61 6c 6c 20 3c 65 76 65 6e 74 5f 68 61 6e 64 6c |all <event_handl| 0004c230 65 72 3e 73 29 20 61 6e 64 20 61 6c 6c 20 72 65 |er>s) and all re| 0004c240 74 75 72 6e 20 3c 54 52 55 45 3e 20 69 66 20 73 |turn <TRUE> if s| 0004c250 75 63 63 65 73 73 66 75 6c 2e 00 00 44 49 52 24 |uccessful...DIR$| 0004c260 50 01 00 00 50 01 00 00 ac c3 04 00 46 ff ff ff |P...P.......F...| 0004c270 69 d4 2b 25 1b 01 00 00 13 00 00 00 00 00 00 00 |i.+%............| 0004c280 43 6c 69 63 6b 4f 4b 00 c8 c4 04 00 46 ff ff ff |ClickOK.....F...| 0004c290 54 b2 2b 25 1b 01 00 00 13 00 00 00 00 00 00 00 |T.+%............| 0004c2a0 43 6c 6f 73 65 57 69 6e 64 6f 77 00 e4 c5 04 00 |CloseWindow.....| 0004c2b0 46 ff ff ff b6 ba 2b 25 1a 01 00 00 13 00 00 00 |F.....+%........| 0004c2c0 00 00 00 00 44 65 6c 65 74 65 57 69 6e 64 6f 77 |....DeleteWindow| 0004c2d0 00 00 00 00 00 c7 04 00 46 ff ff ff be e9 2b 25 |........F.....+%| 0004c2e0 ad 00 00 00 13 00 00 00 00 00 00 00 44 72 61 67 |............Drag| 0004c2f0 46 69 6e 69 73 68 00 00 b0 c7 04 00 46 ff ff ff |Finish......F...| 0004c300 d9 e2 2b 25 a6 00 00 00 13 00 00 00 00 00 00 00 |..+%............| 0004c310 44 72 61 67 4e 55 4c 4c 00 00 00 00 58 c8 04 00 |DragNULL....X...| 0004c320 46 ff ff ff 5e f1 2b 25 3c 01 00 00 13 00 00 00 |F...^.+%<.......| 0004c330 00 00 00 00 48 61 74 63 68 52 65 64 72 61 77 00 |....HatchRedraw.| 0004c340 94 c9 04 00 46 ff ff ff 7a db 2b 25 fb 01 00 00 |....F...z.+%....| 0004c350 13 00 00 00 00 00 00 00 4d 6f 64 65 43 68 61 6e |........ModeChan| 0004c360 67 65 00 00 90 cb 04 00 46 ff ff ff 43 c8 2b 25 |ge......F...C.+%| 0004c370 67 01 00 00 13 00 00 00 00 00 00 00 4e 75 6c 6c |g...........Null| 0004c380 52 65 64 72 61 77 00 00 f8 cc 04 00 46 ff ff ff |Redraw......F...| 0004c390 d2 bf 2b 25 16 01 00 00 13 00 00 00 00 00 00 00 |..+%............| 0004c3a0 4f 70 65 6e 57 69 6e 64 6f 77 00 00 44 41 54 41 |OpenWindow..DATA| 0004c3b0 1b 01 00 00 48 61 6e 64 6c 65 72 5f 43 6c 69 63 |....Handler_Clic| 0004c3c0 6b 4f 4b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |kOK.Header:.<Des| 0004c3d0 6b 4c 69 62 3a 48 61 6e 64 6c 65 72 2e 68 3d 3e |kLib:Handler.h=>| 0004c3e0 48 61 6e 64 6c 65 72 3e 0a 0a 54 68 69 73 20 66 |Handler>..This f| 0004c3f0 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 73 20 |unction handles | 0004c400 63 6c 69 63 6b 73 20 6f 6e 20 33 44 20 62 75 74 |clicks on 3D but| 0004c410 74 6f 6e 73 2e 20 49 74 20 69 6e 64 65 6e 74 73 |tons. It indents| 0004c420 20 74 68 65 20 62 75 74 74 6f 6e 2c 20 77 61 69 | the button, wai| 0004c430 74 73 20 66 6f 72 20 31 2f 33 20 73 65 63 6f 6e |ts for 1/3 secon| 0004c440 64 20 61 6e 64 20 74 68 65 6e 20 75 6e 2d 69 6e |d and then un-in| 0004c450 64 65 6e 74 73 20 74 68 65 20 62 75 74 74 6f 6e |dents the button| 0004c460 2e 20 41 74 74 61 63 68 20 69 74 20 74 6f 20 61 |. Attach it to a| 0004c470 20 70 61 72 74 69 63 75 6c 61 72 20 77 69 6e 64 | particular wind| 0004c480 6f 77 2f 69 63 6f 6e 20 61 6e 64 20 61 20 4d 6f |ow/icon and a Mo| 0004c490 75 73 65 5f 43 6c 69 63 6b 20 65 76 65 6e 74 20 |use_Click event | 0004c4a0 28 7b 2a 7d 65 76 65 6e 74 5f 43 4c 49 43 4b 7b |({*}event_CLICK{| 0004c4b0 2a 7d 29 20 77 69 74 68 20 3c 45 76 65 6e 74 5f |*}) with <Event_| 0004c4c0 43 6c 61 69 6d 3e 2e 00 44 41 54 41 1b 01 00 00 |Claim>..DATA....| 0004c4d0 48 61 6e 64 6c 65 72 5f 43 6c 6f 73 65 57 69 6e |Handler_CloseWin| 0004c4e0 64 6f 77 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |dow.Header:.<Des| 0004c4f0 6b 4c 69 62 3a 48 61 6e 64 6c 65 72 2e 68 3d 3e |kLib:Handler.h=>| 0004c500 48 61 6e 64 6c 65 72 3e 0a 0a 54 68 69 73 20 66 |Handler>..This f| 0004c510 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 3c 57 |unction calls <W| 0004c520 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 3e |imp_CloseWindow>| 0004c530 20 6f 6e 20 74 68 65 20 64 61 74 61 20 72 65 74 | on the data ret| 0004c540 75 72 6e 65 64 20 62 79 20 74 68 65 20 57 69 6d |urned by the Wim| 0004c550 70 2e 20 41 74 74 61 63 68 20 74 6f 20 74 68 65 |p. Attach to the| 0004c560 20 43 6c 6f 73 65 5f 57 69 6e 64 6f 77 5f 52 65 | Close_Window_Re| 0004c570 71 75 65 73 74 20 65 76 65 6e 74 20 75 73 69 6e |quest event usin| 0004c580 67 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e |g:..{fCode;align| 0004c590 20 63 65 6e 74 72 65 7d 3c 45 76 65 6e 74 5f 43 | centre}<Event_C| 0004c5a0 6c 61 69 6d 3e 28 65 76 65 6e 74 5f 43 4c 4f 53 |laim>(event_CLOS| 0004c5b0 45 2c 65 76 65 6e 74 5f 41 4e 59 2c 65 76 65 6e |E,event_ANY,even| 0004c5c0 74 5f 41 4e 59 2c 20 48 61 6e 64 6c 65 72 5f 43 |t_ANY, Handler_C| 0004c5d0 6c 6f 73 65 57 69 6e 64 6f 77 2c 3c 4e 55 4c 4c |loseWindow,<NULL| 0004c5e0 3e 29 3b 00 44 41 54 41 1a 01 00 00 48 61 6e 64 |>);.DATA....Hand| 0004c5f0 6c 65 72 5f 44 65 6c 65 74 65 57 69 6e 64 6f 77 |ler_DeleteWindow| 0004c600 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 0004c610 62 3a 48 61 6e 64 6c 65 72 2e 68 3d 3e 48 61 6e |b:Handler.h=>Han| 0004c620 64 6c 65 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |dler>..This func| 0004c630 74 69 6f 6e 20 63 61 6c 6c 73 20 3c 57 69 6e 64 |tion calls <Wind| 0004c640 6f 77 5f 44 65 6c 65 74 65 3e 20 6f 6e 20 74 68 |ow_Delete> on th| 0004c650 65 20 64 61 74 61 20 72 65 74 75 72 6e 65 64 20 |e data returned | 0004c660 62 79 20 74 68 65 20 57 69 6d 70 2e 20 41 74 74 |by the Wimp. Att| 0004c670 61 63 68 20 74 6f 20 74 68 65 20 43 6c 6f 73 65 |ach to the Close| 0004c680 5f 57 69 6e 64 6f 77 5f 52 65 71 75 65 73 74 20 |_Window_Request | 0004c690 65 76 65 6e 74 20 75 73 69 6e 67 3a 0a 0a 7b 66 |event using:..{f| 0004c6a0 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 0004c6b0 65 7d 3c 45 76 65 6e 74 5f 43 6c 61 69 6d 3e 28 |e}<Event_Claim>(| 0004c6c0 65 76 65 6e 74 5f 43 4c 4f 53 45 2c 65 76 65 6e |event_CLOSE,even| 0004c6d0 74 5f 41 4e 59 2c 65 76 65 6e 74 5f 41 4e 59 2c |t_ANY,event_ANY,| 0004c6e0 20 48 61 6e 64 6c 65 72 5f 44 65 6c 65 74 65 57 | Handler_DeleteW| 0004c6f0 69 6e 64 6f 77 2c 3c 4e 55 4c 4c 3e 29 3b 00 00 |indow,<NULL>);..| 0004c700 44 41 54 41 ad 00 00 00 48 61 6e 64 6c 65 72 5f |DATA....Handler_| 0004c710 44 72 61 67 46 69 6e 69 73 68 0a 48 65 61 64 65 |DragFinish.Heade| 0004c720 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 48 61 6e 64 |r:.<DeskLib:Hand| 0004c730 6c 65 72 2e 68 3d 3e 48 61 6e 64 6c 65 72 3e 0a |ler.h=>Handler>.| 0004c740 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0004c750 61 6c 6c 73 20 74 68 65 20 64 72 61 67 2d 63 6f |alls the drag-co| 0004c760 6d 70 6c 65 74 65 20 68 61 6e 64 6c 65 72 20 72 |mplete handler r| 0004c770 65 67 69 73 74 65 72 65 64 20 77 69 74 68 20 3c |egistered with <| 0004c780 44 72 61 67 5f 53 65 74 48 61 6e 64 6c 65 72 73 |Drag_SetHandlers| 0004c790 3e 20 61 6e 64 20 72 65 73 65 74 73 20 74 68 65 |> and resets the| 0004c7a0 20 44 72 61 67 20 6d 6f 64 75 6c 65 2e 00 00 00 | Drag module....| 0004c7b0 44 41 54 41 a6 00 00 00 48 61 6e 64 6c 65 72 5f |DATA....Handler_| 0004c7c0 44 72 61 67 4e 55 4c 4c 0a 48 65 61 64 65 72 3a |DragNULL.Header:| 0004c7d0 09 3c 44 65 73 6b 4c 69 62 3a 48 61 6e 64 6c 65 |.<DeskLib:Handle| 0004c7e0 72 2e 68 3d 3e 48 61 6e 64 6c 65 72 3e 0a 0a 54 |r.h=>Handler>..T| 0004c7f0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 0004c800 6c 73 20 74 68 65 20 64 72 61 67 20 68 61 6e 64 |ls the drag hand| 0004c810 6c 65 72 20 72 65 67 69 73 74 65 72 65 64 20 77 |ler registered w| 0004c820 69 74 68 20 3c 44 72 61 67 5f 53 65 74 48 61 6e |ith <Drag_SetHan| 0004c830 64 6c 65 72 73 3e 20 6f 6e 20 65 61 63 68 20 4e |dlers> on each N| 0004c840 75 6c 6c 20 65 76 65 6e 74 20 69 74 20 72 65 63 |ull event it rec| 0004c850 65 69 76 65 73 2e 00 00 44 41 54 41 3c 01 00 00 |eives...DATA<...| 0004c860 48 61 6e 64 6c 65 72 5f 48 61 74 63 68 52 65 64 |Handler_HatchRed| 0004c870 72 61 77 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |raw.Header:.<Des| 0004c880 6b 4c 69 62 3a 48 61 6e 64 6c 65 72 2e 68 3d 3e |kLib:Handler.h=>| 0004c890 48 61 6e 64 6c 65 72 3e 0a 0a 54 68 69 73 20 66 |Handler>..This f| 0004c8a0 75 6e 63 74 69 6f 6e 20 73 75 70 70 6c 69 65 73 |unction supplies| 0004c8b0 20 61 20 72 65 64 72 61 77 20 6c 6f 6f 70 20 69 | a redraw loop i| 0004c8c0 6e 20 77 68 69 63 68 20 74 68 65 20 61 72 65 61 |n which the area| 0004c8d0 20 6f 66 20 77 69 6e 64 6f 77 20 69 73 20 72 65 | of window is re| 0004c8e0 64 72 61 77 20 77 69 74 68 20 61 20 68 61 74 63 |draw with a hatc| 0004c8f0 68 20 70 61 74 74 65 72 6e 2e 20 54 68 69 73 20 |h pattern. This | 0004c900 69 73 20 75 73 65 66 75 6c 20 77 68 65 6e 20 74 |is useful when t| 0004c910 65 73 74 69 6e 67 20 70 72 6f 67 72 61 6d 73 20 |esting programs | 0004c920 77 69 74 68 6f 75 74 20 68 61 76 69 6e 67 20 61 |without having a| 0004c930 63 74 75 61 6c 6c 79 20 77 72 69 74 74 65 6e 20 |ctually written | 0004c940 79 6f 75 72 20 6f 77 6e 20 70 72 6f 70 65 72 20 |your own proper | 0004c950 72 65 64 72 61 77 20 72 6f 75 74 69 6e 65 2e 20 |redraw routine. | 0004c960 41 74 74 61 63 68 20 69 74 20 74 6f 20 7b 2a 7d |Attach it to {*}| 0004c970 65 76 65 6e 74 5f 52 45 44 52 41 57 7b 2a 7d 20 |event_REDRAW{*} | 0004c980 75 73 69 6e 67 20 3c 45 76 65 6e 74 5f 43 6c 61 |using <Event_Cla| 0004c990 69 6d 3e 2e 44 41 54 41 fb 01 00 00 48 61 6e 64 |im>.DATA....Hand| 0004c9a0 6c 65 72 5f 4d 6f 64 65 43 68 61 6e 67 65 0a 48 |ler_ModeChange.H| 0004c9b0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0004c9c0 48 61 6e 64 6c 65 72 2e 68 3d 3e 48 61 6e 64 6c |Handler.h=>Handl| 0004c9d0 65 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |er>..This functi| 0004c9e0 6f 6e 20 69 73 20 61 20 68 61 6e 64 6c 65 72 20 |on is a handler | 0004c9f0 66 6f 72 20 6d 6f 64 65 20 63 68 61 6e 67 65 20 |for mode change | 0004ca00 65 76 65 6e 74 73 2e 20 49 74 20 63 61 6c 6c 73 |events. It calls| 0004ca10 20 3c 53 63 72 65 65 6e 5f 43 61 63 68 65 4d 6f | <Screen_CacheMo| 0004ca20 64 65 49 6e 66 6f 3e 20 65 76 65 72 79 20 74 69 |deInfo> every ti| 0004ca30 6d 65 20 74 68 65 20 73 63 72 65 65 6e 20 6d 6f |me the screen mo| 0004ca40 64 65 20 63 68 61 6e 67 65 73 2e 20 49 66 20 79 |de changes. If y| 0004ca50 6f 75 20 68 61 76 65 20 63 61 6c 6c 65 64 20 3c |ou have called <| 0004ca60 54 65 6d 70 6c 61 74 65 5f 55 73 65 4f 75 74 6c |Template_UseOutl| 0004ca70 69 6e 65 46 6f 6e 74 73 3e 2c 20 61 6e 64 20 74 |ineFonts>, and t| 0004ca80 68 65 20 73 63 72 65 65 6e 20 72 65 73 6f 6c 75 |he screen resolu| 0004ca90 74 69 6f 6e 20 68 61 73 20 63 68 61 6e 67 65 64 |tion has changed| 0004caa0 2c 20 69 74 20 61 6c 73 6f 20 63 61 6c 6c 73 20 |, it also calls | 0004cab0 3c 57 69 6e 64 6f 77 5f 4d 6f 64 65 43 68 61 6e |<Window_ModeChan| 0004cac0 67 65 3e 20 28 74 68 65 72 65 66 6f 72 65 20 61 |ge> (therefore a| 0004cad0 6c 6c 20 79 6f 75 72 20 77 69 6e 64 6f 77 73 20 |ll your windows | 0004cae0 6d 75 73 74 20 62 65 20 63 72 65 61 74 65 64 20 |must be created | 0004caf0 77 69 74 68 20 3c 57 69 6e 64 6f 77 5f 43 72 65 |with <Window_Cre| 0004cb00 61 74 65 3e 29 2e 20 41 74 74 61 63 68 20 69 74 |ate>). Attach it| 0004cb10 20 74 6f 20 6d 6f 64 65 20 63 68 61 6e 67 65 20 | to mode change | 0004cb20 6d 65 73 73 61 67 65 20 77 69 74 68 3a 0a 0a 7b |message with:..{| 0004cb30 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 |fCode;align cent| 0004cb40 72 65 7d 3c 45 76 65 6e 74 4d 73 67 5f 43 6c 61 |re}<EventMsg_Cla| 0004cb50 69 6d 3e 28 6d 65 73 73 61 67 65 5f 4d 4f 44 45 |im>(message_MODE| 0004cb60 43 48 41 4e 47 45 2c 20 65 76 65 6e 74 5f 41 4e |CHANGE, event_AN| 0004cb70 59 2c 20 48 61 6e 64 6c 65 72 5f 4d 6f 64 65 43 |Y, Handler_ModeC| 0004cb80 68 61 6e 67 65 2c 20 3c 4e 55 4c 4c 3e 29 3b 00 |hange, <NULL>);.| 0004cb90 44 41 54 41 67 01 00 00 48 61 6e 64 6c 65 72 5f |DATAg...Handler_| 0004cba0 4e 75 6c 6c 52 65 64 72 61 77 0a 48 65 61 64 65 |NullRedraw.Heade| 0004cbb0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 48 61 6e 64 |r:.<DeskLib:Hand| 0004cbc0 6c 65 72 2e 68 3d 3e 48 61 6e 64 6c 65 72 3e 0a |ler.h=>Handler>.| 0004cbd0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 0004cbe0 75 70 70 6c 69 65 73 20 61 20 64 75 6d 6d 79 20 |upplies a dummy | 0004cbf0 72 65 64 72 61 77 20 6c 6f 6f 70 2e 20 49 74 20 |redraw loop. It | 0004cc00 6a 75 73 74 20 63 61 6c 6c 73 20 3c 57 69 6d 70 |just calls <Wimp| 0004cc10 5f 52 65 64 72 61 77 57 69 6e 64 6f 77 3e 20 74 |_RedrawWindow> t| 0004cc20 68 65 6e 20 67 65 74 73 20 72 65 63 74 61 6e 67 |hen gets rectang| 0004cc30 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 57 69 6d |les from the Wim| 0004cc40 70 20 75 6e 74 69 6c 20 74 68 65 79 20 68 61 76 |p until they hav| 0004cc50 65 20 61 6c 6c 20 62 65 65 6e 20 22 72 65 64 72 |e all been "redr| 0004cc60 61 77 6e 22 2e 20 41 74 74 61 63 68 20 74 6f 20 |awn". Attach to | 0004cc70 74 68 65 20 52 65 64 72 61 77 5f 57 69 6e 64 6f |the Redraw_Windo| 0004cc80 77 5f 52 65 71 75 65 73 74 20 65 76 65 6e 74 20 |w_Request event | 0004cc90 75 73 69 6e 67 3a 0a 0a 7b 66 43 6f 64 65 3b 61 |using:..{fCode;a| 0004cca0 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 45 76 65 |lign centre}<Eve| 0004ccb0 6e 74 5f 43 6c 61 69 6d 3e 28 65 76 65 6e 74 5f |nt_Claim>(event_| 0004ccc0 52 45 44 52 41 57 2c 65 76 65 6e 74 5f 41 4e 59 |REDRAW,event_ANY| 0004ccd0 2c 65 76 65 6e 74 5f 41 4e 59 2c 20 48 61 6e 64 |,event_ANY, Hand| 0004cce0 6c 65 72 5f 4e 75 6c 6c 52 65 64 72 61 77 2c 3c |ler_NullRedraw,<| 0004ccf0 4e 55 4c 4c 3e 29 3b 00 44 41 54 41 16 01 00 00 |NULL>);.DATA....| 0004cd00 48 61 6e 64 6c 65 72 5f 4f 70 65 6e 57 69 6e 64 |Handler_OpenWind| 0004cd10 6f 77 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |ow.Header:.<Desk| 0004cd20 4c 69 62 3a 48 61 6e 64 6c 65 72 2e 68 3d 3e 48 |Lib:Handler.h=>H| 0004cd30 61 6e 64 6c 65 72 3e 0a 0a 54 68 69 73 20 66 75 |andler>..This fu| 0004cd40 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 3c 57 69 |nction calls <Wi| 0004cd50 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 3e 20 6f |mp_OpenWindow> o| 0004cd60 6e 20 74 68 65 20 64 61 74 61 20 72 65 74 75 72 |n the data retur| 0004cd70 6e 65 64 20 62 79 20 74 68 65 20 57 69 6d 70 2e |ned by the Wimp.| 0004cd80 20 41 74 74 61 63 68 20 74 6f 20 74 68 65 20 4f | Attach to the O| 0004cd90 70 65 6e 5f 57 69 6e 64 6f 77 5f 52 65 71 75 65 |pen_Window_Reque| 0004cda0 73 74 20 65 76 65 6e 74 20 75 73 69 6e 67 3a 0a |st event using:.| 0004cdb0 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 0004cdc0 6e 74 72 65 7d 3c 45 76 65 6e 74 5f 43 6c 61 69 |ntre}<Event_Clai| 0004cdd0 6d 3e 28 65 76 65 6e 74 5f 4f 50 45 4e 2c 65 76 |m>(event_OPEN,ev| 0004cde0 65 6e 74 5f 41 4e 59 2c 65 76 65 6e 74 5f 41 4e |ent_ANY,event_AN| 0004cdf0 59 2c 20 48 61 6e 64 6c 65 72 5f 4f 70 65 6e 57 |Y, Handler_OpenW| 0004ce00 69 6e 64 6f 77 2c 3c 4e 55 4c 4c 3e 29 3b 00 00 |indow,<NULL>);..| 0004ce10 44 41 54 41 b4 00 00 00 68 65 61 70 2e 68 0a 54 |DATA....heap.h.T| 0004ce20 68 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 |his header decla| 0004ce30 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f |res functions fo| 0004ce40 72 20 3c 6d 61 6c 6c 6f 63 3e 2d 73 74 79 6c 65 |r <malloc>-style| 0004ce50 20 68 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e | heap allocation| 0004ce60 20 77 69 74 68 69 6e 20 61 20 3c 66 6c 65 78 3e | within a <flex>| 0004ce70 20 62 6c 6f 63 6b 2e 0a 0a 46 75 6e 63 74 69 6f | block...Functio| 0004ce80 6e 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 |ns:..#table colu| 0004ce90 6d 6e 73 20 33 0a 3c 68 65 61 70 5f 69 6e 69 74 |mns 3.<heap_init| 0004cea0 3e 0a 3c 68 65 61 70 5f 61 6c 6c 6f 63 3e 0a 3c |>.<heap_alloc>.<| 0004ceb0 68 65 61 70 5f 66 72 65 65 3e 0a 23 65 6e 64 74 |heap_free>.#endt| 0004cec0 61 62 6c 65 44 49 52 24 6c 00 00 00 6c 00 00 00 |ableDIR$l...l...| 0004ced0 30 cf 04 00 46 ff ff ff 7e 98 ad 24 cf 00 00 00 |0...F...~..$....| 0004cee0 13 00 00 00 00 00 00 00 61 6c 6c 6f 63 00 00 00 |........alloc...| 0004cef0 00 d0 04 00 46 ff ff ff 36 9d ad 24 c7 00 00 00 |....F...6..$....| 0004cf00 13 00 00 00 00 00 00 00 66 72 65 65 00 00 00 00 |........free....| 0004cf10 c8 d0 04 00 46 ff ff ff 0f 93 ad 24 07 01 00 00 |....F......$....| 0004cf20 13 00 00 00 00 00 00 00 69 6e 69 74 00 00 00 00 |........init....| 0004cf30 44 41 54 41 cf 00 00 00 68 65 61 70 5f 61 6c 6c |DATA....heap_all| 0004cf40 6f 63 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |oc.Syntax:.void | 0004cf50 2a 68 65 61 70 5f 61 6c 6c 6f 63 20 28 75 6e 73 |*heap_alloc (uns| 0004cf60 69 67 6e 65 64 20 69 6e 74 20 73 69 7a 65 29 3b |igned int size);| 0004cf70 0a 48 65 61 64 65 72 3a 09 3c 68 65 61 70 2e 68 |.Header:.<heap.h| 0004cf80 3d 3e 68 65 61 70 3e 0a 0a 52 65 74 75 72 6e 73 |=>heap>..Returns| 0004cf90 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 61 6c 6c |:.Pointer to all| 0004cfa0 6f 63 61 74 65 64 20 62 6c 6f 63 6b 2e 0a 0a 41 |ocated block...A| 0004cfb0 6c 6c 6f 63 61 74 65 64 20 61 20 62 6c 6f 63 6b |llocated a block| 0004cfc0 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 73 69 | of the given si| 0004cfd0 7a 65 20 66 72 6f 6d 20 74 68 65 20 68 65 61 70 |ze from the heap| 0004cfe0 2e 20 52 65 74 75 72 6e 73 20 30 20 69 66 20 75 |. Returns 0 if u| 0004cff0 6e 61 62 6c 65 20 74 6f 20 64 6f 20 73 6f 2e 00 |nable to do so..| 0004d000 44 41 54 41 c7 00 00 00 68 65 61 70 5f 66 72 65 |DATA....heap_fre| 0004d010 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 68 |e.Syntax:.void h| 0004d020 65 61 70 5f 66 72 65 65 20 28 76 6f 69 64 20 2a |eap_free (void *| 0004d030 68 65 61 70 70 74 72 29 3b 0a 48 65 61 64 65 72 |heapptr);.Header| 0004d040 3a 09 3c 68 65 61 70 2e 68 3d 3e 68 65 61 70 3e |:.<heap.h=>heap>| 0004d050 0a 0a 46 72 65 65 73 20 74 68 65 20 62 6c 6f 63 |..Frees the bloc| 0004d060 6b 20 77 68 6f 73 65 20 70 6f 69 6e 74 65 72 20 |k whose pointer | 0004d070 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 68 65 61 |is given in /hea| 0004d080 70 70 74 72 2f 2e 20 54 68 65 20 62 6c 6f 63 6b |pptr/. The block| 0004d090 20 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e 20 | must have been | 0004d0a0 70 72 65 76 69 6f 75 73 6c 79 20 61 6c 6c 6f 63 |previously alloc| 0004d0b0 61 74 65 64 20 77 69 74 68 20 3c 68 65 61 70 5f |ated with <heap_| 0004d0c0 61 6c 6c 6f 63 3e 2e 00 44 41 54 41 07 01 00 00 |alloc>..DATA....| 0004d0d0 68 65 61 70 5f 69 6e 69 74 0a 53 79 6e 74 61 78 |heap_init.Syntax| 0004d0e0 3a 09 76 6f 69 64 20 68 65 61 70 5f 69 6e 69 74 |:.void heap_init| 0004d0f0 20 28 3c 42 4f 4f 4c 3e 20 68 65 61 70 5f 73 68 | (<BOOL> heap_sh| 0004d100 72 69 6e 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c |rink);.Header:.<| 0004d110 68 65 61 70 2e 68 3d 3e 68 65 61 70 3e 0a 0a 49 |heap.h=>heap>..I| 0004d120 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 68 |nitialises the h| 0004d130 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 73 |eap allocation s| 0004d140 79 73 74 65 6d 2e 20 49 66 20 7b 2f 7d 68 65 61 |ystem. If {/}hea| 0004d150 70 5f 73 68 72 69 6e 6b 7b 2f 7d 20 69 73 20 3c |p_shrink{/} is <| 0004d160 54 52 55 45 3e 20 74 68 65 6e 20 74 68 65 20 66 |TRUE> then the f| 0004d170 6c 65 78 20 62 6c 6f 63 6b 20 77 69 6c 6c 20 62 |lex block will b| 0004d180 65 20 73 68 72 75 6e 6b 20 77 68 65 6e 20 70 6f |e shrunk when po| 0004d190 73 73 69 62 6c 65 2e 20 59 6f 75 20 6d 75 73 74 |ssible. You must| 0004d1a0 20 63 61 6c 6c 20 3c 66 6c 65 78 5f 69 6e 69 74 | call <flex_init| 0004d1b0 3e 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 |> before calling| 0004d1c0 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 00 | this function..| 0004d1d0 44 41 54 41 ee 00 00 00 68 65 6c 70 2e 68 0a 54 |DATA....help.h.T| 0004d1e0 68 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 |his header decla| 0004d1f0 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 70 72 |res functions pr| 0004d200 6f 76 69 64 69 6e 67 20 73 75 70 70 6f 72 74 20 |oviding support | 0004d210 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 |for interactive | 0004d220 68 65 6c 70 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |help...Functions| 0004d230 3a 0a 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e |:..#Table column| 0004d240 73 20 32 0a 3c 68 65 6c 70 5f 70 72 6f 63 65 73 |s 2.<help_proces| 0004d250 73 3e 0a 3c 68 65 6c 70 5f 72 65 67 69 73 74 65 |s>.<help_registe| 0004d260 72 5f 68 61 6e 64 6c 65 72 3e 0a 3c 68 65 6c 70 |r_handler>.<help| 0004d270 5f 67 65 6e 6d 65 73 73 61 67 65 3e 0a 3c 68 65 |_genmessage>.<he| 0004d280 6c 70 5f 73 69 6d 70 6c 65 68 61 6e 64 6c 65 72 |lp_simplehandler| 0004d290 3e 0a 3c 68 65 6c 70 5f 64 62 6f 78 72 61 77 65 |>.<help_dboxrawe| 0004d2a0 76 65 6e 74 73 3e 0a 3c 68 65 6c 70 5f 72 65 70 |vents>.<help_rep| 0004d2b0 6c 79 3e 20 0a 23 45 6e 64 54 61 62 6c 65 00 00 |ly> .#EndTable..| 0004d2c0 44 49 52 24 ec 00 00 00 ec 00 00 00 ac d3 04 00 |DIR$............| 0004d2d0 46 ff ff ff 5d f3 ad 24 d4 01 00 00 13 00 00 00 |F...]..$........| 0004d2e0 00 00 00 00 64 62 6f 78 72 61 77 65 76 65 6e 74 |....dboxrawevent| 0004d2f0 73 00 00 00 80 d5 04 00 46 ff ff ff 75 e3 ad 24 |s.......F...u..$| 0004d300 ff 01 00 00 13 00 00 00 00 00 00 00 67 65 6e 6d |............genm| 0004d310 65 73 73 61 67 65 00 00 80 d7 04 00 46 ff ff ff |essage......F...| 0004d320 78 b1 ad 24 6a 01 00 00 13 00 00 00 00 00 00 00 |x..$j...........| 0004d330 70 72 6f 63 65 73 73 00 ec d8 04 00 46 ff ff ff |process.....F...| 0004d340 cf bb ad 24 e3 01 00 00 13 00 00 00 00 00 00 00 |...$............| 0004d350 72 65 67 69 73 74 65 72 5f 68 61 6e 64 6c 65 72 |register_handler| 0004d360 00 00 00 00 d0 da 04 00 46 ff ff ff a1 f6 ad 24 |........F......$| 0004d370 a9 00 00 00 13 00 00 00 00 00 00 00 72 65 70 6c |............repl| 0004d380 79 00 00 00 7c db 04 00 46 ff ff ff a5 ed ad 24 |y...|...F......$| 0004d390 6d 01 00 00 13 00 00 00 00 00 00 00 73 69 6d 70 |m...........simp| 0004d3a0 6c 65 68 61 6e 64 6c 65 72 00 00 00 44 41 54 41 |lehandler...DATA| 0004d3b0 d4 01 00 00 68 65 6c 70 5f 64 62 6f 78 72 61 77 |....help_dboxraw| 0004d3c0 65 76 65 6e 74 73 0a 53 79 6e 74 61 78 3a 09 3c |events.Syntax:.<| 0004d3d0 42 4f 4f 4c 3e 20 68 65 6c 70 5f 64 62 6f 78 72 |BOOL> help_dboxr| 0004d3e0 61 77 65 76 65 6e 74 73 20 28 3c 64 62 6f 78 3e |awevents (<dbox>| 0004d3f0 20 64 2c 20 76 6f 69 64 20 2a 65 76 65 6e 74 2c | d, void *event,| 0004d400 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b 0a | void *handle);.| 0004d410 48 65 61 64 65 72 3a 09 3c 68 65 6c 70 2e 68 3d |Header:.<help.h=| 0004d420 3e 68 65 6c 70 3e 0a 0a 54 68 69 73 20 66 75 6e |>help>..This fun| 0004d430 63 74 69 6f 6e 20 69 73 20 61 20 72 6f 75 74 69 |ction is a routi| 0004d440 6e 65 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 |ne suitable for | 0004d450 70 61 73 73 69 6e 67 20 74 6f 20 3c 64 62 6f 78 |passing to <dbox| 0004d460 5f 72 61 77 5f 65 76 65 6e 74 68 61 6e 64 6c 65 |_raw_eventhandle| 0004d470 72 3e 2c 20 66 6f 72 20 70 72 6f 76 69 64 69 6e |r>, for providin| 0004d480 67 20 68 65 6c 70 20 6f 6e 20 64 69 61 6c 6f 67 |g help on dialog| 0004d490 75 65 20 62 6f 78 65 73 2e 20 54 68 65 20 68 61 |ue boxes. The ha| 0004d4a0 6e 64 6c 65 20 70 61 73 73 65 64 20 73 68 6f 75 |ndle passed shou| 0004d4b0 6c 64 20 62 65 20 61 20 6d 65 73 73 61 67 65 20 |ld be a message | 0004d4c0 70 72 65 66 69 78 2e 20 41 20 73 69 6e 67 6c 65 |prefix. A single| 0004d4d0 20 63 68 61 72 61 63 74 65 72 20 73 75 66 66 69 | character suffi| 0004d4e0 78 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 74 |x may be added t| 0004d4f0 6f 20 69 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 |o it containing | 0004d500 74 68 65 20 69 63 6f 6e 20 6e 75 6d 62 65 72 2e |the icon number.| 0004d510 20 49 66 20 74 68 69 73 20 6d 65 73 73 61 67 65 | If this message| 0004d520 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 | does not exist | 0004d530 28 6f 72 20 6e 6f 20 69 63 6f 6e 20 69 73 20 70 |(or no icon is p| 0004d540 6f 69 6e 74 65 64 20 61 74 29 20 74 68 65 6e 20 |ointed at) then | 0004d550 6a 75 73 74 20 74 68 65 20 70 72 65 66 69 78 20 |just the prefix | 0004d560 77 69 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 |will be used as | 0004d570 74 68 65 20 6d 65 73 73 61 67 65 20 74 61 67 2e |the message tag.| 0004d580 44 41 54 41 ff 01 00 00 68 65 6c 70 5f 67 65 6e |DATA....help_gen| 0004d590 6d 65 73 73 61 67 65 0a 53 79 6e 74 61 78 3a 09 |message.Syntax:.| 0004d5a0 3c 42 4f 4f 4c 3e 20 68 65 6c 70 5f 67 65 6e 6d |<BOOL> help_genm| 0004d5b0 65 73 73 61 67 65 20 28 63 68 61 72 20 2a 70 72 |essage (char *pr| 0004d5c0 65 66 69 78 2c 20 63 68 61 72 20 2a 68 69 74 29 |efix, char *hit)| 0004d5d0 3b 0a 48 65 61 64 65 72 3a 09 3c 68 65 6c 70 2e |;.Header:.<help.| 0004d5e0 68 3d 3e 68 65 6c 70 3e 0a 0a 52 65 74 75 72 6e |h=>help>..Return| 0004d5f0 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 74 68 69 |s:.<TRUE> if thi| 0004d600 73 20 77 61 73 20 61 20 6d 65 6e 75 20 68 65 6c |s was a menu hel| 0004d610 70 20 6d 65 73 73 61 67 65 2e 0a 0a 54 68 69 73 |p message...This| 0004d620 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 | function genera| 0004d630 74 65 73 20 61 20 6d 65 73 73 61 67 65 20 74 61 |tes a message ta| 0004d640 67 20 77 68 69 63 68 20 69 73 20 6c 6f 6f 6b 65 |g which is looke| 0004d650 64 20 75 70 20 77 69 74 68 20 3c 6d 73 67 73 5f |d up with <msgs_| 0004d660 6c 6f 6f 6b 75 70 3e 20 62 79 20 61 64 64 69 6e |lookup> by addin| 0004d670 67 20 61 20 74 68 65 20 70 72 65 66 69 78 20 74 |g a the prefix t| 0004d680 6f 20 61 20 73 74 72 69 6e 67 20 6f 66 20 6d 65 |o a string of me| 0004d690 6e 75 20 73 65 6c 65 63 74 69 6f 6e 73 20 65 67 |nu selections eg| 0004d6a0 2e 20 22 4d 45 4e 55 30 31 22 20 69 66 20 74 68 |. "MENU01" if th| 0004d6b0 65 20 70 72 65 66 69 78 20 69 73 20 22 4d 45 4e |e prefix is "MEN| 0004d6c0 55 22 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e |U" and the secon| 0004d6d0 64 20 6f 70 74 69 6f 6e 20 6f 66 66 20 74 68 65 |d option off the| 0004d6e0 20 66 69 72 73 74 20 73 75 62 6d 65 6e 75 20 68 | first submenu h| 0004d6f0 61 73 20 62 65 65 6e 20 73 65 6c 65 63 74 65 64 |as been selected| 0004d700 2e 20 4e 75 6d 62 65 72 73 20 7b 2a 7d 30 2d 39 |. Numbers {*}0-9| 0004d710 7b 2a 7d 20 61 6e 64 20 6c 65 74 74 65 72 73 20 |{*} and letters | 0004d720 7b 2a 7d 61 2d 7a 7b 2a 7d 20 61 72 65 20 75 73 |{*}a-z{*} are us| 0004d730 65 64 20 66 6f 72 20 74 68 65 20 73 65 6c 65 63 |ed for the selec| 0004d740 74 69 6f 6e 20 6c 69 73 74 2e 20 49 74 20 69 73 |tion list. It is| 0004d750 20 74 68 65 6e 20 72 65 74 75 72 6e 65 64 20 61 | then returned a| 0004d760 73 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 |s the interactiv| 0004d770 65 20 68 65 6c 70 20 6d 65 73 73 61 67 65 2e 00 |e help message..| 0004d780 44 41 54 41 6a 01 00 00 68 65 6c 70 5f 70 72 6f |DATAj...help_pro| 0004d790 63 65 73 73 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |cess.Syntax:.<BO| 0004d7a0 4f 4c 3e 20 68 65 6c 70 5f 70 72 6f 63 65 73 73 |OL> help_process| 0004d7b0 20 28 3c 77 69 6d 70 5f 65 76 65 6e 74 73 74 72 | (<wimp_eventstr| 0004d7c0 3e 20 2a 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |> *e);.Header:.<| 0004d7d0 68 65 6c 70 2e 68 3d 3e 68 65 6c 70 3e 0a 0a 52 |help.h=>help>..R| 0004d7e0 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 |eturns:.<TRUE> i| 0004d7f0 66 20 65 76 65 6e 74 20 68 61 73 20 62 65 65 6e |f event has been| 0004d800 20 70 72 6f 63 65 73 73 65 64 2e 0a 0a 54 68 69 | processed...Thi| 0004d810 73 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 |s function proce| 0004d820 73 73 65 73 20 74 68 65 20 67 69 76 65 6e 20 65 |sses the given e| 0004d830 76 65 6e 74 20 69 66 20 69 74 20 69 73 20 61 20 |vent if it is a | 0004d840 6d 65 6e 75 20 69 6e 74 65 72 61 63 74 69 76 65 |menu interactive| 0004d850 20 68 65 6c 70 20 6d 65 73 73 61 67 65 2e 20 54 | help message. T| 0004d860 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 63 61 |his should be ca| 0004d870 6c 6c 65 64 20 62 79 20 74 68 65 20 75 6e 6b 6e |lled by the unkn| 0004d880 6f 77 6e 20 65 76 65 6e 74 20 68 61 6e 64 6c 65 |own event handle| 0004d890 72 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d |r of the program| 0004d8a0 2e 20 46 6f 72 20 69 74 20 74 6f 20 77 6f 72 6b |. For it to work| 0004d8b0 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 66 6f 72 |, you must infor| 0004d8c0 6d 20 3c 77 69 6d 70 74 3e 20 74 68 61 74 20 79 |m <wimpt> that y| 0004d8d0 6f 75 20 61 72 65 20 61 77 61 72 65 20 6f 66 20 |ou are aware of | 0004d8e0 52 49 53 43 20 4f 53 20 33 2e 00 00 44 41 54 41 |RISC OS 3...DATA| 0004d8f0 e3 01 00 00 68 65 6c 70 5f 72 65 67 69 73 74 65 |....help_registe| 0004d900 72 5f 68 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 |r_handler.Syntax| 0004d910 3a 09 76 6f 69 64 20 68 65 6c 70 5f 72 65 67 69 |:.void help_regi| 0004d920 73 74 65 72 5f 68 61 6e 64 6c 65 72 20 28 3c 65 |ster_handler (<e| 0004d930 76 65 6e 74 5f 6d 65 6e 75 5f 70 72 6f 63 3e 20 |vent_menu_proc> | 0004d940 66 75 6e 63 2c 20 76 6f 69 64 20 2a 68 61 6e 64 |func, void *hand| 0004d950 6c 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 68 65 |le);.Header:.<he| 0004d960 6c 70 2e 68 3d 3e 68 65 6c 70 3e 0a 0a 54 68 69 |lp.h=>help>..Thi| 0004d970 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 |s function regis| 0004d980 74 65 72 73 20 74 68 65 20 68 61 6e 64 6c 65 72 |ters the handler| 0004d990 20 74 6f 20 62 65 20 75 73 65 64 20 77 68 65 6e | to be used when| 0004d9a0 20 68 65 6c 70 5f 70 72 6f 63 65 73 73 20 69 73 | help_process is| 0004d9b0 20 6e 65 78 74 20 63 61 6c 6c 65 64 2e 20 2f 68 | next called. /h| 0004d9c0 61 6e 64 6c 65 2f 20 69 73 20 70 61 73 73 65 64 |andle/ is passed| 0004d9d0 20 73 74 72 61 69 67 68 74 20 74 6f 20 2f 66 75 | straight to /fu| 0004d9e0 6e 63 2f 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 |nc/. This should| 0004d9f0 20 62 65 20 63 61 6c 6c 65 64 20 62 79 20 74 68 | be called by th| 0004da00 65 20 6d 65 6e 75 2d 6d 61 6b 65 72 20 66 75 6e |e menu-maker fun| 0004da10 63 74 69 6f 6e 20 6f 66 20 65 76 65 72 79 20 6d |ction of every m| 0004da20 65 6e 75 20 69 6e 20 74 68 65 20 70 72 6f 67 72 |enu in the progr| 0004da30 61 6d 2e 20 57 68 65 6e 20 3c 68 65 6c 70 5f 70 |am. When <help_p| 0004da40 72 6f 63 65 73 73 3e 20 69 73 20 63 61 6c 6c 65 |rocess> is calle| 0004da50 64 2c 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 |d, the most rece| 0004da60 6e 74 6c 79 20 69 6e 73 74 61 6c 6c 65 64 20 68 |ntly installed h| 0004da70 61 6e 64 6c 65 72 20 69 73 20 61 73 73 75 6d 65 |andler is assume| 0004da80 64 20 74 6f 20 62 65 20 74 68 65 20 63 6f 72 72 |d to be the corr| 0004da90 65 63 74 20 6f 6e 65 2e 20 43 61 6c 6c 20 77 69 |ect one. Call wi| 0004daa0 74 68 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 20 |th <NULL> if no | 0004dab0 68 65 6c 70 20 69 73 20 61 76 61 69 6c 61 62 6c |help is availabl| 0004dac0 65 20 6f 6e 20 74 68 69 73 20 6d 65 6e 75 2e 00 |e on this menu..| 0004dad0 44 41 54 41 a9 00 00 00 68 65 6c 70 5f 72 65 70 |DATA....help_rep| 0004dae0 6c 79 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |ly.Syntax:.void | 0004daf0 68 65 6c 70 5f 72 65 70 6c 79 20 28 63 68 61 72 |help_reply (char| 0004db00 20 2a 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 68 | *m);.Header:.<h| 0004db10 65 6c 70 2e 68 3d 3e 68 65 6c 70 3e 0a 0a 54 68 |elp.h=>help>..Th| 0004db20 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c |is function repl| 0004db30 69 65 73 20 74 6f 20 74 68 65 20 68 65 6c 70 20 |ies to the help | 0004db40 6d 65 73 73 61 67 65 20 69 6e 20 3c 77 69 6d 70 |message in <wimp| 0004db50 74 5f 6c 61 73 74 5f 65 76 65 6e 74 3e 20 77 69 |t_last_event> wi| 0004db60 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 73 |th the message s| 0004db70 70 65 63 69 66 69 65 64 2e 00 00 00 44 41 54 41 |pecified....DATA| 0004db80 6d 01 00 00 68 65 6c 70 5f 73 69 6d 70 6c 65 68 |m...help_simpleh| 0004db90 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 76 |andler.Syntax:.v| 0004dba0 6f 69 64 20 68 65 6c 70 5f 73 69 6d 70 6c 65 68 |oid help_simpleh| 0004dbb0 61 6e 64 6c 65 72 20 28 76 6f 69 64 20 2a 68 61 |andler (void *ha| 0004dbc0 6e 64 6c 65 2c 20 63 68 61 72 20 2a 68 69 74 29 |ndle, char *hit)| 0004dbd0 3b 0a 48 65 61 64 65 72 3a 09 3c 68 65 6c 70 2e |;.Header:.<help.| 0004dbe0 68 3d 3e 68 65 6c 70 3e 0a 0a 54 68 69 73 20 66 |h=>help>..This f| 0004dbf0 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 73 69 6d |unction is a sim| 0004dc00 70 6c 65 20 68 61 6e 64 6c 65 72 20 77 68 69 63 |ple handler whic| 0004dc10 68 20 63 61 6e 20 62 65 20 72 65 67 69 73 74 65 |h can be registe| 0004dc20 72 65 64 20 77 69 74 68 20 3c 68 65 6c 70 5f 72 |red with <help_r| 0004dc30 65 67 69 73 74 65 72 5f 68 61 6e 64 6c 65 72 3e |egister_handler>| 0004dc40 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 68 61 6e | in order to han| 0004dc50 64 6c 65 20 73 69 6d 70 6c 65 20 73 74 61 74 69 |dle simple stati| 0004dc60 63 20 6d 65 6e 75 73 2e 20 2f 68 61 6e 64 6c 65 |c menus. /handle| 0004dc70 2f 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 |/ should be the | 0004dc80 70 72 65 66 69 78 20 74 6f 20 70 61 73 73 20 74 |prefix to pass t| 0004dc90 6f 20 3c 68 65 6c 70 5f 67 65 6e 6d 65 73 73 61 |o <help_genmessa| 0004dca0 67 65 3e 2e 20 41 6c 6c 20 74 68 69 73 20 66 75 |ge>. All this fu| 0004dcb0 6e 63 74 69 6f 6e 20 64 6f 65 73 20 69 73 20 70 |nction does is p| 0004dcc0 61 73 73 20 74 68 65 20 6d 65 6e 75 20 73 65 6c |ass the menu sel| 0004dcd0 65 63 74 69 6f 6e 73 20 74 6f 20 74 68 61 74 20 |ections to that | 0004dce0 66 75 6e 63 74 69 6f 6e 2e 00 00 00 44 41 54 41 |function....DATA| 0004dcf0 e0 00 00 00 48 65 78 44 69 67 69 74 0a 53 79 6e |....HexDigit.Syn| 0004dd00 74 61 78 3a 09 63 68 61 72 20 48 65 78 44 69 67 |tax:.char HexDig| 0004dd10 69 74 20 28 69 6e 74 20 6e 29 3b 0a 48 65 61 64 |it (int n);.Head| 0004dd20 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c 69 62 |er:.<TimsLib:Lib| 0004dd30 2e 68 3d 3e 4c 69 62 3e 0a 0a 52 65 74 75 72 6e |.h=>Lib>..Return| 0004dd40 73 3a 09 43 68 61 72 61 63 74 65 72 20 72 65 70 |s:.Character rep| 0004dd50 72 65 73 65 6e 74 69 6e 67 20 6e 20 69 6e 20 68 |resenting n in h| 0004dd60 65 78 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ex...This functi| 0004dd70 6f 6e 20 74 61 6b 65 73 20 61 20 6e 75 6d 62 65 |on takes a numbe| 0004dd80 72 20 2f 6e 2f 20 69 6e 20 74 68 65 20 72 61 6e |r /n/ in the ran| 0004dd90 67 65 20 30 2d 31 35 20 61 6e 64 20 72 65 74 75 |ge 0-15 and retu| 0004dda0 72 6e 73 20 74 68 65 20 61 70 70 72 6f 70 72 69 |rns the appropri| 0004ddb0 61 74 65 20 68 65 78 61 64 65 63 69 6d 61 6c 20 |ate hexadecimal | 0004ddc0 64 69 67 69 74 20 28 30 2d 46 29 2e 44 41 54 41 |digit (0-F).DATA| 0004ddd0 11 01 00 00 44 65 73 6b 4c 69 62 3a 48 6f 75 72 |....DeskLib:Hour| 0004dde0 67 6c 61 73 73 2e 68 0a 56 65 72 73 69 6f 6e 3a |glass.h.Version:| 0004ddf0 20 32 2e 30 30 20 28 32 34 20 4a 75 6c 20 31 39 | 2.00 (24 Jul 19| 0004de00 39 33 29 0a 23 6c 69 6e 65 0a 54 68 65 20 68 65 |93).#line.The he| 0004de10 61 64 65 72 20 5c 3c 44 65 73 6b 4c 69 62 3a 48 |ader \<DeskLib:H| 0004de20 6f 75 72 67 6c 61 73 73 2e 68 3e 20 64 65 63 6c |ourglass.h> decl| 0004de30 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 |ares functions f| 0004de40 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 |or handling the | 0004de50 3c 48 6f 75 72 67 6c 61 73 73 3d 3e 53 57 49 3a |<Hourglass=>SWI:| 0004de60 48 6f 75 72 67 6c 61 73 73 5f 3e 2e 0a 0a 23 54 |Hourglass_>...#T| 0004de70 61 62 6c 65 20 33 20 32 34 0a 3c 48 6f 75 72 67 |able 3 24.<Hourg| 0004de80 6c 61 73 73 5f 4f 6e 3e 0a 3c 48 6f 75 72 67 6c |lass_On>.<Hourgl| 0004de90 61 73 73 5f 53 74 61 72 74 3e 0a 3c 48 6f 75 72 |ass_Start>.<Hour| 0004dea0 67 6c 61 73 73 5f 50 65 72 63 65 6e 74 61 67 65 |glass_Percentage| 0004deb0 3e 0a 3c 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 |>.<Hourglass_Off| 0004dec0 3e 0a 3c 48 6f 75 72 67 6c 61 73 73 5f 53 6d 61 |>.<Hourglass_Sma| 0004ded0 73 68 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 00 |sh>.#EndTable...| 0004dee0 44 49 52 24 a8 00 00 00 a8 00 00 00 88 df 04 00 |DIR$............| 0004def0 46 ff ff ff fd 20 2c 25 03 01 00 00 13 00 00 00 |F.... ,%........| 0004df00 00 00 00 00 4f 66 66 00 8c e0 04 00 46 ff ff ff |....Off.....F...| 0004df10 98 04 2c 25 f7 00 00 00 13 00 00 00 00 00 00 00 |..,%............| 0004df20 4f 6e 00 00 84 e1 04 00 46 ff ff ff 6f 1a 2c 25 |On......F...o.,%| 0004df30 3d 01 00 00 13 00 00 00 00 00 00 00 50 65 72 63 |=...........Perc| 0004df40 65 6e 74 61 67 65 00 00 c4 e2 04 00 46 ff ff ff |entage......F...| 0004df50 16 26 2c 25 88 01 00 00 13 00 00 00 00 00 00 00 |.&,%............| 0004df60 53 6d 61 73 68 00 00 00 4c e4 04 00 46 ff ff ff |Smash...L...F...| 0004df70 95 0b 2c 25 75 01 00 00 13 00 00 00 00 00 00 00 |..,%u...........| 0004df80 53 74 61 72 74 00 00 00 44 41 54 41 03 01 00 00 |Start...DATA....| 0004df90 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 0a 53 79 |Hourglass_Off.Sy| 0004dfa0 6e 74 61 78 3a 09 76 6f 69 64 20 48 6f 75 72 67 |ntax:.void Hourg| 0004dfb0 6c 61 73 73 5f 4f 66 66 28 76 6f 69 64 29 3b 0a |lass_Off(void);.| 0004dfc0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0004dfd0 3a 48 6f 75 72 67 6c 61 73 73 2e 68 3d 3e 48 6f |:Hourglass.h=>Ho| 0004dfe0 75 72 67 6c 61 73 73 3e 0a 0a 52 65 74 75 72 6e |urglass>..Return| 0004dff0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 0004e000 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 0004e010 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 0004e020 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 74 |nction removes t| 0004e030 68 65 20 69 6e 64 69 63 61 74 69 6f 6e 20 6f 66 |he indication of| 0004e040 20 74 68 65 20 64 65 6c 61 79 2e 20 49 74 20 69 | the delay. It i| 0004e050 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |s equivalent to | 0004e060 74 68 65 20 53 57 49 20 3c 48 6f 75 72 67 6c 61 |the SWI <Hourgla| 0004e070 73 73 5f 4f 66 66 3d 3e 53 57 49 3a 48 6f 75 72 |ss_Off=>SWI:Hour| 0004e080 67 6c 61 73 73 5f 4f 66 66 3e 2e 00 44 41 54 41 |glass_Off>..DATA| 0004e090 f7 00 00 00 48 6f 75 72 67 6c 61 73 73 5f 4f 6e |....Hourglass_On| 0004e0a0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 48 6f |.Syntax:.void Ho| 0004e0b0 75 72 67 6c 61 73 73 5f 4f 6e 20 28 76 6f 69 64 |urglass_On (void| 0004e0c0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0004e0d0 4c 69 62 3a 48 6f 75 72 67 6c 61 73 73 2e 68 3d |Lib:Hourglass.h=| 0004e0e0 3e 48 6f 75 72 67 6c 61 73 73 3e 0a 0a 54 68 69 |>Hourglass>..Thi| 0004e0f0 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 |s function chang| 0004e100 65 73 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 |es the mouse poi| 0004e110 6e 74 65 72 20 74 6f 20 73 68 6f 77 20 74 68 65 |nter to show the| 0004e120 20 75 73 65 72 20 74 68 61 74 20 73 6f 6d 65 20 | user that some | 0004e130 64 65 6c 61 79 20 77 69 6c 6c 20 6f 63 63 75 72 |delay will occur| 0004e140 2e 20 49 74 20 64 6f 65 73 20 74 68 69 73 20 62 |. It does this b| 0004e150 79 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 53 57 |y calling the SW| 0004e160 49 20 3c 48 6f 75 72 67 6c 61 73 73 5f 4f 6e 3d |I <Hourglass_On=| 0004e170 3e 53 57 49 3a 48 6f 75 72 67 6c 61 73 73 5f 4f |>SWI:Hourglass_O| 0004e180 6e 3e 2e 00 44 41 54 41 3d 01 00 00 48 6f 75 72 |n>..DATA=...Hour| 0004e190 67 6c 61 73 73 5f 50 65 72 63 65 6e 74 61 67 65 |glass_Percentage| 0004e1a0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 48 6f |.Syntax:.void Ho| 0004e1b0 75 72 67 6c 61 73 73 5f 50 65 72 63 65 6e 74 61 |urglass_Percenta| 0004e1c0 67 65 20 28 69 6e 74 20 70 63 29 3b 0a 48 65 61 |ge (int pc);.Hea| 0004e1d0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 48 6f |der:.<DeskLib:Ho| 0004e1e0 75 72 67 6c 61 73 73 2e 68 3d 3e 48 6f 75 72 67 |urglass.h=>Hourg| 0004e1f0 6c 61 73 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |lass>..Returns:.| 0004e200 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 0004e210 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 0004e220 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 0004e230 69 6f 6e 20 69 6e 64 69 63 61 74 65 73 20 74 6f |ion indicates to| 0004e240 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 | the user that t| 0004e250 68 65 20 64 65 6c 61 79 20 69 73 20 2f 70 63 2f |he delay is /pc/| 0004e260 20 70 65 72 63 65 6e 74 20 63 6f 6d 70 6c 65 74 | percent complet| 0004e270 65 64 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |ed. It is equiva| 0004e280 6c 65 6e 74 20 74 6f 20 74 68 65 20 53 57 49 20 |lent to the SWI | 0004e290 3c 48 6f 75 72 67 6c 61 73 73 5f 50 65 72 63 65 |<Hourglass_Perce| 0004e2a0 6e 74 61 67 65 3d 3e 53 57 49 3a 48 6f 75 72 67 |ntage=>SWI:Hourg| 0004e2b0 6c 61 73 73 5f 50 65 72 63 65 6e 74 61 67 65 3e |lass_Percentage>| 0004e2c0 2e 00 00 00 44 41 54 41 88 01 00 00 48 6f 75 72 |....DATA....Hour| 0004e2d0 67 6c 61 73 73 5f 53 6d 61 73 68 0a 53 79 6e 74 |glass_Smash.Synt| 0004e2e0 61 78 3a 09 76 6f 69 64 20 48 6f 75 72 67 6c 61 |ax:.void Hourgla| 0004e2f0 73 73 5f 53 6d 61 73 68 20 28 76 6f 69 64 29 3b |ss_Smash (void);| 0004e300 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 0004e310 62 3a 48 6f 75 72 67 6c 61 73 73 2e 68 3d 3e 48 |b:Hourglass.h=>H| 0004e320 6f 75 72 67 6c 61 73 73 3e 0a 0a 52 65 74 75 72 |ourglass>..Retur| 0004e330 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 0004e340 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 0004e350 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 0004e360 75 6e 63 74 69 6f 6e 20 66 6f 72 63 65 73 20 74 |unction forces t| 0004e370 68 65 20 69 6e 64 69 63 61 74 69 6f 6e 20 6f 66 |he indication of| 0004e380 20 61 20 64 65 6c 61 79 20 74 6f 20 62 65 20 72 | a delay to be r| 0004e390 65 6d 6f 76 65 64 2e 20 4e 6f 72 6d 61 6c 6c 79 |emoved. Normally| 0004e3a0 2c 20 3c 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 |, <Hourglass_Off| 0004e3b0 3e 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 |> must be called| 0004e3c0 20 66 6f 72 20 65 61 63 68 20 74 69 6d 65 20 3c | for each time <| 0004e3d0 48 6f 75 72 67 6c 61 73 73 5f 4f 6e 3e 20 6f 72 |Hourglass_On> or| 0004e3e0 20 3c 48 6f 75 72 67 6c 61 73 73 5f 53 74 61 72 | <Hourglass_Star| 0004e3f0 74 3e 20 69 73 20 63 61 6c 6c 65 64 2e 20 54 68 |t> is called. Th| 0004e400 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 |is function is e| 0004e410 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 |quivalent to the| 0004e420 20 53 57 49 20 3c 48 6f 75 72 67 6c 61 73 73 5f | SWI <Hourglass_| 0004e430 53 6d 61 73 68 3d 3e 53 57 49 3a 48 6f 75 72 67 |Smash=>SWI:Hourg| 0004e440 6c 61 73 73 5f 53 6d 61 73 68 3e 2e 44 41 54 41 |lass_Smash>.DATA| 0004e450 75 01 00 00 48 6f 75 72 67 6c 61 73 73 5f 53 74 |u...Hourglass_St| 0004e460 61 72 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |art.Syntax:.void| 0004e470 20 48 6f 75 72 67 6c 61 73 73 5f 53 74 61 72 74 | Hourglass_Start| 0004e480 20 28 69 6e 74 20 64 65 6c 61 79 29 3b 0a 48 65 | (int delay);.He| 0004e490 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 48 |ader:.<DeskLib:H| 0004e4a0 6f 75 72 67 6c 61 73 73 2e 68 3d 3e 48 6f 75 72 |ourglass.h=>Hour| 0004e4b0 67 6c 61 73 73 3e 0a 0a 52 65 74 75 72 6e 73 3a |glass>..Returns:| 0004e4c0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0004e4d0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0004e4e0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0004e4f0 74 69 6f 6e 20 63 68 61 6e 67 65 73 20 74 68 65 |tion changes the| 0004e500 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72 20 74 | mouse pointer t| 0004e510 6f 20 73 68 6f 77 20 74 68 65 20 75 73 65 72 20 |o show the user | 0004e520 74 68 61 74 20 73 6f 6d 65 20 64 65 6c 61 79 20 |that some delay | 0004e530 77 69 6c 6c 20 6f 63 63 75 72 2e 20 54 68 65 20 |will occur. The | 0004e540 63 68 61 6e 67 65 20 77 69 6c 6c 20 6f 63 63 75 |change will occu| 0004e550 72 20 64 65 6c 61 79 20 63 65 6e 74 69 73 65 63 |r delay centisec| 0004e560 6f 6e 64 73 20 61 66 74 65 72 20 74 68 69 73 20 |onds after this | 0004e570 63 61 6c 6c 20 69 73 20 6d 61 64 65 2e 20 49 74 |call is made. It| 0004e580 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 | is equivalent t| 0004e590 6f 20 74 68 65 20 53 57 49 20 3c 48 6f 75 72 67 |o the SWI <Hourg| 0004e5a0 6c 61 73 73 5f 53 74 61 72 74 3d 3e 53 57 49 3a |lass_Start=>SWI:| 0004e5b0 48 6f 75 72 67 6c 61 73 73 5f 53 74 61 72 74 3e |Hourglass_Start>| 0004e5c0 2e 00 00 00 44 49 52 24 28 00 00 00 28 00 00 00 |....DIR$(...(...| 0004e5d0 ec e5 04 00 46 ff ff ff 26 be b5 22 99 00 00 00 |....F...&.."....| 0004e5e0 13 00 00 00 00 00 00 00 56 41 4c 00 44 41 54 41 |........VAL.DATA| 0004e5f0 99 00 00 00 48 55 47 45 5f 56 41 4c 0a 54 68 65 |....HUGE_VAL.The| 0004e600 20 6d 61 63 72 6f 20 48 55 47 45 5f 56 41 4c 20 | macro HUGE_VAL | 0004e610 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6d |is defined in <m| 0004e620 61 74 68 2e 68 3d 3e 6d 61 74 68 3e 20 61 73 20 |ath.h=>math> as | 0004e630 61 0a 70 6f 73 69 74 69 76 65 20 64 6f 75 62 6c |a.positive doubl| 0004e640 65 2e 20 49 74 20 69 73 20 75 73 65 64 20 69 6e |e. It is used in| 0004e650 20 72 65 73 75 6c 74 20 6f 76 65 72 66 6c 6f 77 | result overflow| 0004e660 73 0a 74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 |s.to indicate th| 0004e670 65 20 73 69 67 6e 20 6f 66 20 74 68 65 20 72 65 |e sign of the re| 0004e680 73 75 6c 74 2e 00 00 00 44 49 52 24 14 04 00 00 |sult....DIR$....| 0004e690 14 04 00 00 9c ea 04 00 46 ff ff ff 63 f8 2e 25 |........F...c..%| 0004e6a0 51 01 00 00 13 00 00 00 00 00 00 00 49 63 6f 6e |Q...........Icon| 0004e6b0 00 00 00 00 f0 eb 04 00 46 fd ff ff f4 98 84 2f |........F....../| 0004e6c0 20 09 00 00 13 01 00 00 00 00 00 00 49 63 6f 6e | ...........Icon| 0004e6d0 5f 00 00 00 48 44 05 00 46 fd ff ff e3 9d 84 2f |_...HD..F....../| 0004e6e0 4c 00 00 00 13 01 00 00 00 00 00 00 69 63 6f 6e |L...........icon| 0004e6f0 62 61 72 5f 00 00 00 00 0c 46 05 00 46 ff ff ff |bar_.....F..F...| 0004e700 ec 1e 84 2f 83 02 00 00 13 00 00 00 00 00 00 00 |.../............| 0004e710 69 66 00 00 90 48 05 00 46 fd ff ff 37 9e 84 2f |if...H..F...7../| 0004e720 2c 00 00 00 13 01 00 00 00 00 00 00 69 66 5f 00 |,...........if_.| 0004e730 68 4a 05 00 46 ff ff ff 1f 74 e5 22 b6 01 00 00 |hJ..F....t."....| 0004e740 13 00 00 00 00 00 00 00 69 66 64 65 66 00 00 00 |........ifdef...| 0004e750 20 4c 05 00 46 ff ff ff 51 7d e5 22 bc 01 00 00 | L..F...Q}."....| 0004e760 13 00 00 00 00 00 00 00 69 66 6e 64 65 66 00 00 |........ifndef..| 0004e770 dc 4d 05 00 46 ff ff ff 62 05 e6 22 29 02 00 00 |.M..F...b..")...| 0004e780 13 00 00 00 00 00 00 00 49 4d 50 4f 52 54 00 00 |........IMPORT..| 0004e790 08 50 05 00 46 ff ff ff ad 53 e5 22 1e 03 00 00 |.P..F....S."....| 0004e7a0 13 00 00 00 00 00 00 00 69 6e 63 6c 75 64 65 00 |........include.| 0004e7b0 28 53 05 00 46 fd ff ff ac 9e 84 2f 44 00 00 00 |(S..F....../D...| 0004e7c0 13 01 00 00 00 00 00 00 49 4e 54 5f 00 00 00 00 |........INT_....| 0004e7d0 bc 54 05 00 46 ff ff ff f7 c3 55 26 34 02 00 00 |.T..F.....U&4...| 0004e7e0 13 00 00 00 00 00 00 00 49 6e 74 65 72 66 61 63 |........Interfac| 0004e7f0 65 00 00 00 f0 56 05 00 46 fd ff ff f7 9e 84 2f |e....V..F....../| 0004e800 88 01 00 00 13 01 00 00 00 00 00 00 49 6e 74 65 |............Inte| 0004e810 72 66 61 63 65 5f 00 00 d4 64 05 00 46 ff ff ff |rface_...d..F...| 0004e820 54 27 bb 22 08 01 00 00 13 00 00 00 00 00 00 00 |T'."............| 0004e830 69 73 61 6c 6e 75 6d 00 dc 65 05 00 46 ff ff ff |isalnum..e..F...| 0004e840 d9 f1 ba 22 be 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0004e850 69 73 61 6c 70 68 61 00 9c 66 05 00 46 ff ff ff |isalpha..f..F...| 0004e860 ff fa ba 22 c7 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0004e870 69 73 63 6e 74 72 6c 00 64 67 05 00 46 ff ff ff |iscntrl.dg..F...| 0004e880 1a 03 bb 22 c3 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0004e890 69 73 64 69 67 69 74 00 28 68 05 00 46 ff ff ff |isdigit.(h..F...| 0004e8a0 3e 0a bb 22 dd 00 00 00 13 00 00 00 00 00 00 00 |>.."............| 0004e8b0 69 73 67 72 61 70 68 00 08 69 05 00 46 ff ff ff |isgraph..i..F...| 0004e8c0 dc 0f bb 22 bd 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0004e8d0 69 73 6c 6f 77 65 72 00 c8 69 05 00 46 ff ff ff |islower..i..F...| 0004e8e0 bf 14 bb 22 e3 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0004e8f0 69 73 70 72 69 6e 74 00 ac 6a 05 00 46 ff ff ff |isprint..j..F...| 0004e900 37 21 bb 22 35 01 00 00 13 00 00 00 00 00 00 00 |7!."5...........| 0004e910 69 73 70 75 6e 63 74 00 e4 6b 05 00 46 ff ff ff |ispunct..k..F...| 0004e920 16 41 bb 22 81 01 00 00 13 00 00 00 00 00 00 00 |.A."............| 0004e930 69 73 73 70 61 63 65 00 68 6d 05 00 46 ff ff ff |isspace.hm..F...| 0004e940 a7 49 bb 22 bd 00 00 00 13 00 00 00 00 00 00 00 |.I."............| 0004e950 69 73 75 70 70 65 72 00 28 6e 05 00 46 ff ff ff |isupper.(n..F...| 0004e960 b0 50 bb 22 cb 00 00 00 13 00 00 00 00 00 00 00 |.P."............| 0004e970 69 73 78 64 69 67 69 74 00 00 00 00 f4 6e 05 00 |isxdigit.....n..| 0004e980 46 fd ff ff 9c a0 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 0004e990 00 00 00 00 6a 6d 70 5f 00 00 00 00 e8 6f 05 00 |....jmp_.....o..| 0004e9a0 46 fd ff ff be a0 84 2f 70 00 00 00 13 01 00 00 |F....../p.......| 0004e9b0 00 00 00 00 6a 6f 69 6e 5f 00 00 00 18 72 05 00 |....join_....r..| 0004e9c0 46 fd ff ff 08 a1 84 2f 88 00 00 00 13 01 00 00 |F....../........| 0004e9d0 00 00 00 00 6b 5f 00 00 ec 77 05 00 46 ff ff ff |....k_...w..F...| 0004e9e0 da 89 30 25 1b 01 00 00 13 00 00 00 00 00 00 00 |..0%............| 0004e9f0 4b 62 64 00 08 79 05 00 46 fd ff ff 72 a1 84 2f |Kbd..y..F...r../| 0004ea00 d4 00 00 00 13 01 00 00 00 00 00 00 4b 62 64 5f |............Kbd_| 0004ea10 00 00 00 00 cc 83 05 00 46 ff ff ff 39 19 ae 24 |........F...9..$| 0004ea20 37 03 00 00 13 00 00 00 00 00 00 00 6b 65 72 6e |7...........kern| 0004ea30 65 6c 00 00 04 87 05 00 46 ff ff ff 50 e9 3e 25 |el......F...P.>%| 0004ea40 49 01 00 00 13 00 00 00 00 00 00 00 4b 65 72 6e |I...........Kern| 0004ea50 65 6c 53 57 49 73 00 00 50 88 05 00 46 fd ff ff |elSWIs..P...F...| 0004ea60 26 a2 84 2f 4c 00 00 00 13 01 00 00 00 00 00 00 |&../L...........| 0004ea70 6b 65 79 5f 00 00 00 00 0c 8a 05 00 46 ff ff ff |key_........F...| 0004ea80 f5 4c 3f 25 78 07 00 00 13 00 00 00 00 00 00 00 |.L?%x...........| 0004ea90 4b 65 79 43 6f 64 65 73 00 00 00 00 44 41 54 41 |KeyCodes....DATA| 0004eaa0 51 01 00 00 44 65 73 6b 4c 69 62 3a 49 63 6f 6e |Q...DeskLib:Icon| 0004eab0 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 31 34 |.h.Version: 1.14| 0004eac0 20 28 44 65 63 20 31 39 39 34 29 0a 23 6c 69 6e | (Dec 1994).#lin| 0004ead0 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 |e.This header de| 0004eae0 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 |clares functions| 0004eaf0 20 66 6f 72 20 68 69 67 68 2d 6c 65 76 65 6c 20 | for high-level | 0004eb00 69 63 6f 6e 20 68 61 6e 64 6c 69 6e 67 2e 0a 0a |icon handling...| 0004eb10 23 49 6e 64 65 6e 74 20 31 33 0a 3c 43 6f 6e 74 |#Indent 13.<Cont| 0004eb20 72 6f 6c 6c 69 6e 67 3d 3e 49 63 6f 6e 5f 63 6f |rolling=>Icon_co| 0004eb30 6e 74 5f 3e 0a 3c 52 65 61 64 69 6e 67 2f 57 72 |nt_>.<Reading/Wr| 0004eb40 69 74 69 6e 67 20 53 74 61 74 65 3d 3e 49 63 6f |iting State=>Ico| 0004eb50 6e 5f 73 74 61 74 65 5f 3e 0a 3c 52 65 61 64 69 |n_state_>.<Readi| 0004eb60 6e 67 2f 57 72 69 74 69 6e 67 20 43 6f 6e 74 65 |ng/Writing Conte| 0004eb70 6e 74 73 3d 3e 49 63 6f 6e 5f 63 6f 6e 74 65 6e |nts=>Icon_conten| 0004eb80 74 73 5f 3e 0a 3c 44 72 61 67 67 69 6e 67 3d 3e |ts_>.<Dragging=>| 0004eb90 49 63 6f 6e 5f 64 72 61 67 5f 3e 0a 3c 53 6c 69 |Icon_drag_>.<Sli| 0004eba0 64 65 72 20 6f 70 65 72 61 74 69 6f 6e 73 3d 3e |der operations=>| 0004ebb0 49 63 6f 6e 5f 73 6c 69 64 65 5f 3e 0a 23 69 6e |Icon_slide_>.#in| 0004ebc0 64 65 6e 74 0a 0a 54 79 70 65 3a 0a 0a 7b 61 6c |dent..Type:..{al| 0004ebd0 69 67 6e 20 63 65 6e 74 72 65 7d 3c 69 63 6f 6e |ign centre}<icon| 0004ebe0 5f 69 6e 63 64 65 63 62 6c 6f 63 6b 3e 00 00 00 |_incdecblock>...| 0004ebf0 44 49 52 24 20 09 00 00 20 09 00 00 10 f5 04 00 |DIR$ ... .......| 0004ec00 46 ff ff ff 96 78 e3 27 57 01 00 00 13 00 00 00 |F....x.'W.......| 0004ec10 00 00 00 00 42 61 72 49 63 6f 6e 00 68 f6 04 00 |....BarIcon.h...| 0004ec20 46 ff ff ff 62 82 e3 27 c5 01 00 00 13 00 00 00 |F...b..'........| 0004ec30 00 00 00 00 42 61 72 49 63 6f 6e 55 73 65 72 00 |....BarIconUser.| 0004ec40 30 f8 04 00 46 ff ff ff 5b 21 41 26 c9 00 00 00 |0...F...[!A&....| 0004ec50 13 00 00 00 00 00 00 00 62 6c 6f 63 6b 00 00 00 |........block...| 0004ec60 fc f8 04 00 46 ff ff ff 33 57 2e 25 0b 01 00 00 |....F...3W.%....| 0004ec70 13 00 00 00 00 00 00 00 43 6c 69 63 6b 57 61 69 |........ClickWai| 0004ec80 74 00 00 00 08 fa 04 00 46 fd ff ff a1 55 30 25 |t.......F....U0%| 0004ec90 1c 01 00 00 13 00 00 00 00 00 00 00 63 6f 6e 74 |............cont| 0004eca0 5f 00 00 00 24 fb 04 00 46 fd ff ff 15 1b 30 25 |_...$...F.....0%| 0004ecb0 10 01 00 00 13 00 00 00 00 00 00 00 63 6f 6e 74 |............cont| 0004ecc0 65 6e 74 73 5f 00 00 00 34 fc 04 00 46 ff ff ff |ents_...4...F...| 0004ecd0 9c 27 41 26 bd 00 00 00 13 00 00 00 00 00 00 00 |.'A&............| 0004ece0 63 72 65 61 74 65 62 6c 6f 63 6b 00 f4 fc 04 00 |createblock.....| 0004ecf0 46 ff ff ff 28 17 41 26 f6 00 00 00 13 00 00 00 |F...(.A&........| 0004ed00 00 00 00 00 64 61 74 61 00 00 00 00 ec fd 04 00 |....data........| 0004ed10 46 ff ff ff f1 a5 2c 25 b6 00 00 00 13 00 00 00 |F.....,%........| 0004ed20 00 00 00 00 44 65 73 65 6c 65 63 74 00 00 00 00 |....Deselect....| 0004ed30 a4 fe 04 00 46 ff ff ff 8b 8d 55 26 37 01 00 00 |....F.....U&7...| 0004ed40 13 00 00 00 00 00 00 00 44 69 73 70 6f 73 65 44 |........DisposeD| 0004ed50 61 74 61 00 dc ff 04 00 46 ff ff ff 82 89 2e 25 |ata.....F......%| 0004ed60 47 01 00 00 13 00 00 00 00 00 00 00 44 69 73 70 |G...........Disp| 0004ed70 6f 73 65 49 6e 64 44 61 74 61 00 00 24 01 05 00 |oseIndData..$...| 0004ed80 46 fd ff ff 0a 61 2e 25 62 00 00 00 13 00 00 00 |F....a.%b.......| 0004ed90 00 00 00 00 64 72 61 67 5f 00 00 00 88 01 05 00 |....drag_.......| 0004eda0 46 ff ff ff 36 dc 2e 25 8b 01 00 00 13 00 00 00 |F...6..%........| 0004edb0 00 00 00 00 44 72 61 67 53 6c 69 64 65 72 00 00 |....DragSlider..| 0004edc0 14 03 05 00 46 ff ff ff df a0 2e 25 4f 01 00 00 |....F......%O...| 0004edd0 13 00 00 00 00 00 00 00 46 69 6c 65 49 63 6f 6e |........FileIcon| 0004ede0 00 00 00 00 64 04 05 00 46 ff ff ff e4 4e 38 26 |....d...F....N8&| 0004edf0 d6 03 00 00 13 00 00 00 00 00 00 00 66 6c 61 67 |............flag| 0004ee00 73 00 00 00 3c 08 05 00 46 ff ff ff 0c df 2c 25 |s...<...F.....,%| 0004ee10 68 01 00 00 13 00 00 00 00 00 00 00 46 6f 72 63 |h...........Forc| 0004ee20 65 52 65 64 72 61 77 00 a4 09 05 00 46 ff ff ff |eRedraw.....F...| 0004ee30 6f cf 2c 25 ea 00 00 00 13 00 00 00 00 00 00 00 |o.,%............| 0004ee40 46 6f 72 63 65 57 69 6e 64 6f 77 52 65 64 72 61 |ForceWindowRedra| 0004ee50 77 00 00 00 90 0a 05 00 46 ff ff ff 9b eb 2d 25 |w.......F.....-%| 0004ee60 07 01 00 00 13 00 00 00 00 00 00 00 47 65 74 42 |............GetB| 0004ee70 67 43 6f 6c 00 00 00 00 98 0b 05 00 46 ff ff ff |gCol........F...| 0004ee80 eb 29 2d 25 2f 01 00 00 13 00 00 00 00 00 00 00 |.)-%/...........| 0004ee90 47 65 74 44 6f 75 62 6c 65 00 00 00 c8 0c 05 00 |GetDouble.......| 0004eea0 46 ff ff ff 81 e5 2d 25 1b 01 00 00 13 00 00 00 |F.....-%........| 0004eeb0 00 00 00 00 47 65 74 46 67 43 6f 6c 00 00 00 00 |....GetFgCol....| 0004eec0 e4 0d 05 00 46 ff ff ff ab 70 2d 25 28 01 00 00 |....F....p-%(...| 0004eed0 13 00 00 00 00 00 00 00 47 65 74 49 6e 74 65 67 |........GetInteg| 0004eee0 65 72 00 00 0c 0f 05 00 46 ff ff ff 09 91 2c 25 |er......F.....,%| 0004eef0 d9 00 00 00 13 00 00 00 00 00 00 00 47 65 74 53 |............GetS| 0004ef00 65 6c 65 63 74 00 00 00 e8 0f 05 00 46 ff ff ff |elect.......F...| 0004ef10 2e 96 2c 25 d3 00 00 00 13 00 00 00 00 00 00 00 |..,%............| 0004ef20 47 65 74 53 68 61 64 65 00 00 00 00 bc 10 05 00 |GetShade........| 0004ef30 46 ff ff ff 79 76 2d 25 1b 01 00 00 13 00 00 00 |F...yv-%........| 0004ef40 00 00 00 00 47 65 74 54 65 78 74 00 d8 11 05 00 |....GetText.....| 0004ef50 46 ff ff ff 96 7f 2d 25 96 01 00 00 13 00 00 00 |F.....-%........| 0004ef60 00 00 00 00 47 65 74 54 65 78 74 50 74 72 00 00 |....GetTextPtr..| 0004ef70 70 13 05 00 46 ff ff ff 7a 73 37 26 7f 00 00 00 |p...F...zs7&....| 0004ef80 13 00 00 00 00 00 00 00 68 61 6e 64 6c 65 00 00 |........handle..| 0004ef90 f0 13 05 00 46 ff ff ff 73 66 38 26 de 00 00 00 |....F...sf8&....| 0004efa0 13 00 00 00 00 00 00 00 69 6e 64 73 70 72 69 74 |........indsprit| 0004efb0 65 00 00 00 d0 14 05 00 46 ff ff ff c3 59 38 26 |e.......F....Y8&| 0004efc0 d2 00 00 00 13 00 00 00 00 00 00 00 69 6e 64 74 |............indt| 0004efd0 65 78 74 00 a4 15 05 00 46 ff ff ff a4 ed 2c 25 |ext.....F.....,%| 0004efe0 00 01 00 00 13 00 00 00 00 00 00 00 4c 6f 73 65 |............Lose| 0004eff0 43 61 72 65 74 00 00 00 a4 16 05 00 46 ff ff ff |Caret.......F...| 0004f000 34 65 2d 25 59 01 00 00 13 00 00 00 00 00 00 00 |4e-%Y...........| 0004f010 70 72 69 6e 74 66 00 00 00 18 05 00 46 ff ff ff |printf......F...| 0004f020 34 e2 2e 25 f6 00 00 00 13 00 00 00 00 00 00 00 |4..%............| 0004f030 52 65 61 64 53 6c 69 64 65 72 00 00 f8 18 05 00 |ReadSlider......| 0004f040 46 ff ff ff df af 2e 25 26 01 00 00 13 00 00 00 |F......%&.......| 0004f050 00 00 00 00 53 63 72 65 65 6e 50 6f 73 00 00 00 |....ScreenPos...| 0004f060 20 1a 05 00 46 ff ff ff f0 a1 2c 25 b2 00 00 00 | ...F.....,%....| 0004f070 13 00 00 00 00 00 00 00 53 65 6c 65 63 74 00 00 |........Select..| 0004f080 d4 1a 05 00 46 ff ff ff 9c 93 55 26 36 01 00 00 |....F.....U&6...| 0004f090 13 00 00 00 00 00 00 00 53 65 6c 65 63 74 47 72 |........SelectGr| 0004f0a0 6f 75 70 00 0c 1c 05 00 46 ff ff ff e1 c7 2c 25 |oup.....F.....,%| 0004f0b0 1d 01 00 00 13 00 00 00 00 00 00 00 53 65 74 42 |............SetB| 0004f0c0 61 63 6b 43 6f 6c 6f 75 72 00 00 00 2c 1d 05 00 |ackColour...,...| 0004f0d0 46 ff ff ff 45 c0 2d 25 53 01 00 00 13 00 00 00 |F...E.-%S.......| 0004f0e0 00 00 00 00 53 65 74 42 67 43 6f 6c 00 00 00 00 |....SetBgCol....| 0004f0f0 80 1e 05 00 46 ff ff ff 2b e9 2c 25 0c 01 00 00 |....F...+.,%....| 0004f100 13 00 00 00 00 00 00 00 53 65 74 43 61 72 65 74 |........SetCaret| 0004f110 00 00 00 00 8c 1f 05 00 46 ff ff ff 9c 38 2d 25 |........F....8-%| 0004f120 63 01 00 00 13 00 00 00 00 00 00 00 53 65 74 44 |c...........SetD| 0004f130 6f 75 62 6c 65 00 00 00 f0 20 05 00 46 ff ff ff |ouble.... ..F...| 0004f140 fd b8 2d 25 48 01 00 00 13 00 00 00 00 00 00 00 |..-%H...........| 0004f150 53 65 74 46 67 43 6f 6c 00 00 00 00 38 22 05 00 |SetFgCol....8"..| 0004f160 46 ff ff ff cc a1 2d 25 9c 01 00 00 13 00 00 00 |F.....-%........| 0004f170 00 00 00 00 53 65 74 46 6c 61 67 73 00 00 00 00 |....SetFlags....| 0004f180 d4 23 05 00 46 ff ff ff a8 c2 2c 25 1d 01 00 00 |.#..F.....,%....| 0004f190 13 00 00 00 00 00 00 00 53 65 74 46 6f 72 65 43 |........SetForeC| 0004f1a0 6f 6c 6f 75 72 00 00 00 f4 24 05 00 46 ff ff ff |olour....$..F...| 0004f1b0 25 30 2d 25 3c 01 00 00 13 00 00 00 00 00 00 00 |%0-%<...........| 0004f1c0 53 65 74 49 6e 74 65 67 65 72 00 00 30 26 05 00 |SetInteger..0&..| 0004f1d0 46 ff ff ff 8c f7 2d 25 9f 01 00 00 13 00 00 00 |F.....-%........| 0004f1e0 00 00 00 00 53 65 74 52 61 64 69 6f 73 00 00 00 |....SetRadios...| 0004f1f0 d0 27 05 00 46 ff ff ff da 9c 2c 25 de 00 00 00 |.'..F.....,%....| 0004f200 13 00 00 00 00 00 00 00 53 65 74 53 65 6c 65 63 |........SetSelec| 0004f210 74 00 00 00 b0 28 05 00 46 ff ff ff f3 ab 2c 25 |t....(..F.....,%| 0004f220 dd 00 00 00 13 00 00 00 00 00 00 00 53 65 74 53 |............SetS| 0004f230 68 61 64 65 00 00 00 00 90 29 05 00 46 ff ff ff |hade.....)..F...| 0004f240 f9 bd 2e 25 fa 00 00 00 13 00 00 00 00 00 00 00 |...%............| 0004f250 53 65 74 53 6c 69 64 65 72 00 00 00 8c 2a 05 00 |SetSlider....*..| 0004f260 46 ff ff ff fc 46 2d 25 4b 01 00 00 13 00 00 00 |F....F-%K.......| 0004f270 00 00 00 00 53 65 74 54 65 78 74 00 d8 2b 05 00 |....SetText..+..| 0004f280 46 ff ff ff 20 55 2d 25 b0 01 00 00 13 00 00 00 |F... U-%........| 0004f290 00 00 00 00 53 65 74 54 65 78 74 52 4a 00 00 00 |....SetTextRJ...| 0004f2a0 88 2d 05 00 46 ff ff ff 4e b0 2c 25 d7 00 00 00 |.-..F...N.,%....| 0004f2b0 13 00 00 00 00 00 00 00 53 68 61 64 65 00 00 00 |........Shade...| 0004f2c0 60 2e 05 00 46 ff ff ff 3b cf 2d 25 30 01 00 00 |`...F...;.-%0...| 0004f2d0 13 00 00 00 00 00 00 00 53 68 61 64 65 47 72 6f |........ShadeGro| 0004f2e0 75 70 00 00 90 2f 05 00 46 fd ff ff f3 b7 2e 25 |up.../..F......%| 0004f2f0 82 00 00 00 13 00 00 00 00 00 00 00 73 6c 69 64 |............slid| 0004f300 65 5f 00 00 14 30 05 00 46 ff ff ff ad 69 2e 25 |e_...0..F....i.%| 0004f310 4c 01 00 00 13 00 00 00 00 00 00 00 53 74 61 72 |L...........Star| 0004f320 74 44 72 61 67 00 00 00 60 31 05 00 46 ff ff ff |tDrag...`1..F...| 0004f330 5b 78 2e 25 08 01 00 00 13 00 00 00 00 00 00 00 |[x.%............| 0004f340 53 74 61 72 74 53 6f 6c 69 64 44 72 61 67 00 00 |StartSolidDrag..| 0004f350 68 32 05 00 46 fd ff ff 57 14 2e 25 b7 01 00 00 |h2..F...W..%....| 0004f360 13 00 00 00 00 00 00 00 73 74 61 74 65 5f 00 00 |........state_..| 0004f370 20 34 05 00 46 fd ff ff 63 84 55 26 81 01 00 00 | 4..F...c.U&....| 0004f380 13 00 00 00 00 00 00 00 54 4c 00 00 a4 35 05 00 |........TL...5..| 0004f390 46 ff ff ff 13 ab 55 26 2e 01 00 00 13 00 00 00 |F.....U&........| 0004f3a0 00 00 00 00 54 59 50 45 00 00 00 00 d4 36 05 00 |....TYPE.....6..| 0004f3b0 46 ff ff ff 13 b5 2c 25 b4 00 00 00 13 00 00 00 |F.....,%........| 0004f3c0 00 00 00 00 55 6e 73 68 61 64 65 00 88 37 05 00 |....Unshade..7..| 0004f3d0 46 ff ff ff 62 ce 2e 25 92 01 00 00 13 00 00 00 |F...b..%........| 0004f3e0 00 00 00 00 55 70 64 61 74 65 53 6c 69 64 65 72 |....UpdateSlider| 0004f3f0 00 00 00 00 1c 39 05 00 46 ff ff ff 9b 06 2e 25 |.....9..F......%| 0004f400 db 01 00 00 13 00 00 00 00 00 00 00 57 68 69 63 |............Whic| 0004f410 68 52 61 64 69 6f 00 00 f8 3a 05 00 46 ff ff ff |hRadio...:..F...| 0004f420 29 44 2e 25 39 01 00 00 13 00 00 00 00 00 00 00 |)D.%9...........| 0004f430 57 68 69 63 68 52 61 64 69 6f 49 6e 45 73 67 00 |WhichRadioInEsg.| 0004f440 34 3c 05 00 46 ff ff ff 36 54 2f 25 2a 02 00 00 |4<..F...6T/%*...| 0004f450 13 00 00 00 00 00 00 00 69 6e 63 64 65 63 62 6c |........incdecbl| 0004f460 6f 63 6b 00 60 3e 05 00 46 ff ff ff df cc 2f 25 |ock.`>..F...../%| 0004f470 82 02 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |............Init| 0004f480 49 6e 63 44 65 63 48 61 6e 64 6c 65 72 00 00 00 |IncDecHandler...| 0004f490 e4 40 05 00 46 ff ff ff cb 04 30 25 4b 01 00 00 |.@..F.....0%K...| 0004f4a0 13 00 00 00 00 00 00 00 52 65 6c 65 61 73 65 49 |........ReleaseI| 0004f4b0 6e 63 44 65 63 48 61 6e 64 6c 65 72 00 00 00 00 |ncDecHandler....| 0004f4c0 30 42 05 00 46 ff ff ff a8 43 30 25 89 01 00 00 |0B..F....C0%....| 0004f4d0 13 00 00 00 00 00 00 00 41 6c 74 65 72 56 61 6c |........AlterVal| 0004f4e0 69 64 61 74 69 6f 6e 00 bc 43 05 00 46 ff ff ff |idation..C..F...| 0004f4f0 f4 6e 30 25 8c 00 00 00 13 00 00 00 00 00 00 00 |.n0%............| 0004f500 42 75 74 74 6f 6e 49 73 48 65 6c 64 00 00 00 00 |ButtonIsHeld....| 0004f510 44 41 54 41 57 01 00 00 49 63 6f 6e 5f 42 61 72 |DATAW...Icon_Bar| 0004f520 49 63 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c 69 63 |Icon.Syntax:.<ic| 0004f530 6f 6e 5f 68 61 6e 64 6c 65 3e 20 49 63 6f 6e 5f |on_handle> Icon_| 0004f540 42 61 72 49 63 6f 6e 20 28 63 68 61 72 20 2a 73 |BarIcon (char *s| 0004f550 70 72 2c 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |pr, <window_hand| 0004f560 6c 65 3e 20 70 6f 73 29 3b 0a 48 65 61 64 65 72 |le> pos);.Header| 0004f570 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e |:.<DeskLib:Icon.| 0004f580 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e |h=>Icon>..Return| 0004f590 73 3a 09 49 63 6f 6e 20 68 61 6e 64 6c 65 20 6f |s:.Icon handle o| 0004f5a0 66 20 63 72 65 61 74 65 64 20 69 63 6f 6e 2e 0a |f created icon..| 0004f5b0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 |.This function p| 0004f5c0 6c 61 63 65 73 20 61 20 6e 6f 72 6d 61 6c 20 73 |laces a normal s| 0004f5d0 70 72 69 74 65 2d 6f 6e 6c 79 20 69 63 6f 6e 20 |prite-only icon | 0004f5e0 6f 6e 20 74 68 65 20 69 63 6f 6e 20 62 61 72 2e |on the icon bar.| 0004f5f0 20 2f 73 70 72 2f 20 69 73 20 61 20 70 6f 69 6e | /spr/ is a poin| 0004f600 74 65 72 20 74 6f 20 74 68 65 20 73 70 72 69 74 |ter to the sprit| 0004f610 65 20 6e 61 6d 65 20 61 6e 64 20 2f 70 6f 73 2f |e name and /pos/| 0004f620 20 69 73 20 74 68 65 20 73 69 64 65 20 6f 66 20 | is the side of | 0004f630 74 68 65 20 69 63 6f 6e 20 62 61 72 2c 20 65 69 |the icon bar, ei| 0004f640 74 68 65 72 20 3c 69 63 6f 6e 62 61 72 5f 4c 45 |ther <iconbar_LE| 0004f650 46 54 3e 20 6f 72 20 3c 69 63 6f 6e 62 61 72 5f |FT> or <iconbar_| 0004f660 52 49 47 48 54 3e 2e 00 44 41 54 41 c5 01 00 00 |RIGHT>..DATA....| 0004f670 49 63 6f 6e 5f 42 61 72 49 63 6f 6e 55 73 65 72 |Icon_BarIconUser| 0004f680 0a 53 79 6e 74 61 78 3a 09 3c 69 63 6f 6e 5f 68 |.Syntax:.<icon_h| 0004f690 61 6e 64 6c 65 3e 20 49 63 6f 6e 5f 42 61 72 49 |andle> Icon_BarI| 0004f6a0 63 6f 6e 55 73 65 72 20 28 63 68 61 72 20 2a 73 |conUser (char *s| 0004f6b0 70 72 2c 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |pr, <window_hand| 0004f6c0 6c 65 3e 20 70 6f 73 2c 20 75 6e 73 69 67 6e 65 |le> pos, unsigne| 0004f6d0 64 20 69 6e 74 20 2a 73 70 72 5f 61 72 65 61 29 |d int *spr_area)| 0004f6e0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0004f6f0 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f |ib:Icon.h=>Icon_| 0004f700 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 49 63 6f |h>..Returns:.Ico| 0004f710 6e 20 68 61 6e 64 6c 65 20 6f 66 20 63 72 65 61 |n handle of crea| 0004f720 74 65 64 20 69 63 6f 6e 2e 0a 0a 54 68 69 73 20 |ted icon...This | 0004f730 66 75 6e 63 74 69 6f 6e 20 70 6c 61 63 65 73 20 |function places | 0004f740 61 20 6e 6f 72 6d 61 6c 20 73 70 72 69 74 65 2d |a normal sprite-| 0004f750 6f 6e 6c 79 20 69 63 6f 6e 20 6f 6e 20 74 68 65 |only icon on the| 0004f760 20 69 63 6f 6e 20 62 61 72 2e 20 2f 73 70 72 2f | icon bar. /spr/| 0004f770 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f | is a pointer to| 0004f780 20 74 68 65 20 73 70 72 69 74 65 20 6e 61 6d 65 | the sprite name| 0004f790 20 61 6e 64 20 2f 70 6f 73 2f 20 69 73 20 74 68 | and /pos/ is th| 0004f7a0 65 20 73 69 64 65 20 6f 66 20 74 68 65 20 69 63 |e side of the ic| 0004f7b0 6f 6e 20 62 61 72 2c 20 65 69 74 68 65 72 20 3c |on bar, either <| 0004f7c0 69 63 6f 6e 62 61 72 5f 4c 45 46 54 3e 20 6f 72 |iconbar_LEFT> or| 0004f7d0 20 3c 69 63 6f 6e 62 61 72 5f 52 49 47 48 54 3e | <iconbar_RIGHT>| 0004f7e0 2e 20 54 68 65 20 73 70 72 69 74 65 20 69 73 20 |. The sprite is | 0004f7f0 74 61 6b 65 6e 20 66 72 6f 6d 20 74 68 65 20 75 |taken from the u| 0004f800 73 65 72 20 73 70 72 69 74 65 20 61 72 65 61 20 |ser sprite area | 0004f810 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 7b 2f |pointed to by {/| 0004f820 7d 73 70 72 5f 61 72 65 61 7b 2f 7d 2e 00 00 00 |}spr_area{/}....| 0004f830 44 41 54 41 c9 00 00 00 69 63 6f 6e 5f 62 6c 6f |DATA....icon_blo| 0004f840 63 6b 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |ck.This type is | 0004f850 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 0004f860 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 |Lib:Wimp.h=>Wimp| 0004f870 3e 20 61 73 20 61 20 73 74 72 75 63 74 75 72 65 |> as a structure| 0004f880 20 68 6f 6c 64 69 6e 67 20 61 20 63 6f 6d 70 6c | holding a compl| 0004f890 65 74 65 20 69 63 6f 6e 20 64 65 66 69 6e 69 74 |ete icon definit| 0004f8a0 69 6f 6e 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c |ion:.. \{. <| 0004f8b0 77 69 6d 70 5f 62 6f 78 3e 09 77 6f 72 6b 61 72 |wimp_box>.workar| 0004f8c0 65 61 72 65 63 74 3b 0a 20 20 20 20 3c 69 63 6f |earect;. <ico| 0004f8d0 6e 5f 66 6c 61 67 73 3e 09 66 6c 61 67 73 3b 0a |n_flags>.flags;.| 0004f8e0 20 20 20 20 3c 69 63 6f 6e 5f 64 61 74 61 3e 09 | <icon_data>.| 0004f8f0 64 61 74 61 3b 0a 20 20 7d 00 00 00 44 41 54 41 |data;. }...DATA| 0004f900 0b 01 00 00 49 63 6f 6e 5f 43 6c 69 63 6b 57 61 |....Icon_ClickWa| 0004f910 69 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |it.Syntax:.void | 0004f920 49 63 6f 6e 5f 43 6c 69 63 6b 57 61 69 74 20 28 |Icon_ClickWait (| 0004f930 69 6e 74 20 74 29 3b 0a 48 65 61 64 65 72 3a 09 |int t);.Header:.| 0004f940 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<DeskLib:Icon.h=| 0004f950 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e |>Icon>..This fun| 0004f960 63 74 69 6f 6e 20 77 61 69 74 73 20 66 6f 72 20 |ction waits for | 0004f970 2f 74 2f 20 63 65 6e 74 69 73 65 63 6f 6e 64 73 |/t/ centiseconds| 0004f980 2e 20 49 74 20 69 73 20 61 20 6d 75 6c 74 69 74 |. It is a multit| 0004f990 61 73 6b 69 6e 67 20 77 61 69 74 20 2d 20 61 6c |asking wait - al| 0004f9a0 74 68 6f 75 67 68 20 79 6f 75 72 20 74 61 73 6b |though your task| 0004f9b0 20 69 73 20 68 61 6c 74 65 64 2c 20 74 68 65 20 | is halted, the | 0004f9c0 72 65 73 74 20 6f 66 20 74 68 65 20 64 65 73 6b |rest of the desk| 0004f9d0 74 6f 70 20 63 6f 6e 74 69 6e 75 65 73 2e 20 49 |top continues. I| 0004f9e0 66 20 61 6e 20 65 76 65 6e 74 20 6f 63 63 75 72 |f an event occur| 0004f9f0 73 2c 20 74 68 65 20 77 61 69 74 20 69 73 20 61 |s, the wait is a| 0004fa00 62 6f 72 74 65 64 2e 00 44 41 54 41 1c 01 00 00 |borted..DATA....| 0004fa10 49 63 6f 6e 20 43 6f 6e 74 72 6f 6c 6c 69 6e 67 |Icon Controlling| 0004fa20 20 46 75 6e 63 74 69 6f 6e 73 0a 23 54 61 62 6c | Functions.#Tabl| 0004fa30 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 49 63 6f |e columns 2.<Ico| 0004fa40 6e 5f 42 61 72 49 63 6f 6e 3e 0a 3c 49 63 6f 6e |n_BarIcon>.<Icon| 0004fa50 5f 42 61 72 49 63 6f 6e 55 73 65 72 3e 0a 3c 49 |_BarIconUser>.<I| 0004fa60 63 6f 6e 5f 43 6c 69 63 6b 57 61 69 74 3e 0a 3c |con_ClickWait>.<| 0004fa70 49 63 6f 6e 5f 44 69 73 70 6f 73 65 49 6e 64 44 |Icon_DisposeIndD| 0004fa80 61 74 61 3e 0a 3c 49 63 6f 6e 5f 46 6f 72 63 65 |ata>.<Icon_Force| 0004fa90 52 65 64 72 61 77 3e 0a 3c 49 63 6f 6e 5f 46 6f |Redraw>.<Icon_Fo| 0004faa0 72 63 65 57 69 6e 64 6f 77 52 65 64 72 61 77 3e |rceWindowRedraw>| 0004fab0 0a 3c 49 63 6f 6e 5f 4c 6f 73 65 43 61 72 65 74 |.<Icon_LoseCaret| 0004fac0 3e 0a 3c 49 63 6f 6e 5f 53 65 74 43 61 72 65 74 |>.<Icon_SetCaret| 0004fad0 3e 0a 3c 49 63 6f 6e 5f 49 6e 69 74 49 6e 63 44 |>.<Icon_InitIncD| 0004fae0 65 63 48 61 6e 64 6c 65 72 3e 0a 3c 49 63 6f 6e |ecHandler>.<Icon| 0004faf0 5f 52 65 6c 65 61 73 65 49 6e 63 44 65 63 48 61 |_ReleaseIncDecHa| 0004fb00 6e 64 6c 65 72 3e 0a 3c 49 63 6f 6e 5f 42 75 74 |ndler>.<Icon_But| 0004fb10 74 6f 6e 49 73 48 65 6c 64 3e 0a 23 45 6e 64 54 |tonIsHeld>.#EndT| 0004fb20 61 62 6c 65 44 41 54 41 10 01 00 00 52 65 61 64 |ableDATA....Read| 0004fb30 69 6e 67 2f 57 72 69 74 69 6e 67 20 49 63 6f 6e |ing/Writing Icon| 0004fb40 20 43 6f 6e 74 65 6e 74 73 20 46 75 6e 63 74 69 | Contents Functi| 0004fb50 6f 6e 73 0a 23 49 6e 64 65 6e 74 20 34 0a 23 54 |ons.#Indent 4.#T| 0004fb60 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c |able columns 2.<| 0004fb70 49 63 6f 6e 5f 47 65 74 44 6f 75 62 6c 65 3e 0a |Icon_GetDouble>.| 0004fb80 3c 49 63 6f 6e 5f 47 65 74 49 6e 74 65 67 65 72 |<Icon_GetInteger| 0004fb90 3e 0a 3c 49 63 6f 6e 5f 47 65 74 54 65 78 74 3e |>.<Icon_GetText>| 0004fba0 0a 3c 49 63 6f 6e 5f 47 65 74 54 65 78 74 50 74 |.<Icon_GetTextPt| 0004fbb0 72 3e 0a 3c 49 63 6f 6e 5f 70 72 69 6e 74 66 3e |r>.<Icon_printf>| 0004fbc0 0a 3c 49 63 6f 6e 5f 53 65 74 44 6f 75 62 6c 65 |.<Icon_SetDouble| 0004fbd0 3e 0a 3c 49 63 6f 6e 5f 53 65 74 49 6e 74 65 67 |>.<Icon_SetInteg| 0004fbe0 65 72 3e 0a 3c 49 63 6f 6e 5f 53 65 74 54 65 78 |er>.<Icon_SetTex| 0004fbf0 74 3e 0a 3c 49 63 6f 6e 5f 53 65 74 54 65 78 74 |t>.<Icon_SetText| 0004fc00 52 4a 3e 0a 3c 49 63 6f 6e 5f 46 69 6c 65 49 63 |RJ>.<Icon_FileIc| 0004fc10 6f 6e 3e 0a 3c 49 63 6f 6e 5f 41 6c 74 65 72 56 |on>.<Icon_AlterV| 0004fc20 61 6c 69 64 61 74 69 6f 6e 3e 0a 23 45 6e 64 54 |alidation>.#EndT| 0004fc30 61 62 6c 65 44 41 54 41 bd 00 00 00 69 63 6f 6e |ableDATA....icon| 0004fc40 5f 63 72 65 61 74 65 62 6c 6f 63 6b 0a 54 68 69 |_createblock.Thi| 0004fc50 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 0004fc60 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 |d in <DeskLib:Wi| 0004fc70 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 |mp.h=>Wimp> as a| 0004fc80 20 73 74 72 75 63 74 75 72 65 20 68 6f 6c 64 69 | structure holdi| 0004fc90 6e 67 20 61 20 62 6c 6f 63 6b 20 66 6f 72 20 63 |ng a block for c| 0004fca0 72 65 61 74 69 6e 67 20 61 6e 20 69 63 6f 6e 2e |reating an icon.| 0004fcb0 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6e 64 |.. \{. <wind| 0004fcc0 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 69 6e 64 6f |ow_handle>.windo| 0004fcd0 77 3b 0a 20 20 20 20 3c 69 63 6f 6e 5f 62 6c 6f |w;. <icon_blo| 0004fce0 63 6b 3e 09 69 63 6f 6e 64 61 74 61 3b 0a 20 20 |ck>.icondata;. | 0004fcf0 7d 00 00 00 44 41 54 41 f6 00 00 00 69 63 6f 6e |}...DATA....icon| 0004fd00 5f 64 61 74 61 0a 54 68 69 73 20 74 79 70 65 20 |_data.This type | 0004fd10 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 0004fd20 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 |eskLib:Wimp.h=>W| 0004fd30 69 6d 70 3e 20 61 73 20 61 20 75 6e 69 6f 6e 20 |imp> as a union | 0004fd40 66 6f 72 20 61 63 63 65 73 73 69 6e 67 20 69 63 |for accessing ic| 0004fd50 6f 6e 20 64 61 74 61 3a 0a 0a 20 20 5c 7b 0a 20 |on data:.. \{. | 0004fd60 20 20 20 63 68 61 72 09 74 65 78 74 5b 3c 77 69 | char.text[<wi| 0004fd70 6d 70 5f 4d 41 58 4e 41 4d 45 3e 5d 3b 0a 20 20 |mp_MAXNAME>];. | 0004fd80 20 20 3c 69 63 6f 6e 5f 69 6e 64 74 65 78 74 3e | <icon_indtext>| 0004fd90 09 69 6e 64 69 72 65 63 74 74 65 78 74 3b 0a 20 |.indirecttext;. | 0004fda0 20 20 20 63 68 61 72 09 73 70 72 69 74 65 6e 61 | char.spritena| 0004fdb0 6d 65 5b 77 69 6d 70 5f 4d 41 58 4e 41 4d 45 5d |me[wimp_MAXNAME]| 0004fdc0 3b 0a 20 20 20 20 3c 69 63 6f 6e 5f 69 6e 64 73 |;. <icon_inds| 0004fdd0 70 72 69 74 65 3e 09 69 6e 64 69 72 65 63 74 73 |prite>.indirects| 0004fde0 70 72 69 74 65 3b 0a 20 20 7d 00 00 44 41 54 41 |prite;. }..DATA| 0004fdf0 b6 00 00 00 49 63 6f 6e 5f 44 65 73 65 6c 65 63 |....Icon_Deselec| 0004fe00 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 49 |t.Syntax:.void I| 0004fe10 63 6f 6e 5f 44 65 73 65 6c 65 63 74 20 28 3c 77 |con_Deselect (<w| 0004fe20 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e |indow_handle> hn| 0004fe30 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e |d, <icon_handle>| 0004fe40 20 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 | icon);.Header:.| 0004fe50 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<DeskLib:Icon.h=| 0004fe60 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e |>Icon>..This fun| 0004fe70 63 74 69 6f 6e 20 64 65 73 65 6c 65 63 74 73 20 |ction deselects | 0004fe80 74 68 65 20 69 63 6f 6e 20 67 69 76 65 6e 2c 20 |the icon given, | 0004fe90 69 66 20 69 74 20 69 73 20 73 65 6c 65 63 74 65 |if it is selecte| 0004fea0 64 2e 00 00 44 41 54 41 37 01 00 00 49 63 6f 6e |d...DATA7...Icon| 0004feb0 5f 44 69 73 70 6f 73 65 44 61 74 61 0a 53 79 6e |_DisposeData.Syn| 0004fec0 74 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 44 |tax:.void Icon_D| 0004fed0 69 73 70 6f 73 65 44 61 74 61 20 28 3c 69 63 6f |isposeData (<ico| 0004fee0 6e 5f 64 61 74 61 3e 20 2a 64 61 74 61 2c 20 3c |n_data> *data, <| 0004fef0 69 63 6f 6e 5f 66 6c 61 67 73 3e 20 66 6c 61 67 |icon_flags> flag| 0004ff00 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d |s);.Header:.<Tim| 0004ff10 73 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f |sLib:Icon.h=>Ico| 0004ff20 6e 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |n_TL>..This func| 0004ff30 74 69 6f 6e 20 63 61 6c 6c 73 20 3c 66 72 65 65 |tion calls <free| 0004ff40 3e 28 29 20 6f 6e 20 74 68 65 20 69 6e 64 69 72 |>() on the indir| 0004ff50 65 63 74 65 64 20 64 61 74 61 20 66 6f 72 20 74 |ected data for t| 0004ff60 68 65 20 69 63 6f 6e 20 77 68 6f 73 65 20 64 61 |he icon whose da| 0004ff70 74 61 20 62 6c 6f 63 6b 20 61 6e 64 20 66 6c 61 |ta block and fla| 0004ff80 67 73 20 77 6f 72 64 20 61 72 65 20 67 69 76 65 |gs word are give| 0004ff90 6e 2e 20 4f 62 76 69 6f 75 73 6c 79 20 74 68 65 |n. Obviously the| 0004ffa0 20 64 61 74 61 20 6d 75 73 74 20 68 61 76 65 20 | data must have | 0004ffb0 62 65 65 6e 20 6f 72 69 67 69 6e 61 6c 6c 79 20 |been originally | 0004ffc0 61 6c 6c 6f 63 61 74 65 64 20 75 73 69 6e 67 20 |allocated using | 0004ffd0 3c 6d 61 6c 6c 6f 63 3e 2e 2e 2e 00 44 41 54 41 |<malloc>....DATA| 0004ffe0 47 01 00 00 49 63 6f 6e 5f 44 69 73 70 6f 73 65 |G...Icon_Dispose| 0004fff0 49 6e 64 44 61 74 61 0a 53 79 6e 74 61 78 3a 09 |IndData.Syntax:.| 00050000 76 6f 69 64 20 49 63 6f 6e 5f 44 69 73 70 6f 73 |void Icon_Dispos| 00050010 65 49 6e 64 44 61 74 61 20 28 3c 69 63 6f 6e 5f |eIndData (<icon_| 00050020 64 61 74 61 3e 20 2a 64 61 74 61 2c 20 3c 69 63 |data> *data, <ic| 00050030 6f 6e 5f 66 6c 61 67 73 3e 20 66 6c 61 67 73 29 |on_flags> flags)| 00050040 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00050050 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e |ib:Icon.h=>Icon>| 00050060 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00050070 66 69 6e 64 73 20 74 68 65 20 69 6e 64 69 72 65 |finds the indire| 00050080 63 74 65 64 20 64 61 74 61 20 70 6f 69 6e 74 65 |cted data pointe| 00050090 72 28 73 29 20 66 6f 72 20 74 68 65 20 69 63 6f |r(s) for the ico| 000500a0 6e 20 77 68 6f 73 65 20 64 65 66 69 6e 69 74 69 |n whose definiti| 000500b0 6f 6e 20 69 73 20 67 69 76 65 6e 2c 20 61 6e 64 |on is given, and| 000500c0 20 63 61 6c 6c 73 20 3c 66 72 65 65 3e 28 29 20 | calls <free>() | 000500d0 6f 6e 20 74 68 65 6d 2e 20 4f 62 76 69 6f 75 73 |on them. Obvious| 000500e0 6c 79 2c 20 74 68 69 73 20 6d 65 61 6e 73 20 74 |ly, this means t| 000500f0 68 65 79 20 73 68 6f 75 6c 64 20 68 61 76 65 20 |hey should have | 00050100 62 65 65 6e 20 3c 6d 61 6c 6c 6f 63 3e 65 64 20 |been <malloc>ed | 00050110 69 6e 20 74 68 65 20 66 69 72 73 74 20 70 6c 61 |in the first pla| 00050120 63 65 21 00 44 41 54 41 62 00 00 00 49 63 6f 6e |ce!.DATAb...Icon| 00050130 20 44 72 61 67 67 69 6e 67 20 46 75 6e 63 74 69 | Dragging Functi| 00050140 6f 6e 73 0a 23 49 6e 64 65 6e 74 20 34 0a 3c 49 |ons.#Indent 4.<I| 00050150 63 6f 6e 5f 53 74 61 72 74 44 72 61 67 3e 0a 3c |con_StartDrag>.<| 00050160 49 63 6f 6e 5f 53 74 61 72 74 53 6f 6c 69 64 44 |Icon_StartSolidD| 00050170 72 61 67 3e 0a 3c 49 63 6f 6e 5f 44 72 61 67 53 |rag>.<Icon_DragS| 00050180 6c 69 64 65 72 3e 00 00 44 41 54 41 8b 01 00 00 |lider>..DATA....| 00050190 49 63 6f 6e 5f 44 72 61 67 53 6c 69 64 65 72 0a |Icon_DragSlider.| 000501a0 53 79 6e 74 61 78 3a 09 69 6e 74 20 49 63 6f 6e |Syntax:.int Icon| 000501b0 5f 44 72 61 67 53 6c 69 64 65 72 20 28 3c 77 69 |_DragSlider (<wi| 000501c0 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 |ndow_handle> hnd| 000501d0 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 |, <icon_handle> | 000501e0 62 61 73 65 2c 20 69 63 6f 6e 5f 68 61 6e 64 6c |base, icon_handl| 000501f0 65 20 73 6c 69 64 65 72 29 3b 0a 48 65 61 64 65 |e slider);.Heade| 00050200 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e |r:.<DeskLib:Icon| 00050210 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 |.h=>Icon>..Retur| 00050220 6e 73 3a 09 4e 65 77 20 70 65 72 63 65 6e 74 61 |ns:.New percenta| 00050230 67 65 20 72 65 70 72 65 73 65 6e 74 65 64 2e 0a |ge represented..| 00050240 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 00050250 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 |hould be called | 00050260 77 68 65 6e 20 79 6f 75 20 67 65 74 20 61 20 63 |when you get a c| 00050270 6c 69 63 6b 20 69 6e 20 65 69 74 68 65 72 20 74 |lick in either t| 00050280 68 65 20 69 63 6f 6e 20 2f 62 61 73 65 2f 20 6f |he icon /base/ o| 00050290 72 20 2f 73 6c 69 64 65 72 2f 2c 20 77 68 69 63 |r /slider/, whic| 000502a0 68 20 74 6f 67 65 74 68 65 72 20 6d 61 6b 65 20 |h together make | 000502b0 75 70 20 61 20 73 6c 69 64 65 72 2e 20 46 72 6f |up a slider. Fro| 000502c0 6d 20 6e 6f 77 20 6f 6e 2c 20 65 76 65 72 79 20 |m now on, every | 000502d0 74 69 6d 65 20 61 20 4e 55 4c 4c 20 65 76 65 6e |time a NULL even| 000502e0 74 20 69 73 20 72 65 63 65 69 76 65 64 2c 20 79 |t is received, y| 000502f0 6f 75 20 73 68 6f 75 6c 64 20 63 61 6c 6c 20 3c |ou should call <| 00050300 49 63 6f 6e 5f 55 70 64 61 74 65 53 6c 69 64 65 |Icon_UpdateSlide| 00050310 72 3e 2e 00 44 41 54 41 4f 01 00 00 49 63 6f 6e |r>..DATAO...Icon| 00050320 5f 46 69 6c 65 49 63 6f 6e 0a 53 79 6e 74 61 78 |_FileIcon.Syntax| 00050330 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 46 69 6c 65 |:.void Icon_File| 00050340 49 63 6f 6e 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |Icon (<window_ha| 00050350 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e |ndle> win, <icon| 00050360 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 69 |_handle> icon, i| 00050370 6e 74 20 66 69 6c 65 74 79 70 65 29 3b 0a 48 65 |nt filetype);.He| 00050380 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 |ader:.<DeskLib:I| 00050390 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 |con.h=>Icon>..Th| 000503a0 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 |is function take| 000503b0 73 20 61 6e 20 69 6e 64 69 72 65 63 74 65 64 20 |s an indirected | 000503c0 74 65 78 74 2d 6f 6e 6c 79 20 69 63 6f 6e 20 61 |text-only icon a| 000503d0 6e 64 20 63 6f 6e 76 65 72 74 73 20 69 74 20 74 |nd converts it t| 000503e0 6f 20 61 6e 20 69 6e 64 69 72 65 63 74 65 64 20 |o an indirected | 000503f0 73 70 72 69 74 65 2d 6f 6e 6c 79 20 69 63 6f 6e |sprite-only icon| 00050400 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 | containing the | 00050410 73 70 72 69 74 65 20 66 6f 72 20 74 68 65 20 67 |sprite for the g| 00050420 69 76 65 6e 20 66 69 6c 65 74 79 70 65 2e 20 49 |iven filetype. I| 00050430 66 20 74 68 65 20 73 70 72 69 74 65 20 69 73 20 |f the sprite is | 00050440 6e 6f 74 20 69 6e 20 74 68 65 20 57 69 6d 70 20 |not in the Wimp | 00050450 73 70 72 69 74 65 20 70 6f 6f 6c 20 74 68 65 6e |sprite pool then| 00050460 2e 2e 2e 00 44 41 54 41 d6 03 00 00 69 63 6f 6e |....DATA....icon| 00050470 5f 66 6c 61 67 73 0a 54 68 69 73 20 74 79 70 65 |_flags.This type| 00050480 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00050490 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e |DeskLib:Wimp.h=>| 000504a0 57 69 6d 70 3e 20 61 73 20 74 68 65 20 66 6f 6c |Wimp> as the fol| 000504b0 6c 6f 77 69 6e 67 20 75 6e 69 6f 6e 2c 20 77 68 |lowing union, wh| 000504c0 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 20 |ich can be used | 000504d0 66 6f 72 20 65 61 73 79 20 61 63 63 65 73 73 20 |for easy access | 000504e0 74 6f 20 69 63 6f 6e 20 66 6c 61 67 73 3a 0a 0a |to icon flags:..| 000504f0 20 5c 7b 0a 20 20 20 75 6e 73 69 67 6e 65 64 20 | \{. unsigned | 00050500 69 6e 74 20 76 61 6c 75 65 3b 0a 0a 20 20 20 73 |int value;.. s| 00050510 74 72 75 63 74 0a 20 20 20 5c 7b 0a 20 20 20 20 |truct. \{. | 00050520 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 67 61 | unsigned int ga| 00050530 72 62 61 67 65 31 09 3a 20 36 3b 0a 20 20 20 20 |rbage1.: 6;. | 00050540 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 6f | unsigned int fo| 00050550 6e 74 09 09 3a 20 31 3b 20 2f 2a 20 46 6f 6e 74 |nt..: 1; /* Font| 00050560 20 66 6c 61 67 20 2a 2f 0a 20 20 20 20 20 75 6e | flag */. un| 00050570 73 69 67 6e 65 64 20 69 6e 74 20 67 61 72 62 61 |signed int garba| 00050580 67 65 32 09 3a 20 38 3b 0a 20 20 20 20 20 75 6e |ge2.: 8;. un| 00050590 73 69 67 6e 65 64 20 69 6e 74 20 68 61 6e 64 6c |signed int handl| 000505a0 65 09 3a 20 38 3b 20 2f 2a 20 46 6f 6e 74 20 68 |e.: 8; /* Font h| 000505b0 61 6e 64 6c 65 20 2a 2f 0a 20 20 20 7d 20 66 6f |andle */. } fo| 000505c0 6e 74 3b 0a 0a 20 20 20 73 74 72 75 63 74 0a 20 |nt;.. struct. | 000505d0 20 20 5c 7b 0a 20 20 20 20 20 75 6e 73 69 67 6e | \{. unsign| 000505e0 65 64 20 69 6e 74 20 74 65 78 74 09 3a 20 31 3b |ed int text.: 1;| 000505f0 0a 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 |. unsigned i| 00050600 6e 74 20 73 70 72 69 74 65 09 3a 20 31 3b 0a 20 |nt sprite.: 1;. | 00050610 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00050620 20 62 6f 72 64 65 72 09 3a 20 31 3b 0a 20 20 20 | border.: 1;. | 00050630 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 68 | unsigned int h| 00050640 63 65 6e 74 72 65 09 3a 20 31 3b 0a 20 20 20 20 |centre.: 1;. | 00050650 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 63 | unsigned int vc| 00050660 65 6e 74 72 65 09 3a 20 31 3b 0a 20 20 20 20 20 |entre.: 1;. | 00050670 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 69 6c |unsigned int fil| 00050680 6c 65 64 09 3a 20 31 3b 0a 20 20 20 20 20 75 6e |led.: 1;. un| 00050690 73 69 67 6e 65 64 20 69 6e 74 20 66 6f 6e 74 09 |signed int font.| 000506a0 3a 20 31 3b 0a 20 20 20 20 20 75 6e 73 69 67 6e |: 1;. unsign| 000506b0 65 64 20 69 6e 74 20 6e 65 65 64 73 68 65 6c 70 |ed int needshelp| 000506c0 09 3a 20 31 3b 0a 20 20 20 20 20 75 6e 73 69 67 |.: 1;. unsig| 000506d0 6e 65 64 20 69 6e 74 20 69 6e 64 69 72 65 63 74 |ned int indirect| 000506e0 65 64 09 3a 20 31 3b 0a 20 20 20 20 20 75 6e 73 |ed.: 1;. uns| 000506f0 69 67 6e 65 64 20 69 6e 74 20 72 69 67 68 74 6a |igned int rightj| 00050700 75 73 74 69 66 79 09 3a 20 31 3b 0a 20 20 20 20 |ustify.: 1;. | 00050710 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 61 6c | unsigned int al| 00050720 6c 6f 77 61 64 6a 75 73 74 09 3a 20 31 3b 0a 20 |lowadjust.: 1;. | 00050730 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00050740 20 68 61 6c 66 73 69 7a 65 09 3a 20 31 3b 0a 20 | halfsize.: 1;. | 00050750 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00050760 20 62 75 74 74 6f 6e 74 79 70 65 09 3a 20 34 3b | buttontype.: 4;| 00050770 0a 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 |. unsigned i| 00050780 6e 74 20 65 73 67 09 3a 20 35 3b 0a 20 20 20 20 |nt esg.: 5;. | 00050790 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 65 | unsigned int se| 000507a0 6c 65 63 74 65 64 09 3a 20 31 3b 0a 20 20 20 20 |lected.: 1;. | 000507b0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 68 | unsigned int sh| 000507c0 61 64 65 64 09 3a 20 31 3b 0a 20 20 20 20 20 75 |aded.: 1;. u| 000507d0 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 65 6c 65 |nsigned int dele| 000507e0 74 65 64 09 3a 20 31 3b 0a 20 20 20 20 20 75 6e |ted.: 1;. un| 000507f0 73 69 67 6e 65 64 20 69 6e 74 20 66 6f 72 65 67 |signed int foreg| 00050800 72 6f 75 6e 64 09 3a 20 34 3b 0a 20 20 20 20 20 |round.: 4;. | 00050810 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 61 63 |unsigned int bac| 00050820 6b 67 72 6f 75 6e 64 09 3a 20 34 3b 0a 20 20 20 |kground.: 4;. | 00050830 7d 20 64 61 74 61 3b 0a 20 7d 00 00 44 41 54 41 |} data;. }..DATA| 00050840 68 01 00 00 49 63 6f 6e 5f 46 6f 72 63 65 52 65 |h...Icon_ForceRe| 00050850 64 72 61 77 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |draw.Syntax:.<os| 00050860 5f 65 72 72 6f 72 3e 20 2a 49 63 6f 6e 5f 46 6f |_error> *Icon_Fo| 00050870 72 63 65 52 65 64 72 61 77 20 28 3c 77 69 6e 64 |rceRedraw (<wind| 00050880 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 |ow_handle> hnd, | 00050890 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 |<icon_handle> ic| 000508a0 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |on);.Header:.<De| 000508b0 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 |skLib:Icon.h=>Ic| 000508c0 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |on>..Returns:.Po| 000508d0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000508e0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000508f0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00050900 6e 20 66 6f 72 63 65 73 20 74 68 65 20 57 49 4d |n forces the WIM| 00050910 50 20 74 6f 20 72 65 64 72 61 77 20 6a 75 73 74 |P to redraw just| 00050920 20 74 68 65 20 69 63 6f 6e 20 63 6f 6e 74 65 6e | the icon conten| 00050930 74 73 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |ts. It is equiva| 00050940 6c 65 6e 74 20 74 6f 20 28 61 6e 64 20 69 6e 20 |lent to (and in | 00050950 66 61 63 74 20 3c 23 64 65 66 69 6e 65 3d 3e 64 |fact <#define=>d| 00050960 65 66 69 6e 65 3e 64 20 61 73 29 3a 0a 0a 7b 66 |efine>d as):..{f| 00050970 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 00050980 65 7d 3c 57 69 6d 70 5f 53 65 74 49 63 6f 6e 53 |e}<Wimp_SetIconS| 00050990 74 61 74 65 3e 28 68 6e 64 2c 69 63 6f 6e 2c 30 |tate>(hnd,icon,0| 000509a0 2c 30 29 3b 44 41 54 41 ea 00 00 00 49 63 6f 6e |,0);DATA....Icon| 000509b0 5f 46 6f 72 63 65 57 69 6e 64 6f 77 52 65 64 72 |_ForceWindowRedr| 000509c0 61 77 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |aw.Syntax:.void | 000509d0 49 63 6f 6e 5f 46 6f 72 63 65 57 69 6e 64 6f 77 |Icon_ForceWindow| 000509e0 52 65 64 72 61 77 20 28 3c 77 69 6e 64 6f 77 5f |Redraw (<window_| 000509f0 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 |handle> hnd, <ic| 00050a00 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 29 |on_handle> icon)| 00050a10 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00050a20 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e |ib:Icon.h=>Icon>| 00050a30 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00050a40 66 6f 72 63 65 73 20 74 68 65 20 57 49 4d 50 20 |forces the WIMP | 00050a50 74 6f 20 72 65 64 72 61 77 20 74 68 65 20 77 68 |to redraw the wh| 00050a60 6f 6c 65 20 6f 66 20 74 68 65 20 69 63 6f 6e 20 |ole of the icon | 00050a70 61 72 65 61 2c 20 69 6e 63 6c 75 64 69 6e 67 20 |area, including | 00050a80 74 68 65 20 33 44 20 62 6f 72 64 65 72 2e 00 00 |the 3D border...| 00050a90 44 41 54 41 07 01 00 00 49 63 6f 6e 5f 47 65 74 |DATA....Icon_Get| 00050aa0 42 67 43 6f 6c 0a 53 79 6e 74 61 78 3a 09 69 6e |BgCol.Syntax:.in| 00050ab0 74 20 49 63 6f 6e 5f 47 65 74 42 67 43 6f 6c 20 |t Icon_GetBgCol | 00050ac0 28 3c 69 63 6f 6e 5f 62 6c 6f 63 6b 3e 20 2a 69 |(<icon_block> *i| 00050ad0 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |con);.Header:.<D| 00050ae0 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 |eskLib:Icon.h=>I| 00050af0 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 42 |con>..Returns:.B| 00050b00 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |ackground colour| 00050b10 20 6f 66 20 69 63 6f 6e 2e 0a 0a 54 68 69 73 20 | of icon...This | 00050b20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 20 74 |function finds t| 00050b30 68 65 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f |he foreground co| 00050b40 6c 6f 75 72 20 6f 66 20 61 6e 20 69 63 6f 6e 20 |lour of an icon | 00050b50 77 68 6f 73 65 20 64 65 66 69 6e 69 74 69 6f 6e |whose definition| 00050b60 20 69 73 20 70 61 73 73 65 64 20 74 6f 20 69 74 | is passed to it| 00050b70 2e 20 49 74 20 63 6f 70 65 73 20 77 69 74 68 20 |. It copes with | 00050b80 6f 75 74 6c 69 6e 65 20 66 6f 6e 74 73 20 69 6e |outline fonts in| 00050b90 20 69 63 6f 6e 73 2e 00 44 41 54 41 2f 01 00 00 | icons..DATA/...| 00050ba0 49 63 6f 6e 5f 47 65 74 44 6f 75 62 6c 65 0a 53 |Icon_GetDouble.S| 00050bb0 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 20 49 63 |yntax:.double Ic| 00050bc0 6f 6e 5f 47 65 74 44 6f 75 62 6c 65 20 28 3c 77 |on_GetDouble (<w| 00050bd0 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e |indow_handle> hn| 00050be0 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e |d, <icon_handle>| 00050bf0 20 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 | icon);.Header:.| 00050c00 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<DeskLib:Icon.h=| 00050c10 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a |>Icon>..Returns:| 00050c20 09 56 61 6c 75 65 20 6f 66 20 69 63 6f 6e 20 63 |.Value of icon c| 00050c30 6f 6e 74 65 6e 74 73 2e 0a 0a 54 68 69 73 20 66 |ontents...This f| 00050c40 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 |unction reads th| 00050c50 65 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 73 20 |e text contents | 00050c60 6f 66 20 74 68 65 20 67 69 76 65 6e 20 69 63 6f |of the given ico| 00050c70 6e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 |n and returns it| 00050c80 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 | converted to a | 00050c90 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 76 |floating-point v| 00050ca0 61 6c 75 65 2e 20 30 20 69 73 20 72 65 74 75 72 |alue. 0 is retur| 00050cb0 6e 65 64 20 69 66 20 61 6e 20 65 72 72 6f 72 20 |ned if an error | 00050cc0 6f 63 63 75 72 73 2e 00 44 41 54 41 1b 01 00 00 |occurs..DATA....| 00050cd0 49 63 6f 6e 5f 47 65 74 46 67 43 6f 6c 0a 53 79 |Icon_GetFgCol.Sy| 00050ce0 6e 74 61 78 3a 09 69 6e 74 20 49 63 6f 6e 5f 47 |ntax:.int Icon_G| 00050cf0 65 74 46 67 43 6f 6c 20 28 3c 69 63 6f 6e 5f 62 |etFgCol (<icon_b| 00050d00 6c 6f 63 6b 3e 20 2a 69 63 6f 6e 29 3b 0a 48 65 |lock> *icon);.He| 00050d10 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 |ader:.<TimsLib:I| 00050d20 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f 54 4c 3e 0a |con.h=>Icon_TL>.| 00050d30 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 |.<DeskLib:Icon.h| 00050d40 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 |=>Icon>..Returns| 00050d50 3a 09 46 6f 72 65 67 72 6f 75 6e 64 20 6f 66 20 |:.Foreground of | 00050d60 69 63 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |icon...This func| 00050d70 74 69 6f 6e 20 66 69 6e 64 73 20 74 68 65 20 66 |tion finds the f| 00050d80 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 |oreground colour| 00050d90 20 6f 66 20 61 6e 20 69 63 6f 6e 20 77 68 6f 73 | of an icon whos| 00050da0 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 73 20 |e definition is | 00050db0 70 61 73 73 65 64 20 74 6f 20 69 74 2e 20 49 74 |passed to it. It| 00050dc0 20 63 6f 70 65 73 20 77 69 74 68 20 6f 75 74 6c | copes with outl| 00050dd0 69 6e 65 20 66 6f 6e 74 73 20 69 6e 20 69 63 6f |ine fonts in ico| 00050de0 6e 73 2e 00 44 41 54 41 28 01 00 00 49 63 6f 6e |ns..DATA(...Icon| 00050df0 5f 47 65 74 49 6e 74 65 67 65 72 0a 53 79 6e 74 |_GetInteger.Synt| 00050e00 61 78 3a 09 69 6e 74 20 49 63 6f 6e 5f 47 65 74 |ax:.int Icon_Get| 00050e10 49 6e 74 65 67 65 72 20 28 3c 77 69 6e 64 6f 77 |Integer (<window| 00050e20 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 |_handle> hnd, <i| 00050e30 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e |con_handle> icon| 00050e40 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00050e50 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e |Lib:Icon.h=>Icon| 00050e60 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 56 61 6c 75 |>..Returns:.Valu| 00050e70 65 20 6f 66 20 69 63 6f 6e 20 63 6f 6e 74 65 6e |e of icon conten| 00050e80 74 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ts...This functi| 00050e90 6f 6e 20 72 65 61 64 73 20 74 68 65 20 74 65 78 |on reads the tex| 00050ea0 74 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 |t contents of th| 00050eb0 65 20 67 69 76 65 6e 20 69 63 6f 6e 20 61 6e 64 |e given icon and| 00050ec0 20 72 65 74 75 72 6e 73 20 69 74 20 63 6f 6e 76 | returns it conv| 00050ed0 65 72 74 65 64 20 74 6f 20 61 6e 20 69 6e 74 65 |erted to an inte| 00050ee0 67 65 72 20 76 61 6c 75 65 2e 20 30 20 69 73 20 |ger value. 0 is | 00050ef0 72 65 74 75 72 6e 65 64 20 69 66 20 61 6e 20 65 |returned if an e| 00050f00 72 72 6f 72 20 6f 63 63 75 72 73 2e 44 41 54 41 |rror occurs.DATA| 00050f10 d9 00 00 00 49 63 6f 6e 5f 47 65 74 53 65 6c 65 |....Icon_GetSele| 00050f20 63 74 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c |ct.Syntax:.<BOOL| 00050f30 3e 20 49 63 6f 6e 5f 47 65 74 53 65 6c 65 63 74 |> Icon_GetSelect| 00050f40 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 | (<window_handle| 00050f50 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e |> hnd, <icon_han| 00050f60 64 6c 65 3e 20 69 63 6f 6e 29 3b 0a 48 65 61 64 |dle> icon);.Head| 00050f70 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f |er:.<DeskLib:Ico| 00050f80 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 |n.h=>Icon>..Retu| 00050f90 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 73 |rns:.<TRUE> if s| 00050fa0 65 6c 65 63 74 65 64 2e 0a 0a 54 68 69 73 20 66 |elected...This f| 00050fb0 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 77 68 |unction reads wh| 00050fc0 65 74 68 65 72 20 74 68 65 20 73 70 65 63 69 66 |ether the specif| 00050fd0 69 65 64 20 69 63 6f 6e 20 69 73 20 73 65 6c 65 |ied icon is sele| 00050fe0 63 74 65 64 2e 00 00 00 44 41 54 41 d3 00 00 00 |cted....DATA....| 00050ff0 49 63 6f 6e 5f 47 65 74 53 68 61 64 65 0a 53 79 |Icon_GetShade.Sy| 00051000 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 49 63 6f |ntax:.<BOOL> Ico| 00051010 6e 5f 47 65 74 53 68 61 64 65 20 28 3c 77 69 6e |n_GetShade (<win| 00051020 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c |dow_handle> hnd,| 00051030 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 00051040 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |con);.Header:.<D| 00051050 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 |eskLib:Icon.h=>I| 00051060 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c |con>..Returns:.<| 00051070 54 52 55 45 3e 20 69 66 20 73 68 61 64 65 64 2e |TRUE> if shaded.| 00051080 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00051090 72 65 61 64 73 20 77 68 65 74 68 65 72 20 74 68 |reads whether th| 000510a0 65 20 73 70 65 63 69 66 69 65 64 20 69 63 6f 6e |e specified icon| 000510b0 20 69 73 20 73 68 61 64 65 64 2e 00 44 41 54 41 | is shaded..DATA| 000510c0 1b 01 00 00 49 63 6f 6e 5f 47 65 74 54 65 78 74 |....Icon_GetText| 000510d0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 49 63 |.Syntax:.void Ic| 000510e0 6f 6e 5f 47 65 74 54 65 78 74 20 28 3c 77 69 6e |on_GetText (<win| 000510f0 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c |dow_handle> hnd,| 00051100 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 00051110 63 6f 6e 2c 20 63 68 61 72 20 2a 74 29 3b 0a 48 |con, char *t);.H| 00051120 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00051130 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 |Icon.h=>Icon>..T| 00051140 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 |his function cop| 00051150 69 65 73 20 74 68 65 20 74 65 78 74 20 66 72 6f |ies the text fro| 00051160 6d 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 |m the specified | 00051170 69 63 6f 6e 20 69 6e 74 6f 20 74 68 65 20 61 72 |icon into the ar| 00051180 72 61 79 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ray pointed to b| 00051190 79 20 2f 74 2f 2e 0a 0a 53 70 72 69 74 65 2d 6f |y /t/...Sprite-o| 000511a0 6e 6c 79 20 69 63 6f 6e 73 20 68 61 76 65 20 74 |nly icons have t| 000511b0 68 65 69 72 20 73 70 72 69 74 65 20 6e 61 6d 65 |heir sprite name| 000511c0 20 63 6f 70 69 65 64 20 69 6e 74 6f 20 74 68 65 | copied into the| 000511d0 20 61 72 72 61 79 2e 00 44 41 54 41 96 01 00 00 | array..DATA....| 000511e0 49 63 6f 6e 5f 47 65 74 54 65 78 74 50 74 72 0a |Icon_GetTextPtr.| 000511f0 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 49 63 |Syntax:.char *Ic| 00051200 6f 6e 5f 47 65 74 54 65 78 74 50 74 72 20 28 3c |on_GetTextPtr (<| 00051210 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 |window_handle> w| 00051220 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 |in, <icon_handle| 00051230 3e 20 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 73 |> icon);.Headers| 00051240 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 63 6f 6e 2e |:.<TimsLib:Icon.| 00051250 68 3d 3e 49 63 6f 6e 5f 54 4c 3e 0a 09 3c 44 65 |h=>Icon_TL>..<De| 00051260 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 |skLib:Icon.h=>Ic| 00051270 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |on>..Returns:.Po| 00051280 69 6e 74 65 72 20 74 6f 20 74 65 78 74 2e 0a 0a |inter to text...| 00051290 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 |This function ge| 000512a0 74 73 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 |ts the pointer t| 000512b0 6f 20 74 68 65 20 61 63 74 75 61 6c 20 69 6e 64 |o the actual ind| 000512c0 69 72 65 63 74 65 64 20 74 65 78 74 20 6f 66 20 |irected text of | 000512d0 74 68 65 20 67 69 76 65 6e 20 69 63 6f 6e 2e 20 |the given icon. | 000512e0 49 66 20 74 68 65 20 67 69 76 65 6e 20 69 63 6f |If the given ico| 000512f0 6e 20 69 73 20 6e 6f 74 20 61 6e 20 69 6e 64 69 |n is not an indi| 00051300 72 65 63 74 65 64 20 74 65 78 74 20 69 63 6f 6e |rected text icon| 00051310 2c 20 74 68 65 20 70 6f 69 6e 74 65 72 20 77 69 |, the pointer wi| 00051320 6c 6c 20 62 65 20 69 6e 76 61 6c 69 64 2e 20 54 |ll be invalid. T| 00051330 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 |his allows you t| 00051340 6f 20 63 68 61 6e 67 65 2f 72 65 61 64 20 74 68 |o change/read th| 00051350 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 |e contents of th| 00051360 65 20 69 63 6f 6e 20 65 61 73 69 6c 79 2e 00 00 |e icon easily...| 00051370 44 41 54 41 7f 00 00 00 69 63 6f 6e 5f 68 61 6e |DATA....icon_han| 00051380 64 6c 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 |dle.This type is| 00051390 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 000513a0 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d |kLib:Wimp.h=>Wim| 000513b0 70 3e 20 61 73 20 61 20 74 79 70 65 20 68 6f 6c |p> as a type hol| 000513c0 64 69 6e 67 20 61 6e 20 69 63 6f 6e 20 68 61 6e |ding an icon han| 000513d0 64 6c 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e |dle. It is defin| 000513e0 65 64 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 |ed as an /int/..| 000513f0 44 41 54 41 de 00 00 00 69 63 6f 6e 5f 69 6e 64 |DATA....icon_ind| 00051400 73 70 72 69 74 65 0a 54 68 69 73 20 74 79 70 65 |sprite.This type| 00051410 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00051420 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e |DeskLib:Wimp.h=>| 00051430 57 69 6d 70 3e 20 61 73 20 61 0a 73 74 72 75 63 |Wimp> as a.struc| 00051440 74 75 72 65 20 68 6f 6c 64 69 6e 67 20 74 68 65 |ture holding the| 00051450 20 69 63 6f 6e 20 64 61 74 61 20 66 6f 72 20 61 | icon data for a| 00051460 6e 0a 69 6e 64 69 72 65 63 74 65 64 20 73 70 72 |n.indirected spr| 00051470 69 74 65 20 69 63 6f 6e 2e 0a 0a 20 20 5c 7b 0a |ite icon... \{.| 00051480 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 09 09 | const char..| 00051490 2a 6e 61 6d 65 3b 0a 20 20 20 20 76 6f 69 64 09 |*name;. void.| 000514a0 09 2a 73 70 72 69 74 65 61 72 65 61 3b 0a 20 20 |.*spritearea;. | 000514b0 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 09 6e | unsigned int.n| 000514c0 61 6d 65 69 73 6e 61 6d 65 3b 0a 20 20 7d 00 00 |ameisname;. }..| 000514d0 44 41 54 41 d2 00 00 00 69 63 6f 6e 5f 69 6e 64 |DATA....icon_ind| 000514e0 74 65 78 74 0a 54 68 69 73 20 74 79 70 65 20 69 |text.This type i| 000514f0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 00051500 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 |skLib:Wimp.h=>Wi| 00051510 6d 70 3e 20 61 73 20 61 20 73 74 72 75 63 74 75 |mp> as a structu| 00051520 72 65 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 69 |re holding the i| 00051530 63 6f 6e 20 64 61 74 61 20 66 6f 72 20 61 6e 20 |con data for an | 00051540 69 6e 64 69 72 65 63 74 65 64 20 74 65 78 74 20 |indirected text | 00051550 69 63 6f 6e 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 |icon... \{. | 00051560 63 68 61 72 09 2a 62 75 66 66 65 72 3b 0a 20 20 |char.*buffer;. | 00051570 20 20 63 68 61 72 09 2a 76 61 6c 69 64 73 74 72 | char.*validstr| 00051580 69 6e 67 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 |ing;. unsigne| 00051590 64 20 69 6e 74 09 62 75 66 66 6c 65 6e 3b 0a 20 |d int.bufflen;. | 000515a0 20 7d 00 00 44 41 54 41 00 01 00 00 49 63 6f 6e | }..DATA....Icon| 000515b0 5f 4c 6f 73 65 43 61 72 65 74 0a 53 79 6e 74 61 |_LoseCaret.Synta| 000515c0 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 4c 6f 73 |x:.void Icon_Los| 000515d0 65 43 61 72 65 74 20 28 3c 77 69 6e 64 6f 77 5f |eCaret (<window_| 000515e0 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 |handle> hnd, <ic| 000515f0 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 29 |on_handle> icon)| 00051600 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00051610 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f |ib:Icon.h=>Icon_| 00051620 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |h>..This functio| 00051630 6e 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 74 |n ensures that t| 00051640 68 65 20 63 61 72 65 74 20 69 73 20 6e 6f 74 20 |he caret is not | 00051650 63 6f 6e 74 61 69 6e 65 64 20 77 69 74 68 69 6e |contained within| 00051660 20 74 68 65 20 69 63 6f 6e 20 67 69 76 65 6e 2e | the icon given.| 00051670 20 49 74 20 77 69 6c 6c 20 6e 6f 74 20 6d 6f 76 | It will not mov| 00051680 65 20 74 68 65 20 63 61 72 65 74 20 69 66 20 69 |e the caret if i| 00051690 74 20 69 73 20 73 6f 6d 65 77 68 65 72 65 20 65 |t is somewhere e| 000516a0 6c 73 65 2e 44 41 54 41 59 01 00 00 49 63 6f 6e |lse.DATAY...Icon| 000516b0 5f 20 70 72 69 6e 74 66 0a 53 79 6e 74 61 78 3a |_ printf.Syntax:| 000516c0 09 76 6f 69 64 20 49 63 6f 6e 5f 70 72 69 6e 74 |.void Icon_print| 000516d0 66 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |f (<window_handl| 000516e0 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 |e> hnd, <icon_ha| 000516f0 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 63 68 61 72 |ndle> icon, char| 00051700 20 2a 66 6f 72 6d 61 74 2c 20 2e 2e 2e 29 3b 0a | *format, ...);.| 00051710 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00051720 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a |:Icon.h=>Icon>..| 00051730 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 72 |This function wr| 00051740 69 74 65 73 20 6f 75 74 70 75 74 20 74 6f 20 74 |ites output to t| 00051750 68 65 20 69 63 6f 6e 20 73 70 65 63 69 66 69 65 |he icon specifie| 00051760 64 20 75 6e 64 65 72 20 63 6f 6e 74 72 6f 6c 20 |d under control | 00051770 6f 66 20 74 68 65 20 3c 66 6f 72 6d 61 74 20 73 |of the <format s| 00051780 74 72 69 6e 67 3d 3e 70 66 6f 72 6d 5f 3e 2e 20 |tring=>pform_>. | 00051790 49 74 20 69 73 20 65 78 61 63 74 6c 79 20 74 68 |It is exactly th| 000517a0 65 20 73 61 6d 65 20 61 73 20 3c 73 70 72 69 6e |e same as <sprin| 000517b0 74 66 3e 2c 20 62 75 74 20 69 6e 73 74 65 61 64 |tf>, but instead| 000517c0 20 6f 66 20 70 61 73 73 69 6e 67 20 69 6e 20 61 | of passing in a| 000517d0 20 73 74 72 69 6e 67 2c 20 79 6f 75 20 70 61 73 | string, you pas| 000517e0 73 20 69 6e 20 61 6e 20 69 6e 64 69 72 65 63 74 |s in an indirect| 000517f0 65 64 20 74 65 78 74 20 69 63 6f 6e 2e 00 00 00 |ed text icon....| 00051800 44 41 54 41 f6 00 00 00 49 63 6f 6e 5f 52 65 61 |DATA....Icon_Rea| 00051810 64 53 6c 69 64 65 72 0a 53 79 6e 74 61 78 3a 09 |dSlider.Syntax:.| 00051820 69 6e 74 20 49 63 6f 6e 5f 52 65 61 64 53 6c 69 |int Icon_ReadSli| 00051830 64 65 72 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e |der (<window_han| 00051840 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f |dle> hnd, <icon_| 00051850 68 61 6e 64 6c 65 3e 20 62 61 73 65 2c 20 69 63 |handle> base, ic| 00051860 6f 6e 5f 68 61 6e 64 6c 65 20 73 6c 69 64 65 72 |on_handle slider| 00051870 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00051880 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e |Lib:Icon.h=>Icon| 00051890 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 65 72 63 |>..Returns:.Perc| 000518a0 65 6e 74 61 67 65 20 72 65 70 72 65 73 65 6e 74 |entage represent| 000518b0 65 64 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |ed..This functio| 000518c0 6e 20 72 65 61 64 73 20 74 68 65 20 76 61 6c 75 |n reads the valu| 000518d0 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 |e represented by| 000518e0 20 74 68 65 20 73 6c 69 64 65 72 20 73 70 65 63 | the slider spec| 000518f0 69 66 69 65 64 2e 00 00 44 41 54 41 26 01 00 00 |ified...DATA&...| 00051900 49 63 6f 6e 5f 53 63 72 65 65 6e 50 6f 73 0a 53 |Icon_ScreenPos.S| 00051910 79 6e 74 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e |yntax:.void Icon| 00051920 5f 53 63 72 65 65 6e 50 6f 73 20 28 3c 77 69 6e |_ScreenPos (<win| 00051930 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 2c |dow_handle> win,| 00051940 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 00051950 63 6f 6e 2c 20 3c 77 69 6d 70 5f 72 65 63 74 3e |con, <wimp_rect>| 00051960 20 2a 72 65 63 74 29 3b 0a 48 65 61 64 65 72 3a | *rect);.Header:| 00051970 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 |.<DeskLib:Icon.h| 00051980 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 |=>Icon>..This fu| 00051990 6e 63 74 69 6f 6e 20 67 65 74 73 20 74 68 65 20 |nction gets the | 000519a0 63 6f 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 74 |coordinates of t| 000519b0 68 65 20 73 70 65 63 69 66 69 65 64 20 69 63 6f |he specified ico| 000519c0 6e 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20 74 |n and converts t| 000519d0 68 65 6d 20 69 6e 74 6f 20 73 63 72 65 65 6e 20 |hem into screen | 000519e0 63 6f 6f 72 64 69 6e 61 74 65 73 2c 20 72 65 74 |coordinates, ret| 000519f0 75 72 6e 69 6e 67 20 74 68 65 6d 20 69 6e 20 74 |urning them in t| 00051a00 68 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 |he block pointed| 00051a10 20 74 6f 20 62 79 20 2f 72 65 63 74 2f 2e 00 00 | to by /rect/...| 00051a20 44 41 54 41 b2 00 00 00 49 63 6f 6e 5f 53 65 6c |DATA....Icon_Sel| 00051a30 65 63 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ect.Syntax:.void| 00051a40 20 49 63 6f 6e 5f 53 65 6c 65 63 74 20 28 3c 77 | Icon_Select (<w| 00051a50 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e |indow_handle> hn| 00051a60 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e |d, <icon_handle>| 00051a70 20 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 | icon);.Header:.| 00051a80 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<DeskLib:Icon.h=| 00051a90 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e |>Icon>..This fun| 00051aa0 63 74 69 6f 6e 20 73 65 6c 65 63 74 73 20 74 68 |ction selects th| 00051ab0 65 20 67 69 76 65 6e 20 69 63 6f 6e 2c 20 69 66 |e given icon, if| 00051ac0 20 69 74 20 69 73 20 64 65 73 65 6c 65 63 74 65 | it is deselecte| 00051ad0 64 2e 00 00 44 41 54 41 36 01 00 00 49 63 6f 6e |d...DATA6...Icon| 00051ae0 5f 53 65 6c 65 63 74 47 72 6f 75 70 0a 53 79 6e |_SelectGroup.Syn| 00051af0 74 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 53 |tax:.void Icon_S| 00051b00 65 6c 65 63 74 47 72 6f 75 70 20 28 3c 77 69 6e |electGroup (<win| 00051b10 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 2c |dow_handle> win,| 00051b20 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 00051b30 63 6f 6e 73 5b 5d 2c 20 3c 42 4f 4f 4c 3e 20 73 |cons[], <BOOL> s| 00051b40 65 6c 65 63 74 29 3b 0a 48 65 61 64 65 72 3a 09 |elect);.Header:.| 00051b50 3c 54 69 6d 73 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<TimsLib:Icon.h=| 00051b60 3e 49 63 6f 6e 5f 54 4c 3e 0a 09 3c 44 65 73 6b |>Icon_TL>..<Desk| 00051b70 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e |Lib:Icon.h=>Icon| 00051b80 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00051b90 20 73 65 6c 65 63 74 73 20 6f 72 20 64 65 73 65 | selects or dese| 00051ba0 6c 65 63 74 73 20 28 64 65 70 65 6e 64 69 6e 67 |lects (depending| 00051bb0 20 6f 6e 20 7b 2f 7d 73 65 6c 65 63 74 7b 2f 7d | on {/}select{/}| 00051bc0 29 20 74 68 65 20 69 63 6f 6e 73 20 73 70 65 63 |) the icons spec| 00051bd0 69 66 69 65 64 20 69 6e 20 74 68 65 20 61 72 72 |ified in the arr| 00051be0 61 79 20 2f 69 63 6f 6e 73 2f 2e 20 54 68 65 20 |ay /icons/. The | 00051bf0 61 72 72 61 79 20 69 73 20 74 65 72 6d 69 6e 61 |array is termina| 00051c00 74 65 64 20 62 79 20 2d 31 2e 00 00 44 41 54 41 |ted by -1...DATA| 00051c10 1d 01 00 00 49 63 6f 6e 5f 53 65 74 42 61 63 6b |....Icon_SetBack| 00051c20 43 6f 6c 6f 75 72 0a 53 79 6e 74 61 78 3a 09 76 |Colour.Syntax:.v| 00051c30 6f 69 64 20 49 63 6f 6e 5f 53 65 74 42 61 63 6b |oid Icon_SetBack| 00051c40 43 6f 6c 6f 75 72 20 28 3c 77 69 6e 64 6f 77 5f |Colour (<window_| 00051c50 68 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 |handle> win, <ic| 00051c60 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c |on_handle> icon,| 00051c70 20 69 6e 74 20 77 69 6d 70 63 6f 6c 29 3b 0a 48 | int wimpcol);.H| 00051c80 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00051c90 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 |Icon.h=>Icon>..T| 00051ca0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 00051cb0 73 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e 64 |s the background| 00051cc0 20 63 6f 6c 6f 75 72 20 6f 66 20 61 6e 20 69 63 | colour of an ic| 00051cd0 6f 6e 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 74 |on. Note that it| 00051ce0 20 64 6f 65 73 20 6e 6f 74 20 63 6f 70 65 20 77 | does not cope w| 00051cf0 69 74 68 20 6f 75 74 6c 69 6e 65 20 66 6f 6e 74 |ith outline font| 00051d00 20 69 63 6f 6e 73 2c 20 61 6e 64 20 77 69 6c 6c | icons, and will| 00051d10 20 63 6f 6d 70 6c 65 74 65 6c 79 20 6d 75 63 6b | completely muck| 00051d20 20 74 68 65 6d 20 75 70 2e 00 00 00 44 41 54 41 | them up....DATA| 00051d30 53 01 00 00 49 63 6f 6e 5f 53 65 74 42 67 43 6f |S...Icon_SetBgCo| 00051d40 6c 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |l.Syntax:.<os_er| 00051d50 72 6f 72 3e 20 2a 49 63 6f 6e 5f 53 65 74 42 67 |ror> *Icon_SetBg| 00051d60 43 6f 6c 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e |Col (<window_han| 00051d70 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f |dle> win, <icon_| 00051d80 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 69 6e |handle> icon, in| 00051d90 74 20 63 6f 6c 29 3b 0a 48 65 61 64 65 72 3a 09 |t col);.Header:.| 00051da0 3c 54 69 6d 73 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<TimsLib:Icon.h=| 00051db0 3e 49 63 6f 6e 5f 54 4c 3e 0a 09 3c 44 65 73 6b |>Icon_TL>..<Desk| 00051dc0 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e |Lib:Icon.h=>Icon| 00051dd0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00051de0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 00051df0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 00051e00 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2d |..This function-| 00051e10 6c 69 6b 65 20 6d 61 63 72 6f 20 63 68 61 6e 67 |like macro chang| 00051e20 65 73 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e |es the backgroun| 00051e30 64 20 63 6f 6c 6f 75 72 20 6f 66 20 74 68 65 20 |d colour of the | 00051e40 73 70 65 63 69 66 69 65 64 20 69 63 6f 6e 20 74 |specified icon t| 00051e50 6f 20 2f 63 6f 6c 2f 2e 20 54 68 69 73 20 64 6f |o /col/. This do| 00051e60 65 73 20 6e 6f 74 20 77 6f 72 6b 20 77 69 74 68 |es not work with| 00051e70 20 6f 75 74 6c 69 6e 65 20 66 6f 6e 74 73 2e 00 | outline fonts..| 00051e80 44 41 54 41 0c 01 00 00 49 63 6f 6e 5f 53 65 74 |DATA....Icon_Set| 00051e90 43 61 72 65 74 0a 53 79 6e 74 61 78 3a 09 76 6f |Caret.Syntax:.vo| 00051ea0 69 64 20 49 63 6f 6e 5f 53 65 74 43 61 72 65 74 |id Icon_SetCaret| 00051eb0 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 | (<window_handle| 00051ec0 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e |> hnd, <icon_han| 00051ed0 64 6c 65 3e 20 69 63 6f 6e 29 3b 0a 48 65 61 64 |dle> icon);.Head| 00051ee0 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f |er:.<DeskLib:Ico| 00051ef0 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 |n.h=>Icon>..This| 00051f00 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 | function sets t| 00051f10 68 65 20 63 61 72 65 74 20 77 69 74 68 69 6e 20 |he caret within | 00051f20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 69 63 |the requested ic| 00051f30 6f 6e 2c 20 61 74 20 74 68 65 20 72 69 67 68 74 |on, at the right| 00051f40 68 61 6e 64 20 65 6e 64 20 6f 66 20 74 68 65 20 |hand end of the | 00051f50 74 65 78 74 2e 20 49 66 20 74 68 65 20 69 63 6f |text. If the ico| 00051f60 6e 20 69 73 20 6e 6f 74 20 61 20 74 65 78 74 20 |n is not a text | 00051f70 69 63 6f 6e 2c 20 6e 6f 20 65 72 72 6f 72 20 69 |icon, no error i| 00051f80 73 20 67 65 6e 65 72 61 74 65 64 2e 44 41 54 41 |s generated.DATA| 00051f90 63 01 00 00 49 63 6f 6e 5f 53 65 74 44 6f 75 62 |c...Icon_SetDoub| 00051fa0 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |le.Syntax:.void | 00051fb0 49 63 6f 6e 5f 53 65 74 44 6f 75 62 6c 65 20 28 |Icon_SetDouble (| 00051fc0 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 00051fd0 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c |hnd, <icon_handl| 00051fe0 65 3e 20 69 63 6f 6e 2c 20 64 6f 75 62 6c 65 20 |e> icon, double | 00051ff0 6e 2c 20 69 6e 74 20 64 70 29 3b 0a 48 65 61 64 |n, int dp);.Head| 00052000 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f |er:.<DeskLib:Ico| 00052010 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 |n.h=>Icon>..This| 00052020 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 | function sets t| 00052030 68 65 20 67 69 76 65 6e 20 69 63 6f 6e 27 73 20 |he given icon's | 00052040 74 65 78 74 20 74 6f 20 68 6f 6c 64 20 74 68 65 |text to hold the| 00052050 20 6e 75 6d 62 65 72 20 2f 6e 2f 2c 20 67 69 76 | number /n/, giv| 00052060 65 6e 20 74 6f 20 2f 64 70 2f 20 64 65 63 69 6d |en to /dp/ decim| 00052070 61 6c 20 70 6c 61 63 65 73 2e 20 54 68 65 20 69 |al places. The i| 00052080 63 6f 6e 20 69 73 20 72 65 64 72 61 77 6e 2e 20 |con is redrawn. | 00052090 49 66 20 74 68 65 20 6e 75 6d 62 65 72 20 69 73 |If the number is| 000520a0 20 74 6f 6f 20 6c 6f 6e 67 20 69 74 20 77 69 6c | too long it wil| 000520b0 6c 20 62 65 20 63 68 6f 70 70 65 64 20 6f 66 66 |l be chopped off| 000520c0 2e 20 4e 6f 20 65 72 72 6f 72 20 69 73 20 72 65 |. No error is re| 000520d0 74 75 72 6e 65 64 20 69 66 20 74 68 65 20 69 63 |turned if the ic| 000520e0 6f 6e 20 69 73 20 6e 6f 74 20 74 65 78 74 2e 00 |on is not text..| 000520f0 44 41 54 41 48 01 00 00 49 63 6f 6e 5f 53 65 74 |DATAH...Icon_Set| 00052100 46 67 43 6f 6c 0a 53 79 6e 74 61 78 3a 09 3c 6f |FgCol.Syntax:.<o| 00052110 73 5f 65 72 72 6f 72 3e 20 2a 49 63 6f 6e 5f 53 |s_error> *Icon_S| 00052120 65 74 46 67 43 6f 6c 20 28 3c 77 69 6e 64 6f 77 |etFgCol (<window| 00052130 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 |_handle> win, <i| 00052140 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e |con_handle> icon| 00052150 2c 20 69 6e 74 20 63 6f 6c 29 3b 0a 48 65 61 64 |, int col);.Head| 00052160 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 63 6f |er:.<TimsLib:Ico| 00052170 6e 2e 68 3d 3e 49 63 6f 6e 5f 54 4c 3e 0a 09 3c |n.h=>Icon_TL>..<| 00052180 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e |DeskLib:Icon.h=>| 00052190 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |Icon>..Returns:.| 000521a0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000521b0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000521c0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000521d0 69 6f 6e 20 63 68 61 6e 67 65 73 20 74 68 65 20 |ion changes the | 000521e0 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 |foreground colou| 000521f0 72 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 |r of the specifi| 00052200 65 64 20 69 63 6f 6e 20 74 6f 20 2f 63 6f 6c 2f |ed icon to /col/| 00052210 2e 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 |. This does not | 00052220 77 6f 72 6b 20 77 69 74 68 20 6f 75 74 6c 69 6e |work with outlin| 00052230 65 20 66 6f 6e 74 73 2e 44 41 54 41 9c 01 00 00 |e fonts.DATA....| 00052240 49 63 6f 6e 5f 53 65 74 46 6c 61 67 73 0a 53 79 |Icon_SetFlags.Sy| 00052250 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00052260 20 2a 49 63 6f 6e 5f 53 65 74 46 6c 61 67 73 20 | *Icon_SetFlags | 00052270 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |(<window_handle>| 00052280 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 | win, <icon_hand| 00052290 6c 65 3e 20 69 63 6f 6e 2c 20 69 6e 74 20 66 6c |le> icon, int fl| 000522a0 61 67 73 2c 20 3c 42 4f 4f 4c 3e 20 73 65 74 29 |ags, <BOOL> set)| 000522b0 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 000522c0 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f |ib:Icon.h=>Icon_| 000522d0 54 4c 3e 0a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 |TL>..<DeskLib:Ic| 000522e0 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 |on.h=>Icon>..Ret| 000522f0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00052300 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00052310 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00052320 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d | function-like m| 00052330 61 63 72 6f 20 73 65 74 73 20 74 68 65 20 73 70 |acro sets the sp| 00052340 65 63 69 66 69 65 64 20 69 63 6f 6e 27 73 20 66 |ecified icon's f| 00052350 6c 61 67 73 20 61 63 63 6f 72 64 69 6e 67 20 74 |lags according t| 00052360 6f 20 2f 66 6c 61 67 73 2f 20 61 6e 64 20 2f 73 |o /flags/ and /s| 00052370 65 74 2f 2e 20 54 68 65 20 66 6c 61 67 73 20 67 |et/. The flags g| 00052380 69 76 65 6e 20 61 72 65 20 61 6c 6c 20 65 69 74 |iven are all eit| 00052390 68 65 72 20 73 65 74 20 28 69 66 20 7b 2f 7d 73 |her set (if {/}s| 000523a0 65 74 7b 2f 7d 20 69 73 20 3c 54 52 55 45 3e 29 |et{/} is <TRUE>)| 000523b0 20 6f 72 20 75 6e 73 65 74 20 28 69 66 20 7b 2f | or unset (if {/| 000523c0 7d 73 65 74 7b 2f 7d 20 69 73 20 3c 46 41 4c 53 |}set{/} is <FALS| 000523d0 45 3e 29 2e 44 41 54 41 1d 01 00 00 49 63 6f 6e |E>).DATA....Icon| 000523e0 5f 53 65 74 46 6f 72 65 43 6f 6c 6f 75 72 0a 53 |_SetForeColour.S| 000523f0 79 6e 74 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e |yntax:.void Icon| 00052400 5f 53 65 74 46 6f 72 65 43 6f 6c 6f 75 72 20 28 |_SetForeColour (| 00052410 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 00052420 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c |win, <icon_handl| 00052430 65 3e 20 69 63 6f 6e 2c 20 69 6e 74 20 77 69 6d |e> icon, int wim| 00052440 70 63 6f 6c 29 3b 0a 48 65 61 64 65 72 3a 09 3c |pcol);.Header:.<| 00052450 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e |DeskLib:Icon.h=>| 00052460 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |Icon>..This func| 00052470 74 69 6f 6e 20 73 65 74 73 20 74 68 65 20 66 6f |tion sets the fo| 00052480 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 20 |reground colour | 00052490 6f 66 20 61 6e 20 69 63 6f 6e 2e 20 4e 6f 74 65 |of an icon. Note| 000524a0 20 74 68 61 74 20 69 74 20 64 6f 65 73 20 6e 6f | that it does no| 000524b0 74 20 63 6f 70 65 20 77 69 74 68 20 6f 75 74 6c |t cope with outl| 000524c0 69 6e 65 20 66 6f 6e 74 20 69 63 6f 6e 73 2c 20 |ine font icons, | 000524d0 61 6e 64 20 77 69 6c 6c 20 63 6f 6d 70 6c 65 74 |and will complet| 000524e0 65 6c 79 20 6d 75 63 6b 20 74 68 65 6d 20 75 70 |ely muck them up| 000524f0 2e 00 00 00 44 41 54 41 3c 01 00 00 49 63 6f 6e |....DATA<...Icon| 00052500 5f 53 65 74 49 6e 74 65 67 65 72 0a 53 79 6e 74 |_SetInteger.Synt| 00052510 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 53 65 |ax:.void Icon_Se| 00052520 74 49 6e 74 65 67 65 72 20 28 3c 77 69 6e 64 6f |tInteger (<windo| 00052530 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c |w_handle> hnd, <| 00052540 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f |icon_handle> ico| 00052550 6e 2c 20 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 |n, int n);.Heade| 00052560 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e |r:.<DeskLib:Icon| 00052570 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 |.h=>Icon>..This | 00052580 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 00052590 65 20 67 69 76 65 6e 20 69 63 6f 6e 27 73 20 74 |e given icon's t| 000525a0 65 78 74 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 |ext to hold the | 000525b0 6e 75 6d 62 65 72 20 2f 6e 2f 2e 20 54 68 65 20 |number /n/. The | 000525c0 69 63 6f 6e 20 69 73 20 72 65 64 72 61 77 6e 2e |icon is redrawn.| 000525d0 20 49 66 20 74 68 65 20 6e 75 6d 62 65 72 20 69 | If the number i| 000525e0 73 20 74 6f 6f 20 6c 6f 6e 67 20 69 74 20 77 69 |s too long it wi| 000525f0 6c 6c 20 62 65 20 63 68 6f 70 70 65 64 20 6f 66 |ll be chopped of| 00052600 66 2e 20 4e 6f 20 65 72 72 6f 72 20 69 73 20 72 |f. No error is r| 00052610 65 74 75 72 6e 65 64 20 69 66 20 74 68 65 20 69 |eturned if the i| 00052620 63 6f 6e 20 69 73 20 6e 6f 74 20 74 65 78 74 2e |con is not text.| 00052630 44 41 54 41 9f 01 00 00 49 63 6f 6e 5f 53 65 74 |DATA....Icon_Set| 00052640 52 61 64 69 6f 73 0a 53 79 6e 74 61 78 3a 09 76 |Radios.Syntax:.v| 00052650 6f 69 64 20 49 63 6f 6e 5f 53 65 74 52 61 64 69 |oid Icon_SetRadi| 00052660 6f 73 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |os (<window_hand| 00052670 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 |le> hnd, <icon_h| 00052680 61 6e 64 6c 65 3e 20 66 69 72 73 74 2c 20 69 63 |andle> first, ic| 00052690 6f 6e 5f 68 61 6e 64 6c 65 20 6c 61 73 74 2c 20 |on_handle last, | 000526a0 69 63 6f 6e 5f 68 61 6e 64 6c 65 20 69 63 6f 6e |icon_handle icon| 000526b0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000526c0 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e |Lib:Icon.h=>Icon| 000526d0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000526e0 20 73 65 6c 65 63 74 73 20 74 68 65 20 69 63 6f | selects the ico| 000526f0 6e 20 77 68 6f 73 65 20 77 69 6e 64 6f 77 20 61 |n whose window a| 00052700 6e 64 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 69 |nd icon handle i| 00052710 73 20 67 69 76 65 6e 20 69 6e 20 2f 68 6e 64 2f |s given in /hnd/| 00052720 20 61 6e 64 20 2f 69 63 6f 6e 2f 20 72 65 73 70 | and /icon/ resp| 00052730 65 63 74 69 76 65 6c 79 2e 20 41 6c 6c 20 6f 74 |ectively. All ot| 00052740 68 65 72 20 69 63 6f 6e 73 20 66 72 6f 6d 20 2f |her icons from /| 00052750 66 69 72 73 74 2f 20 74 6f 20 2f 6c 61 73 74 2f |first/ to /last/| 00052760 20 77 69 6c 6c 20 62 65 20 73 65 6c 65 63 74 65 | will be selecte| 00052770 64 2e 0a 0a 49 74 20 69 73 20 69 6e 74 65 6e 64 |d...It is intend| 00052780 65 64 20 74 68 61 74 20 74 68 69 73 20 66 75 6e |ed that this fun| 00052790 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f |ction is used to| 000527a0 20 73 65 6c 65 63 74 20 6f 6e 65 20 6f 70 74 69 | select one opti| 000527b0 6f 6e 20 66 72 6f 6d 20 61 20 67 72 6f 75 70 20 |on from a group | 000527c0 6f 66 20 72 61 64 69 6f 20 69 63 6f 6e 73 2e 00 |of radio icons..| 000527d0 44 41 54 41 de 00 00 00 49 63 6f 6e 5f 53 65 74 |DATA....Icon_Set| 000527e0 53 65 6c 65 63 74 0a 53 79 6e 74 61 78 3a 09 76 |Select.Syntax:.v| 000527f0 6f 69 64 20 3c 49 63 6f 6e 5f 53 65 74 53 65 6c |oid <Icon_SetSel| 00052800 65 63 74 3e 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |ect> (<window_ha| 00052810 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e |ndle> hnd, <icon| 00052820 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 69 |_handle> icon, i| 00052830 6e 74 20 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt s);.Header:.<| 00052840 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e |DeskLib:Icon.h=>| 00052850 49 63 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |Icon>..This func| 00052860 74 69 6f 6e 20 73 65 74 73 20 6f 72 20 64 65 73 |tion sets or des| 00052870 65 6c 65 63 74 73 20 74 68 65 20 69 63 6f 6e 20 |elects the icon | 00052880 73 70 65 63 69 66 69 65 64 2c 20 64 65 70 65 6e |specified, depen| 00052890 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 |ding on whether | 000528a0 2f 73 2f 20 69 73 20 31 20 6f 72 20 30 2e 00 00 |/s/ is 1 or 0...| 000528b0 44 41 54 41 dd 00 00 00 49 63 6f 6e 5f 53 65 74 |DATA....Icon_Set| 000528c0 53 68 61 64 65 0a 53 79 6e 74 61 78 3a 09 76 6f |Shade.Syntax:.vo| 000528d0 69 64 20 3c 49 63 6f 6e 5f 53 65 74 53 68 61 64 |id <Icon_SetShad| 000528e0 65 3e 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |e> (<window_hand| 000528f0 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 |le> hnd, <icon_h| 00052900 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 69 6e 74 |andle> icon, int| 00052910 20 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 | s);.Header:.<De| 00052920 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 |skLib:Icon.h=>Ic| 00052930 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |on>..This functi| 00052940 6f 6e 20 73 68 61 64 65 73 20 6f 72 20 75 6e 73 |on shades or uns| 00052950 68 61 64 65 73 20 74 68 65 20 69 63 6f 6e 20 73 |hades the icon s| 00052960 70 65 63 69 66 69 65 64 2c 20 64 65 70 65 6e 64 |pecified, depend| 00052970 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 2f |ing on whether /| 00052980 73 2f 20 69 73 20 31 20 6f 72 20 30 2e 00 00 00 |s/ is 1 or 0....| 00052990 44 41 54 41 fa 00 00 00 49 63 6f 6e 5f 53 65 74 |DATA....Icon_Set| 000529a0 53 6c 69 64 65 72 0a 53 79 6e 74 61 78 3a 09 69 |Slider.Syntax:.i| 000529b0 6e 74 20 49 63 6f 6e 5f 53 65 74 53 6c 69 64 65 |nt Icon_SetSlide| 000529c0 72 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |r (<window_handl| 000529d0 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 |e> hnd, <icon_ha| 000529e0 6e 64 6c 65 3e 20 62 61 73 65 2c 20 69 63 6f 6e |ndle> base, icon| 000529f0 5f 68 61 6e 64 6c 65 20 73 6c 69 64 65 72 2c 20 |_handle slider, | 00052a00 69 6e 74 20 70 6f 73 29 3b 0a 48 65 61 64 65 72 |int pos);.Header| 00052a10 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e |:.<DeskLib:Icon.| 00052a20 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e |h=>Icon>..Return| 00052a30 73 3a 09 50 6f 73 69 74 69 6f 6e 20 73 65 74 0a |s:.Position set.| 00052a40 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 00052a50 65 74 73 20 74 68 65 20 73 6c 69 64 65 72 20 74 |ets the slider t| 00052a60 6f 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 |o represent the | 00052a70 70 65 72 63 65 6e 74 61 67 65 20 67 69 76 65 6e |percentage given| 00052a80 20 69 6e 20 2f 70 6f 73 2f 2e 00 00 44 41 54 41 | in /pos/...DATA| 00052a90 4b 01 00 00 49 63 6f 6e 5f 53 65 74 54 65 78 74 |K...Icon_SetText| 00052aa0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 49 63 |.Syntax:.void Ic| 00052ab0 6f 6e 5f 53 65 74 54 65 78 74 20 28 3c 77 69 6e |on_SetText (<win| 00052ac0 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c |dow_handle> hnd,| 00052ad0 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 00052ae0 63 6f 6e 2c 20 63 68 61 72 20 2a 74 29 3b 0a 48 |con, char *t);.H| 00052af0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00052b00 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 |Icon.h=>Icon>..T| 00052b10 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 |his function cop| 00052b20 69 65 73 20 74 68 65 20 73 74 72 69 6e 67 20 70 |ies the string p| 00052b30 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 2f |ointed to by /t/| 00052b40 20 69 6e 74 6f 20 74 68 65 20 69 6e 64 69 72 65 | into the indire| 00052b50 63 74 65 64 20 74 65 78 74 20 6f 66 20 74 68 65 |cted text of the| 00052b60 20 73 70 65 63 69 66 69 65 64 20 69 63 6f 6e 2e | specified icon.| 00052b70 20 49 66 20 2f 74 2f 20 69 73 20 61 20 6e 75 6c | If /t/ is a nul| 00052b80 6c 20 70 6f 69 6e 74 65 72 2c 20 69 63 6f 6e 20 |l pointer, icon | 00052b90 74 65 78 74 20 69 73 20 73 65 74 20 74 6f 20 22 |text is set to "| 00052ba0 a0 22 2e 20 49 66 20 74 68 65 20 69 63 6f 6e 20 |.". If the icon | 00052bb0 69 73 20 6e 6f 74 20 74 68 65 20 72 69 67 68 74 |is not the right| 00052bc0 20 74 79 70 65 2c 20 6e 6f 20 65 72 72 6f 72 20 | type, no error | 00052bd0 6f 63 63 75 72 73 2e 00 44 41 54 41 b0 01 00 00 |occurs..DATA....| 00052be0 49 63 6f 6e 5f 53 65 74 54 65 78 74 52 4a 0a 53 |Icon_SetTextRJ.S| 00052bf0 79 6e 74 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e |yntax:.void Icon| 00052c00 5f 53 65 74 54 65 78 74 52 4a 20 28 3c 77 69 6e |_SetTextRJ (<win| 00052c10 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 68 6e 64 2c |dow_handle> hnd,| 00052c20 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 00052c30 63 6f 6e 2c 20 63 68 61 72 20 2a 74 29 3b 0a 48 |con, char *t);.H| 00052c40 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00052c50 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 |Icon.h=>Icon>..T| 00052c60 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 |his function cop| 00052c70 69 65 73 20 74 68 65 20 73 74 72 69 6e 67 20 70 |ies the string p| 00052c80 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 2f |ointed to by /t/| 00052c90 20 69 6e 74 6f 20 74 68 65 20 69 6e 64 69 72 65 | into the indire| 00052ca0 63 74 65 64 20 74 65 78 74 20 6f 66 20 74 68 65 |cted text of the| 00052cb0 20 73 70 65 63 69 66 69 65 64 20 69 63 6f 6e 2e | specified icon.| 00052cc0 20 49 66 20 2f 74 2f 20 69 73 20 61 20 6e 75 6c | If /t/ is a nul| 00052cd0 6c 20 70 6f 69 6e 74 65 72 2c 20 69 63 6f 6e 20 |l pointer, icon | 00052ce0 74 65 78 74 20 69 73 20 73 65 74 20 74 6f 20 22 |text is set to "| 00052cf0 22 2e 20 49 66 20 74 68 65 20 69 63 6f 6e 20 69 |". If the icon i| 00052d00 73 20 6e 6f 74 20 74 68 65 20 72 69 67 68 74 20 |s not the right | 00052d10 74 79 70 65 2c 20 6e 6f 20 65 72 72 6f 72 20 6f |type, no error o| 00052d20 63 63 75 72 73 2e 20 49 66 20 74 68 65 20 74 65 |ccurs. If the te| 00052d30 78 74 20 64 6f 65 73 20 6e 6f 74 20 66 69 74 20 |xt does not fit | 00052d40 69 6e 20 74 68 65 20 69 63 6f 6e 20 62 75 66 66 |in the icon buff| 00052d50 65 72 2c 20 69 74 20 69 73 20 63 68 6f 70 70 65 |er, it is choppe| 00052d60 64 20 6f 66 66 20 61 74 20 74 68 65 20 4c 45 46 |d off at the LEF| 00052d70 54 20 61 6e 64 20 70 72 65 66 69 78 65 64 20 62 |T and prefixed b| 00052d80 79 20 22 2e 2e 2e 22 2e 44 41 54 41 d7 00 00 00 |y "...".DATA....| 00052d90 49 63 6f 6e 5f 53 68 61 64 65 0a 53 79 6e 74 61 |Icon_Shade.Synta| 00052da0 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 53 68 61 |x:.void Icon_Sha| 00052db0 64 65 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |de (<window_hand| 00052dc0 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 |le> hnd, <icon_h| 00052dd0 61 6e 64 6c 65 3e 20 69 63 6f 6e 29 3b 0a 48 65 |andle> icon);.He| 00052de0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 |ader:.<DeskLib:I| 00052df0 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 |con.h=>Icon>..Th| 00052e00 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 64 |is function shad| 00052e10 65 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 |es the specified| 00052e20 20 69 63 6f 6e 20 69 66 20 69 74 20 69 73 20 75 | icon if it is u| 00052e30 6e 73 68 61 64 65 64 2e 20 49 6e 20 61 64 64 69 |nshaded. In addi| 00052e40 74 69 6f 6e 20 74 68 65 20 63 61 72 65 74 20 77 |tion the caret w| 00052e50 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 2e 00 |ill be removed..| 00052e60 44 41 54 41 30 01 00 00 49 63 6f 6e 5f 53 68 61 |DATA0...Icon_Sha| 00052e70 64 65 47 72 6f 75 70 0a 53 79 6e 74 61 78 3a 09 |deGroup.Syntax:.| 00052e80 76 6f 69 64 20 49 63 6f 6e 5f 53 68 61 64 65 47 |void Icon_ShadeG| 00052e90 72 6f 75 70 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |roup (<window_ha| 00052ea0 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e |ndle> win, <icon| 00052eb0 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 73 5b 5d |_handle> icons[]| 00052ec0 2c 20 3c 42 4f 4f 4c 3e 20 73 68 61 64 65 29 3b |, <BOOL> shade);| 00052ed0 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 |.Header:.<TimsLi| 00052ee0 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f 54 |b:Icon.h=>Icon_T| 00052ef0 4c 3e 0a 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f |L>..<DeskLib:Ico| 00052f00 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 69 73 |n.h=>Icon>..This| 00052f10 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 64 65 73 | function shades| 00052f20 20 6f 72 20 75 6e 73 68 61 64 65 73 20 28 64 65 | or unshades (de| 00052f30 70 65 6e 64 69 6e 67 20 6f 6e 20 7b 2f 7d 73 68 |pending on {/}sh| 00052f40 61 64 65 7b 2f 7d 29 20 74 68 65 20 69 63 6f 6e |ade{/}) the icon| 00052f50 73 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 |s specified in t| 00052f60 68 65 20 61 72 72 61 79 20 2f 69 63 6f 6e 73 2f |he array /icons/| 00052f70 2e 20 54 68 65 20 61 72 72 61 79 20 69 73 20 74 |. The array is t| 00052f80 65 72 6d 69 6e 61 74 65 64 20 62 79 20 2d 31 2e |erminated by -1.| 00052f90 44 41 54 41 82 00 00 00 53 6c 69 64 65 72 20 4f |DATA....Slider O| 00052fa0 70 65 72 61 74 69 6f 6e 73 20 46 75 6e 63 74 69 |perations Functi| 00052fb0 6f 6e 73 0a 23 54 61 62 6c 65 20 32 20 32 31 0a |ons.#Table 2 21.| 00052fc0 3c 49 63 6f 6e 5f 44 72 61 67 53 6c 69 64 65 72 |<Icon_DragSlider| 00052fd0 3e 0a 3c 49 63 6f 6e 5f 52 65 61 64 53 6c 69 64 |>.<Icon_ReadSlid| 00052fe0 65 72 3e 0a 3c 49 63 6f 6e 5f 53 65 74 53 6c 69 |er>.<Icon_SetSli| 00052ff0 64 65 72 3e 0a 3c 49 63 6f 6e 5f 55 70 64 61 74 |der>.<Icon_Updat| 00053000 65 53 6c 69 64 65 72 3e 0a 23 45 6e 64 54 61 62 |eSlider>.#EndTab| 00053010 6c 65 00 00 44 41 54 41 4c 01 00 00 49 63 6f 6e |le..DATAL...Icon| 00053020 5f 53 74 61 72 74 44 72 61 67 0a 53 79 6e 74 61 |_StartDrag.Synta| 00053030 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 53 74 61 |x:.void Icon_Sta| 00053040 72 74 44 72 61 67 20 28 3c 77 69 6e 64 6f 77 5f |rtDrag (<window_| 00053050 68 61 6e 64 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 |handle> hnd, <ic| 00053060 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 29 |on_handle> icon)| 00053070 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00053080 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e |ib:Icon.h=>Icon>| 00053090 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000530a0 73 74 61 72 74 73 20 61 20 64 72 61 67 20 6f 70 |starts a drag op| 000530b0 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 67 |eration of the g| 000530c0 69 76 65 6e 20 69 63 6f 6e 2e 20 49 74 20 63 61 |iven icon. It ca| 000530d0 6c 63 75 6c 61 74 65 73 20 74 68 65 20 76 61 6c |lculates the val| 000530e0 75 65 73 20 6e 65 65 64 65 64 20 61 6e 64 20 63 |ues needed and c| 000530f0 61 6c 6c 73 20 74 68 65 20 53 57 49 20 3c 57 69 |alls the SWI <Wi| 00053100 6d 70 5f 44 72 61 67 42 6f 78 3d 3e 53 57 49 3a |mp_DragBox=>SWI:| 00053110 57 69 6d 70 5f 44 72 61 67 42 6f 78 3e 2e 20 49 |Wimp_DragBox>. I| 00053120 74 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 44 |t does not use D| 00053130 72 61 67 41 53 70 72 69 74 65 2c 20 66 6f 72 20 |ragASprite, for | 00053140 74 68 61 74 20 75 73 65 20 3c 44 72 61 67 41 53 |that use <DragAS| 00053150 70 72 69 74 65 5f 44 72 61 67 49 63 6f 6e 3e 2e |prite_DragIcon>.| 00053160 44 41 54 41 08 01 00 00 49 63 6f 6e 5f 53 74 61 |DATA....Icon_Sta| 00053170 72 74 53 6f 6c 69 64 44 72 61 67 0a 53 79 6e 74 |rtSolidDrag.Synt| 00053180 61 78 3a 09 6f 73 5f 65 72 72 6f 72 20 2a 49 63 |ax:.os_error *Ic| 00053190 6f 6e 5f 53 74 61 72 74 53 6f 6c 69 64 44 72 61 |on_StartSolidDra| 000531a0 67 20 28 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 |g (window_handle| 000531b0 20 68 6e 64 2c 20 69 63 6f 6e 5f 68 61 6e 64 6c | hnd, icon_handl| 000531c0 65 20 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a |e icon);.Header:| 000531d0 09 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 |.<DeskLib:Icon.h| 000531e0 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 |=>Icon>..Returns| 000531f0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00053200 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00053210 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 69 73 20 | none...This is | 00053220 73 69 6d 70 6c 79 20 61 20 3c 23 64 65 66 69 6e |simply a <#defin| 00053230 65 3d 3e 64 65 66 69 6e 65 3e 64 20 61 6c 74 65 |e=>define>d alte| 00053240 72 6e 61 74 69 76 65 20 6e 61 6d 65 20 66 6f 72 |rnative name for| 00053250 20 3c 44 72 61 67 41 53 70 72 69 74 65 5f 44 72 | <DragASprite_Dr| 00053260 61 67 49 63 6f 6e 3e 2e 44 41 54 41 b7 01 00 00 |agIcon>.DATA....| 00053270 52 65 61 64 69 6e 67 2f 57 72 69 74 69 6e 67 20 |Reading/Writing | 00053280 49 63 6f 6e 20 53 74 61 74 65 20 46 75 6e 63 74 |Icon State Funct| 00053290 69 6f 6e 73 0a 23 69 6e 64 65 6e 74 20 31 0a 23 |ions.#indent 1.#| 000532a0 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a |Table columns 2.| 000532b0 3c 49 63 6f 6e 5f 44 65 73 65 6c 65 63 74 3e 0a |<Icon_Deselect>.| 000532c0 3c 49 63 6f 6e 5f 47 65 74 53 65 6c 65 63 74 3e |<Icon_GetSelect>| 000532d0 0a 3c 49 63 6f 6e 5f 47 65 74 53 68 61 64 65 3e |.<Icon_GetShade>| 000532e0 0a 3c 49 63 6f 6e 5f 53 65 6c 65 63 74 3e 0a 3c |.<Icon_Select>.<| 000532f0 49 63 6f 6e 5f 53 65 74 52 61 64 69 6f 73 3e 0a |Icon_SetRadios>.| 00053300 3c 49 63 6f 6e 5f 53 65 74 53 65 6c 65 63 74 3e |<Icon_SetSelect>| 00053310 0a 3c 49 63 6f 6e 5f 53 65 74 53 68 61 64 65 3e |.<Icon_SetShade>| 00053320 0a 3c 49 63 6f 6e 5f 53 68 61 64 65 3e 0a 3c 49 |.<Icon_Shade>.<I| 00053330 63 6f 6e 5f 55 6e 73 68 61 64 65 3e 0a 3c 49 63 |con_Unshade>.<Ic| 00053340 6f 6e 5f 57 68 69 63 68 52 61 64 69 6f 3e 0a 3c |on_WhichRadio>.<| 00053350 49 63 6f 6e 5f 57 68 69 63 68 52 61 64 69 6f 49 |Icon_WhichRadioI| 00053360 6e 45 73 67 3e 0a 3c 49 63 6f 6e 5f 53 65 74 46 |nEsg>.<Icon_SetF| 00053370 6f 72 65 43 6f 6c 6f 75 72 3e 0a 3c 49 63 6f 6e |oreColour>.<Icon| 00053380 5f 53 65 74 42 61 63 6b 43 6f 6c 6f 75 72 3e 0a |_SetBackColour>.| 00053390 3c 49 63 6f 6e 5f 53 65 74 46 67 43 6f 6c 3e 0a |<Icon_SetFgCol>.| 000533a0 3c 49 63 6f 6e 5f 53 65 74 42 67 43 6f 6c 3e 0a |<Icon_SetBgCol>.| 000533b0 3c 49 63 6f 6e 5f 53 68 61 64 65 47 72 6f 75 70 |<Icon_ShadeGroup| 000533c0 3e 0a 3c 49 63 6f 6e 5f 53 65 6c 65 63 74 47 72 |>.<Icon_SelectGr| 000533d0 6f 75 70 3e 0a 3c 49 63 6f 6e 5f 47 65 74 46 67 |oup>.<Icon_GetFg| 000533e0 43 6f 6c 3e 0a 3c 49 63 6f 6e 5f 47 65 74 42 67 |Col>.<Icon_GetBg| 000533f0 43 6f 6c 3e 0a 3c 49 63 6f 6e 5f 53 63 72 65 65 |Col>.<Icon_Scree| 00053400 6e 50 6f 73 3e 0a 3c 49 63 6f 6e 5f 53 65 74 46 |nPos>.<Icon_SetF| 00053410 6c 61 67 73 3e 0a 23 45 6e 64 54 61 62 6c 65 00 |lags>.#EndTable.| 00053420 44 41 54 41 81 01 00 00 54 69 6d 73 4c 69 62 3a |DATA....TimsLib:| 00053430 49 63 6f 6e 2e 68 0a 54 68 69 73 20 68 65 61 64 |Icon.h.This head| 00053440 65 72 20 69 73 20 61 6e 20 65 78 74 65 6e 73 69 |er is an extensi| 00053450 6f 6e 20 74 6f 20 3c 44 65 73 6b 4c 69 62 3a 49 |on to <DeskLib:I| 00053460 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 2e 0a 0a 46 |con.h=>Icon>...F| 00053470 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 |unctions:..#inde| 00053480 6e 74 20 34 0a 23 54 61 62 6c 65 20 34 20 32 30 |nt 4.#Table 4 20| 00053490 0a 3c 49 63 6f 6e 5f 44 69 73 70 6f 73 65 44 61 |.<Icon_DisposeDa| 000534a0 74 61 3e 0a 3c 49 63 6f 6e 5f 53 65 74 46 6c 61 |ta>.<Icon_SetFla| 000534b0 67 73 3e 0a 3c 49 63 6f 6e 5f 53 68 61 64 65 47 |gs>.<Icon_ShadeG| 000534c0 72 6f 75 70 3e 0a 3c 49 63 6f 6e 5f 53 65 6c 65 |roup>.<Icon_Sele| 000534d0 63 74 47 72 6f 75 70 3e 0a 3c 49 63 6f 6e 5f 53 |ctGroup>.<Icon_S| 000534e0 65 74 46 67 43 6f 6c 3e 0a 3c 49 63 6f 6e 5f 53 |etFgCol>.<Icon_S| 000534f0 65 74 42 67 43 6f 6c 3e 0a 3c 49 63 6f 6e 5f 47 |etBgCol>.<Icon_G| 00053500 65 74 46 67 43 6f 6c 3e 0a 3c 49 63 6f 6e 5f 47 |etFgCol>.<Icon_G| 00053510 65 74 54 65 78 74 50 74 72 3e 0a 23 45 6e 64 54 |etTextPtr>.#EndT| 00053520 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 30 0a 0a |able.#indent 0..| 00053530 4d 61 63 72 6f 73 3a 0a 0a 23 69 6e 64 65 6e 74 |Macros:..#indent| 00053540 20 34 0a 23 54 61 62 6c 65 20 33 20 32 30 0a 3c | 4.#Table 3 20.<| 00053550 4e 4f 5f 49 43 4f 4e 5f 44 41 54 41 3e 0a 3c 54 |NO_ICON_DATA>.<T| 00053560 58 54 5f 4f 4e 4c 59 3e 0a 3c 53 50 52 5f 4f 4e |XT_ONLY>.<SPR_ON| 00053570 4c 59 3e 0a 3c 54 58 54 5f 41 4e 44 5f 53 50 52 |LY>.<TXT_AND_SPR| 00053580 3e 0a 3c 49 43 4f 4e 5f 54 59 50 45 3e 0a 23 45 |>.<ICON_TYPE>.#E| 00053590 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 |ndTable.#indent | 000535a0 30 00 00 00 44 41 54 41 2e 01 00 00 49 43 4f 4e |0...DATA....ICON| 000535b0 5f 54 59 50 45 0a 53 79 6e 74 61 78 3a 09 69 6e |_TYPE.Syntax:.in| 000535c0 74 20 49 43 4f 4e 5f 54 59 50 45 20 28 69 6e 74 |t ICON_TYPE (int| 000535d0 20 66 6c 61 67 73 29 3b 0a 48 65 61 64 65 72 3a | flags);.Header:| 000535e0 09 3c 54 69 6d 73 4c 69 62 3a 49 63 6f 6e 2e 68 |.<TimsLib:Icon.h| 000535f0 3d 3e 49 63 6f 6e 5f 54 4c 3e 0a 0a 52 65 74 75 |=>Icon_TL>..Retu| 00053600 72 6e 73 3a 09 49 63 6f 6e 20 74 79 70 65 2e 0a |rns:.Icon type..| 00053610 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c |.This function-l| 00053620 69 6b 65 20 6d 61 63 72 6f 20 65 78 74 72 61 63 |ike macro extrac| 00053630 74 73 20 74 68 65 20 69 63 6f 6e 20 74 79 70 65 |ts the icon type| 00053640 20 66 72 6f 6d 20 74 68 65 20 69 63 6f 6e 20 66 | from the icon f| 00053650 6c 61 67 73 20 61 6e 64 20 72 65 74 75 72 6e 73 |lags and returns| 00053660 20 61 20 76 61 6c 75 65 20 30 2d 33 20 28 3c 4e | a value 0-3 (<N| 00053670 4f 5f 49 43 4f 4e 5f 44 41 54 41 3e 2c 20 3c 54 |O_ICON_DATA>, <T| 00053680 58 54 5f 4f 4e 4c 59 3e 2c 20 3c 53 50 52 5f 4f |XT_ONLY>, <SPR_O| 00053690 4e 4c 59 3e 2c 20 6f 72 20 3c 54 58 54 5f 41 4e |NLY>, or <TXT_AN| 000536a0 44 5f 53 50 52 3e 29 2e 20 49 74 20 69 73 20 64 |D_SPR>). It is d| 000536b0 65 66 69 6e 65 64 20 61 73 20 7b 66 43 6f 64 65 |efined as {fCode| 000536c0 7d 28 28 66 6c 61 67 73 29 20 26 20 33 29 7b 66 |}((flags) & 3){f| 000536d0 7d 2e 00 00 44 41 54 41 b4 00 00 00 49 63 6f 6e |}...DATA....Icon| 000536e0 5f 55 6e 73 68 61 64 65 0a 53 79 6e 74 61 78 3a |_Unshade.Syntax:| 000536f0 09 76 6f 69 64 20 49 63 6f 6e 5f 55 6e 73 68 61 |.void Icon_Unsha| 00053700 64 65 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |de (<window_hand| 00053710 6c 65 3e 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 |le> hnd, <icon_h| 00053720 61 6e 64 6c 65 3e 20 69 63 6f 6e 29 3b 0a 48 65 |andle> icon);.He| 00053730 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 |ader:.<DeskLib:I| 00053740 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 54 68 |con.h=>Icon>..Th| 00053750 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 68 |is function unsh| 00053760 61 64 65 73 20 74 68 65 20 73 70 65 63 69 66 69 |ades the specifi| 00053770 65 64 20 69 63 6f 6e 20 69 66 20 69 74 20 69 73 |ed icon if it is| 00053780 20 73 68 61 64 65 64 2e 44 41 54 41 92 01 00 00 | shaded.DATA....| 00053790 49 63 6f 6e 5f 55 70 64 61 74 65 53 6c 69 64 65 |Icon_UpdateSlide| 000537a0 72 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 49 63 |r.Syntax:.int Ic| 000537b0 6f 6e 5f 55 70 64 61 74 65 53 6c 69 64 65 72 20 |on_UpdateSlider | 000537c0 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |(<window_handle>| 000537d0 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 | hnd, <icon_hand| 000537e0 6c 65 3e 20 62 61 73 65 2c 20 69 63 6f 6e 5f 68 |le> base, icon_h| 000537f0 61 6e 64 6c 65 20 73 6c 69 64 65 72 2c 20 69 6e |andle slider, in| 00053800 74 20 70 6f 73 29 3b 0a 48 65 61 64 65 72 3a 09 |t pos);.Header:.| 00053810 3c 44 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d |<DeskLib:Icon.h=| 00053820 3e 49 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a |>Icon>..Returns:| 00053830 09 4e 65 77 20 73 6c 69 64 65 72 20 70 6f 73 69 |.New slider posi| 00053840 74 69 6f 6e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |tion..This funct| 00053850 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 63 61 |ion should be ca| 00053860 6c 6c 65 64 20 6f 6e 20 4e 55 4c 4c 20 65 76 65 |lled on NULL eve| 00053870 6e 74 73 20 77 68 69 6c 65 20 74 68 65 20 73 6c |nts while the sl| 00053880 69 64 65 72 20 69 73 20 62 65 69 6e 67 20 64 72 |ider is being dr| 00053890 61 67 67 65 64 2e 20 49 74 20 63 61 6c 63 75 6c |agged. It calcul| 000538a0 61 74 65 73 20 61 20 6e 65 77 20 73 6c 69 64 65 |ates a new slide| 000538b0 72 20 70 65 72 63 65 6e 74 61 67 65 20 66 72 6f |r percentage fro| 000538c0 6d 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 73 69 |m the mouse posi| 000538d0 74 69 6f 6e 20 61 6e 64 2c 20 69 66 20 64 69 66 |tion and, if dif| 000538e0 66 65 72 65 6e 74 20 66 72 6f 6d 20 2f 70 6f 73 |ferent from /pos| 000538f0 2f 2c 20 61 6c 74 65 72 73 20 74 68 65 20 69 63 |/, alters the ic| 00053900 6f 6e 20 74 6f 20 73 68 6f 77 20 74 68 65 20 6e |on to show the n| 00053910 65 77 20 6c 65 6e 67 74 68 2e 00 00 44 41 54 41 |ew length...DATA| 00053920 db 01 00 00 49 63 6f 6e 5f 57 68 69 63 68 52 61 |....Icon_WhichRa| 00053930 64 69 6f 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |dio.Syntax:.int | 00053940 49 63 6f 6e 5f 57 68 69 63 68 52 61 64 69 6f 20 |Icon_WhichRadio | 00053950 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |(<window_handle>| 00053960 20 68 6e 64 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 | hnd, <icon_hand| 00053970 6c 65 3e 20 66 69 72 73 74 2c 20 69 63 6f 6e 5f |le> first, icon_| 00053980 68 61 6e 64 6c 65 20 6c 61 73 74 29 3b 0a 48 65 |handle last);.He| 00053990 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 49 |ader:.<DeskLib:I| 000539a0 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 65 |con.h=>Icon>..Re| 000539b0 74 75 72 6e 73 3a 09 49 63 6f 6e 20 6e 75 6d 62 |turns:.Icon numb| 000539c0 65 72 20 6f 66 20 73 65 6c 65 63 74 65 64 20 69 |er of selected i| 000539d0 63 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |con...This funct| 000539e0 69 6f 6e 20 63 68 65 63 6b 73 20 74 68 72 6f 75 |ion checks throu| 000539f0 67 68 20 61 20 67 72 6f 75 70 20 6f 66 20 69 63 |gh a group of ic| 00053a00 6f 6e 20 66 72 6f 6d 20 2f 66 69 72 73 74 2f 20 |on from /first/ | 00053a10 74 6f 20 2f 6c 61 73 74 2f 20 61 6e 64 20 72 65 |to /last/ and re| 00053a20 74 75 72 6e 73 20 74 68 65 20 69 63 6f 6e 20 6e |turns the icon n| 00053a30 75 6d 62 65 72 20 6f 66 20 74 68 65 20 66 69 72 |umber of the fir| 00053a40 73 74 20 69 63 6f 6e 20 69 74 20 66 69 6e 64 73 |st icon it finds| 00053a50 20 77 68 69 63 68 20 69 73 20 73 65 6c 65 63 74 | which is select| 00053a60 65 64 2e 20 49 66 20 6e 6f 6e 65 20 61 72 65 20 |ed. If none are | 00053a70 73 65 6c 65 63 74 65 64 2c 20 69 74 20 72 65 74 |selected, it ret| 00053a80 75 72 6e 73 20 74 68 65 20 76 61 6c 75 65 20 6f |urns the value o| 00053a90 66 20 2f 6c 61 73 74 2f 2e 0a 0a 49 74 20 69 73 |f /last/...It is| 00053aa0 20 69 6e 74 65 6e 64 65 64 20 74 68 61 74 20 74 | intended that t| 00053ab0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 62 65 20 |his function be | 00053ac0 75 73 65 64 20 74 6f 20 66 69 6e 64 20 77 68 69 |used to find whi| 00053ad0 63 68 20 6f 75 74 20 6f 66 20 61 20 72 61 6e 67 |ch out of a rang| 00053ae0 65 20 6f 66 20 6f 70 74 69 6f 6e 73 20 69 73 20 |e of options is | 00053af0 63 68 6f 73 65 6e 2e 00 44 41 54 41 39 01 00 00 |chosen..DATA9...| 00053b00 49 63 6f 6e 5f 57 68 69 63 68 52 61 64 69 6f 49 |Icon_WhichRadioI| 00053b10 6e 45 73 67 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |nEsg.Syntax:.int| 00053b20 20 49 63 6f 6e 5f 57 68 69 63 68 52 61 64 69 6f | Icon_WhichRadio| 00053b30 49 6e 45 73 67 20 28 3c 77 69 6e 64 6f 77 5f 68 |InEsg (<window_h| 00053b40 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 69 6e 74 20 |andle> win, int | 00053b50 65 73 67 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |esg);.Header:.<D| 00053b60 65 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 |eskLib:Icon.h=>I| 00053b70 63 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 49 |con>..Returns:.I| 00053b80 63 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 |con number of se| 00053b90 6c 65 63 74 65 64 20 69 63 6f 6e 2e 0a 0a 54 68 |lected icon...Th| 00053ba0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 |is function chec| 00053bb0 6b 73 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 74 |ks through all t| 00053bc0 68 65 20 69 63 6f 6e 73 20 69 6e 20 77 69 6e 64 |he icons in wind| 00053bd0 6f 77 20 2f 77 69 6e 2f 20 77 69 74 68 20 45 53 |ow /win/ with ES| 00053be0 47 20 2f 65 73 67 2f 20 61 6e 64 20 72 65 74 75 |G /esg/ and retu| 00053bf0 72 6e 73 20 74 68 65 20 69 63 6f 6e 20 6e 75 6d |rns the icon num| 00053c00 62 65 72 20 6f 66 20 74 68 65 20 66 69 72 73 74 |ber of the first| 00053c10 20 69 63 6f 6e 20 69 74 20 66 69 6e 64 73 20 77 | icon it finds w| 00053c20 68 69 63 68 20 69 73 20 73 65 6c 65 63 74 65 64 |hich is selected| 00053c30 2e 00 00 00 44 41 54 41 2a 02 00 00 69 63 6f 6e |....DATA*...icon| 00053c40 5f 69 6e 63 64 65 63 62 6c 6f 63 6b 0a 54 68 69 |_incdecblock.Thi| 00053c50 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 00053c60 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 49 63 |d in <DeskLib:Ic| 00053c70 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 20 61 73 20 74 |on.h=>Icon> as t| 00053c80 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 |he following str| 00053c90 75 63 74 75 72 65 2c 20 75 73 65 64 20 66 6f 72 |ucture, used for| 00053ca0 20 68 6f 6c 64 69 6e 67 20 64 61 74 61 20 66 6f | holding data fo| 00053cb0 72 20 49 6e 63 44 65 63 20 68 61 6e 64 6c 65 72 |r IncDec handler| 00053cc0 73 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 5c 7b |s:.{wrap off}.\{| 00053cd0 0a 20 20 20 20 3c 77 69 6e 64 6f 77 5f 68 61 6e |. <window_han| 00053ce0 64 6c 65 3e 09 77 69 6e 64 6f 77 3b 09 09 2f 2a |dle>.window;../*| 00053cf0 20 77 69 6e 64 6f 77 20 68 6f 6c 64 69 6e 67 20 | window holding | 00053d00 69 63 6f 6e 73 20 2a 2f 0a 20 20 20 20 3c 69 63 |icons */. <ic| 00053d10 6f 6e 5f 68 61 6e 64 6c 65 3e 09 74 65 78 74 69 |on_handle>.texti| 00053d20 63 6f 6e 3b 09 2f 2a 20 74 65 78 74 20 69 63 6f |con;./* text ico| 00053d30 6e 20 68 6f 6c 64 69 6e 67 20 69 6e 74 65 67 65 |n holding intege| 00053d40 72 20 2a 2f 0a 20 20 20 20 3c 69 63 6f 6e 5f 68 |r */. <icon_h| 00053d50 61 6e 64 6c 65 3e 09 69 6e 63 72 65 6d 65 6e 74 |andle>.increment| 00053d60 69 63 6f 6e 3b 09 2f 2a 20 69 6e 63 72 65 6d 65 |icon;./* increme| 00053d70 6e 74 20 69 63 6f 6e 20 68 61 6e 64 6c 65 20 2a |nt icon handle *| 00053d80 2f 0a 20 20 20 20 3c 69 63 6f 6e 5f 68 61 6e 64 |/. <icon_hand| 00053d90 6c 65 3e 09 64 65 63 72 65 6d 65 6e 74 69 63 6f |le>.decrementico| 00053da0 6e 3b 09 2f 2a 20 64 65 63 72 65 6d 65 6e 74 20 |n;./* decrement | 00053db0 69 63 6f 6e 20 68 61 6e 64 6c 65 20 2a 2f 0a 20 |icon handle */. | 00053dc0 20 20 20 3c 42 4f 4f 4c 3e 09 09 6c 6f 6f 70 3b | <BOOL>..loop;| 00053dd0 09 09 2f 2a 20 6c 6f 6f 70 20 62 65 79 6f 6e 64 |../* loop beyond| 00053de0 20 6c 69 6d 69 74 73 20 2a 2f 0a 20 20 20 20 75 | limits */. u| 00053df0 6e 73 69 67 6e 65 64 20 69 6e 74 09 73 74 65 70 |nsigned int.step| 00053e00 3b 09 09 2f 2a 20 73 74 65 70 20 74 6f 20 69 6e |;../* step to in| 00053e10 63 2f 64 65 63 20 2a 2f 0a 20 20 20 20 69 6e 74 |c/dec */. int| 00053e20 09 09 09 6d 69 6e 3b 09 09 2f 2a 20 6c 6f 77 65 |...min;../* lowe| 00053e30 72 20 6c 69 6d 69 74 20 2a 2f 0a 20 20 20 20 69 |r limit */. i| 00053e40 6e 74 09 09 09 6d 61 78 3b 09 09 2f 2a 20 75 70 |nt...max;../* up| 00053e50 70 65 72 20 6c 69 6d 69 74 20 2a 2f 0a 7d 00 00 |per limit */.}..| 00053e60 44 41 54 41 82 02 00 00 49 63 6f 6e 5f 49 6e 69 |DATA....Icon_Ini| 00053e70 74 49 6e 63 44 65 63 48 61 6e 64 6c 65 72 0a 53 |tIncDecHandler.S| 00053e80 79 6e 74 61 78 3a 09 3c 69 63 6f 6e 5f 69 6e 63 |yntax:.<icon_inc| 00053e90 64 65 63 62 6c 6f 63 6b 3e 20 2a 49 63 6f 6e 5f |decblock> *Icon_| 00053ea0 49 6e 69 74 49 6e 63 44 65 63 48 61 6e 64 6c 65 |InitIncDecHandle| 00053eb0 72 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 |r(<window_handle| 00053ec0 3e 20 77 69 6e 64 6f 77 2c 20 3c 69 63 6f 6e 5f |> window, <icon_| 00053ed0 68 61 6e 64 6c 65 3e 20 74 65 78 74 69 63 6f 6e |handle> texticon| 00053ee0 2c 20 69 63 6f 6e 5f 68 61 6e 64 6c 65 20 69 6e |, icon_handle in| 00053ef0 63 72 65 6d 65 6e 74 69 63 6f 6e 2c 20 69 63 6f |crementicon, ico| 00053f00 6e 5f 68 61 6e 64 6c 65 20 64 65 63 72 65 6d 65 |n_handle decreme| 00053f10 6e 74 69 63 6f 6e 2c 20 3c 42 4f 4f 4c 3e 20 6c |nticon, <BOOL> l| 00053f20 6f 6f 70 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e |oop, unsigned in| 00053f30 74 20 73 74 65 70 2c 20 69 6e 74 20 6d 69 6e 2c |t step, int min,| 00053f40 20 69 6e 74 20 6d 61 78 2c 69 6e 74 20 73 74 61 | int max,int sta| 00053f50 72 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |rt);.Header:.<De| 00053f60 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 |skLib:Icon.h=>Ic| 00053f70 6f 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 52 65 |on>..Returns:.Re| 00053f80 73 75 6c 74 20 6f 66 20 74 68 65 20 63 6c 61 69 |sult of the clai| 00053f90 6d 73 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |ms..This functio| 00053fa0 6e 20 63 6c 61 69 6d 73 20 68 61 6e 64 6c 65 72 |n claims handler| 00053fb0 20 66 6f 72 20 63 6c 69 63 6b 73 20 6f 6e 20 74 | for clicks on t| 00053fc0 68 65 20 69 63 6f 6e 73 20 2f 69 6e 63 72 65 6d |he icons /increm| 00053fd0 65 6e 74 69 63 6f 6e 2f 20 61 6e 64 20 2f 64 65 |enticon/ and /de| 00053fe0 63 72 65 6d 65 6e 74 69 63 6f 6e 2f 2c 20 77 68 |crementicon/, wh| 00053ff0 69 63 68 20 61 66 66 65 63 74 20 74 68 65 20 69 |ich affect the i| 00054000 63 6f 6e 20 2f 74 65 78 74 69 63 6f 6e 2f 2c 20 |con /texticon/, | 00054010 61 6c 74 65 72 69 6e 67 20 74 68 65 20 69 6e 74 |altering the int| 00054020 65 67 65 72 20 6e 75 6d 62 65 72 20 69 6e 20 69 |eger number in i| 00054030 74 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 2f |t in the range /| 00054040 6d 69 6e 2f 20 74 6f 20 2f 6d 61 78 2f 2e 20 49 |min/ to /max/. I| 00054050 66 20 2f 6c 6f 6f 70 2f 20 69 73 20 3c 54 52 55 |f /loop/ is <TRU| 00054060 45 3e 20 74 68 65 6e 20 74 68 65 20 76 61 6c 75 |E> then the valu| 00054070 65 20 6c 6f 6f 70 73 20 61 72 6f 75 6e 64 20 70 |e loops around p| 00054080 61 73 74 20 74 68 65 20 6c 69 6d 69 74 73 2e 20 |ast the limits. | 00054090 2f 73 74 65 70 2f 20 69 73 20 74 68 65 20 63 68 |/step/ is the ch| 000540a0 61 6e 67 65 20 66 6f 72 20 65 61 63 68 20 63 6c |ange for each cl| 000540b0 69 63 6b 20 6f 6e 20 74 68 65 20 69 63 6f 6e 73 |ick on the icons| 000540c0 20 61 6e 64 20 2f 73 74 61 72 74 2f 20 69 73 20 | and /start/ is | 000540d0 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 |the initial valu| 000540e0 65 2e 00 00 44 41 54 41 4b 01 00 00 49 63 6f 6e |e...DATAK...Icon| 000540f0 5f 52 65 6c 65 61 73 65 49 6e 63 44 65 63 48 61 |_ReleaseIncDecHa| 00054100 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 3c 42 |ndler.Syntax:.<B| 00054110 4f 4f 4c 3e 20 49 63 6f 6e 5f 52 65 6c 65 61 73 |OOL> Icon_Releas| 00054120 65 49 6e 63 44 65 63 48 61 6e 64 6c 65 72 20 28 |eIncDecHandler (| 00054130 3c 69 63 6f 6e 5f 69 6e 63 64 65 63 62 6c 6f 63 |<icon_incdecbloc| 00054140 6b 3e 20 2a 69 6e 63 64 65 63 62 6c 6f 63 6b 29 |k> *incdecblock)| 00054150 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00054160 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e |ib:Icon.h=>Icon>| 00054170 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 |..Returns:.<TRUE| 00054180 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 0a |> if successful.| 00054190 0a 47 69 76 65 6e 20 74 68 65 20 62 6c 6f 63 6b |.Given the block| 000541a0 20 70 72 65 76 69 6f 75 73 6c 79 20 72 65 74 75 | previously retu| 000541b0 72 6e 65 64 20 62 79 20 3c 49 63 6f 6e 5f 49 6e |rned by <Icon_In| 000541c0 69 74 49 6e 63 44 65 63 48 61 6e 64 6c 65 72 3e |itIncDecHandler>| 000541d0 2c 20 74 68 69 73 20 72 65 6c 65 61 73 65 73 20 |, this releases | 000541e0 74 68 65 20 68 61 6e 64 6c 65 72 73 20 69 6e 73 |the handlers ins| 000541f0 74 61 6c 6c 65 64 20 62 79 20 74 68 61 74 20 66 |talled by that f| 00054200 75 6e 63 74 69 6f 6e 20 61 6e 64 20 66 72 65 65 |unction and free| 00054210 73 20 74 68 65 20 6d 65 6d 6f 72 79 20 75 73 65 |s the memory use| 00054220 64 20 62 79 20 74 68 65 20 62 6c 6f 63 6b 2e 00 |d by the block..| 00054230 44 41 54 41 89 01 00 00 49 63 6f 6e 5f 41 6c 74 |DATA....Icon_Alt| 00054240 65 72 56 61 6c 69 64 61 74 69 6f 6e 0a 53 79 6e |erValidation.Syn| 00054250 74 61 78 3a 09 76 6f 69 64 20 49 63 6f 6e 5f 41 |tax:.void Icon_A| 00054260 6c 74 65 72 56 61 6c 69 64 61 74 69 6f 6e 20 28 |lterValidation (| 00054270 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 00054280 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c |win, <icon_handl| 00054290 65 3e 20 69 63 6f 6e 2c 20 63 68 61 72 20 2a 76 |e> icon, char *v| 000542a0 61 6c 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |al);.Header:.<De| 000542b0 73 6b 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 |skLib:Icon.h=>Ic| 000542c0 6f 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |on>..This functi| 000542d0 6f 6e 20 61 6c 74 65 72 73 20 74 68 65 20 76 61 |on alters the va| 000542e0 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 20 |lidation string | 000542f0 6f 66 20 74 68 65 20 67 69 76 65 6e 20 69 63 6f |of the given ico| 00054300 6e 20 74 6f 20 74 68 61 74 20 63 6f 6e 74 61 69 |n to that contai| 00054310 6e 65 64 20 69 6e 20 2f 76 61 6c 2f 20 61 6e 64 |ned in /val/ and| 00054320 20 72 65 64 72 61 77 73 20 74 68 65 20 69 63 6f | redraws the ico| 00054330 6e 20 28 74 6f 20 61 63 63 6f 75 6e 74 20 66 6f |n (to account fo| 00054340 72 20 62 6f 72 64 65 72 20 74 79 70 65 20 63 68 |r border type ch| 00054350 61 6e 67 65 73 20 65 74 63 29 2e 20 49 66 20 74 |anges etc). If t| 00054360 68 65 20 6e 65 77 20 76 61 6c 69 64 61 74 69 6f |he new validatio| 00054370 6e 20 73 74 72 69 6e 67 20 69 73 20 62 69 67 67 |n string is bigg| 00054380 65 72 20 74 68 61 6e 20 74 68 65 20 73 70 61 63 |er than the spac| 00054390 65 20 75 73 65 64 20 62 79 20 74 68 65 20 6f 6c |e used by the ol| 000543a0 64 20 6f 6e 65 2c 20 79 6f 75 27 72 65 20 69 6e |d one, you're in| 000543b0 20 74 72 6f 75 62 6c 65 2e 00 00 00 44 41 54 41 | trouble....DATA| 000543c0 8c 00 00 00 49 63 6f 6e 5f 42 75 74 74 6f 6e 49 |....Icon_ButtonI| 000543d0 73 48 65 6c 64 0a 53 79 6e 74 61 78 3a 09 3c 42 |sHeld.Syntax:.<B| 000543e0 4f 4f 4c 3e 20 49 63 6f 6e 5f 42 75 74 74 6f 6e |OOL> Icon_Button| 000543f0 49 73 48 65 6c 64 20 28 76 6f 69 64 29 3b 0a 48 |IsHeld (void);.H| 00054400 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00054410 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 0a 52 |Icon.h=>Icon>..R| 00054420 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 |eturns:.<TRUE> i| 00054430 66 20 61 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e |f a mouse button| 00054440 20 69 73 20 64 6f 77 6e 44 49 52 24 4c 00 00 00 | is downDIR$L...| 00054450 4c 00 00 00 94 44 05 00 46 ff ff ff 57 de 37 26 |L....D..F...W.7&| 00054460 ba 00 00 00 13 00 00 00 00 00 00 00 4c 45 46 54 |............LEFT| 00054470 00 00 00 00 50 45 05 00 46 ff ff ff 39 db 37 26 |....PE..F...9.7&| 00054480 bc 00 00 00 13 00 00 00 00 00 00 00 52 49 47 48 |............RIGH| 00054490 54 00 00 00 44 41 54 41 ba 00 00 00 69 63 6f 6e |T...DATA....icon| 000544a0 62 61 72 5f 4c 45 46 54 0a 54 68 69 73 20 6d 61 |bar_LEFT.This ma| 000544b0 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 000544c0 6e 20 3c 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e |n <Wimp.h=>Wimp>| 000544d0 20 61 73 20 61 20 6d 61 63 72 6f 20 63 6f 6e 74 | as a macro cont| 000544e0 61 69 6e 69 6e 67 20 74 68 65 20 77 69 6e 64 6f |aining the windo| 000544f0 77 20 68 61 6e 64 6c 65 20 6f 66 20 74 68 65 20 |w handle of the | 00054500 6c 65 66 74 20 73 69 64 65 20 6f 66 20 74 68 65 |left side of the| 00054510 20 69 63 6f 6e 20 62 61 72 2c 20 61 73 20 75 73 | icon bar, as us| 00054520 65 64 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67 |ed when creating| 00054530 20 61 6e 20 69 63 6f 6e 2e 20 49 74 20 69 73 20 | an icon. It is | 00054540 64 65 66 69 6e 65 64 20 61 73 20 2d 32 2e 00 00 |defined as -2...| 00054550 44 41 54 41 bc 00 00 00 69 63 6f 6e 62 61 72 5f |DATA....iconbar_| 00054560 52 49 47 48 54 0a 54 68 69 73 20 6d 61 63 72 6f |RIGHT.This macro| 00054570 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00054580 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 |Wimp.h=>Wimp> as| 00054590 20 61 20 6d 61 63 72 6f 20 63 6f 6e 74 61 69 6e | a macro contain| 000545a0 69 6e 67 20 74 68 65 20 77 69 6e 64 6f 77 20 68 |ing the window h| 000545b0 61 6e 64 6c 65 20 6f 66 20 74 68 65 20 72 69 67 |andle of the rig| 000545c0 68 74 20 73 69 64 65 20 6f 66 20 74 68 65 20 69 |ht side of the i| 000545d0 63 6f 6e 20 62 61 72 2c 20 61 73 20 75 73 65 64 |con bar, as used| 000545e0 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67 20 61 | when creating a| 000545f0 6e 20 69 63 6f 6e 2e 20 49 74 20 69 73 20 64 65 |n icon. It is de| 00054600 66 69 6e 65 64 20 61 73 20 2d 31 2e 44 41 54 41 |fined as -1.DATA| 00054610 83 02 00 00 69 66 0a 54 68 69 73 20 63 6f 6d 6d |....if.This comm| 00054620 61 6e 64 20 69 73 20 74 68 65 20 73 61 6d 65 20 |and is the same | 00054630 69 6e 20 6a 75 73 74 20 61 62 6f 75 74 20 65 76 |in just about ev| 00054640 65 72 79 20 63 6f 6d 70 75 74 65 72 20 6c 61 6e |ery computer lan| 00054650 67 75 61 67 65 20 69 6e 76 65 6e 74 65 64 2e 20 |guage invented. | 00054660 49 74 20 68 61 73 20 74 68 65 20 66 6f 72 6d 3a |It has the form:| 00054670 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 |..{fCode;align c| 00054680 65 6e 74 72 65 7d 69 66 20 28 5c 3c 63 6f 6e 64 |entre}if (\<cond| 00054690 69 74 69 6f 6e 3e 29 20 5c 3c 73 74 61 74 65 6d |ition>) \<statem| 000546a0 65 6e 74 31 3e 3b 20 65 6c 73 65 20 5c 3c 73 74 |ent1>; else \<st| 000546b0 61 74 65 6d 65 6e 74 32 3e 3b 7b 66 3b 61 6c 69 |atement2>;{f;ali| 000546c0 67 6e 7d 0a 0a 5c 3c 63 6f 6e 64 69 74 69 6f 6e |gn}..\<condition| 000546d0 3e 20 69 73 20 65 76 61 6c 75 61 74 65 64 2e 20 |> is evaluated. | 000546e0 49 66 20 69 74 20 69 73 20 6e 6f 6e 2d 7a 65 72 |If it is non-zer| 000546f0 6f 20 28 74 72 75 65 29 20 74 68 65 6e 20 73 74 |o (true) then st| 00054700 61 74 65 6d 65 6e 74 31 20 69 73 20 65 78 65 63 |atement1 is exec| 00054710 75 74 65 64 2e 20 49 66 20 69 74 20 69 73 20 7a |uted. If it is z| 00054720 65 72 6f 20 28 66 61 6c 73 65 29 20 74 68 65 6e |ero (false) then| 00054730 20 73 74 61 74 65 6d 65 6e 74 32 20 69 73 20 65 | statement2 is e| 00054740 78 65 63 75 74 65 64 2e 0a 0a 42 6f 74 68 20 73 |xecuted...Both s| 00054750 74 61 74 65 6d 65 6e 74 73 20 6d 61 79 20 62 65 |tatements may be| 00054760 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d | compound statem| 00054770 65 6e 74 73 20 69 65 20 73 65 76 65 72 61 6c 20 |ents ie several | 00054780 73 74 61 74 65 6d 65 6e 74 73 20 65 6e 63 6c 6f |statements enclo| 00054790 73 65 64 20 69 6e 20 5c 7b 7d 2c 20 69 6e 20 74 |sed in \{}, in t| 000547a0 68 61 74 20 63 61 73 65 20 74 68 65 79 20 77 69 |hat case they wi| 000547b0 6c 6c 20 6e 6f 74 20 62 65 20 66 6f 6c 6c 6f 77 |ll not be follow| 000547c0 65 64 20 62 79 20 73 65 6d 69 63 6f 6c 6f 6e 73 |ed by semicolons| 000547d0 2e 0a 0a 65 67 0a 23 66 43 6f 64 65 0a 20 20 20 |...eg.#fCode. | 000547e0 20 69 66 20 28 61 3d 3d 27 4c 27 29 20 3c 70 75 | if (a=='L') <pu| 000547f0 74 73 3e 28 22 4c 6f 61 64 22 29 3b 0a 20 20 20 |ts>("Load");. | 00054800 20 65 6c 73 65 20 69 66 20 28 61 3d 3d 27 53 27 | else if (a=='S'| 00054810 29 20 70 75 74 73 28 22 53 61 76 65 22 29 3b 0a |) puts("Save");.| 00054820 20 20 20 20 65 6c 73 65 20 70 75 74 73 28 22 44 | else puts("D| 00054830 6f 6e 27 74 20 6b 6e 6f 77 22 29 3b 0a 23 66 0a |on't know");.#f.| 00054840 0a 54 68 69 73 20 70 72 69 6e 74 73 20 94 4c 6f |.This prints .Lo| 00054850 61 64 95 20 69 66 20 61 20 69 73 20 90 4c 91 2c |ad. if a is .L.,| 00054860 20 94 53 61 76 65 95 20 69 66 20 61 20 69 73 20 | .Save. if a is | 00054870 90 53 91 2c 20 6f 72 20 94 44 6f 6e 91 74 20 6b |.S., or .Don.t k| 00054880 6e 6f 77 95 20 6f 74 68 65 72 77 69 73 65 2e 00 |now. otherwise..| 00054890 44 49 52 24 2c 00 00 00 2c 00 00 00 bc 48 05 00 |DIR$,...,....H..| 000548a0 46 fd ff ff 80 6a e5 22 ac 01 00 00 13 00 00 00 |F....j."........| 000548b0 00 00 00 00 21 52 6f 6f 74 00 00 00 44 41 54 41 |....!Root...DATA| 000548c0 ac 01 00 00 23 69 66 0a 54 68 69 73 20 64 69 72 |....#if.This dir| 000548d0 65 63 74 69 76 65 20 68 61 73 20 74 68 65 20 66 |ective has the f| 000548e0 6f 72 6d 3a 0a 0a 23 66 43 6f 64 65 0a 20 20 20 |orm:..#fCode. | 000548f0 20 23 69 66 20 5c 3c 65 78 70 72 65 73 73 69 6f | #if \<expressio| 00054900 6e 3e 0a 20 20 20 20 20 20 20 5c 3c 73 74 61 74 |n>. \<stat| 00054910 65 6d 65 6e 74 73 31 3e 3b 0a 20 20 20 20 3c 23 |ements1>;. <#| 00054920 65 6c 73 65 3d 3e 65 6c 73 65 5f 3e 0a 20 20 20 |else=>else_>. | 00054930 20 20 20 20 5c 3c 73 74 61 74 65 6d 65 6e 74 73 | \<statements| 00054940 32 3e 3b 0a 20 20 20 20 23 65 6e 64 69 66 0a 23 |2>;. #endif.#| 00054950 66 0a 0a 5c 3c 65 78 70 72 65 73 73 69 6f 6e 3e |f..\<expression>| 00054960 20 69 73 20 61 6e 79 20 63 6f 6e 73 74 61 6e 74 | is any constant| 00054970 20 65 78 70 72 65 73 73 69 6f 6e 20 75 73 69 6e | expression usin| 00054980 67 20 74 68 65 20 6e 6f 72 6d 61 6c 20 6f 70 65 |g the normal ope| 00054990 72 61 74 6f 72 73 2e 20 49 74 20 6d 61 79 20 6f |rators. It may o| 000549a0 6e 6c 79 20 69 6e 76 6f 6c 76 65 20 63 6f 6e 73 |nly involve cons| 000549b0 74 61 6e 74 20 76 61 6c 75 65 73 20 28 6d 61 63 |tant values (mac| 000549c0 72 6f 73 20 61 6e 64 20 6e 75 6d 62 65 72 73 29 |ros and numbers)| 000549d0 2c 20 6e 6f 74 20 76 61 72 69 61 62 6c 65 73 20 |, not variables | 000549e0 6f 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 49 |or functions...I| 000549f0 66 20 69 74 20 65 76 61 6c 75 61 74 65 73 20 74 |f it evaluates t| 00054a00 6f 20 31 20 28 74 72 75 65 29 20 74 68 65 6e 20 |o 1 (true) then | 00054a10 5c 3c 73 74 61 74 65 6d 65 6e 74 73 31 3e 20 69 |\<statements1> i| 00054a20 73 20 63 6f 6d 70 69 6c 65 64 20 65 6c 73 65 20 |s compiled else | 00054a30 5c 3c 73 74 61 74 65 6d 65 6e 74 73 32 3e 20 69 |\<statements2> i| 00054a40 73 20 63 6f 6d 70 69 6c 65 64 2e 20 54 68 65 20 |s compiled. The | 00054a50 27 65 6c 73 65 27 20 70 61 72 74 20 69 73 20 6f |'else' part is o| 00054a60 70 74 69 6f 6e 61 6c 2e 44 41 54 41 b6 01 00 00 |ptional.DATA....| 00054a70 23 69 66 64 65 66 0a 54 68 69 73 20 64 69 72 65 |#ifdef.This dire| 00054a80 63 74 69 76 65 20 74 65 73 74 73 20 69 66 20 61 |ctive tests if a| 00054a90 20 70 61 72 74 69 63 75 6c 61 72 20 6d 61 63 72 | particular macr| 00054aa0 6f 20 69 73 20 64 65 66 69 6e 65 64 20 77 69 74 |o is defined wit| 00054ab0 68 20 3c 23 64 65 66 69 6e 65 3d 3e 64 65 66 69 |h <#define=>defi| 00054ac0 6e 65 3e 2e 20 49 74 20 68 61 73 20 74 68 65 20 |ne>. It has the | 00054ad0 66 6f 72 6d 3a 0a 0a 23 66 43 6f 64 65 0a 20 20 |form:..#fCode. | 00054ae0 20 20 23 69 66 64 65 66 20 5c 3c 6d 61 63 72 6f | #ifdef \<macro| 00054af0 6e 61 6d 65 3e 0a 20 20 20 20 20 20 20 20 5c 3c |name>. \<| 00054b00 73 74 61 74 65 6d 65 6e 74 73 31 3e 0a 20 20 20 |statements1>. | 00054b10 20 23 3c 65 6c 73 65 3d 3e 65 6c 73 65 5f 3e 0a | #<else=>else_>.| 00054b20 20 20 20 20 20 20 20 20 5c 3c 73 74 61 74 65 6d | \<statem| 00054b30 65 6e 74 73 32 3e 0a 20 20 20 20 23 65 6e 64 69 |ents2>. #endi| 00054b40 66 0a 23 66 0a 0a 49 66 20 5c 3c 6d 61 63 72 6f |f.#f..If \<macro| 00054b50 6e 61 6d 65 3e 20 69 73 20 64 65 66 69 6e 65 64 |name> is defined| 00054b60 2c 20 74 68 65 6e 20 5c 3c 73 74 61 74 65 6d 65 |, then \<stateme| 00054b70 6e 74 73 31 3e 20 69 73 20 63 6f 6d 70 69 6c 65 |nts1> is compile| 00054b80 64 2e 20 54 68 65 20 27 23 65 6c 73 65 27 20 62 |d. The '#else' b| 00054b90 69 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c 2e 20 |it is optional. | 00054ba0 49 66 20 69 74 20 69 73 20 70 72 65 73 65 6e 74 |If it is present| 00054bb0 2c 20 74 68 65 20 69 66 20 5c 3c 6d 61 63 72 6f |, the if \<macro| 00054bc0 6e 61 6d 65 3e 20 69 73 20 6e 6f 74 20 64 65 66 |name> is not def| 00054bd0 69 6e 65 64 2c 20 5c 3c 73 74 61 74 65 6d 65 6e |ined, \<statemen| 00054be0 74 73 32 3e 20 69 73 20 63 6f 6d 70 69 6c 65 64 |ts2> is compiled| 00054bf0 2e 0a 0a 41 66 74 65 72 20 27 23 65 6e 64 69 66 |...After '#endif| 00054c00 27 2c 20 6e 6f 72 6d 61 6c 20 63 6f 6d 70 69 6c |', normal compil| 00054c10 61 74 69 6f 6e 20 72 65 73 75 6d 65 73 2e 00 00 |ation resumes...| 00054c20 44 41 54 41 bc 01 00 00 23 69 66 6e 64 65 66 0a |DATA....#ifndef.| 00054c30 54 68 69 73 20 64 69 72 65 63 74 69 76 65 20 74 |This directive t| 00054c40 65 73 74 73 20 69 66 20 61 20 70 61 72 74 69 63 |ests if a partic| 00054c50 75 6c 61 72 20 6d 61 63 72 6f 20 69 73 20 6e 6f |ular macro is no| 00054c60 74 20 64 65 66 69 6e 65 64 20 77 69 74 68 20 3c |t defined with <| 00054c70 23 64 65 66 69 6e 65 3d 3e 64 65 66 69 6e 65 3e |#define=>define>| 00054c80 2e 20 49 74 20 68 61 73 20 74 68 65 20 66 6f 72 |. It has the for| 00054c90 6d 3a 0a 0a 23 66 43 6f 64 65 0a 20 20 20 20 23 |m:..#fCode. #| 00054ca0 69 66 6e 64 65 66 20 5c 3c 6d 61 63 72 6f 6e 61 |ifndef \<macrona| 00054cb0 6d 65 3e 0a 20 20 20 20 20 20 20 20 5c 3c 73 74 |me>. \<st| 00054cc0 61 74 65 6d 65 6e 74 73 31 3e 0a 20 20 20 20 3c |atements1>. <| 00054cd0 23 65 6c 73 65 3d 3e 65 6c 73 65 5f 3e 0a 20 20 |#else=>else_>. | 00054ce0 20 20 20 20 20 20 5c 3c 73 74 61 74 65 6d 65 6e | \<statemen| 00054cf0 74 73 32 3e 0a 20 20 20 20 23 65 6e 64 69 66 0a |ts2>. #endif.| 00054d00 23 66 0a 0a 49 66 20 5c 3c 6d 61 63 72 6f 6e 61 |#f..If \<macrona| 00054d10 6d 65 3e 20 69 73 20 6e 6f 74 20 64 65 66 69 6e |me> is not defin| 00054d20 65 64 2c 20 74 68 65 6e 20 5c 3c 73 74 61 74 65 |ed, then \<state| 00054d30 6d 65 6e 74 73 31 3e 20 69 73 20 63 6f 6d 70 69 |ments1> is compi| 00054d40 6c 65 64 2e 20 54 68 65 20 27 23 65 6c 73 65 27 |led. The '#else'| 00054d50 20 62 69 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c | bit is optional| 00054d60 2e 20 49 66 20 69 74 20 69 73 20 70 72 65 73 65 |. If it is prese| 00054d70 6e 74 2c 20 74 68 65 20 69 66 20 5c 3c 6d 61 63 |nt, the if \<mac| 00054d80 72 6f 6e 61 6d 65 3e 20 69 73 20 64 65 66 69 6e |roname> is defin| 00054d90 65 64 2c 20 5c 3c 73 74 61 74 65 6d 65 6e 74 73 |ed, \<statements| 00054da0 32 3e 20 69 73 20 63 6f 6d 70 69 6c 65 64 2e 0a |2> is compiled..| 00054db0 0a 41 66 74 65 72 20 27 23 65 6e 64 69 66 27 2c |.After '#endif',| 00054dc0 20 6e 6f 72 6d 61 6c 20 63 6f 6d 70 69 6c 61 74 | normal compilat| 00054dd0 69 6f 6e 20 72 65 73 75 6d 65 73 2e 44 41 54 41 |ion resumes.DATA| 00054de0 29 02 00 00 49 4d 50 4f 52 54 20 3c 6c 61 62 65 |)...IMPORT <labe| 00054df0 6c 3e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 72 |l>.This allows r| 00054e00 65 66 65 72 65 6e 63 65 73 20 74 6f 20 61 20 6c |eferences to a l| 00054e10 61 62 65 6c 20 77 68 69 63 68 20 69 73 20 64 65 |abel which is de| 00054e20 66 69 6e 65 64 20 65 78 74 65 72 6e 61 6c 6c 79 |fined externally| 00054e30 20 69 65 20 69 6e 20 61 20 64 69 66 66 65 72 65 | ie in a differe| 00054e40 6e 74 20 66 69 6c 65 2e 0a 0a 65 67 0a 0a 23 66 |nt file...eg..#f| 00054e50 43 6f 64 65 0a 20 20 20 20 20 20 23 70 72 61 67 |Code. #prag| 00054e60 6d 61 20 61 73 6d 0a 0a 20 20 20 20 20 20 20 20 |ma asm.. | 00054e70 20 20 49 4d 50 4f 52 54 20 70 75 74 73 0a 20 20 | IMPORT puts. | 00054e80 20 20 20 20 2e 70 72 69 6e 74 68 65 6c 6c 6f 0a | .printhello.| 00054e90 20 20 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 | STMFD | 00054ea0 20 73 70 21 2c 5c 7b 72 30 2d 72 31 32 2c 6c 6b | sp!,\{r0-r12,lk| 00054eb0 7d 0a 20 20 20 20 20 20 20 20 20 20 3c 41 44 52 |}. <ADR| 00054ec0 3e 20 20 20 20 61 31 2c 73 74 72 69 6e 67 0a 20 |> a1,string. | 00054ed0 20 20 20 20 20 20 20 20 20 42 4c 20 20 20 20 20 | BL | 00054ee0 3c 70 75 74 73 3e 0a 20 20 20 20 20 20 20 20 20 |<puts>. | 00054ef0 20 4c 44 4d 46 44 20 20 73 70 21 2c 5c 7b 72 30 | LDMFD sp!,\{r0| 00054f00 2d 72 31 32 2c 70 63 7d 5e 0a 20 20 20 20 20 20 |-r12,pc}^. | 00054f10 2e 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 |.string. | 00054f20 20 20 3c 44 43 42 3e 20 20 20 20 22 48 65 6c 6c | <DCB> "Hell| 00054f30 6f 20 57 6f 72 64 22 2c 30 0a 0a 20 20 20 20 20 |o Word",0.. | 00054f40 20 23 70 72 61 67 6d 61 20 65 6e 64 61 73 6d 0a | #pragma endasm.| 00054f50 0a 20 20 20 20 20 20 76 6f 69 64 20 6d 61 69 6e |. void main| 00054f60 20 28 76 6f 69 64 29 0a 20 20 20 20 20 20 5c 7b | (void). \{| 00054f70 0a 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 |. print| 00054f80 68 65 6c 6c 6f 28 29 3b 0a 20 20 20 20 20 20 7d |hello();. }| 00054f90 0a 23 66 0a 0a 54 68 69 73 20 70 72 6f 67 72 61 |.#f..This progra| 00054fa0 6d 20 61 62 6f 76 65 20 70 72 69 6e 74 73 20 94 |m above prints .| 00054fb0 48 65 6c 6c 6f 20 57 6f 72 6c 64 95 20 6f 6e 20 |Hello World. on | 00054fc0 74 68 65 0a 73 63 72 65 65 6e 2c 20 75 73 69 6e |the.screen, usin| 00054fd0 67 20 3c 70 75 74 73 3e 20 77 68 69 63 68 20 69 |g <puts> which i| 00054fe0 73 20 69 6d 70 6f 72 74 65 64 20 66 72 6f 6d 20 |s imported from | 00054ff0 74 68 65 0a 72 75 6e 20 74 69 6d 65 20 6c 69 62 |the.run time lib| 00055000 72 61 72 79 2e 00 00 00 44 41 54 41 1e 03 00 00 |rary....DATA....| 00055010 20 23 69 6e 63 6c 75 64 65 0a 54 68 69 73 20 69 | #include.This i| 00055020 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 |s followed by a | 00055030 66 69 6c 65 6e 61 6d 65 2c 20 65 69 74 68 65 72 |filename, either| 00055040 20 69 6e 20 61 6e 67 6c 65 20 62 72 61 63 6b 65 | in angle bracke| 00055050 74 73 20 5c 3c 3e 20 6f 72 20 69 6e 20 71 75 6f |ts \<> or in quo| 00055060 74 65 20 6d 61 72 6b 73 20 22 22 2e 20 54 68 65 |te marks "". The| 00055070 20 6e 61 6d 65 64 20 66 69 6c 65 20 69 73 20 69 | named file is i| 00055080 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 |nserted into the| 00055090 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 74 20 | source code at | 000550a0 74 68 69 73 20 70 6f 69 6e 74 2e 20 54 68 69 73 |this point. This| 000550b0 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 | is normally use| 000550c0 64 20 74 6f 20 69 6e 73 65 72 74 20 73 6f 2d 63 |d to insert so-c| 000550d0 61 6c 6c 65 64 20 22 68 65 61 64 65 72 20 66 69 |alled "header fi| 000550e0 6c 65 73 22 20 77 68 69 63 68 20 63 6f 6e 74 61 |les" which conta| 000550f0 69 6e 20 65 78 74 65 72 6e 61 6c 20 66 75 6e 63 |in external func| 00055100 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e |tion declaration| 00055110 73 2e 20 49 74 20 69 73 20 74 68 65 73 65 20 68 |s. It is these h| 00055120 65 61 64 65 72 20 66 69 6c 65 73 20 77 68 69 63 |eader files whic| 00055130 68 20 61 72 65 20 74 68 65 20 73 75 62 6a 65 63 |h are the subjec| 00055140 74 20 6f 66 20 6d 6f 73 74 20 6f 66 20 74 68 69 |t of most of thi| 00055150 73 20 68 65 6c 70 21 0a 0a 65 67 2e 09 5c 23 69 |s help!..eg..\#i| 00055160 6e 63 6c 75 64 65 20 5c 3c 3c 73 74 64 69 6f 2e |nclude \<<stdio.| 00055170 68 3d 3e 73 74 64 69 6f 3e 3e 0a 09 5c 23 69 6e |h=>stdio>>..\#in| 00055180 63 6c 75 64 65 20 22 3c 44 65 73 6b 4c 69 62 3a |clude "<DeskLib:| 00055190 45 76 65 6e 74 2e 68 3d 3e 45 76 65 6e 74 3e 22 |Event.h=>Event>"| 000551a0 0a 0a 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 |..The difference| 000551b0 20 62 65 74 77 65 65 6e 20 74 68 65 20 62 72 61 | between the bra| 000551c0 63 6b 65 74 73 20 61 6e 64 20 71 75 6f 74 65 20 |ckets and quote | 000551d0 6d 61 72 6b 73 20 69 73 20 74 68 61 74 20 74 68 |marks is that th| 000551e0 6f 73 65 20 69 6e 20 71 75 6f 74 65 20 6d 61 72 |ose in quote mar| 000551f0 6b 73 20 61 72 65 3a 0a 0a 23 54 61 62 0a 8f 09 |ks are:..#Tab...| 00055200 53 65 61 72 63 68 65 64 20 66 6f 72 20 69 6e 20 |Searched for in | 00055210 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 |the same place a| 00055220 73 20 79 6f 75 72 20 73 6f 75 72 63 65 20 66 69 |s your source fi| 00055230 6c 65 2e 20 65 67 20 69 66 20 79 6f 75 72 20 73 |le. eg if your s| 00055240 6f 75 72 63 65 20 66 69 6c 65 20 69 73 20 22 53 |ource file is "S| 00055250 6f 75 72 63 65 2e 63 2e 70 72 6f 67 22 2c 20 74 |ource.c.prog", t| 00055260 68 65 6e 20 22 53 6f 75 72 63 65 2e 68 22 20 69 |hen "Source.h" i| 00055270 73 20 73 65 61 72 63 68 65 64 2e 0a 8f 09 49 6e |s searched....In| 00055280 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 4d 61 |cluded in the Ma| 00055290 6b 65 20 66 69 6c 65 20 64 65 70 65 6e 64 65 6e |ke file dependen| 000552a0 63 79 20 6c 69 73 74 20 62 79 20 27 43 72 65 61 |cy list by 'Crea| 000552b0 74 65 27 20 28 45 61 73 79 20 43 29 2e 0a 0a 42 |te' (Easy C)...B| 000552c0 6f 74 68 20 74 79 70 65 73 20 61 72 65 20 73 65 |oth types are se| 000552d0 61 72 63 68 65 64 20 66 6f 72 3a 0a 0a 8f 09 41 |arched for:....A| 000552e0 74 20 74 68 65 20 70 61 74 68 20 73 70 65 63 69 |t the path speci| 000552f0 66 69 65 64 20 77 68 65 6e 20 63 6f 6d 70 69 6c |fied when compil| 00055300 69 6e 67 2e 0a 8f 09 49 6e 20 74 68 65 20 73 79 |ing....In the sy| 00055310 73 74 65 6d 20 68 65 61 64 65 72 20 66 69 6c 65 |stem header file| 00055320 20 70 61 74 68 2e 00 00 44 49 52 24 44 00 00 00 | path...DIR$D...| 00055330 44 00 00 00 6c 53 05 00 46 ff ff ff c7 0a bd 22 |D...lS..F......"| 00055340 a7 00 00 00 13 00 00 00 00 00 00 00 4d 41 58 00 |............MAX.| 00055350 14 54 05 00 46 ff ff ff 68 07 bd 22 a8 00 00 00 |.T..F...h.."....| 00055360 13 00 00 00 00 00 00 00 4d 49 4e 00 44 41 54 41 |........MIN.DATA| 00055370 a7 00 00 00 49 4e 54 5f 4d 41 58 0a 54 68 69 73 |....INT_MAX.This| 00055380 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 00055390 64 20 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e 20 |d in <limits.h> | 000553a0 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 74 |and represents t| 000553b0 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 |he maximum value| 000553c0 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 74 | which can be st| 000553d0 6f 72 65 64 20 69 6e 20 61 6e 20 69 6e 74 2e 20 |ored in an int. | 000553e0 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 20 |In Easy C it is | 000553f0 64 65 66 69 6e 65 64 20 61 73 20 30 78 37 66 66 |defined as 0x7ff| 00055400 66 66 66 66 66 20 28 32 31 34 37 34 38 33 36 34 |fffff (214748364| 00055410 37 29 2e 00 44 41 54 41 a8 00 00 00 49 4e 54 5f |7)..DATA....INT_| 00055420 4d 49 4e 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |MIN.This macro i| 00055430 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6c 69 |s defined in <li| 00055440 6d 69 74 73 2e 68 3e 20 61 6e 64 20 72 65 70 72 |mits.h> and repr| 00055450 65 73 65 6e 74 73 20 74 68 65 20 6d 69 6e 69 6d |esents the minim| 00055460 75 6d 20 76 61 6c 75 65 20 77 68 69 63 68 20 63 |um value which c| 00055470 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 |an be stored in | 00055480 61 6e 20 69 6e 74 2e 20 49 6e 20 45 61 73 79 20 |an int. In Easy | 00055490 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 |C it is defined | 000554a0 61 73 20 30 78 38 30 30 30 30 30 30 30 20 28 2d |as 0x80000000 (-| 000554b0 32 31 34 37 34 38 33 36 34 38 29 2e 44 41 54 41 |2147483648).DATA| 000554c0 34 02 00 00 54 69 6d 73 4c 69 62 3a 49 6e 74 65 |4...TimsLib:Inte| 000554d0 72 66 61 63 65 2e 68 0a 54 68 69 73 20 68 65 61 |rface.h.This hea| 000554e0 64 65 72 20 64 65 66 69 6e 65 73 20 66 75 6e 63 |der defines func| 000554f0 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 73 |tion-like macros| 00055500 20 66 6f 72 20 61 63 63 65 73 73 69 6e 67 20 73 | for accessing s| 00055510 6f 6d 65 20 49 6e 74 65 72 66 61 63 65 20 4d 61 |ome Interface Ma| 00055520 6e 61 67 65 72 20 53 57 49 73 2e 0a 0a 46 75 6e |nager SWIs...Fun| 00055530 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f |ction-like macro| 00055540 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d |s:..#table colum| 00055550 6e 73 20 32 0a 3c 49 6e 74 65 72 66 61 63 65 5f |ns 2.<Interface_| 00055560 53 6c 61 62 42 75 74 74 6f 6e 3e 0a 3c 49 6e 74 |SlabButton>.<Int| 00055570 65 72 66 61 63 65 5f 52 65 6e 64 65 72 33 64 57 |erface_Render3dW| 00055580 69 6e 64 6f 77 3e 0a 3c 49 6e 74 65 72 66 61 63 |indow>.<Interfac| 00055590 65 5f 49 6e 69 74 69 61 6c 69 73 65 3e 0a 3c 49 |e_Initialise>.<I| 000555a0 6e 74 65 72 66 61 63 65 5f 43 6c 6f 73 65 64 6f |nterface_Closedo| 000555b0 77 6e 3e 0a 3c 49 6e 74 65 72 66 61 63 65 5f 53 |wn>.<Interface_S| 000555c0 65 74 57 6f 72 6b 61 72 65 61 50 6f 69 6e 74 65 |etWorkareaPointe| 000555d0 72 3e 0a 3c 49 6e 74 65 72 66 61 63 65 5f 52 65 |r>.<Interface_Re| 000555e0 6d 6f 76 65 57 6f 72 6b 61 72 65 61 50 6f 69 6e |moveWorkareaPoin| 000555f0 74 65 72 3e 0a 3c 49 6e 74 65 72 66 61 63 65 5f |ter>.<Interface_| 00055600 50 6f 6c 6c 3e 0a 3c 49 6e 74 65 72 66 61 63 65 |Poll>.<Interface| 00055610 5f 53 65 6e 64 48 65 6c 70 3e 0a 3c 49 6e 74 65 |_SendHelp>.<Inte| 00055620 72 66 61 63 65 5f 50 6c 6f 74 33 64 49 63 6f 6e |rface_Plot3dIcon| 00055630 3e 0a 3c 49 6e 74 65 72 66 61 63 65 5f 42 6f 75 |>.<Interface_Bou| 00055640 6e 64 69 6e 67 42 6f 78 3e 0a 23 65 6e 64 74 61 |ndingBox>.#endta| 00055650 62 6c 65 0a 0a 54 79 70 65 3a 0a 0a 7b 61 6c 69 |ble..Type:..{ali| 00055660 67 6e 20 63 65 6e 74 72 65 7d 3c 77 69 6d 70 5f |gn centre}<wimp_| 00055670 70 6f 69 6e 74 65 72 3e 7b 61 6c 69 67 6e 7d 0a |pointer>{align}.| 00055680 0a 49 6e 74 65 72 66 61 63 65 20 4d 61 6e 61 67 |.Interface Manag| 00055690 65 72 20 69 73 20 61 20 50 44 20 6d 6f 64 75 6c |er is a PD modul| 000556a0 65 20 62 79 20 53 69 6d 6f 6e 20 48 75 6e 74 69 |e by Simon Hunti| 000556b0 6e 67 64 6f 6e 20 77 68 69 63 68 20 70 72 6f 76 |ngdon which prov| 000556c0 69 64 65 73 20 6d 61 6e 79 20 75 73 65 66 75 6c |ides many useful| 000556d0 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 57 | functions for W| 000556e0 69 6d 70 20 70 72 6f 67 72 61 6d 6d 69 6e 67 2e |imp programming.| 000556f0 44 49 52 24 88 01 00 00 88 01 00 00 78 58 05 00 |DIR$........xX..| 00055700 46 ff ff ff d0 fb 55 26 38 01 00 00 13 00 00 00 |F.....U&8.......| 00055710 00 00 00 00 42 6f 75 6e 64 69 6e 67 42 6f 78 00 |....BoundingBox.| 00055720 b0 59 05 00 46 ff ff ff d5 da 55 26 24 01 00 00 |.Y..F.....U&$...| 00055730 13 00 00 00 00 00 00 00 43 6c 6f 73 65 64 6f 77 |........Closedow| 00055740 6e 00 00 00 d4 5a 05 00 46 ff ff ff 61 d7 55 26 |n....Z..F...a.U&| 00055750 27 01 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |'...........Init| 00055760 69 61 6c 69 73 65 00 00 fc 5b 05 00 46 ff ff ff |ialise...[..F...| 00055770 78 f6 55 26 4a 01 00 00 13 00 00 00 00 00 00 00 |x.U&J...........| 00055780 50 6c 6f 74 33 64 49 63 6f 6e 00 00 48 5d 05 00 |Plot3dIcon..H]..| 00055790 46 ff ff ff 01 ed 55 26 19 01 00 00 13 00 00 00 |F.....U&........| 000557a0 00 00 00 00 50 6f 6c 6c 00 00 00 00 64 5e 05 00 |....Poll....d^..| 000557b0 46 ff ff ff 1d d3 55 26 4b 01 00 00 13 00 00 00 |F.....U&K.......| 000557c0 00 00 00 00 52 65 6e 64 65 72 33 64 57 69 6e 64 |....Render3dWind| 000557d0 6f 77 00 00 b0 5f 05 00 46 ff ff ff 3b f1 55 26 |ow..._..F...;.U&| 000557e0 3c 01 00 00 13 00 00 00 00 00 00 00 53 65 6e 64 |<...........Send| 000557f0 48 65 6c 70 00 00 00 00 ec 60 05 00 46 ff ff ff |Help.....`..F...| 00055800 5c df 55 26 52 01 00 00 13 00 00 00 00 00 00 00 |\.U&R...........| 00055810 53 65 74 57 6f 72 6b 61 72 65 61 50 6f 69 6e 74 |SetWorkareaPoint| 00055820 65 72 00 00 40 62 05 00 46 ff ff ff 4c ce 55 26 |er..@b..F...L.U&| 00055830 38 01 00 00 13 00 00 00 00 00 00 00 53 6c 61 62 |8...........Slab| 00055840 42 75 74 74 6f 6e 00 00 78 63 05 00 46 ff ff ff |Button..xc..F...| 00055850 14 e9 55 26 5b 01 00 00 13 00 00 00 00 00 00 00 |..U&[...........| 00055860 52 65 6d 6f 76 65 57 6f 72 6b 61 72 65 61 50 6f |RemoveWorkareaPo| 00055870 69 6e 74 65 72 00 00 00 44 41 54 41 38 01 00 00 |inter...DATA8...| 00055880 49 6e 74 65 72 66 61 63 65 5f 42 6f 75 6e 64 69 |Interface_Boundi| 00055890 6e 67 42 6f 78 0a 53 79 6e 74 61 78 3a 09 3c 6f |ngBox.Syntax:.<o| 000558a0 73 5f 65 72 72 6f 72 3e 20 2a 49 6e 74 65 72 66 |s_error> *Interf| 000558b0 61 63 65 5f 42 6f 75 6e 64 69 6e 67 42 6f 78 20 |ace_BoundingBox | 000558c0 28 3c 69 63 6f 6e 5f 62 6c 6f 63 6b 3e 20 2a 69 |(<icon_block> *i| 000558d0 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 |con);.Header:.<T| 000558e0 69 6d 73 4c 69 62 3a 49 6e 74 65 72 66 61 63 65 |imsLib:Interface| 000558f0 2e 68 3d 3e 49 6e 74 65 72 66 61 63 65 3e 0a 0a |.h=>Interface>..| 00055900 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00055910 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00055920 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00055930 68 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b |his function-lik| 00055940 65 20 6d 61 63 72 6f 20 63 61 6c 6c 73 20 74 68 |e macro calls th| 00055950 65 20 53 57 49 20 49 6e 74 65 72 66 61 63 65 5f |e SWI Interface_| 00055960 42 6f 75 6e 64 69 6e 67 42 6f 78 2e 20 46 6f 72 |BoundingBox. For| 00055970 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f | more informatio| 00055980 6e 20 73 65 65 20 74 68 65 20 64 6f 63 75 6d 65 |n see the docume| 00055990 6e 74 61 74 69 6f 6e 20 73 75 70 70 6c 69 65 64 |ntation supplied| 000559a0 20 77 69 74 68 20 49 6e 74 65 72 66 61 63 65 2e | with Interface.| 000559b0 44 41 54 41 24 01 00 00 49 6e 74 65 72 66 61 63 |DATA$...Interfac| 000559c0 65 5f 43 6c 6f 73 65 64 6f 77 6e 0a 53 79 6e 74 |e_Closedown.Synt| 000559d0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000559e0 49 6e 74 65 72 66 61 63 65 5f 43 6c 6f 73 65 64 |Interface_Closed| 000559f0 6f 77 6e 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 |own (void);.Head| 00055a00 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 6e 74 |er:.<TimsLib:Int| 00055a10 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 65 72 66 |erface.h=>Interf| 00055a20 61 63 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ace>..Returns:.P| 00055a30 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00055a40 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00055a50 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00055a60 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 63 61 |on-like macro ca| 00055a70 6c 6c 73 20 74 68 65 20 53 57 49 20 49 6e 74 65 |lls the SWI Inte| 00055a80 72 66 61 63 65 5f 43 6c 6f 73 65 64 6f 77 6e 2e |rface_Closedown.| 00055a90 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d | For more inform| 00055aa0 61 74 69 6f 6e 20 73 65 65 20 74 68 65 20 64 6f |ation see the do| 00055ab0 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 |cumentation supp| 00055ac0 6c 69 65 64 20 77 69 74 68 20 49 6e 74 65 72 66 |lied with Interf| 00055ad0 61 63 65 2e 44 41 54 41 27 01 00 00 49 6e 74 65 |ace.DATA'...Inte| 00055ae0 72 66 61 63 65 5f 49 6e 69 74 69 61 6c 69 73 65 |rface_Initialise| 00055af0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00055b00 6f 72 3e 20 2a 49 6e 74 65 72 66 61 63 65 5f 49 |or> *Interface_I| 00055b10 6e 69 74 69 61 6c 69 73 65 20 28 76 6f 69 64 29 |nitialise (void)| 00055b20 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 00055b30 69 62 3a 49 6e 74 65 72 66 61 63 65 2e 68 3d 3e |ib:Interface.h=>| 00055b40 49 6e 74 65 72 66 61 63 65 3e 0a 0a 52 65 74 75 |Interface>..Retu| 00055b50 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00055b60 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00055b70 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00055b80 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 |function-like ma| 00055b90 63 72 6f 20 63 61 6c 6c 73 20 74 68 65 20 53 57 |cro calls the SW| 00055ba0 49 20 49 6e 74 65 72 66 61 63 65 5f 49 6e 69 74 |I Interface_Init| 00055bb0 69 61 6c 69 73 65 2e 20 46 6f 72 20 6d 6f 72 65 |ialise. For more| 00055bc0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 65 | information see| 00055bd0 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 | the documentati| 00055be0 6f 6e 20 73 75 70 70 6c 69 65 64 20 77 69 74 68 |on supplied with| 00055bf0 20 49 6e 74 65 72 66 61 63 65 2e 00 44 41 54 41 | Interface..DATA| 00055c00 4a 01 00 00 49 6e 74 65 72 66 61 63 65 5f 50 6c |J...Interface_Pl| 00055c10 6f 74 33 64 49 63 6f 6e 0a 53 79 6e 74 61 78 3a |ot3dIcon.Syntax:| 00055c20 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 49 6e 74 |.<os_error> *Int| 00055c30 65 72 66 61 63 65 5f 50 6c 6f 74 33 64 49 63 6f |erface_Plot3dIco| 00055c40 6e 20 28 3c 77 69 6e 64 6f 77 5f 73 74 61 74 65 |n (<window_state| 00055c50 3e 20 2a 73 74 61 74 65 2c 20 3c 69 63 6f 6e 5f |> *state, <icon_| 00055c60 62 6c 6f 63 6b 3e 20 2a 69 63 29 3b 0a 48 65 61 |block> *ic);.Hea| 00055c70 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 6e |der:.<TimsLib:In| 00055c80 74 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 65 72 |terface.h=>Inter| 00055c90 66 61 63 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |face>..Returns:.| 00055ca0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00055cb0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00055cc0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00055cd0 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 63 |ion-like macro c| 00055ce0 61 6c 6c 73 20 74 68 65 20 53 57 49 20 49 6e 74 |alls the SWI Int| 00055cf0 65 72 66 61 63 65 5f 50 6c 6f 74 33 64 49 63 6f |erface_Plot3dIco| 00055d00 6e 2e 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f |n. For more info| 00055d10 72 6d 61 74 69 6f 6e 20 73 65 65 20 74 68 65 20 |rmation see the | 00055d20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 75 |documentation su| 00055d30 70 70 6c 69 65 64 20 77 69 74 68 20 49 6e 74 65 |pplied with Inte| 00055d40 72 66 61 63 65 2e 00 00 44 41 54 41 19 01 00 00 |rface...DATA....| 00055d50 49 6e 74 65 72 66 61 63 65 5f 50 6f 6c 6c 0a 53 |Interface_Poll.S| 00055d60 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 00055d70 3e 20 2a 49 6e 74 65 72 66 61 63 65 5f 50 6f 6c |> *Interface_Pol| 00055d80 6c 20 28 69 6e 74 20 70 6f 6c 6c 29 3b 0a 48 65 |l (int poll);.He| 00055d90 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 |ader:.<TimsLib:I| 00055da0 6e 74 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 65 |nterface.h=>Inte| 00055db0 72 66 61 63 65 3e 0a 0a 52 65 74 75 72 6e 73 3a |rface>..Returns:| 00055dc0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 00055dd0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 00055de0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 00055df0 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 |tion-like macro | 00055e00 63 61 6c 6c 73 20 74 68 65 20 53 57 49 20 49 6e |calls the SWI In| 00055e10 74 65 72 66 61 63 65 5f 50 6f 6c 6c 2e 20 46 6f |terface_Poll. Fo| 00055e20 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 |r more informati| 00055e30 6f 6e 20 73 65 65 20 74 68 65 20 64 6f 63 75 6d |on see the docum| 00055e40 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6c 69 65 |entation supplie| 00055e50 64 20 77 69 74 68 20 49 6e 74 65 72 66 61 63 65 |d with Interface| 00055e60 2e 00 00 00 44 41 54 41 4b 01 00 00 49 6e 74 65 |....DATAK...Inte| 00055e70 72 66 61 63 65 5f 52 65 6e 64 65 72 33 64 57 69 |rface_Render3dWi| 00055e80 6e 64 6f 77 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |ndow.Syntax:.<os| 00055e90 5f 65 72 72 6f 72 3e 20 2a 49 6e 74 65 72 66 61 |_error> *Interfa| 00055ea0 63 65 5f 52 65 6e 64 65 72 33 64 57 69 6e 64 6f |ce_Render3dWindo| 00055eb0 77 20 28 3c 77 69 6e 64 6f 77 5f 72 65 64 72 61 |w (<window_redra| 00055ec0 77 62 6c 6f 63 6b 3e 20 2a 72 65 64 72 61 77 29 |wblock> *redraw)| 00055ed0 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 00055ee0 69 62 3a 49 6e 74 65 72 66 61 63 65 2e 68 3d 3e |ib:Interface.h=>| 00055ef0 49 6e 74 65 72 66 61 63 65 3e 0a 0a 52 65 74 75 |Interface>..Retu| 00055f00 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00055f10 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00055f20 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00055f30 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 |function-like ma| 00055f40 63 72 6f 20 63 61 6c 6c 73 20 74 68 65 20 53 57 |cro calls the SW| 00055f50 49 20 49 6e 74 65 72 66 61 63 65 5f 52 65 6e 64 |I Interface_Rend| 00055f60 65 72 33 64 57 69 6e 64 6f 77 2e 20 46 6f 72 20 |er3dWindow. For | 00055f70 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e |more information| 00055f80 20 73 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e | see the documen| 00055f90 74 61 74 69 6f 6e 20 73 75 70 70 6c 69 65 64 20 |tation supplied | 00055fa0 77 69 74 68 20 49 6e 74 65 72 66 61 63 65 2e 00 |with Interface..| 00055fb0 44 41 54 41 3c 01 00 00 49 6e 74 65 72 66 61 63 |DATA<...Interfac| 00055fc0 65 5f 53 65 6e 64 48 65 6c 70 0a 53 79 6e 74 61 |e_SendHelp.Synta| 00055fd0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 49 |x:.<os_error> *I| 00055fe0 6e 74 65 72 66 61 63 65 5f 53 65 6e 64 48 65 6c |nterface_SendHel| 00055ff0 70 20 28 3c 6d 65 73 73 61 67 65 5f 68 65 61 64 |p (<message_head| 00056000 65 72 3e 20 2a 6d 65 73 73 61 67 65 5f 62 6c 6f |er> *message_blo| 00056010 63 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 |ck);.Header:.<Ti| 00056020 6d 73 4c 69 62 3a 49 6e 74 65 72 66 61 63 65 2e |msLib:Interface.| 00056030 68 3d 3e 49 6e 74 65 72 66 61 63 65 3e 0a 0a 52 |h=>Interface>..R| 00056040 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00056050 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00056060 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00056070 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 |is function-like| 00056080 20 6d 61 63 72 6f 20 63 61 6c 6c 73 20 74 68 65 | macro calls the| 00056090 20 53 57 49 20 49 6e 74 65 72 66 61 63 65 5f 53 | SWI Interface_S| 000560a0 65 6e 64 48 65 6c 70 2e 20 46 6f 72 20 6d 6f 72 |endHelp. For mor| 000560b0 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 |e information se| 000560c0 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 |e the documentat| 000560d0 69 6f 6e 20 73 75 70 70 6c 69 65 64 20 77 69 74 |ion supplied wit| 000560e0 68 20 49 6e 74 65 72 66 61 63 65 2e 44 41 54 41 |h Interface.DATA| 000560f0 52 01 00 00 49 6e 74 65 72 66 61 63 65 5f 53 65 |R...Interface_Se| 00056100 74 57 6f 72 6b 61 72 65 61 50 6f 69 6e 74 65 72 |tWorkareaPointer| 00056110 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00056120 6f 72 3e 20 2a 49 6e 74 65 72 66 61 63 65 5f 53 |or> *Interface_S| 00056130 65 74 57 6f 72 6b 61 72 65 61 50 6f 69 6e 74 65 |etWorkareaPointe| 00056140 72 20 28 3c 77 69 6d 70 5f 70 6f 69 6e 74 65 72 |r (<wimp_pointer| 00056150 3e 20 2a 70 6f 69 6e 74 65 72 29 3b 0a 48 65 61 |> *pointer);.Hea| 00056160 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 6e |der:.<TimsLib:In| 00056170 74 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 65 72 |terface.h=>Inter| 00056180 66 61 63 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |face>..Returns:.| 00056190 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000561a0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000561b0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000561c0 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 63 |ion-like macro c| 000561d0 61 6c 6c 73 20 74 68 65 20 53 57 49 20 49 6e 74 |alls the SWI Int| 000561e0 65 72 66 61 63 65 5f 53 65 74 57 6f 72 6b 61 72 |erface_SetWorkar| 000561f0 65 61 50 6f 69 6e 74 65 72 2e 20 46 6f 72 20 6d |eaPointer. For m| 00056200 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |ore information | 00056210 73 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 |see the document| 00056220 61 74 69 6f 6e 20 73 75 70 70 6c 69 65 64 20 77 |ation supplied w| 00056230 69 74 68 20 49 6e 74 65 72 66 61 63 65 2e 00 00 |ith Interface...| 00056240 44 41 54 41 38 01 00 00 49 6e 74 65 72 66 61 63 |DATA8...Interfac| 00056250 65 5f 53 6c 61 62 42 75 74 74 6f 6e 0a 53 79 6e |e_SlabButton.Syn| 00056260 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00056270 2a 49 6e 74 65 72 66 61 63 65 5f 53 6c 61 62 42 |*Interface_SlabB| 00056280 75 74 74 6f 6e 20 28 3c 6d 6f 75 73 65 5f 62 6c |utton (<mouse_bl| 00056290 6f 63 6b 3e 20 2a 6d 6f 75 73 65 29 3b 0a 48 65 |ock> *mouse);.He| 000562a0 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 49 |ader:.<TimsLib:I| 000562b0 6e 74 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 65 |nterface.h=>Inte| 000562c0 72 66 61 63 65 3e 0a 0a 52 65 74 75 72 6e 73 3a |rface>..Returns:| 000562d0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000562e0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000562f0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 00056300 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 |tion-like macro | 00056310 63 61 6c 6c 73 20 74 68 65 20 53 57 49 20 49 6e |calls the SWI In| 00056320 74 65 72 66 61 63 65 5f 53 6c 61 62 42 75 74 74 |terface_SlabButt| 00056330 6f 6e 2e 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 |on. For more inf| 00056340 6f 72 6d 61 74 69 6f 6e 20 73 65 65 20 74 68 65 |ormation see the| 00056350 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 | documentation s| 00056360 75 70 70 6c 69 65 64 20 77 69 74 68 20 49 6e 74 |upplied with Int| 00056370 65 72 66 61 63 65 2e 0a 44 41 54 41 5b 01 00 00 |erface..DATA[...| 00056380 49 6e 74 65 72 66 61 63 65 5f 52 65 6d 6f 76 65 |Interface_Remove| 00056390 57 6f 72 6b 61 72 65 61 50 6f 69 6e 74 65 72 0a |WorkareaPointer.| 000563a0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000563b0 72 3e 20 2a 49 6e 74 65 72 66 61 63 65 5f 52 65 |r> *Interface_Re| 000563c0 6d 6f 76 65 57 6f 72 6b 61 72 65 61 50 6f 69 6e |moveWorkareaPoin| 000563d0 74 65 72 20 28 3c 77 69 6d 70 5f 70 6f 69 6e 74 |ter (<wimp_point| 000563e0 65 72 3e 20 2a 70 6f 69 6e 74 65 72 29 3b 0a 48 |er> *pointer);.H| 000563f0 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a |eader:.<TimsLib:| 00056400 49 6e 74 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 |Interface.h=>Int| 00056410 65 72 66 61 63 65 3e 0a 0a 52 65 74 75 72 6e 73 |erface>..Returns| 00056420 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00056430 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00056440 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00056450 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f |ction-like macro| 00056460 20 63 61 6c 6c 73 20 74 68 65 20 53 57 49 20 49 | calls the SWI I| 00056470 6e 74 65 72 66 61 63 65 5f 52 65 6d 6f 76 65 57 |nterface_RemoveW| 00056480 6f 72 6b 61 72 65 61 50 6f 69 6e 74 65 72 2e 20 |orkareaPointer. | 00056490 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 |For more informa| 000564a0 74 69 6f 6e 20 73 65 65 20 74 68 65 20 64 6f 63 |tion see the doc| 000564b0 75 6d 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6c |umentation suppl| 000564c0 69 65 64 20 77 69 74 68 20 49 6e 74 65 72 66 61 |ied with Interfa| 000564d0 63 65 2e 00 44 41 54 41 08 01 00 00 69 73 61 6c |ce..DATA....isal| 000564e0 6e 75 6d 0a 23 50 61 72 65 6e 74 20 63 74 79 70 |num.#Parent ctyp| 000564f0 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 69 73 |e.Syntax:.int is| 00056500 61 6c 6e 75 6d 20 28 69 6e 74 20 63 29 3b 0a 48 |alnum (int c);.H| 00056510 65 61 64 65 72 3a 09 3c 63 74 79 70 65 2e 68 3d |eader:.<ctype.h=| 00056520 3e 63 74 79 70 65 3e 0a 0a 52 65 74 75 72 6e 73 |>ctype>..Returns| 00056530 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 66 20 63 20 |:.Non-zero if c | 00056540 3d 3d 20 27 41 27 2d 27 5a 27 2c 27 61 27 2d 27 |== 'A'-'Z','a'-'| 00056550 7a 27 2c 20 6f 72 20 27 30 27 2d 27 39 27 2e 0a |z', or '0'-'9'..| 00056560 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00056570 65 73 74 73 20 69 66 20 74 68 65 20 67 69 76 65 |ests if the give| 00056580 6e 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 |n character is a| 00056590 6c 70 68 61 6e 75 6d 65 72 69 63 2e 0a 0a 23 61 |lphanumeric...#a| 000565a0 6c 69 67 6e 20 63 65 6e 74 72 65 0a 69 73 61 6c |lign centre.isal| 000565b0 6e 75 6d 28 63 29 20 3d 20 28 20 3c 69 73 61 6c |num(c) = ( <isal| 000565c0 70 68 61 3e 20 28 63 29 20 7c 7c 20 3c 69 73 64 |pha> (c) || <isd| 000565d0 69 67 69 74 3e 20 28 63 29 20 29 3b 44 41 54 41 |igit> (c) );DATA| 000565e0 be 00 00 00 69 73 61 6c 70 68 61 0a 23 50 61 72 |....isalpha.#Par| 000565f0 65 6e 74 20 63 74 79 70 65 0a 53 79 6e 74 61 78 |ent ctype.Syntax| 00056600 3a 09 69 6e 74 20 69 73 61 6c 70 68 61 20 28 69 |:.int isalpha (i| 00056610 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt c);.Header:.<| 00056620 63 74 79 70 65 2e 68 3d 3e 63 74 79 70 65 3e 0a |ctype.h=>ctype>.| 00056630 0a 52 65 74 75 72 6e 73 3a 20 4e 6f 6e 2d 7a 65 |.Returns: Non-ze| 00056640 72 6f 20 69 66 20 63 20 3d 3d 20 27 41 27 2d 27 |ro if c == 'A'-'| 00056650 5a 27 2c 20 6f 72 20 27 61 27 2d 27 7a 27 2e 0a |Z', or 'a'-'z'..| 00056660 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00056670 65 73 74 73 20 69 66 20 74 68 65 20 67 69 76 65 |ests if the give| 00056680 6e 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 |n character is a| 00056690 6c 70 68 61 62 65 74 69 63 2e 00 00 44 41 54 41 |lphabetic...DATA| 000566a0 c7 00 00 00 69 73 63 6e 74 72 6c 0a 23 50 61 72 |....iscntrl.#Par| 000566b0 65 6e 74 20 63 74 79 70 65 0a 53 79 6e 74 61 78 |ent ctype.Syntax| 000566c0 3a 09 69 6e 74 20 69 73 63 6e 74 72 6c 20 28 69 |:.int iscntrl (i| 000566d0 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt c);.Header:.<| 000566e0 63 74 79 70 65 2e 68 3d 3e 63 74 79 70 65 3e 0a |ctype.h=>ctype>.| 000566f0 0a 52 65 74 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 |.Returns:.Non-ze| 00056700 72 6f 20 69 66 20 63 20 69 73 20 61 20 63 6f 6e |ro if c is a con| 00056710 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 2e 0a |trol character..| 00056720 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00056730 65 73 74 73 20 69 66 20 74 68 65 20 67 69 76 65 |ests if the give| 00056740 6e 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 |n character is a| 00056750 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 | control charact| 00056760 65 72 2e 00 44 41 54 41 c3 00 00 00 69 73 64 69 |er..DATA....isdi| 00056770 67 69 74 0a 23 50 61 72 65 6e 74 20 63 74 79 70 |git.#Parent ctyp| 00056780 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 69 73 |e.Syntax:.int is| 00056790 64 69 67 69 74 20 28 69 6e 74 20 63 29 3b 0a 48 |digit (int c);.H| 000567a0 65 61 64 65 72 3a 09 3c 63 74 79 70 65 2e 68 3d |eader:.<ctype.h=| 000567b0 3e 63 74 79 70 65 3e 0a 0a 52 65 74 75 72 6e 73 |>ctype>..Returns| 000567c0 3a 20 4e 6f 6e 2d 7a 65 72 6f 20 69 66 20 63 20 |: Non-zero if c | 000567d0 3d 3d 20 27 30 27 2d 27 39 27 2e 0a 0a 54 68 69 |== '0'-'9'...Thi| 000567e0 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 |s function tests| 000567f0 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 63 68 | if the given ch| 00056800 61 72 61 63 74 65 72 20 69 73 20 61 20 6e 75 6d |aracter is a num| 00056810 65 72 69 63 20 63 68 61 72 61 63 74 65 72 20 28 |eric character (| 00056820 64 69 67 69 74 29 2e 00 44 41 54 41 dd 00 00 00 |digit)..DATA....| 00056830 69 73 67 72 61 70 68 0a 23 50 61 72 65 6e 74 20 |isgraph.#Parent | 00056840 63 74 79 70 65 0a 53 79 6e 74 61 78 3a 09 69 6e |ctype.Syntax:.in| 00056850 74 20 69 73 67 72 61 70 68 20 28 69 6e 74 20 63 |t isgraph (int c| 00056860 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 74 79 70 |);.Header:.<ctyp| 00056870 65 2e 68 3d 3e 63 74 79 70 65 3e 0a 0a 52 65 74 |e.h=>ctype>..Ret| 00056880 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 |urns:.Non-zero i| 00056890 66 20 63 20 69 73 20 61 20 67 72 61 70 68 69 63 |f c is a graphic| 000568a0 20 63 68 61 72 61 63 74 65 72 2e 0a 0a 54 68 69 | character...Thi| 000568b0 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 |s function tests| 000568c0 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 63 68 | if the given ch| 000568d0 61 72 61 63 74 65 72 20 69 73 20 61 6e 79 20 70 |aracter is any p| 000568e0 72 69 6e 74 69 6e 67 20 63 68 61 72 61 63 74 65 |rinting characte| 000568f0 72 20 65 78 63 65 70 74 20 73 70 61 63 65 20 28 |r except space (| 00056900 27 a0 27 29 2e 00 00 00 44 41 54 41 bd 00 00 00 |'.')....DATA....| 00056910 69 73 6c 6f 77 65 72 0a 23 50 61 72 65 6e 74 20 |islower.#Parent | 00056920 63 74 79 70 65 0a 53 79 6e 74 61 78 3a 09 69 6e |ctype.Syntax:.in| 00056930 74 20 69 73 6c 6f 77 65 72 20 28 69 6e 74 20 63 |t islower (int c| 00056940 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 74 79 70 |);.Header:.<ctyp| 00056950 65 2e 68 3d 3e 63 74 79 70 65 3e 0a 0a 52 65 74 |e.h=>ctype>..Ret| 00056960 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 |urns:.Non-zero i| 00056970 66 20 63 20 3d 3d 20 27 61 27 2d 27 7a 27 2e 0a |f c == 'a'-'z'..| 00056980 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00056990 65 73 74 73 20 69 66 20 74 68 65 20 67 69 76 65 |ests if the give| 000569a0 6e 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 |n character is a| 000569b0 6e 79 20 6c 6f 77 65 72 20 63 61 73 65 20 6c 65 |ny lower case le| 000569c0 74 74 65 72 2e 00 00 00 44 41 54 41 e3 00 00 00 |tter....DATA....| 000569d0 69 73 70 72 69 6e 74 0a 23 50 61 72 65 6e 74 20 |isprint.#Parent | 000569e0 63 74 79 70 65 0a 53 79 6e 74 61 78 3a 09 69 6e |ctype.Syntax:.in| 000569f0 74 20 69 73 70 72 69 6e 74 20 28 69 6e 74 20 63 |t isprint (int c| 00056a00 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 74 79 70 |);.Header:.<ctyp| 00056a10 65 2e 68 3d 3e 63 74 79 70 65 3e 0a 0a 52 65 74 |e.h=>ctype>..Ret| 00056a20 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 |urns:.Non-zero i| 00056a30 66 20 63 20 69 73 20 61 6e 79 20 70 72 69 6e 74 |f c is any print| 00056a40 69 6e 67 20 63 68 61 72 61 63 74 65 72 2e 0a 0a |ing character...| 00056a50 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 |This function te| 00056a60 73 74 73 20 69 66 20 74 68 65 20 67 69 76 65 6e |sts if the given| 00056a70 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 6e | character is an| 00056a80 79 20 70 72 69 6e 74 69 6e 67 20 63 68 61 72 61 |y printing chara| 00056a90 63 74 65 72 20 69 6e 63 6c 75 64 69 6e 67 20 73 |cter including s| 00056aa0 70 61 63 65 20 28 27 20 27 29 2e 00 44 41 54 41 |pace (' ')..DATA| 00056ab0 35 01 00 00 69 73 70 75 6e 63 74 0a 23 50 61 72 |5...ispunct.#Par| 00056ac0 65 6e 74 20 63 74 79 70 65 0a 53 79 6e 74 61 78 |ent ctype.Syntax| 00056ad0 3a 09 69 6e 74 20 69 73 70 75 6e 63 74 20 28 69 |:.int ispunct (i| 00056ae0 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt c);.Header:.<| 00056af0 63 74 79 70 65 2e 68 3d 3e 63 74 79 70 65 3e 0a |ctype.h=>ctype>.| 00056b00 0a 52 65 74 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 |.Returns:.Non-ze| 00056b10 72 6f 20 69 66 20 63 20 69 73 20 61 6e 79 20 70 |ro if c is any p| 00056b20 75 6e 63 74 75 61 74 69 6f 6e 20 63 68 61 72 61 |unctuation chara| 00056b30 63 74 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |cter...This func| 00056b40 74 69 6f 6e 20 74 65 73 74 73 20 69 66 20 74 68 |tion tests if th| 00056b50 65 20 67 69 76 65 6e 20 63 68 61 72 61 63 74 65 |e given characte| 00056b60 72 20 69 73 20 61 6e 79 20 6e 6f 6e 2d 61 6c 70 |r is any non-alp| 00056b70 68 61 6e 75 6d 65 72 69 63 20 70 72 69 6e 74 69 |hanumeric printi| 00056b80 6e 67 20 63 68 61 72 61 63 74 65 72 20 65 78 63 |ng character exc| 00056b90 65 70 74 20 73 70 61 63 65 20 28 27 a0 27 29 2e |ept space ('.').| 00056ba0 0a 0a 23 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a |..#align centre.| 00056bb0 69 73 70 75 6e 63 74 28 63 29 20 3d 20 28 20 3c |ispunct(c) = ( <| 00056bc0 69 73 67 72 61 70 68 3e 20 28 63 29 20 26 26 20 |isgraph> (c) && | 00056bd0 21 3c 69 73 61 6c 6e 75 6d 3e 20 28 63 29 20 29 |!<isalnum> (c) )| 00056be0 3b 00 00 00 44 41 54 41 81 01 00 00 69 73 73 70 |;...DATA....issp| 00056bf0 61 63 65 0a 23 50 61 72 65 6e 74 20 63 74 79 70 |ace.#Parent ctyp| 00056c00 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 69 73 |e.Syntax:.int is| 00056c10 73 70 61 63 65 20 28 69 6e 74 20 63 29 3b 0a 48 |space (int c);.H| 00056c20 65 61 64 65 72 3a 09 3c 63 74 79 70 65 2e 68 3d |eader:.<ctype.h=| 00056c30 3e 63 74 79 70 65 3e 0a 0a 52 65 74 75 72 6e 73 |>ctype>..Returns| 00056c40 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 66 20 63 20 |:.Non-zero if c | 00056c50 69 73 20 61 20 77 68 69 74 65 20 73 70 61 63 65 |is a white space| 00056c60 20 63 68 61 72 61 63 74 65 72 2e 0a 0a 54 68 69 | character...Thi| 00056c70 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 |s function tests| 00056c80 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 63 68 | if the given ch| 00056c90 61 72 61 63 74 65 72 20 69 73 0a 61 6e 79 20 77 |aracter is.any w| 00056ca0 68 69 74 65 20 73 70 61 63 65 20 63 68 61 72 61 |hite space chara| 00056cb0 63 74 65 72 20 69 65 20 6f 6e 65 20 6f 66 20 74 |cter ie one of t| 00056cc0 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 23 |he.following:..#| 00056cd0 69 6e 64 65 6e 74 20 36 0a 23 54 61 62 6c 65 20 |indent 6.#Table | 00056ce0 43 6f 6c 75 6d 6e 73 20 32 0a 53 70 61 63 65 20 |Columns 2.Space | 00056cf0 28 27 20 27 29 0a 46 6f 72 6d 20 66 65 65 64 20 |(' ').Form feed | 00056d00 28 27 5c 5c 66 27 29 0a 4e 65 77 6c 69 6e 65 20 |('\\f').Newline | 00056d10 28 27 5c 5c 6e 27 29 0a 43 61 72 72 69 61 67 65 |('\\n').Carriage| 00056d20 20 72 65 74 75 72 6e 20 28 27 5c 5c 72 27 29 0a | return ('\\r').| 00056d30 48 6f 72 69 7a 6f 6e 74 61 6c 20 74 61 62 20 28 |Horizontal tab (| 00056d40 27 5c 5c 74 27 29 0a 56 65 72 74 69 63 61 6c 20 |'\\t').Vertical | 00056d50 74 61 62 20 28 27 5c 5c 76 27 29 0a 23 45 6e 64 |tab ('\\v').#End| 00056d60 54 61 62 6c 65 00 00 00 44 41 54 41 bd 00 00 00 |Table...DATA....| 00056d70 69 73 75 70 70 65 72 0a 23 50 61 72 65 6e 74 20 |isupper.#Parent | 00056d80 63 74 79 70 65 0a 53 79 6e 74 61 78 3a 09 69 6e |ctype.Syntax:.in| 00056d90 74 20 69 73 75 70 70 65 72 20 28 69 6e 74 20 63 |t isupper (int c| 00056da0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 74 79 70 |);.Header:.<ctyp| 00056db0 65 2e 68 3d 3e 63 74 79 70 65 3e 0a 0a 52 65 74 |e.h=>ctype>..Ret| 00056dc0 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 |urns:.Non-zero i| 00056dd0 66 20 63 20 3d 3d 20 27 41 27 2d 27 5a 27 2e 0a |f c == 'A'-'Z'..| 00056de0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 00056df0 65 73 74 73 20 69 66 20 74 68 65 20 67 69 76 65 |ests if the give| 00056e00 6e 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 |n character is a| 00056e10 6e 79 20 75 70 70 65 72 20 63 61 73 65 20 6c 65 |ny upper case le| 00056e20 74 74 65 72 2e 00 00 00 44 41 54 41 cb 00 00 00 |tter....DATA....| 00056e30 69 73 78 64 69 67 69 74 0a 23 50 61 72 65 6e 74 |isxdigit.#Parent| 00056e40 20 63 74 79 70 65 0a 53 79 6e 74 61 78 3a 09 69 | ctype.Syntax:.i| 00056e50 6e 74 20 69 73 78 64 69 67 69 74 20 28 69 6e 74 |nt isxdigit (int| 00056e60 20 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 63 74 | c);.Header:.<ct| 00056e70 79 70 65 2e 68 3d 3e 63 74 79 70 65 3e 0a 0a 52 |ype.h=>ctype>..R| 00056e80 65 74 75 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 72 6f |eturns:.Non-zero| 00056e90 20 69 66 20 63 20 3d 3d 20 27 30 27 2d 27 39 27 | if c == '0'-'9'| 00056ea0 2c 20 6f 72 20 27 41 27 2d 27 46 27 2e 0a 0a 54 |, or 'A'-'F'...T| 00056eb0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 |his function tes| 00056ec0 74 73 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 |ts if the given | 00056ed0 63 68 61 72 61 63 74 65 72 20 69 73 20 61 6e 79 |character is any| 00056ee0 20 68 65 78 61 64 65 63 69 6d 61 6c 20 64 69 67 | hexadecimal dig| 00056ef0 69 74 2e 00 44 49 52 24 28 00 00 00 28 00 00 00 |it..DIR$(...(...| 00056f00 1c 6f 05 00 46 ff ff ff 6c f3 be 22 cb 00 00 00 |.o..F...l.."....| 00056f10 13 00 00 00 00 00 00 00 62 75 66 00 44 41 54 41 |........buf.DATA| 00056f20 cb 00 00 00 6a 6d 70 5f 62 75 66 0a 54 68 65 20 |....jmp_buf.The | 00056f30 74 79 70 65 20 6a 6d 70 5f 62 75 66 20 69 73 20 |type jmp_buf is | 00056f40 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 65 74 6a |defined in <setj| 00056f50 6d 70 2e 68 3d 3e 73 65 74 6a 6d 70 5f 68 3e 20 |mp.h=>setjmp_h> | 00056f60 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 63 61 70 |as an object cap| 00056f70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 |able of holding | 00056f80 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 |information abou| 00056f90 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6e |t the current en| 00056fa0 76 69 72 6f 6e 6d 65 6e 74 2e 20 49 6e 20 45 61 |vironment. In Ea| 00056fb0 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 6e |sy C it is defin| 00056fc0 65 64 20 61 73 20 61 20 70 6f 69 6e 74 65 72 20 |ed as a pointer | 00056fd0 74 6f 20 61 6e 20 61 72 72 61 79 20 6f 66 20 32 |to an array of 2| 00056fe0 32 20 69 6e 74 73 2e 00 44 49 52 24 70 00 00 00 |2 ints..DIR$p...| 00056ff0 70 00 00 00 58 70 05 00 46 ff ff ff 27 12 46 23 |p...Xp..F...'.F#| 00057000 98 00 00 00 13 00 00 00 00 00 00 00 62 65 76 65 |............beve| 00057010 6c 6c 65 64 00 00 00 00 f0 70 05 00 46 ff ff ff |lled.....p..F...| 00057020 07 0c 46 23 94 00 00 00 13 00 00 00 00 00 00 00 |..F#............| 00057030 6d 69 74 72 65 64 00 00 84 71 05 00 46 ff ff ff |mitred...q..F...| 00057040 0e 0f 46 23 94 00 00 00 13 00 00 00 00 00 00 00 |..F#............| 00057050 72 6f 75 6e 64 00 00 00 44 41 54 41 98 00 00 00 |round...DATA....| 00057060 6a 6f 69 6e 5f 62 65 76 65 6c 6c 65 64 0a 54 68 |join_bevelled.Th| 00057070 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 00057080 6e 65 64 20 69 6e 20 3c 64 72 61 77 6d 6f 64 2e |ned in <drawmod.| 00057090 68 3d 3e 64 72 61 77 6d 6f 64 3e 2e 20 49 74 20 |h=>drawmod>. It | 000570a0 69 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 |is a value repre| 000570b0 73 65 6e 74 69 6e 67 20 61 20 62 65 76 65 6c 6c |senting a bevell| 000570c0 65 64 20 6a 6f 69 6e 2e 20 49 74 20 69 73 20 64 |ed join. It is d| 000570d0 65 66 69 6e 65 64 20 61 73 20 28 28 75 6e 73 69 |efined as ((unsi| 000570e0 67 6e 65 64 20 63 68 61 72 29 30 78 30 32 29 2e |gned char)0x02).| 000570f0 44 41 54 41 94 00 00 00 6a 6f 69 6e 5f 6d 69 74 |DATA....join_mit| 00057100 72 65 64 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |red.This macro i| 00057110 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 00057120 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 6d 6f 64 |awmod.h=>drawmod| 00057130 3e 2e 20 49 74 20 69 73 20 61 20 76 61 6c 75 65 |>. It is a value| 00057140 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 | representing a | 00057150 6d 69 74 72 65 64 20 6a 6f 69 6e 2e 20 49 73 20 |mitred join. Is | 00057160 69 74 20 64 65 66 69 6e 65 64 20 61 73 20 28 28 |it defined as ((| 00057170 75 6e 73 69 67 6e 65 64 20 63 68 61 72 29 30 78 |unsigned char)0x| 00057180 30 30 29 2e 44 41 54 41 94 00 00 00 6a 6f 69 6e |00).DATA....join| 00057190 5f 72 6f 75 6e 64 0a 54 68 69 73 20 6d 61 63 72 |_round.This macr| 000571a0 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |o is defined in | 000571b0 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 |<drawmod.h=>draw| 000571c0 6d 6f 64 3e 2e 20 49 74 20 69 73 20 61 20 76 61 |mod>. It is a va| 000571d0 6c 75 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 |lue representing| 000571e0 20 61 20 72 6f 75 6e 64 65 64 20 6a 6f 69 6e 2e | a rounded join.| 000571f0 20 49 73 20 69 74 20 64 65 66 69 6e 65 64 20 61 | Is it defined a| 00057200 73 20 28 28 75 6e 73 69 67 6e 65 64 20 63 68 61 |s ((unsigned cha| 00057210 72 29 30 78 30 31 29 2e 44 49 52 24 88 00 00 00 |r)0x01).DIR$....| 00057220 88 00 00 00 a0 72 05 00 46 fd ff ff b6 08 b0 24 |.....r..F......$| 00057230 c4 01 00 00 13 00 00 00 00 00 00 00 61 72 69 74 |............arit| 00057240 68 5f 00 00 64 74 05 00 46 fd ff ff d0 2a ae 24 |h_..dt..F....*.$| 00057250 dd 01 00 00 13 00 00 00 00 00 00 00 65 6e 76 5f |............env_| 00057260 00 00 00 00 44 76 05 00 46 fd ff ff 7a c9 af 24 |....Dv..F...z..$| 00057270 75 00 00 00 13 00 00 00 00 00 00 00 6d 65 6d 5f |u...........mem_| 00057280 00 00 00 00 bc 76 05 00 46 fd ff ff 8a c0 ae 24 |.....v..F......$| 00057290 2e 01 00 00 13 00 00 00 00 00 00 00 6f 73 5f 00 |............os_.| 000572a0 44 41 54 41 c4 01 00 00 41 72 69 74 68 6d 65 74 |DATA....Arithmet| 000572b0 69 63 20 46 75 6e 63 74 69 6f 6e 73 0a 54 68 65 |ic Functions.The| 000572c0 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 76 |se functions hav| 000572d0 65 20 62 65 65 6e 20 6f 70 74 69 6d 69 73 65 64 |e been optimised| 000572e0 20 74 6f 20 6d 61 6b 65 20 74 68 65 6d 20 76 65 | to make them ve| 000572f0 72 79 20 66 61 73 74 2e 0a 0a 23 49 6e 64 65 6e |ry fast...#Inden| 00057300 74 20 35 0a 23 54 61 62 6c 65 20 33 20 32 30 0a |t 5.#Table 3 20.| 00057310 3c 5f 6b 65 72 6e 65 6c 5f 73 64 69 76 3e 0a 3c |<_kernel_sdiv>.<| 00057320 5f 6b 65 72 6e 65 6c 5f 73 64 69 76 31 30 3e 0a |_kernel_sdiv10>.| 00057330 3c 5f 6b 65 72 6e 65 6c 5f 73 72 65 6d 3e 0a 3c |<_kernel_srem>.<| 00057340 5f 6b 65 72 6e 65 6c 5f 75 64 69 76 3e 0a 3c 5f |_kernel_udiv>.<_| 00057350 6b 65 72 6e 65 6c 5f 75 64 69 76 31 30 3e 0a 3c |kernel_udiv10>.<| 00057360 5f 6b 65 72 6e 65 6c 5f 75 72 65 6d 3e 0a 23 45 |_kernel_urem>.#E| 00057370 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 |ndTable..#Indent| 00057380 20 30 0a 54 68 65 20 64 69 76 69 73 69 6f 6e 20 | 0.The division | 00057390 66 75 6e 63 74 69 6f 6e 73 20 61 6c 73 6f 20 63 |functions also c| 000573a0 61 6c 63 75 6c 61 74 65 20 74 68 65 20 72 65 6d |alculate the rem| 000573b0 61 69 6e 64 65 72 20 61 6e 64 20 72 65 74 75 72 |ainder and retur| 000573c0 6e 20 69 74 20 69 6e 20 74 68 65 20 73 65 63 6f |n it in the seco| 000573d0 6e 64 20 61 72 67 75 6d 65 6e 74 20 28 61 32 29 |nd argument (a2)| 000573e0 2e 20 41 6c 74 68 6f 75 67 68 20 74 68 69 73 20 |. Although this | 000573f0 69 73 20 6e 6f 74 20 61 63 63 65 73 73 69 62 6c |is not accessibl| 00057400 65 20 66 72 6f 6d 20 43 2c 20 75 73 69 6e 67 20 |e from C, using | 00057410 74 68 69 73 20 66 65 61 74 75 72 65 20 77 68 65 |this feature whe| 00057420 6e 20 69 6e 74 65 72 66 61 63 69 6e 67 20 66 72 |n interfacing fr| 00057430 6f 6d 20 41 73 73 65 6d 62 6c 79 20 4c 61 6e 67 |om Assembly Lang| 00057440 75 61 67 65 20 63 6f 75 6c 64 20 62 65 20 61 20 |uage could be a | 00057450 70 6f 74 65 6e 74 69 61 6c 20 74 69 6d 65 73 61 |potential timesa| 00057460 76 65 72 2e 44 41 54 41 dd 01 00 00 45 6e 76 69 |ver.DATA....Envi| 00057470 72 6f 6e 6d 65 6e 74 20 4d 61 6e 61 67 65 6d 65 |ronment Manageme| 00057480 6e 74 20 46 75 6e 63 74 69 6f 6e 73 0a 23 54 61 |nt Functions.#Ta| 00057490 62 6c 65 20 39 0a 3c 5f 6b 65 72 6e 65 6c 5f 63 |ble 9.<_kernel_c| 000574a0 75 72 72 65 6e 74 5f 73 74 61 63 6b 5f 63 68 75 |urrent_stack_chu| 000574b0 6e 6b 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 75 6e 77 |nk>.<_kernel_unw| 000574c0 69 6e 64 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 70 72 |ind>.<_kernel_pr| 000574d0 6f 63 6e 61 6d 65 3e 0a 3c 5f 6b 65 72 6e 65 6c |ocname>.<_kernel| 000574e0 5f 6c 61 6e 67 75 61 67 65 3e 0a 3c 5f 6b 65 72 |_language>.<_ker| 000574f0 6e 65 6c 5f 63 6f 6d 6d 61 6e 64 5f 73 74 72 69 |nel_command_stri| 00057500 6e 67 3d 3e 5f 6b 65 72 6e 65 6c 5f 63 6f 6d 6d |ng=>_kernel_comm| 00057510 61 6e 64 5f 73 74 72 3e 0a 3c 5f 6b 65 72 6e 65 |and_str>.<_kerne| 00057520 6c 5f 73 65 74 72 65 74 75 72 6e 63 6f 64 65 3e |l_setreturncode>| 00057530 0a 3c 5f 6b 65 72 6e 65 6c 5f 65 78 69 74 3e 0a |.<_kernel_exit>.| 00057540 3c 5f 6b 65 72 6e 65 6c 5f 72 61 69 73 65 5f 65 |<_kernel_raise_e| 00057550 72 72 6f 72 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 65 |rror>.<_kernel_e| 00057560 78 69 74 74 72 61 70 68 61 6e 64 6c 65 72 3e 0a |xittraphandler>.| 00057570 3c 5f 6b 65 72 6e 65 6c 5f 68 6f 73 74 6f 73 3e |<_kernel_hostos>| 00057580 0a 3c 5f 6b 65 72 6e 65 6c 5f 66 70 61 76 61 69 |.<_kernel_fpavai| 00057590 6c 61 62 6c 65 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f |lable>.<_kernel_| 000575a0 6c 61 73 74 5f 6f 73 65 72 72 6f 72 3d 3e 5f 6b |last_oserror=>_k| 000575b0 65 72 6e 65 6c 5f 6c 61 73 74 5f 6f 73 65 72 72 |ernel_last_oserr| 000575c0 6f 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 67 65 74 65 |o>.<_kernel_gete| 000575d0 6e 76 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 73 65 74 |nv>.<_kernel_set| 000575e0 65 6e 76 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 65 73 |env>.<_kernel_es| 000575f0 63 61 70 65 5f 73 65 65 6e 3e 0a 3c 5f 6b 65 72 |cape_seen>.<_ker| 00057600 6e 65 6c 5f 69 72 71 73 5f 6f 6e 3e 0a 3c 5f 6b |nel_irqs_on>.<_k| 00057610 65 72 6e 65 6c 5f 69 72 71 73 5f 6f 66 66 3e 0a |ernel_irqs_off>.| 00057620 3c 5f 6b 65 72 6e 65 6c 5f 69 72 71 73 5f 64 69 |<_kernel_irqs_di| 00057630 73 61 62 6c 65 64 3e 0a 23 45 6e 64 54 61 62 6c |sabled>.#EndTabl| 00057640 65 00 00 00 44 41 54 41 75 00 00 00 4d 65 6d 6f |e...DATAu...Memo| 00057650 72 79 20 4d 61 6e 61 67 65 6d 65 6e 74 20 46 75 |ry Management Fu| 00057660 6e 63 74 69 6f 6e 73 0a 23 49 6e 64 65 6e 74 20 |nctions.#Indent | 00057670 32 0a 3c 5f 6b 65 72 6e 65 6c 5f 61 6c 6c 6f 63 |2.<_kernel_alloc| 00057680 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 72 65 67 69 73 |>.<_kernel_regis| 00057690 74 65 72 5f 61 6c 6c 6f 63 73 3e 0a 3c 5f 6b 65 |ter_allocs>.<_ke| 000576a0 72 6e 65 6c 5f 72 65 67 69 73 74 65 72 5f 73 6c |rnel_register_sl| 000576b0 6f 74 65 78 74 65 6e 64 3e 00 00 00 44 41 54 41 |otextend>...DATA| 000576c0 2e 01 00 00 4f 70 65 72 61 74 69 6e 67 20 53 79 |....Operating Sy| 000576d0 73 74 65 6d 20 43 61 6c 6c 73 20 46 75 6e 63 74 |stem Calls Funct| 000576e0 69 6f 6e 73 0a 23 49 6e 64 65 6e 74 20 32 0a 23 |ions.#Indent 2.#| 000576f0 54 61 62 6c 65 20 37 0a 3c 5f 6b 65 72 6e 65 6c |Table 7.<_kernel| 00057700 5f 73 77 69 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 73 |_swi>.<_kernel_s| 00057710 77 69 5f 63 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 6f |wi_c>.<_kernel_o| 00057720 73 62 79 74 65 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f |sbyte>.<_kernel_| 00057730 6f 73 72 64 63 68 3e 0a 3c 5f 6b 65 72 6e 65 6c |osrdch>.<_kernel| 00057740 5f 6f 73 77 72 63 68 3e 0a 3c 5f 6b 65 72 6e 65 |_oswrch>.<_kerne| 00057750 6c 5f 6f 73 62 67 65 74 3e 0a 3c 5f 6b 65 72 6e |l_osbget>.<_kern| 00057760 65 6c 5f 6f 73 62 70 75 74 3e 0a 3c 5f 6b 65 72 |el_osbput>.<_ker| 00057770 6e 65 6c 5f 6f 73 67 62 70 62 3e 0a 3c 5f 6b 65 |nel_osgbpb>.<_ke| 00057780 72 6e 65 6c 5f 6f 73 77 6f 72 64 3e 0a 3c 5f 6b |rnel_osword>.<_k| 00057790 65 72 6e 65 6c 5f 6f 73 66 69 6e 64 3e 0a 3c 5f |ernel_osfind>.<_| 000577a0 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c 65 3e 0a 3c |kernel_osfile>.<| 000577b0 5f 6b 65 72 6e 65 6c 5f 6f 73 61 72 67 73 3e 0a |_kernel_osargs>.| 000577c0 3c 5f 6b 65 72 6e 65 6c 5f 6f 73 63 6c 69 3e 0a |<_kernel_oscli>.| 000577d0 3c 5f 6b 65 72 6e 65 6c 5f 73 79 73 74 65 6d 3e |<_kernel_system>| 000577e0 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 41 54 41 |.#EndTable..DATA| 000577f0 1b 01 00 00 44 65 73 6b 4c 69 62 3a 4b 62 64 2e |....DeskLib:Kbd.| 00057800 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 31 20 |h.Version: 1.01 | 00057810 28 32 34 20 4a 75 6c 20 31 39 39 33 29 0a 23 6c |(24 Jul 1993).#l| 00057820 69 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 |ine.This header | 00057830 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f |declares functio| 00057840 6e 73 20 66 6f 72 20 72 65 61 64 69 6e 67 20 6b |ns for reading k| 00057850 65 79 70 72 65 73 73 65 73 3a 0a 0a 46 75 6e 63 |eypresses:..Func| 00057860 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 |tions:..#indent | 00057870 31 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 |1.#Table columns| 00057880 20 33 0a 3c 4b 62 64 5f 4b 65 79 44 6f 77 6e 3e | 3.<Kbd_KeyDown>| 00057890 0a 3c 4b 62 64 5f 47 45 54 3e 0a 3c 4b 62 64 5f |.<Kbd_GET>.<Kbd_| 000578a0 47 65 74 4d 6f 64 69 66 69 65 72 73 3e 0a 23 45 |GetModifiers>.#E| 000578b0 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 0a |ndTable.#indent.| 000578c0 0a 54 79 70 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 |.Types:..#indent| 000578d0 20 39 0a 23 54 61 62 6c 65 20 31 20 32 30 0a 3c | 9.#Table 1 20.<| 000578e0 6b 62 64 5f 6e 65 67 69 6e 6b 65 79 3e 0a 3c 6b |kbd_neginkey>.<k| 000578f0 62 64 5f 6d 6f 64 69 66 69 65 72 73 3e 0a 23 45 |bd_modifiers>.#E| 00057900 6e 64 54 61 62 6c 65 00 44 49 52 24 d4 00 00 00 |ndTable.DIR$....| 00057910 d4 00 00 00 dc 79 05 00 46 ff ff ff 4f 9a 30 25 |.....y..F...O.0%| 00057920 40 01 00 00 13 00 00 00 00 00 00 00 47 45 54 00 |@...........GET.| 00057930 1c 7b 05 00 46 ff ff ff 09 a6 30 25 d2 01 00 00 |.{..F.....0%....| 00057940 13 00 00 00 00 00 00 00 47 65 74 4d 6f 64 69 66 |........GetModif| 00057950 69 65 72 73 00 00 00 00 f0 7c 05 00 46 ff ff ff |iers.....|..F...| 00057960 f9 92 30 25 45 01 00 00 13 00 00 00 00 00 00 00 |..0%E...........| 00057970 4b 65 79 44 6f 77 6e 00 38 7e 05 00 46 ff ff ff |KeyDown.8~..F...| 00057980 61 b9 30 25 90 01 00 00 13 00 00 00 00 00 00 00 |a.0%............| 00057990 6d 6f 64 69 66 69 65 72 73 00 00 00 c8 7f 05 00 |modifiers.......| 000579a0 46 ff ff ff 94 d5 30 25 f0 02 00 00 13 00 00 00 |F.....0%........| 000579b0 00 00 00 00 6e 65 67 69 6e 6b 65 79 00 00 00 00 |....neginkey....| 000579c0 b8 82 05 00 46 fd ff ff 1d 0d 56 26 12 01 00 00 |....F.....V&....| 000579d0 13 00 00 00 00 00 00 00 54 4c 00 00 44 41 54 41 |........TL..DATA| 000579e0 40 01 00 00 4b 62 64 5f 47 45 54 0a 53 79 6e 74 |@...Kbd_GET.Synt| 000579f0 61 78 3a 09 63 68 61 72 20 4b 62 64 5f 47 45 54 |ax:.char Kbd_GET| 00057a00 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 00057a10 09 3c 44 65 73 6b 4c 69 62 3a 4b 62 64 2e 68 3d |.<DeskLib:Kbd.h=| 00057a20 3e 4b 62 64 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |>Kbd>..Returns:.| 00057a30 41 53 43 49 49 20 63 6f 64 65 20 6f 66 20 6e 65 |ASCII code of ne| 00057a40 78 74 20 6b 65 79 20 70 72 65 73 73 65 64 2e 0a |xt key pressed..| 00057a50 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 00057a60 65 61 64 73 20 61 20 63 68 61 72 61 63 74 65 72 |eads a character| 00057a70 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e | from the curren| 00057a80 74 20 69 6e 70 75 74 20 73 74 72 65 61 6d 2e 20 |t input stream. | 00057a90 49 74 20 77 61 69 74 73 20 75 6e 74 69 6c 20 6f |It waits until o| 00057aa0 6e 65 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2c |ne is available,| 00057ab0 20 73 6f 20 6d 61 79 20 68 61 6c 74 20 74 68 65 | so may halt the| 00057ac0 20 70 72 6f 67 72 61 6d 20 74 65 6d 70 6f 72 61 | program tempora| 00057ad0 72 69 6c 79 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |rily...This func| 00057ae0 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 63 61 |tion is identica| 00057af0 6c 20 74 6f 20 4f 53 5f 52 65 61 64 43 2c 20 6f |l to OS_ReadC, o| 00057b00 72 20 3c 47 45 54 3d 3e 42 61 73 69 63 3a 47 45 |r <GET=>Basic:GE| 00057b10 54 3e 20 69 6e 20 42 61 73 69 63 2e 44 41 54 41 |T> in Basic.DATA| 00057b20 d2 01 00 00 4b 62 64 5f 47 65 74 4d 6f 64 69 66 |....Kbd_GetModif| 00057b30 69 65 72 73 0a 53 79 6e 74 61 78 3a 09 3c 6d 6f |iers.Syntax:.<mo| 00057b40 64 69 66 69 65 72 73 3e 20 4b 62 64 5f 47 65 74 |difiers> Kbd_Get| 00057b50 4d 6f 64 69 66 69 65 72 73 20 28 3c 42 4f 4f 4c |Modifiers (<BOOL| 00057b60 3e 20 6c 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c |> lr);.Header:.<| 00057b70 54 69 6d 73 4c 69 62 3a 4b 62 64 2e 68 3d 3e 4b |TimsLib:Kbd.h=>K| 00057b80 62 64 5f 54 4c 3e 0a 0a 53 79 6e 74 61 78 3a 09 |bd_TL>..Syntax:.| 00057b90 3c 6b 62 64 5f 6d 6f 64 69 66 69 65 72 73 3e 20 |<kbd_modifiers> | 00057ba0 4b 62 64 5f 47 65 74 4d 6f 64 69 66 69 65 72 73 |Kbd_GetModifiers| 00057bb0 20 28 3c 42 4f 4f 4c 3e 20 6c 72 29 3b 0a 48 65 | (<BOOL> lr);.He| 00057bc0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4b |ader:.<DeskLib:K| 00057bd0 62 64 2e 68 3d 3e 4b 62 64 3e 0a 0a 52 65 74 75 |bd.h=>Kbd>..Retu| 00057be0 72 6e 73 3a 09 54 68 65 20 73 74 61 74 75 73 20 |rns:.The status | 00057bf0 6f 66 20 74 68 65 20 6d 6f 64 69 66 69 65 72 20 |of the modifier | 00057c00 6b 65 79 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |keys...This func| 00057c10 74 69 6f 6e 20 66 69 6e 64 73 20 6f 75 74 20 74 |tion finds out t| 00057c20 68 65 20 73 74 61 74 65 20 6f 66 20 76 61 72 69 |he state of vari| 00057c30 6f 75 73 20 6d 6f 64 69 66 69 65 72 20 28 7b 2a |ous modifier ({*| 00057c40 7d 53 68 69 66 74 7b 2a 7d 2c 20 7b 2a 7d 43 74 |}Shift{*}, {*}Ct| 00057c50 72 6c 7b 2a 7d 20 65 74 63 29 20 6b 65 79 73 2e |rl{*} etc) keys.| 00057c60 20 49 66 20 2f 6c 72 2f 20 69 73 20 3c 54 52 55 | If /lr/ is <TRU| 00057c70 45 3e 20 74 68 65 6e 20 74 68 65 20 73 74 72 75 |E> then the stru| 00057c80 63 74 75 72 65 20 72 65 74 75 72 6e 65 64 20 77 |cture returned w| 00057c90 69 6c 6c 20 63 6f 72 72 65 63 74 6c 79 20 63 6f |ill correctly co| 00057ca0 6e 74 61 69 6e 20 74 68 65 20 73 74 61 74 65 20 |ntain the state | 00057cb0 6f 66 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 |of the individua| 00057cc0 6c 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 |l left and right| 00057cd0 20 6b 65 79 73 2c 20 65 6c 73 65 20 65 69 74 68 | keys, else eith| 00057ce0 65 72 20 77 69 6c 6c 20 63 6f 75 6e 74 2e 00 00 |er will count...| 00057cf0 44 41 54 41 45 01 00 00 4b 62 64 5f 4b 65 79 44 |DATAE...Kbd_KeyD| 00057d00 6f 77 6e 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f |own.Syntax:.<BOO| 00057d10 4c 3e 20 4b 62 64 5f 4b 65 79 44 6f 77 6e 20 28 |L> Kbd_KeyDown (| 00057d20 69 6e 74 20 6b 65 79 6e 75 6d 29 3b 0a 48 65 61 |int keynum);.Hea| 00057d30 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4b 62 |der:.<DeskLib:Kb| 00057d40 64 2e 68 3d 3e 4b 62 64 3e 0a 0a 52 65 74 75 72 |d.h=>Kbd>..Retur| 00057d50 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 74 68 |ns:.<TRUE> if th| 00057d60 65 20 6b 65 79 20 69 73 20 62 65 69 6e 67 20 70 |e key is being p| 00057d70 72 65 73 73 65 64 2e 0a 0a 54 68 69 73 20 66 75 |ressed...This fu| 00057d80 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 20 74 6f |nction checks to| 00057d90 20 73 65 65 20 69 66 20 74 68 65 20 67 69 76 65 | see if the give| 00057da0 6e 20 6b 65 79 20 69 73 20 63 75 72 72 65 6e 74 |n key is current| 00057db0 6c 79 20 62 65 69 6e 67 20 70 72 65 73 73 65 64 |ly being pressed| 00057dc0 20 28 6e 6f 74 20 64 65 70 72 65 73 73 65 64 20 | (not depressed | 00057dd0 2d 20 77 65 27 72 65 20 6e 6f 74 20 69 6e 74 65 |- we're not inte| 00057de0 72 65 73 74 65 64 20 69 6e 20 69 74 73 20 6d 65 |rested in its me| 00057df0 6e 74 61 6c 20 73 74 61 74 65 29 2e 0a 0a 2f 6b |ntal state).../k| 00057e00 65 79 6e 75 6d 2f 20 69 73 20 28 2d 31 29 2d 3c |eynum/ is (-1)-<| 00057e10 69 6e 74 65 72 6e 61 6c 20 6b 65 79 20 6e 75 6d |internal key num| 00057e20 62 65 72 3d 3e 53 57 49 3a 6f 73 5f 62 79 74 65 |ber=>SWI:os_byte| 00057e30 31 32 31 61 3e 00 00 00 44 41 54 41 90 01 00 00 |121a>...DATA....| 00057e40 6b 62 64 5f 6d 6f 64 69 66 69 65 72 73 0a 54 68 |kbd_modifiers.Th| 00057e50 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00057e60 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 4b |ed in <DeskLib:K| 00057e70 62 64 2e 68 3d 3e 4b 62 64 3e 2e 20 49 74 20 69 |bd.h=>Kbd>. It i| 00057e80 73 20 61 20 73 74 72 75 63 74 75 72 65 20 75 73 |s a structure us| 00057e90 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 73 |ed to hold the s| 00057ea0 74 61 74 75 73 20 6f 66 20 74 68 65 20 6d 6f 64 |tatus of the mod| 00057eb0 69 66 69 65 72 20 6b 65 79 73 20 61 73 20 66 6f |ifier keys as fo| 00057ec0 6c 6c 6f 77 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |llows:.. \{. | 00057ed0 20 75 6e 73 69 67 6e 65 64 20 61 6c 74 09 09 3a | unsigned alt..:| 00057ee0 20 31 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 | 1;. unsigned| 00057ef0 20 63 74 72 6c 09 09 3a 20 31 3b 0a 20 20 20 20 | ctrl..: 1;. | 00057f00 75 6e 73 69 67 6e 65 64 20 73 68 69 66 74 09 09 |unsigned shift..| 00057f10 3a 20 31 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 |: 1;. unsigne| 00057f20 64 20 6c 65 66 74 5f 61 6c 74 09 09 3a 20 31 3b |d left_alt..: 1;| 00057f30 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6c 65 |. unsigned le| 00057f40 66 74 5f 63 74 72 6c 09 09 3a 20 31 3b 0a 20 20 |ft_ctrl..: 1;. | 00057f50 20 20 75 6e 73 69 67 6e 65 64 20 6c 65 66 74 5f | unsigned left_| 00057f60 73 68 69 66 74 09 09 3a 20 31 3b 0a 20 20 20 20 |shift..: 1;. | 00057f70 75 6e 73 69 67 6e 65 64 20 72 69 67 68 74 5f 61 |unsigned right_a| 00057f80 6c 74 09 09 3a 20 31 3b 0a 20 20 20 20 75 6e 73 |lt..: 1;. uns| 00057f90 69 67 6e 65 64 20 72 69 67 68 74 5f 63 74 72 6c |igned right_ctrl| 00057fa0 09 09 3a 20 31 3b 0a 20 20 20 20 75 6e 73 69 67 |..: 1;. unsig| 00057fb0 6e 65 64 20 72 69 67 68 74 5f 73 68 69 66 74 09 |ned right_shift.| 00057fc0 3a 20 31 3b 0a 20 20 7d 44 41 54 41 f0 02 00 00 |: 1;. }DATA....| 00057fd0 6b 62 64 5f 6e 65 67 69 6e 6b 65 79 0a 54 68 69 |kbd_neginkey.Thi| 00057fe0 73 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 |s enumerated typ| 00057ff0 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 00058000 3c 44 65 73 6b 4c 69 62 3a 4b 62 64 2e 68 3d 3e |<DeskLib:Kbd.h=>| 00058010 4b 62 64 3e 2e 20 49 74 20 63 6f 6e 74 61 69 6e |Kbd>. It contain| 00058020 73 20 74 68 65 20 6e 65 67 61 74 69 76 65 20 69 |s the negative i| 00058030 6e 6b 65 79 20 63 6f 64 65 73 20 72 65 74 75 72 |nkey codes retur| 00058040 6e 65 64 20 62 79 20 74 68 65 20 6b 65 79 73 20 |ned by the keys | 00058050 79 6f 75 20 61 72 65 20 6d 6f 73 74 20 6c 69 6b |you are most lik| 00058060 65 6c 79 20 74 6f 20 6e 65 65 64 20 74 6f 20 74 |ely to need to t| 00058070 65 73 74 20 66 6f 72 20 69 6e 20 61 20 57 69 6d |est for in a Wim| 00058080 70 20 65 6e 76 69 72 6f 6e 65 6d 6e 74 2e 0a 0a |p environemnt...| 00058090 5c 7b 0a 20 20 20 20 69 6e 6b 65 79 5f 41 44 4a |\{. inkey_ADJ| 000580a0 55 53 54 09 3d 20 2d 31 32 2c 09 2f 2a 20 41 64 |UST.= -12,./* Ad| 000580b0 6a 75 73 74 20 62 75 74 74 6f 6e 20 20 20 20 2a |just button *| 000580c0 2f 0a 20 20 20 20 69 6e 6b 65 79 5f 4d 45 4e 55 |/. inkey_MENU| 000580d0 09 09 3d 20 2d 31 31 2c 09 2f 2a 20 4d 65 6e 75 |..= -11,./* Menu| 000580e0 20 62 75 74 74 6f 6e 20 20 20 20 20 20 2a 2f 0a | button */.| 000580f0 20 20 20 20 69 6e 6b 65 79 5f 53 45 4c 45 43 54 | inkey_SELECT| 00058100 09 3d 20 2d 31 30 2c 09 2f 2a 20 53 65 6c 65 63 |.= -10,./* Selec| 00058110 74 20 62 75 74 74 6f 6e 20 20 20 20 2a 2f 0a 20 |t button */. | 00058120 20 20 20 69 6e 6b 65 79 5f 52 41 4c 54 09 09 3d | inkey_RALT..=| 00058130 20 2d 39 2c 09 2f 2a 20 52 69 67 68 74 20 41 4c | -9,./* Right AL| 00058140 54 20 6b 65 79 20 20 20 20 2a 2f 0a 20 20 20 20 |T key */. | 00058150 69 6e 6b 65 79 5f 4c 41 4c 54 09 09 3d 20 2d 36 |inkey_LALT..= -6| 00058160 2c 09 2f 2a 20 4c 65 66 74 20 41 4c 54 20 6b 65 |,./* Left ALT ke| 00058170 79 20 20 20 20 20 2a 2f 0a 20 20 20 20 69 6e 6b |y */. ink| 00058180 65 79 5f 41 4c 54 09 09 3d 20 2d 33 2c 09 2f 2a |ey_ALT..= -3,./*| 00058190 20 45 69 74 68 65 72 20 41 4c 54 20 6b 65 79 20 | Either ALT key | 000581a0 20 20 2a 2f 0a 20 20 20 20 69 6e 6b 65 79 5f 52 | */. inkey_R| 000581b0 43 54 52 4c 09 09 3d 20 2d 38 2c 09 2f 2a 20 52 |CTRL..= -8,./* R| 000581c0 69 67 68 74 20 43 54 52 4c 20 6b 65 79 20 20 20 |ight CTRL key | 000581d0 2a 2f 0a 20 20 20 20 69 6e 6b 65 79 5f 4c 43 54 |*/. inkey_LCT| 000581e0 52 4c 09 09 3d 20 2d 35 2c 09 2f 2a 20 4c 65 66 |RL..= -5,./* Lef| 000581f0 74 20 43 54 52 4c 20 6b 65 79 20 20 20 20 2a 2f |t CTRL key */| 00058200 0a 20 20 20 20 69 6e 6b 65 79 5f 43 54 52 4c 09 |. inkey_CTRL.| 00058210 09 3d 20 2d 32 2c 09 2f 2a 20 45 69 74 68 65 72 |.= -2,./* Either| 00058220 20 43 54 52 4c 20 6b 65 79 20 20 2a 2f 0a 20 20 | CTRL key */. | 00058230 20 20 69 6e 6b 65 79 5f 52 53 48 49 46 54 09 3d | inkey_RSHIFT.=| 00058240 20 2d 37 2c 09 2f 2a 20 52 69 67 68 74 20 53 48 | -7,./* Right SH| 00058250 49 46 54 20 6b 65 79 20 20 2a 2f 0a 20 20 20 20 |IFT key */. | 00058260 69 6e 6b 65 79 5f 4c 53 48 49 46 54 09 3d 20 2d |inkey_LSHIFT.= -| 00058270 34 2c 09 2f 2a 20 4c 65 66 74 20 53 48 49 46 54 |4,./* Left SHIFT| 00058280 20 6b 65 79 20 20 20 2a 2f 0a 20 20 20 20 69 6e | key */. in| 00058290 6b 65 79 5f 53 48 49 46 54 09 09 3d 20 2d 31 09 |key_SHIFT..= -1.| 000582a0 2f 2a 20 45 69 74 68 65 72 20 53 48 49 46 54 20 |/* Either SHIFT | 000582b0 6b 65 79 20 2a 2f 0a 7d 44 41 54 41 12 01 00 00 |key */.}DATA....| 000582c0 54 69 6d 73 4c 69 62 3a 4b 62 64 2e 68 0a 54 68 |TimsLib:Kbd.h.Th| 000582d0 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |is header declar| 000582e0 65 73 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 20 |es one function | 000582f0 61 6e 64 20 74 79 70 65 20 66 6f 72 20 74 68 65 |and type for the| 00058300 20 70 75 72 70 6f 73 65 20 6f 66 20 72 65 61 64 | purpose of read| 00058310 69 6e 67 20 74 68 65 20 73 74 61 74 75 73 20 6f |ing the status o| 00058320 66 20 74 68 65 20 6d 6f 64 69 66 69 65 72 20 6b |f the modifier k| 00058330 65 79 73 20 28 53 68 69 66 74 2c 20 43 74 72 6c |eys (Shift, Ctrl| 00058340 20 65 74 63 29 2e 20 54 68 69 73 20 69 73 20 75 | etc). This is u| 00058350 73 65 66 75 6c 20 69 6e 20 68 61 6e 64 6c 69 6e |seful in handlin| 00058360 67 20 6d 6f 75 73 65 20 63 6c 69 63 6b 73 20 73 |g mouse clicks s| 00058370 6f 6d 65 74 69 6d 65 73 20 28 65 67 20 53 68 69 |ometimes (eg Shi| 00058380 66 74 2d 20 53 65 6c 65 63 74 20 6f 6e 20 21 50 |ft- Select on !P| 00058390 72 69 6e 74 65 72 73 29 2e 0a 0a 46 75 6e 63 74 |rinters)...Funct| 000583a0 69 6f 6e 3a 09 3c 4b 62 64 5f 47 65 74 4d 6f 64 |ion:.<Kbd_GetMod| 000583b0 69 66 69 65 72 73 3e 0a 0a 54 79 70 65 3a 09 3c |ifiers>..Type:.<| 000583c0 6d 6f 64 69 66 69 65 72 73 3e 00 00 44 41 54 41 |modifiers>..DATA| 000583d0 37 03 00 00 6b 65 72 6e 65 6c 2e 68 0a 54 68 65 |7...kernel.h.The| 000583e0 20 5c 3c 6b 65 72 6e 65 6c 2e 68 3e 20 68 65 61 | \<kernel.h> hea| 000583f0 64 65 72 20 64 65 63 6c 61 72 65 73 20 6d 61 6e |der declares man| 00058400 79 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 |y functions whic| 00058410 68 20 61 63 63 65 73 73 20 74 68 65 20 62 75 69 |h access the bui| 00058420 6c 74 20 69 6e 20 66 65 61 74 75 72 65 73 20 6f |lt in features o| 00058430 66 20 52 49 53 43 20 4f 53 2e 20 4f 62 76 69 6f |f RISC OS. Obvio| 00058440 75 73 6c 79 2c 20 70 72 6f 67 72 61 6d 73 20 75 |usly, programs u| 00058450 73 69 6e 67 20 74 68 65 73 65 20 66 75 6e 63 74 |sing these funct| 00058460 69 6f 6e 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 |ions will not be| 00058470 20 70 6f 72 74 61 62 6c 65 20 62 65 74 77 65 65 | portable betwee| 00058480 6e 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 70 |n different comp| 00058490 75 74 65 72 73 20 75 6e 6c 65 73 73 20 74 68 65 |uters unless the| 000584a0 20 73 61 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 | same functions | 000584b0 61 72 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e |are available on| 000584c0 20 62 6f 74 68 2e 20 49 74 20 61 6c 73 6f 20 64 | both. It also d| 000584d0 65 66 69 6e 65 73 20 74 65 6e 20 74 79 70 65 73 |efines ten types| 000584e0 20 61 6e 64 20 74 77 6f 20 6d 61 63 72 6f 73 2e | and two macros.| 000584f0 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 |..Functions:..#I| 00058500 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 32 |ndent 4.#Table 2| 00058510 20 32 35 0a 3c 45 6e 76 69 72 6f 6e 6d 65 6e 74 | 25.<Environment| 00058520 20 4d 61 6e 61 67 65 6d 65 6e 74 3d 3e 6b 5f 65 | Management=>k_e| 00058530 6e 76 5f 3e 0a 3c 4f 70 65 72 61 74 69 6e 67 20 |nv_>.<Operating | 00058540 53 79 73 74 65 6d 20 43 61 6c 6c 73 3d 3e 6b 5f |System Calls=>k_| 00058550 6f 73 5f 3e 0a 3c 4d 65 6d 6f 72 79 20 4d 61 6e |os_>.<Memory Man| 00058560 61 67 65 6d 65 6e 74 3d 3e 6b 5f 6d 65 6d 5f 3e |agement=>k_mem_>| 00058570 0a 3c 41 72 69 74 68 6d 65 74 69 63 3d 3e 6b 5f |.<Arithmetic=>k_| 00058580 61 72 69 74 68 5f 3e 0a 23 45 6e 64 54 61 62 6c |arith_>.#EndTabl| 00058590 65 0a 0a 23 49 6e 64 65 6e 74 20 30 0a 4d 61 63 |e..#Indent 0.Mac| 000585a0 72 6f 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 31 31 |ros:..#Indent 11| 000585b0 0a 23 54 61 62 6c 65 20 31 20 32 30 0a 3c 5f 6b |.#Table 1 20.<_k| 000585c0 65 72 6e 65 6c 5f 4e 4f 4e 58 3e 0a 3c 5f 6b 65 |ernel_NONX>.<_ke| 000585d0 72 6e 65 6c 5f 45 52 52 4f 52 3e 0a 23 45 6e 64 |rnel_ERROR>.#End| 000585e0 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 30 |Table..#Indent 0| 000585f0 0a 54 79 70 65 73 3a 0a 0a 23 49 6e 64 65 6e 74 |.Types:..#Indent| 00058600 20 37 0a 23 54 61 62 6c 65 20 35 20 32 33 0a 3c | 7.#Table 5 23.<| 00058610 5f 6b 65 72 6e 65 6c 5f 6f 73 65 72 72 6f 72 3e |_kernel_oserror>| 00058620 0a 3c 5f 6b 65 72 6e 65 6c 5f 73 74 61 63 6b 5f |.<_kernel_stack_| 00058630 63 68 75 6e 6b 3e 0a 3c 5f 65 78 74 65 6e 64 65 |chunk>.<_extende| 00058640 64 5f 66 70 5f 6e 75 6d 62 65 72 3e 0a 3c 5f 6b |d_fp_number>.<_k| 00058650 65 72 6e 65 6c 5f 75 6e 77 69 6e 64 62 6c 6f 63 |ernel_unwindbloc| 00058660 6b 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 73 77 69 5f |k>.<_kernel_swi_| 00058670 72 65 67 73 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 6f |regs>.<_kernel_o| 00058680 73 67 62 70 62 5f 62 6c 6f 63 6b 3d 3e 5f 6b 65 |sgbpb_block=>_ke| 00058690 72 6e 65 6c 5f 6f 73 67 62 70 62 5f 62 6c 6f 63 |rnel_osgbpb_bloc| 000586a0 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 6f 73 66 69 6c |>.<_kernel_osfil| 000586b0 65 5f 62 6c 6f 63 6b 3d 3e 5f 6b 65 72 6e 65 6c |e_block=>_kernel| 000586c0 5f 6f 73 66 69 6c 65 5f 62 6c 6f 63 3e 0a 3c 61 |_osfile_bloc>.<a| 000586d0 6c 6c 6f 63 70 72 6f 63 3e 0a 3c 66 72 65 65 70 |llocproc>.<freep| 000586e0 72 6f 63 3e 0a 3c 5f 6b 65 72 6e 65 6c 5f 45 78 |roc>.<_kernel_Ex| 000586f0 74 65 6e 64 50 72 6f 63 3e 0a 23 45 6e 64 54 61 |tendProc>.#EndTa| 00058700 62 6c 65 00 44 41 54 41 49 01 00 00 44 65 73 6b |ble.DATAI...Desk| 00058710 4c 69 62 3a 4b 65 72 6e 65 6c 53 57 49 73 2e 68 |Lib:KernelSWIs.h| 00058720 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 32 20 28 |.Version: 1.02 (| 00058730 33 20 4a 75 6c 20 31 39 39 34 29 0a 23 6c 69 6e |3 Jul 1994).#lin| 00058740 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 |e.This header de| 00058750 63 6c 61 72 65 73 20 74 68 72 65 65 20 6c 6f 77 |clares three low| 00058760 2d 6c 65 76 65 6c 20 66 75 6e 63 74 69 6f 6e 73 |-level functions| 00058770 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 00058780 69 6e 64 65 6e 74 20 33 0a 23 54 61 62 6c 65 20 |indent 3.#Table | 00058790 63 6f 6c 75 6d 6e 73 20 32 0a 3c 4f 53 5f 42 79 |columns 2.<OS_By| 000587a0 74 65 3d 3e 4f 53 5f 42 79 74 65 5f 3e 0a 3c 4f |te=>OS_Byte_>.<O| 000587b0 53 5f 57 6f 72 64 3e 0a 3c 4f 53 5f 52 65 61 64 |S_Word>.<OS_Read| 000587c0 56 61 72 56 61 6c 3e 0a 3c 4f 53 5f 52 65 61 64 |VarVal>.<OS_Read| 000587d0 4d 6f 64 65 56 61 72 69 61 62 6c 65 3e 0a 23 45 |ModeVariable>.#E| 000587e0 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 0a |ndTable.#indent.| 000587f0 0a 54 79 70 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 |.Types:..#indent| 00058800 20 34 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e | 4.#Table column| 00058810 73 20 32 0a 3c 6f 73 62 79 74 65 5f 6e 75 6d 62 |s 2.<osbyte_numb| 00058820 65 72 3e 0a 3c 6f 73 77 6f 72 64 5f 6e 75 6d 62 |er>.<osword_numb| 00058830 65 72 3e 0a 3c 6d 6f 64 65 5f 76 61 72 69 61 62 |er>.<mode_variab| 00058840 6c 65 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 00 |le>.#EndTable...| 00058850 44 49 52 24 4c 00 00 00 4c 00 00 00 9c 88 05 00 |DIR$L...L.......| 00058860 46 ff ff ff 83 4c 46 26 c5 00 00 00 13 00 00 00 |F....LF&........| 00058870 00 00 00 00 62 6c 6f 63 6b 00 00 00 64 89 05 00 |....block...d...| 00058880 46 ff ff ff b1 fb 45 26 a5 00 00 00 13 00 00 00 |F.....E&........| 00058890 00 00 00 00 70 72 65 73 73 00 00 00 44 41 54 41 |....press...DATA| 000588a0 c5 00 00 00 6b 65 79 5f 62 6c 6f 63 6b 0a 54 68 |....key_block.Th| 000588b0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000588c0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 |ed in <DeskLib:W| 000588d0 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 |imp.h=>Wimp>. It| 000588e0 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 000588f0 63 6f 6e 74 61 69 6e 69 6e 67 20 69 6e 66 6f 72 |containing infor| 00058900 6d 61 74 69 6f 6e 20 72 65 74 75 72 6e 65 64 20 |mation returned | 00058910 62 79 20 61 20 4b 65 79 5f 50 72 65 73 73 65 64 |by a Key_Pressed| 00058920 20 65 76 65 6e 74 2e 0a 0a 20 20 5c 7b 0a 20 20 | event... \{. | 00058930 20 20 3c 63 61 72 65 74 5f 62 6c 6f 63 6b 3e 09 | <caret_block>.| 00058940 63 61 72 65 74 3b 0a 20 20 20 20 3c 6b 65 79 5f |caret;. <key_| 00058950 70 72 65 73 73 3e 09 09 63 6f 64 65 3b 0a 20 20 |press>..code;. | 00058960 7d 00 00 00 44 41 54 41 a5 00 00 00 6b 65 79 5f |}...DATA....key_| 00058970 70 72 65 73 73 0a 54 68 69 73 20 74 79 70 65 20 |press.This type | 00058980 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 00058990 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 |eskLib:Wimp.h=>W| 000589a0 69 6d 70 3e 20 61 73 20 61 20 74 79 70 65 20 63 |imp> as a type c| 000589b0 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e |apable of holdin| 000589c0 67 20 61 20 6b 65 79 20 63 6f 64 65 20 61 73 20 |g a key code as | 000589d0 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 |returned by the | 000589e0 57 69 6d 70 2e 20 49 74 20 69 73 20 61 63 74 75 |Wimp. It is actu| 000589f0 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 61 73 20 |ally defined as | 00058a00 61 6e 20 2f 69 6e 74 2f 2e 00 00 00 44 41 54 41 |an /int/....DATA| 00058a10 78 07 00 00 44 65 73 6b 4c 69 62 3a 4b 65 79 43 |x...DeskLib:KeyC| 00058a20 6f 64 65 73 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 |odes.h.Version: | 00058a30 31 2e 30 30 20 28 32 34 20 4a 61 6e 20 31 39 39 |1.00 (24 Jan 199| 00058a40 32 29 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |2).This header d| 00058a50 65 66 69 6e 65 73 20 61 6c 6c 20 74 68 65 20 6b |efines all the k| 00058a60 65 79 63 6f 64 65 73 20 28 61 73 20 75 73 65 64 |eycodes (as used| 00058a70 20 62 79 20 74 68 65 20 57 49 4d 50 29 20 6f 66 | by the WIMP) of| 00058a80 20 73 70 65 63 69 61 6c 20 6b 65 79 73 20 75 73 | special keys us| 00058a90 69 6e 67 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e |ing the followin| 00058aa0 67 20 6d 61 63 72 6f 73 3a 0a 0a 23 74 61 62 6c |g macros:..#tabl| 00058ab0 65 20 33 34 20 31 39 0a 42 41 43 4b 53 50 41 43 |e 34 19.BACKSPAC| 00058ac0 45 0a 52 45 54 55 52 4e 0a 45 53 43 41 50 45 0a |E.RETURN.ESCAPE.| 00058ad0 48 4f 4d 45 0a 44 45 4c 45 54 45 0a 46 31 0a 46 |HOME.DELETE.F1.F| 00058ae0 32 0a 46 33 0a 46 34 0a 46 35 0a 46 36 0a 46 37 |2.F3.F4.F5.F6.F7| 00058af0 0a 46 38 0a 46 39 0a 46 31 30 0a 46 31 31 0a 46 |.F8.F9.F10.F11.F| 00058b00 31 32 0a 50 52 49 4e 54 0a 54 41 42 0a 43 4f 50 |12.PRINT.TAB.COP| 00058b10 59 0a 43 55 52 53 4f 52 4c 45 46 54 0a 43 55 52 |Y.CURSORLEFT.CUR| 00058b20 53 4f 52 52 49 47 48 54 0a 43 55 52 53 4f 52 44 |SORRIGHT.CURSORD| 00058b30 4f 57 4e 0a 43 55 52 53 4f 52 55 50 0a 50 41 47 |OWN.CURSORUP.PAG| 00058b40 45 44 4f 57 4e 0a 50 41 47 45 55 50 0a 49 4e 53 |EDOWN.PAGEUP.INS| 00058b50 45 52 54 0a 53 48 49 46 54 5f 42 41 43 4b 53 50 |ERT.SHIFT_BACKSP| 00058b60 41 43 45 20 a4 0a 53 48 49 46 54 5f 52 45 54 55 |ACE ..SHIFT_RETU| 00058b70 52 4e 20 20 20 20 a4 0a 53 48 49 46 54 5f 45 53 |RN ..SHIFT_ES| 00058b80 43 41 50 45 20 20 20 20 a4 0a 53 48 49 46 54 5f |CAPE ..SHIFT_| 00058b90 48 4f 4d 45 20 20 20 20 20 20 a4 0a 53 48 49 46 |HOME ..SHIF| 00058ba0 54 5f 44 45 4c 45 54 45 20 20 20 20 a4 0a 53 48 |T_DELETE ..SH| 00058bb0 49 46 54 5f 46 31 0a 53 48 49 46 54 5f 46 32 0a |IFT_F1.SHIFT_F2.| 00058bc0 53 48 49 46 54 5f 46 33 0a 53 48 49 46 54 5f 46 |SHIFT_F3.SHIFT_F| 00058bd0 34 0a 53 48 49 46 54 5f 46 35 0a 53 48 49 46 54 |4.SHIFT_F5.SHIFT| 00058be0 5f 46 36 0a 53 48 49 46 54 5f 46 37 0a 53 48 49 |_F6.SHIFT_F7.SHI| 00058bf0 46 54 5f 46 38 0a 53 48 49 46 54 5f 46 39 0a 53 |FT_F8.SHIFT_F9.S| 00058c00 48 49 46 54 5f 46 31 30 0a 53 48 49 46 54 5f 46 |HIFT_F10.SHIFT_F| 00058c10 31 31 0a 53 48 49 46 54 5f 46 31 32 0a 53 48 49 |11.SHIFT_F12.SHI| 00058c20 46 54 5f 50 52 49 4e 54 0a 53 48 49 46 54 5f 54 |FT_PRINT.SHIFT_T| 00058c30 41 42 0a 53 48 49 46 54 5f 43 4f 50 59 0a 53 48 |AB.SHIFT_COPY.SH| 00058c40 49 46 54 5f 43 55 52 53 4f 52 4c 45 46 54 0a 53 |IFT_CURSORLEFT.S| 00058c50 48 49 46 54 5f 43 55 52 53 4f 52 52 49 47 48 54 |HIFT_CURSORRIGHT| 00058c60 0a 53 48 49 46 54 5f 43 55 52 53 4f 52 44 4f 57 |.SHIFT_CURSORDOW| 00058c70 4e 0a 53 48 49 46 54 5f 43 55 52 53 4f 52 55 50 |N.SHIFT_CURSORUP| 00058c80 0a 53 48 49 46 54 5f 50 41 47 45 44 4f 57 4e 0a |.SHIFT_PAGEDOWN.| 00058c90 53 48 49 46 54 5f 50 41 47 45 55 50 0a 53 48 49 |SHIFT_PAGEUP.SHI| 00058ca0 46 54 5f 49 4e 53 45 52 54 0a 43 54 52 4c 5f 42 |FT_INSERT.CTRL_B| 00058cb0 41 43 4b 53 50 41 43 45 20 20 a4 0a 43 54 52 4c |ACKSPACE ..CTRL| 00058cc0 5f 52 45 54 55 52 4e 20 20 20 20 20 a4 0a 43 54 |_RETURN ..CT| 00058cd0 52 4c 5f 45 53 43 41 50 45 20 20 20 20 20 a4 0a |RL_ESCAPE ..| 00058ce0 43 54 52 4c 5f 48 4f 4d 45 20 20 20 20 20 20 20 |CTRL_HOME | 00058cf0 a4 0a 43 54 52 4c 5f 44 45 4c 45 54 45 20 20 20 |..CTRL_DELETE | 00058d00 20 20 a4 0a 43 54 52 4c 5f 46 31 0a 43 54 52 4c | ..CTRL_F1.CTRL| 00058d10 5f 46 32 0a 43 54 52 4c 5f 46 33 0a 43 54 52 4c |_F2.CTRL_F3.CTRL| 00058d20 5f 46 34 0a 43 54 52 4c 5f 46 35 0a 43 54 52 4c |_F4.CTRL_F5.CTRL| 00058d30 5f 46 36 0a 43 54 52 4c 5f 46 37 0a 43 54 52 4c |_F6.CTRL_F7.CTRL| 00058d40 5f 46 38 0a 43 54 52 4c 5f 46 39 0a 43 54 52 4c |_F8.CTRL_F9.CTRL| 00058d50 5f 46 31 30 0a 43 54 52 4c 5f 46 31 31 0a 43 54 |_F10.CTRL_F11.CT| 00058d60 52 4c 5f 46 31 32 0a 43 54 52 4c 5f 50 52 49 4e |RL_F12.CTRL_PRIN| 00058d70 54 0a 43 54 52 4c 5f 54 41 42 0a 43 54 52 4c 5f |T.CTRL_TAB.CTRL_| 00058d80 43 4f 50 59 0a 43 54 52 4c 5f 43 55 52 53 4f 52 |COPY.CTRL_CURSOR| 00058d90 4c 45 46 54 0a 43 54 52 4c 5f 43 55 52 53 4f 52 |LEFT.CTRL_CURSOR| 00058da0 52 49 47 48 54 0a 43 54 52 4c 5f 43 55 52 53 4f |RIGHT.CTRL_CURSO| 00058db0 52 44 4f 57 4e 0a 43 54 52 4c 5f 43 55 52 53 4f |RDOWN.CTRL_CURSO| 00058dc0 52 55 50 0a 43 54 52 4c 5f 50 41 47 45 44 4f 57 |RUP.CTRL_PAGEDOW| 00058dd0 4e 0a 43 54 52 4c 5f 50 41 47 45 55 50 0a 43 54 |N.CTRL_PAGEUP.CT| 00058de0 52 4c 5f 49 4e 53 45 52 54 0a 43 54 52 4c 5f 41 |RL_INSERT.CTRL_A| 00058df0 0a 43 54 52 4c 5f 42 0a 43 54 52 4c 5f 43 0a 43 |.CTRL_B.CTRL_C.C| 00058e00 54 52 4c 5f 44 0a 43 54 52 4c 5f 45 0a 43 54 52 |TRL_D.CTRL_E.CTR| 00058e10 4c 5f 46 0a 43 54 52 4c 5f 47 0a 43 54 52 4c 5f |L_F.CTRL_G.CTRL_| 00058e20 48 0a 43 54 52 4c 5f 49 0a 43 54 52 4c 5f 4a 0a |H.CTRL_I.CTRL_J.| 00058e30 43 54 52 4c 5f 4b 0a 43 54 52 4c 5f 4c 0a 43 54 |CTRL_K.CTRL_L.CT| 00058e40 52 4c 5f 4d 0a 43 54 52 4c 5f 4e 0a 43 54 52 4c |RL_M.CTRL_N.CTRL| 00058e50 5f 4f 0a 43 54 52 4c 5f 50 0a 43 54 52 4c 5f 51 |_O.CTRL_P.CTRL_Q| 00058e60 0a 43 54 52 4c 5f 52 0a 43 54 52 4c 5f 53 0a 43 |.CTRL_R.CTRL_S.C| 00058e70 54 52 4c 5f 54 0a 43 54 52 4c 5f 55 0a 43 54 52 |TRL_T.CTRL_U.CTR| 00058e80 4c 5f 56 0a 43 54 52 4c 5f 57 0a 43 54 52 4c 5f |L_V.CTRL_W.CTRL_| 00058e90 58 0a 43 54 52 4c 5f 59 0a 43 54 52 4c 5f 5a 0a |X.CTRL_Y.CTRL_Z.| 00058ea0 43 54 52 4c 5f 53 48 49 46 54 5f 42 41 43 4b 53 |CTRL_SHIFT_BACKS| 00058eb0 50 41 43 45 20 a4 0a 43 54 52 4c 5f 53 48 49 46 |PACE ..CTRL_SHIF| 00058ec0 54 5f 52 45 54 55 52 4e 20 20 20 20 a4 0a 43 54 |T_RETURN ..CT| 00058ed0 52 4c 5f 53 48 49 46 54 5f 45 53 43 41 50 45 20 |RL_SHIFT_ESCAPE | 00058ee0 20 20 20 a4 0a 43 54 52 4c 5f 53 48 49 46 54 5f | ..CTRL_SHIFT_| 00058ef0 48 4f 4d 45 20 20 20 20 20 20 a4 0a 43 54 52 4c |HOME ..CTRL| 00058f00 5f 53 48 49 46 54 5f 44 45 4c 45 54 45 20 20 20 |_SHIFT_DELETE | 00058f10 20 a4 0a 43 54 52 4c 5f 53 48 49 46 54 5f 46 31 | ..CTRL_SHIFT_F1| 00058f20 0a 43 54 52 4c 5f 53 48 49 46 54 5f 46 32 0a 43 |.CTRL_SHIFT_F2.C| 00058f30 54 52 4c 5f 53 48 49 46 54 5f 46 33 0a 43 54 52 |TRL_SHIFT_F3.CTR| 00058f40 4c 5f 53 48 49 46 54 5f 46 34 0a 43 54 52 4c 5f |L_SHIFT_F4.CTRL_| 00058f50 53 48 49 46 54 5f 46 35 0a 43 54 52 4c 5f 53 48 |SHIFT_F5.CTRL_SH| 00058f60 49 46 54 5f 46 36 0a 43 54 52 4c 5f 53 48 49 46 |IFT_F6.CTRL_SHIF| 00058f70 54 5f 46 37 0a 43 54 52 4c 5f 53 48 49 46 54 5f |T_F7.CTRL_SHIFT_| 00058f80 46 38 0a 43 54 52 4c 5f 53 48 49 46 54 5f 46 39 |F8.CTRL_SHIFT_F9| 00058f90 0a 43 54 52 4c 5f 53 48 49 46 54 5f 46 31 30 0a |.CTRL_SHIFT_F10.| 00058fa0 43 54 52 4c 5f 53 48 49 46 54 5f 46 31 31 0a 43 |CTRL_SHIFT_F11.C| 00058fb0 54 52 4c 5f 53 48 49 46 54 5f 46 31 32 0a 43 54 |TRL_SHIFT_F12.CT| 00058fc0 52 4c 5f 53 48 49 46 54 5f 50 52 49 4e 54 0a 43 |RL_SHIFT_PRINT.C| 00058fd0 54 52 4c 5f 53 48 49 46 54 5f 54 41 42 0a 43 54 |TRL_SHIFT_TAB.CT| 00058fe0 52 4c 5f 53 48 49 46 54 5f 43 4f 50 59 0a 43 54 |RL_SHIFT_COPY.CT| 00058ff0 52 4c 5f 53 48 49 46 54 5f 43 55 52 53 4f 52 4c |RL_SHIFT_CURSORL| 00059000 45 46 54 0a 43 54 52 4c 5f 53 48 49 46 54 5f 43 |EFT.CTRL_SHIFT_C| 00059010 55 52 53 4f 52 52 49 47 48 54 0a 43 54 52 4c 5f |URSORRIGHT.CTRL_| 00059020 53 48 49 46 54 5f 43 55 52 53 4f 52 44 4f 57 4e |SHIFT_CURSORDOWN| 00059030 0a 43 54 52 4c 5f 53 48 49 46 54 5f 43 55 52 53 |.CTRL_SHIFT_CURS| 00059040 4f 52 55 50 0a 43 54 52 4c 5f 53 48 49 46 54 5f |ORUP.CTRL_SHIFT_| 00059050 50 41 47 45 44 4f 57 4e 0a 43 54 52 4c 5f 53 48 |PAGEDOWN.CTRL_SH| 00059060 49 46 54 5f 50 41 47 45 55 50 0a 43 54 52 4c 5f |IFT_PAGEUP.CTRL_| 00059070 53 48 49 46 54 5f 49 4e 53 45 52 54 0a 23 65 6e |SHIFT_INSERT.#en| 00059080 64 74 61 62 6c 65 0a 0a 41 6c 6c 20 6d 61 63 72 |dtable..All macr| 00059090 6f 73 20 61 72 65 20 70 72 65 63 65 64 65 64 20 |os are preceded | 000590a0 62 79 20 27 6b 65 79 63 6f 64 65 5f 27 2e 0a 0a |by 'keycode_'...| 000590b0 54 68 6f 73 65 20 6d 61 72 6b 65 64 20 77 69 74 |Those marked wit| 000590c0 68 20 61 20 27 a4 27 20 61 72 65 20 64 65 66 69 |h a '.' are defi| 000590d0 6e 65 64 20 61 73 20 55 4e 44 45 46 49 4e 45 44 |ned as UNDEFINED| 000590e0 2c 20 69 65 20 2d 31 2e 20 54 68 65 79 20 72 65 |, ie -1. They re| 000590f0 74 75 72 6e 20 74 68 65 20 73 61 6d 65 20 63 6f |turn the same co| 00059100 64 65 20 61 73 20 74 68 65 69 72 20 62 61 73 65 |de as their base| 00059110 20 6b 65 79 20 65 67 20 53 48 49 46 54 2d 52 45 | key eg SHIFT-RE| 00059120 54 55 52 4e 20 67 69 76 65 73 20 74 68 65 20 73 |TURN gives the s| 00059130 61 6d 65 20 63 6f 64 65 20 61 73 20 6a 75 73 74 |ame code as just| 00059140 20 52 45 54 55 52 4e 2e 20 54 6f 20 64 65 74 65 | RETURN. To dete| 00059150 63 74 20 74 68 65 20 53 48 49 46 54 20 76 65 72 |ct the SHIFT ver| 00059160 73 69 6f 6e 2c 20 79 6f 75 20 6e 65 65 64 20 74 |sion, you need t| 00059170 6f 20 75 73 65 20 3c 4b 62 64 5f 4b 65 79 44 6f |o use <Kbd_KeyDo| 00059180 77 6e 3e 2e 44 49 52 24 30 03 00 00 30 03 00 00 |wn>.DIR$0...0...| 00059190 b4 94 05 00 46 fd ff ff 97 a2 84 2f 2c 00 00 00 |....F....../,...| 000591a0 13 01 00 00 00 00 00 00 4c 5f 00 00 c8 95 05 00 |........L_......| 000591b0 46 ff ff ff c8 3c de 22 d1 00 00 00 13 00 00 00 |F....<."........| 000591c0 00 00 00 00 6c 61 62 73 00 00 00 00 9c 96 05 00 |....labs........| 000591d0 46 fd ff ff c8 a2 84 2f 30 00 00 00 13 01 00 00 |F....../0.......| 000591e0 00 00 00 00 4c 61 72 67 65 73 74 5f 00 00 00 00 |....Largest_....| 000591f0 00 98 05 00 46 fd ff ff ed a2 84 2f cc 00 00 00 |....F....../....| 00059200 13 01 00 00 00 00 00 00 4c 43 5f 00 70 9c 05 00 |........LC_.p...| 00059210 46 ff ff ff 5a 3c bd 22 6a 02 00 00 13 00 00 00 |F...Z<."j.......| 00059220 00 00 00 00 6c 63 6f 6e 76 00 00 00 dc 9e 05 00 |....lconv.......| 00059230 46 fd ff ff 7d a3 84 2f 2c 01 00 00 13 01 00 00 |F...}../,.......| 00059240 00 00 00 00 4c 44 42 4c 5f 00 00 00 90 a4 05 00 |....LDBL_.......| 00059250 46 ff ff ff 1e 00 be 22 f0 00 00 00 13 00 00 00 |F......"........| 00059260 00 00 00 00 6c 64 65 78 70 00 00 00 80 a5 05 00 |....ldexp.......| 00059270 46 ff ff ff 97 7d e6 22 6a 00 00 00 13 00 00 00 |F....}."j.......| 00059280 00 00 00 00 4c 44 46 00 ec a5 05 00 46 ff ff ff |....LDF.....F...| 00059290 62 41 de 22 e7 00 00 00 13 00 00 00 00 00 00 00 |bA."............| 000592a0 6c 64 69 76 00 00 00 00 d4 a6 05 00 46 fd ff ff |ldiv........F...| 000592b0 54 a4 84 2f 28 00 00 00 13 01 00 00 00 00 00 00 |T../(...........| 000592c0 6c 64 69 76 5f 00 00 00 ec a7 05 00 46 ff ff ff |ldiv_.......F...| 000592d0 df 6d e6 22 25 01 00 00 13 00 00 00 00 00 00 00 |.m."%...........| 000592e0 4c 44 52 00 14 a9 05 00 46 ff ff ff 93 4e d6 25 |LDR.....F....N.%| 000592f0 50 01 00 00 13 00 00 00 00 00 00 00 4c 65 61 66 |P...........Leaf| 00059300 4e 61 6d 65 00 00 00 00 64 aa 05 00 46 ff ff ff |Name....d...F...| 00059310 46 28 56 26 14 01 00 00 13 00 00 00 00 00 00 00 |F(V&............| 00059320 4c 69 62 00 78 ab 05 00 46 fd ff ff b0 a4 84 2f |Lib.x...F....../| 00059330 60 01 00 00 13 01 00 00 00 00 00 00 6c 69 62 5f |`...........lib_| 00059340 00 00 00 00 3c b8 05 00 46 ff ff ff eb a8 bb 22 |....<...F......"| 00059350 6f 01 00 00 13 00 00 00 00 00 00 00 6c 69 6d 69 |o...........limi| 00059360 74 73 00 00 ac b9 05 00 46 fd ff ff 91 a5 84 2f |ts......F....../| 00059370 18 01 00 00 13 01 00 00 00 00 00 00 6c 69 6e 6b |............link| 00059380 64 69 72 5f 00 00 00 00 34 c2 05 00 46 ff ff ff |dir_....4...F...| 00059390 58 82 3f 25 07 03 00 00 13 00 00 00 00 00 00 00 |X.?%............| 000593a0 4c 69 6e 6b 4c 69 73 74 00 00 00 00 3c c5 05 00 |LinkList....<...| 000593b0 46 fd ff ff 5c a6 84 2f 20 03 00 00 13 01 00 00 |F...\../ .......| 000593c0 00 00 00 00 4c 69 6e 6b 4c 69 73 74 5f 00 00 00 |....LinkList_...| 000593d0 00 e3 05 00 46 ff ff ff 06 d0 bb 22 36 01 00 00 |....F......"6...| 000593e0 13 00 00 00 00 00 00 00 6c 6f 63 61 6c 65 00 00 |........locale..| 000593f0 38 e4 05 00 46 ff ff ff 8f 1e bd 22 d4 00 00 00 |8...F......"....| 00059400 13 00 00 00 00 00 00 00 6c 6f 63 61 6c 65 63 6f |........localeco| 00059410 6e 76 00 00 0c e5 05 00 46 ff ff ff ea ea e1 22 |nv......F......"| 00059420 f8 00 00 00 13 00 00 00 00 00 00 00 6c 6f 63 61 |............loca| 00059430 6c 74 69 6d 65 00 00 00 04 e6 05 00 46 ff ff ff |ltime.......F...| 00059440 51 11 be 22 2e 01 00 00 13 00 00 00 00 00 00 00 |Q.."............| 00059450 6c 6f 67 00 34 e7 05 00 46 ff ff ff ce 2d be 22 |log.4...F....-."| 00059460 18 01 00 00 13 00 00 00 00 00 00 00 6c 6f 67 31 |............log1| 00059470 30 00 00 00 4c e8 05 00 46 fd ff ff 85 a8 84 2f |0...L...F....../| 00059480 44 00 00 00 13 01 00 00 00 00 00 00 4c 4f 4e 47 |D...........LONG| 00059490 5f 00 00 00 ec e9 05 00 46 ff ff ff 33 ed be 22 |_.......F...3.."| 000594a0 ce 01 00 00 13 00 00 00 00 00 00 00 6c 6f 6e 67 |............long| 000594b0 6a 6d 70 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |jmp.DIR$,...,...| 000594c0 5b 45 09 00 46 ff ff ff 9e 5e c2 37 d9 00 00 00 |[E..F....^.7....| 000594d0 13 00 00 00 00 00 00 00 74 6d 70 6e 61 6d 00 00 |........tmpnam..| 000594e0 46 52 45 45 e5 00 00 00 8c 44 09 00 70 6e 61 6d |FREE.....D..pnam| 000594f0 0a 23 50 61 72 65 6e 74 20 73 74 64 69 6f 0a 54 |.#Parent stdio.T| 00059500 68 65 20 6d 61 63 72 6f 20 4c 5f 74 6d 70 6e 61 |he macro L_tmpna| 00059510 6d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |m is defined in | 00059520 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e |<stdio.h=>stdio>| 00059530 20 61 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f | as the length o| 00059540 66 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 66 69 |f the longest fi| 00059550 6c 65 6e 61 6d 65 20 74 68 61 74 20 77 69 6c 6c |lename that will| 00059560 20 62 65 20 75 73 65 64 20 62 79 20 74 68 65 20 | be used by the | 00059570 66 75 6e 63 74 69 6f 6e 20 3c 74 6d 70 6e 61 6d |function <tmpnam| 00059580 3e 2e 20 49 6e 20 45 61 73 79 20 43 20 69 74 20 |>. In Easy C it | 00059590 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 |is defined as th| 000595a0 65 20 73 61 6d 65 20 61 73 20 3c 46 49 4c 45 4e |e same as <FILEN| 000595b0 41 4d 45 5f 4d 41 58 3d 3e 46 49 4c 45 4e 41 4d |AME_MAX=>FILENAM| 000595c0 45 5f 4d 3e 2e 00 00 00 44 41 54 41 d1 00 00 00 |E_M>....DATA....| 000595d0 6c 61 62 73 0a 53 79 6e 74 61 78 3a 09 6c 6f 6e |labs.Syntax:.lon| 000595e0 67 20 69 6e 74 20 6c 61 62 73 20 28 6c 6f 6e 67 |g int labs (long| 000595f0 20 69 6e 74 20 78 29 3b 0a 48 65 61 64 65 72 3a | int x);.Header:| 00059600 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c |.<stdlib.h=>stdl| 00059610 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |ib>..Returns:.Th| 00059620 65 20 61 62 73 6f 6c 75 74 65 20 76 61 6c 75 65 |e absolute value| 00059630 20 6f 66 20 78 2e 0a 0a 54 68 69 73 20 66 75 6e | of x...This fun| 00059640 63 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 63 |ction is identic| 00059650 61 6c 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 |al to the functi| 00059660 6f 6e 20 3c 61 62 73 3e 2c 20 65 78 63 65 70 74 |on <abs>, except| 00059670 20 74 68 61 74 20 61 6c 6c 20 6e 75 6d 62 65 72 | that all number| 00059680 73 20 69 6e 76 6f 6c 76 65 64 20 61 72 65 20 6c |s involved are l| 00059690 6f 6e 67 20 69 6e 74 73 2e 00 00 00 44 49 52 24 |ong ints....DIR$| 000596a0 30 00 00 00 30 00 00 00 cc 96 05 00 46 ff ff ff |0...0.......F...| 000596b0 ef a2 28 23 33 01 00 00 13 00 00 00 00 00 00 00 |..(#3...........| 000596c0 70 61 74 68 5f 73 74 72 00 00 00 00 44 41 54 41 |path_str....DATA| 000596d0 33 01 00 00 4c 61 72 67 65 73 74 5f 70 61 74 68 |3...Largest_path| 000596e0 5f 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |_str.This type i| 000596f0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 00059700 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 00059710 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 00059720 65 20 77 68 6f 73 65 20 73 69 7a 65 20 69 73 20 |e whose size is | 00059730 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 61 74 |the same as that| 00059740 20 6f 66 20 74 68 65 20 6c 61 72 67 65 73 74 20 | of the largest | 00059750 70 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 2e 20 |path component. | 00059760 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00059770 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 75 | the following u| 00059780 6e 69 6f 6e 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 |nion:.. .\{. . .| 00059790 3c 50 61 74 68 5f 6d 6f 76 65 73 74 72 3e 09 61 |<Path_movestr>.a| 000597a0 3b 0a 20 09 20 09 3c 50 61 74 68 5f 6c 69 6e 65 |;. . .<Path_line| 000597b0 73 74 72 3e 09 62 3b 0a 20 09 20 09 3c 50 61 74 |str>.b;. . .<Pat| 000597c0 68 5f 63 75 72 76 65 73 74 72 3e 09 63 3b 0a 20 |h_curvestr>.c;. | 000597d0 09 20 09 3c 50 61 74 68 5f 63 6c 6f 73 65 73 74 |. .<Path_closest| 000597e0 72 3e 09 64 3b 0a 20 09 20 09 3c 50 61 74 68 5f |r>.d;. . .<Path_| 000597f0 74 65 72 6d 73 74 72 3e 09 65 3b 0a 20 09 7d 00 |termstr>.e;. .}.| 00059800 44 49 52 24 cc 00 00 00 cc 00 00 00 cc 98 05 00 |DIR$............| 00059810 46 ff ff ff ba 42 bd 22 84 00 00 00 13 00 00 00 |F....B."........| 00059820 00 00 00 00 41 4c 4c 00 50 99 05 00 46 ff ff ff |....ALL.P...F...| 00059830 7f 46 bd 22 9f 00 00 00 13 00 00 00 00 00 00 00 |.F."............| 00059840 43 4f 4c 4c 41 54 45 00 f0 99 05 00 46 ff ff ff |COLLATE.....F...| 00059850 90 49 bd 22 9b 00 00 00 13 00 00 00 00 00 00 00 |.I."............| 00059860 43 54 59 50 45 00 00 00 8c 9a 05 00 46 ff ff ff |CTYPE.......F...| 00059870 4a 4c bd 22 a3 00 00 00 13 00 00 00 00 00 00 00 |JL."............| 00059880 4d 4f 4e 45 54 41 52 59 00 00 00 00 30 9b 05 00 |MONETARY....0...| 00059890 46 ff ff ff 10 4f bd 22 a4 00 00 00 13 00 00 00 |F....O."........| 000598a0 00 00 00 00 4e 55 4d 45 52 49 43 00 d4 9b 05 00 |....NUMERIC.....| 000598b0 46 ff ff ff c9 51 bd 22 9b 00 00 00 13 00 00 00 |F....Q."........| 000598c0 00 00 00 00 54 49 4d 45 00 00 00 00 44 41 54 41 |....TIME....DATA| 000598d0 84 00 00 00 4c 43 5f 41 4c 4c 0a 54 68 69 73 20 |....LC_ALL.This | 000598e0 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 |macro is defined| 000598f0 20 69 6e 20 3c 6c 6f 63 61 6c 65 2e 68 3d 3e 6c | in <locale.h=>l| 00059900 6f 63 61 6c 65 3e 2e 20 49 74 20 69 73 20 75 73 |ocale>. It is us| 00059910 65 64 20 77 69 74 68 20 74 68 65 20 3c 73 65 74 |ed with the <set| 00059920 6c 6f 63 61 6c 65 3e 20 66 75 6e 63 74 69 6f 6e |locale> function| 00059930 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 | and represents | 00059940 61 6c 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e |all information.| 00059950 44 41 54 41 9f 00 00 00 4c 43 5f 43 4f 4c 4c 41 |DATA....LC_COLLA| 00059960 54 45 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |TE.This macro is| 00059970 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6c 6f 63 | defined in <loc| 00059980 61 6c 65 2e 68 3d 3e 6c 6f 63 61 6c 65 3e 2e 20 |ale.h=>locale>. | 00059990 49 74 20 69 73 20 75 73 65 64 20 77 69 74 68 20 |It is used with | 000599a0 74 68 65 20 3c 73 65 74 6c 6f 63 61 6c 65 3e 20 |the <setlocale> | 000599b0 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 72 65 70 |function and rep| 000599c0 72 65 73 65 6e 74 73 20 69 6e 66 6f 72 6d 61 74 |resents informat| 000599d0 69 6f 6e 20 72 65 67 61 72 64 69 6e 67 20 73 74 |ion regarding st| 000599e0 72 69 6e 67 20 63 6f 6c 6c 61 74 69 6f 6e 2e 00 |ring collation..| 000599f0 44 41 54 41 9b 00 00 00 4c 43 5f 43 54 59 50 45 |DATA....LC_CTYPE| 00059a00 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 00059a10 65 66 69 6e 65 64 20 69 6e 20 3c 6c 6f 63 61 6c |efined in <local| 00059a20 65 2e 68 3d 3e 6c 6f 63 61 6c 65 3e 2e 20 49 74 |e.h=>locale>. It| 00059a30 20 69 73 20 75 73 65 64 20 77 69 74 68 20 74 68 | is used with th| 00059a40 65 20 3c 73 65 74 6c 6f 63 61 6c 65 3e 20 66 75 |e <setlocale> fu| 00059a50 6e 63 74 69 6f 6e 20 61 6e 64 20 72 65 70 72 65 |nction and repre| 00059a60 73 65 6e 74 73 20 69 6e 66 6f 72 6d 61 74 69 6f |sents informatio| 00059a70 6e 20 72 65 67 61 72 64 69 6e 67 20 63 68 61 72 |n regarding char| 00059a80 61 63 74 65 72 20 74 79 70 65 2e 00 44 41 54 41 |acter type..DATA| 00059a90 a3 00 00 00 4c 43 5f 4d 4f 4e 45 54 41 52 59 0a |....LC_MONETARY.| 00059aa0 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 00059ab0 66 69 6e 65 64 20 69 6e 20 3c 6c 6f 63 61 6c 65 |fined in <locale| 00059ac0 2e 68 3d 3e 6c 6f 63 61 6c 65 3e 2e 20 49 74 20 |.h=>locale>. It | 00059ad0 69 73 20 75 73 65 64 20 77 69 74 68 20 74 68 65 |is used with the| 00059ae0 20 3c 73 65 74 6c 6f 63 61 6c 65 3e 20 66 75 6e | <setlocale> fun| 00059af0 63 74 69 6f 6e 20 61 6e 64 20 72 65 70 72 65 73 |ction and repres| 00059b00 65 6e 74 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e |ents information| 00059b10 20 72 65 67 61 72 64 69 6e 67 20 6d 6f 6e 65 74 | regarding monet| 00059b20 61 72 79 20 66 6f 72 6d 61 74 74 69 6e 67 2e 00 |ary formatting..| 00059b30 44 41 54 41 a4 00 00 00 4c 43 5f 4e 55 4d 45 52 |DATA....LC_NUMER| 00059b40 49 43 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |IC.This macro is| 00059b50 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6c 6f 63 | defined in <loc| 00059b60 61 6c 65 2e 68 3d 3e 6c 6f 63 61 6c 65 3e 2e 20 |ale.h=>locale>. | 00059b70 49 74 20 69 73 20 75 73 65 64 20 77 69 74 68 20 |It is used with | 00059b80 74 68 65 20 3c 73 65 74 6c 6f 63 61 6c 65 3e 20 |the <setlocale> | 00059b90 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 72 65 70 |function and rep| 00059ba0 72 65 73 65 6e 74 73 20 69 6e 66 6f 72 6d 61 74 |resents informat| 00059bb0 69 6f 6e 20 72 65 67 61 72 64 69 6e 67 20 6e 75 |ion regarding nu| 00059bc0 6d 65 72 69 63 20 73 74 72 69 6e 67 20 66 6f 72 |meric string for| 00059bd0 6d 61 74 2e 44 41 54 41 9b 00 00 00 4c 43 5f 54 |mat.DATA....LC_T| 00059be0 49 4d 45 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |IME.This macro i| 00059bf0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6c 6f |s defined in <lo| 00059c00 63 61 6c 65 2e 68 3d 3e 6c 6f 63 61 6c 65 3e 2e |cale.h=>locale>.| 00059c10 20 49 74 20 69 73 20 75 73 65 64 20 77 69 74 68 | It is used with| 00059c20 20 74 68 65 20 3c 73 65 74 6c 6f 63 61 6c 65 3e | the <setlocale>| 00059c30 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 72 65 | function and re| 00059c40 70 72 65 73 65 6e 74 73 20 69 6e 66 6f 72 6d 61 |presents informa| 00059c50 74 69 6f 6e 20 72 65 67 61 72 64 69 6e 67 20 74 |tion regarding t| 00059c60 69 6d 65 20 66 6f 72 6d 61 74 74 69 6e 67 2e 00 |ime formatting..| 00059c70 44 41 54 41 6a 02 00 00 73 74 72 75 63 74 20 6c |DATAj...struct l| 00059c80 63 6f 6e 76 0a 54 68 69 73 20 73 74 72 75 63 74 |conv.This struct| 00059c90 75 72 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ure is defined i| 00059ca0 6e 20 3c 6c 6f 63 61 6c 65 2e 68 3d 3e 6c 6f 63 |n <locale.h=>loc| 00059cb0 61 6c 65 3e 2e 20 49 74 20 63 6f 6e 74 61 69 6e |ale>. It contain| 00059cc0 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 |s information ab| 00059cd0 6f 75 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 |out the current | 00059ce0 6c 6f 63 61 6c 65 2c 20 6d 61 69 6e 6c 79 20 76 |locale, mainly v| 00059cf0 61 72 69 6f 75 73 20 63 6f 75 6e 74 72 79 2d 64 |arious country-d| 00059d00 65 70 65 6e 64 65 6e 74 20 73 79 6d 62 6f 6c 73 |ependent symbols| 00059d10 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 |... \{. char| 00059d20 20 2a 64 65 63 69 6d 61 6c 5f 70 6f 69 6e 74 3b | *decimal_point;| 00059d30 0a 20 20 20 20 63 68 61 72 20 2a 74 68 6f 75 73 |. char *thous| 00059d40 61 6e 64 73 5f 73 65 70 3b 0a 20 20 20 20 63 68 |ands_sep;. ch| 00059d50 61 72 20 2a 67 72 6f 75 70 69 6e 67 3b 0a 20 20 |ar *grouping;. | 00059d60 20 20 63 68 61 72 20 2a 69 6e 74 5f 63 75 72 72 | char *int_curr| 00059d70 5f 73 79 6d 62 6f 6c 3b 0a 20 20 20 20 63 68 61 |_symbol;. cha| 00059d80 72 20 2a 63 75 72 72 65 6e 63 79 5f 73 79 6d 62 |r *currency_symb| 00059d90 6f 6c 3b 0a 20 20 20 20 63 68 61 72 20 2a 6d 6f |ol;. char *mo| 00059da0 6e 5f 64 65 63 69 6d 61 6c 5f 70 6f 69 6e 74 3b |n_decimal_point;| 00059db0 0a 20 20 20 20 63 68 61 72 20 2a 6d 6f 6e 5f 74 |. char *mon_t| 00059dc0 68 6f 75 73 61 6e 64 73 5f 73 65 70 3b 0a 20 20 |housands_sep;. | 00059dd0 20 20 63 68 61 72 20 2a 6d 6f 6e 5f 67 72 6f 75 | char *mon_grou| 00059de0 70 69 6e 67 3b 0a 20 20 20 20 63 68 61 72 20 2a |ping;. char *| 00059df0 70 6f 73 69 74 69 76 65 5f 73 69 67 6e 3b 0a 20 |positive_sign;. | 00059e00 20 20 20 63 68 61 72 20 2a 6e 65 67 61 74 69 76 | char *negativ| 00059e10 65 5f 73 69 67 6e 3b 0a 20 20 20 20 63 68 61 72 |e_sign;. char| 00059e20 20 69 6e 74 5f 66 72 61 63 5f 64 69 67 69 74 73 | int_frac_digits| 00059e30 3b 0a 20 20 20 20 63 68 61 72 20 66 72 61 63 5f |;. char frac_| 00059e40 64 69 67 69 74 73 3b 0a 20 20 20 20 63 68 61 72 |digits;. char| 00059e50 20 70 5f 63 73 5f 70 72 65 63 65 64 65 73 3b 20 | p_cs_precedes; | 00059e60 0a 20 20 20 20 63 68 61 72 20 70 5f 73 65 70 5f |. char p_sep_| 00059e70 62 79 5f 73 70 61 63 65 3b 0a 20 20 20 20 63 68 |by_space;. ch| 00059e80 61 72 20 6e 5f 63 73 5f 70 72 65 63 65 64 65 73 |ar n_cs_precedes| 00059e90 3b 0a 20 20 20 20 63 68 61 72 20 6e 5f 73 65 70 |;. char n_sep| 00059ea0 5f 62 79 5f 73 70 61 63 65 3b 0a 20 20 20 20 63 |_by_space;. c| 00059eb0 68 61 72 20 70 5f 73 69 67 6e 5f 70 6f 73 6e 3b |har p_sign_posn;| 00059ec0 0a 20 20 20 20 63 68 61 72 20 6e 5f 73 69 67 6e |. char n_sign| 00059ed0 5f 70 6f 73 6e 3b 0a 20 20 7d 00 00 44 49 52 24 |_posn;. }..DIR$| 00059ee0 2c 01 00 00 2c 01 00 00 08 a0 05 00 46 ff ff ff |,...,.......F...| 00059ef0 49 cd b5 22 3b 00 00 00 13 00 00 00 00 00 00 00 |I..";...........| 00059f00 44 49 47 00 44 a0 05 00 46 ff ff ff 50 cd b5 22 |DIG.D...F...P.."| 00059f10 3f 00 00 00 13 00 00 00 00 00 00 00 45 50 53 49 |?...........EPSI| 00059f20 4c 4f 4e 00 84 a0 05 00 46 ff ff ff 81 92 bc 22 |LON.....F......"| 00059f30 93 00 00 00 13 00 00 00 00 00 00 00 4d 41 4e 54 |............MANT| 00059f40 5f 44 49 47 00 00 00 00 18 a1 05 00 46 ff ff ff |_DIG........F...| 00059f50 1d ce bc 22 97 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00059f60 4d 41 58 00 b0 a1 05 00 46 ff ff ff bb c0 bc 22 |MAX.....F......"| 00059f70 96 00 00 00 13 00 00 00 00 00 00 00 4d 41 58 5f |............MAX_| 00059f80 31 30 5f 45 58 50 00 00 48 a2 05 00 46 ff ff ff |10_EXP..H...F...| 00059f90 34 b5 bc 22 8b 00 00 00 13 00 00 00 00 00 00 00 |4.."............| 00059fa0 4d 41 58 5f 45 58 50 00 d4 a2 05 00 46 ff ff ff |MAX_EXP.....F...| 00059fb0 c2 da bc 22 97 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00059fc0 4d 49 4e 00 6c a3 05 00 46 ff ff ff 14 ab bc 22 |MIN.l...F......"| 00059fd0 96 00 00 00 13 00 00 00 00 00 00 00 4d 49 4e 5f |............MIN_| 00059fe0 31 30 5f 45 58 50 00 00 04 a4 05 00 46 ff ff ff |10_EXP......F...| 00059ff0 d5 a0 bc 22 8b 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0005a000 4d 49 4e 5f 45 58 50 00 44 41 54 41 3b 00 00 00 |MIN_EXP.DATA;...| 0005a010 4c 44 42 4c 5f 44 49 47 0a 54 68 69 73 20 6d 61 |LDBL_DIG.This ma| 0005a020 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0005a030 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 |n <float.h=>floa| 0005a040 74 3e 2e 00 44 41 54 41 3f 00 00 00 4c 44 42 4c |t>..DATA?...LDBL| 0005a050 5f 45 50 53 49 4c 4f 4e 0a 54 68 69 73 20 6d 61 |_EPSILON.This ma| 0005a060 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0005a070 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 |n <float.h=>floa| 0005a080 74 3e 2e 00 44 41 54 41 93 00 00 00 4c 44 42 4c |t>..DATA....LDBL| 0005a090 5f 4d 41 4e 54 5f 44 49 47 0a 54 68 69 73 20 6d |_MANT_DIG.This m| 0005a0a0 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 0005a0b0 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f |in <float.h=>flo| 0005a0c0 61 74 3e 2e 20 49 74 20 67 69 76 65 73 20 74 68 |at>. It gives th| 0005a0d0 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 69 67 69 |e number of digi| 0005a0e0 74 73 20 69 6e 20 74 68 65 20 6d 61 6e 74 69 73 |ts in the mantis| 0005a0f0 73 61 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 |sa of a variable| 0005a100 20 6f 66 20 74 79 70 65 20 27 6c 6f 6e 67 20 64 | of type 'long d| 0005a110 6f 75 62 6c 65 27 2e 00 44 41 54 41 97 00 00 00 |ouble'..DATA....| 0005a120 4c 44 42 4c 5f 4d 41 58 0a 54 68 69 73 20 6d 61 |LDBL_MAX.This ma| 0005a130 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0005a140 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 |n <float.h=>floa| 0005a150 74 3e 2e 20 49 74 20 67 69 76 65 73 20 74 68 65 |t>. It gives the| 0005a160 20 6d 61 78 69 6d 75 6d 20 70 6f 73 69 74 69 76 | maximum positiv| 0005a170 65 20 76 61 6c 75 65 20 74 68 61 74 20 63 61 6e |e value that can| 0005a180 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 20 | be stored in a | 0005a190 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 |variable of type| 0005a1a0 20 27 6c 6f 6e 67 20 64 6f 75 62 6c 65 27 2e 00 | 'long double'..| 0005a1b0 44 41 54 41 96 00 00 00 4c 44 42 4c 5f 4d 41 58 |DATA....LDBL_MAX| 0005a1c0 5f 31 30 5f 45 58 50 0a 54 68 69 73 20 6d 61 63 |_10_EXP.This mac| 0005a1d0 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 0005a1e0 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 | <float.h=>float| 0005a1f0 3e 2e 20 49 74 20 67 69 76 65 73 20 74 68 65 20 |>. It gives the | 0005a200 6d 61 78 69 6d 75 6d 20 62 61 73 65 20 31 30 20 |maximum base 10 | 0005a210 65 78 70 6f 6e 65 6e 74 20 61 20 76 61 72 69 61 |exponent a varia| 0005a220 62 6c 65 20 6f 66 20 74 79 70 65 20 27 6c 6f 6e |ble of type 'lon| 0005a230 67 20 64 6f 75 62 6c 65 27 20 63 61 6e 20 63 6f |g double' can co| 0005a240 6e 74 61 69 6e 2e 00 00 44 41 54 41 8b 00 00 00 |ntain...DATA....| 0005a250 4c 44 42 4c 5f 4d 41 58 5f 45 58 50 0a 54 68 69 |LDBL_MAX_EXP.Thi| 0005a260 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 0005a270 65 64 20 69 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e |ed in <float.h=>| 0005a280 66 6c 6f 61 74 3e 2e 20 49 74 20 67 69 76 65 73 |float>. It gives| 0005a290 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 65 78 70 | the maximum exp| 0005a2a0 6f 6e 65 6e 74 20 61 20 76 61 72 69 61 62 6c 65 |onent a variable| 0005a2b0 20 6f 66 20 74 79 70 65 20 27 6c 6f 6e 67 20 64 | of type 'long d| 0005a2c0 6f 75 62 6c 65 27 20 63 61 6e 20 63 6f 6e 74 61 |ouble' can conta| 0005a2d0 69 6e 2e 00 44 41 54 41 97 00 00 00 4c 44 42 4c |in..DATA....LDBL| 0005a2e0 5f 4d 49 4e 0a 54 68 69 73 20 6d 61 63 72 6f 20 |_MIN.This macro | 0005a2f0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 |is defined in <f| 0005a300 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 20 |loat.h=>float>. | 0005a310 49 74 20 67 69 76 65 73 20 74 68 65 20 6d 69 6e |It gives the min| 0005a320 69 6d 75 6d 20 70 6f 73 69 74 69 76 65 20 76 61 |imum positive va| 0005a330 6c 75 65 20 74 68 61 74 20 63 61 6e 20 62 65 20 |lue that can be | 0005a340 73 74 6f 72 65 64 20 69 6e 20 61 20 76 61 72 69 |stored in a vari| 0005a350 61 62 6c 65 20 6f 66 20 74 79 70 65 20 27 6c 6f |able of type 'lo| 0005a360 6e 67 20 64 6f 75 62 6c 65 27 2e 00 44 41 54 41 |ng double'..DATA| 0005a370 96 00 00 00 4c 44 42 4c 5f 4d 49 4e 5f 31 30 5f |....LDBL_MIN_10_| 0005a380 45 58 50 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |EXP.This macro i| 0005a390 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 66 6c |s defined in <fl| 0005a3a0 6f 61 74 2e 68 3d 3e 66 6c 6f 61 74 3e 2e 20 49 |oat.h=>float>. I| 0005a3b0 74 20 67 69 76 65 73 20 74 68 65 20 6d 69 6e 69 |t gives the mini| 0005a3c0 6d 75 6d 20 62 61 73 65 20 31 30 20 65 78 70 6f |mum base 10 expo| 0005a3d0 6e 65 6e 74 20 61 20 76 61 72 69 61 62 6c 65 20 |nent a variable | 0005a3e0 6f 66 20 74 79 70 65 20 27 6c 6f 6e 67 20 64 6f |of type 'long do| 0005a3f0 75 62 6c 65 27 20 63 61 6e 20 63 6f 6e 74 61 69 |uble' can contai| 0005a400 6e 2e 00 00 44 41 54 41 8b 00 00 00 4c 44 42 4c |n...DATA....LDBL| 0005a410 5f 4d 49 4e 5f 45 58 50 0a 54 68 69 73 20 6d 61 |_MIN_EXP.This ma| 0005a420 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0005a430 6e 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c 6f 61 |n <float.h=>floa| 0005a440 74 3e 2e 20 49 74 20 67 69 76 65 73 20 74 68 65 |t>. It gives the| 0005a450 20 6d 69 6e 69 6d 75 6d 20 65 78 70 6f 6e 65 6e | minimum exponen| 0005a460 74 20 61 20 76 61 72 69 61 62 6c 65 20 6f 66 20 |t a variable of | 0005a470 74 79 70 65 20 27 6c 6f 6e 67 20 64 6f 75 62 6c |type 'long doubl| 0005a480 65 27 20 63 61 6e 20 63 6f 6e 74 61 69 6e 2e 00 |e' can contain..| 0005a490 44 41 54 41 f0 00 00 00 6c 64 65 78 70 0a 53 79 |DATA....ldexp.Sy| 0005a4a0 6e 74 61 78 3a 09 64 6f 75 62 6c 65 20 6c 64 65 |ntax:.double lde| 0005a4b0 78 70 20 28 64 6f 75 62 6c 65 20 78 2c 20 69 6e |xp (double x, in| 0005a4c0 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d |t y);.Header:.<m| 0005a4d0 61 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 |ath.h=>math>..Re| 0005a4e0 74 75 72 6e 73 3a 09 78 20 6d 75 6c 74 69 70 6c |turns:.x multipl| 0005a4f0 69 65 64 20 62 79 20 28 32 20 74 6f 20 74 68 65 |ied by (2 to the| 0005a500 20 70 6f 77 65 72 20 6f 66 20 79 29 0a 0a 54 68 | power of y)..Th| 0005a510 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 |is function calc| 0005a520 75 6c 61 74 65 73 20 78 20 2a 20 28 31 20 5c 3c |ulates x * (1 \<| 0005a530 5c 3c 20 79 29 2e 20 54 68 69 73 20 69 73 20 61 |\< y). This is a| 0005a540 20 63 61 6c 63 75 6c 61 74 69 6f 6e 20 71 75 69 | calculation qui| 0005a550 74 65 20 66 72 65 71 75 65 6e 74 6c 79 20 70 65 |te frequently pe| 0005a560 72 66 6f 72 6d 65 64 20 73 6f 20 69 73 20 61 20 |rformed so is a | 0005a570 75 73 65 66 75 6c 20 73 68 6f 72 74 63 75 74 2e |useful shortcut.| 0005a580 44 41 54 41 6a 00 00 00 4c 44 46 20 3c 72 65 67 |DATAj...LDF <reg| 0005a590 69 73 74 65 72 3e 2c 3c 61 64 64 72 65 73 73 3e |ister>,<address>| 0005a5a0 0a 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c |.This is equival| 0005a5b0 65 6e 74 20 74 6f 20 3c 4c 44 52 3e 2c 20 62 75 |ent to <LDR>, bu| 0005a5c0 74 20 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 |t for floating p| 0005a5d0 6f 69 6e 74 20 72 65 67 69 73 74 65 72 73 20 61 |oint registers a| 0005a5e0 6e 64 20 76 61 6c 75 65 73 2e 00 00 44 41 54 41 |nd values...DATA| 0005a5f0 e7 00 00 00 6c 64 69 76 0a 53 79 6e 74 61 78 3a |....ldiv.Syntax:| 0005a600 09 3c 6c 64 69 76 5f 74 3e 20 6c 64 69 76 20 28 |.<ldiv_t> ldiv (| 0005a610 6c 6f 6e 67 20 69 6e 74 20 78 2c 20 6c 6f 6e 67 |long int x, long| 0005a620 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a | int y);.Header:| 0005a630 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c |.<stdlib.h=>stdl| 0005a640 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |ib>..Returns:.Th| 0005a650 65 20 71 75 6f 74 69 65 6e 74 20 61 6e 64 20 72 |e quotient and r| 0005a660 65 6d 61 69 6e 64 65 72 20 6f 66 20 78 2f 79 2e |emainder of x/y.| 0005a670 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0005a680 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 |is identical to | 0005a690 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 64 69 |the function <di| 0005a6a0 76 3e 2c 20 65 78 63 65 70 74 20 74 68 61 74 20 |v>, except that | 0005a6b0 61 6c 6c 20 6e 75 6d 62 65 72 73 20 69 6e 76 6f |all numbers invo| 0005a6c0 6c 76 65 64 20 61 72 65 20 6c 6f 6e 67 20 69 6e |lved are long in| 0005a6d0 74 73 2e 00 44 49 52 24 28 00 00 00 28 00 00 00 |ts..DIR$(...(...| 0005a6e0 fc a6 05 00 46 ff ff ff 3e 74 de 22 ed 00 00 00 |....F...>t."....| 0005a6f0 13 00 00 00 00 00 00 00 74 00 00 00 44 41 54 41 |........t...DATA| 0005a700 ed 00 00 00 6c 64 69 76 5f 74 0a 54 68 65 20 74 |....ldiv_t.The t| 0005a710 79 70 65 20 7b 2f 7d 6c 64 69 76 5f 74 7b 2f 7d |ype {/}ldiv_t{/}| 0005a720 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 0005a730 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 |stdlib.h=>stdlib| 0005a740 3e 20 66 6f 72 20 68 6f 6c 64 69 6e 67 20 72 65 |> for holding re| 0005a750 74 75 72 6e 20 76 61 6c 75 65 73 20 66 72 6f 6d |turn values from| 0005a760 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 6c | the function <l| 0005a770 64 69 76 3e 2e 20 49 74 20 69 73 20 64 65 66 69 |div>. It is defi| 0005a780 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ned as the follo| 0005a790 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 0005a7a0 0a 5c 7b 0a 20 20 20 20 6c 6f 6e 67 20 69 6e 74 |.\{. long int| 0005a7b0 20 71 75 6f 74 3b 09 2f 2a 20 51 75 6f 74 69 65 | quot;./* Quotie| 0005a7c0 6e 74 20 2a 2f 0a 20 20 20 20 6c 6f 6e 67 20 69 |nt */. long i| 0005a7d0 6e 74 20 72 65 6d 3b 09 2f 2a 20 52 65 6d 61 69 |nt rem;./* Remai| 0005a7e0 6e 64 65 72 20 2a 2f 0a 7d 00 00 00 44 41 54 41 |nder */.}...DATA| 0005a7f0 25 01 00 00 4c 44 52 20 3c 72 65 67 69 73 74 65 |%...LDR <registe| 0005a800 72 3e 2c 3c 61 64 64 72 65 73 73 3e 0a 54 68 69 |r>,<address>.Thi| 0005a810 73 20 73 65 74 73 20 74 68 65 20 67 69 76 65 6e |s sets the given| 0005a820 20 72 65 67 69 73 74 65 72 20 74 6f 20 63 6f 6e | register to con| 0005a830 74 61 69 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 |tain the content| 0005a840 73 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 61 |s of the given a| 0005a850 64 64 72 65 73 73 20 28 75 73 75 61 6c 6c 79 20 |ddress (usually | 0005a860 61 20 6c 61 62 65 6c 29 2e 20 54 68 65 20 63 6f |a label). The co| 0005a870 6e 74 65 6e 74 73 20 61 72 65 20 61 20 77 6f 72 |ntents are a wor| 0005a880 64 2c 20 75 6e 6c 65 73 73 20 4c 44 52 42 20 69 |d, unless LDRB i| 0005a890 73 20 75 73 65 64 20 69 6e 20 77 68 69 63 68 20 |s used in which | 0005a8a0 63 61 73 65 20 6f 6e 6c 79 20 61 20 62 79 74 65 |case only a byte| 0005a8b0 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 23 66 43 | is loaded...#fC| 0005a8c0 6f 64 65 0a 20 20 20 20 20 20 20 20 4c 44 52 20 |ode. LDR | 0005a8d0 20 20 52 30 2c 6c 61 62 65 6c 0a 20 20 20 20 20 | R0,label. | 0005a8e0 20 20 20 2e 2e 2e 0a 20 2e 6c 61 62 65 6c 20 3c | .... .label <| 0005a8f0 44 43 44 3e 20 20 20 31 30 0a 23 66 0a 0a 72 30 |DCD> 10.#f..r0| 0005a900 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20 31 30 | will contain 10| 0005a910 2e 00 00 00 44 41 54 41 50 01 00 00 4c 65 61 66 |....DATAP...Leaf| 0005a920 4e 61 6d 65 0a 53 79 6e 74 61 78 3a 09 63 68 61 |Name.Syntax:.cha| 0005a930 72 20 2a 4c 65 61 66 4e 61 6d 65 20 28 63 68 61 |r *LeafName (cha| 0005a940 72 20 2a 70 61 74 68 6e 61 6d 65 29 3b 0a 48 65 |r *pathname);.He| 0005a950 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 0005a960 74 72 2e 68 3d 3e 53 74 72 5f 44 4c 3e 0a 0a 52 |tr.h=>Str_DL>..R| 0005a970 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0005a980 74 6f 20 6c 65 61 66 20 6e 61 6d 65 2e 0a 0a 54 |to leaf name...T| 0005a990 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 |his function sca| 0005a9a0 6e 73 20 74 68 72 6f 75 67 68 20 2f 70 61 74 68 |ns through /path| 0005a9b0 6e 61 6d 65 2f 20 75 6e 74 69 6c 20 69 74 20 72 |name/ until it r| 0005a9c0 65 61 63 68 65 73 20 74 68 65 20 66 69 6e 61 6c |eaches the final| 0005a9d0 20 27 2e 27 20 61 6e 64 20 74 68 65 6e 20 72 65 | '.' and then re| 0005a9e0 74 75 72 6e 73 20 61 20 70 6f 69 6e 74 65 72 20 |turns a pointer | 0005a9f0 74 6f 20 74 68 65 20 6e 65 78 74 20 63 68 61 72 |to the next char| 0005aa00 61 63 74 65 72 2c 20 69 65 20 74 68 65 20 6c 65 |acter, ie the le| 0005aa10 61 66 20 6e 61 6d 65 20 69 66 20 2f 70 61 74 68 |af name if /path| 0005aa20 6e 61 6d 65 2f 20 69 73 20 61 20 66 75 6c 6c 20 |name/ is a full | 0005aa30 70 61 74 68 6e 61 6d 65 2e 20 49 66 20 6e 6f 20 |pathname. If no | 0005aa40 27 2e 27 20 69 73 20 66 6f 75 6e 64 2c 20 69 74 |'.' is found, it| 0005aa50 20 72 65 74 75 72 6e 73 20 2f 70 61 74 68 6e 61 | returns /pathna| 0005aa60 6d 65 2f 2e 44 41 54 41 14 01 00 00 54 69 6d 73 |me/.DATA....Tims| 0005aa70 4c 69 62 3a 4c 69 62 2e 68 0a 54 68 69 73 20 68 |Lib:Lib.h.This h| 0005aa80 65 61 64 65 72 20 64 65 66 69 6e 65 73 20 61 6c |eader defines al| 0005aa90 6c 20 74 68 65 20 75 73 65 66 75 6c 20 6d 69 73 |l the useful mis| 0005aaa0 63 65 6c 6c 61 6e 65 6f 75 73 20 62 69 74 73 20 |cellaneous bits | 0005aab0 77 68 69 63 68 20 63 6f 75 6c 64 6e 27 74 20 62 |which couldn't b| 0005aac0 65 20 66 6f 75 6e 64 20 61 20 68 6f 6d 65 20 65 |e found a home e| 0005aad0 6c 73 65 77 68 65 72 65 2e 2e 2e 0a 0a 46 75 6e |lsewhere.....Fun| 0005aae0 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 |ctions:..#Indent| 0005aaf0 20 36 0a 23 54 61 62 6c 65 20 35 20 31 35 0a 3c | 6.#Table 5 15.<| 0005ab00 53 74 72 53 61 76 65 3e 0a 3c 53 74 72 53 61 76 |StrSave>.<StrSav| 0005ab10 65 44 62 75 67 3e 0a 3c 4d 61 6b 65 43 52 3e 0a |eDbug>.<MakeCR>.| 0005ab20 3c 4d 61 6b 65 41 53 43 49 49 5a 3e 0a 3c 48 65 |<MakeASCIIZ>.<He| 0005ab30 78 44 69 67 69 74 3e 0a 3c 4e 75 6d 46 72 6f 6d |xDigit>.<NumFrom| 0005ab40 48 65 78 44 69 67 69 74 3e 0a 3c 73 74 72 69 63 |HexDigit>.<stric| 0005ab50 6d 70 3e 0a 3c 73 74 72 6e 69 63 6d 70 3e 0a 3c |mp>.<strnicmp>.<| 0005ab60 53 70 6c 69 74 50 61 74 68 6e 61 6d 65 3e 0a 23 |SplitPathname>.#| 0005ab70 45 6e 64 54 61 62 6c 65 44 49 52 24 60 01 00 00 |EndTableDIR$`...| 0005ab80 60 01 00 00 d8 ac 05 00 46 fd ff ff 3e 28 e8 22 |`.......F...>(."| 0005ab90 53 03 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |S...........!Roo| 0005aba0 74 00 00 00 2c b0 05 00 46 fd ff ff e8 6e e8 22 |t...,...F....n."| 0005abb0 3a 01 00 00 13 00 00 00 00 00 00 00 63 6f 70 79 |:...........copy| 0005abc0 72 69 67 68 74 5f 00 00 68 b1 05 00 46 fd ff ff |right_..h...F...| 0005abd0 d3 36 e8 22 99 00 00 00 13 00 00 00 00 00 00 00 |.6."............| 0005abe0 63 72 65 61 74 65 5f 00 04 b2 05 00 46 fd ff ff |create_.....F...| 0005abf0 6d 5e e8 22 b4 00 00 00 13 00 00 00 00 00 00 00 |m^."............| 0005ac00 64 65 6c 65 74 65 5f 00 b8 b2 05 00 46 fd ff ff |delete_.....F...| 0005ac10 e9 65 e8 22 ca 00 00 00 13 00 00 00 00 00 00 00 |.e."............| 0005ac20 65 78 74 72 61 63 74 5f 00 00 00 00 84 b3 05 00 |extract_........| 0005ac30 46 fd ff ff c7 4c e8 22 f9 00 00 00 13 00 00 00 |F....L."........| 0005ac40 00 00 00 00 68 69 73 74 6f 72 79 5f 00 00 00 00 |....history_....| 0005ac50 80 b4 05 00 46 fd ff ff 21 79 e8 22 42 01 00 00 |....F...!y."B...| 0005ac60 13 00 00 00 00 00 00 00 69 64 65 6e 74 69 66 69 |........identifi| 0005ac70 63 61 74 69 6f 6e 5f 00 c4 b5 05 00 46 fd ff ff |cation_.....F...| 0005ac80 27 56 e8 22 42 01 00 00 13 00 00 00 00 00 00 00 |'V."B...........| 0005ac90 69 6e 73 65 72 74 5f 00 08 b7 05 00 46 fd ff ff |insert_.....F...| 0005aca0 70 44 e8 22 7a 00 00 00 13 00 00 00 00 00 00 00 |pD."z...........| 0005acb0 6c 69 73 74 5f 00 00 00 84 b7 05 00 46 fd ff ff |list_.......F...| 0005acc0 68 3e e8 22 b8 00 00 00 13 00 00 00 00 00 00 00 |h>."............| 0005acd0 76 65 72 69 66 79 5f 00 44 41 54 41 53 03 00 00 |verify_.DATAS...| 0005ace0 4c 69 62 72 61 72 69 65 73 0a 4c 69 62 72 61 72 |Libraries.Librar| 0005acf0 69 65 73 20 61 72 65 20 66 69 6c 65 73 20 63 6f |ies are files co| 0005ad00 6e 74 61 69 6e 69 6e 67 20 6f 6e 65 20 6f 72 20 |ntaining one or | 0005ad10 6d 6f 72 65 20 6f 62 6a 65 63 74 20 66 69 6c 65 |more object file| 0005ad20 73 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 6c |s which can be l| 0005ad30 69 6e 6b 65 64 20 69 6e 20 77 69 74 68 20 61 70 |inked in with ap| 0005ad40 70 6c 69 63 61 74 69 6f 6e 73 2e 20 4f 62 6a 65 |plications. Obje| 0005ad50 63 74 20 66 69 6c 65 73 20 69 6e 73 65 72 74 65 |ct files inserte| 0005ad60 64 20 69 6e 74 6f 20 6c 69 62 72 61 72 69 65 73 |d into libraries| 0005ad70 20 61 72 65 20 63 61 6c 6c 65 64 20 27 6d 6f 64 | are called 'mod| 0005ad80 75 6c 65 73 27 2c 20 61 6e 64 20 6d 61 79 20 63 |ules', and may c| 0005ad90 6f 6e 74 61 69 6e 20 6f 6e 65 20 6f 72 20 6d 6f |ontain one or mo| 0005ada0 72 65 20 66 75 6e 63 74 69 6f 6e 73 2e 20 54 68 |re functions. Th| 0005adb0 65 20 66 65 77 65 72 20 66 75 6e 63 74 69 6f 6e |e fewer function| 0005adc0 73 20 69 6e 20 61 20 6d 6f 64 75 6c 65 2c 20 74 |s in a module, t| 0005add0 68 65 20 6c 65 73 73 20 75 6e 6e 65 63 65 73 73 |he less unnecess| 0005ade0 61 72 79 20 63 6f 64 65 20 77 69 6c 6c 20 62 65 |ary code will be| 0005adf0 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 | pulled in when | 0005ae00 79 6f 75 20 75 73 65 20 6f 6e 65 20 6f 66 20 74 |you use one of t| 0005ae10 68 65 6d 2c 20 68 6f 77 65 76 65 72 20 6c 69 6e |hem, however lin| 0005ae20 6b 69 6e 67 20 77 69 6c 6c 20 62 65 20 73 6c 6f |king will be slo| 0005ae30 77 65 72 2e 0a 0a 45 61 73 79 20 43 20 70 72 6f |wer...Easy C pro| 0005ae40 76 69 64 65 73 20 61 20 6c 69 62 72 61 72 79 20 |vides a library | 0005ae50 66 61 63 69 6c 69 74 79 20 61 73 20 64 65 73 63 |facility as desc| 0005ae60 72 69 62 65 64 20 62 65 6c 6f 77 3a 0a 0a 54 68 |ribed below:..Th| 0005ae70 65 20 64 69 72 65 63 74 69 76 65 73 20 61 72 65 |e directives are| 0005ae80 20 75 73 65 64 20 77 69 74 68 20 74 68 65 20 27 | used with the '| 0005ae90 6c 69 62 72 61 72 79 27 20 63 6f 6d 6d 61 6e 64 |library' command| 0005aea0 2e 20 54 68 65 79 20 61 72 65 20 70 72 65 66 69 |. They are prefi| 0005aeb0 78 65 64 20 62 79 20 22 2d 22 2e 20 48 65 6c 70 |xed by "-". Help| 0005aec0 20 63 61 6e 20 62 65 20 67 6f 74 20 62 79 20 75 | can be got by u| 0005aed0 73 69 6e 67 20 3c 2a 48 65 6c 70 20 6c 69 62 72 |sing <*Help libr| 0005aee0 61 72 79 3e 2e 20 41 20 73 75 6d 6d 61 72 79 20 |ary>. A summary | 0005aef0 6f 66 20 74 68 65 20 64 69 72 65 63 74 69 62 65 |of the directibe| 0005af00 73 20 75 73 65 64 20 69 73 20 73 68 6f 77 6e 20 |s used is shown | 0005af10 62 65 6c 6f 77 2e 0a 0a 23 49 6e 64 65 6e 74 20 |below...#Indent | 0005af20 31 35 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e |15.#Table column| 0005af30 73 20 33 0a 3c 5c 2d 63 72 65 61 74 65 3d 3e 6c |s 3.<\-create=>l| 0005af40 69 62 5f 63 72 65 61 74 65 5f 3e 0a 3c 5c 2d 76 |ib_create_>.<\-v| 0005af50 65 72 69 66 79 3d 3e 6c 69 62 5f 76 65 72 69 66 |erify=>lib_verif| 0005af60 79 5f 3e 0a 3c 5c 2d 6c 69 73 74 3d 3e 6c 69 62 |y_>.<\-list=>lib| 0005af70 5f 6c 69 73 74 5f 3e 0a 3c 5c 2d 68 69 73 74 6f |_list_>.<\-histo| 0005af80 72 79 3d 3e 6c 69 62 5f 68 69 73 74 6f 72 79 5f |ry=>lib_history_| 0005af90 3e 0a 3c 5c 2d 69 6e 73 65 72 74 3d 3e 6c 69 62 |>.<\-insert=>lib| 0005afa0 5f 69 6e 73 65 72 74 5f 3e 0a 3c 5c 2d 64 65 6c |_insert_>.<\-del| 0005afb0 65 74 65 3d 3e 6c 69 62 5f 64 65 6c 65 74 65 5f |ete=>lib_delete_| 0005afc0 3e 0a 3c 5c 2d 65 78 74 72 61 63 74 3d 3e 6c 69 |>.<\-extract=>li| 0005afd0 62 5f 65 78 74 72 61 63 74 5f 3e 0a 3c 5c 2d 63 |b_extract_>.<\-c| 0005afe0 6f 70 79 72 69 67 68 74 3d 3e 6c 69 62 5f 63 6f |opyright=>lib_co| 0005aff0 70 79 72 69 67 68 74 5f 3e 0a 3c 5c 2d 69 64 65 |pyright_>.<\-ide| 0005b000 6e 74 69 66 69 63 61 74 69 6f 6e 3d 3e 6c 69 62 |ntification=>lib| 0005b010 5f 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 5f |_identification_| 0005b020 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 0005b030 3a 01 00 00 2d 63 6f 70 79 72 69 67 68 74 0a 41 |:...-copyright.A| 0005b040 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 2d 63 6f |bbreviation:.-co| 0005b050 0a 53 79 6e 74 61 78 3a 09 2d 63 6f 70 79 72 69 |.Syntax:.-copyri| 0005b060 67 68 74 3d 5c 3c 74 65 78 74 3e 0a 0a 54 68 69 |ght=\<text>..Thi| 0005b070 73 20 64 69 72 65 63 74 69 76 65 20 73 70 65 63 |s directive spec| 0005b080 69 66 69 65 73 20 74 68 65 20 63 6f 70 79 72 69 |ifies the copyri| 0005b090 67 68 74 20 6d 65 73 73 61 67 65 20 66 6f 72 20 |ght message for | 0005b0a0 61 20 6c 69 62 72 61 72 79 2e 20 49 66 20 74 68 |a library. If th| 0005b0b0 65 72 65 20 61 72 65 20 73 70 61 63 65 73 20 69 |ere are spaces i| 0005b0c0 6e 20 69 74 2c 20 69 74 20 6d 75 73 74 20 62 65 |n it, it must be| 0005b0d0 20 65 6e 63 6c 6f 73 65 64 20 69 6e 20 71 75 6f | enclosed in quo| 0005b0e0 74 65 73 2e 20 49 74 20 63 61 6e 20 6f 6e 6c 79 |tes. It can only| 0005b0f0 20 62 65 20 75 73 65 64 20 77 69 74 68 20 74 68 | be used with th| 0005b100 65 20 3c 5c 2d 63 72 65 61 74 65 3d 3e 6c 69 62 |e <\-create=>lib| 0005b110 5f 63 72 65 61 74 65 5f 3e 20 64 69 72 65 63 74 |_create_> direct| 0005b120 69 76 65 2e 0a 0a 23 77 72 61 70 20 6f 66 66 0a |ive...#wrap off.| 0005b130 65 67 20 7b 66 43 6f 64 65 7d 2a 6c 69 62 72 61 |eg {fCode}*libra| 0005b140 72 79 20 4e 65 77 4c 69 62 20 2d 63 72 65 61 74 |ry NewLib -creat| 0005b150 65 20 2d 63 6f 3d 22 28 43 29 20 47 20 42 6f 64 |e -co="(C) G Bod| 0005b160 65 6e 20 39 34 22 00 00 44 41 54 41 99 00 00 00 |en 94"..DATA....| 0005b170 2d 63 72 65 61 74 65 0a 41 62 62 72 65 76 69 61 |-create.Abbrevia| 0005b180 74 69 6f 6e 3a 09 2d 63 0a 0a 54 68 69 73 20 64 |tion:.-c..This d| 0005b190 69 72 65 63 74 69 76 65 20 61 6c 6c 6f 77 73 20 |irective allows | 0005b1a0 61 20 6e 65 77 20 6c 69 62 72 61 72 79 20 74 6f |a new library to| 0005b1b0 20 62 65 20 63 72 65 61 74 65 64 20 63 6f 6e 74 | be created cont| 0005b1c0 61 69 6e 69 6e 67 20 6e 6f 20 66 75 6e 63 74 69 |aining no functi| 0005b1d0 6f 6e 73 2e 0a 0a 23 77 72 61 70 20 6f 66 66 0a |ons...#wrap off.| 0005b1e0 65 67 20 7b 66 43 6f 64 65 7d 2a 6c 69 62 72 61 |eg {fCode}*libra| 0005b1f0 72 79 20 4e 65 77 4c 69 62 20 2d 63 72 65 61 74 |ry NewLib -creat| 0005b200 65 00 00 00 44 41 54 41 b4 00 00 00 2d 64 65 6c |e...DATA....-del| 0005b210 65 74 65 0a 41 62 62 72 65 76 69 61 74 69 6f 6e |ete.Abbreviation| 0005b220 3a 09 2d 64 0a 53 79 6e 74 61 78 3a 09 2d 64 65 |:.-d.Syntax:.-de| 0005b230 6c 65 74 65 3d 5c 3c 6d 6f 64 75 6c 65 6e 61 6d |lete=\<modulenam| 0005b240 65 3e 0a 0a 54 68 69 73 20 64 69 72 65 63 74 69 |e>..This directi| 0005b250 76 65 20 64 65 6c 65 74 65 73 20 6f 62 6a 65 63 |ve deletes objec| 0005b260 74 20 66 69 6c 65 28 73 29 20 28 6d 6f 64 75 6c |t file(s) (modul| 0005b270 65 73 29 20 66 72 6f 6d 20 61 20 6c 69 62 72 61 |es) from a libra| 0005b280 72 79 2e 0a 0a 23 77 72 61 70 20 6f 66 66 0a 65 |ry...#wrap off.e| 0005b290 67 20 7b 66 43 6f 64 65 7d 2a 6c 69 62 72 61 72 |g {fCode}*librar| 0005b2a0 79 20 4e 65 77 4c 69 62 20 2d 64 65 6c 65 74 65 |y NewLib -delete| 0005b2b0 3d 6d 6f 64 75 6c 65 31 44 41 54 41 ca 00 00 00 |=module1DATA....| 0005b2c0 2d 65 78 74 72 61 63 74 0a 41 62 62 72 65 76 69 |-extract.Abbrevi| 0005b2d0 61 74 69 6f 6e 3a 09 2d 65 0a 53 79 6e 74 61 78 |ation:.-e.Syntax| 0005b2e0 3a 09 2d 65 78 74 72 61 63 74 3d 5c 3c 6d 6f 64 |:.-extract=\<mod| 0005b2f0 75 6c 65 6e 61 6d 65 3e 0a 0a 54 68 69 73 20 64 |ulename>..This d| 0005b300 69 72 65 63 74 69 76 65 20 65 78 74 72 61 63 74 |irective extract| 0005b310 73 20 61 6e 20 6f 62 6a 65 63 74 20 66 69 6c 65 |s an object file| 0005b320 20 28 6d 6f 64 75 6c 65 29 20 66 72 6f 6d 20 61 | (module) from a| 0005b330 20 6c 69 62 72 61 72 79 20 61 6e 64 20 73 61 76 | library and sav| 0005b340 65 73 20 69 74 20 6f 6e 20 64 69 73 63 2e 0a 0a |es it on disc...| 0005b350 23 77 72 61 70 20 6f 66 66 0a 65 67 20 7b 66 43 |#wrap off.eg {fC| 0005b360 6f 64 65 7d 2a 6c 69 62 72 61 72 79 20 4e 65 77 |ode}*library New| 0005b370 4c 69 62 20 2d 65 78 74 72 61 63 74 3d 75 74 69 |Lib -extract=uti| 0005b380 6c 73 00 00 44 41 54 41 f9 00 00 00 2d 68 69 73 |ls..DATA....-his| 0005b390 74 6f 72 79 0a 41 62 62 72 65 76 69 61 74 69 6f |tory.Abbreviatio| 0005b3a0 6e 3a 09 2d 68 0a 53 79 6e 74 61 78 3a 09 2d 68 |n:.-h.Syntax:.-h| 0005b3b0 69 73 74 6f 72 79 3d 5c 3c 73 74 61 74 65 3e 0a |istory=\<state>.| 0005b3c0 0a 54 68 69 73 20 64 69 72 65 63 74 69 76 65 20 |.This directive | 0005b3d0 63 6f 6e 74 72 6f 6c 73 20 74 68 65 20 6c 69 62 |controls the lib| 0005b3e0 72 61 72 79 20 68 69 73 74 6f 72 79 20 6d 65 63 |rary history mec| 0005b3f0 68 61 6e 69 73 6d 2e 20 53 77 69 74 63 68 20 69 |hanism. Switch i| 0005b400 74 20 6f 6e 20 6f 72 20 6f 66 66 20 75 73 69 6e |t on or off usin| 0005b410 67 20 2d 68 69 73 74 6f 72 79 3d 6f 6e 20 6f 72 |g -history=on or| 0005b420 20 2d 68 69 73 74 6f 72 79 3d 6f 66 66 2e 20 54 | -history=off. T| 0005b430 6f 20 64 69 73 70 6c 61 79 20 69 74 20 6a 75 73 |o display it jus| 0005b440 74 20 75 73 65 20 2d 68 69 73 74 6f 72 79 2e 0a |t use -history..| 0005b450 0a 23 77 72 61 70 20 6f 66 66 0a 65 67 20 7b 66 |.#wrap off.eg {f| 0005b460 43 6f 64 65 7d 2a 6c 69 62 72 61 72 79 20 52 4f |Code}*library RO| 0005b470 53 4c 69 62 20 2d 68 69 73 74 6f 72 79 00 00 00 |SLib -history...| 0005b480 44 41 54 41 42 01 00 00 2d 69 64 65 6e 74 69 66 |DATAB...-identif| 0005b490 69 63 61 74 69 6f 6e 0a 41 62 62 72 65 76 69 61 |ication.Abbrevia| 0005b4a0 74 69 6f 6e 3a 09 2d 69 64 0a 53 79 6e 74 61 78 |tion:.-id.Syntax| 0005b4b0 3a 09 2d 69 64 65 6e 74 69 66 69 63 61 74 69 6f |:.-identificatio| 0005b4c0 6e 3d 5c 3c 74 65 78 74 3e 0a 0a 54 68 69 73 20 |n=\<text>..This | 0005b4d0 64 69 72 65 63 74 69 76 65 20 73 70 65 63 69 66 |directive specif| 0005b4e0 69 65 73 20 74 68 65 20 69 64 65 6e 74 69 66 69 |ies the identifi| 0005b4f0 63 61 74 69 6f 6e 20 74 65 78 74 0a 66 6f 72 20 |cation text.for | 0005b500 61 20 6c 69 62 72 61 72 79 2e 20 49 66 20 74 68 |a library. If th| 0005b510 65 72 65 20 61 72 65 20 73 70 61 63 65 73 20 69 |ere are spaces i| 0005b520 6e 20 69 74 2c 20 69 74 20 6d 75 73 74 20 62 65 |n it, it must be| 0005b530 20 65 6e 63 6c 6f 73 65 64 20 69 6e 20 71 75 6f | enclosed in quo| 0005b540 74 65 73 2e 20 49 74 20 63 61 6e 20 6f 6e 6c 79 |tes. It can only| 0005b550 20 62 65 20 75 73 65 64 20 77 69 74 68 20 74 68 | be used with th| 0005b560 65 20 3c 5c 2d 63 72 65 61 74 65 3d 3e 6c 69 62 |e <\-create=>lib| 0005b570 5f 63 72 65 61 74 65 5f 3e 20 64 69 72 65 63 74 |_create_> direct| 0005b580 69 76 65 2e 0a 0a 23 77 72 61 70 20 6f 66 66 0a |ive...#wrap off.| 0005b590 65 67 20 7b 66 43 6f 64 65 7d 2a 6c 69 62 72 61 |eg {fCode}*libra| 0005b5a0 72 79 20 4e 65 77 4c 69 62 20 2d 63 72 65 61 74 |ry NewLib -creat| 0005b5b0 65 20 2d 69 64 3d 22 4d 79 20 4c 69 62 72 61 72 |e -id="My Librar| 0005b5c0 79 22 00 00 44 41 54 41 42 01 00 00 2d 69 6e 73 |y"..DATAB...-ins| 0005b5d0 65 72 74 0a 41 62 62 72 65 76 69 61 74 69 6f 6e |ert.Abbreviation| 0005b5e0 3a 09 2d 69 0a 53 79 6e 74 61 78 3a 09 2d 69 6e |:.-i.Syntax:.-in| 0005b5f0 73 65 72 74 3d 5c 3c 6f 62 6a 65 63 74 66 69 6c |sert=\<objectfil| 0005b600 65 3e 0a 0a 54 68 69 73 20 64 69 72 65 63 74 69 |e>..This directi| 0005b610 76 65 20 69 6e 73 65 72 74 73 20 6f 62 6a 65 63 |ve inserts objec| 0005b620 74 20 66 69 6c 65 28 73 29 20 28 6d 6f 64 75 6c |t file(s) (modul| 0005b630 65 29 20 69 6e 74 6f 20 61 20 6c 69 62 72 61 72 |e) into a librar| 0005b640 79 2e 20 54 68 65 20 6d 6f 64 75 6c 65 20 73 68 |y. The module sh| 0005b650 6f 75 6c 64 20 62 65 20 69 6e 20 41 4f 46 20 66 |ould be in AOF f| 0005b660 6f 72 6d 61 74 2c 20 62 75 74 20 64 6f 65 73 20 |ormat, but does | 0005b670 6e 6f 74 20 68 61 76 65 20 74 6f 20 62 65 20 67 |not have to be g| 0005b680 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 20 45 61 |enerated from Ea| 0005b690 73 79 20 43 20 28 65 67 20 69 74 20 63 6f 75 6c |sy C (eg it coul| 0005b6a0 64 20 62 65 20 66 72 6f 6d 20 50 61 73 63 61 6c |d be from Pascal| 0005b6b0 2c 20 44 65 73 6b 74 6f 70 20 41 73 73 65 6d 62 |, Desktop Assemb| 0005b6c0 6c 65 72 20 65 74 63 29 2e 0a 0a 23 77 72 61 70 |ler etc)...#wrap| 0005b6d0 20 6f 66 66 0a 65 67 20 7b 66 43 6f 64 65 7d 2a | off.eg {fCode}*| 0005b6e0 6c 69 62 72 61 72 79 20 4e 65 77 4c 69 62 20 2d |library NewLib -| 0005b6f0 69 6e 73 65 72 74 3d 6d 6f 64 75 6c 65 31 2c 6d |insert=module1,m| 0005b700 6f 64 75 6c 65 32 00 00 44 41 54 41 7a 00 00 00 |odule2..DATAz...| 0005b710 2d 6c 69 73 74 0a 41 62 62 72 65 76 69 61 74 69 |-list.Abbreviati| 0005b720 6f 6e 3a 09 2d 6c 0a 0a 54 68 69 73 20 64 69 72 |on:.-l..This dir| 0005b730 65 63 74 69 76 65 20 6c 69 73 74 73 20 74 68 65 |ective lists the| 0005b740 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 61 20 6c | contents of a l| 0005b750 69 62 72 61 72 79 2e 0a 0a 23 77 72 61 70 20 6f |ibrary...#wrap o| 0005b760 66 66 0a 65 67 20 7b 66 43 6f 64 65 7d 2a 6c 69 |ff.eg {fCode}*li| 0005b770 62 72 61 72 79 20 52 4f 53 4c 69 62 20 2d 6c 69 |brary ROSLib -li| 0005b780 73 74 00 00 44 41 54 41 b8 00 00 00 2d 76 65 72 |st..DATA....-ver| 0005b790 69 66 79 0a 41 62 62 72 65 76 69 61 74 69 6f 6e |ify.Abbreviation| 0005b7a0 3a 09 2d 76 0a 0a 54 68 69 73 20 64 69 72 65 63 |:.-v..This direc| 0005b7b0 74 69 76 65 20 76 65 72 69 66 69 65 73 20 74 68 |tive verifies th| 0005b7c0 65 20 69 6e 74 65 67 72 69 74 79 20 6f 66 20 61 |e integrity of a| 0005b7d0 20 6c 69 62 72 61 72 79 2e 20 49 6e 20 61 64 64 | library. In add| 0005b7e0 69 74 69 6f 6e 20 69 74 20 64 69 73 70 6c 61 79 |ition it display| 0005b7f0 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 |s information ab| 0005b800 6f 75 74 20 61 20 6c 69 62 72 61 72 79 2e 0a 0a |out a library...| 0005b810 23 77 72 61 70 20 6f 66 66 0a 65 67 20 7b 66 43 |#wrap off.eg {fC| 0005b820 6f 64 65 7d 2a 6c 69 62 72 61 72 79 20 53 54 44 |ode}*library STD| 0005b830 43 4c 69 62 20 2d 76 65 72 69 66 79 44 41 54 41 |CLib -verifyDATA| 0005b840 6f 01 00 00 6c 69 6d 69 74 73 2e 68 0a 23 50 61 |o...limits.h.#Pa| 0005b850 72 65 6e 74 20 61 6e 73 69 5f 0a 54 68 65 20 5c |rent ansi_.The \| 0005b860 3c 6c 69 6d 69 74 73 2e 68 5c 3e 20 68 65 61 64 |<limits.h\> head| 0005b870 65 72 20 64 65 63 6c 61 72 65 73 20 6d 61 6e 79 |er declares many| 0005b880 20 6d 61 63 72 6f 73 20 77 68 69 63 68 20 69 6e | macros which in| 0005b890 64 69 63 61 74 65 20 74 68 65 20 6d 61 78 69 6d |dicate the maxim| 0005b8a0 75 6d 20 61 6e 64 20 6d 69 6e 69 6d 75 6d 20 76 |um and minimum v| 0005b8b0 61 6c 75 65 73 20 77 68 69 63 68 20 6d 61 79 20 |alues which may | 0005b8c0 62 65 20 70 6c 61 63 65 64 20 69 6e 20 69 6e 74 |be placed in int| 0005b8d0 65 67 65 72 20 76 61 72 69 61 62 6c 65 73 2e 0a |eger variables..| 0005b8e0 0a 23 54 61 62 6c 65 20 36 20 31 34 0a 3c 43 48 |.#Table 6 14.<CH| 0005b8f0 41 52 5f 42 49 54 3e 0a 3c 53 43 48 41 52 5f 4d |AR_BIT>.<SCHAR_M| 0005b900 49 4e 3e 0a 3c 53 43 48 41 52 5f 4d 41 58 3e 0a |IN>.<SCHAR_MAX>.| 0005b910 3c 55 43 48 41 52 5f 4d 41 58 3e 0a 3c 43 48 41 |<UCHAR_MAX>.<CHA| 0005b920 52 5f 4d 49 4e 3e 0a 3c 43 48 41 52 5f 4d 41 58 |R_MIN>.<CHAR_MAX| 0005b930 3e 0a 3c 4d 42 5f 4c 45 4e 5f 4d 41 58 3e 0a 3c |>.<MB_LEN_MAX>.<| 0005b940 53 48 52 54 5f 4d 49 4e 3e 0a 3c 53 48 52 54 5f |SHRT_MIN>.<SHRT_| 0005b950 4d 41 58 3e 0a 3c 55 53 48 52 54 5f 4d 41 58 3e |MAX>.<USHRT_MAX>| 0005b960 0a 3c 49 4e 54 5f 4d 49 4e 3e 0a 3c 49 4e 54 5f |.<INT_MIN>.<INT_| 0005b970 4d 41 58 3e 0a 3c 55 49 4e 54 5f 4d 41 58 3e 0a |MAX>.<UINT_MAX>.| 0005b980 3c 4c 4f 4e 47 5f 4d 49 4e 3e 0a 3c 4c 4f 4e 47 |<LONG_MIN>.<LONG| 0005b990 5f 4d 41 58 3e 0a 3c 55 4c 4f 4e 47 5f 4d 41 58 |_MAX>.<ULONG_MAX| 0005b9a0 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 49 52 24 |>.#EndTable.DIR$| 0005b9b0 18 01 00 00 18 01 00 00 c4 ba 05 00 46 fd ff ff |............F...| 0005b9c0 4c c8 e7 22 e7 01 00 00 13 00 00 00 00 00 00 00 |L.."............| 0005b9d0 21 52 6f 6f 74 00 00 00 ac bc 05 00 46 fd ff ff |!Root.......F...| 0005b9e0 45 dd e7 22 a4 00 00 00 13 00 00 00 00 00 00 00 |E.."............| 0005b9f0 62 61 73 65 5f 00 00 00 50 bd 05 00 46 fd ff ff |base_...P...F...| 0005ba00 74 e0 e7 22 8a 00 00 00 13 00 00 00 00 00 00 00 |t.."............| 0005ba10 64 65 62 75 67 5f 00 00 dc bd 05 00 46 fd ff ff |debug_......F...| 0005ba20 b0 f0 e7 22 9f 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0005ba30 64 65 73 6b 74 6f 70 5f 00 00 00 00 7c be 05 00 |desktop_....|...| 0005ba40 46 fd ff ff a1 cf e7 22 de 00 00 00 13 00 00 00 |F......"........| 0005ba50 00 00 00 00 69 6d 61 67 65 5f 00 00 5c bf 05 00 |....image_..\...| 0005ba60 46 fd ff ff 01 d6 e7 22 62 01 00 00 13 00 00 00 |F......"b.......| 0005ba70 00 00 00 00 6c 69 62 72 61 72 79 5f 00 00 00 00 |....library_....| 0005ba80 c0 c0 05 00 46 fd ff ff 98 e5 e7 22 d5 00 00 00 |....F......"....| 0005ba90 13 00 00 00 00 00 00 00 6d 61 70 5f 00 00 00 00 |........map_....| 0005baa0 98 c1 05 00 46 fd ff ff ff ea e7 22 99 00 00 00 |....F......"....| 0005bab0 13 00 00 00 00 00 00 00 74 68 72 6f 77 62 61 63 |........throwbac| 0005bac0 6b 5f 00 00 44 41 54 41 e7 01 00 00 4c 69 6e 6b |k_..DATA....Link| 0005bad0 65 72 20 44 69 72 65 63 74 69 76 65 73 0a 54 68 |er Directives.Th| 0005bae0 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 |is information i| 0005baf0 73 20 66 6f 72 20 45 61 73 79 20 43 20 6f 6e 6c |s for Easy C onl| 0005bb00 79 3a 0a 0a 54 68 65 73 65 20 61 72 65 20 6f 6e |y:..These are on| 0005bb10 6c 79 20 75 73 65 64 20 77 68 65 6e 20 63 6f 6d |ly used when com| 0005bb20 70 69 6c 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 |piling from the | 0005bb30 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 75 73 69 |command line usi| 0005bb40 6e 67 20 74 68 65 20 27 6c 69 6e 6b 27 20 63 6f |ng the 'link' co| 0005bb50 6d 6d 61 6e 64 2e 20 54 68 65 79 20 61 72 65 20 |mmand. They are | 0005bb60 70 72 65 66 69 78 65 64 20 62 79 20 22 2d 22 2e |prefixed by "-".| 0005bb70 20 48 65 6c 70 20 63 61 6e 20 62 65 20 67 6f 74 | Help can be got| 0005bb80 20 62 79 20 75 73 69 6e 67 20 3c 2a 48 65 6c 70 | by using <*Help| 0005bb90 20 6c 69 6e 6b 3e 2e 20 41 20 73 75 6d 6d 61 72 | link>. A summar| 0005bba0 79 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 69 |y of the directi| 0005bbb0 76 65 73 20 75 73 65 64 20 69 73 20 73 68 6f 77 |ves used is show| 0005bbc0 6e 20 62 65 6c 6f 77 2e 0a 0a 23 69 6e 64 65 6e |n below...#inden| 0005bbd0 74 20 36 0a 23 54 61 62 6c 65 20 33 20 31 36 0a |t 6.#Table 3 16.| 0005bbe0 3c 5c 2d 69 6d 61 67 65 3d 3e 6c 69 6e 6b 64 69 |<\-image=>linkdi| 0005bbf0 72 5f 69 6d 61 67 65 5f 3e 0a 3c 5c 2d 6c 69 62 |r_image_>.<\-lib| 0005bc00 72 61 72 79 3d 3e 6c 69 6e 6b 64 69 72 5f 6c 69 |rary=>linkdir_li| 0005bc10 62 72 61 72 79 5f 3e 0a 3c 5c 2d 62 61 73 65 3d |brary_>.<\-base=| 0005bc20 3e 6c 69 6e 6b 64 69 72 5f 62 61 73 65 5f 3e 0a |>linkdir_base_>.| 0005bc30 3c 5c 2d 64 65 62 75 67 3d 3e 6c 69 6e 6b 64 69 |<\-debug=>linkdi| 0005bc40 72 5f 64 65 62 75 67 5f 3e 0a 3c 5c 2d 6d 61 70 |r_debug_>.<\-map| 0005bc50 3d 3e 6c 69 6e 6b 64 69 72 5f 6d 61 70 5f 3e 0a |=>linkdir_map_>.| 0005bc60 3c 5c 2d 74 68 72 6f 77 62 61 63 6b 3d 3e 6c 69 |<\-throwback=>li| 0005bc70 6e 6b 64 69 72 5f 74 68 72 6f 77 62 61 63 6b 5f |nkdir_throwback_| 0005bc80 3e 0a 3c 5c 2d 64 65 73 6b 74 6f 70 3d 3e 6c 69 |>.<\-desktop=>li| 0005bc90 6e 6b 64 69 72 5f 64 65 73 6b 74 6f 70 5f 3e 0a |nkdir_desktop_>.| 0005bca0 0a 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |..#EndTable.DATA| 0005bcb0 a4 00 00 00 2d 62 61 73 65 0a 41 62 62 72 65 76 |....-base.Abbrev| 0005bcc0 69 61 74 69 6f 6e 3a 09 2d 62 0a 53 79 6e 74 61 |iation:.-b.Synta| 0005bcd0 78 3a 09 2d 62 61 73 65 3d 5c 3c 61 64 64 72 65 |x:.-base=\<addre| 0005bce0 73 73 3e 0a 44 65 66 61 75 6c 74 3a 09 2d 62 61 |ss>.Default:.-ba| 0005bcf0 73 65 3d 26 38 30 30 30 0a 0a 54 68 69 73 20 71 |se=&8000..This q| 0005bd00 75 61 6c 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 |ualifier allows | 0005bd10 79 6f 75 20 74 6f 20 73 70 65 63 69 66 79 20 74 |you to specify t| 0005bd20 68 65 20 62 61 73 65 20 61 64 64 72 65 73 73 20 |he base address | 0005bd30 6f 66 20 74 68 65 20 65 78 65 63 75 74 61 62 6c |of the executabl| 0005bd40 65 20 63 6f 64 65 20 70 72 6f 64 75 63 65 64 2e |e code produced.| 0005bd50 44 41 54 41 8a 00 00 00 2d 64 65 62 75 67 0a 41 |DATA....-debug.A| 0005bd60 62 62 72 65 76 69 61 74 69 6f 6e 3a 09 2d 64 0a |bbreviation:.-d.| 0005bd70 44 65 66 61 75 6c 74 3a 09 2d 6e 6f 64 65 62 75 |Default:.-nodebu| 0005bd80 67 0a 0a 54 68 69 73 20 71 75 61 6c 69 66 69 65 |g..This qualifie| 0005bd90 72 20 63 61 75 73 65 73 20 74 68 65 20 6c 69 6e |r causes the lin| 0005bda0 6b 65 72 20 74 6f 20 69 6e 63 6c 75 64 65 20 64 |ker to include d| 0005bdb0 65 62 75 67 67 69 6e 67 20 69 6e 66 6f 72 6d 61 |ebugging informa| 0005bdc0 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 6c 69 |tion with the li| 0005bdd0 6e 6b 65 64 20 66 69 6c 65 2e 00 00 44 41 54 41 |nked file...DATA| 0005bde0 9f 00 00 00 2d 64 65 73 6b 74 6f 70 0a 41 62 62 |....-desktop.Abb| 0005bdf0 72 65 76 69 61 74 69 6f 6e 3a 09 2d 64 65 73 0a |reviation:.-des.| 0005be00 44 65 66 61 75 6c 74 3a 09 2d 64 65 73 6b 74 6f |Default:.-deskto| 0005be10 70 0a 0a 54 68 69 73 20 71 75 61 6c 69 66 69 65 |p..This qualifie| 0005be20 72 20 63 61 75 73 65 73 20 74 68 65 20 6c 69 6e |r causes the lin| 0005be30 6b 65 72 20 74 6f 20 61 63 63 65 70 74 20 66 75 |ker to accept fu| 0005be40 6c 6c 20 70 61 74 68 6e 61 6d 65 73 20 69 6e 73 |ll pathnames ins| 0005be50 74 65 61 64 20 6f 66 20 75 73 69 6e 67 20 69 74 |tead of using it| 0005be60 73 20 75 73 75 61 6c 20 6e 61 6d 69 6e 67 20 63 |s usual naming c| 0005be70 6f 6e 76 65 6e 74 69 6f 6e 73 2e 00 44 41 54 41 |onventions..DATA| 0005be80 de 00 00 00 2d 69 6d 61 67 65 0a 41 62 62 72 65 |....-image.Abbre| 0005be90 76 69 61 74 69 6f 6e 3a 09 2d 69 0a 53 79 6e 74 |viation:.-i.Synt| 0005bea0 61 78 3a 09 2d 69 6d 61 67 65 3d 5c 3c 70 61 74 |ax:.-image=\<pat| 0005beb0 68 6e 61 6d 65 3e 0a 0a 54 68 69 73 20 71 75 61 |hname>..This qua| 0005bec0 6c 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 79 6f |lifier allows yo| 0005bed0 75 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 |u to specify the| 0005bee0 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 74 68 65 | filename of the| 0005bef0 20 65 78 65 63 75 74 61 62 6c 65 20 66 69 6c 65 | executable file| 0005bf00 20 70 72 6f 64 75 63 65 64 2e 20 4e 6f 72 6d 61 | produced. Norma| 0005bf10 6c 6c 79 20 69 74 20 69 73 20 74 68 65 20 73 61 |lly it is the sa| 0005bf20 6d 65 20 61 73 20 74 68 65 20 6f 62 6a 65 63 74 |me as the object| 0005bf30 20 6e 61 6d 65 20 61 6e 64 20 70 6c 61 63 65 64 | name and placed| 0005bf40 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 | in the current | 0005bf50 64 69 72 65 63 74 6f 72 79 2e 00 00 44 41 54 41 |directory...DATA| 0005bf60 62 01 00 00 2d 6c 69 62 72 61 72 79 0a 41 62 62 |b...-library.Abb| 0005bf70 72 65 76 69 61 74 69 6f 6e 3a 09 2d 6c 0a 53 79 |reviation:.-l.Sy| 0005bf80 6e 74 61 78 3a 09 2d 6c 69 62 72 61 72 79 3d 5c |ntax:.-library=\| 0005bf90 3c 6c 69 62 72 61 72 69 65 73 3e 0a 44 65 66 61 |<libraries>.Defa| 0005bfa0 75 6c 74 3a 09 2d 6c 69 62 72 61 72 79 3d 53 54 |ult:.-library=ST| 0005bfb0 44 43 4c 69 62 0a 0a 54 68 69 73 20 71 75 61 6c |DCLib..This qual| 0005bfc0 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 79 6f 75 |ifier allows you| 0005bfd0 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 | to specify the | 0005bfe0 6c 69 62 72 61 72 69 65 73 20 6c 69 6e 6b 65 64 |libraries linked| 0005bff0 20 77 69 74 68 20 74 68 65 20 6f 62 6a 65 63 74 | with the object| 0005c000 20 66 69 6c 65 2e 20 53 54 44 43 4c 69 62 20 63 | file. STDCLib c| 0005c010 6f 6e 74 61 69 6e 73 20 74 68 65 20 73 74 61 6e |ontains the stan| 0005c020 64 61 72 64 20 41 4e 53 49 20 66 75 6e 63 74 69 |dard ANSI functi| 0005c030 6f 6e 73 20 61 6e 64 20 6f 74 68 65 72 20 65 73 |ons and other es| 0005c040 73 65 6e 74 69 61 6c 20 62 69 74 73 2c 20 61 6e |sential bits, an| 0005c050 64 20 52 4f 53 4c 69 62 20 69 73 20 74 68 65 20 |d ROSLib is the | 0005c060 52 49 53 43 20 4f 53 20 66 75 6e 63 74 69 6f 6e |RISC OS function| 0005c070 73 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 44 |s. In addition D| 0005c080 65 73 6b 4c 69 62 20 68 61 73 20 69 74 73 20 6f |eskLib has its o| 0005c090 77 6e 20 6c 69 62 72 61 72 79 2e 0a 0a 65 67 20 |wn library...eg | 0005c0a0 7b 66 43 6f 64 65 7d 2d 6c 69 62 72 61 72 79 3d |{fCode}-library=| 0005c0b0 53 54 44 43 4c 69 62 2c 52 4f 53 4c 69 62 00 00 |STDCLib,ROSLib..| 0005c0c0 44 41 54 41 d5 00 00 00 2d 6d 61 70 0a 41 62 62 |DATA....-map.Abb| 0005c0d0 72 65 76 69 61 74 69 6f 6e 3a 09 2d 6d 0a 53 79 |reviation:.-m.Sy| 0005c0e0 6e 74 61 78 3a 09 2d 6d 61 70 3d 5c 3c 70 61 74 |ntax:.-map=\<pat| 0005c0f0 68 6e 61 6d 65 3e 0a 44 65 66 61 75 6c 74 3a 09 |hname>.Default:.| 0005c100 2d 6e 6f 6d 61 70 0a 0a 54 68 69 73 20 71 75 61 |-nomap..This qua| 0005c110 6c 69 66 69 65 72 20 63 61 75 73 65 73 20 74 68 |lifier causes th| 0005c120 65 20 6c 69 6e 6b 65 72 20 74 6f 20 70 72 6f 64 |e linker to prod| 0005c130 75 63 65 20 61 20 6d 61 70 20 66 69 6c 65 2e 20 |uce a map file. | 0005c140 54 68 69 73 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 |This is normally| 0005c150 20 73 74 6f 72 65 64 20 69 6e 20 73 75 62 64 69 | stored in subdi| 0005c160 72 65 63 74 6f 72 79 20 22 6d 61 70 22 2c 20 62 |rectory "map", b| 0005c170 75 74 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 |ut you can speci| 0005c180 66 79 20 79 6f 75 72 20 6f 77 6e 20 70 61 74 68 |fy your own path| 0005c190 6e 61 6d 65 2e 00 00 00 44 41 54 41 99 00 00 00 |name....DATA....| 0005c1a0 2d 74 68 72 6f 77 62 61 63 6b 0a 41 62 62 72 65 |-throwback.Abbre| 0005c1b0 76 69 61 74 69 6f 6e 3a 09 2d 74 68 0a 44 65 66 |viation:.-th.Def| 0005c1c0 61 75 6c 74 3a 09 2d 6e 6f 74 68 72 6f 77 62 61 |ault:.-nothrowba| 0005c1d0 63 6b 0a 0a 54 68 69 73 20 71 75 61 6c 69 66 69 |ck..This qualifi| 0005c1e0 65 72 20 63 61 75 73 65 73 20 74 68 65 20 6c 69 |er causes the li| 0005c1f0 6e 6b 65 72 20 74 6f 20 70 72 6f 64 75 63 65 20 |nker to produce | 0005c200 22 54 68 72 6f 77 62 61 63 6b 22 20 6f 75 74 70 |"Throwback" outp| 0005c210 75 74 20 74 6f 20 61 20 73 75 69 74 61 62 6c 65 |ut to a suitable| 0005c220 20 65 78 74 65 72 6e 61 6c 20 65 64 69 74 6f 72 | external editor| 0005c230 2e 00 00 00 44 41 54 41 07 03 00 00 44 65 73 6b |....DATA....Desk| 0005c240 4c 69 6e 6b 3a 4c 69 6e 6b 4c 69 73 74 2e 68 0a |Link:LinkList.h.| 0005c250 56 65 72 73 69 6f 6e 3a 20 31 2e 33 33 20 28 33 |Version: 1.33 (3| 0005c260 30 20 4d 61 79 20 31 39 39 34 29 0a 23 6c 69 6e |0 May 1994).#lin| 0005c270 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 |e.This header de| 0005c280 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 |clares functions| 0005c290 20 61 6e 64 20 6f 6e 65 20 74 79 70 65 20 66 6f | and one type fo| 0005c2a0 72 20 68 61 6e 64 6c 69 6e 67 20 6c 69 6e 6b 65 |r handling linke| 0005c2b0 64 20 6c 69 73 74 73 20 65 61 73 69 6c 79 2e 0a |d lists easily..| 0005c2c0 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e |.Functions:..#in| 0005c2d0 64 65 6e 74 20 36 0a 23 54 61 62 6c 65 20 63 6f |dent 6.#Table co| 0005c2e0 6c 75 6d 6e 73 20 32 0a 3c 4c 69 6e 6b 4c 69 73 |lumns 2.<LinkLis| 0005c2f0 74 5f 41 64 64 54 6f 48 65 61 64 3e 0a 3c 4c 69 |t_AddToHead>.<Li| 0005c300 6e 6b 4c 69 73 74 5f 41 64 64 54 6f 54 61 69 6c |nkList_AddToTail| 0005c310 3e 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 49 6e 73 65 |>.<LinkList_Inse| 0005c320 72 74 42 65 66 6f 72 65 3e 0a 3c 4c 69 6e 6b 4c |rtBefore>.<LinkL| 0005c330 69 73 74 5f 49 6e 73 65 72 74 41 66 74 65 72 3e |ist_InsertAfter>| 0005c340 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 49 6e 4c 69 73 |.<LinkList_InLis| 0005c350 74 3e 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 4c 69 73 |t>.<LinkList_Lis| 0005c360 74 4c 65 6e 67 74 68 3e 0a 3c 4c 69 6e 6b 4c 69 |tLength>.<LinkLi| 0005c370 73 74 5f 55 6e 6c 69 6e 6b 3e 0a 3c 4c 69 6e 6b |st_Unlink>.<Link| 0005c380 4c 69 73 74 5f 46 69 72 73 74 49 74 65 6d 3e 0a |List_FirstItem>.| 0005c390 3c 4c 69 6e 6b 4c 69 73 74 5f 4c 61 73 74 49 74 |<LinkList_LastIt| 0005c3a0 65 6d 3e 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 49 6e |em>.<LinkList_In| 0005c3b0 69 74 3e 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 49 6e |it>.<LinkList_In| 0005c3c0 69 74 49 74 65 6d 3e 0a 3c 4c 69 6e 6b 4c 69 73 |itItem>.<LinkLis| 0005c3d0 74 5f 4e 65 78 74 49 74 65 6d 3e 0a 3c 4c 69 6e |t_NextItem>.<Lin| 0005c3e0 6b 4c 69 73 74 5f 50 72 65 76 69 6f 75 73 49 74 |kList_PreviousIt| 0005c3f0 65 6d 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 69 |em>.#EndTable.#i| 0005c400 6e 64 65 6e 74 0a 0a 54 79 70 65 3a 0a 0a 7b 61 |ndent..Type:..{a| 0005c410 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 6c 69 6e |lign centre}<lin| 0005c420 6b 6c 69 73 74 5f 68 65 61 64 65 72 3e 7b 61 6c |klist_header>{al| 0005c430 69 67 6e 7d 0a 0a 49 74 65 6d 73 20 69 6e 20 61 |ign}..Items in a| 0005c440 20 6c 69 6e 6b 65 64 20 6c 69 73 74 20 61 72 65 | linked list are| 0005c450 20 64 65 66 69 6e 65 64 20 61 73 20 73 74 72 75 | defined as stru| 0005c460 63 74 75 72 65 73 2c 20 77 68 6f 73 65 20 66 69 |ctures, whose fi| 0005c470 72 73 74 20 6d 65 6d 62 65 72 20 73 68 6f 75 6c |rst member shoul| 0005c480 64 20 62 65 20 61 20 7b 2a 7d 6c 69 6e 6b 6c 69 |d be a {*}linkli| 0005c490 73 74 5f 68 65 61 64 65 72 7b 2a 7d 2e 20 54 68 |st_header{*}. Th| 0005c4a0 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 73 74 |e rest of the st| 0005c4b0 72 75 63 74 75 72 65 20 6d 61 79 20 63 6f 6e 74 |ructure may cont| 0005c4c0 61 69 6e 20 74 68 65 20 64 61 74 61 20 72 65 71 |ain the data req| 0005c4d0 75 69 72 65 64 20 69 6e 20 74 68 65 20 6c 69 73 |uired in the lis| 0005c4e0 74 20 62 75 74 20 74 68 69 73 20 6d 65 74 68 6f |t but this metho| 0005c4f0 64 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 69 |d ensures that i| 0005c500 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 63 61 6e |tem pointers can| 0005c510 20 62 65 20 75 73 65 64 20 61 73 20 7b 2a 7d 6c | be used as {*}l| 0005c520 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 7b 2a |inklist_header{*| 0005c530 7d 20 70 6f 69 6e 74 65 72 73 2e 00 44 49 52 24 |} pointers..DIR$| 0005c540 20 03 00 00 20 03 00 00 5c c8 05 00 46 ff ff ff | ... ...\...F...| 0005c550 4a 87 3f 25 e7 00 00 00 13 00 00 00 00 00 00 00 |J.?%............| 0005c560 41 64 64 54 6f 48 65 61 64 00 00 00 44 c9 05 00 |AddToHead...D...| 0005c570 46 ff ff ff bd 8b 3f 25 e7 00 00 00 13 00 00 00 |F.....?%........| 0005c580 00 00 00 00 41 64 64 54 6f 54 61 69 6c 00 00 00 |....AddToTail...| 0005c590 2c ca 05 00 46 ff ff ff 9b 9e 56 26 03 01 00 00 |,...F.....V&....| 0005c5a0 13 00 00 00 00 00 00 00 41 70 70 65 6e 64 00 00 |........Append..| 0005c5b0 30 cb 05 00 46 ff ff ff f1 96 56 26 f3 00 00 00 |0...F.....V&....| 0005c5c0 13 00 00 00 00 00 00 00 46 69 72 73 74 00 00 00 |........First...| 0005c5d0 24 cc 05 00 46 ff ff ff 03 ac 3f 25 27 01 00 00 |$...F.....?%'...| 0005c5e0 13 00 00 00 00 00 00 00 46 69 72 73 74 49 74 65 |........FirstIte| 0005c5f0 6d 00 00 00 4c cd 05 00 46 ff ff ff 6a 86 56 26 |m...L...F...j.V&| 0005c600 89 01 00 00 13 00 00 00 00 00 00 00 46 72 65 65 |............Free| 0005c610 00 00 00 00 d8 ce 05 00 46 ff ff ff f6 8b 56 26 |........F.....V&| 0005c620 4b 01 00 00 13 00 00 00 00 00 00 00 46 72 65 65 |K...........Free| 0005c630 44 61 74 61 00 00 00 00 24 d0 05 00 46 ff ff ff |Data....$...F...| 0005c640 a1 c9 3f 25 75 01 00 00 13 00 00 00 00 00 00 00 |..?%u...........| 0005c650 68 65 61 64 65 72 00 00 9c d1 05 00 46 ff ff ff |header......F...| 0005c660 19 b6 3f 25 26 01 00 00 13 00 00 00 00 00 00 00 |..?%&...........| 0005c670 49 6e 69 74 00 00 00 00 c4 d2 05 00 46 ff ff ff |Init........F...| 0005c680 4d bb 3f 25 28 01 00 00 13 00 00 00 00 00 00 00 |M.?%(...........| 0005c690 49 6e 69 74 49 74 65 6d 00 00 00 00 ec d3 05 00 |InitItem........| 0005c6a0 46 ff ff ff 1e 9e 3f 25 5f 01 00 00 13 00 00 00 |F.....?%_.......| 0005c6b0 00 00 00 00 49 6e 4c 69 73 74 00 00 4c d5 05 00 |....InList..L...| 0005c6c0 46 ff ff ff 73 99 3f 25 34 01 00 00 13 00 00 00 |F...s.?%4.......| 0005c6d0 00 00 00 00 49 6e 73 65 72 74 41 66 74 65 72 00 |....InsertAfter.| 0005c6e0 80 d6 05 00 46 ff ff ff c6 93 3f 25 37 01 00 00 |....F.....?%7...| 0005c6f0 13 00 00 00 00 00 00 00 49 6e 73 65 72 74 42 65 |........InsertBe| 0005c700 66 6f 72 65 00 00 00 00 b8 d7 05 00 46 ff ff ff |fore........F...| 0005c710 88 9a 56 26 f0 00 00 00 13 00 00 00 00 00 00 00 |..V&............| 0005c720 4c 61 73 74 00 00 00 00 a8 d8 05 00 46 ff ff ff |Last........F...| 0005c730 c6 b1 3f 25 23 01 00 00 13 00 00 00 00 00 00 00 |..?%#...........| 0005c740 4c 61 73 74 49 74 65 6d 00 00 00 00 cc d9 05 00 |LastItem........| 0005c750 46 ff ff ff 44 a3 3f 25 a4 01 00 00 13 00 00 00 |F...D.?%........| 0005c760 00 00 00 00 4c 69 73 74 4c 65 6e 67 74 68 00 00 |....ListLength..| 0005c770 70 db 05 00 46 ff ff ff b5 8e 56 26 6e 00 00 00 |p...F.....V&n...| 0005c780 13 00 00 00 00 00 00 00 4e 65 78 74 00 00 00 00 |........Next....| 0005c790 e0 db 05 00 46 ff ff ff 3e bf 3f 25 4e 01 00 00 |....F...>.?%N...| 0005c7a0 13 00 00 00 00 00 00 00 4e 65 78 74 49 74 65 6d |........NextItem| 0005c7b0 00 00 00 00 30 dd 05 00 46 ff ff ff 94 a5 56 26 |....0...F.....V&| 0005c7c0 07 01 00 00 13 00 00 00 00 00 00 00 50 72 65 70 |............Prep| 0005c7d0 65 6e 64 00 38 de 05 00 46 ff ff ff 50 92 56 26 |end.8...F...P.V&| 0005c7e0 76 00 00 00 13 00 00 00 00 00 00 00 50 72 65 76 |v...........Prev| 0005c7f0 69 6f 75 73 00 00 00 00 b0 de 05 00 46 ff ff ff |ious........F...| 0005c800 66 c3 3f 25 5f 01 00 00 13 00 00 00 00 00 00 00 |f.?%_...........| 0005c810 50 72 65 76 69 6f 75 73 49 74 65 6d 00 00 00 00 |PreviousItem....| 0005c820 10 e0 05 00 46 fd ff ff d0 7f 56 26 7e 01 00 00 |....F.....V&~...| 0005c830 13 00 00 00 00 00 00 00 54 4c 00 00 90 e1 05 00 |........TL......| 0005c840 46 ff ff ff e0 a7 3f 25 6f 01 00 00 13 00 00 00 |F.....?%o.......| 0005c850 00 00 00 00 55 6e 6c 69 6e 6b 00 00 44 41 54 41 |....Unlink..DATA| 0005c860 e7 00 00 00 4c 69 6e 6b 4c 69 73 74 5f 41 64 64 |....LinkList_Add| 0005c870 54 6f 48 65 61 64 0a 53 79 6e 74 61 78 3a 09 76 |ToHead.Syntax:.v| 0005c880 6f 69 64 20 4c 69 6e 6b 4c 69 73 74 5f 41 64 64 |oid LinkList_Add| 0005c890 54 6f 48 65 61 64 20 28 3c 6c 69 6e 6b 6c 69 73 |ToHead (<linklis| 0005c8a0 74 5f 68 65 61 64 65 72 3e 20 2a 61 6e 63 68 6f |t_header> *ancho| 0005c8b0 72 2c 20 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 |r, linklist_head| 0005c8c0 65 72 20 2a 69 74 65 6d 29 3b 0a 48 65 61 64 65 |er *item);.Heade| 0005c8d0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b |r:.<DeskLib:Link| 0005c8e0 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 |List.h=>LinkList| 0005c8f0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 0005c900 20 61 64 64 73 20 61 6e 20 69 74 65 6d 20 74 6f | adds an item to| 0005c910 20 74 68 65 20 68 65 61 64 20 6f 66 20 74 68 65 | the head of the| 0005c920 20 6c 69 6e 6b 65 64 20 6c 69 73 74 20 77 68 6f | linked list who| 0005c930 73 65 20 61 6e 63 68 6f 72 20 69 73 20 67 69 76 |se anchor is giv| 0005c940 65 6e 2e 00 44 41 54 41 e7 00 00 00 4c 69 6e 6b |en..DATA....Link| 0005c950 4c 69 73 74 5f 41 64 64 54 6f 54 61 69 6c 0a 53 |List_AddToTail.S| 0005c960 79 6e 74 61 78 3a 09 76 6f 69 64 20 4c 69 6e 6b |yntax:.void Link| 0005c970 4c 69 73 74 5f 41 64 64 54 6f 54 61 69 6c 20 28 |List_AddToTail (| 0005c980 3c 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 |<linklist_header| 0005c990 3e 20 2a 61 6e 63 68 6f 72 2c 20 6c 69 6e 6b 6c |> *anchor, linkl| 0005c9a0 69 73 74 5f 68 65 61 64 65 72 20 2a 69 74 65 6d |ist_header *item| 0005c9b0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0005c9c0 4c 69 62 3a 4c 69 6e 6b 4c 69 73 74 2e 68 3d 3e |Lib:LinkList.h=>| 0005c9d0 4c 69 6e 6b 4c 69 73 74 3e 0a 0a 54 68 69 73 20 |LinkList>..This | 0005c9e0 66 75 6e 63 74 69 6f 6e 20 61 64 64 73 20 61 6e |function adds an| 0005c9f0 20 69 74 65 6d 20 74 6f 20 74 68 65 20 74 61 69 | item to the tai| 0005ca00 6c 20 6f 66 20 74 68 65 20 6c 69 6e 6b 65 64 20 |l of the linked | 0005ca10 6c 69 73 74 20 77 68 6f 73 65 20 61 6e 63 68 6f |list whose ancho| 0005ca20 72 20 69 73 20 67 69 76 65 6e 2e 00 44 41 54 41 |r is given..DATA| 0005ca30 03 01 00 00 4c 69 6e 6b 4c 69 73 74 5f 41 70 70 |....LinkList_App| 0005ca40 65 6e 64 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |end.Syntax:.void| 0005ca50 20 4c 69 6e 6b 4c 69 73 74 5f 41 70 70 65 6e 64 | LinkList_Append| 0005ca60 20 28 76 6f 69 64 20 2a 61 6e 63 68 6f 72 2c 20 | (void *anchor, | 0005ca70 76 6f 69 64 20 2a 69 74 65 6d 29 3b 0a 48 65 61 |void *item);.Hea| 0005ca80 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c 69 |der:.<TimsLib:Li| 0005ca90 6e 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 |nkList.h=>LinkLi| 0005caa0 73 74 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e |st_TL>..This fun| 0005cab0 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f |ction-like macro| 0005cac0 20 61 64 64 73 20 74 68 65 20 69 74 65 6d 20 77 | adds the item w| 0005cad0 68 6f 73 65 20 70 6f 69 6e 74 65 72 20 69 73 20 |hose pointer is | 0005cae0 67 69 76 65 6e 20 74 6f 20 74 68 65 20 65 6e 64 |given to the end| 0005caf0 20 6f 66 20 74 68 65 20 6c 69 73 74 20 77 68 6f | of the list who| 0005cb00 73 65 20 61 6e 63 68 6f 72 20 69 73 20 67 69 76 |se anchor is giv| 0005cb10 65 6e 2c 20 75 73 69 6e 67 20 3c 4c 69 6e 6b 4c |en, using <LinkL| 0005cb20 69 73 74 5f 41 64 64 54 6f 54 61 69 6c 3e 2e 00 |ist_AddToTail>..| 0005cb30 44 41 54 41 f3 00 00 00 4c 69 6e 6b 4c 69 73 74 |DATA....LinkList| 0005cb40 5f 46 69 72 73 74 0a 53 79 6e 74 61 78 3a 09 76 |_First.Syntax:.v| 0005cb50 6f 69 64 20 2a 4c 69 6e 6b 4c 69 73 74 5f 46 69 |oid *LinkList_Fi| 0005cb60 72 73 74 20 28 76 6f 69 64 20 2a 61 6e 63 68 6f |rst (void *ancho| 0005cb70 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d |r);.Header:.<Tim| 0005cb80 73 4c 69 62 3a 4c 69 6e 6b 4c 69 73 74 2e 68 3d |sLib:LinkList.h=| 0005cb90 3e 4c 69 6e 6b 4c 69 73 74 5f 54 4c 3e 0a 0a 52 |>LinkList_TL>..R| 0005cba0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0005cbb0 74 6f 20 74 68 65 20 66 69 72 73 74 20 69 74 65 |to the first ite| 0005cbc0 6d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |m...This functio| 0005cbd0 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 72 65 74 |n-like macro ret| 0005cbe0 75 72 6e 73 20 61 20 70 6f 69 6e 74 65 72 20 74 |urns a pointer t| 0005cbf0 6f 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d |o the first item| 0005cc00 20 6f 66 20 74 68 65 20 6c 69 73 74 20 77 68 6f | of the list who| 0005cc10 73 65 20 61 6e 63 68 6f 72 20 69 73 20 67 69 76 |se anchor is giv| 0005cc20 65 6e 2e 00 44 41 54 41 27 01 00 00 4c 69 6e 6b |en..DATA'...Link| 0005cc30 4c 69 73 74 5f 46 69 72 73 74 49 74 65 6d 0a 53 |List_FirstItem.S| 0005cc40 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a 4c 69 6e |yntax:.void *Lin| 0005cc50 6b 4c 69 73 74 5f 46 69 72 73 74 49 74 65 6d 20 |kList_FirstItem | 0005cc60 28 3c 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 |(<linklist_heade| 0005cc70 72 3e 20 2a 61 6e 63 68 6f 72 29 3b 0a 48 65 61 |r> *anchor);.Hea| 0005cc80 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4c 69 |der:.<DeskLib:Li| 0005cc90 6e 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 |nkList.h=>LinkLi| 0005cca0 73 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |st>..Returns:.Po| 0005ccb0 69 6e 74 65 72 20 74 6f 20 66 69 72 73 74 20 69 |inter to first i| 0005ccc0 74 65 6d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |tem...This funct| 0005ccd0 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 70 6f |ion returns a po| 0005cce0 69 6e 74 65 72 20 74 6f 20 74 68 65 20 66 69 72 |inter to the fir| 0005ccf0 73 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c |st item in the l| 0005cd00 69 73 74 20 77 68 6f 73 65 20 61 6e 63 68 6f 72 |ist whose anchor| 0005cd10 20 69 73 20 67 69 76 65 6e 2e 20 49 74 20 69 73 | is given. It is| 0005cd20 20 61 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 | actually define| 0005cd30 64 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 2d |d as a function-| 0005cd40 6c 69 6b 65 20 6d 61 63 72 6f 2e 00 44 41 54 41 |like macro..DATA| 0005cd50 89 01 00 00 4c 69 6e 6b 4c 69 73 74 5f 46 72 65 |....LinkList_Fre| 0005cd60 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4c |e.Syntax:.void L| 0005cd70 69 6e 6b 4c 69 73 74 5f 46 72 65 65 20 28 3c 6c |inkList_Free (<l| 0005cd80 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 3e 20 |inklist_header> | 0005cd90 2a 61 6e 63 68 6f 72 29 3b 0a 48 65 61 64 65 72 |*anchor);.Header| 0005cda0 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c 69 6e 6b 4c |:.<TimsLib:LinkL| 0005cdb0 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 5f |ist.h=>LinkList_| 0005cdc0 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |TL>..This functi| 0005cdd0 6f 6e 20 64 65 2d 61 6c 6c 6f 63 61 74 65 73 20 |on de-allocates | 0005cde0 74 68 65 20 6d 65 6d 6f 72 79 20 75 73 65 64 20 |the memory used | 0005cdf0 62 79 20 61 6c 6c 20 74 68 65 20 6d 65 6d 62 65 |by all the membe| 0005ce00 72 73 20 6f 66 20 74 68 65 20 6c 69 73 74 20 77 |rs of the list w| 0005ce10 68 6f 73 65 20 61 6e 63 68 6f 72 20 69 73 20 67 |hose anchor is g| 0005ce20 69 76 65 6e 20 28 75 73 69 6e 67 20 3c 66 72 65 |iven (using <fre| 0005ce30 65 3e 29 2c 20 61 6e 64 20 74 68 65 6e 20 64 65 |e>), and then de| 0005ce40 2d 61 6c 6c 6f 63 61 74 65 20 74 68 65 20 73 70 |-allocate the sp| 0005ce50 61 63 65 20 75 73 65 64 20 62 79 20 74 68 65 20 |ace used by the | 0005ce60 61 6e 63 68 6f 72 20 28 61 67 61 69 6e 20 75 73 |anchor (again us| 0005ce70 69 6e 67 20 66 72 65 65 29 2e 20 4e 6f 74 65 20 |ing free). Note | 0005ce80 74 68 61 74 20 69 74 20 77 69 6c 6c 20 6e 6f 74 |that it will not| 0005ce90 20 64 65 61 6c 6c 6f 63 61 74 65 20 61 6e 79 20 | deallocate any | 0005cea0 6d 65 6d 6f 72 79 20 77 68 6f 73 65 20 70 6f 69 |memory whose poi| 0005ceb0 6e 74 65 72 20 69 73 20 63 6f 6e 74 61 69 6e 65 |nter is containe| 0005cec0 64 20 77 69 74 68 69 6e 20 61 20 6c 69 73 74 20 |d within a list | 0005ced0 69 74 65 6d 2e 00 00 00 44 41 54 41 4b 01 00 00 |item....DATAK...| 0005cee0 4c 69 6e 6b 4c 69 73 74 5f 46 72 65 65 44 61 74 |LinkList_FreeDat| 0005cef0 61 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4c |a.Syntax:.void L| 0005cf00 69 6e 6b 4c 69 73 74 5f 46 72 65 65 44 61 74 61 |inkList_FreeData| 0005cf10 20 28 3c 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 | (<linklist_head| 0005cf20 65 72 3e 20 2a 61 6e 63 68 6f 72 29 3b 0a 48 65 |er> *anchor);.He| 0005cf30 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c |ader:.<TimsLib:L| 0005cf40 69 6e 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c |inkList.h=>LinkL| 0005cf50 69 73 74 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 |ist_TL>..This fu| 0005cf60 6e 63 74 69 6f 6e 20 64 65 2d 61 6c 6c 6f 63 61 |nction de-alloca| 0005cf70 74 65 73 20 74 68 65 20 6d 65 6d 6f 72 79 20 75 |tes the memory u| 0005cf80 73 65 64 20 62 79 20 61 6c 6c 20 74 68 65 20 6d |sed by all the m| 0005cf90 65 6d 62 65 72 73 20 6f 66 20 74 68 65 20 6c 69 |embers of the li| 0005cfa0 73 74 20 77 68 6f 73 65 20 61 6e 63 68 6f 72 20 |st whose anchor | 0005cfb0 69 73 20 67 69 76 65 6e 20 28 75 73 69 6e 67 20 |is given (using | 0005cfc0 3c 66 72 65 65 3e 29 2e 20 4e 6f 74 65 20 74 68 |<free>). Note th| 0005cfd0 61 74 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 64 |at it will not d| 0005cfe0 65 61 6c 6c 6f 63 61 74 65 20 61 6e 79 20 6d 65 |eallocate any me| 0005cff0 6d 6f 72 79 20 77 68 6f 73 65 20 70 6f 69 6e 74 |mory whose point| 0005d000 65 72 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 |er is contained | 0005d010 77 69 74 68 69 6e 20 61 20 6c 69 73 74 20 69 74 |within a list it| 0005d020 65 6d 2e 00 44 41 54 41 75 01 00 00 6c 69 6e 6b |em..DATAu...link| 0005d030 6c 69 73 74 5f 68 65 61 64 65 72 0a 54 68 69 73 |list_header.This| 0005d040 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 0005d050 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e | in <DeskLib:Lin| 0005d060 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 |kList.h=>LinkLis| 0005d070 74 3e 20 61 73 20 61 20 74 79 70 65 20 63 61 70 |t> as a type cap| 0005d080 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 |able of holding | 0005d090 70 6f 69 6e 74 65 72 73 20 74 6f 20 74 68 65 20 |pointers to the | 0005d0a0 70 72 65 76 69 6f 75 73 20 61 6e 64 20 6e 65 78 |previous and nex| 0005d0b0 74 20 72 65 63 6f 72 64 73 20 69 6e 20 61 20 6c |t records in a l| 0005d0c0 69 6e 6b 65 64 20 6c 69 73 74 2e 20 49 74 20 69 |inked list. It i| 0005d0d0 73 20 61 6c 73 6f 20 75 73 65 64 20 61 73 20 61 |s also used as a| 0005d0e0 6e 20 61 6e 63 68 6f 72 20 66 6f 72 20 74 68 65 |n anchor for the| 0005d0f0 20 6c 69 6e 6b 65 64 20 6c 69 73 74 2c 20 68 6f | linked list, ho| 0005d100 6c 64 69 6e 67 20 70 6f 69 6e 74 65 72 73 20 74 |lding pointers t| 0005d110 6f 20 74 68 65 20 66 69 72 73 74 20 61 6e 64 20 |o the first and | 0005d120 6c 61 73 74 20 69 74 65 6d 73 2e 0a 0a 74 79 70 |last items...typ| 0005d130 65 64 65 66 20 73 74 72 75 63 74 0a 5c 7b 0a 20 |edef struct.\{. | 0005d140 20 20 20 73 74 72 75 63 74 20 6c 69 6e 6b 6c 69 | struct linkli| 0005d150 73 74 5f 68 65 61 64 65 72 20 2a 6e 65 78 74 3b |st_header *next;| 0005d160 0a 20 20 20 20 73 74 72 75 63 74 20 6c 69 6e 6b |. struct link| 0005d170 6c 69 73 74 5f 68 65 61 64 65 72 20 2a 70 72 65 |list_header *pre| 0005d180 76 69 6f 75 73 3b 0a 7d 20 6c 69 6e 6b 6c 69 73 |vious;.} linklis| 0005d190 74 5f 68 65 61 64 65 72 3b 00 00 00 44 41 54 41 |t_header;...DATA| 0005d1a0 26 01 00 00 4c 69 6e 6b 4c 69 73 74 5f 49 6e 69 |&...LinkList_Ini| 0005d1b0 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4c |t.Syntax:.void L| 0005d1c0 69 6e 6b 4c 69 73 74 5f 49 6e 69 74 20 28 3c 6c |inkList_Init (<l| 0005d1d0 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 3e 20 |inklist_header> | 0005d1e0 2a 61 6e 63 68 6f 72 29 3b 0a 48 65 61 64 65 72 |*anchor);.Header| 0005d1f0 3a 09 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b 4c |:.<DeskLib:LinkL| 0005d200 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 3e |ist.h=>LinkList>| 0005d210 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0005d220 69 6e 69 74 69 61 6c 69 73 65 73 20 61 20 6c 69 |initialises a li| 0005d230 73 74 20 61 6e 63 68 6f 72 2e 20 54 68 69 73 20 |st anchor. This | 0005d240 73 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 |should be called| 0005d250 20 62 65 66 6f 72 65 20 74 68 65 20 61 6e 63 68 | before the anch| 0005d260 6f 72 20 69 73 20 75 73 65 64 2e 20 49 74 20 69 |or is used. It i| 0005d270 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 20 66 |s defined as a f| 0005d280 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 |unction-like mac| 0005d290 72 6f 20 61 6e 64 20 73 69 6d 70 6c 79 20 69 6e |ro and simply in| 0005d2a0 69 74 69 61 6c 69 73 65 73 20 62 6f 74 68 20 70 |itialises both p| 0005d2b0 6f 69 6e 74 65 72 73 20 74 6f 20 3c 4e 55 4c 4c |ointers to <NULL| 0005d2c0 3e 2e 00 00 44 41 54 41 28 01 00 00 4c 69 6e 6b |>...DATA(...Link| 0005d2d0 4c 69 73 74 5f 49 6e 69 74 49 74 65 6d 0a 53 79 |List_InitItem.Sy| 0005d2e0 6e 74 61 78 3a 09 76 6f 69 64 20 4c 69 6e 6b 4c |ntax:.void LinkL| 0005d2f0 69 73 74 5f 49 6e 69 74 49 74 65 6d 20 28 3c 6c |ist_InitItem (<l| 0005d300 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 3e 20 |inklist_header> | 0005d310 2a 69 74 65 6d 29 3b 0a 48 65 61 64 65 72 3a 09 |*item);.Header:.| 0005d320 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b 4c 69 73 |<DeskLib:LinkLis| 0005d330 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 3e 0a 0a |t.h=>LinkList>..| 0005d340 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e |This function in| 0005d350 69 74 69 61 6c 69 73 65 73 20 61 20 6c 69 73 74 |itialises a list| 0005d360 20 69 74 65 6d 2e 20 54 68 69 73 20 73 68 6f 75 | item. This shou| 0005d370 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 62 65 66 |ld be called bef| 0005d380 6f 72 65 20 74 68 65 20 69 74 65 6d 20 69 73 20 |ore the item is | 0005d390 75 73 65 64 2e 20 49 74 20 69 73 20 64 65 66 69 |used. It is defi| 0005d3a0 6e 65 64 20 61 73 20 61 20 66 75 6e 63 74 69 6f |ned as a functio| 0005d3b0 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 61 6e 64 |n-like macro and| 0005d3c0 20 73 69 6d 70 6c 79 20 69 6e 69 74 69 61 6c 69 | simply initiali| 0005d3d0 73 65 73 20 62 6f 74 68 20 70 6f 69 6e 74 65 72 |ses both pointer| 0005d3e0 73 20 74 6f 20 3c 4e 55 4c 4c 3e 2e 44 41 54 41 |s to <NULL>.DATA| 0005d3f0 5f 01 00 00 4c 69 6e 6b 4c 69 73 74 5f 49 6e 4c |_...LinkList_InL| 0005d400 69 73 74 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f |ist.Syntax:.<BOO| 0005d410 4c 3e 20 4c 69 6e 6b 4c 69 73 74 5f 49 6e 4c 69 |L> LinkList_InLi| 0005d420 73 74 20 28 3c 6c 69 6e 6b 6c 69 73 74 5f 68 65 |st (<linklist_he| 0005d430 61 64 65 72 3e 20 2a 61 6e 63 68 6f 72 2c 20 6c |ader> *anchor, l| 0005d440 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 20 2a |inklist_header *| 0005d450 69 74 65 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c |item);.Header:.<| 0005d460 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b 4c 69 73 74 |DeskLib:LinkList| 0005d470 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 3e 0a 0a 52 |.h=>LinkList>..R| 0005d480 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 |eturns:.<TRUE> i| 0005d490 66 20 69 74 65 6d 20 69 73 20 69 6e 20 6c 69 73 |f item is in lis| 0005d4a0 74 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |t...This functio| 0005d4b0 6e 20 73 63 61 6e 73 20 74 68 72 6f 75 67 68 20 |n scans through | 0005d4c0 61 20 6c 69 6e 6b 65 64 20 6c 69 73 74 20 28 77 |a linked list (w| 0005d4d0 68 6f 73 65 20 61 6e 63 68 6f 72 20 69 73 20 67 |hose anchor is g| 0005d4e0 69 76 65 6e 29 20 74 6f 20 73 65 65 20 69 66 20 |iven) to see if | 0005d4f0 61 6e 79 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 |any of the point| 0005d500 65 72 73 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 |ers point to the| 0005d510 20 69 74 65 6d 20 67 69 76 65 6e 2e 20 4e 6f 74 | item given. Not| 0005d520 65 20 74 68 61 74 20 69 74 20 64 6f 65 73 20 6e |e that it does n| 0005d530 6f 74 20 63 68 65 63 6b 20 74 68 65 20 69 74 65 |ot check the ite| 0005d540 6d 20 63 6f 6e 74 65 6e 74 73 21 00 44 41 54 41 |m contents!.DATA| 0005d550 34 01 00 00 4c 69 6e 6b 4c 69 73 74 5f 49 6e 73 |4...LinkList_Ins| 0005d560 65 72 74 41 66 74 65 72 0a 53 79 6e 74 61 78 3a |ertAfter.Syntax:| 0005d570 09 76 6f 69 64 20 4c 69 6e 6b 4c 69 73 74 5f 49 |.void LinkList_I| 0005d580 6e 73 65 72 74 41 66 74 65 72 20 28 3c 6c 69 6e |nsertAfter (<lin| 0005d590 6b 6c 69 73 74 5f 68 65 61 64 65 72 3e 20 2a 61 |klist_header> *a| 0005d5a0 6e 63 68 6f 72 2c 20 6c 69 6e 6b 6c 69 73 74 5f |nchor, linklist_| 0005d5b0 68 65 61 64 65 72 20 2a 70 6f 73 2c 20 6c 69 6e |header *pos, lin| 0005d5c0 6b 6c 69 73 74 5f 68 65 61 64 65 72 20 2a 69 74 |klist_header *it| 0005d5d0 65 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |em);.Header:.<De| 0005d5e0 73 6b 4c 69 62 3a 4c 69 6e 6b 4c 69 73 74 2e 68 |skLib:LinkList.h| 0005d5f0 3d 3e 4c 69 6e 6b 4c 69 73 74 3e 0a 0a 54 68 69 |=>LinkList>..Thi| 0005d600 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 |s function inser| 0005d610 74 73 20 74 68 65 20 69 74 65 6d 20 77 68 6f 73 |ts the item whos| 0005d620 65 20 70 6f 69 6e 74 65 72 20 69 73 20 67 69 76 |e pointer is giv| 0005d630 65 6e 20 69 6e 20 74 68 65 20 6c 69 6e 6b 65 64 |en in the linked| 0005d640 20 6c 69 73 74 20 77 68 6f 73 65 20 61 6e 63 68 | list whose anch| 0005d650 6f 72 20 69 73 20 67 69 76 65 6e 2c 20 61 66 74 |or is given, aft| 0005d660 65 72 20 74 68 65 20 69 74 65 6d 20 70 6f 69 6e |er the item poin| 0005d670 74 65 64 20 74 6f 20 62 79 20 2f 70 6f 73 2f 2e |ted to by /pos/.| 0005d680 44 41 54 41 37 01 00 00 4c 69 6e 6b 4c 69 73 74 |DATA7...LinkList| 0005d690 5f 49 6e 73 65 72 74 42 65 66 6f 72 65 0a 53 79 |_InsertBefore.Sy| 0005d6a0 6e 74 61 78 3a 09 76 6f 69 64 20 4c 69 6e 6b 4c |ntax:.void LinkL| 0005d6b0 69 73 74 5f 49 6e 73 65 72 74 42 65 66 6f 72 65 |ist_InsertBefore| 0005d6c0 20 28 3c 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 | (<linklist_head| 0005d6d0 65 72 3e 20 2a 61 6e 63 68 6f 72 2c 20 6c 69 6e |er> *anchor, lin| 0005d6e0 6b 6c 69 73 74 5f 68 65 61 64 65 72 20 2a 70 6f |klist_header *po| 0005d6f0 73 2c 20 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 |s, linklist_head| 0005d700 65 72 20 2a 69 74 65 6d 29 3b 0a 48 65 61 64 65 |er *item);.Heade| 0005d710 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b |r:.<DeskLib:Link| 0005d720 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 |List.h=>LinkList| 0005d730 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 0005d740 20 69 6e 73 65 72 74 73 20 74 68 65 20 69 74 65 | inserts the ite| 0005d750 6d 20 77 68 6f 73 65 20 70 6f 69 6e 74 65 72 20 |m whose pointer | 0005d760 69 73 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 |is given in the | 0005d770 6c 69 6e 6b 65 64 20 6c 69 73 74 20 77 68 6f 73 |linked list whos| 0005d780 65 20 61 6e 63 68 6f 72 20 69 73 20 67 69 76 65 |e anchor is give| 0005d790 6e 2c 20 62 65 66 6f 72 65 20 74 68 65 20 69 74 |n, before the it| 0005d7a0 65 6d 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |em pointed to by| 0005d7b0 20 2f 70 6f 73 2f 2e 00 44 41 54 41 f0 00 00 00 | /pos/..DATA....| 0005d7c0 4c 69 6e 6b 4c 69 73 74 5f 4c 61 73 74 0a 53 79 |LinkList_Last.Sy| 0005d7d0 6e 74 61 78 3a 09 76 6f 69 64 20 2a 4c 69 6e 6b |ntax:.void *Link| 0005d7e0 4c 69 73 74 5f 4c 61 73 74 20 28 76 6f 69 64 20 |List_Last (void | 0005d7f0 2a 61 6e 63 68 6f 72 29 3b 0a 48 65 61 64 65 72 |*anchor);.Header| 0005d800 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c 69 6e 6b 4c |:.<TimsLib:LinkL| 0005d810 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 5f |ist.h=>LinkList_| 0005d820 54 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |TL>..Returns:.Po| 0005d830 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6c 61 73 |inter to the las| 0005d840 74 74 20 69 74 65 6d 2e 0a 0a 54 68 69 73 20 66 |tt item...This f| 0005d850 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 |unction-like mac| 0005d860 72 6f 20 72 65 74 75 72 6e 73 20 61 20 70 6f 69 |ro returns a poi| 0005d870 6e 74 65 72 20 74 6f 20 74 68 65 20 6c 61 73 74 |nter to the last| 0005d880 20 69 74 65 6d 20 6f 66 20 74 68 65 20 6c 69 73 | item of the lis| 0005d890 74 20 77 68 6f 73 65 20 61 6e 63 68 6f 72 20 69 |t whose anchor i| 0005d8a0 73 20 67 69 76 65 6e 2e 44 41 54 41 23 01 00 00 |s given.DATA#...| 0005d8b0 4c 69 6e 6b 4c 69 73 74 5f 4c 61 73 74 49 74 65 |LinkList_LastIte| 0005d8c0 6d 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a |m.Syntax:.void *| 0005d8d0 4c 69 6e 6b 4c 69 73 74 5f 4c 61 73 74 49 74 65 |LinkList_LastIte| 0005d8e0 6d 20 28 3c 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 |m (<linklist_hea| 0005d8f0 64 65 72 3e 20 2a 61 6e 63 68 6f 72 29 3b 0a 48 |der> *anchor);.H| 0005d900 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0005d910 4c 69 6e 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b |LinkList.h=>Link| 0005d920 4c 69 73 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |List>..Returns:.| 0005d930 50 6f 69 6e 74 65 72 20 74 6f 20 6c 61 73 74 20 |Pointer to last | 0005d940 69 74 65 6d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |item...This func| 0005d950 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 70 |tion returns a p| 0005d960 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6c 61 |ointer to the la| 0005d970 73 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c |st item in the l| 0005d980 69 73 74 20 77 68 6f 73 65 20 61 6e 63 68 6f 72 |ist whose anchor| 0005d990 20 69 73 20 67 69 76 65 6e 2e 20 49 74 20 69 73 | is given. It is| 0005d9a0 20 61 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 | actually define| 0005d9b0 64 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 2d |d as a function-| 0005d9c0 6c 69 6b 65 20 6d 61 63 72 6f 2e 00 44 41 54 41 |like macro..DATA| 0005d9d0 a4 01 00 00 4c 69 6e 6b 4c 69 73 74 5f 4c 69 73 |....LinkList_Lis| 0005d9e0 74 4c 65 6e 67 74 68 0a 53 79 6e 74 61 78 3a 09 |tLength.Syntax:.| 0005d9f0 69 6e 74 20 4c 69 6e 6b 4c 69 73 74 5f 4c 69 73 |int LinkList_Lis| 0005da00 74 4c 65 6e 67 74 68 20 28 3c 6c 69 6e 6b 6c 69 |tLength (<linkli| 0005da10 73 74 5f 68 65 61 64 65 72 3e 20 2a 61 6e 63 68 |st_header> *anch| 0005da20 6f 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |or);.Header:.<De| 0005da30 73 6b 4c 69 62 3a 4c 69 6e 6b 4c 69 73 74 2e 68 |skLib:LinkList.h| 0005da40 3d 3e 4c 69 6e 6b 4c 69 73 74 3e 0a 0a 52 65 74 |=>LinkList>..Ret| 0005da50 75 72 6e 73 3a 09 4e 75 6d 62 65 72 20 6f 66 20 |urns:.Number of | 0005da60 69 74 65 6d 73 20 69 6e 20 6c 69 73 74 2e 0a 0a |items in list...| 0005da70 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 63 |This function sc| 0005da80 61 6e 73 20 74 68 72 6f 75 67 68 20 61 20 6c 69 |ans through a li| 0005da90 6e 6b 65 64 20 6c 69 73 74 20 28 77 68 6f 73 65 |nked list (whose| 0005daa0 20 61 6e 63 68 6f 72 20 69 73 20 67 69 76 65 6e | anchor is given| 0005dab0 29 20 61 6e 64 20 63 6f 75 6e 74 73 20 74 68 65 |) and counts the| 0005dac0 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 6d 73 | number of items| 0005dad0 20 69 74 20 66 69 6e 64 73 2e 20 43 6f 6e 73 65 | it finds. Conse| 0005dae0 71 75 65 6e 74 6c 79 20 69 74 20 6d 61 79 20 62 |quently it may b| 0005daf0 65 20 71 75 69 74 65 20 73 6c 6f 77 20 69 6e 20 |e quite slow in | 0005db00 63 6f 6d 70 75 74 69 6e 67 20 74 65 72 6d 73 20 |computing terms | 0005db10 73 6f 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 |so if you need t| 0005db20 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |his information | 0005db30 72 65 67 75 6c 61 72 6c 79 2c 20 61 6c 74 65 72 |regularly, alter| 0005db40 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 20 74 6f | your program to| 0005db50 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 69 | keep track of i| 0005db60 74 20 61 73 20 69 74 20 63 68 61 6e 67 65 73 2e |t as it changes.| 0005db70 44 41 54 41 6e 00 00 00 4c 69 6e 6b 4c 69 73 74 |DATAn...LinkList| 0005db80 5f 4e 65 78 74 0a 54 68 69 73 20 69 73 20 6a 75 |_Next.This is ju| 0005db90 73 74 20 61 20 3c 23 64 65 66 69 6e 65 3d 3e 64 |st a <#define=>d| 0005dba0 65 66 69 6e 65 3e 64 20 61 6c 74 65 72 6e 61 74 |efine>d alternat| 0005dbb0 69 76 65 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 |ive name for the| 0005dbc0 20 66 75 6e 63 74 69 6f 6e 20 3c 4c 69 6e 6b 4c | function <LinkL| 0005dbd0 69 73 74 5f 4e 65 78 74 49 74 65 6d 3e 2e 00 00 |ist_NextItem>...| 0005dbe0 44 41 54 41 4e 01 00 00 4c 69 6e 6b 4c 69 73 74 |DATAN...LinkList| 0005dbf0 5f 4e 65 78 74 49 74 65 6d 0a 53 79 6e 74 61 78 |_NextItem.Syntax| 0005dc00 3a 09 76 6f 69 64 20 2a 4c 69 6e 6b 4c 69 73 74 |:.void *LinkList| 0005dc10 5f 4e 65 78 74 49 74 65 6d 20 28 76 6f 69 64 20 |_NextItem (void | 0005dc20 2a 69 74 65 6d 29 3b 0a 48 65 61 64 65 72 3a 09 |*item);.Header:.| 0005dc30 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b 4c 69 73 |<DeskLib:LinkLis| 0005dc40 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 3e 0a 0a |t.h=>LinkList>..| 0005dc50 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 0005dc60 20 74 6f 20 6e 65 78 74 20 69 74 65 6d 2c 20 6f | to next item, o| 0005dc70 72 20 3c 4e 55 4c 4c 3e 2e 0a 0a 54 68 69 73 20 |r <NULL>...This | 0005dc80 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 0005dc90 20 74 68 65 20 6e 65 78 74 20 69 74 65 6d 20 61 | the next item a| 0005dca0 6c 6f 6e 67 20 74 68 65 20 6c 69 73 74 20 66 72 |long the list fr| 0005dcb0 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 69 74 65 |om the given ite| 0005dcc0 6d 2e 20 49 66 20 74 68 69 73 20 69 74 65 6d 20 |m. If this item | 0005dcd0 69 73 20 74 68 65 20 6c 61 73 74 20 6f 6e 65 2c |is the last one,| 0005dce0 20 4e 55 4c 4c 20 69 73 20 72 65 74 75 72 6e 65 | NULL is returne| 0005dcf0 64 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |d. This function| 0005dd00 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 66 | is actually def| 0005dd10 69 6e 65 64 20 61 73 20 61 20 66 75 6e 63 74 69 |ined as a functi| 0005dd20 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 2e 00 00 |on-like macro...| 0005dd30 44 41 54 41 07 01 00 00 4c 69 6e 6b 4c 69 73 74 |DATA....LinkList| 0005dd40 5f 50 72 65 70 65 6e 64 0a 53 79 6e 74 61 78 3a |_Prepend.Syntax:| 0005dd50 09 76 6f 69 64 20 4c 69 6e 6b 4c 69 73 74 5f 50 |.void LinkList_P| 0005dd60 72 65 70 65 6e 64 20 28 76 6f 69 64 20 2a 61 6e |repend (void *an| 0005dd70 63 68 6f 72 2c 20 76 6f 69 64 20 2a 69 74 65 6d |chor, void *item| 0005dd80 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 0005dd90 4c 69 62 3a 4c 69 6e 6b 4c 69 73 74 2e 68 3d 3e |Lib:LinkList.h=>| 0005dda0 4c 69 6e 6b 4c 69 73 74 5f 54 4c 3e 0a 0a 54 68 |LinkList_TL>..Th| 0005ddb0 69 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 |is function-like| 0005ddc0 20 6d 61 63 72 6f 20 61 64 64 73 20 74 68 65 20 | macro adds the | 0005ddd0 69 74 65 6d 20 77 68 6f 73 65 20 70 6f 69 6e 74 |item whose point| 0005dde0 65 72 20 69 73 20 67 69 76 65 6e 20 74 6f 20 74 |er is given to t| 0005ddf0 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 |he start of the | 0005de00 6c 69 73 74 20 77 68 6f 73 65 20 61 6e 63 68 6f |list whose ancho| 0005de10 72 20 69 73 20 67 69 76 65 6e 2c 20 75 73 69 6e |r is given, usin| 0005de20 67 20 3c 4c 69 6e 6b 4c 69 73 74 5f 41 64 64 54 |g <LinkList_AddT| 0005de30 6f 48 65 61 64 3e 2e 00 44 41 54 41 76 00 00 00 |oHead>..DATAv...| 0005de40 4c 69 6e 6b 4c 69 73 74 5f 50 72 65 76 69 6f 75 |LinkList_Previou| 0005de50 73 0a 54 68 69 73 20 69 73 20 6a 75 73 74 20 61 |s.This is just a| 0005de60 20 3c 23 64 65 66 69 6e 65 3d 3e 64 65 66 69 6e | <#define=>defin| 0005de70 65 3e 64 20 61 6c 74 65 72 6e 61 74 69 76 65 20 |e>d alternative | 0005de80 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 66 75 6e |name for the fun| 0005de90 63 74 69 6f 6e 20 3c 4c 69 6e 6b 4c 69 73 74 5f |ction <LinkList_| 0005dea0 50 72 65 76 69 6f 75 73 49 74 65 6d 3e 2e 00 00 |PreviousItem>...| 0005deb0 44 41 54 41 5f 01 00 00 4c 69 6e 6b 4c 69 73 74 |DATA_...LinkList| 0005dec0 5f 50 72 65 76 69 6f 75 73 49 74 65 6d 0a 53 79 |_PreviousItem.Sy| 0005ded0 6e 74 61 78 3a 09 76 6f 69 64 20 2a 4c 69 6e 6b |ntax:.void *Link| 0005dee0 4c 69 73 74 5f 50 72 65 76 69 6f 75 73 49 74 65 |List_PreviousIte| 0005def0 6d 20 28 76 6f 69 64 20 2a 69 74 65 6d 29 3b 0a |m (void *item);.| 0005df00 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0005df10 3a 4c 69 6e 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e |:LinkList.h=>Lin| 0005df20 6b 4c 69 73 74 3e 0a 0a 52 65 74 75 72 6e 73 3a |kList>..Returns:| 0005df30 09 50 6f 69 6e 74 65 72 20 74 6f 20 70 72 65 76 |.Pointer to prev| 0005df40 69 6f 75 73 20 69 74 65 6d 2c 20 6f 72 20 3c 4e |ious item, or <N| 0005df50 55 4c 4c 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |ULL>...This func| 0005df60 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 |tion returns the| 0005df70 20 70 72 65 76 69 6f 75 73 20 69 74 65 6d 20 61 | previous item a| 0005df80 6c 6f 6e 67 20 74 68 65 20 6c 69 73 74 20 66 72 |long the list fr| 0005df90 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 69 74 65 |om the given ite| 0005dfa0 6d 2e 20 49 66 20 74 68 69 73 20 69 74 65 6d 20 |m. If this item | 0005dfb0 69 73 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 |is the first one| 0005dfc0 2c 20 4e 55 4c 4c 20 69 73 20 72 65 74 75 72 6e |, NULL is return| 0005dfd0 65 64 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f |ed. This functio| 0005dfe0 6e 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 |n is actually de| 0005dff0 66 69 6e 65 64 20 61 73 20 61 20 66 75 6e 63 74 |fined as a funct| 0005e000 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 2e 00 |ion-like macro..| 0005e010 44 41 54 41 7e 01 00 00 54 69 6d 73 4c 69 62 3a |DATA~...TimsLib:| 0005e020 4c 69 6e 6b 4c 69 73 74 2e 68 0a 54 68 69 73 20 |LinkList.h.This | 0005e030 68 65 61 64 65 72 20 69 73 20 61 6e 20 65 78 74 |header is an ext| 0005e040 65 6e 73 69 6f 6e 20 74 6f 20 3c 44 65 73 6b 4c |ension to <DeskL| 0005e050 69 62 3a 4c 69 6e 6b 4c 69 73 74 2e 68 3d 3e 4c |ib:LinkList.h=>L| 0005e060 69 6e 6b 4c 69 73 74 3e 2c 20 70 72 6f 76 69 64 |inkList>, provid| 0005e070 69 6e 67 20 73 6f 6d 65 20 75 73 65 66 75 6c 20 |ing some useful | 0005e080 65 78 74 72 61 20 66 61 63 69 6c 69 74 69 65 73 |extra facilities| 0005e090 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 0005e0a0 49 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 |Indent 4.#Table | 0005e0b0 32 20 32 31 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 46 |2 21.<LinkList_F| 0005e0c0 72 65 65 3e 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 46 |ree>.<LinkList_F| 0005e0d0 72 65 65 44 61 74 61 3e 0a 3c 4c 69 6e 6b 4c 69 |reeData>.<LinkLi| 0005e0e0 73 74 5f 4e 65 78 74 3e 0a 3c 4c 69 6e 6b 4c 69 |st_Next>.<LinkLi| 0005e0f0 73 74 5f 50 72 65 76 69 6f 75 73 3e 0a 23 45 6e |st_Previous>.#En| 0005e100 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 30 |dTable.#indent 0| 0005e110 0a 0a 46 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 |..Function-like | 0005e120 6d 61 63 72 6f 73 3a 0a 0a 23 49 6e 64 65 6e 74 |macros:..#Indent| 0005e130 20 36 0a 23 54 61 62 6c 65 20 32 20 32 31 0a 3c | 6.#Table 2 21.<| 0005e140 4c 69 6e 6b 4c 69 73 74 5f 46 69 72 73 74 3e 0a |LinkList_First>.| 0005e150 3c 4c 69 6e 6b 4c 69 73 74 5f 4c 61 73 74 3e 0a |<LinkList_Last>.| 0005e160 3c 4c 69 6e 6b 4c 69 73 74 5f 41 70 70 65 6e 64 |<LinkList_Append| 0005e170 3e 0a 3c 4c 69 6e 6b 4c 69 73 74 5f 50 72 65 70 |>.<LinkList_Prep| 0005e180 65 6e 64 3e 0a 23 45 4e 64 74 61 62 6c 65 00 00 |end>.#ENdtable..| 0005e190 44 41 54 41 6f 01 00 00 4c 69 6e 6b 4c 69 73 74 |DATAo...LinkList| 0005e1a0 5f 55 6e 6c 69 6e 6b 0a 53 79 6e 74 61 78 3a 09 |_Unlink.Syntax:.| 0005e1b0 76 6f 69 64 20 4c 69 6e 6b 4c 69 73 74 5f 55 6e |void LinkList_Un| 0005e1c0 6c 69 6e 6b 20 28 3c 6c 69 6e 6b 6c 69 73 74 5f |link (<linklist_| 0005e1d0 68 65 61 64 65 72 3e 20 2a 61 6e 63 68 6f 72 2c |header> *anchor,| 0005e1e0 20 6c 69 6e 6b 6c 69 73 74 5f 68 65 61 64 65 72 | linklist_header| 0005e1f0 20 2a 69 74 65 6d 29 3b 0a 48 65 61 64 65 72 3a | *item);.Header:| 0005e200 09 3c 44 65 73 6b 4c 69 62 3a 4c 69 6e 6b 4c 69 |.<DeskLib:LinkLi| 0005e210 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 3e 0a |st.h=>LinkList>.| 0005e220 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 |.This function u| 0005e230 6e 6c 69 6e 6b 73 20 74 68 65 20 69 74 65 6d 20 |nlinks the item | 0005e240 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 77 68 |from the list wh| 0005e250 6f 73 65 20 61 6e 63 68 6f 72 20 69 73 20 67 69 |ose anchor is gi| 0005e260 76 65 6e 2e 20 49 74 20 64 6f 65 73 20 74 68 69 |ven. It does thi| 0005e270 73 20 62 79 20 6d 61 6b 69 6e 67 20 74 68 65 20 |s by making the | 0005e280 69 74 65 6d 20 62 65 66 6f 72 65 20 74 68 69 73 |item before this| 0005e290 20 6f 6e 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 | one point to th| 0005e2a0 65 20 69 74 65 6d 20 61 66 74 65 72 20 74 68 69 |e item after thi| 0005e2b0 73 20 6f 6e 65 20 61 6e 64 20 76 69 63 65 20 76 |s one and vice v| 0005e2c0 65 72 73 61 2e 20 4f 6e 63 65 20 75 6e 6c 69 6e |ersa. Once unlin| 0005e2d0 6b 65 64 2c 20 79 6f 75 20 63 61 6e 20 66 72 65 |ked, you can fre| 0005e2e0 65 20 74 68 65 20 6d 65 6d 6f 72 79 20 75 73 65 |e the memory use| 0005e2f0 64 20 62 79 20 74 68 69 73 20 69 74 65 6d 2e 00 |d by this item..| 0005e300 44 41 54 41 36 01 00 00 6c 6f 63 61 6c 65 2e 68 |DATA6...locale.h| 0005e310 0a 54 68 65 20 68 65 61 64 65 72 20 5c 3c 6c 6f |.The header \<lo| 0005e320 63 61 6c 65 2e 68 3e 20 64 65 63 6c 61 72 65 73 |cale.h> declares| 0005e330 20 66 75 6e 63 74 69 6f 6e 73 2c 20 61 20 74 79 | functions, a ty| 0005e340 70 65 20 61 6e 64 20 73 6f 6d 65 20 6d 61 63 72 |pe and some macr| 0005e350 6f 73 20 72 65 6c 61 74 69 6e 67 20 74 6f 20 74 |os relating to t| 0005e360 68 65 20 63 75 72 72 65 6e 74 20 6c 6f 63 61 6c |he current local| 0005e370 65 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |e...Functions:..| 0005e380 23 54 61 62 6c 65 20 31 0a 3c 6c 6f 63 61 6c 65 |#Table 1.<locale| 0005e390 63 6f 6e 76 3e 0a 3c 73 65 74 6c 6f 63 61 6c 65 |conv>.<setlocale| 0005e3a0 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 49 6e 64 |>.#EndTable.#Ind| 0005e3b0 65 6e 74 20 30 0a 0a 54 79 70 65 3a 0a 0a 3c 73 |ent 0..Type:..<s| 0005e3c0 74 72 75 63 74 20 6c 63 6f 6e 76 3d 3e 6c 63 6f |truct lconv=>lco| 0005e3d0 6e 76 3e 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 23 54 |nv>..Macros:..#T| 0005e3e0 61 62 6c 65 20 32 0a 3c 4c 43 5f 41 4c 4c 3e 0a |able 2.<LC_ALL>.| 0005e3f0 3c 4c 43 5f 43 4f 4c 4c 41 54 45 3e 0a 3c 4c 43 |<LC_COLLATE>.<LC| 0005e400 5f 43 54 59 50 45 3e 0a 3c 4c 43 5f 4d 4f 4e 45 |_CTYPE>.<LC_MONE| 0005e410 54 41 52 59 3e 0a 3c 4c 43 5f 4e 55 4d 45 52 49 |TARY>.<LC_NUMERI| 0005e420 43 3e 0a 3c 4c 43 5f 54 49 4d 45 3e 0a 23 45 6e |C>.<LC_TIME>.#En| 0005e430 64 54 61 62 6c 65 00 00 44 41 54 41 d4 00 00 00 |dTable..DATA....| 0005e440 6c 6f 63 61 6c 65 63 6f 6e 76 0a 53 79 6e 74 61 |localeconv.Synta| 0005e450 78 3a 09 3c 73 74 72 75 63 74 20 6c 63 6f 6e 76 |x:.<struct lconv| 0005e460 3d 3e 6c 63 6f 6e 76 3e 20 2a 6c 6f 63 61 6c 65 |=>lconv> *locale| 0005e470 63 6f 6e 76 20 28 76 6f 69 64 29 3b 0a 48 65 61 |conv (void);.Hea| 0005e480 64 65 72 3a 09 3c 6c 6f 63 61 6c 65 2e 68 3d 3e |der:.<locale.h=>| 0005e490 6c 6f 63 61 6c 65 3e 0a 0a 52 65 74 75 72 6e 73 |locale>..Returns| 0005e4a0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 6c 6f 63 |:.Pointer to loc| 0005e4b0 61 6c 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e |ale information.| 0005e4c0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0005e4d0 72 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 |returns informat| 0005e4e0 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 |ion about the cu| 0005e4f0 72 72 65 6e 74 20 6c 6f 63 61 6c 65 20 69 6e 20 |rrent locale in | 0005e500 61 20 73 74 72 75 63 74 75 72 65 2e 44 41 54 41 |a structure.DATA| 0005e510 f8 00 00 00 6c 6f 63 61 6c 74 69 6d 65 0a 53 79 |....localtime.Sy| 0005e520 6e 74 61 78 3a 09 3c 73 74 72 75 63 74 a0 74 6d |ntax:.<struct.tm| 0005e530 3e 20 2a 6c 6f 63 61 6c 74 69 6d 65 20 28 3c 74 |> *localtime (<t| 0005e540 69 6d 65 5f 74 3e 20 2a 74 69 6d 65 72 29 3b 0a |ime_t> *timer);.| 0005e550 48 65 61 64 65 72 3a 09 3c 74 69 6d 65 2e 68 3d |Header:.<time.h=| 0005e560 3e 74 69 6d 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |>time_h>..Return| 0005e570 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 |s:.Pointer to th| 0005e580 65 20 62 72 6f 6b 65 6e 2d 64 6f 77 6e 20 74 69 |e broken-down ti| 0005e590 6d 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |me...This functi| 0005e5a0 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |on converts the | 0005e5b0 63 61 6c 65 6e 64 61 72 20 74 69 6d 65 20 70 6f |calendar time po| 0005e5c0 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 69 6d |inted to by /tim| 0005e5d0 65 72 2f 20 69 6e 74 6f 20 61 20 62 72 6f 6b 65 |er/ into a broke| 0005e5e0 6e 2d 64 6f 77 6e 20 74 69 6d 65 20 65 78 70 72 |n-down time expr| 0005e5f0 65 73 73 65 64 20 69 6e 20 6c 6f 63 61 6c 20 74 |essed in local t| 0005e600 69 6d 65 2e 44 41 54 41 2e 01 00 00 6c 6f 67 0a |ime.DATA....log.| 0005e610 53 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 20 6c |Syntax:.double l| 0005e620 6f 67 20 28 64 6f 75 62 6c 65 20 78 29 3b 0a 48 |og (double x);.H| 0005e630 65 61 64 65 72 3a 09 3c 6d 61 74 68 2e 68 3d 3e |eader:.<math.h=>| 0005e640 6d 61 74 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |math>..Returns:.| 0005e650 54 68 65 20 6e 61 74 75 72 61 6c 20 6c 6f 67 61 |The natural loga| 0005e660 72 69 74 68 6d 20 6f 66 20 78 2e 0a 0a 54 68 69 |rithm of x...Thi| 0005e670 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 |s function calcu| 0005e680 6c 61 74 65 73 20 74 68 65 20 6e 61 74 75 72 61 |lates the natura| 0005e690 6c 20 6c 6f 67 61 72 69 74 68 6d 20 6f 66 20 78 |l logarithm of x| 0005e6a0 2c 20 69 65 20 74 68 65 20 70 6f 77 65 72 20 74 |, ie the power t| 0005e6b0 6f 20 77 68 69 63 68 20 65 20 28 20 3d 20 3c 65 |o which e ( = <e| 0005e6c0 78 70 3e 28 31 29 20 3d 20 32 2e 37 31 38 32 38 |xp>(1) = 2.71828| 0005e6d0 31 38 33 8c 20 29 20 6d 75 73 74 20 62 65 20 72 |183. ) must be r| 0005e6e0 61 69 73 65 64 20 69 6e 20 6f 72 64 65 72 20 74 |aised in order t| 0005e6f0 6f 20 6f 62 74 61 69 6e 20 78 2e 20 46 72 65 71 |o obtain x. Freq| 0005e700 75 65 6e 74 6c 79 20 63 61 6c 6c 65 64 20 94 4c |uently called .L| 0005e710 4e 95 20 69 6e 20 6e 6f 6e 2d 43 20 65 6e 76 69 |N. in non-C envi| 0005e720 72 6f 6e 6d 65 6e 74 73 20 65 67 20 42 61 73 69 |ronments eg Basi| 0005e730 63 2e 00 00 44 41 54 41 18 01 00 00 6c 6f 67 31 |c...DATA....log1| 0005e740 30 0a 53 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 |0.Syntax:.double| 0005e750 20 6c 6f 67 31 30 20 28 64 6f 75 62 6c 65 20 78 | log10 (double x| 0005e760 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 74 68 |);.Header:.<math| 0005e770 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 75 72 |.h=>math>..Retur| 0005e780 6e 73 3a 09 54 68 65 20 62 61 73 65 20 74 65 6e |ns:.The base ten| 0005e790 20 6c 6f 67 61 72 69 74 68 6d 20 6f 66 20 78 2e | logarithm of x.| 0005e7a0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0005e7b0 63 61 6c 63 75 6c 61 74 65 73 20 74 68 65 20 62 |calculates the b| 0005e7c0 61 73 65 20 31 30 20 6c 6f 67 61 72 69 74 68 6d |ase 10 logarithm| 0005e7d0 0a 6f 66 20 78 2c 20 69 65 20 74 68 65 20 70 6f |.of x, ie the po| 0005e7e0 77 65 72 20 74 6f 20 77 68 69 63 68 20 31 30 20 |wer to which 10 | 0005e7f0 6d 75 73 74 20 62 65 20 72 61 69 73 65 64 0a 69 |must be raised.i| 0005e800 6e 20 6f 72 64 65 72 20 74 6f 20 6f 62 74 61 69 |n order to obtai| 0005e810 6e 20 78 2e 20 46 72 65 71 75 65 6e 74 6c 79 20 |n x. Frequently | 0005e820 63 61 6c 6c 65 64 20 94 4c 4f 47 95 0a 69 6e 20 |called .LOG..in | 0005e830 6e 6f 6e 2d 43 20 65 6e 76 69 72 6f 6e 6d 65 6e |non-C environmen| 0005e840 74 73 20 65 67 20 42 61 73 69 63 2e 44 49 52 24 |ts eg Basic.DIR$| 0005e850 44 00 00 00 44 00 00 00 90 e8 05 00 46 ff ff ff |D...D.......F...| 0005e860 ed 14 bd 22 ac 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0005e870 4d 41 58 00 3c e9 05 00 46 ff ff ff 25 12 bd 22 |MAX.<...F...%.."| 0005e880 ad 00 00 00 13 00 00 00 00 00 00 00 4d 49 4e 00 |............MIN.| 0005e890 44 41 54 41 ac 00 00 00 4c 4f 4e 47 5f 4d 41 58 |DATA....LONG_MAX| 0005e8a0 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 0005e8b0 65 66 69 6e 65 64 20 69 6e 20 3c 6c 69 6d 69 74 |efined in <limit| 0005e8c0 73 2e 68 3e 20 61 6e 64 20 72 65 70 72 65 73 65 |s.h> and represe| 0005e8d0 6e 74 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 |nts the maximum | 0005e8e0 76 61 6c 75 65 20 77 68 69 63 68 20 63 61 6e 20 |value which can | 0005e8f0 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 20 6c |be stored in a l| 0005e900 6f 6e 67 20 69 6e 74 2e 20 49 6e 20 45 61 73 79 |ong int. In Easy| 0005e910 20 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 | C it is defined| 0005e920 20 61 73 20 30 78 37 66 66 66 66 66 66 66 20 28 | as 0x7fffffff (| 0005e930 32 31 34 37 34 38 33 36 34 37 29 2e 44 41 54 41 |2147483647).DATA| 0005e940 ad 00 00 00 4c 4f 4e 47 5f 4d 49 4e 0a 54 68 69 |....LONG_MIN.Thi| 0005e950 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 0005e960 65 64 20 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e |ed in <limits.h>| 0005e970 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 | and represents | 0005e980 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 |the minimum valu| 0005e990 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 |e which can be s| 0005e9a0 74 6f 72 65 64 20 69 6e 20 61 20 6c 6f 6e 67 20 |tored in a long | 0005e9b0 69 6e 74 2e 20 49 6e 20 45 61 73 79 20 43 20 69 |int. In Easy C i| 0005e9c0 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 |t is defined as | 0005e9d0 30 78 38 30 30 30 30 30 30 30 20 28 2d 32 31 34 |0x80000000 (-214| 0005e9e0 37 34 38 33 36 34 38 29 2e 00 00 00 44 41 54 41 |7483648)....DATA| 0005e9f0 ce 01 00 00 6c 6f 6e 67 6a 6d 70 0a 53 79 6e 74 |....longjmp.Synt| 0005ea00 61 78 3a 09 76 6f 69 64 20 6c 6f 6e 67 6a 6d 70 |ax:.void longjmp| 0005ea10 20 28 3c 6a 6d 70 5f 62 75 66 3e 20 65 6e 76 2c | (<jmp_buf> env,| 0005ea20 20 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a | int n);.Header:| 0005ea30 09 3c 73 65 74 6a 6d 70 2e 68 3d 3e 73 65 74 6a |.<setjmp.h=>setj| 0005ea40 6d 70 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |mp_h>..This func| 0005ea50 74 69 6f 6e 20 6a 75 6d 70 73 20 74 6f 20 74 68 |tion jumps to th| 0005ea60 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 |e position of th| 0005ea70 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 3c 73 |e most recent <s| 0005ea80 65 74 6a 6d 70 3e 20 63 61 6c 6c 2e 20 49 74 20 |etjmp> call. It | 0005ea90 6a 75 6d 70 73 20 69 6e 20 74 6f 20 74 68 65 20 |jumps in to the | 0005eaa0 63 6f 64 65 20 62 79 20 70 72 65 74 65 6e 64 69 |code by pretendi| 0005eab0 6e 67 20 74 6f 20 72 65 74 75 72 6e 20 66 72 6f |ng to return fro| 0005eac0 6d 20 74 68 65 20 73 65 74 6a 6d 70 20 63 61 6c |m the setjmp cal| 0005ead0 6c 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 |l, and returns t| 0005eae0 68 65 20 76 61 6c 75 65 20 67 69 76 65 6e 20 69 |he value given i| 0005eaf0 6e 20 6e 20 28 69 6e 73 74 65 61 64 20 6f 66 20 |n n (instead of | 0005eb00 7a 65 72 6f 2c 20 77 68 69 63 68 20 69 73 20 72 |zero, which is r| 0005eb10 65 74 75 72 6e 65 64 20 69 66 20 73 65 74 6a 6d |eturned if setjm| 0005eb20 70 20 69 73 20 63 61 6c 6c 65 64 20 64 69 72 65 |p is called dire| 0005eb30 63 74 6c 79 29 2e 20 54 68 65 20 65 6e 76 69 72 |ctly). The envir| 0005eb40 6f 6e 6d 65 6e 74 20 73 68 6f 75 6c 64 20 62 65 |onment should be| 0005eb50 20 74 68 61 74 20 77 68 69 63 68 20 69 73 20 70 | that which is p| 0005eb60 61 73 73 65 64 20 74 6f 20 74 68 65 20 73 65 74 |assed to the set| 0005eb70 6a 6d 70 20 63 61 6c 6c 2e 0a 0a 50 6c 65 61 73 |jmp call...Pleas| 0005eb80 65 20 74 72 79 20 6e 6f 74 20 74 6f 20 75 73 65 |e try not to use| 0005eb90 20 74 68 69 73 20 2d 20 77 72 69 74 65 20 73 74 | this - write st| 0005eba0 72 75 63 74 75 72 65 64 20 70 72 6f 67 72 61 6d |ructured program| 0005ebb0 73 20 69 6e 73 74 65 61 64 21 00 00 44 49 52 24 |s instead!..DIR$| 0005ebc0 e4 04 00 00 e4 04 00 00 a0 f0 05 00 46 fd ff ff |............F...| 0005ebd0 fc a8 84 2f b0 00 00 00 13 01 00 00 00 00 00 00 |.../............| 0005ebe0 6d 5f 00 00 34 f3 05 00 46 ff ff ff 89 63 5a 26 |m_..4...F....cZ&| 0005ebf0 b5 00 00 00 13 00 00 00 00 00 00 00 6d 61 65 6c |............mael| 0005ec00 73 74 72 6f 6d 00 00 00 ec f3 05 00 46 ff ff ff |strom.......F...| 0005ec10 a1 c3 b0 24 4b 00 00 00 13 00 00 00 00 00 00 00 |...$K...........| 0005ec20 6d 61 67 6e 69 66 79 00 38 f4 05 00 46 fd ff ff |magnify.8...F...| 0005ec30 7d a9 84 2f 2c 00 00 00 13 01 00 00 00 00 00 00 |}../,...........| 0005ec40 6d 61 67 6e 69 66 79 5f 00 00 00 00 f8 f6 05 00 |magnify_........| 0005ec50 46 fd ff ff a3 a9 84 2f 2c 00 00 00 13 01 00 00 |F....../,.......| 0005ec60 00 00 00 00 6d 61 6b 65 5f 00 00 00 00 fb 05 00 |....make_.......| 0005ec70 46 ff ff ff 55 4d 56 26 f1 00 00 00 13 00 00 00 |F...UMV&........| 0005ec80 00 00 00 00 4d 61 6b 65 41 53 43 49 49 5a 00 00 |....MakeASCIIZ..| 0005ec90 f4 fb 05 00 46 ff ff ff ac 47 56 26 ed 00 00 00 |....F....GV&....| 0005eca0 13 00 00 00 00 00 00 00 4d 61 6b 65 43 52 00 00 |........MakeCR..| 0005ecb0 e4 fc 05 00 46 ff ff ff 4f 6a e7 28 e7 00 00 00 |....F...Oj.(....| 0005ecc0 13 00 00 00 00 00 00 00 6d 61 6c 6c 6f 63 00 00 |........malloc..| 0005ecd0 cc fd 05 00 46 ff ff ff af bc 56 26 11 02 00 00 |....F.....V&....| 0005ece0 13 00 00 00 00 00 00 00 4d 61 6c 6c 6f 63 44 62 |........MallocDb| 0005ecf0 75 67 00 00 e0 ff 05 00 46 fd ff ff 14 aa 84 2f |ug......F....../| 0005ed00 2c 00 00 00 13 01 00 00 00 00 00 00 4d 61 6c 6c |,...........Mall| 0005ed10 6f 63 44 62 75 67 5f 00 c8 01 06 00 46 ff ff ff |ocDbug_.....F...| 0005ed20 fe e0 be 22 66 03 00 00 13 00 00 00 00 00 00 00 |..."f...........| 0005ed30 6d 61 74 68 00 00 00 00 30 05 06 00 46 ff ff ff |math....0...F...| 0005ed40 04 c4 f1 24 bc 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0005ed50 4d 41 58 00 ec 05 06 00 46 fd ff ff 61 aa 84 2f |MAX.....F...a../| 0005ed60 30 00 00 00 13 01 00 00 00 00 00 00 4d 41 58 5f |0...........MAX_| 0005ed70 00 00 00 00 ac 06 06 00 46 fd ff ff 8a aa 84 2f |........F....../| 0005ed80 4c 00 00 00 13 01 00 00 00 00 00 00 4d 42 5f 00 |L...........MB_.| 0005ed90 a0 08 06 00 46 ff ff ff 59 91 de 22 17 02 00 00 |....F...Y.."....| 0005eda0 13 00 00 00 00 00 00 00 6d 62 6c 65 6e 00 00 00 |........mblen...| 0005edb0 b8 0a 06 00 46 ff ff ff 0e da de 22 b3 02 00 00 |....F......"....| 0005edc0 13 00 00 00 00 00 00 00 6d 62 73 74 6f 77 63 73 |........mbstowcs| 0005edd0 00 00 00 00 6c 0d 06 00 46 ff ff ff 6c b0 de 22 |....l...F...l.."| 0005ede0 bd 02 00 00 13 00 00 00 00 00 00 00 6d 62 74 6f |............mbto| 0005edf0 77 63 00 00 2c 10 06 00 46 ff ff ff e1 04 40 25 |wc..,...F.....@%| 0005ee00 5e 02 00 00 13 00 00 00 00 00 00 00 4d 65 6d 00 |^...........Mem.| 0005ee10 8c 12 06 00 46 fd ff ff 14 ab 84 2f 84 01 00 00 |....F....../....| 0005ee20 13 01 00 00 00 00 00 00 4d 65 6d 5f 00 00 00 00 |........Mem_....| 0005ee30 50 22 06 00 46 ff ff ff 99 89 e0 22 2d 01 00 00 |P"..F......"-...| 0005ee40 13 00 00 00 00 00 00 00 6d 65 6d 63 68 72 00 00 |........memchr..| 0005ee50 80 23 06 00 46 ff ff ff 22 23 e0 22 74 01 00 00 |.#..F..."#."t...| 0005ee60 13 00 00 00 00 00 00 00 6d 65 6d 63 6d 70 00 00 |........memcmp..| 0005ee70 f4 24 06 00 46 ff ff ff f1 dc df 22 20 01 00 00 |.$..F......" ...| 0005ee80 13 00 00 00 00 00 00 00 6d 65 6d 63 70 79 00 00 |........memcpy..| 0005ee90 14 26 06 00 46 ff ff ff 2f c7 df 22 70 01 00 00 |.&..F.../.."p...| 0005eea0 13 00 00 00 00 00 00 00 6d 65 6d 6d 6f 76 65 00 |........memmove.| 0005eeb0 84 27 06 00 46 ff ff ff cc e7 56 26 e9 00 00 00 |.'..F.....V&....| 0005eec0 13 00 00 00 00 00 00 00 4d 65 6d 6f 72 79 44 75 |........MemoryDu| 0005eed0 6d 70 00 00 70 28 06 00 46 ff ff ff cc 89 e1 22 |mp..p(..F......"| 0005eee0 f7 00 00 00 13 00 00 00 00 00 00 00 6d 65 6d 73 |............mems| 0005eef0 65 74 00 00 68 29 06 00 46 ff ff ff 4b e9 47 23 |et..h)..F...K.G#| 0005ef00 d9 01 00 00 13 00 00 00 00 00 00 00 6d 65 6e 75 |............menu| 0005ef10 00 00 00 00 44 2b 06 00 46 fd ff ff 9f ac 84 2f |....D+..F....../| 0005ef20 e4 08 00 00 13 01 00 00 00 00 00 00 4d 65 6e 75 |............Menu| 0005ef30 5f 00 00 00 3c 87 06 00 46 fd ff ff 85 b1 84 2f |_...<...F....../| 0005ef40 a8 02 00 00 13 01 00 00 00 00 00 00 6d 65 73 73 |............mess| 0005ef50 61 67 65 5f 00 00 00 00 f0 aa 06 00 46 ff ff ff |age_........F...| 0005ef60 19 ca f1 24 bc 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0005ef70 4d 49 4e 00 ac ab 06 00 46 ff ff ff 34 f9 e1 22 |MIN.....F...4.."| 0005ef80 e8 01 00 00 13 00 00 00 00 00 00 00 6d 6b 74 69 |............mkti| 0005ef90 6d 65 00 00 94 ad 06 00 46 ff ff ff 50 8e be 22 |me......F...P.."| 0005efa0 48 01 00 00 13 00 00 00 00 00 00 00 6d 6f 64 66 |H...........modf| 0005efb0 00 00 00 00 dc ae 06 00 46 ff ff ff 23 16 56 26 |........F...#.V&| 0005efc0 87 01 00 00 13 00 00 00 00 00 00 00 6d 6f 64 69 |............modi| 0005efd0 66 69 65 72 73 00 00 00 64 b0 06 00 46 ff ff ff |fiers...d...F...| 0005efe0 69 c0 43 25 b1 00 00 00 13 00 00 00 00 00 00 00 |i.C%............| 0005eff0 4d 6f 64 75 6c 65 00 00 18 b1 06 00 46 fd ff ff |Module......F...| 0005f000 6c b3 84 2f 4c 00 00 00 13 01 00 00 00 00 00 00 |l../L...........| 0005f010 4d 6f 64 75 6c 65 5f 00 a8 b3 06 00 46 fd ff ff |Module_.....F...| 0005f020 ad b3 84 2f 2c 00 00 00 13 01 00 00 00 00 00 00 |.../,...........| 0005f030 6d 6f 75 73 65 5f 00 00 e4 b4 06 00 46 ff ff ff |mouse_......F...| 0005f040 40 d3 43 25 35 02 00 00 13 00 00 00 00 00 00 00 |@.C%5...........| 0005f050 4d 73 67 73 00 00 00 00 1c b7 06 00 46 fd ff ff |Msgs........F...| 0005f060 ee b3 84 2f b4 01 00 00 13 01 00 00 00 00 00 00 |.../............| 0005f070 4d 73 67 73 5f 00 00 00 08 ca 06 00 46 ff ff ff |Msgs_.......F...| 0005f080 0e d4 3e 25 b8 01 00 00 13 00 00 00 00 00 00 00 |..>%............| 0005f090 6d 6f 64 65 5f 76 61 72 69 61 62 6c 65 00 00 00 |mode_variable...| 0005f0a0 44 49 52 24 b0 00 00 00 b0 00 00 00 50 f1 05 00 |DIR$........P...| 0005f0b0 46 fd ff ff 06 7e bd 22 77 00 00 00 13 00 00 00 |F....~."w.......| 0005f0c0 00 00 00 00 65 78 70 2f 6c 6f 67 5f 00 00 00 00 |....exp/log_....| 0005f0d0 c8 f1 05 00 46 fd ff ff 5d 6c bd 22 5b 00 00 00 |....F...]l."[...| 0005f0e0 13 00 00 00 00 00 00 00 68 79 70 65 72 5f 00 00 |........hyper_..| 0005f0f0 24 f2 05 00 46 fd ff ff 7a 86 bd 22 64 00 00 00 |$...F...z.."d...| 0005f100 13 00 00 00 00 00 00 00 6d 69 73 63 5f 00 00 00 |........misc_...| 0005f110 88 f2 05 00 46 fd ff ff c5 33 be 22 3b 00 00 00 |....F....3.";...| 0005f120 13 00 00 00 00 00 00 00 70 6f 77 65 72 5f 00 00 |........power_..| 0005f130 c4 f2 05 00 46 fd ff ff 5d 62 bd 22 6e 00 00 00 |....F...]b."n...| 0005f140 13 00 00 00 00 00 00 00 74 72 69 67 5f 00 00 00 |........trig_...| 0005f150 44 41 54 41 77 00 00 00 45 78 70 6f 6e 65 6e 74 |DATAw...Exponent| 0005f160 69 61 6c 2f 4c 6f 67 61 72 69 74 68 6d 69 63 20 |ial/Logarithmic | 0005f170 46 75 6e 63 74 69 6f 6e 73 0a 23 50 61 72 65 6e |Functions.#Paren| 0005f180 74 20 6d 61 74 68 0a 23 69 6e 64 65 6e 74 20 36 |t math.#indent 6| 0005f190 0a 23 54 61 62 6c 65 20 31 0a 3c 65 78 70 3e 0a |.#Table 1.<exp>.| 0005f1a0 3c 66 72 65 78 70 3e 0a 3c 6c 64 65 78 70 3e 0a |<frexp>.<ldexp>.| 0005f1b0 3c 6c 6f 67 3e 0a 3c 6c 6f 67 31 30 3e 0a 23 45 |<log>.<log10>.#E| 0005f1c0 6e 64 54 61 62 6c 65 00 44 41 54 41 5b 00 00 00 |ndTable.DATA[...| 0005f1d0 48 79 70 65 72 62 6f 6c 69 63 20 46 75 6e 63 74 |Hyperbolic Funct| 0005f1e0 69 6f 6e 73 0a 23 50 61 72 65 6e 74 20 6d 61 74 |ions.#Parent mat| 0005f1f0 68 0a 23 69 6e 64 65 6e 74 20 35 0a 23 54 61 62 |h.#indent 5.#Tab| 0005f200 6c 65 20 31 0a 3c 63 6f 73 68 3e 0a 3c 73 69 6e |le 1.<cosh>.<sin| 0005f210 68 3e 0a 3c 74 61 6e 68 3e 0a 23 45 6e 64 54 61 |h>.<tanh>.#EndTa| 0005f220 62 6c 65 00 44 41 54 41 64 00 00 00 4d 69 73 63 |ble.DATAd...Misc| 0005f230 65 6c 6c 61 6e 65 6f 75 73 20 46 75 6e 63 74 69 |ellaneous Functi| 0005f240 6f 6e 73 0a 23 50 61 72 65 6e 74 20 6d 61 74 68 |ons.#Parent math| 0005f250 0a 23 54 61 62 6c 65 20 31 0a 3c 63 65 69 6c 3e |.#Table 1.<ceil>| 0005f260 0a 3c 66 61 62 73 3e 0a 3c 66 6c 6f 6f 72 3e 0a |.<fabs>.<floor>.| 0005f270 3c 66 6d 6f 64 20 3e 0a 3c 6d 6f 64 66 3e 0a 23 |<fmod >.<modf>.#| 0005f280 45 6e 64 54 61 62 6c 65 44 41 54 41 3b 00 00 00 |EndTableDATA;...| 0005f290 50 6f 77 65 72 20 46 75 6e 63 74 69 6f 6e 73 0a |Power Functions.| 0005f2a0 23 50 61 72 65 6e 74 20 6d 61 74 68 0a 23 49 6e |#Parent math.#In| 0005f2b0 64 65 6e 74 20 37 0a 3c 70 6f 77 3e 0a 3c 73 71 |dent 7.<pow>.<sq| 0005f2c0 72 74 3e 00 44 41 54 41 6e 00 00 00 54 72 69 67 |rt>.DATAn...Trig| 0005f2d0 6f 6e 6f 6d 65 74 72 69 63 20 46 75 6e 63 74 69 |onometric Functi| 0005f2e0 6f 6e 73 0a 23 50 61 72 65 6e 74 20 6d 61 74 68 |ons.#Parent math| 0005f2f0 0a 23 54 61 62 6c 65 20 31 0a 3c 61 63 6f 73 3e |.#Table 1.<acos>| 0005f300 0a 3c 61 73 69 6e 3e 0a 3c 61 74 61 6e 3e 0a 3c |.<asin>.<atan>.<| 0005f310 61 74 61 6e 32 3e 0a 3c 63 6f 73 3e 0a 3c 73 69 |atan2>.<cos>.<si| 0005f320 6e 3e 0a 3c 74 61 6e 3e 0a 23 45 6e 64 54 61 62 |n>.<tan>.#EndTab| 0005f330 6c 65 00 00 44 41 54 41 b5 00 00 00 4d 61 65 6c |le..DATA....Mael| 0005f340 73 74 72 6f 6d 20 53 6f 66 74 77 61 72 65 0a 23 |strom Software.#| 0005f350 53 70 72 69 74 65 20 30 2c 30 20 6d 61 65 6c 73 |Sprite 0,0 maels| 0005f360 74 72 6f 6d 0a 0a 0a 0a 0a 4d 61 65 6c 73 74 72 |trom.....Maelstr| 0005f370 6f 6d 20 53 6f 66 74 77 61 72 65 20 61 72 65 3a |om Software are:| 0005f380 0a 0a 20 20 8f 20 3c 47 61 72 65 74 68 20 42 6f |.. . <Gareth Bo| 0005f390 64 65 6e 3d 3e 47 42 6f 64 65 6e 3e 0a 20 20 8f |den=>GBoden>. .| 0005f3a0 20 53 74 65 70 68 65 6e 20 43 72 6f 75 63 68 0a | Stephen Crouch.| 0005f3b0 20 20 8f 20 41 69 6e 73 6c 65 79 20 50 65 72 65 | . Ainsley Pere| 0005f3c0 69 72 61 0a 20 20 8f 20 41 6e 64 72 65 77 20 50 |ira. . Andrew P| 0005f3d0 65 70 70 65 72 65 6c 6c 0a 20 20 8f 20 42 72 65 |epperell. . Bre| 0005f3e0 74 74 20 47 69 62 73 6f 6e 00 00 00 44 41 54 41 |tt Gibson...DATA| 0005f3f0 4b 00 00 00 6d 61 67 6e 69 66 79 2e 68 0a 54 68 |K...magnify.h.Th| 0005f400 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |is header declar| 0005f410 65 73 20 6a 75 73 74 20 6f 6e 65 20 66 75 6e 63 |es just one func| 0005f420 74 69 6f 6e 3a 0a 0a 3c 6d 61 67 6e 69 66 79 5f |tion:..<magnify_| 0005f430 73 65 6c 65 63 74 3e 00 44 49 52 24 2c 00 00 00 |select>.DIR$,...| 0005f440 2c 00 00 00 64 f4 05 00 46 ff ff ff 77 dd b0 24 |,...d...F...w..$| 0005f450 91 02 00 00 13 00 00 00 00 00 00 00 73 65 6c 65 |............sele| 0005f460 63 74 00 00 44 41 54 41 91 02 00 00 6d 61 67 6e |ct..DATA....magn| 0005f470 69 66 79 5f 73 65 6c 65 63 74 0a 53 79 6e 74 61 |ify_select.Synta| 0005f480 78 3a 09 76 6f 69 64 20 6d 61 67 6e 69 66 79 5f |x:.void magnify_| 0005f490 73 65 6c 65 63 74 20 28 69 6e 74 20 2a 6d 75 6c |select (int *mul| 0005f4a0 2c 20 69 6e 74 20 2a 64 69 76 2c 20 69 6e 74 20 |, int *div, int | 0005f4b0 6d 61 78 6d 75 6c 2c 20 69 6e 74 20 6d 61 78 64 |maxmul, int maxd| 0005f4c0 69 76 2c 20 76 6f 69 64 20 28 2a 70 72 6f 63 29 |iv, void (*proc)| 0005f4d0 28 76 6f 69 64 20 2a 29 2c 20 76 6f 69 64 20 2a |(void *), void *| 0005f4e0 68 61 6e 64 6c 65 29 3b 0a 48 65 61 64 65 72 3a |handle);.Header:| 0005f4f0 09 3c 6d 61 67 6e 69 66 79 2e 68 3d 3e 6d 61 67 |.<magnify.h=>mag| 0005f500 6e 69 66 79 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |nify>..This func| 0005f510 74 69 6f 6e 20 64 69 73 70 6c 61 79 73 20 61 20 |tion displays a | 0005f520 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 28 63 61 |dialogue box (ca| 0005f530 6c 6c 65 64 20 22 6d 61 67 6e 69 66 69 65 72 22 |lled "magnifier"| 0005f540 29 20 74 6f 20 73 65 74 20 6d 61 67 6e 69 66 69 |) to set magnifi| 0005f550 63 61 74 69 6f 6e 20 66 61 63 74 6f 72 73 2e 20 |cation factors. | 0005f560 2f 6d 75 6c 2f 20 61 6e 64 20 2f 64 69 76 2f 20 |/mul/ and /div/ | 0005f570 61 72 65 20 74 68 65 20 69 6e 69 74 69 61 6c 20 |are the initial | 0005f580 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 72 61 |values of the ra| 0005f590 74 69 6f 6e 2c 20 61 6e 64 20 2f 6d 61 78 6d 75 |tion, and /maxmu| 0005f5a0 6c 2f 20 61 6e 64 20 2f 6d 61 78 64 69 76 2f 20 |l/ and /maxdiv/ | 0005f5b0 61 72 65 20 74 68 65 69 72 20 72 65 73 70 65 63 |are their respec| 0005f5c0 74 69 76 65 20 6c 69 6d 69 74 73 2e 20 54 68 65 |tive limits. The| 0005f5d0 20 74 65 6d 70 6c 61 74 65 20 22 6d 61 67 6e 69 | template "magni| 0005f5e0 66 69 65 72 22 20 6d 75 73 74 20 62 65 20 6c 6f |fier" must be lo| 0005f5f0 61 64 65 64 20 61 6e 64 20 68 61 76 65 20 61 20 |aded and have a | 0005f600 73 69 6d 69 6c 61 72 20 64 65 66 69 6e 69 74 69 |similar definiti| 0005f610 6f 6e 20 74 6f 20 74 68 6f 73 65 20 75 73 65 64 |on to those used| 0005f620 20 69 6e 20 21 44 72 61 77 20 6f 72 20 21 50 61 | in !Draw or !Pa| 0005f630 69 6e 74 2e 20 2f 6d 75 6c 2f 20 61 6e 64 20 2f |int. /mul/ and /| 0005f640 64 69 76 2f 20 61 72 65 20 75 70 64 61 74 65 64 |div/ are updated| 0005f650 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a | automatically..| 0005f660 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 2f 70 |.The function /p| 0005f670 72 6f 63 2f 20 69 73 20 63 61 6c 6c 65 64 20 65 |roc/ is called e| 0005f680 61 63 68 20 74 69 6d 65 20 74 68 65 20 6d 61 67 |ach time the mag| 0005f690 6e 69 66 69 63 61 74 69 6f 6e 20 63 68 61 6e 67 |nification chang| 0005f6a0 65 73 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e |es. The function| 0005f6b0 20 73 68 6f 75 6c 64 20 62 65 20 6f 66 20 74 68 | should be of th| 0005f6c0 65 20 66 6f 72 6d 3a 0a 7b 66 43 6f 64 65 3b 61 |e form:.{fCode;a| 0005f6d0 6c 69 67 6e 20 63 65 6e 74 72 65 7d 76 6f 69 64 |lign centre}void| 0005f6e0 20 70 72 6f 63 20 28 76 6f 69 64 20 2a 68 61 6e | proc (void *han| 0005f6f0 64 6c 65 29 3b 00 00 00 44 49 52 24 2c 00 00 00 |dle);...DIR$,...| 0005f700 2c 00 00 00 24 f7 05 00 46 fd ff ff 8d 08 e8 22 |,...$...F......"| 0005f710 dc 03 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |............!Roo| 0005f720 74 00 00 00 44 41 54 41 dc 03 00 00 4d 61 6b 65 |t...DATA....Make| 0005f730 20 46 69 6c 65 73 0a 4d 61 6b 65 20 46 69 6c 65 | Files.Make File| 0005f740 73 20 70 72 6f 76 69 64 65 20 61 6e 20 65 61 73 |s provide an eas| 0005f750 79 20 77 61 79 20 74 6f 20 64 65 61 6c 20 77 69 |y way to deal wi| 0005f760 74 68 20 63 6f 6d 70 69 6c 69 6e 67 20 61 6e 64 |th compiling and| 0005f770 20 6c 69 6e 6b 69 6e 67 20 6d 75 6c 74 69 70 6c | linking multipl| 0005f780 65 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2e 0a |e source files..| 0005f790 0a 49 6e 20 45 61 73 79 20 43 2c 20 4d 61 6b 65 |.In Easy C, Make| 0005f7a0 20 46 69 6c 65 73 20 63 61 6e 20 62 65 20 63 72 | Files can be cr| 0005f7b0 65 61 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 |eated automatica| 0005f7c0 6c 6c 79 20 66 6f 72 20 79 6f 75 2e 20 53 69 6d |lly for you. Sim| 0005f7d0 70 6c 79 20 64 72 61 67 20 74 68 65 20 66 69 6c |ply drag the fil| 0005f7e0 65 73 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 |es you want to c| 0005f7f0 6f 6d 70 69 6c 65 20 61 6e 64 20 6c 69 6e 6b 20 |ompile and link | 0005f800 74 6f 20 74 68 65 20 53 6f 75 72 63 65 20 61 6e |to the Source an| 0005f810 64 20 4f 62 6a 65 63 74 20 77 69 6e 64 6f 77 73 |d Object windows| 0005f820 20 61 6e 64 20 74 68 65 6e 20 63 6c 69 63 6b 20 | and then click | 0005f830 43 72 65 61 74 65 2e 20 57 68 65 6e 20 79 6f 75 |Create. When you| 0005f840 20 70 65 72 66 6f 72 6d 20 61 20 4d 61 6b 65 2c | perform a Make,| 0005f850 20 74 68 65 20 4d 61 6b 65 20 66 61 63 69 6c 69 | the Make facili| 0005f860 74 79 20 6f 6e 6c 79 20 63 6f 6d 70 69 6c 65 73 |ty only compiles| 0005f870 2f 6c 69 6e 6b 73 20 74 68 6f 73 65 20 70 61 72 |/links those par| 0005f880 74 73 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 |ts which are not| 0005f890 20 75 70 20 74 6f 20 64 61 74 65 2e 0a 0a 45 61 | up to date...Ea| 0005f8a0 73 79 20 43 20 4d 61 6b 65 20 66 69 6c 65 73 20 |sy C Make files | 0005f8b0 68 61 76 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |have the followi| 0005f8c0 6e 67 20 66 6f 72 6d 61 74 3a 0a 0a 20 20 20 20 |ng format:.. | 0005f8d0 4d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e |Macro definition| 0005f8e0 73 0a 20 20 20 20 54 61 72 67 65 74 73 0a 20 20 |s. Targets. | 0005f8f0 20 20 44 65 70 65 6e 64 65 6e 63 69 65 73 0a 0a | Dependencies..| 0005f900 4d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e |Macro definition| 0005f910 73 20 61 72 65 20 69 6e 20 74 68 65 20 66 6f 72 |s are in the for| 0005f920 6d 3a 0a 7b 66 43 6f 64 65 7d 4d 41 43 52 4f 4e |m:.{fCode}MACRON| 0005f930 41 4d 45 20 3d 20 5c 3c 64 65 66 69 6e 69 74 69 |AME = \<definiti| 0005f940 6f 6e 3e 7b 66 7d 0a 0a 54 61 72 67 65 74 73 20 |on>{f}..Targets | 0005f950 73 70 65 63 69 66 79 20 77 68 61 74 20 65 78 65 |specify what exe| 0005f960 63 75 74 61 62 6c 65 20 66 69 6c 65 73 20 61 72 |cutable files ar| 0005f970 65 20 63 72 65 61 74 65 64 20 66 72 6f 6d 20 77 |e created from w| 0005f980 68 61 74 20 6f 62 6a 65 63 74 73 2e 20 54 68 65 |hat objects. The| 0005f990 79 20 61 72 65 20 69 6e 20 74 68 65 20 66 6f 72 |y are in the for| 0005f9a0 6d 3a 0a 7b 66 43 6f 64 65 7d 5c 3c 74 61 72 67 |m:.{fCode}\<targ| 0005f9b0 65 74 3e 20 3a 20 5c 3c 6c 69 73 74 20 6f 66 20 |et> : \<list of | 0005f9c0 6f 62 6a 65 63 74 73 3e 7b 66 7d 0a 54 68 65 20 |objects>{f}.The | 0005f9d0 6c 69 73 74 20 6f 66 20 6f 62 6a 65 63 74 73 20 |list of objects | 0005f9e0 61 72 65 20 6f 62 6a 65 63 74 20 6e 61 6d 65 73 |are object names| 0005f9f0 20 28 73 70 65 63 69 66 69 65 64 20 69 6e 20 74 | (specified in t| 0005fa00 68 65 20 70 72 6f 70 65 72 20 52 49 53 43 20 4f |he proper RISC O| 0005fa10 53 20 77 61 79 20 65 67 20 22 6f 2e 6f 62 6a 65 |S way eg "o.obje| 0005fa20 63 74 22 29 20 73 65 70 61 72 61 74 65 64 20 62 |ct") separated b| 0005fa30 79 20 73 70 61 63 65 73 2e 0a 0a 44 65 70 65 6e |y spaces...Depen| 0005fa40 64 65 6e 63 69 65 73 20 61 72 65 20 69 6e 20 74 |dencies are in t| 0005fa50 68 65 20 66 6f 72 6d 3a 0a 7b 66 43 6f 64 65 7d |he form:.{fCode}| 0005fa60 5c 3c 6f 62 6a 65 63 74 20 66 69 6c 65 3e 20 3a |\<object file> :| 0005fa70 20 5c 3c 68 65 61 64 65 72 20 66 69 6c 65 3e 7b | \<header file>{| 0005fa80 66 7d 0a 49 66 20 74 68 65 20 73 70 65 63 69 66 |f}.If the specif| 0005fa90 69 65 64 20 68 65 61 64 65 72 20 66 69 6c 65 20 |ied header file | 0005faa0 69 73 20 61 6c 74 65 72 65 64 20 74 68 65 6e 20 |is altered then | 0005fab0 74 68 65 20 4d 61 6b 65 20 66 61 63 69 6c 69 74 |the Make facilit| 0005fac0 79 20 72 65 63 6f 67 6e 69 73 65 73 20 74 68 61 |y recognises tha| 0005fad0 74 20 74 68 65 20 6f 62 6a 65 63 74 20 66 69 6c |t the object fil| 0005fae0 65 20 6e 65 65 64 73 20 74 6f 20 62 65 20 72 65 |e needs to be re| 0005faf0 63 6f 6d 70 69 6c 65 64 2f 6c 69 6e 6b 65 64 2e |compiled/linked.| 0005fb00 44 41 54 41 f1 00 00 00 4d 61 6b 65 41 53 43 49 |DATA....MakeASCI| 0005fb10 49 5a 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |IZ.Syntax:.void | 0005fb20 4d 61 6b 65 41 53 43 49 49 5a 20 28 63 68 61 72 |MakeASCIIZ (char| 0005fb30 20 2a 73 2c 20 69 6e 74 20 6d 61 78 5f 6c 65 6e | *s, int max_len| 0005fb40 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 0005fb50 4c 69 62 3a 4c 69 62 2e 68 3d 3e 4c 69 62 3e 0a |Lib:Lib.h=>Lib>.| 0005fb60 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0005fb70 6f 6e 76 65 72 74 73 20 74 68 65 20 63 61 72 72 |onverts the carr| 0005fb80 69 61 67 65 20 72 65 74 75 72 6e 2d 74 65 72 6d |iage return-term| 0005fb90 69 6e 61 74 65 64 20 73 74 72 69 6e 67 20 70 6f |inated string po| 0005fba0 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f 20 |inted to by /s/ | 0005fbb0 69 6e 74 6f 20 61 20 7a 65 72 6f 2d 74 65 72 6d |into a zero-term| 0005fbc0 69 6e 61 74 65 64 20 73 74 72 69 6e 67 2e 20 3c |inated string. <| 0005fbd0 4d 61 6b 65 43 52 3e 28 29 20 63 6f 6e 76 65 72 |MakeCR>() conver| 0005fbe0 74 73 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 |ts the other way| 0005fbf0 2e 00 00 00 44 41 54 41 ed 00 00 00 4d 61 6b 65 |....DATA....Make| 0005fc00 43 52 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |CR.Syntax:.void | 0005fc10 4d 61 6b 65 43 52 20 28 63 68 61 72 20 2a 73 2c |MakeCR (char *s,| 0005fc20 20 69 6e 74 20 6d 61 78 5f 6c 65 6e 29 3b 0a 48 | int max_len);.H| 0005fc30 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a |eader:.<TimsLib:| 0005fc40 4c 69 62 2e 68 3d 3e 4c 69 62 3e 0a 0a 54 68 69 |Lib.h=>Lib>..Thi| 0005fc50 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 |s function conve| 0005fc60 72 74 73 20 74 68 65 20 7a 65 72 6f 2d 74 65 72 |rts the zero-ter| 0005fc70 6d 69 6e 61 74 65 64 20 73 74 72 69 6e 67 20 70 |minated string p| 0005fc80 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f |ointed to by /s/| 0005fc90 20 69 6e 74 6f 20 61 20 63 61 72 72 69 61 67 65 | into a carriage| 0005fca0 20 72 65 74 75 72 6e 2d 74 65 72 6d 69 6e 61 74 | return-terminat| 0005fcb0 65 64 20 73 74 72 69 6e 67 2e 20 3c 4d 61 6b 65 |ed string. <Make| 0005fcc0 41 53 43 49 49 5a 3e 28 29 20 63 6f 6e 76 65 72 |ASCIIZ>() conver| 0005fcd0 74 73 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 |ts the other way| 0005fce0 2e 00 00 00 44 41 54 41 e7 00 00 00 6d 61 6c 6c |....DATA....mall| 0005fcf0 6f 63 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |oc.Syntax:.void | 0005fd00 2a 6d 61 6c 6c 6f 63 20 28 3c 73 69 7a 65 5f 74 |*malloc (<size_t| 0005fd10 3e 20 73 69 7a 65 29 3b 0a 48 65 61 64 65 72 3a |> size);.Header:| 0005fd20 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c |.<stdlib.h=>stdl| 0005fd30 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |ib>..Returns:.Po| 0005fd40 69 6e 74 65 72 20 74 6f 20 73 70 61 63 65 2c 20 |inter to space, | 0005fd50 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 66 61 69 |or <NULL> if fai| 0005fd60 6c 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |led...This funct| 0005fd70 69 6f 6e 20 61 6c 6c 6f 63 61 74 65 73 20 61 6e |ion allocates an| 0005fd80 20 61 72 65 61 20 6f 66 20 6d 65 6d 6f 72 79 20 | area of memory | 0005fd90 6f 66 20 73 69 7a 65 20 73 70 65 63 69 66 69 65 |of size specifie| 0005fda0 64 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 |d. The contents | 0005fdb0 6f 66 20 74 68 65 20 73 70 61 63 65 20 61 72 65 |of the space are| 0005fdc0 20 75 6e 64 65 66 69 6e 65 64 2e 00 44 41 54 41 | undefined..DATA| 0005fdd0 11 02 00 00 54 69 6d 73 4c 69 62 3a 4d 61 6c 6c |....TimsLib:Mall| 0005fde0 6f 63 44 62 75 67 2e 68 0a 54 68 69 73 20 68 65 |ocDbug.h.This he| 0005fdf0 61 64 65 72 20 70 72 6f 76 69 64 65 73 20 66 61 |ader provides fa| 0005fe00 63 69 6c 69 74 69 65 73 20 66 6f 72 20 74 72 61 |cilities for tra| 0005fe10 63 6b 69 6e 67 20 6d 65 6d 6f 72 79 20 61 6c 6c |cking memory all| 0005fe20 6f 63 61 74 69 6f 6e 2e 0a 0a 46 75 6e 63 74 69 |ocation...Functi| 0005fe30 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 37 0a |ons:..#Indent 7.| 0005fe40 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 |#Table columns 3| 0005fe50 0a 3c 4d 61 6c 6c 6f 63 44 62 75 67 3d 3e 6d 61 |.<MallocDbug=>ma| 0005fe60 6c 6c 6f 63 64 62 75 67 5f 3e 0a 3c 46 72 65 65 |llocdbug_>.<Free| 0005fe70 44 62 75 67 3e 0a 3c 4d 65 6d 6f 72 79 44 75 6d |Dbug>.<MemoryDum| 0005fe80 70 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 69 |p>.#EndTable..#i| 0005fe90 6e 64 65 6e 74 20 30 0a 4d 61 63 72 6f 73 3a 0a |ndent 0.Macros:.| 0005fea0 0a 23 69 6e 64 65 6e 74 20 31 36 0a 23 74 61 62 |.#indent 16.#tab| 0005feb0 6c 65 20 31 20 31 35 0a 3c 6d 61 6c 6c 6f 63 64 |le 1 15.<mallocd| 0005fec0 62 75 67 3d 3e 6d 61 6c 6c 6f 63 64 62 75 67 5f |bug=>mallocdbug_| 0005fed0 3e 0a 3c 66 72 65 65 64 62 75 67 3e 0a 23 65 6e |>.<freedbug>.#en| 0005fee0 64 74 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 30 |dtable.#indent 0| 0005fef0 0a 0a 4f 6e 20 65 78 69 74 20 66 72 6f 6d 20 79 |..On exit from y| 0005ff00 6f 75 72 20 70 72 6f 67 72 61 6d 2c 20 79 6f 75 |our program, you| 0005ff10 20 63 61 6e 20 63 61 6c 6c 20 3c 4d 65 6d 6f 72 | can call <Memor| 0005ff20 79 44 75 6d 70 3e 2c 20 77 68 69 63 68 20 77 69 |yDump>, which wi| 0005ff30 6c 6c 20 74 65 6c 6c 20 79 6f 75 20 61 6e 79 20 |ll tell you any | 0005ff40 6d 65 6d 6f 72 79 20 77 68 69 63 68 20 68 61 73 |memory which has| 0005ff50 20 62 65 65 6e 20 6d 61 6c 6c 6f 63 64 20 62 75 | been mallocd bu| 0005ff60 74 20 6e 6f 74 20 66 72 65 65 64 2e 20 54 68 69 |t not freed. Thi| 0005ff70 73 20 6d 6f 64 75 6c 65 20 75 73 65 20 3c 54 72 |s module use <Tr| 0005ff80 61 63 65 3d 3e 54 72 61 63 65 5f 54 4c 3e 20 74 |ace=>Trace_TL> t| 0005ff90 6f 20 64 6f 20 61 6c 6c 20 69 74 73 20 6f 75 74 |o do all its out| 0005ffa0 70 75 74 20 61 6e 64 20 73 6f 20 77 69 6c 6c 20 |put and so will | 0005ffb0 6e 6f 74 20 77 6f 72 6b 20 75 6e 6c 65 73 73 20 |not work unless | 0005ffc0 79 6f 75 20 68 61 76 65 20 61 20 63 6f 70 79 20 |you have a copy | 0005ffd0 6f 66 20 56 44 55 53 74 72 65 61 6d 2e 00 00 00 |of VDUStream....| 0005ffe0 44 49 52 24 2c 00 00 00 2c 00 00 00 0c 00 06 00 |DIR$,...,.......| 0005fff0 46 fd ff ff 2d db 56 26 ba 01 00 00 13 00 00 00 |F...-.V&........| 00060000 00 00 00 00 21 52 6f 6f 74 00 00 00 44 41 54 41 |....!Root...DATA| 00060010 ba 01 00 00 4d 61 6c 6c 6f 63 44 62 75 67 0a 53 |....MallocDbug.S| 00060020 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a 4d 61 6c |yntax:.void *Mal| 00060030 6c 6f 63 44 62 75 67 20 28 3c 73 69 7a 65 5f 74 |locDbug (<size_t| 00060040 3e 20 73 69 7a 65 2c 20 63 68 61 72 20 2a 66 69 |> size, char *fi| 00060050 6c 65 6e 61 6d 65 2c 20 69 6e 74 20 6c 69 6e 65 |lename, int line| 00060060 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 00060070 4c 69 62 3a 4d 61 6c 6c 6f 63 44 62 75 67 2e 68 |Lib:MallocDbug.h| 00060080 3d 3e 4d 61 6c 6c 6f 63 44 62 75 67 3e 0a 0a 52 |=>MallocDbug>..R| 00060090 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000600a0 74 6f 20 74 68 65 20 61 6c 6c 6f 63 61 74 65 64 |to the allocated| 000600b0 20 62 6c 6f 63 6b 2e 0a 0a 54 68 69 73 20 66 75 | block...This fu| 000600c0 6e 63 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 |nction is identi| 000600d0 63 61 6c 20 74 6f 20 3c 6d 61 6c 6c 6f 63 3e 28 |cal to <malloc>(| 000600e0 29 2c 20 62 75 74 20 72 65 6d 65 6d 62 65 72 73 |), but remembers| 000600f0 20 74 68 65 20 66 69 6c 65 20 61 6e 64 20 6c 69 | the file and li| 00060100 6e 65 20 61 74 20 77 68 69 63 68 20 74 68 65 20 |ne at which the | 00060110 63 61 6c 6c 20 6f 63 63 75 72 72 65 64 2e 0a 0a |call occurred...| 00060120 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 |This function wi| 00060130 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 62 65 20 63 |ll normally be c| 00060140 61 6c 6c 65 64 20 74 72 61 6e 73 70 61 72 65 6e |alled transparen| 00060150 74 6c 79 2e 20 54 68 65 20 6d 61 63 72 6f 20 7b |tly. The macro {| 00060160 2a 7d 6d 61 6c 6c 6f 63 64 62 75 67 7b 2a 7d 20 |*}mallocdbug{*} | 00060170 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 63 61 |is defined to ca| 00060180 6c 6c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |ll this function| 00060190 20 69 6e 20 64 65 62 75 67 20 62 75 69 6c 64 73 | in debug builds| 000601a0 2c 20 61 6e 64 20 6e 6f 72 6d 61 6c 20 6d 61 6c |, and normal mal| 000601b0 6c 6f 63 20 69 6e 20 72 65 6c 65 61 73 65 20 62 |loc in release b| 000601c0 75 69 6c 64 73 2e 00 00 44 41 54 41 66 03 00 00 |uilds...DATAf...| 000601d0 6d 61 74 68 0a 54 68 65 20 5c 3c 6d 61 74 68 2e |math.The \<math.| 000601e0 68 5c 3e 20 68 65 61 64 65 72 20 64 65 63 6c 61 |h\> header decla| 000601f0 72 65 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 |res a number of | 00060200 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 66 6c |functions for fl| 00060210 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 61 72 69 |oating point ari| 00060220 74 68 6d 65 74 69 63 2e 20 41 6c 6c 20 74 68 65 |thmetic. All the| 00060230 20 66 75 6e 63 74 69 6f 6e 73 20 61 63 63 65 70 | functions accep| 00060240 74 20 61 6e 64 20 72 65 74 75 72 6e 20 2f 64 6f |t and return /do| 00060250 75 62 6c 65 2f 20 76 61 6c 75 65 73 2e 20 49 6e |uble/ values. In| 00060260 20 61 64 64 69 74 69 6f 6e 2c 20 6f 6e 65 20 6d | addition, one m| 00060270 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 2e |acro is defined.| 00060280 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 |..Functions:..#I| 00060290 6e 64 65 6e 74 20 33 0a 23 54 61 62 6c 65 20 33 |ndent 3.#Table 3| 000602a0 20 32 35 0a 3c 54 72 69 67 6f 6e 6f 6d 65 74 72 | 25.<Trigonometr| 000602b0 69 63 3d 3e 6d 5f 74 72 69 67 5f 3e 0a 3c 48 79 |ic=>m_trig_>.<Hy| 000602c0 70 65 72 62 6f 6c 69 63 3d 3e 6d 5f 68 79 70 65 |perbolic=>m_hype| 000602d0 72 5f 3e 0a 3c 45 78 70 6f 6e 65 6e 74 69 61 6c |r_>.<Exponential| 000602e0 2f 4c 6f 67 61 72 69 74 68 6d 69 63 3d 3e 6d 5f |/Logarithmic=>m_| 000602f0 65 78 70 2f 6c 6f 67 5f 3e 0a 3c 50 6f 77 65 72 |exp/log_>.<Power| 00060300 3d 3e 6d 5f 70 6f 77 65 72 5f 3e 0a 3c 4d 69 73 |=>m_power_>.<Mis| 00060310 63 65 6c 6c 61 6e 65 6f 75 73 3d 3e 6d 5f 6d 69 |cellaneous=>m_mi| 00060320 73 63 5f 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 |sc_>.#EndTable.#| 00060330 49 6e 64 65 6e 74 20 30 0a 0a 4d 61 63 72 6f 3a |Indent 0..Macro:| 00060340 0a 0a 20 20 20 3c 48 55 47 45 5f 56 41 4c 3e 0a |.. <HUGE_VAL>.| 00060350 0a 49 66 20 74 68 65 20 69 6e 70 75 74 20 61 72 |.If the input ar| 00060360 67 75 6d 65 6e 74 73 20 61 72 65 20 6f 75 74 73 |guments are outs| 00060370 69 64 65 20 61 20 73 75 69 74 61 62 6c 65 20 72 |ide a suitable r| 00060380 61 6e 67 65 20 66 6f 72 20 74 68 65 20 66 75 6e |ange for the fun| 00060390 63 74 69 6f 6e 20 28 74 68 65 20 64 6f 6d 61 69 |ction (the domai| 000603a0 6e 29 2c 20 74 68 65 20 76 61 6c 75 65 20 6f 66 |n), the value of| 000603b0 20 74 68 65 20 6d 61 63 72 6f 20 3c 45 44 4f 4d | the macro <EDOM| 000603c0 3e 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 3c |> is stored in <| 000603d0 65 72 72 6e 6f 3e 2e 0a 0a 53 69 6d 69 6c 61 72 |errno>...Similar| 000603e0 6c 79 2c 20 69 66 20 74 68 65 20 72 65 73 75 6c |ly, if the resul| 000603f0 74 20 69 73 20 74 6f 6f 20 62 69 67 20 74 6f 20 |t is too big to | 00060400 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 20 2f |be stored in a /| 00060410 64 6f 75 62 6c 65 2f 2c 20 74 68 65 20 66 75 6e |double/, the fun| 00060420 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 |ction returns th| 00060430 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6d |e value of the m| 00060440 61 63 72 6f 20 3c 48 55 47 45 5f 56 41 4c 3e 20 |acro <HUGE_VAL> | 00060450 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 73 69 |with the same si| 00060460 67 6e 20 61 73 20 74 68 65 20 74 72 75 65 20 72 |gn as the true r| 00060470 65 73 75 6c 74 20 2d 20 69 65 20 2d 7b 2a 7d 48 |esult - ie -{*}H| 00060480 55 47 45 5f 56 41 4c 7b 2a 7d 20 69 66 20 74 68 |UGE_VAL{*} if th| 00060490 65 20 72 65 73 75 6c 74 20 69 73 20 6e 65 67 61 |e result is nega| 000604a0 74 69 76 65 2e 20 54 68 65 20 76 61 6c 75 65 20 |tive. The value | 000604b0 6f 66 20 74 68 65 20 6d 61 63 72 6f 20 3c 45 52 |of the macro <ER| 000604c0 41 4e 47 45 3e 20 69 73 20 73 74 6f 72 65 64 20 |ANGE> is stored | 000604d0 69 6e 20 3c 65 72 72 6e 6f 3e 2e 0a 0a 49 66 20 |in <errno>...If | 000604e0 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 74 6f |the result is to| 000604f0 6f 20 73 6d 61 6c 6c 20 74 6f 20 62 65 20 73 74 |o small to be st| 00060500 6f 72 65 64 20 69 6e 20 61 20 2f 64 6f 75 62 6c |ored in a /doubl| 00060510 65 2f 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |e/, the function| 00060520 20 72 65 74 75 72 6e 73 20 7a 65 72 6f 2e 00 00 | returns zero...| 00060530 44 41 54 41 bc 00 00 00 4d 41 58 0a 54 68 69 73 |DATA....MAX.This| 00060540 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 00060550 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 43 6f |d in <TimsLib:Co| 00060560 72 65 2e 68 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 |re.h=>Core_TL> a| 00060570 6e 64 20 3c 44 65 73 6b 4c 69 62 3a 43 6f 72 65 |nd <DeskLib:Core| 00060580 2e 68 3d 3e 43 6f 72 65 3e 2e 20 49 74 20 69 73 |.h=>Core>. It is| 00060590 20 75 73 65 64 20 74 6f 20 66 69 6e 64 20 74 68 | used to find th| 000605a0 65 20 6d 61 78 69 6d 75 6d 20 6f 66 20 74 77 6f |e maximum of two| 000605b0 20 76 61 6c 75 65 73 2e 20 4d 41 58 28 78 2c 79 | values. MAX(x,y| 000605c0 29 20 77 69 6c 6c 20 67 69 76 65 20 79 6f 75 20 |) will give you | 000605d0 2f 78 2f 20 69 66 20 78 3e 79 2c 20 6f 72 20 2f |/x/ if x>y, or /| 000605e0 79 2f 20 69 66 20 78 5c 3c 3d 79 2e 44 49 52 24 |y/ if x\<=y.DIR$| 000605f0 30 00 00 00 30 00 00 00 1c 06 06 00 46 ff ff ff |0...0.......F...| 00060600 19 55 55 26 8d 00 00 00 13 00 00 00 00 00 00 00 |.UU&............| 00060610 50 41 54 48 5f 4c 45 4e 00 00 00 00 44 41 54 41 |PATH_LEN....DATA| 00060620 8d 00 00 00 4d 41 58 5f 50 41 54 48 5f 4c 45 4e |....MAX_PATH_LEN| 00060630 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 00060640 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c |efined in <TimsL| 00060650 69 62 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f |ib:File.h=>File_| 00060660 54 4c 3e 20 61 73 20 74 68 65 20 6d 61 78 69 6d |TL> as the maxim| 00060670 75 6d 20 6c 65 6e 67 74 68 20 6f 66 20 61 20 70 |um length of a p| 00060680 61 74 68 6e 61 6d 65 2e 20 49 74 20 69 73 20 61 |athname. It is a| 00060690 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 |ctually defined | 000606a0 61 73 20 28 32 35 36 29 2e 00 00 00 44 49 52 24 |as (256)....DIR$| 000606b0 4c 00 00 00 4c 00 00 00 f8 06 06 00 46 ff ff ff |L...L.......F...| 000606c0 17 83 df 22 0c 01 00 00 13 00 00 00 00 00 00 00 |..."............| 000606d0 43 55 52 5f 4d 41 58 00 04 08 06 00 46 ff ff ff |CUR_MAX.....F...| 000606e0 88 f9 bc 22 99 00 00 00 13 00 00 00 00 00 00 00 |..."............| 000606f0 4c 45 4e 5f 4d 41 58 00 44 41 54 41 0c 01 00 00 |LEN_MAX.DATA....| 00060700 4d 42 5f 43 55 52 5f 4d 41 58 0a 54 68 65 20 6d |MB_CUR_MAX.The m| 00060710 61 63 72 6f 20 7b 2f 7d 4d 42 5f 43 55 52 5f 4d |acro {/}MB_CUR_M| 00060720 41 58 7b 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 |AX{/} is defined| 00060730 20 69 6e 20 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 | in <stdlib.h=>s| 00060740 74 64 6c 69 62 3e 20 61 73 20 61 20 6d 61 63 72 |tdlib> as a macr| 00060750 6f 20 77 68 69 63 68 20 72 65 70 72 65 73 65 6e |o which represen| 00060760 74 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e |ts the maximum n| 00060770 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 69 |umber of bytes i| 00060780 6e 20 61 20 6d 75 6c 74 69 62 79 74 65 20 63 68 |n a multibyte ch| 00060790 61 72 61 63 74 65 72 20 73 70 65 63 69 66 69 65 |aracter specifie| 000607a0 64 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 |d by the current| 000607b0 20 6c 6f 63 61 6c 65 2e 20 49 74 73 20 76 61 6c | locale. Its val| 000607c0 75 65 20 69 73 20 6e 65 76 65 72 20 67 72 65 61 |ue is never grea| 000607d0 74 65 72 20 74 68 61 6e 20 3c 4d 42 5f 4c 45 4e |ter than <MB_LEN| 000607e0 5f 4d 41 58 3e 2e 20 49 6e 20 45 61 73 79 20 43 |_MAX>. In Easy C| 000607f0 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | it is defined a| 00060800 73 20 31 2e 44 41 54 41 99 00 00 00 4d 42 5f 4c |s 1.DATA....MB_L| 00060810 45 4e 5f 4d 41 58 0a 54 68 69 73 20 6d 61 63 72 |EN_MAX.This macr| 00060820 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |o is defined in | 00060830 3c 6c 69 6d 69 74 73 2e 68 3e 20 61 6e 64 20 72 |<limits.h> and r| 00060840 65 70 72 65 73 65 6e 74 73 20 74 68 65 20 6d 61 |epresents the ma| 00060850 78 69 6d 75 6d 20 6c 65 6e 67 74 68 20 69 6e 20 |ximum length in | 00060860 62 79 74 65 73 20 6f 66 20 61 20 6d 75 6c 74 69 |bytes of a multi| 00060870 62 79 74 65 20 63 68 61 72 61 63 74 65 72 2e 20 |byte character. | 00060880 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 20 |In Easy C it is | 00060890 64 65 66 69 6e 65 64 20 61 73 20 31 2e 00 00 00 |defined as 1....| 000608a0 44 41 54 41 17 02 00 00 6d 62 6c 65 6e 0a 53 79 |DATA....mblen.Sy| 000608b0 6e 74 61 78 3a 09 69 6e 74 20 6d 62 6c 65 6e 20 |ntax:.int mblen | 000608c0 28 63 68 61 72 20 2a 73 2c 20 3c 73 69 7a 65 5f |(char *s, <size_| 000608d0 74 3e 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c |t> n);.Header:.<| 000608e0 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 |stdlib.h=>stdlib| 000608f0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 53 65 65 20 |>..Returns:.See | 00060900 62 65 6c 6f 77 2e 0a 0a 49 66 20 2f 73 2f 20 69 |below...If /s/ i| 00060910 73 20 6e 6f 74 20 61 20 6e 75 6c 6c 20 70 6f 69 |s not a null poi| 00060920 6e 74 65 72 2c 20 74 68 65 6e 20 74 68 69 73 20 |nter, then this | 00060930 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 |function determi| 00060940 6e 65 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f |nes the number o| 00060950 66 20 62 79 74 65 73 20 63 6f 6d 70 72 69 73 69 |f bytes comprisi| 00060960 6e 67 20 74 68 65 20 74 68 65 20 6d 75 6c 74 69 |ng the the multi| 00060970 62 79 74 65 20 63 68 61 72 61 63 74 65 72 20 70 |byte character p| 00060980 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f |ointed to by /s/| 00060990 2e 20 49 74 20 72 65 74 75 72 6e 73 20 61 20 30 |. It returns a 0| 000609a0 20 69 66 20 2f 73 2f 20 70 6f 69 6e 74 73 20 74 | if /s/ points t| 000609b0 6f 20 61 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 |o a null charact| 000609c0 65 72 2c 20 6f 72 20 74 68 65 20 6e 75 6d 62 65 |er, or the numbe| 000609d0 72 20 6f 66 20 62 79 74 65 73 2e 20 49 66 20 2f |r of bytes. If /| 000609e0 73 2f 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 |s/ is not a vali| 000609f0 64 20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 72 |d multibyte char| 00060a00 61 63 74 65 72 20 69 74 20 72 65 74 75 72 6e 73 |acter it returns| 00060a10 20 2d 20 31 2e 20 41 74 20 6d 6f 73 74 20 2f 6e | - 1. At most /n| 00060a20 2f 20 62 79 74 65 73 20 77 69 6c 6c 20 62 65 20 |/ bytes will be | 00060a30 65 78 61 6d 69 6e 65 64 2e 0a 0a 49 66 20 2f 73 |examined...If /s| 00060a40 2f 20 69 73 20 61 20 6e 75 6c 6c 20 70 6f 69 6e |/ is a null poin| 00060a50 74 65 72 2c 20 74 68 69 73 20 66 75 6e 63 74 69 |ter, this functi| 00060a60 6f 6e 20 72 65 74 75 72 6e 73 20 7a 65 72 6f 20 |on returns zero | 00060a70 69 66 20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 |if multibyte cha| 00060a80 72 61 63 74 65 72 20 65 6e 63 6f 64 69 6e 67 73 |racter encodings| 00060a90 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 73 74 61 | do not have sta| 00060aa0 74 65 2d 64 65 70 65 6e 64 65 6e 74 20 65 6e 63 |te-dependent enc| 00060ab0 6f 64 69 6e 67 73 2e 00 44 41 54 41 b3 02 00 00 |odings..DATA....| 00060ac0 6d 62 73 74 6f 77 63 73 0a 53 79 6e 74 61 78 3a |mbstowcs.Syntax:| 00060ad0 09 3c 73 69 7a 65 5f 74 3e 20 6d 62 73 74 6f 77 |.<size_t> mbstow| 00060ae0 63 73 20 28 3c 77 63 68 61 72 5f 74 3e 20 2a 70 |cs (<wchar_t> *p| 00060af0 77 63 73 2c 20 63 68 61 72 20 2a 73 2c 20 73 69 |wcs, char *s, si| 00060b00 7a 65 5f 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a |ze_t n);.Header:| 00060b10 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c |.<stdlib.h=>stdl| 00060b20 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 53 65 |ib>..Returns:.Se| 00060b30 65 20 62 65 6c 6f 77 2e 0a 0a 43 6f 6e 76 65 72 |e below...Conver| 00060b40 74 73 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 |ts a sequence of| 00060b50 20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 | multibyte chara| 00060b60 63 74 65 72 73 20 74 68 61 74 20 62 65 67 69 6e |cters that begin| 00060b70 73 20 69 6e 20 74 68 65 20 69 6e 69 74 69 61 6c |s in the initial| 00060b80 20 73 68 69 66 74 20 73 74 61 74 65 20 66 72 6f | shift state fro| 00060b90 6d 20 74 68 65 20 61 72 72 61 79 20 70 6f 69 6e |m the array poin| 00060ba0 74 65 64 20 74 6f 20 62 79 20 2f 73 2f 20 69 6e |ted to by /s/ in| 00060bb0 74 6f 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 |to a sequence of| 00060bc0 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 | corresponding c| 00060bd0 6f 64 65 73 20 61 6e 64 20 73 74 6f 72 65 73 20 |odes and stores | 00060be0 6e 6f 74 20 6d 6f 72 65 20 74 68 61 6e 20 2f 6e |not more than /n| 00060bf0 2f 20 63 6f 64 65 73 20 69 6e 74 6f 20 74 68 65 |/ codes into the| 00060c00 20 61 72 72 61 79 20 70 6f 69 6e 74 65 64 20 74 | array pointed t| 00060c10 6f 20 62 79 20 2f 70 77 63 73 2f 2e 20 4e 6f 20 |o by /pwcs/. No | 00060c20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 63 |multibyte charac| 00060c30 74 65 72 20 74 68 61 74 20 66 6f 6c 6c 6f 77 73 |ter that follows| 00060c40 20 61 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 | a null characte| 00060c50 72 20 28 77 68 69 63 68 20 69 73 20 63 6f 6e 76 |r (which is conv| 00060c60 65 72 74 65 64 20 69 6e 74 6f 20 61 20 63 6f 64 |erted into a cod| 00060c70 65 20 77 69 74 68 20 76 61 6c 75 65 20 7a 65 72 |e with value zer| 00060c80 6f 29 20 77 69 6c 6c 20 62 65 20 65 78 61 6d 69 |o) will be exami| 00060c90 6e 65 64 20 6f 72 20 63 6f 6e 76 65 72 74 65 64 |ned or converted| 00060ca0 2e 20 45 61 63 68 20 6d 75 6c 74 69 62 79 74 65 |. Each multibyte| 00060cb0 20 63 68 61 72 61 63 74 65 72 20 69 73 20 63 6f | character is co| 00060cc0 6e 76 65 72 74 65 64 20 61 73 20 69 66 20 62 79 |nverted as if by| 00060cd0 20 61 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 3c | a call to the <| 00060ce0 6d 62 74 6f 77 63 3e 20 66 75 6e 63 74 69 6f 6e |mbtowc> function| 00060cf0 2e 0a 0a 49 66 20 61 6e 20 69 6e 76 61 6c 69 64 |...If an invalid| 00060d00 20 6d 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 | multibyte chara| 00060d10 63 74 65 72 20 69 73 20 66 6f 75 6e 64 2c 20 74 |cter is found, t| 00060d20 68 69 73 20 72 65 74 75 72 6e 73 20 2d 31 2c 20 |his returns -1, | 00060d30 6f 74 68 65 72 77 69 73 65 20 69 74 20 72 65 74 |otherwise it ret| 00060d40 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |urns the number | 00060d50 6f 66 20 61 72 72 61 79 20 65 6c 65 6d 65 6e 74 |of array element| 00060d60 73 20 6d 6f 64 69 66 69 65 64 2e 00 44 41 54 41 |s modified..DATA| 00060d70 bd 02 00 00 6d 62 74 6f 77 63 0a 53 79 6e 74 61 |....mbtowc.Synta| 00060d80 78 3a 09 69 6e 74 20 6d 62 74 6f 77 63 20 28 3c |x:.int mbtowc (<| 00060d90 77 63 68 61 72 5f 74 3e 20 2a 70 77 63 2c 20 63 |wchar_t> *pwc, c| 00060da0 68 61 72 20 2a 73 2c 20 3c 73 69 7a 65 5f 74 3e |har *s, <size_t>| 00060db0 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 | n);.Header:.<st| 00060dc0 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a |dlib.h=>stdlib>.| 00060dd0 0a 52 65 74 75 72 6e 73 3a 09 53 65 65 20 62 65 |.Returns:.See be| 00060de0 6c 6f 77 2e 0a 0a 49 66 20 2f 73 2f 20 69 73 20 |low...If /s/ is | 00060df0 6e 6f 74 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 |not a null point| 00060e00 65 72 2c 20 74 68 65 6e 20 74 68 69 73 20 66 75 |er, then this fu| 00060e10 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 |nction determine| 00060e20 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 |s the number of | 00060e30 62 79 74 65 73 20 63 6f 6d 70 72 69 73 69 6e 67 |bytes comprising| 00060e40 20 74 68 65 20 74 68 65 20 6d 75 6c 74 69 62 79 | the the multiby| 00060e50 74 65 20 63 68 61 72 61 63 74 65 72 20 70 6f 69 |te character poi| 00060e60 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f 20 61 |nted to by /s/ a| 00060e70 6e 64 20 61 6c 73 6f 20 64 65 74 65 72 6d 69 6e |nd also determin| 00060e80 65 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 |es the value of | 00060e90 74 79 70 65 20 2f 77 63 68 61 72 5f 74 2f 20 77 |type /wchar_t/ w| 00060ea0 68 69 63 68 20 63 6f 72 72 65 73 70 6f 6e 64 73 |hich corresponds| 00060eb0 20 74 6f 20 74 68 61 74 20 63 68 61 72 61 63 74 | to that charact| 00060ec0 65 72 20 61 6e 64 20 73 74 6f 72 65 73 20 69 74 |er and stores it| 00060ed0 20 69 6e 20 7b 2f 7d 2a 70 77 63 7b 2f 7d 2c 20 | in {/}*pwc{/}, | 00060ee0 69 66 20 2f 70 77 63 2f 20 69 73 20 6e 6f 74 20 |if /pwc/ is not | 00060ef0 3c 4e 55 4c 4c 3e 2e 20 49 74 20 72 65 74 75 72 |<NULL>. It retur| 00060f00 6e 73 20 61 20 30 20 69 66 20 2f 73 2f 20 70 6f |ns a 0 if /s/ po| 00060f10 69 6e 74 73 20 74 6f 20 61 20 6e 75 6c 6c 20 63 |ints to a null c| 00060f20 68 61 72 61 63 74 65 72 2c 20 6f 72 20 74 68 65 |haracter, or the| 00060f30 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 | number of bytes| 00060f40 2e 20 49 66 20 2f 73 2f 20 69 73 20 6e 6f 74 20 |. If /s/ is not | 00060f50 61 20 76 61 6c 69 64 20 6d 75 6c 74 69 62 79 74 |a valid multibyt| 00060f60 65 20 63 68 61 72 61 63 74 65 72 20 69 74 20 72 |e character it r| 00060f70 65 74 75 72 6e 73 20 2d 31 2e 20 41 74 20 6d 6f |eturns -1. At mo| 00060f80 73 74 20 2f 6e 2f 20 62 79 74 65 73 20 6f 66 20 |st /n/ bytes of | 00060f90 74 68 65 20 61 72 72 61 79 20 77 69 6c 6c 20 62 |the array will b| 00060fa0 65 20 65 78 61 6d 69 6e 65 64 2e 0a 0a 49 66 20 |e examined...If | 00060fb0 2f 73 2f 20 69 73 20 61 20 6e 75 6c 6c 20 70 6f |/s/ is a null po| 00060fc0 69 6e 74 65 72 2c 20 74 68 69 73 20 66 75 6e 63 |inter, this func| 00060fd0 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 7a 65 72 |tion returns zer| 00060fe0 6f 20 69 66 20 6d 75 6c 74 69 62 79 74 65 20 63 |o if multibyte c| 00060ff0 68 61 72 61 63 74 65 72 20 65 6e 63 6f 64 69 6e |haracter encodin| 00061000 67 73 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 73 |gs do not have s| 00061010 74 61 74 65 2d 64 65 70 65 6e 64 65 6e 74 20 65 |tate-dependent e| 00061020 6e 63 6f 64 69 6e 67 73 2e 00 00 00 44 41 54 41 |ncodings....DATA| 00061030 5e 02 00 00 44 65 73 6b 4c 69 62 3a 4d 65 6d 2e |^...DeskLib:Mem.| 00061040 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 31 20 |h.Version: 1.01 | 00061050 28 32 32 20 4d 61 79 20 31 39 39 34 29 0a 23 6c |(22 May 1994).#l| 00061060 69 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 |ine.This header | 00061070 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f |declares functio| 00061080 6e 73 20 61 6e 64 20 74 79 70 65 73 20 66 6f 72 |ns and types for| 00061090 20 64 79 6e 61 6d 69 63 20 6d 65 6d 6f 72 79 20 | dynamic memory | 000610a0 6d 61 6e 61 67 65 6d 65 6e 74 2e 0a 0a 46 75 6e |management...Fun| 000610b0 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 |ctions:..#Indent| 000610c0 20 32 20 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d | 2 .#Table colum| 000610d0 6e 73 20 33 0a 3c 4d 65 6d 5f 49 6e 69 74 69 61 |ns 3.<Mem_Initia| 000610e0 6c 69 73 65 3e 0a 3c 4d 65 6d 5f 41 6c 6c 6f 63 |lise>.<Mem_Alloc| 000610f0 3e 0a 3c 4d 65 6d 5f 4d 69 64 45 78 74 65 6e 64 |>.<Mem_MidExtend| 00061100 3e 0a 3c 4d 65 6d 5f 4d 6f 76 65 41 6e 63 68 6f |>.<Mem_MoveAncho| 00061110 72 3e 0a 3c 4d 65 6d 5f 46 72 65 65 3e 0a 3c 4d |r>.<Mem_Free>.<M| 00061120 65 6d 5f 43 6f 6d 70 61 63 74 3e 0a 3c 4d 65 6d |em_Compact>.<Mem| 00061130 5f 53 69 7a 65 3e 0a 3c 4d 65 6d 5f 43 68 65 63 |_Size>.<Mem_Chec| 00061140 6b 48 65 61 70 3e 0a 23 45 6e 64 54 61 62 6c 65 |kHeap>.#EndTable| 00061150 0a 23 49 6e 64 65 6e 74 20 30 0a 0a 54 79 70 65 |.#Indent 0..Type| 00061160 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 31 34 20 0a |s:..#Indent 14 .| 00061170 23 54 61 62 6c 65 20 31 20 32 31 0a 3c 6d 65 6d |#Table 1 21.<mem| 00061180 5f 61 6e 63 68 6f 72 3e 0a 3c 6d 65 6d 5f 63 6f |_anchor>.<mem_co| 00061190 6d 70 61 63 74 69 6f 6e 3e 0a 23 45 6e 64 54 61 |mpaction>.#EndTa| 000611a0 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 30 0a 56 |ble..#Indent 0.V| 000611b0 61 72 69 61 62 6c 65 3a 0a 0a 7b 61 6c 69 67 6e |ariable:..{align| 000611c0 20 63 65 6e 74 72 65 7d 3c 6d 65 6d 5f 61 75 74 | centre}<mem_aut| 000611d0 6f 63 6f 6d 70 61 63 74 3e 7b 61 6c 69 67 6e 7d |ocompact>{align}| 000611e0 0a 0a 54 68 65 20 61 64 76 61 6e 74 61 67 65 20 |..The advantage | 000611f0 6f 66 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f |of these functio| 00061200 6e 20 6f 76 65 72 20 74 68 65 20 73 74 61 6e 64 |n over the stand| 00061210 61 72 64 20 41 4e 53 49 20 66 75 6e 63 74 69 6f |ard ANSI functio| 00061220 6e 73 20 3c 6d 61 6c 6c 6f 63 3e 20 65 74 63 2c |ns <malloc> etc,| 00061230 20 69 73 20 74 68 61 74 20 74 68 65 73 65 20 61 | is that these a| 00061240 64 6a 75 73 74 20 74 68 65 20 70 72 6f 67 72 61 |djust the progra| 00061250 6d 27 73 20 57 69 6d 70 53 6c 6f 74 20 61 73 20 |m's WimpSlot as | 00061260 6e 65 65 64 65 64 2c 20 62 6f 74 68 20 69 6e 63 |needed, both inc| 00061270 72 65 61 73 69 6e 67 20 61 6e 64 20 64 65 63 72 |reasing and decr| 00061280 65 61 73 69 6e 67 20 69 74 2e 00 00 44 49 52 24 |easing it...DIR$| 00061290 84 01 00 00 84 01 00 00 10 14 06 00 46 ff ff ff |............F...| 000612a0 ad 14 40 25 e8 01 00 00 13 00 00 00 00 00 00 00 |..@%............| 000612b0 41 6c 6c 6f 63 00 00 00 f8 15 06 00 46 ff ff ff |Alloc.......F...| 000612c0 c5 59 40 25 cf 00 00 00 13 00 00 00 00 00 00 00 |.Y@%............| 000612d0 61 6e 63 68 6f 72 00 00 c8 16 06 00 46 ff ff ff |anchor......F...| 000612e0 70 a7 40 25 cb 01 00 00 13 00 00 00 00 00 00 00 |p.@%............| 000612f0 61 75 74 6f 63 6f 6d 70 61 63 74 00 94 18 06 00 |autocompact.....| 00061300 46 ff ff ff 55 4c 40 25 ea 00 00 00 13 00 00 00 |F...UL@%........| 00061310 00 00 00 00 43 68 65 63 6b 48 65 61 70 00 00 00 |....CheckHeap...| 00061320 80 19 06 00 46 ff ff ff 1d 43 40 25 cc 01 00 00 |....F....C@%....| 00061330 13 00 00 00 00 00 00 00 43 6f 6d 70 61 63 74 00 |........Compact.| 00061340 4c 1b 06 00 46 ff ff ff 6b d2 b5 22 86 00 00 00 |L...F...k.."....| 00061350 13 00 00 00 00 00 00 00 63 6f 6d 70 61 63 74 69 |........compacti| 00061360 6f 6e 00 00 d4 1b 06 00 46 ff ff ff 10 3e 40 25 |on......F....>@%| 00061370 0b 01 00 00 13 00 00 00 00 00 00 00 46 72 65 65 |............Free| 00061380 00 00 00 00 e0 1c 06 00 46 ff ff ff 84 0b 40 25 |........F.....@%| 00061390 b1 00 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |............Init| 000613a0 69 61 6c 69 73 65 00 00 94 1d 06 00 46 ff ff ff |ialise......F...| 000613b0 d7 27 40 25 f1 01 00 00 13 00 00 00 00 00 00 00 |.'@%............| 000613c0 4d 69 64 45 78 74 65 6e 64 00 00 00 88 1f 06 00 |MidExtend.......| 000613d0 46 ff ff ff b5 37 40 25 05 02 00 00 13 00 00 00 |F....7@%........| 000613e0 00 00 00 00 4d 6f 76 65 41 6e 63 68 6f 72 00 00 |....MoveAnchor..| 000613f0 90 21 06 00 46 ff ff ff ad 48 40 25 be 00 00 00 |.!..F....H@%....| 00061400 13 00 00 00 00 00 00 00 53 69 7a 65 00 00 00 00 |........Size....| 00061410 44 41 54 41 e8 01 00 00 4d 65 6d 5f 41 6c 6c 6f |DATA....Mem_Allo| 00061420 63 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e |c.Syntax:.<BOOL>| 00061430 20 4d 65 6d 5f 41 6c 6c 6f 63 20 28 3c 6d 65 6d | Mem_Alloc (<mem| 00061440 5f 61 6e 63 68 6f 72 3e 20 2a 61 6e 63 68 6f 72 |_anchor> *anchor| 00061450 2c 20 69 6e 74 20 73 69 7a 65 29 3b 0a 48 65 61 |, int size);.Hea| 00061460 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 |der:.<DeskLib:Me| 00061470 6d 2e 68 3d 3e 4d 65 6d 3e 0a 0a 52 65 74 75 72 |m.h=>Mem>..Retur| 00061480 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 73 75 |ns:.<TRUE> if su| 00061490 63 63 65 65 64 65 64 2e 0a 0a 54 68 69 73 20 66 |cceeded...This f| 000614a0 75 6e 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 73 |unction attempts| 000614b0 20 74 6f 20 61 6c 6c 6f 63 61 74 65 20 74 68 65 | to allocate the| 000614c0 20 67 69 76 65 6e 20 61 6d 6f 75 6e 74 20 6f 66 | given amount of| 000614d0 20 6d 65 6d 6f 72 79 20 28 7b 2f 7d 73 69 7a 65 | memory ({/}size| 000614e0 7b 2f 7d 20 62 79 74 65 73 29 20 69 6e 20 74 68 |{/} bytes) in th| 000614f0 65 20 4d 65 6d 20 68 65 61 70 2e 20 54 68 65 20 |e Mem heap. The | 00061500 61 6e 63 68 6f 72 20 77 68 6f 73 65 20 70 6f 69 |anchor whose poi| 00061510 6e 74 65 72 20 69 73 20 67 69 76 65 6e 20 77 69 |nter is given wi| 00061520 6c 6c 20 70 6f 69 6e 74 20 74 6f 20 74 68 69 73 |ll point to this| 00061530 20 62 6c 6f 63 6b 2c 20 6f 72 20 77 69 6c 6c 20 | block, or will | 00061540 63 6f 6e 74 61 69 6e 20 3c 4e 55 4c 4c 3e 20 69 |contain <NULL> i| 00061550 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 66 |f the function f| 00061560 61 69 6c 73 2e 20 54 68 65 20 61 6c 6c 6f 63 61 |ails. The alloca| 00061570 74 65 64 20 62 6c 6f 63 6b 20 69 73 20 67 75 61 |ted block is gua| 00061580 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 77 6f |ranteed to be wo| 00061590 72 64 2d 61 6c 69 67 6e 65 64 2e 0a 0a 44 65 70 |rd-aligned...Dep| 000615a0 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 65 |ending on the se| 000615b0 74 74 69 6e 67 20 6f 66 20 3c 6d 65 6d 5f 61 75 |tting of <mem_au| 000615c0 74 6f 63 6f 6d 70 61 63 74 3e 2c 20 74 68 69 73 |tocompact>, this| 000615d0 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 72 65 | function may re| 000615e0 6c 6f 63 61 74 65 20 6f 74 68 65 72 20 4d 65 6d |locate other Mem| 000615f0 20 62 6c 6f 63 6b 73 2e 44 41 54 41 cf 00 00 00 | blocks.DATA....| 00061600 6d 65 6d 5f 61 6e 63 68 6f 72 0a 54 68 65 20 74 |mem_anchor.The t| 00061610 79 70 65 20 7b 2a 7d 6d 65 6d 5f 61 6e 63 68 6f |ype {*}mem_ancho| 00061620 72 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 20 |r{*} is defined | 00061630 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 4d 65 6d 2e |in <DeskLib:Mem.| 00061640 68 3d 3e 4d 65 6d 3e 20 61 73 20 61 20 74 79 70 |h=>Mem> as a typ| 00061650 65 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c |e capable of hol| 00061660 64 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 74 |ding a pointer t| 00061670 6f 20 61 20 62 6c 6f 63 6b 20 6f 66 20 6d 65 6d |o a block of mem| 00061680 6f 72 79 20 61 6c 6c 6f 63 61 74 65 64 20 62 79 |ory allocated by| 00061690 20 3c 4d 65 6d 5f 41 6c 6c 6f 63 3e 2e 20 49 74 | <Mem_Alloc>. It| 000616a0 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 66 | is actually def| 000616b0 69 6e 65 64 20 61 73 20 61 20 7b 2f 7d 76 6f 69 |ined as a {/}voi| 000616c0 64 20 2a 7b 2f 7d 2e 00 44 41 54 41 cb 01 00 00 |d *{/}..DATA....| 000616d0 6d 65 6d 5f 61 75 74 6f 63 6f 6d 70 61 63 74 0a |mem_autocompact.| 000616e0 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 |This variable is| 000616f0 20 64 65 63 6c 61 72 65 64 20 62 79 20 3c 44 65 | declared by <De| 00061700 73 6b 4c 69 62 3a 4d 65 6d 2e 68 3d 3e 4d 65 6d |skLib:Mem.h=>Mem| 00061710 3e 20 61 6e 64 20 64 65 66 69 6e 65 73 20 74 68 |> and defines th| 00061720 65 20 65 78 74 65 6e 74 20 74 6f 20 77 68 69 63 |e extent to whic| 00061730 68 20 4d 65 6d 20 77 69 6c 6c 20 61 75 74 6f 2d |h Mem will auto-| 00061740 63 6f 6d 70 61 63 74 2e 20 49 74 20 63 61 6e 20 |compact. It can | 00061750 74 61 6b 65 20 76 61 6c 75 65 73 3a 0a 0a 20 09 |take values:.. .| 00061760 6d 65 6d 5f 4e 4f 43 4f 4d 50 41 43 54 20 3d 20 |mem_NOCOMPACT = | 00061770 30 09 3a 09 43 6f 6d 70 61 63 74 20 6f 6e 6c 79 |0.:.Compact only| 00061780 20 77 68 65 6e 20 3c 4d 65 6d 5f 43 6f 6d 70 61 | when <Mem_Compa| 00061790 63 74 3e 20 69 73 20 63 61 6c 6c 65 64 2e 0a 20 |ct> is called.. | 000617a0 09 6d 65 6d 5f 46 41 53 54 43 4f 4d 50 41 43 54 |.mem_FASTCOMPACT| 000617b0 0a 7b 77 72 61 70 20 6f 66 66 7d 20 09 6d 65 6d |.{wrap off} .mem| 000617c0 5f 50 41 52 54 43 4f 4d 50 41 43 54 20 3d 20 31 |_PARTCOMPACT = 1| 000617d0 09 3a 09 2a 2a 20 44 45 46 41 55 4c 54 20 53 45 |.:.** DEFAULT SE| 000617e0 54 54 49 4e 47 20 2a 2a 0a 7b 77 72 61 70 7d 20 |TTING **.{wrap} | 000617f0 09 09 09 20 09 20 09 09 43 6f 6d 70 61 63 74 20 |... . ..Compact | 00061800 6f 6e 6c 79 20 77 68 65 6e 20 6e 65 63 65 73 73 |only when necess| 00061810 61 72 79 20 74 6f 20 61 6c 6c 6f 63 61 74 65 20 |ary to allocate | 00061820 6d 65 6d 6f 72 79 2e 0a 20 09 6d 65 6d 5f 46 55 |memory.. .mem_FU| 00061830 4c 4c 43 4f 4d 50 41 43 54 20 3d 20 32 09 3a 09 |LLCOMPACT = 2.:.| 00061840 43 6f 6d 70 61 63 74 20 65 76 65 72 79 20 74 69 |Compact every ti| 00061850 6d 65 20 73 70 61 63 65 20 69 73 20 66 72 65 65 |me space is free| 00061860 64 2e 0a 0a 43 68 61 6e 67 65 73 20 74 6f 20 74 |d...Changes to t| 00061870 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 61 6b |his variable tak| 00061880 65 20 69 6d 6d 65 64 69 61 74 65 20 65 66 66 65 |e immediate effe| 00061890 63 74 2e 00 44 41 54 41 ea 00 00 00 4d 65 6d 5f |ct..DATA....Mem_| 000618a0 43 68 65 63 6b 48 65 61 70 0a 53 79 6e 74 61 78 |CheckHeap.Syntax| 000618b0 3a 09 3c 42 4f 4f 4c 3e 20 4d 65 6d 5f 43 68 65 |:.<BOOL> Mem_Che| 000618c0 63 6b 48 65 61 70 20 28 76 6f 69 64 29 3b 0a 48 |ckHeap (void);.H| 000618d0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000618e0 4d 65 6d 2e 68 3d 3e 4d 65 6d 3e 0a 0a 52 65 74 |Mem.h=>Mem>..Ret| 000618f0 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 00061900 68 65 61 70 20 69 73 20 76 61 6c 69 64 2e 0a 0a |heap is valid...| 00061910 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 63 |This functions c| 00061920 68 65 63 6b 73 20 74 68 65 20 68 65 61 70 20 64 |hecks the heap d| 00061930 61 74 61 20 73 74 72 75 63 74 75 72 65 2c 20 69 |ata structure, i| 00061940 65 20 63 68 65 63 6b 73 20 74 68 61 74 20 61 6c |e checks that al| 00061950 6c 20 6c 69 6e 6b 73 20 61 72 65 20 69 6e 74 61 |l links are inta| 00061960 63 74 20 61 6e 64 20 61 6e 63 68 6f 72 73 20 61 |ct and anchors a| 00061970 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 2e 00 00 |re consistent...| 00061980 44 41 54 41 cc 01 00 00 4d 65 6d 5f 43 6f 6d 70 |DATA....Mem_Comp| 00061990 61 63 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |act.Syntax:.void| 000619a0 20 4d 65 6d 5f 43 6f 6d 70 61 63 74 20 28 76 6f | Mem_Compact (vo| 000619b0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |id);.Header:.<De| 000619c0 73 6b 4c 69 62 3a 4d 65 6d 2e 68 3d 3e 4d 65 6d |skLib:Mem.h=>Mem| 000619d0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000619e0 20 63 6f 6d 70 61 63 74 73 20 74 68 65 20 4d 65 | compacts the Me| 000619f0 6d 20 77 6f 72 6b 73 70 61 63 65 2c 20 6d 6f 76 |m workspace, mov| 00061a00 69 6e 67 20 61 6c 6c 20 66 72 65 65 20 73 70 61 |ing all free spa| 00061a10 63 65 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 |ce to the end of| 00061a20 20 74 68 65 20 77 6f 72 6b 73 70 61 63 65 20 61 | the workspace a| 00061a30 6e 64 20 66 72 65 65 69 6e 67 20 6d 65 6d 6f 72 |nd freeing memor| 00061a40 79 20 62 61 63 6b 20 74 6f 20 74 68 65 20 72 65 |y back to the re| 00061a50 73 74 20 6f 66 20 74 68 65 20 57 49 4d 50 20 69 |st of the WIMP i| 00061a60 66 20 70 6f 73 73 69 62 6c 65 2e 20 41 6e 63 68 |f possible. Anch| 00061a70 6f 72 73 20 77 69 6c 6c 20 62 65 20 75 70 64 61 |ors will be upda| 00061a80 74 65 64 20 74 6f 20 72 65 66 6c 65 63 74 20 74 |ted to reflect t| 00061a90 68 65 20 6e 65 77 20 70 6f 73 69 74 69 6f 6e 73 |he new positions| 00061aa0 20 6f 66 20 62 6c 6f 63 6b 73 2e 0a 0a 49 64 65 | of blocks...Ide| 00061ab0 61 6c 6c 79 2c 20 74 68 69 73 20 73 68 6f 75 6c |ally, this shoul| 00061ac0 64 20 62 65 20 63 61 6c 6c 65 64 20 62 65 66 6f |d be called befo| 00061ad0 72 65 20 65 61 63 68 20 74 69 6d 65 20 79 6f 75 |re each time you| 00061ae0 20 70 6f 6c 6c 20 74 68 65 20 57 49 4d 50 2e 20 | poll the WIMP. | 00061af0 49 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 63 |It may also be c| 00061b00 61 6c 6c 65 64 20 62 79 20 6f 74 68 65 72 20 4d |alled by other M| 00061b10 65 6d 20 66 75 6e 63 74 69 6f 6e 73 2c 20 64 65 |em functions, de| 00061b20 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 |pending on the s| 00061b30 65 74 74 69 6e 67 20 6f 66 20 3c 6d 65 6d 5f 61 |etting of <mem_a| 00061b40 75 74 6f 63 6f 6d 70 61 63 74 3e 2e 44 41 54 41 |utocompact>.DATA| 00061b50 86 00 00 00 6d 65 6d 5f 63 6f 6d 70 61 63 74 69 |....mem_compacti| 00061b60 6f 6e 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |on.This type is | 00061b70 64 65 66 69 6e 65 64 20 62 79 20 3c 44 65 73 6b |defined by <Desk| 00061b80 4c 69 62 3a 4d 65 6d 2e 68 3d 3e 4d 65 6d 3e 2e |Lib:Mem.h=>Mem>.| 00061b90 20 49 74 20 69 73 20 61 6e 0a 65 6e 75 6d 65 72 | It is an.enumer| 00061ba0 61 74 65 64 20 74 79 70 65 20 75 73 65 64 20 66 |ated type used f| 00061bb0 6f 72 20 74 68 65 20 3c 6d 65 6d 5f 61 75 74 6f |or the <mem_auto| 00061bc0 63 6f 6d 70 61 63 74 3e 0a 76 61 72 69 61 62 6c |compact>.variabl| 00061bd0 65 2e 00 00 44 41 54 41 0b 01 00 00 4d 65 6d 5f |e...DATA....Mem_| 00061be0 46 72 65 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |Free.Syntax:.voi| 00061bf0 64 20 4d 65 6d 5f 46 72 65 65 20 28 3c 6d 65 6d |d Mem_Free (<mem| 00061c00 5f 61 6e 63 68 6f 72 3e 20 2a 61 6e 63 68 6f 72 |_anchor> *anchor| 00061c10 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00061c20 4c 69 62 3a 4d 65 6d 2e 68 3d 3e 4d 65 6d 3e 0a |Lib:Mem.h=>Mem>.| 00061c30 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 00061c40 65 6c 65 61 73 65 73 20 61 20 62 6c 6f 63 6b 20 |eleases a block | 00061c50 6f 66 20 6d 65 6d 6f 72 79 20 77 68 6f 73 65 20 |of memory whose | 00061c60 61 6e 63 68 6f 72 20 69 73 20 70 6f 69 6e 74 65 |anchor is pointe| 00061c70 64 20 74 6f 2e 20 54 68 65 20 61 6e 63 68 6f 72 |d to. The anchor| 00061c80 20 77 69 6c 6c 20 6e 6f 77 20 63 6f 6e 74 61 69 | will now contai| 00061c90 6e 20 3c 4e 55 4c 4c 3e 2e 0a 0a 54 68 69 73 20 |n <NULL>...This | 00061ca0 63 61 6c 6c 20 6d 61 79 20 72 65 6c 6f 63 61 74 |call may relocat| 00061cb0 65 20 6f 74 68 65 72 20 62 6c 6f 63 6b 73 2c 20 |e other blocks, | 00061cc0 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 3c 6d 65 |according to <me| 00061cd0 6d 5f 61 75 74 6f 63 6f 6d 70 61 63 74 3e 2e 00 |m_autocompact>..| 00061ce0 44 41 54 41 b1 00 00 00 4d 65 6d 5f 49 6e 69 74 |DATA....Mem_Init| 00061cf0 69 61 6c 69 73 65 0a 53 79 6e 74 61 78 3a 09 3c |ialise.Syntax:.<| 00061d00 42 4f 4f 4c 3e 20 4d 65 6d 5f 49 6e 69 74 69 61 |BOOL> Mem_Initia| 00061d10 6c 69 73 65 20 28 76 6f 69 64 29 3b 0a 48 65 61 |lise (void);.Hea| 00061d20 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 |der:.<DeskLib:Me| 00061d30 6d 2e 68 3d 3e 4d 65 6d 3e 0a 0a 52 65 74 75 72 |m.h=>Mem>..Retur| 00061d40 6e 73 3a 09 3c 46 41 4c 53 45 3e 20 69 66 20 69 |ns:.<FALSE> if i| 00061d50 74 20 66 61 69 6c 73 2e 0a 0a 54 68 69 73 20 66 |t fails...This f| 00061d60 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 |unction initiali| 00061d70 73 65 73 20 74 68 65 20 4d 65 6d 20 73 79 73 74 |ses the Mem syst| 00061d80 65 6d 20 72 65 61 64 79 20 66 6f 72 20 75 73 65 |em ready for use| 00061d90 2e 00 00 00 44 41 54 41 f1 01 00 00 4d 65 6d 5f |....DATA....Mem_| 00061da0 4d 69 64 45 78 74 65 6e 64 0a 53 79 6e 74 61 78 |MidExtend.Syntax| 00061db0 3a 09 3c 42 4f 4f 4c 3e 20 4d 65 6d 5f 4d 69 64 |:.<BOOL> Mem_Mid| 00061dc0 45 78 74 65 6e 64 20 28 3c 6d 65 6d 5f 61 6e 63 |Extend (<mem_anc| 00061dd0 68 6f 72 3e 20 2a 61 6e 63 68 6f 72 2c 20 69 6e |hor> *anchor, in| 00061de0 74 20 61 74 2c 20 69 6e 74 20 62 79 29 3b 0a 48 |t at, int by);.H| 00061df0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00061e00 4d 65 6d 2e 68 3d 3e 4d 65 6d 3e 0a 0a 52 65 74 |Mem.h=>Mem>..Ret| 00061e10 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 00061e20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a 54 68 69 |successful...Thi| 00061e30 73 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 65 6d |s function attem| 00061e40 70 74 73 20 74 6f 20 61 6c 74 65 72 20 74 68 65 |pts to alter the| 00061e50 20 73 69 7a 65 20 6f 66 20 61 20 4d 65 6d 20 62 | size of a Mem b| 00061e60 6c 6f 63 6b 2c 20 62 79 20 69 6e 73 65 72 74 69 |lock, by inserti| 00061e70 6e 67 20 61 20 62 6c 6f 63 6b 20 6f 66 20 2f 62 |ng a block of /b| 00061e80 79 2f 20 62 79 74 65 73 20 61 74 20 6f 66 66 73 |y/ bytes at offs| 00061e90 65 74 20 2f 61 74 2f 20 77 69 74 68 69 6e 20 74 |et /at/ within t| 00061ea0 68 65 20 62 6c 6f 63 6b 2e 20 49 66 20 2f 62 79 |he block. If /by| 00061eb0 2f 20 69 73 20 6e 65 67 61 74 69 76 65 20 74 68 |/ is negative th| 00061ec0 65 6e 20 74 68 65 20 7b 2f 7d 2d 62 79 7b 2f 7d |en the {/}-by{/}| 00061ed0 20 62 79 74 65 73 20 5f 62 65 6c 6f 77 5f 20 2f | bytes _below_ /| 00061ee0 61 74 2f 20 77 69 6c 6c 20 62 65 20 64 65 6c 65 |at/ will be dele| 00061ef0 74 65 64 2e 20 45 69 74 68 65 72 20 77 61 79 2c |ted. Either way,| 00061f00 20 65 78 69 73 74 69 6e 67 20 64 61 74 61 20 28 | existing data (| 00061f10 65 78 63 65 70 74 20 74 68 61 74 20 64 65 6c 65 |except that dele| 00061f20 74 65 64 29 20 69 73 20 70 72 65 73 65 72 76 65 |ted) is preserve| 00061f30 64 2e 0a 0a 54 68 69 73 20 63 61 6c 6c 20 6d 61 |d...This call ma| 00061f40 79 20 72 65 6c 6f 63 61 74 65 20 6f 74 68 65 72 |y relocate other| 00061f50 20 62 6c 6f 63 6b 73 2c 20 64 65 70 65 6e 64 69 | blocks, dependi| 00061f60 6e 67 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 |ng on the value | 00061f70 6f 66 20 3c 6d 65 6d 5f 61 75 74 6f 63 6f 6d 70 |of <mem_autocomp| 00061f80 61 63 74 3e 2e 00 00 00 44 41 54 41 05 02 00 00 |act>....DATA....| 00061f90 4d 65 6d 5f 4d 6f 76 65 41 6e 63 68 6f 72 0a 53 |Mem_MoveAnchor.S| 00061fa0 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 6d 5f |yntax:.void Mem_| 00061fb0 4d 6f 76 65 41 6e 63 68 6f 72 20 28 3c 6d 65 6d |MoveAnchor (<mem| 00061fc0 5f 61 6e 63 68 6f 72 3e 20 2a 66 72 6f 6d 2c 20 |_anchor> *from, | 00061fd0 3c 6d 65 6d 5f 61 6e 63 68 6f 72 3e 20 2a 74 6f |<mem_anchor> *to| 00061fe0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00061ff0 4c 69 62 3a 4d 65 6d 2e 68 3d 3e 4d 65 6d 3e 0a |Lib:Mem.h=>Mem>.| 00062000 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 00062010 6f 70 69 65 73 20 6d 6f 76 65 73 20 61 6e 20 61 |opies moves an a| 00062020 6e 63 68 6f 72 20 66 72 6f 6d 20 6f 6e 65 20 76 |nchor from one v| 00062030 61 72 69 61 62 6c 65 20 74 6f 20 61 6e 6f 74 68 |ariable to anoth| 00062040 65 72 2e 20 54 68 69 73 20 69 73 20 6e 65 63 65 |er. This is nece| 00062050 73 73 61 72 79 20 62 65 63 61 75 73 65 2c 20 64 |ssary because, d| 00062060 75 65 20 74 6f 20 74 68 65 20 72 65 6c 6f 63 61 |ue to the reloca| 00062070 74 69 6e 67 20 6e 61 74 75 72 65 20 6f 66 20 4d |ting nature of M| 00062080 65 6d 20 63 68 75 6e 6b 73 2c 20 61 6e 63 68 6f |em chunks, ancho| 00062090 72 73 20 61 72 65 20 61 75 74 6f 6d 61 74 69 63 |rs are automatic| 000620a0 61 6c 6c 79 20 75 70 64 61 74 65 64 2e 20 49 66 |ally updated. If| 000620b0 20 79 6f 75 20 73 69 6d 70 6c 79 20 63 6f 70 79 | you simply copy| 000620c0 20 74 68 65 20 76 61 6c 75 65 2c 20 74 68 65 20 | the value, the | 000620d0 6e 65 77 20 61 6e 63 68 6f 72 20 77 69 6c 6c 20 |new anchor will | 000620e0 6e 6f 74 20 62 65 20 75 70 64 61 74 65 64 2e 0a |not be updated..| 000620f0 0a 49 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f |.If this functio| 00062100 6e 20 77 6f 72 6b 73 2c 20 74 68 65 20 61 6e 63 |n works, the anc| 00062110 68 6f 72 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |hor pointed to b| 00062120 79 20 2f 66 72 6f 6d 2f 20 77 69 6c 6c 20 63 6f |y /from/ will co| 00062130 6e 74 61 69 6e 20 3c 4e 55 4c 4c 3e 2c 20 61 6e |ntain <NULL>, an| 00062140 64 20 74 68 65 20 61 6e 63 68 6f 72 20 70 6f 69 |d the anchor poi| 00062150 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 6f 2f 20 |nted to by /to/ | 00062160 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20 74 68 65 |will contain the| 00062170 20 70 72 65 76 69 6f 75 73 20 63 6f 6e 74 65 6e | previous conten| 00062180 74 73 20 6f 66 20 2f 66 72 6f 6d 2f 2e 00 00 00 |ts of /from/....| 00062190 44 41 54 41 be 00 00 00 4d 65 6d 5f 53 69 7a 65 |DATA....Mem_Size| 000621a0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 4d 65 6d |.Syntax:.int Mem| 000621b0 5f 53 69 7a 65 20 28 3c 6d 65 6d 5f 61 6e 63 68 |_Size (<mem_anch| 000621c0 6f 72 3e 20 2a 61 6e 63 68 6f 72 29 3b 0a 48 65 |or> *anchor);.He| 000621d0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d |ader:.<DeskLib:M| 000621e0 65 6d 2e 68 3d 3e 4d 65 6d 3e 0a 0a 52 65 74 75 |em.h=>Mem>..Retu| 000621f0 72 6e 73 3a 09 53 69 7a 65 20 69 6e 20 62 79 74 |rns:.Size in byt| 00062200 65 73 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |es..This functio| 00062210 6e 20 66 69 6e 64 73 20 74 68 65 20 73 69 7a 65 |n finds the size| 00062220 20 6f 66 20 61 20 4d 65 6d 20 62 6c 6f 63 6b 20 | of a Mem block | 00062230 77 68 6f 73 65 20 61 6e 63 68 6f 72 20 70 6f 69 |whose anchor poi| 00062240 6e 74 65 72 20 69 73 20 67 69 76 65 6e 2e 00 00 |nter is given...| 00062250 44 41 54 41 2d 01 00 00 6d 65 6d 63 68 72 0a 53 |DATA-...memchr.S| 00062260 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a 6d 65 6d |yntax:.void *mem| 00062270 63 68 72 20 28 76 6f 69 64 20 2a 70 74 72 2c 20 |chr (void *ptr, | 00062280 69 6e 74 20 63 2c 20 3c 73 69 7a 65 5f 74 3e 20 |int c, <size_t> | 00062290 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 72 |n);.Header:.<str| 000622a0 69 6e 67 2e 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a |ing.h=>string>..| 000622b0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000622c0 20 74 6f 20 74 68 65 20 66 6f 75 6e 64 20 63 68 | to the found ch| 000622d0 61 72 61 63 74 65 72 2c 20 6f 72 20 61 20 6e 75 |aracter, or a nu| 000622e0 6c 6c 20 70 6f 69 6e 74 65 72 20 69 66 20 6e 6f |ll pointer if no| 000622f0 74 20 66 6f 75 6e 64 2e 0a 0a 54 68 69 73 20 66 |t found...This f| 00062300 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 65 73 |unction searches| 00062310 20 66 6f 72 20 2f 63 2f 20 28 63 6f 6e 76 65 72 | for /c/ (conver| 00062320 74 65 64 20 74 6f 20 61 6e 20 7b 2f 7d 75 6e 73 |ted to an {/}uns| 00062330 69 67 6e 65 64 20 63 68 61 72 7b 2f 7d 29 20 69 |igned char{/}) i| 00062340 6e 20 74 68 65 20 66 69 72 73 74 20 2f 6e 2f 20 |n the first /n/ | 00062350 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 74 68 |characters of th| 00062360 65 20 6f 62 6a 65 63 74 20 70 6f 69 6e 74 65 64 |e object pointed| 00062370 20 74 6f 20 62 79 20 2f 70 74 72 2f 2e 00 00 00 | to by /ptr/....| 00062380 44 41 54 41 74 01 00 00 6d 65 6d 63 6d 70 0a 53 |DATAt...memcmp.S| 00062390 79 6e 74 61 78 3a 09 69 6e 74 20 6d 65 6d 63 6d |yntax:.int memcm| 000623a0 70 20 28 76 6f 69 64 20 2a 70 74 72 31 2c 20 76 |p (void *ptr1, v| 000623b0 6f 69 64 20 2a 70 74 72 32 2c 20 3c 73 69 7a 65 |oid *ptr2, <size| 000623c0 5f 74 3e 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 |_t> n);.Header:.| 000623d0 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 69 6e |<string.h=>strin| 000623e0 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 47 72 65 |g>..Returns:.Gre| 000623f0 61 74 65 72 20 74 68 61 6e 2c 20 6c 65 73 73 20 |ater than, less | 00062400 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f |than or equal to| 00062410 20 7a 65 72 6f 2c 20 64 65 70 65 6e 64 69 6e 67 | zero, depending| 00062420 20 69 66 20 74 68 65 20 6f 62 6a 65 63 74 20 70 | if the object p| 00062430 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 7b 2f 7d |ointed to by {/}| 00062440 70 74 72 31 7b 2f 7d 20 69 73 20 67 72 65 61 74 |ptr1{/} is great| 00062450 65 72 20 74 68 61 6e 2c 20 6c 65 73 73 20 74 68 |er than, less th| 00062460 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 |an or equal to t| 00062470 68 65 20 6f 62 6a 65 63 74 20 70 6f 69 6e 74 65 |he object pointe| 00062480 64 20 74 6f 20 62 79 20 7b 2f 7d 70 74 72 32 7b |d to by {/}ptr2{| 00062490 2f 7d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |/}...This functi| 000624a0 6f 6e 20 63 6f 6d 70 61 72 65 73 20 74 68 65 20 |on compares the | 000624b0 66 69 72 73 74 20 2f 6e 2f 20 63 68 61 72 61 63 |first /n/ charac| 000624c0 74 65 72 73 20 6f 66 20 65 61 63 68 20 6f 62 6a |ters of each obj| 000624d0 65 63 74 20 61 6e 64 20 72 65 74 75 72 6e 73 20 |ect and returns | 000624e0 61 20 76 61 6c 75 65 20 61 63 63 6f 72 64 69 6e |a value accordin| 000624f0 67 6c 79 2e 44 41 54 41 20 01 00 00 6d 65 6d 63 |gly.DATA ...memc| 00062500 70 79 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |py.Syntax:.void | 00062510 2a 6d 65 6d 63 70 79 20 28 76 6f 69 64 20 2a 70 |*memcpy (void *p| 00062520 74 72 31 2c 20 76 6f 69 64 20 2a 70 74 72 32 2c |tr1, void *ptr2,| 00062530 20 3c 73 69 7a 65 5f 74 3e 20 6e 29 3b 0a 48 65 | <size_t> n);.He| 00062540 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 3d |ader:.<string.h=| 00062550 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 6e |>string>..Return| 00062560 73 3a 09 70 74 72 31 0a 0a 54 68 69 73 20 66 75 |s:.ptr1..This fu| 00062570 6e 63 74 69 6f 6e 20 63 6f 70 69 65 73 20 2f 6e |nction copies /n| 00062580 2f 20 63 68 61 72 61 63 74 65 72 73 20 66 72 6f |/ characters fro| 00062590 6d 20 7b 2f 7d 70 74 72 32 7b 2f 7d 20 74 6f 20 |m {/}ptr2{/} to | 000625a0 7b 2f 7d 70 74 72 31 7b 2f 7d 2e 20 54 68 65 20 |{/}ptr1{/}. The | 000625b0 61 72 65 61 73 20 74 6f 20 62 65 20 63 6f 70 69 |areas to be copi| 000625c0 65 64 20 6d 75 73 74 20 6e 6f 74 20 6f 76 65 72 |ed must not over| 000625d0 6c 61 70 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 |lap. If you want| 000625e0 20 74 6f 20 63 6f 70 79 20 62 65 74 77 65 65 6e | to copy between| 000625f0 20 6f 76 65 72 6c 61 70 70 69 6e 67 20 6f 62 6a | overlapping obj| 00062600 65 63 74 73 2c 20 75 73 65 20 3c 6d 65 6d 6d 6f |ects, use <memmo| 00062610 76 65 3e 2e 44 41 54 41 70 01 00 00 6d 65 6d 6d |ve>.DATAp...memm| 00062620 6f 76 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ove.Syntax:.void| 00062630 20 2a 6d 65 6d 6d 6f 76 65 20 28 76 6f 69 64 20 | *memmove (void | 00062640 2a 70 74 72 31 2c 20 76 6f 69 64 20 2a 70 74 72 |*ptr1, void *ptr| 00062650 32 2c 20 3c 73 69 7a 65 5f 74 3e 20 6e 29 3b 0a |2, <size_t> n);.| 00062660 48 65 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e |Header:.<string.| 00062670 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 |h=>string>..Retu| 00062680 72 6e 73 3a 09 70 74 72 31 0a 0a 54 68 69 73 20 |rns:.ptr1..This | 00062690 66 75 6e 63 74 69 6f 6e 20 63 6f 70 69 65 73 20 |function copies | 000626a0 2f 6e 2f 20 63 68 61 72 61 63 74 65 72 73 20 66 |/n/ characters f| 000626b0 72 6f 6d 20 7b 2f 7d 70 74 72 32 7b 2f 7d 20 74 |rom {/}ptr2{/} t| 000626c0 6f 20 7b 2f 7d 70 74 72 31 7b 2f 7d 2e 20 54 68 |o {/}ptr1{/}. Th| 000626d0 65 20 61 72 65 61 73 20 74 6f 20 62 65 20 63 6f |e areas to be co| 000626e0 70 69 65 64 20 6d 61 79 20 6f 76 65 72 6c 61 70 |pied may overlap| 000626f0 2c 20 62 65 63 61 75 73 65 20 69 74 20 66 69 72 |, because it fir| 00062700 73 74 20 6f 66 20 61 6c 6c 20 63 6f 70 69 65 73 |st of all copies| 00062710 20 66 72 6f 6d 20 7b 2f 7d 70 74 72 32 7b 2f 7d | from {/}ptr2{/}| 00062720 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 | to a temporary | 00062730 62 75 66 66 65 72 20 61 6e 64 20 74 68 65 6e 20 |buffer and then | 00062740 63 6f 70 69 65 73 20 66 72 6f 6d 20 74 68 65 72 |copies from ther| 00062750 65 20 74 6f 20 7b 2f 7d 70 74 72 31 7b 2f 7d 2e |e to {/}ptr1{/}.| 00062760 20 54 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73 | This makes it s| 00062770 6c 6f 77 65 72 20 74 68 61 6e 20 3c 6d 65 6d 63 |lower than <memc| 00062780 70 79 3e 2e 44 41 54 41 e9 00 00 00 4d 65 6d 6f |py>.DATA....Memo| 00062790 72 79 44 75 6d 70 0a 53 79 6e 74 61 78 3a 09 76 |ryDump.Syntax:.v| 000627a0 6f 69 64 20 4d 65 6d 6f 72 79 44 75 6d 70 20 28 |oid MemoryDump (| 000627b0 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |void);.Header:.<| 000627c0 54 69 6d 73 4c 69 62 3a 4d 61 6c 6c 6f 63 44 62 |TimsLib:MallocDb| 000627d0 75 67 2e 68 3d 3e 4d 61 6c 6c 6f 63 44 62 75 67 |ug.h=>MallocDbug| 000627e0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000627f0 20 73 63 61 6e 73 20 74 68 72 6f 75 67 68 20 74 | scans through t| 00062800 68 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 |he memory alloca| 00062810 74 65 64 20 62 79 20 3c 4d 61 6c 6c 6f 63 44 62 |ted by <MallocDb| 00062820 75 67 3d 3e 4d 61 6c 6c 6f 63 44 62 75 67 5f 3e |ug=>MallocDbug_>| 00062830 20 61 6e 64 20 70 72 69 6e 74 73 20 61 20 6c 69 | and prints a li| 00062840 73 74 20 6f 66 20 62 6c 6f 63 6b 73 20 6e 6f 74 |st of blocks not| 00062850 20 64 65 61 6c 6c 6f 63 61 74 65 64 20 77 69 74 | deallocated wit| 00062860 68 20 3c 46 72 65 65 44 62 75 67 3e 2e 00 00 00 |h <FreeDbug>....| 00062870 44 41 54 41 f7 00 00 00 6d 65 6d 73 65 74 0a 53 |DATA....memset.S| 00062880 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a 6d 65 6d |yntax:.void *mem| 00062890 73 65 74 20 28 76 6f 69 64 20 2a 70 74 72 2c 20 |set (void *ptr, | 000628a0 69 6e 74 20 63 2c 20 3c 73 69 7a 65 5f 74 3e 20 |int c, <size_t> | 000628b0 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 72 |n);.Header:.<str| 000628c0 69 6e 67 2e 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a |ing.h=>string>..| 000628d0 52 65 74 75 72 6e 73 3a 09 70 74 72 0a 0a 54 68 |Returns:.ptr..Th| 000628e0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 000628f0 20 74 68 65 20 66 69 72 73 74 20 2f 6e 2f 20 63 | the first /n/ c| 00062900 68 61 72 61 63 74 65 72 73 20 6f 66 20 74 68 65 |haracters of the| 00062910 20 6f 62 6a 65 63 74 20 70 6f 69 6e 74 65 64 20 | object pointed | 00062920 74 6f 20 62 79 20 2f 70 74 72 2f 2c 20 74 6f 20 |to by /ptr/, to | 00062930 74 68 65 20 76 61 6c 75 65 20 69 6e 20 2f 63 2f |the value in /c/| 00062940 20 28 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 | (converted to a| 00062950 6e 20 7b 2f 7d 75 6e 73 69 67 6e 65 64 20 63 68 |n {/}unsigned ch| 00062960 61 72 7b 2f 7d 29 2e 00 44 41 54 41 d9 01 00 00 |ar{/})..DATA....| 00062970 6d 65 6e 75 0a 54 68 65 20 74 79 70 65 20 6d 65 |menu.The type me| 00062980 6e 75 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |nu is defined in| 00062990 20 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e 75 5f 68 | <menu.h=>menu_h| 000629a0 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 20 61 6e |> (Desktop C) an| 000629b0 64 20 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e |d <TimsLib:Menu.| 000629c0 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 20 61 73 20 61 |h=>Menu_TL> as a| 000629d0 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 000629e0 20 68 6f 6c 64 69 6e 67 20 61 6e 20 61 62 73 74 | holding an abst| 000629f0 72 61 63 74 20 6d 65 6e 75 20 68 61 6e 64 6c 65 |ract menu handle| 00062a00 2e 20 49 6e 20 44 65 73 6b 74 6f 70 20 43 20 69 |. In Desktop C i| 00062a10 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 |t is defined as | 00062a20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 |the following st| 00062a30 72 75 63 74 75 72 65 3a 0a 0a 5c 7b 0a 20 20 20 |ructure:..\{. | 00062a40 20 3c 77 69 6d 70 5f 6d 65 6e 75 68 64 72 3e 20 | <wimp_menuhdr> | 00062a50 2a 6d 3b 09 2f 2a 20 54 68 65 20 61 63 74 75 61 |*m;./* The actua| 00062a60 6c 20 6d 65 6e 75 20 2a 2f 0a 20 20 20 20 69 6e |l menu */. in| 00062a70 74 20 6e 69 74 65 6d 73 3b 0a 20 20 20 20 76 6f |t nitems;. vo| 00062a80 69 64 20 2a 65 6e 74 72 79 73 70 61 63 65 3b 09 |id *entryspace;.| 00062a90 2f 2a 20 53 75 62 6d 65 6e 75 73 2f 49 6e 64 69 |/* Submenus/Indi| 00062aa0 72 65 63 74 65 64 20 2a 2f 0a 20 20 20 20 69 6e |rected */. in| 00062ab0 74 20 6e 62 79 74 65 73 3b 0a 20 20 20 20 69 6e |t nbytes;. in| 00062ac0 74 20 6d 61 78 65 6e 74 72 79 77 69 64 74 68 3b |t maxentrywidth;| 00062ad0 0a 7d 0a 0a 61 6e 64 20 69 6e 20 54 69 6d 73 4c |.}..and in TimsL| 00062ae0 69 62 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 |ib it is defined| 00062af0 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2c 20 61 6c | as an /int/, al| 00062b00 74 68 6f 75 67 68 20 69 74 20 63 61 6e 20 62 65 |though it can be| 00062b10 20 63 61 73 74 20 61 73 20 61 20 3c 6d 65 6e 75 | cast as a <menu| 00062b20 5f 70 74 72 3e 20 66 6f 72 20 6c 6f 77 2d 6c 65 |_ptr> for low-le| 00062b30 76 65 6c 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e |vel manipulation| 00062b40 2e 00 00 00 44 49 52 24 e4 08 00 00 e4 08 00 00 |....DIR$........| 00062b50 28 34 06 00 46 ff ff ff 87 7f 57 26 0f 01 00 00 |(4..F.....W&....| 00062b60 13 00 00 00 00 00 00 00 41 64 64 44 69 61 6c 6f |........AddDialo| 00062b70 67 42 6f 78 00 00 00 00 38 35 06 00 46 ff ff ff |gBox....85..F...| 00062b80 0a c5 57 26 60 01 00 00 13 00 00 00 00 00 00 00 |..W&`...........| 00062b90 41 64 64 44 79 6e 61 6d 69 63 44 69 61 6c 6f 67 |AddDynamicDialog| 00062ba0 42 6f 78 00 98 36 06 00 46 ff ff ff 23 ca 41 25 |Box..6..F...#.A%| 00062bb0 e4 00 00 00 13 00 00 00 00 00 00 00 41 64 64 53 |............AddS| 00062bc0 75 62 4d 65 6e 75 00 00 7c 37 06 00 46 ff ff ff |ubMenu..|7..F...| 00062bd0 85 eb 57 26 07 01 00 00 13 00 00 00 00 00 00 00 |..W&............| 00062be0 61 64 6a 75 73 74 5f 70 72 65 73 73 65 64 00 00 |adjust_pressed..| 00062bf0 84 38 06 00 46 ff ff ff b4 ae 57 26 e8 01 00 00 |.8..F.....W&....| 00062c00 13 00 00 00 00 00 00 00 41 74 74 61 63 68 4d 65 |........AttachMe| 00062c10 6e 75 00 00 6c 3a 06 00 46 ff ff ff 17 be 57 26 |nu..l:..F.....W&| 00062c20 73 02 00 00 13 00 00 00 00 00 00 00 41 74 74 61 |s...........Atta| 00062c30 63 68 4d 65 6e 75 4d 61 6b 65 72 00 e0 3c 06 00 |chMenuMaker..<..| 00062c40 46 ff ff ff e4 f2 45 26 20 02 00 00 13 00 00 00 |F.....E& .......| 00062c50 00 00 00 00 62 6c 6f 63 6b 00 00 00 00 3f 06 00 |....block....?..| 00062c60 46 ff ff ff b8 34 42 25 2d 01 00 00 13 00 00 00 |F....4B%-.......| 00062c70 00 00 00 00 43 61 6c 63 48 65 69 67 68 74 00 00 |....CalcHeight..| 00062c80 30 40 06 00 46 ff ff ff 1a 5c 57 26 5f 01 00 00 |0@..F....\W&_...| 00062c90 13 00 00 00 00 00 00 00 43 6f 6c 6f 75 72 4d 65 |........ColourMe| 00062ca0 6e 75 00 00 90 41 06 00 46 ff ff ff f1 f1 57 26 |nu...A..F.....W&| 00062cb0 cb 00 00 00 13 00 00 00 00 00 00 00 63 75 72 72 |............curr| 00062cc0 65 6e 74 5f 69 63 6f 6e 00 00 00 00 5c 42 06 00 |ent_icon....\B..| 00062cd0 46 ff ff ff 7f ee 57 26 d1 00 00 00 13 00 00 00 |F.....W&........| 00062ce0 00 00 00 00 63 75 72 72 65 6e 74 5f 77 69 6e 64 |....current_wind| 00062cf0 6f 77 00 00 30 43 06 00 46 ff ff ff b3 81 43 25 |ow..0C..F.....C%| 00062d00 a2 00 00 00 13 00 00 00 00 00 00 00 63 75 72 72 |............curr| 00062d10 65 6e 74 6f 70 65 6e 00 d4 43 06 00 46 ff ff ff |entopen..C..F...| 00062d20 b3 7c 43 25 b1 00 00 00 13 00 00 00 00 00 00 00 |.|C%............| 00062d30 63 75 72 72 65 6e 74 70 6f 73 00 00 88 44 06 00 |currentpos...D..| 00062d40 46 fd ff ff a1 25 41 25 a0 01 00 00 13 00 00 00 |F....%A%........| 00062d50 00 00 00 00 64 65 73 63 5f 00 00 00 28 46 06 00 |....desc_...(F..| 00062d60 46 ff ff ff da cc 57 26 6f 01 00 00 13 00 00 00 |F.....W&o.......| 00062d70 00 00 00 00 44 65 74 61 63 68 4d 65 6e 75 00 00 |....DetachMenu..| 00062d80 98 47 06 00 46 ff ff ff 8a 1a b1 24 48 01 00 00 |.G..F......$H...| 00062d90 13 00 00 00 00 00 00 00 64 69 73 70 6f 73 65 00 |........dispose.| 00062da0 e0 48 06 00 46 ff ff ff 42 38 41 25 81 01 00 00 |.H..F...B8A%....| 00062db0 13 00 00 00 00 00 00 00 45 78 74 65 6e 64 00 00 |........Extend..| 00062dc0 64 4a 06 00 46 ff ff ff ab 22 b1 24 06 01 00 00 |dJ..F....".$....| 00062dd0 13 00 00 00 00 00 00 00 65 78 74 65 6e 64 5f 00 |........extend_.| 00062de0 6c 4b 06 00 46 ff ff ff a9 8c 57 26 af 00 00 00 |lK..F.....W&....| 00062df0 13 00 00 00 00 00 00 00 46 61 64 65 45 6e 74 72 |........FadeEntr| 00062e00 79 00 00 00 1c 4c 06 00 46 ff ff ff 11 9f 45 26 |y....L..F.....E&| 00062e10 2f 04 00 00 13 00 00 00 00 00 00 00 66 6c 61 67 |/...........flag| 00062e20 73 00 00 00 4c 50 06 00 46 ff ff ff ff 22 42 25 |s...LP..F...."B%| 00062e30 23 01 00 00 13 00 00 00 00 00 00 00 47 65 74 46 |#...........GetF| 00062e40 6c 61 67 73 00 00 00 00 70 51 06 00 46 ff ff ff |lags....pQ..F...| 00062e50 e5 2e 42 25 cf 00 00 00 13 00 00 00 00 00 00 00 |..B%............| 00062e60 47 65 74 54 65 78 74 00 40 52 06 00 46 ff ff ff |GetText.@R..F...| 00062e70 0d 0b b1 24 7f 01 00 00 13 00 00 00 00 00 00 00 |...$............| 00062e80 68 00 00 00 c0 53 06 00 46 ff ff ff 58 db 57 26 |h....S..F...X.W&| 00062e90 3c 01 00 00 13 00 00 00 00 00 00 00 68 61 6e 64 |<...........hand| 00062ea0 6c 65 72 00 fc 54 06 00 46 ff ff ff a0 d6 45 26 |ler..T..F.....E&| 00062eb0 11 02 00 00 13 00 00 00 00 00 00 00 69 74 65 6d |............item| 00062ec0 00 00 00 00 10 57 06 00 46 ff ff ff 28 2f b1 24 |.....W..F...(/.$| 00062ed0 25 01 00 00 13 00 00 00 00 00 00 00 6d 61 6b 65 |%...........make| 00062ee0 5f 73 70 72 69 74 65 00 38 58 06 00 46 ff ff ff |_sprite.8X..F...| 00062ef0 45 3e b1 24 74 01 00 00 13 00 00 00 00 00 00 00 |E>.$t...........| 00062f00 6d 61 6b 65 5f 77 72 69 74 65 61 62 6c 65 00 00 |make_writeable..| 00062f10 ac 59 06 00 46 ff ff ff 26 e4 57 26 27 01 00 00 |.Y..F...&.W&'...| 00062f20 13 00 00 00 00 00 00 00 6d 61 6b 65 72 00 00 00 |........maker...| 00062f30 d4 5a 06 00 46 ff ff ff 4e 03 42 25 b5 01 00 00 |.Z..F...N.B%....| 00062f40 13 00 00 00 00 00 00 00 4d 61 6b 65 57 72 69 74 |........MakeWrit| 00062f50 61 62 6c 65 00 00 00 00 8c 5c 06 00 46 ff ff ff |able.....\..F...| 00062f60 f3 11 41 25 53 02 00 00 13 00 00 00 00 00 00 00 |..A%S...........| 00062f70 4e 65 77 00 e0 5e 06 00 46 fd ff ff a6 50 b1 24 |New..^..F....P.$| 00062f80 bd 01 00 00 13 00 00 00 00 00 00 00 6e 65 77 5f |............new_| 00062f90 00 00 00 00 a0 60 06 00 46 fd ff ff f4 4a 57 26 |.....`..F....JW&| 00062fa0 6b 01 00 00 13 00 00 00 00 00 00 00 4e 65 77 5f |k...........New_| 00062fb0 5f 00 00 00 0c 62 06 00 46 ff ff ff 9c e6 47 23 |_....b..F.....G#| 00062fc0 62 00 00 00 13 00 00 00 00 00 00 00 70 74 72 00 |b...........ptr.| 00062fd0 70 62 06 00 46 ff ff ff c8 6b 42 25 fb 00 00 00 |pb..F....kB%....| 00062fe0 13 00 00 00 00 00 00 00 52 65 6d 6f 76 65 49 74 |........RemoveIt| 00062ff0 65 6d 00 00 6c 63 06 00 46 ff ff ff f6 48 42 25 |em..lc..F....HB%| 00063000 05 01 00 00 13 00 00 00 00 00 00 00 53 44 69 73 |............SDis| 00063010 70 6f 73 65 00 00 00 00 74 64 06 00 46 ff ff ff |pose....td..F...| 00063020 07 f5 57 26 1a 01 00 00 13 00 00 00 00 00 00 00 |..W&............| 00063030 73 65 6c 65 63 74 69 6f 6e 00 00 00 90 65 06 00 |selection....e..| 00063040 46 ff ff ff fd 15 42 25 90 01 00 00 13 00 00 00 |F.....B%........| 00063050 00 00 00 00 53 65 74 46 6c 61 67 73 00 00 00 00 |....SetFlags....| 00063060 20 67 06 00 46 ff ff ff 76 63 b1 24 61 01 00 00 | g..F...vc.$a...| 00063070 13 00 00 00 00 00 00 00 73 65 74 66 6c 61 67 73 |........setflags| 00063080 5f 00 00 00 84 68 06 00 46 ff ff ff f1 28 42 25 |_....h..F....(B%| 00063090 cf 00 00 00 13 00 00 00 00 00 00 00 53 65 74 54 |............SetT| 000630a0 65 78 74 00 54 69 06 00 46 ff ff ff 91 47 41 25 |ext.Ti..F....GA%| 000630b0 3f 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |?...........Show| 000630c0 00 00 00 00 94 6a 06 00 46 fd ff ff 81 99 57 26 |.....j..F.....W&| 000630d0 50 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |P...........Show| 000630e0 5f 00 00 00 e4 6b 06 00 46 ff ff ff a7 4f 41 25 |_....k..F....OA%| 000630f0 00 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |............Show| 00063100 4c 61 73 74 00 00 00 00 e4 6c 06 00 46 ff ff ff |Last.....l..F...| 00063110 3c 72 b1 24 b0 01 00 00 13 00 00 00 00 00 00 00 |<r.$............| 00063120 73 75 62 6d 65 6e 75 00 94 6e 06 00 46 fd ff ff |submenu..n..F...| 00063130 a7 b4 45 26 69 01 00 00 13 00 00 00 00 00 00 00 |..E&i...........| 00063140 73 75 62 6d 65 6e 75 5f 00 00 00 00 00 70 06 00 |submenu_.....p..| 00063150 46 ff ff ff 45 f8 57 26 e9 00 00 00 13 00 00 00 |F...E.W&........| 00063160 00 00 00 00 73 75 62 6d 65 6e 75 70 6f 73 00 00 |....submenupos..| 00063170 ec 70 06 00 46 ff ff ff 16 82 b1 24 fc 00 00 00 |.p..F......$....| 00063180 13 00 00 00 00 00 00 00 73 79 73 68 61 6e 64 6c |........syshandl| 00063190 65 00 00 00 e8 71 06 00 46 fd ff ff bf 42 42 25 |e....q..F....BB%| 000631a0 3b 01 00 00 13 00 00 00 00 00 00 00 53 79 73 48 |;...........SysH| 000631b0 61 6e 64 6c 65 5f 00 00 24 73 06 00 46 ff ff ff |andle_..$s..F...| 000631c0 6d a2 57 26 39 01 00 00 13 00 00 00 00 00 00 00 |m.W&9...........| 000631d0 53 79 73 48 61 6e 64 6c 65 5f 5f 00 60 74 06 00 |SysHandle__.`t..| 000631e0 46 ff ff ff be 85 57 26 ae 00 00 00 13 00 00 00 |F.....W&........| 000631f0 00 00 00 00 54 69 63 6b 45 6e 74 72 79 00 00 00 |....TickEntry...| 00063200 10 75 06 00 46 ff ff ff ae e0 7f 2c 8b 03 00 00 |.u..F......,....| 00063210 13 00 00 00 00 00 00 00 54 4c 00 00 9c 78 06 00 |........TL...x..| 00063220 46 ff ff ff 5c 90 57 26 b5 00 00 00 13 00 00 00 |F...\.W&........| 00063230 00 00 00 00 55 6e 46 61 64 65 45 6e 74 72 79 00 |....UnFadeEntry.| 00063240 54 79 06 00 46 ff ff ff af 89 57 26 b4 00 00 00 |Ty..F.....W&....| 00063250 13 00 00 00 00 00 00 00 55 6e 54 69 63 6b 45 6e |........UnTickEn| 00063260 74 72 79 00 08 7a 06 00 46 ff ff ff b7 73 42 25 |try..z..F....sB%| 00063270 74 01 00 00 13 00 00 00 00 00 00 00 57 61 72 6e |t...........Warn| 00063280 00 00 00 00 7c 7b 06 00 46 ff ff ff cc 8c 41 25 |....|{..F.....A%| 00063290 ee 00 00 00 13 00 00 00 00 00 00 00 50 6f 70 55 |............PopU| 000632a0 70 00 00 00 6c 7c 06 00 46 ff ff ff 8a bb 41 25 |p...l|..F.....A%| 000632b0 19 01 00 00 13 00 00 00 00 00 00 00 50 6f 70 55 |............PopU| 000632c0 70 41 75 74 6f 00 00 00 88 7d 06 00 46 ff ff ff |pAuto....}..F...| 000632d0 c3 f3 41 25 ff 00 00 00 13 00 00 00 00 00 00 00 |..A%............| 000632e0 4d 61 6b 65 49 6e 64 69 72 65 63 74 65 64 00 00 |MakeIndirected..| 000632f0 88 7e 06 00 46 ff ff ff b3 63 42 25 ef 00 00 00 |.~..F....cB%....| 00063300 13 00 00 00 00 00 00 00 46 75 6c 6c 44 69 73 70 |........FullDisp| 00063310 6f 73 65 00 78 7f 06 00 46 ff ff ff 01 95 42 25 |ose.x...F.....B%| 00063320 fe 00 00 00 13 00 00 00 00 00 00 00 52 65 76 69 |............Revi| 00063330 73 65 57 69 64 74 68 00 78 80 06 00 46 ff ff ff |seWidth.x...F...| 00063340 70 06 43 25 a1 01 00 00 13 00 00 00 00 00 00 00 |p.C%............| 00063350 46 6f 6e 74 4d 65 6e 75 00 00 00 00 1c 82 06 00 |FontMenu........| 00063360 46 ff ff ff 0a 0d 43 25 86 01 00 00 13 00 00 00 |F.....C%........| 00063370 00 00 00 00 46 6f 6e 74 4d 65 6e 75 33 00 00 00 |....FontMenu3...| 00063380 a4 83 06 00 46 ff ff ff 82 28 43 25 2b 01 00 00 |....F....(C%+...| 00063390 13 00 00 00 00 00 00 00 46 6f 6e 74 4d 65 6e 75 |........FontMenu| 000633a0 44 65 63 6f 64 65 00 00 d0 84 06 00 46 ff ff ff |Decode......F...| 000633b0 59 2f 43 25 02 01 00 00 13 00 00 00 00 00 00 00 |Y/C%............| 000633c0 46 6f 6e 74 4d 65 6e 75 44 65 63 6f 64 65 33 00 |FontMenuDecode3.| 000633d0 d4 85 06 00 46 ff ff ff 46 66 43 25 a2 00 00 00 |....F...FfC%....| 000633e0 13 00 00 00 00 00 00 00 46 6f 6e 74 4d 65 6e 75 |........FontMenu| 000633f0 5f 4e 4f 54 49 43 4b 00 78 86 06 00 46 ff ff ff |_NOTICK.x...F...| 00063400 ff 70 43 25 c1 00 00 00 13 00 00 00 00 00 00 00 |.pC%............| 00063410 46 6f 6e 74 4d 65 6e 75 5f 54 49 43 4b 53 59 53 |FontMenu_TICKSYS| 00063420 46 4f 4e 54 00 00 00 00 44 41 54 41 0f 01 00 00 |FONT....DATA....| 00063430 4d 65 6e 75 5f 41 64 64 44 69 61 6c 6f 67 42 6f |Menu_AddDialogBo| 00063440 78 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d |x.Syntax:.void M| 00063450 65 6e 75 5f 41 64 64 44 69 61 6c 6f 67 42 6f 78 |enu_AddDialogBox| 00063460 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e 74 20 | (<menu> m, int | 00063470 65 6e 74 72 79 2c 20 3c 77 69 6e 64 6f 77 5f 68 |entry, <window_h| 00063480 61 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a 48 65 61 |andle> win);.Hea| 00063490 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4d 65 |der:.<TimsLib:Me| 000634a0 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 0a 0a |nu.h=>Menu_TL>..| 000634b0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 74 |This function at| 000634c0 74 61 63 68 65 73 20 61 20 77 69 6e 64 6f 77 20 |taches a window | 000634d0 77 68 6f 73 65 20 68 61 6e 64 6c 65 20 69 73 20 |whose handle is | 000634e0 67 69 76 65 6e 20 69 6e 20 2f 77 69 6e 2f 20 61 |given in /win/ a| 000634f0 73 20 61 20 73 75 62 6d 65 6e 75 20 69 74 65 6d |s a submenu item| 00063500 20 28 64 69 61 6c 6f 67 75 65 20 62 6f 78 29 20 | (dialogue box) | 00063510 74 6f 20 74 68 65 20 6d 65 6e 75 20 2f 6d 2f 20 |to the menu /m/ | 00063520 61 74 20 74 68 65 20 65 6e 74 72 79 20 73 70 65 |at the entry spe| 00063530 63 69 66 69 65 64 2e 00 44 41 54 41 60 01 00 00 |cified..DATA`...| 00063540 4d 65 6e 75 5f 41 64 64 44 79 6e 61 6d 69 63 44 |Menu_AddDynamicD| 00063550 69 61 6c 6f 67 42 6f 78 0a 53 79 6e 74 61 78 3a |ialogBox.Syntax:| 00063560 09 76 6f 69 64 20 4d 65 6e 75 5f 41 64 64 44 79 |.void Menu_AddDy| 00063570 6e 61 6d 69 63 44 69 61 6c 6f 67 42 6f 78 20 28 |namicDialogBox (| 00063580 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 00063590 77 69 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 |win);.Header:.<T| 000635a0 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d |imsLib:Menu.h=>M| 000635b0 65 6e 75 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 |enu_TL>..This fu| 000635c0 6e 63 74 69 6f 6e 20 73 68 6f 77 73 20 61 20 77 |nction shows a w| 000635d0 69 6e 64 6f 77 20 61 73 20 61 20 64 69 61 6c 6f |indow as a dialo| 000635e0 67 75 65 20 62 6f 78 2e 20 49 74 20 73 68 6f 75 |gue box. It shou| 000635f0 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 |ld only be calle| 00063600 64 20 62 79 20 61 20 6d 65 6e 75 20 73 65 6c 65 |d by a menu sele| 00063610 63 74 69 6f 6e 20 68 61 6e 64 6c 65 72 20 77 68 |ction handler wh| 00063620 65 6e 20 61 20 6d 65 6e 75 20 77 61 72 6e 69 6e |en a menu warnin| 00063630 67 20 6d 65 73 73 61 67 65 20 69 73 20 72 65 63 |g message is rec| 00063640 65 69 76 65 64 2e 20 54 68 65 20 68 61 6e 64 6c |eived. The handl| 00063650 65 72 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 |er should create| 00063660 20 74 68 65 20 77 69 6e 64 6f 77 20 6e 65 65 64 | the window need| 00063670 65 64 20 61 6e 64 20 70 61 73 73 20 69 74 73 20 |ed and pass its | 00063680 68 61 6e 64 6c 65 20 74 6f 20 74 68 69 73 20 66 |handle to this f| 00063690 75 6e 63 74 69 6f 6e 2e 44 41 54 41 e4 00 00 00 |unction.DATA....| 000636a0 4d 65 6e 75 5f 41 64 64 53 75 62 4d 65 6e 75 0a |Menu_AddSubMenu.| 000636b0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 6e |Syntax:.void Men| 000636c0 75 5f 41 64 64 53 75 62 4d 65 6e 75 20 28 3c 6d |u_AddSubMenu (<m| 000636d0 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 2c 20 69 |enu_ptr> menu, i| 000636e0 6e 74 20 65 6e 74 72 79 2c 20 6d 65 6e 75 5f 70 |nt entry, menu_p| 000636f0 74 72 20 73 75 62 6d 65 6e 75 29 3b 0a 48 65 61 |tr submenu);.Hea| 00063700 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 |der:.<DeskLib:Me| 00063710 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a 0a |nu.h=>DL_Menu>..| 00063720 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 64 |This function ad| 00063730 64 73 20 61 20 73 75 62 6d 65 6e 75 20 74 6f 20 |ds a submenu to | 00063740 65 78 69 73 74 69 6e 67 20 6d 65 6e 75 20 61 74 |existing menu at| 00063750 20 70 6f 73 69 74 69 6f 6e 20 2f 65 6e 74 72 79 | position /entry| 00063760 2f 20 28 74 68 65 20 66 69 72 73 74 20 65 6e 74 |/ (the first ent| 00063770 72 79 20 62 65 69 6e 67 20 30 29 2e 44 41 54 41 |ry being 0).DATA| 00063780 07 01 00 00 6d 65 6e 75 5f 61 64 6a 75 73 74 5f |....menu_adjust_| 00063790 70 72 65 73 73 65 64 0a 54 68 69 73 20 76 61 72 |pressed.This var| 000637a0 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 3c 42 |iable of type <B| 000637b0 4f 4f 4c 3e 20 69 73 20 64 65 66 69 6e 65 64 20 |OOL> is defined | 000637c0 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e 75 |in <TimsLib:Menu| 000637d0 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 2e 20 49 74 |.h=>Menu_TL>. It| 000637e0 20 63 6f 6e 74 61 69 6e 73 20 3c 54 52 55 45 3e | contains <TRUE>| 000637f0 20 69 66 20 74 68 65 20 6d 65 6e 75 20 69 73 20 | if the menu is | 00063800 62 65 69 6e 67 20 73 68 6f 77 6e 20 62 65 63 61 |being shown beca| 00063810 75 73 65 20 69 74 20 69 73 20 62 65 69 6e 67 20 |use it is being | 00063820 72 65 63 72 65 61 74 65 64 20 64 75 65 20 74 6f |recreated due to| 00063830 20 61 6e 20 61 64 6a 75 73 74 20 63 6c 69 63 6b | an adjust click| 00063840 2e 20 41 20 6d 65 6e 75 20 6d 61 6b 65 72 20 63 |. A menu maker c| 00063850 61 6e 20 73 65 74 20 74 68 69 73 20 74 6f 20 3c |an set this to <| 00063860 46 41 4c 53 45 3e 20 74 6f 20 70 72 65 76 65 6e |FALSE> to preven| 00063870 74 20 74 68 65 20 6d 65 6e 75 20 6f 70 65 6e 69 |t the menu openi| 00063880 6e 67 2e 00 44 41 54 41 e8 01 00 00 4d 65 6e 75 |ng..DATA....Menu| 00063890 5f 41 74 74 61 63 68 4d 65 6e 75 0a 53 79 6e 74 |_AttachMenu.Synt| 000638a0 61 78 3a 09 3c 42 4f 4f 4c 3e 20 4d 65 6e 75 5f |ax:.<BOOL> Menu_| 000638b0 41 74 74 61 63 68 4d 65 6e 75 20 28 3c 6d 65 6e |AttachMenu (<men| 000638c0 75 3e 20 6d 2c 20 3c 77 69 6e 64 6f 77 5f 68 61 |u> m, <window_ha| 000638d0 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e |ndle> win, <icon| 000638e0 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e 2c 20 3c |_handle> icon, <| 000638f0 6d 65 6e 75 5f 68 61 6e 64 6c 65 72 3e 20 68 61 |menu_handler> ha| 00063900 6e 64 6c 65 72 2c 20 76 6f 69 64 20 2a 72 65 66 |ndler, void *ref| 00063910 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 00063920 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 |Lib:Menu.h=>Menu| 00063930 5f 54 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c |_TL>..Returns:.<| 00063940 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 73 |TRUE> if success| 00063950 66 75 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ful...This funct| 00063960 69 6f 6e 20 61 74 74 61 63 68 65 73 20 61 20 6d |ion attaches a m| 00063970 65 6e 75 20 74 6f 20 61 20 70 61 72 74 69 63 75 |enu to a particu| 00063980 6c 61 72 20 77 69 6e 64 6f 77 20 61 6e 64 20 69 |lar window and i| 00063990 63 6f 6e 2e 20 45 69 74 68 65 72 20 6f 66 20 74 |con. Either of t| 000639a0 68 65 73 65 20 63 61 6e 20 62 65 20 7b 2a 7d 65 |hese can be {*}e| 000639b0 76 65 6e 74 5f 41 4e 59 7b 2a 7d 20 69 66 20 74 |vent_ANY{*} if t| 000639c0 68 65 79 20 61 72 65 20 72 65 71 75 69 72 65 64 |hey are required| 000639d0 20 74 6f 20 62 65 20 6e 6f 6e 2d 73 70 65 63 69 | to be non-speci| 000639e0 66 69 63 2e 20 54 68 65 20 6d 65 6e 75 20 2f 6d |fic. The menu /m| 000639f0 2f 20 77 69 6c 6c 20 62 65 20 73 68 6f 77 6e 20 |/ will be shown | 00063a00 77 68 65 6e 65 76 65 72 20 74 68 65 20 75 73 65 |whenever the use| 00063a10 72 20 63 6c 69 63 6b 73 20 69 6e 20 74 68 65 20 |r clicks in the | 00063a20 70 6c 61 63 65 73 20 73 70 65 63 69 66 69 65 64 |places specified| 00063a30 2e 20 41 20 73 65 6c 65 63 74 69 6f 6e 20 6f 66 |. A selection of| 00063a40 66 20 74 68 65 20 6d 65 6e 75 20 77 69 6c 6c 20 |f the menu will | 00063a50 62 65 20 68 61 6e 64 6c 65 64 20 62 79 20 74 68 |be handled by th| 00063a60 65 20 2f 68 61 6e 64 6c 65 72 2f 2e 44 41 54 41 |e /handler/.DATA| 00063a70 73 02 00 00 4d 65 6e 75 5f 41 74 74 61 63 68 4d |s...Menu_AttachM| 00063a80 65 6e 75 4d 61 6b 65 72 0a 53 79 6e 74 61 78 3a |enuMaker.Syntax:| 00063a90 09 3c 42 4f 4f 4c 3e 20 4d 65 6e 75 5f 41 74 74 |.<BOOL> Menu_Att| 00063aa0 61 63 68 4d 65 6e 75 4d 61 6b 65 72 20 28 3c 6d |achMenuMaker (<m| 00063ab0 65 6e 75 5f 6d 61 6b 65 72 3e 20 6d 61 6b 65 72 |enu_maker> maker| 00063ac0 2c 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 |, <window_handle| 00063ad0 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e |> win, <icon_han| 00063ae0 64 6c 65 3e 20 69 63 6f 6e 2c 20 3c 6d 65 6e 75 |dle> icon, <menu| 00063af0 5f 68 61 6e 64 6c 65 72 3e 20 68 61 6e 64 6c 65 |_handler> handle| 00063b00 72 2c 20 76 6f 69 64 20 2a 72 65 66 29 3b 0a 48 |r, void *ref);.H| 00063b10 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a |eader:.<TimsLib:| 00063b20 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e |Menu.h=>Menu_TL>| 00063b30 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 |..Returns:.<TRUE| 00063b40 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e |> if successful.| 00063b50 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00063b60 61 74 74 61 63 68 65 73 20 61 20 6d 65 6e 75 20 |attaches a menu | 00063b70 74 6f 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 |to a particular | 00063b80 77 69 6e 64 6f 77 20 61 6e 64 20 69 63 6f 6e 2e |window and icon.| 00063b90 20 48 6f 77 65 76 65 72 2c 20 75 6e 6c 69 6b 65 | However, unlike| 00063ba0 20 3c 4d 65 6e 75 5f 41 74 74 61 63 68 4d 65 6e | <Menu_AttachMen| 00063bb0 75 3e 2c 20 61 20 6e 65 77 20 6d 65 6e 75 20 69 |u>, a new menu i| 00063bc0 73 20 63 72 65 61 74 65 64 20 75 73 69 6e 67 20 |s created using | 00063bd0 74 68 65 20 2f 6d 61 6b 65 72 2f 20 72 61 74 68 |the /maker/ rath| 00063be0 65 72 20 74 68 61 6e 20 61 6e 20 65 78 69 73 74 |er than an exist| 00063bf0 69 6e 67 20 6d 65 6e 75 20 73 68 6f 77 6e 2e 20 |ing menu shown. | 00063c00 45 69 74 68 65 72 20 6f 66 20 74 68 65 73 65 20 |Either of these | 00063c10 63 61 6e 20 62 65 20 7b 2a 7d 65 76 65 6e 74 5f |can be {*}event_| 00063c20 41 4e 59 7b 2a 7d 20 69 66 20 74 68 65 79 20 61 |ANY{*} if they a| 00063c30 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 |re required to b| 00063c40 65 20 6e 6f 6e 2d 73 70 65 63 69 66 69 63 2e 20 |e non-specific. | 00063c50 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 2f 6d 61 |The function /ma| 00063c60 6b 65 72 2f 20 77 69 6c 6c 20 62 65 20 73 68 6f |ker/ will be sho| 00063c70 77 6e 20 77 68 65 6e 65 76 65 72 20 74 68 65 20 |wn whenever the | 00063c80 75 73 65 72 20 63 6c 69 63 6b 73 20 69 6e 20 74 |user clicks in t| 00063c90 68 65 20 70 6c 61 63 65 73 20 73 70 65 63 69 66 |he places specif| 00063ca0 69 65 64 2e 20 41 20 73 65 6c 65 63 74 69 6f 6e |ied. A selection| 00063cb0 20 6f 66 66 20 74 68 65 20 6d 65 6e 75 20 77 69 | off the menu wi| 00063cc0 6c 6c 20 62 65 20 68 61 6e 64 6c 65 64 20 62 79 |ll be handled by| 00063cd0 20 74 68 65 20 2f 68 61 6e 64 6c 65 72 2f 2e 00 | the /handler/..| 00063ce0 44 41 54 41 20 02 00 00 6d 65 6e 75 5f 62 6c 6f |DATA ...menu_blo| 00063cf0 63 6b 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |ck.This type is | 00063d00 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 00063d10 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 |Lib:Wimp.h=>Wimp| 00063d20 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 00063d30 74 75 72 65 20 68 6f 6c 64 69 6e 67 20 61 20 63 |ture holding a c| 00063d40 6f 6d 70 6c 65 74 65 20 6d 65 6e 75 20 68 65 61 |omplete menu hea| 00063d50 64 65 72 20 28 61 70 61 72 74 20 66 72 6f 6d 20 |der (apart from | 00063d60 74 68 65 20 6d 65 6e 75 20 69 74 65 6d 73 29 3a |the menu items):| 00063d70 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 09 |.. \{. char.| 00063d80 74 69 74 6c 65 20 5b 77 69 6d 70 5f 4d 41 58 4e |title [wimp_MAXN| 00063d90 41 4d 45 5d 3b 0a 20 20 20 20 63 68 61 72 09 74 |AME];. char.t| 00063da0 69 74 6c 65 66 6f 72 65 2c 74 69 74 6c 65 62 61 |itlefore,titleba| 00063db0 63 6b 3b 0a 20 20 20 20 63 68 61 72 09 77 6f 72 |ck;. char.wor| 00063dc0 6b 66 6f 72 65 2c 77 6f 72 6b 62 61 63 6b 3b 0a |kfore,workback;.| 00063dd0 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 00063de0 09 77 69 64 74 68 3b 0a 20 20 20 20 75 6e 73 69 |.width;. unsi| 00063df0 67 6e 65 64 20 69 6e 74 09 68 65 69 67 68 74 3b |gned int.height;| 00063e00 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e |. unsigned in| 00063e10 74 09 67 61 70 3b 0a 20 20 7d 0a 0a 54 68 69 73 |t.gap;. }..This| 00063e20 20 73 68 6f 75 6c 64 20 62 65 20 69 6d 6d 65 64 | should be immed| 00063e30 69 61 74 65 6c 79 20 66 6f 6c 6c 6f 77 65 64 20 |iately followed | 00063e40 69 6e 20 6d 65 6d 6f 72 79 20 62 79 20 74 68 65 |in memory by the| 00063e50 20 3c 6d 65 6e 75 5f 69 74 65 6d 3e 73 2e 0a 0a | <menu_item>s...| 00063e60 2f 74 69 74 6c 65 66 6f 72 65 2f 20 2d 20 2f 77 |/titlefore/ - /w| 00063e70 6f 72 6b 62 61 63 6b 2f 20 61 72 65 20 74 68 65 |orkback/ are the| 00063e80 20 63 6f 6c 6f 75 72 73 20 6f 66 20 74 68 65 20 | colours of the | 00063e90 6d 65 6e 75 2e 20 46 6f 72 20 61 20 73 74 61 6e |menu. For a stan| 00063ea0 64 61 72 64 20 6d 65 6e 75 20 74 68 65 79 20 73 |dard menu they s| 00063eb0 68 6f 75 6c 64 20 62 65 20 37 2c 32 2c 37 20 61 |hould be 7,2,7 a| 00063ec0 6e 64 20 31 20 72 65 73 70 65 63 74 69 76 65 6c |nd 1 respectivel| 00063ed0 79 2e 20 2f 67 61 70 2f 20 73 68 6f 75 6c 64 20 |y. /gap/ should | 00063ee0 62 65 20 30 2c 20 61 6e 64 20 2f 68 65 69 67 68 |be 0, and /heigh| 00063ef0 74 2f 20 73 68 6f 75 6c 64 20 62 65 20 34 34 2e |t/ should be 44.| 00063f00 44 41 54 41 2d 01 00 00 4d 65 6e 75 5f 43 61 6c |DATA-...Menu_Cal| 00063f10 63 48 65 69 67 68 74 0a 53 79 6e 74 61 78 3a 09 |cHeight.Syntax:.| 00063f20 69 6e 74 20 4d 65 6e 75 5f 43 61 6c 63 48 65 69 |int Menu_CalcHei| 00063f30 67 68 74 20 28 3c 6d 65 6e 75 5f 70 74 72 3e 20 |ght (<menu_ptr> | 00063f40 6d 65 6e 75 29 3b 0a 48 65 61 64 65 72 3a 09 3c |menu);.Header:.<| 00063f50 44 65 73 6b 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e |DeskLib:Menu.h=>| 00063f60 44 4c 5f 4d 65 6e 75 3e 0a 0a 52 65 74 75 72 6e |DL_Menu>..Return| 00063f70 73 3a 09 48 65 69 67 68 74 20 69 6e 20 4f 53 20 |s:.Height in OS | 00063f80 63 6f 6f 72 64 73 2e 0a 0a 54 68 69 73 20 66 75 |coords...This fu| 00063f90 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 |nction calculate| 00063fa0 73 20 74 68 65 20 68 65 69 67 68 74 20 6f 66 20 |s the height of | 00063fb0 61 20 6d 65 6e 75 20 69 6e 20 4f 53 20 63 6f 6f |a menu in OS coo| 00063fc0 72 64 73 2e 20 54 68 65 20 6f 6e 6c 79 20 75 73 |rds. The only us| 00063fd0 65 20 66 6f 72 20 74 68 69 73 20 69 73 20 63 61 |e for this is ca| 00063fe0 6c 63 75 6c 61 74 69 6e 67 20 70 6f 73 69 74 69 |lculating positi| 00063ff0 6f 6e 20 66 6f 72 20 69 63 6f 6e 20 62 61 72 20 |on for icon bar | 00064000 6d 65 6e 75 73 2c 20 62 75 74 20 3c 4d 65 6e 75 |menus, but <Menu| 00064010 5f 53 68 6f 77 3e 20 63 61 6e 20 64 6f 20 74 68 |_Show> can do th| 00064020 69 73 20 66 6f 72 20 79 6f 75 2e 2e 2e 00 00 00 |is for you......| 00064030 44 41 54 41 5f 01 00 00 4d 65 6e 75 5f 43 6f 6c |DATA_...Menu_Col| 00064040 6f 75 72 4d 65 6e 75 0a 53 79 6e 74 61 78 3a 09 |ourMenu.Syntax:.| 00064050 3c 6d 65 6e 75 3e 20 4d 65 6e 75 5f 43 6f 6c 6f |<menu> Menu_Colo| 00064060 75 72 4d 65 6e 75 20 28 63 68 61 72 20 2a 74 2c |urMenu (char *t,| 00064070 20 63 68 61 72 20 2a 6c 61 73 74 5f 69 74 65 6d | char *last_item| 00064080 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 00064090 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 |Lib:Menu.h=>Menu| 000640a0 5f 54 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 4d |_TL>..Returns:.M| 000640b0 65 6e 75 20 68 61 6e 64 6c 65 20 6f 66 20 74 68 |enu handle of th| 000640c0 65 20 6d 65 6e 75 2e 0a 0a 54 68 69 73 20 66 75 |e menu...This fu| 000640d0 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 61 |nction creates a| 000640e0 20 6d 65 6e 75 20 63 6f 6e 74 61 69 6e 69 6e 67 | menu containing| 000640f0 20 61 6c 6c 20 31 36 20 57 69 6d 70 20 63 6f 6c | all 16 Wimp col| 00064100 6f 75 72 73 2c 20 77 69 74 68 20 74 69 74 6c 65 |ours, with title| 00064110 20 2f 74 2f 20 61 6e 64 20 61 64 64 69 74 69 6f | /t/ and additio| 00064120 6e 61 6c 20 6c 61 73 74 20 69 74 65 6d 20 7b 2f |nal last item {/| 00064130 7d 6c 61 73 74 5f 69 74 65 6d 7b 2f 7d 20 65 67 |}last_item{/} eg| 00064140 20 22 4e 6f 6e 65 22 2e 20 49 66 20 7b 2f 7d 6c | "None". If {/}l| 00064150 61 73 74 5f 69 74 65 6d 7b 2f 7d 20 69 73 20 3c |ast_item{/} is <| 00064160 4e 55 4c 4c 3e 20 74 68 65 6e 20 6f 6e 6c 79 20 |NULL> then only | 00064170 74 68 65 20 31 36 20 63 6f 6c 6f 75 72 20 69 74 |the 16 colour it| 00064180 65 6d 73 20 61 72 65 20 6c 69 73 74 65 64 2e 00 |ems are listed..| 00064190 44 41 54 41 cb 00 00 00 6d 65 6e 75 5f 63 75 72 |DATA....menu_cur| 000641a0 72 65 6e 74 5f 69 63 6f 6e 0a 54 68 69 73 20 76 |rent_icon.This v| 000641b0 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 |ariable of type | 000641c0 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 73 |<icon_handle> is| 000641d0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d | defined in <Tim| 000641e0 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e |sLib:Menu.h=>Men| 000641f0 75 5f 54 4c 3e 2e 20 49 74 20 63 6f 6e 74 61 69 |u_TL>. It contai| 00064200 6e 73 20 74 68 65 20 69 63 6f 6e 20 6f 76 65 72 |ns the icon over| 00064210 20 77 68 69 63 68 20 74 68 65 20 6c 61 73 74 20 | which the last | 00064220 6d 65 6e 75 20 77 61 73 20 70 6f 70 70 65 64 20 |menu was popped | 00064230 75 70 20 69 65 20 74 68 65 20 63 75 72 72 65 6e |up ie the curren| 00064240 74 20 6d 65 6e 75 20 69 66 20 69 74 20 69 73 20 |t menu if it is | 00064250 73 74 69 6c 6c 20 6f 70 65 6e 2e 00 44 41 54 41 |still open..DATA| 00064260 d1 00 00 00 6d 65 6e 75 5f 63 75 72 72 65 6e 74 |....menu_current| 00064270 5f 77 69 6e 64 6f 77 0a 54 68 69 73 20 76 61 72 |_window.This var| 00064280 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 3c 77 |iable of type <w| 00064290 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 69 73 |indow_handle> is| 000642a0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d | defined in <Tim| 000642b0 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e |sLib:Menu.h=>Men| 000642c0 75 5f 54 4c 3e 2e 20 49 74 20 63 6f 6e 74 61 69 |u_TL>. It contai| 000642d0 6e 73 20 74 68 65 20 77 69 6e 64 6f 77 20 6f 76 |ns the window ov| 000642e0 65 72 20 77 68 69 63 68 20 74 68 65 20 6c 61 73 |er which the las| 000642f0 74 20 6d 65 6e 75 20 77 61 73 20 70 6f 70 70 65 |t menu was poppe| 00064300 64 20 75 70 20 69 65 20 74 68 65 20 63 75 72 72 |d up ie the curr| 00064310 65 6e 74 20 6d 65 6e 75 20 69 66 20 69 74 20 69 |ent menu if it i| 00064320 73 20 73 74 69 6c 6c 20 6f 70 65 6e 2e 00 00 00 |s still open....| 00064330 44 41 54 41 a2 00 00 00 6d 65 6e 75 5f 63 75 72 |DATA....menu_cur| 00064340 72 65 6e 74 6f 70 65 6e 0a 54 68 65 20 76 61 72 |rentopen.The var| 00064350 69 61 62 6c 65 20 7b 2a 7d 6d 65 6e 75 5f 63 75 |iable {*}menu_cu| 00064360 72 72 65 6e 74 6f 70 65 6e 7b 2a 7d 20 69 73 20 |rrentopen{*} is | 00064370 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 00064380 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d |Lib:Menu.h=>DL_M| 00064390 65 6e 75 3e 20 61 73 20 61 20 76 61 72 69 61 62 |enu> as a variab| 000643a0 6c 65 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 3c |le holding the <| 000643b0 6d 65 6e 75 5f 70 74 72 3e 20 6f 66 20 74 68 65 |menu_ptr> of the| 000643c0 20 6c 61 73 74 20 6d 65 6e 75 20 6f 70 65 6e 65 | last menu opene| 000643d0 64 2e 00 00 44 41 54 41 b1 00 00 00 6d 65 6e 75 |d...DATA....menu| 000643e0 5f 63 75 72 72 65 6e 74 70 6f 73 0a 54 68 69 73 |_currentpos.This| 000643f0 20 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 66 | variable is def| 00064400 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 00064410 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 |:Menu.h=>DL_Menu| 00064420 3e 2e 20 49 74 20 69 73 20 6f 66 20 74 79 70 65 |>. It is of type| 00064430 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 2c 20 61 | <wimp_point>, a| 00064440 6e 64 20 68 6f 6c 64 73 20 74 68 65 20 70 6f 73 |nd holds the pos| 00064450 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 73 |ition of the mos| 00064460 74 20 72 65 63 65 6e 74 20 6d 65 6e 75 20 73 68 |t recent menu sh| 00064470 6f 77 6e 20 77 69 74 68 20 3c 4d 65 6e 75 5f 53 |own with <Menu_S| 00064480 68 6f 77 3e 2e 00 00 00 44 41 54 41 a0 01 00 00 |how>....DATA....| 00064490 4d 65 6e 75 20 44 65 73 63 72 69 70 74 6f 72 0a |Menu Descriptor.| 000644a0 41 20 6d 65 6e 75 20 64 65 73 63 72 69 70 74 6f |A menu descripto| 000644b0 72 20 64 65 66 69 6e 65 73 20 61 20 73 65 71 75 |r defines a sequ| 000644c0 65 6e 63 65 20 6f 66 20 65 6e 74 72 69 65 73 20 |ence of entries | 000644d0 69 6e 20 61 20 6d 65 6e 75 2e 20 49 74 20 63 6f |in a menu. It co| 000644e0 6e 73 69 73 74 73 20 6f 66 20 61 20 73 74 72 69 |nsists of a stri| 000644f0 6e 67 20 77 69 74 68 20 65 61 63 68 20 65 6e 74 |ng with each ent| 00064500 72 79 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 |ry, separated by| 00064510 20 65 69 74 68 65 72 20 27 2c 27 20 6f 72 20 27 | either ',' or '| 00064520 7c 27 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 ||'...Each entry | 00064530 6d 61 79 20 62 65 20 70 72 65 66 69 78 65 64 20 |may be prefixed | 00064540 62 79 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f |by one or more o| 00064550 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a |f the following:| 00064560 0a 0a 20 20 20 20 21 09 54 69 63 6b 20 74 68 69 |.. !.Tick thi| 00064570 73 20 65 6e 74 72 79 0a 20 20 20 20 7e 09 53 68 |s entry. ~.Sh| 00064580 61 64 65 20 74 68 69 73 20 65 6e 74 72 79 20 28 |ade this entry (| 00064590 63 61 6e 6e 6f 74 20 62 65 20 73 65 6c 65 63 74 |cannot be select| 000645a0 65 64 29 0a 20 20 20 20 3e 09 54 68 69 73 20 65 |ed). >.This e| 000645b0 6e 74 72 79 20 68 61 73 20 61 20 64 69 61 6c 6f |ntry has a dialo| 000645c0 67 75 65 20 62 6f 78 0a 0a 45 6e 74 72 69 65 73 |gue box..Entries| 000645d0 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 74 61 69 6e | may not contain| 000645e0 20 27 2c 27 20 6f 72 20 27 7c 27 20 61 6e 64 20 | ',' or '|' and | 000645f0 6d 61 79 20 6e 6f 74 20 73 74 61 72 74 20 77 69 |may not start wi| 00064600 74 68 20 27 21 27 2c 27 7e 27 2c 20 6f 72 20 27 |th '!','~', or '| 00064610 3e 27 2c 20 66 6f 72 20 6f 62 76 69 6f 75 73 20 |>', for obvious | 00064620 72 65 61 73 6f 6e 73 2e 44 41 54 41 6f 01 00 00 |reasons.DATAo...| 00064630 4d 65 6e 75 5f 44 65 74 61 63 68 4d 65 6e 75 0a |Menu_DetachMenu.| 00064640 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 6e |Syntax:.void Men| 00064650 75 5f 44 65 74 61 63 68 4d 65 6e 75 20 28 3c 77 |u_DetachMenu (<w| 00064660 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 |indow_handle> wi| 00064670 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e |n, <icon_handle>| 00064680 20 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 | icon);.Header:.| 00064690 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d |<TimsLib:Menu.h=| 000646a0 3e 4d 65 6e 75 5f 54 4c 3e 0a 0a 54 68 69 73 20 |>Menu_TL>..This | 000646b0 66 75 6e 63 74 69 6f 6e 20 64 65 74 61 63 68 65 |function detache| 000646c0 73 20 61 6e 79 20 6d 65 6e 75 73 20 6f 72 20 6d |s any menus or m| 000646d0 65 6e 75 20 6d 61 6b 65 72 73 20 66 72 6f 6d 20 |enu makers from | 000646e0 74 68 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 |the given window| 000646f0 20 28 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 6c 79 | (and optionally| 00064700 2c 20 74 68 65 20 69 63 6f 6e 20 6d 61 79 20 61 |, the icon may a| 00064710 6c 73 6f 20 62 65 20 73 70 65 63 69 66 69 65 64 |lso be specified| 00064720 29 2e 20 49 66 20 2f 77 69 6e 64 6f 77 2f 20 69 |). If /window/ i| 00064730 73 20 7b 2a 7d 65 76 65 6e 74 5f 41 4e 59 7b 2a |s {*}event_ANY{*| 00064740 7d 20 74 68 65 6e 20 6f 6e 6c 79 20 68 61 6e 64 |} then only hand| 00064750 6c 65 72 73 20 69 6e 73 74 61 6c 6c 65 64 20 77 |lers installed w| 00064760 69 74 68 20 74 68 65 20 77 69 6e 64 6f 77 20 73 |ith the window s| 00064770 65 74 20 74 6f 20 7b 2a 7d 65 76 65 6e 74 5f 41 |et to {*}event_A| 00064780 4e 59 7b 2a 7d 20 77 69 6c 6c 20 62 65 20 64 65 |NY{*} will be de| 00064790 74 61 63 68 65 64 2e 00 44 41 54 41 48 01 00 00 |tached..DATAH...| 000647a0 6d 65 6e 75 5f 64 69 73 70 6f 73 65 0a 53 79 6e |menu_dispose.Syn| 000647b0 74 61 78 3a 09 76 6f 69 64 20 6d 65 6e 75 5f 64 |tax:.void menu_d| 000647c0 69 73 70 6f 73 65 20 28 3c 6d 65 6e 75 3e 20 2a |ispose (<menu> *| 000647d0 6d 2c 20 69 6e 74 20 72 65 63 29 3b 0a 48 65 61 |m, int rec);.Hea| 000647e0 64 65 72 3a 09 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 |der:.<menu.h=>me| 000647f0 6e 75 5f 68 3e 20 28 44 65 73 6b 74 6f 70 20 43 |nu_h> (Desktop C| 00064800 29 0a 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |)..Syntax:.void | 00064810 4d 65 6e 75 5f 44 69 73 70 6f 73 65 20 28 3c 6d |Menu_Dispose (<m| 00064820 65 6e 75 3e 20 6d 2c 20 3c 42 4f 4f 4c 3e 20 72 |enu> m, <BOOL> r| 00064830 65 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 |ec);.Header:.<Ti| 00064840 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 |msLib:Menu.h=>Me| 00064850 6e 75 5f 54 4c 3e 20 28 54 69 6d 73 4c 69 62 29 |nu_TL> (TimsLib)| 00064860 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00064870 64 69 73 70 6f 73 65 73 20 6f 66 20 74 68 65 20 |disposes of the | 00064880 6d 65 6e 75 20 70 6f 69 6e 74 65 64 20 74 6f 20 |menu pointed to | 00064890 62 79 20 2f 6d 2f 2e 20 49 66 20 2f 72 65 63 2f |by /m/. If /rec/| 000648a0 20 69 73 20 6e 6f 6e 2d 7a 65 72 6f 20 74 68 65 | is non-zero the| 000648b0 6e 20 61 6c 6c 20 73 75 62 6d 65 6e 75 73 20 61 |n all submenus a| 000648c0 72 65 20 72 65 63 75 72 73 69 76 65 6c 79 20 64 |re recursively d| 000648d0 69 73 70 6f 73 65 64 20 6f 66 20 61 6c 73 6f 2e |isposed of also.| 000648e0 44 41 54 41 81 01 00 00 4d 65 6e 75 5f 45 78 74 |DATA....Menu_Ext| 000648f0 65 6e 64 0a 53 79 6e 74 61 78 3a 09 3c 6d 65 6e |end.Syntax:.<men| 00064900 75 5f 70 74 72 3e 20 4d 65 6e 75 5f 45 78 74 65 |u_ptr> Menu_Exte| 00064910 6e 64 20 28 6d 65 6e 75 5f 70 74 72 20 6d 65 6e |nd (menu_ptr men| 00064920 75 2c 20 63 68 61 72 20 2a 64 65 73 63 29 3b 0a |u, char *desc);.| 00064930 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00064940 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 |:Menu.h=>DL_Menu| 00064950 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00064960 74 65 72 20 74 6f 20 6d 65 6e 75 2e 0a 0a 54 68 |ter to menu...Th| 00064970 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 73 |is function adds| 00064980 20 74 68 65 20 3c 6d 65 6e 75 20 64 65 73 63 72 | the <menu descr| 00064990 69 70 74 69 6f 6e 3d 3e 6d 65 6e 75 5f 64 65 73 |iption=>menu_des| 000649a0 63 5f 3e 20 69 6e 20 2f 64 65 73 63 2f 20 74 6f |c_> in /desc/ to| 000649b0 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 74 | the bottom of t| 000649c0 68 65 20 6d 65 6e 75 20 77 68 6f 73 65 20 70 6f |he menu whose po| 000649d0 69 6e 74 65 72 20 69 73 20 67 69 76 65 6e 2e 20 |inter is given. | 000649e0 49 66 20 69 74 20 63 61 6e 6e 6f 74 20 73 75 63 |If it cannot suc| 000649f0 63 65 65 64 2c 20 69 74 20 72 65 74 75 72 6e 73 |ceed, it returns| 00064a00 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 | the pointer to | 00064a10 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6d 65 6e |the original men| 00064a20 75 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68 65 |u...See also the| 00064a30 20 44 65 73 6b 74 6f 70 20 43 20 66 75 6e 63 74 | Desktop C funct| 00064a40 69 6f 6e 2c 20 3c 6d 65 6e 75 5f 65 78 74 65 6e |ion, <menu_exten| 00064a50 64 3d 3e 6d 65 6e 75 5f 65 78 74 65 6e 64 5f 3e |d=>menu_extend_>| 00064a60 2e 00 00 00 44 41 54 41 06 01 00 00 6d 65 6e 75 |....DATA....menu| 00064a70 5f 65 78 74 65 6e 64 0a 53 79 6e 74 61 78 3a 09 |_extend.Syntax:.| 00064a80 76 6f 69 64 20 6d 65 6e 75 5f 65 78 74 65 6e 64 |void menu_extend| 00064a90 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 63 68 61 72 | (<menu> m, char| 00064aa0 20 2a 64 65 73 63 29 3b 0a 48 65 61 64 65 72 3a | *desc);.Header:| 00064ab0 09 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e 75 5f 68 |.<menu.h=>menu_h| 00064ac0 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00064ad0 20 61 64 64 73 20 74 68 65 20 3c 6d 65 6e 75 20 | adds the <menu | 00064ae0 64 65 73 63 72 69 70 74 69 6f 6e 3d 3e 6d 65 6e |description=>men| 00064af0 75 5f 64 65 73 63 5f 3e 20 67 69 76 65 6e 20 74 |u_desc_> given t| 00064b00 6f 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 |o the bottom of | 00064b10 74 68 65 20 6d 65 6e 75 20 73 70 65 63 69 66 69 |the menu specifi| 00064b20 65 64 2e 0a 0a 41 20 6d 65 6e 75 20 77 68 69 63 |ed...A menu whic| 00064b30 68 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 73 |h is already a s| 00064b40 75 62 6d 65 6e 75 20 6f 66 20 61 6e 6f 74 68 65 |ubmenu of anothe| 00064b50 72 20 6d 65 6e 75 20 63 61 6e 6e 6f 74 20 62 65 |r menu cannot be| 00064b60 20 65 78 74 65 6e 64 65 64 2e 00 00 44 41 54 41 | extended...DATA| 00064b70 af 00 00 00 4d 65 6e 75 5f 46 61 64 65 45 6e 74 |....Menu_FadeEnt| 00064b80 72 79 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |ry.Syntax:.void | 00064b90 4d 65 6e 75 5f 46 61 64 65 45 6e 74 72 79 20 28 |Menu_FadeEntry (| 00064ba0 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e 74 20 65 6e |<menu> m, int en| 00064bb0 74 72 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 |try);.Header:.<T| 00064bc0 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d |imsLib:Menu.h=>M| 00064bd0 65 6e 75 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 |enu_TL>..This fu| 00064be0 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 |nction-like macr| 00064bf0 6f 20 73 68 61 64 65 73 20 74 68 65 20 67 69 76 |o shades the giv| 00064c00 65 6e 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 |en entry in the | 00064c10 67 69 76 65 6e 20 6d 65 6e 75 2e 00 44 41 54 41 |given menu..DATA| 00064c20 2f 04 00 00 6d 65 6e 75 5f 66 6c 61 67 73 0a 54 |/...menu_flags.T| 00064c30 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00064c40 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 00064c50 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 |Wimp.h=>Wimp>. I| 00064c60 74 20 69 73 20 61 20 74 79 70 65 20 67 69 76 69 |t is a type givi| 00064c70 6e 67 20 65 61 73 79 20 61 63 63 65 73 73 20 74 |ng easy access t| 00064c80 6f 20 69 6e 64 69 76 69 64 75 61 6c 20 6d 65 6e |o individual men| 00064c90 75 20 66 6c 61 67 73 20 61 6e 64 20 74 68 65 69 |u flags and thei| 00064ca0 72 20 63 6f 6d 62 69 6e 65 64 20 76 61 6c 75 65 |r combined value| 00064cb0 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 00064cc0 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |as the following| 00064cd0 20 75 6e 69 6f 6e 3a 0a 0a 20 20 5c 7b 0a 20 20 | union:.. \{. | 00064ce0 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 | unsigned int v| 00064cf0 61 6c 75 65 3b 0a 20 20 20 20 73 74 72 75 63 74 |alue;. struct| 00064d00 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 75 6e |. \{. un| 00064d10 73 69 67 6e 65 64 20 69 6e 74 20 74 69 63 6b 65 |signed int ticke| 00064d20 64 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 |d.: 1;. uns| 00064d30 69 67 6e 65 64 20 69 6e 74 20 64 6f 74 74 65 64 |igned int dotted| 00064d40 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 |.: 1;. unsi| 00064d50 67 6e 65 64 20 69 6e 74 20 77 72 69 74 61 62 6c |gned int writabl| 00064d60 65 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 |e.: 1;. uns| 00064d70 69 67 6e 65 64 20 69 6e 74 20 6e 6f 74 69 66 79 |igned int notify| 00064d80 73 75 62 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |sub.: 1;. u| 00064d90 6e 73 69 67 6e 65 64 20 69 6e 74 20 6f 70 65 6e |nsigned int open| 00064da0 73 68 61 64 65 64 09 3a 20 31 3b 0a 20 20 20 20 |shaded.: 1;. | 00064db0 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 | unsigned int d| 00064dc0 75 6d 6d 79 32 09 3a 20 32 3b 0a 20 20 20 20 20 |ummy2.: 2;. | 00064dd0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6c 61 | unsigned int la| 00064de0 73 74 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |st.: 1;. un| 00064df0 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 64 74 69 |signed int indti| 00064e00 74 6c 65 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |tle.: 1;. u| 00064e10 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 75 6d 6d |nsigned int dumm| 00064e20 79 31 33 09 3a 20 31 33 3b 0a 20 20 20 20 20 20 |y13.: 13;. | 00064e30 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 68 61 |unsigned int sha| 00064e40 64 65 64 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |ded.: 1;. u| 00064e50 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 75 6d 6d |nsigned int dumm| 00064e60 79 31 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |y1.: 1;. un| 00064e70 73 69 67 6e 65 64 20 69 6e 74 20 66 6f 72 65 67 |signed int foreg| 00064e80 72 6f 75 6e 64 09 3a 20 34 3b 0a 20 20 20 20 20 |round.: 4;. | 00064e90 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 61 | unsigned int ba| 00064ea0 63 6b 67 72 6f 75 6e 64 09 3a 20 34 3b 0a 20 20 |ckground.: 4;. | 00064eb0 20 20 7d 20 64 61 74 61 3b 0a 20 20 7d 0a 7b 74 | } data;. }.{t| 00064ec0 61 62 7d 0a 8f 09 2f 6e 6f 74 69 66 79 73 75 62 |ab}.../notifysub| 00064ed0 2f 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 |/ will cause the| 00064ee0 20 74 61 73 6b 20 74 6f 20 72 65 63 65 69 76 65 | task to receive| 00064ef0 20 61 20 6d 65 73 73 61 67 65 20 72 61 74 68 65 | a message rathe| 00064f00 72 20 74 68 61 6e 20 6f 70 65 6e 69 6e 67 20 61 |r than opening a| 00064f10 20 73 75 62 6d 65 6e 75 2e 0a 8f 09 2f 6f 70 65 | submenu..../ope| 00064f20 6e 73 68 61 64 65 64 2f 20 61 6c 6c 6f 77 73 20 |nshaded/ allows | 00064f30 74 68 65 20 73 75 62 6d 65 6e 75 20 74 6f 20 62 |the submenu to b| 00064f40 65 20 6f 70 65 6e 65 64 20 65 76 65 6e 20 69 66 |e opened even if| 00064f50 20 74 68 69 73 20 65 6e 74 72 79 20 69 73 20 73 | this entry is s| 00064f60 68 61 64 65 64 2e 0a 8f 09 2f 6c 61 73 74 2f 20 |haded..../last/ | 00064f70 73 68 6f 75 6c 64 20 62 65 20 73 65 74 20 66 6f |should be set fo| 00064f80 72 20 74 68 65 20 6c 61 73 74 20 65 6e 74 72 79 |r the last entry| 00064f90 20 69 6e 20 74 68 65 20 6d 65 6e 75 2e 0a 8f 09 | in the menu....| 00064fa0 2f 69 6e 64 74 69 74 6c 65 2f 20 69 6e 20 74 68 |/indtitle/ in th| 00064fb0 65 20 5f 66 69 72 73 74 20 6d 65 6e 75 20 65 6e |e _first menu en| 00064fc0 74 72 79 5f 20 61 6c 6c 6f 77 73 20 74 68 65 20 |try_ allows the | 00064fd0 74 69 74 6c 65 20 74 6f 20 62 65 20 69 6e 64 69 |title to be indi| 00064fe0 72 65 63 74 65 64 2e 0a 8f 09 2f 66 6f 72 65 67 |rected..../foreg| 00064ff0 72 6f 75 6e 64 2f 2c 20 2f 62 61 63 6b 67 72 6f |round/, /backgro| 00065000 75 6e 64 2f 20 61 6e 64 20 2f 73 68 61 64 65 64 |und/ and /shaded| 00065010 20 61 72 65 20 75 73 65 6c 65 73 73 20 61 6e 64 | are useless and| 00065020 20 68 61 76 65 20 6e 6f 20 70 75 72 70 6f 73 65 | have no purpose| 00065030 2e 20 57 68 61 74 20 61 72 65 20 74 68 65 79 20 |. What are they | 00065040 64 6f 69 6e 67 20 68 65 72 65 3f 00 44 41 54 41 |doing here?.DATA| 00065050 23 01 00 00 4d 65 6e 75 5f 47 65 74 46 6c 61 67 |#...Menu_GetFlag| 00065060 73 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d |s.Syntax:.void M| 00065070 65 6e 75 5f 47 65 74 46 6c 61 67 73 20 28 3c 6d |enu_GetFlags (<m| 00065080 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 2c 20 69 |enu_ptr> menu, i| 00065090 6e 74 20 65 6e 74 72 79 2c 20 69 6e 74 20 2a 74 |nt entry, int *t| 000650a0 69 63 6b 2c 20 69 6e 74 20 2a 73 68 61 64 65 29 |ick, int *shade)| 000650b0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000650c0 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 |ib:Menu.h=>DL_Me| 000650d0 6e 75 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |nu>..This functi| 000650e0 6f 6e 20 72 65 61 64 73 20 74 68 65 20 73 74 61 |on reads the sta| 000650f0 74 65 20 6f 66 20 2f 65 6e 74 72 79 2f 20 69 6e |te of /entry/ in| 00065100 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 2e | the given menu.| 00065110 20 49 74 20 77 69 6c 6c 20 73 65 74 20 7b 2f 7d | It will set {/}| 00065120 2a 74 69 63 6b 7b 2f 7d 20 6f 72 20 7b 2f 7d 2a |*tick{/} or {/}*| 00065130 73 68 61 64 65 7b 2f 7d 20 74 6f 20 31 20 69 66 |shade{/} to 1 if| 00065140 20 74 68 65 20 65 6e 74 72 79 20 69 73 20 74 69 | the entry is ti| 00065150 63 6b 65 64 20 6f 72 20 73 68 61 64 65 64 2c 20 |cked or shaded, | 00065160 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 2e 00 |as appropriate..| 00065170 44 41 54 41 cf 00 00 00 4d 65 6e 75 5f 47 65 74 |DATA....Menu_Get| 00065180 54 65 78 74 0a 53 79 6e 74 61 78 3a 09 63 68 61 |Text.Syntax:.cha| 00065190 72 20 2a 4d 65 6e 75 5f 47 65 74 54 65 78 74 20 |r *Menu_GetText | 000651a0 28 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 |(<menu_ptr> menu| 000651b0 2c 20 69 6e 74 20 65 6e 74 72 79 29 3b 0a 48 65 |, int entry);.He| 000651c0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d |ader:.<DeskLib:M| 000651d0 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a |enu.h=>DL_Menu>.| 000651e0 0a 52 65 74 75 72 73 3a 09 50 6f 69 6e 74 65 72 |.Returs:.Pointer| 000651f0 20 74 6f 20 74 65 78 74 2e 0a 0a 54 68 69 73 20 | to text...This | 00065200 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 00065210 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 | a pointer to th| 00065220 65 20 74 65 78 74 20 6f 66 20 74 68 65 20 67 69 |e text of the gi| 00065230 76 65 6e 20 6d 65 6e 75 20 65 6e 74 72 79 2e 00 |ven menu entry..| 00065240 44 41 54 41 7f 01 00 00 6d 65 6e 75 2e 68 0a 54 |DATA....menu.h.T| 00065250 68 65 20 5c 3c 6d 65 6e 75 2e 68 3e 20 68 65 61 |he \<menu.h> hea| 00065260 64 65 72 20 64 65 63 6c 61 72 65 73 20 61 20 6e |der declares a n| 00065270 75 6d 62 65 72 20 6f 66 20 66 75 6e 63 74 69 6f |umber of functio| 00065280 6e 73 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 |ns for handling | 00065290 6d 65 6e 75 73 2e 20 49 74 20 61 6c 73 6f 20 64 |menus. It also d| 000652a0 65 66 69 6e 65 73 20 6f 6e 65 20 74 79 70 65 20 |efines one type | 000652b0 72 65 6c 61 74 69 6e 67 20 74 6f 20 6d 65 6e 75 |relating to menu| 000652c0 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 7b |s...Functions:.{| 000652d0 69 6e 64 65 6e 74 20 39 7d 0a 23 54 61 62 6c 65 |indent 9}.#Table| 000652e0 20 34 0a 3c 6d 65 6e 75 5f 64 69 73 70 6f 73 65 | 4.<menu_dispose| 000652f0 3e 0a 3c 6d 65 6e 75 5f 65 78 74 65 6e 64 3d 3e |>.<menu_extend=>| 00065300 6d 65 6e 75 5f 65 78 74 65 6e 64 5f 3e 0a 3c 6d |menu_extend_>.<m| 00065310 65 6e 75 5f 6d 61 6b 65 5f 73 70 72 69 74 65 3e |enu_make_sprite>| 00065320 0a 3c 6d 65 6e 75 5f 6d 61 6b 65 5f 77 72 69 74 |.<menu_make_writ| 00065330 65 61 62 6c 65 3e 0a 3c 6d 65 6e 75 5f 6e 65 77 |eable>.<menu_new| 00065340 3d 3e 6d 65 6e 75 5f 6e 65 77 5f 3e 0a 3c 6d 65 |=>menu_new_>.<me| 00065350 6e 75 5f 73 65 74 66 6c 61 67 73 3d 3e 6d 65 6e |nu_setflags=>men| 00065360 75 5f 73 65 74 66 6c 61 67 73 5f 3e 0a 3c 6d 65 |u_setflags_>.<me| 00065370 6e 75 5f 73 75 62 6d 65 6e 75 3e 0a 3c 6d 65 6e |nu_submenu>.<men| 00065380 75 5f 73 79 73 68 61 6e 64 6c 65 3e 0a 23 45 6e |u_syshandle>.#En| 00065390 64 54 61 62 6c 65 0a 0a 23 69 6e 64 65 6e 74 20 |dTable..#indent | 000653a0 30 0a 54 79 70 65 3a 0a 0a 7b 61 6c 69 67 6e 20 |0.Type:..{align | 000653b0 63 65 6e 74 72 65 7d 3c 6d 65 6e 75 3e 0a 0a 00 |centre}<menu>...| 000653c0 44 41 54 41 3c 01 00 00 6d 65 6e 75 5f 68 61 6e |DATA<...menu_han| 000653d0 64 6c 65 72 0a 54 68 69 73 20 74 79 70 65 20 69 |dler.This type i| 000653e0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 |s defined in <Ti| 000653f0 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 |msLib:Menu.h=>Me| 00065400 6e 75 5f 54 4c 3e 2e 20 49 74 20 69 73 20 61 20 |nu_TL>. It is a | 00065410 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 77 68 |function used wh| 00065420 65 6e 20 73 65 6c 65 63 74 69 6f 6e 73 20 61 72 |en selections ar| 00065430 65 20 6d 61 64 65 20 66 72 6f 6d 20 61 20 6d 65 |e made from a me| 00065440 6e 75 2e 20 49 74 20 68 61 73 20 74 68 65 20 66 |nu. It has the f| 00065450 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 |orm:..{fCode;ali| 00065460 67 6e 20 63 65 6e 74 72 65 7d 76 6f 69 64 20 6d |gn centre}void m| 00065470 79 66 75 6e 63 20 28 76 6f 69 64 20 2a 72 65 66 |yfunc (void *ref| 00065480 65 72 65 6e 63 65 2c 20 69 6e 74 20 2a 68 69 74 |erence, int *hit| 00065490 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 77 68 65 |);{f;align}..whe| 000654a0 72 65 20 2f 72 65 66 65 72 65 6e 63 65 2f 20 69 |re /reference/ i| 000654b0 73 20 61 20 75 73 65 72 20 64 65 66 69 6e 65 64 |s a user defined| 000654c0 20 76 61 6c 75 65 20 61 6e 64 20 2f 68 69 74 2f | value and /hit/| 000654d0 20 69 73 20 61 20 2d 31 20 74 65 72 6d 69 6e 61 | is a -1 termina| 000654e0 74 65 64 20 6c 69 73 74 20 6f 66 20 6d 65 6e 75 |ted list of menu| 000654f0 20 73 65 6c 65 63 74 69 6f 6e 73 2e 44 41 54 41 | selections.DATA| 00065500 11 02 00 00 6d 65 6e 75 5f 69 74 65 6d 0a 54 68 |....menu_item.Th| 00065510 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00065520 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 |ed in <DeskLib:W| 00065530 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 |imp.h=>Wimp>. It| 00065540 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 00065550 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 64 |containing the d| 00065560 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 61 20 6d |efinition of a m| 00065570 65 6e 75 20 69 74 65 6d 3a 0a 0a 20 20 5c 7b 0a |enu item:.. \{.| 00065580 20 20 20 20 3c 6d 65 6e 75 5f 66 6c 61 67 73 3e | <menu_flags>| 00065590 09 6d 65 6e 75 66 6c 61 67 73 3b 0a 20 20 20 20 |.menuflags;. | 000655a0 3c 6d 65 6e 75 5f 73 75 62 6d 65 6e 75 3d 3e 6d |<menu_submenu=>m| 000655b0 65 6e 75 5f 73 75 62 6d 65 6e 75 5f 3e 09 73 75 |enu_submenu_>.su| 000655c0 62 6d 65 6e 75 3b 0a 20 20 20 20 3c 69 63 6f 6e |bmenu;. <icon| 000655d0 5f 66 6c 61 67 73 3e 09 69 63 6f 6e 66 6c 61 67 |_flags>.iconflag| 000655e0 73 3b 0a 20 20 20 20 3c 69 63 6f 6e 5f 64 61 74 |s;. <icon_dat| 000655f0 61 3e 09 69 63 6f 6e 64 61 74 61 3b 0a 20 20 7d |a>.icondata;. }| 00065600 0a 0a 49 66 20 74 68 65 20 65 6e 74 72 79 20 68 |..If the entry h| 00065610 61 73 20 6e 6f 20 73 75 62 6d 65 6e 75 2f 77 69 |as no submenu/wi| 00065620 6e 64 6f 77 2c 20 7b 2f 7d 73 75 62 6d 65 6e 75 |ndow, {/}submenu| 00065630 2e 76 61 6c 75 65 7b 2f 7d 20 73 68 6f 75 6c 64 |.value{/} should| 00065640 20 62 65 20 73 65 74 20 74 6f 20 2d 31 2e 0a 0a | be set to -1...| 00065650 53 6f 6d 65 20 62 69 74 73 20 6f 66 20 74 68 65 |Some bits of the| 00065660 20 69 63 6f 6e 66 6c 61 67 73 20 61 72 65 20 69 | iconflags are i| 00065670 67 6e 6f 72 65 64 3a 0a 7b 74 61 62 7d 0a 8f 09 |gnored:.{tab}...| 00065680 49 63 6f 6e 20 69 73 20 61 6c 77 61 79 73 20 76 |Icon is always v| 00065690 65 72 74 69 63 61 6c 6c 79 20 63 65 6e 74 72 65 |ertically centre| 000656a0 64 2e 0a 8f 09 49 63 6f 6e 20 6e 65 76 65 72 20 |d....Icon never | 000656b0 6e 65 65 64 73 20 68 65 6c 70 20 66 6f 72 20 72 |needs help for r| 000656c0 65 64 72 61 77 69 6e 67 0a 8f 09 42 75 74 74 6f |edrawing...Butto| 000656d0 6e 20 74 79 70 65 20 69 73 20 61 6c 77 61 79 73 |n type is always| 000656e0 20 39 0a 8f 09 45 53 47 20 69 73 20 61 6c 77 61 | 9...ESG is alwa| 000656f0 79 73 20 30 0a 8f 09 44 65 6c 65 74 65 64 20 62 |ys 0...Deleted b| 00065700 69 74 20 69 73 20 69 67 6e 6f 72 65 64 00 00 00 |it is ignored...| 00065710 44 41 54 41 25 01 00 00 6d 65 6e 75 5f 6d 61 6b |DATA%...menu_mak| 00065720 65 5f 73 70 72 69 74 65 0a 53 79 6e 74 61 78 3a |e_sprite.Syntax:| 00065730 09 76 6f 69 64 20 6d 65 6e 75 5f 6d 61 6b 65 5f |.void menu_make_| 00065740 73 70 72 69 74 65 20 28 3c 6d 65 6e 75 3e 20 6d |sprite (<menu> m| 00065750 2c 20 69 6e 74 20 65 6e 74 72 79 2c 20 63 68 61 |, int entry, cha| 00065760 72 20 2a 73 70 72 29 3b 0a 48 65 61 64 65 72 3a |r *spr);.Header:| 00065770 09 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e 75 5f 68 |.<menu.h=>menu_h| 00065780 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 00065790 20 6d 61 6b 65 73 20 6f 6e 65 20 6d 65 6e 75 20 | makes one menu | 000657a0 65 6e 74 72 79 20 69 6e 20 74 68 65 20 73 70 65 |entry in the spe| 000657b0 63 69 66 69 65 64 20 6d 65 6e 75 20 69 6e 74 6f |cified menu into| 000657c0 20 61 20 73 70 72 69 74 65 2e 20 45 6e 74 72 79 | a sprite. Entry| 000657d0 20 69 73 20 74 68 65 20 65 6e 74 72 79 20 6e 75 | is the entry nu| 000657e0 6d 62 65 72 20 61 6e 64 20 2f 73 70 72 2f 20 69 |mber and /spr/ i| 000657f0 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |s a pointer to t| 00065800 68 65 20 73 70 72 69 74 65 20 6e 61 6d 65 2e 20 |he sprite name. | 00065810 54 68 65 20 73 70 72 69 74 65 20 69 73 20 66 72 |The sprite is fr| 00065820 6f 6d 20 74 68 65 20 3c 72 65 73 73 70 72 5f 61 |om the <resspr_a| 00065830 72 65 61 3e 2e 00 00 00 44 41 54 41 74 01 00 00 |rea>....DATAt...| 00065840 6d 65 6e 75 5f 6d 61 6b 65 5f 77 72 69 74 65 61 |menu_make_writea| 00065850 62 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ble.Syntax:.void| 00065860 20 6d 65 6e 75 5f 6d 61 6b 65 5f 77 72 69 74 65 | menu_make_write| 00065870 61 62 6c 65 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 |able (<menu> m, | 00065880 69 6e 74 20 65 6e 74 72 79 2c 20 63 68 61 72 20 |int entry, char | 00065890 2a 62 75 66 2c 20 69 6e 74 20 62 75 66 6c 65 6e |*buf, int buflen| 000658a0 2c 20 63 68 61 72 20 2a 76 61 6c 73 74 72 29 3b |, char *valstr);| 000658b0 0a 48 65 61 64 65 72 3a 09 3c 6d 65 6e 75 2e 68 |.Header:.<menu.h| 000658c0 3d 3e 6d 65 6e 75 5f 68 3e 0a 0a 54 68 69 73 20 |=>menu_h>..This | 000658d0 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 73 20 6f |function makes o| 000658e0 6e 65 20 6f 66 20 74 68 65 20 65 6e 74 72 69 65 |ne of the entrie| 000658f0 73 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 6d |s in the given m| 00065900 65 6e 75 20 69 6e 74 6f 20 61 20 77 72 69 74 65 |enu into a write| 00065910 61 62 6c 65 20 65 6e 74 72 79 2e 20 2f 62 75 66 |able entry. /buf| 00065920 2f 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 |/ is a pointer t| 00065930 6f 20 61 20 62 75 66 66 65 72 20 28 6f 66 20 6c |o a buffer (of l| 00065940 65 6e 67 74 68 20 7b 2f 7d 62 75 66 6c 65 6e 7b |ength {/}buflen{| 00065950 2f 7d 29 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 |/}) to hold the | 00065960 74 65 78 74 2e 20 2f 76 61 6c 73 74 72 2f 20 70 |text. /valstr/ p| 00065970 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 3c 76 61 |oints to the <va| 00065980 6c 69 64 61 74 69 6f 6e 20 73 74 72 69 6e 67 3d |lidation string=| 00065990 3e 53 57 49 3a 77 69 6d 70 5f 76 61 6c 69 64 61 |>SWI:wimp_valida| 000659a0 74 69 6f 6e 73 74 72 69 6e 67 3e 2e 44 41 54 41 |tionstring>.DATA| 000659b0 27 01 00 00 6d 65 6e 75 5f 6d 61 6b 65 72 0a 54 |'...menu_maker.T| 000659c0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000659d0 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a |ned in <TimsLib:| 000659e0 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e |Menu.h=>Menu_TL>| 000659f0 2e 20 49 74 20 69 73 20 61 20 66 75 6e 63 74 69 |. It is a functi| 00065a00 6f 6e 20 75 73 65 64 20 77 68 65 6e 20 61 20 6d |on used when a m| 00065a10 65 6e 75 20 6e 65 65 64 73 20 74 6f 20 62 65 20 |enu needs to be | 00065a20 63 72 65 61 74 65 64 2e 20 49 74 20 68 61 73 20 |created. It has | 00065a30 74 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 |the form:..{fCod| 00065a40 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c |e;align centre}<| 00065a50 6d 65 6e 75 3e 20 6d 79 66 75 6e 63 20 28 76 6f |menu> myfunc (vo| 00065a60 69 64 20 2a 72 65 66 65 72 65 6e 63 65 29 3b 7b |id *reference);{| 00065a70 66 3b 61 6c 69 67 6e 7d 0a 0a 77 68 65 72 65 20 |f;align}..where | 00065a80 2f 72 65 66 65 72 65 6e 63 65 2f 20 69 73 20 61 |/reference/ is a| 00065a90 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 76 61 | user defined va| 00065aa0 6c 75 65 20 61 6e 64 20 74 68 65 20 66 75 6e 63 |lue and the func| 00065ab0 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 |tion returns the| 00065ac0 20 6e 65 77 20 6d 65 6e 75 27 73 20 68 61 6e 64 | new menu's hand| 00065ad0 6c 65 2e 00 44 41 54 41 b5 01 00 00 4d 65 6e 75 |le..DATA....Menu| 00065ae0 5f 4d 61 6b 65 57 72 69 74 61 62 6c 65 0a 53 79 |_MakeWritable.Sy| 00065af0 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 6e 75 5f |ntax:.void Menu_| 00065b00 4d 61 6b 65 57 72 69 74 61 62 6c 65 20 28 3c 6d |MakeWritable (<m| 00065b10 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 2c 20 69 |enu_ptr> menu, i| 00065b20 6e 74 20 65 6e 74 72 79 2c 20 63 68 61 72 20 2a |nt entry, char *| 00065b30 74 2c 20 69 6e 74 20 73 69 7a 65 2c 20 63 68 61 |t, int size, cha| 00065b40 72 20 2a 76 29 3b 0a 48 65 61 64 65 72 3a 09 3c |r *v);.Header:.<| 00065b50 44 65 73 6b 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e |DeskLib:Menu.h=>| 00065b60 44 4c 5f 4d 65 6e 75 3e 0a 0a 53 79 6e 74 61 78 |DL_Menu>..Syntax| 00065b70 3a 09 76 6f 69 64 20 4d 65 6e 75 5f 4d 61 6b 65 |:.void Menu_Make| 00065b80 57 72 69 74 61 62 6c 65 20 28 3c 6d 65 6e 75 3e |Writable (<menu>| 00065b90 20 6d 2c 20 69 6e 74 20 65 6e 74 72 79 2c 20 63 | m, int entry, c| 00065ba0 68 61 72 20 2a 74 2c 20 69 6e 74 20 73 69 7a 65 |har *t, int size| 00065bb0 2c 20 63 68 61 72 20 2a 76 29 3b 0a 48 65 61 64 |, char *v);.Head| 00065bc0 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e |er:.<TimsLib:Men| 00065bd0 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 0a 0a 54 |u.h=>Menu_TL>..T| 00065be0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b |his function mak| 00065bf0 65 73 20 61 20 6d 65 6e 75 20 69 74 65 6d 20 77 |es a menu item w| 00065c00 72 69 74 65 61 62 6c 65 2e 20 49 74 65 6d 20 2f |riteable. Item /| 00065c10 65 6e 74 72 79 2f 20 77 69 6c 6c 20 62 65 63 6f |entry/ will beco| 00065c20 6d 65 20 61 6e 20 69 6e 64 69 72 65 63 74 65 64 |me an indirected| 00065c30 20 77 72 69 74 65 61 62 6c 65 20 69 63 6f 6e 2c | writeable icon,| 00065c40 20 77 69 74 68 20 64 61 74 61 20 70 6f 69 6e 74 | with data point| 00065c50 65 72 20 2f 74 2f 2c 20 76 61 6c 69 64 61 74 69 |er /t/, validati| 00065c60 6f 6e 20 73 74 72 69 6e 67 20 2f 76 2f 2c 20 61 |on string /v/, a| 00065c70 6e 64 20 6d 61 78 69 6d 75 6d 20 6c 65 6e 67 74 |nd maximum lengt| 00065c80 68 20 2f 73 69 7a 65 2f 2e 00 00 00 44 41 54 41 |h /size/....DATA| 00065c90 53 02 00 00 4d 65 6e 75 5f 4e 65 77 0a 53 79 6e |S...Menu_New.Syn| 00065ca0 74 61 78 3a 09 3c 6d 65 6e 75 5f 70 74 72 3e 20 |tax:.<menu_ptr> | 00065cb0 4d 65 6e 75 5f 4e 65 77 28 63 68 61 72 20 2a 74 |Menu_New(char *t| 00065cc0 2c 20 63 68 61 72 20 2a 64 65 73 63 29 3b 0a 48 |, char *desc);.H| 00065cd0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00065ce0 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e |Menu.h=>DL_Menu>| 00065cf0 0a 0a 52 65 74 75 72 6e 73 3a 09 4d 65 6e 75 20 |..Returns:.Menu | 00065d00 70 6f 69 6e 74 65 72 2c 20 6f 72 20 3c 4e 55 4c |pointer, or <NUL| 00065d10 4c 3e 20 69 66 20 66 61 69 6c 65 64 2e 0a 0a 54 |L> if failed...T| 00065d20 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 |his function cre| 00065d30 61 74 65 73 20 61 20 6e 65 77 20 6d 65 6e 75 2e |ates a new menu.| 00065d40 20 54 68 65 20 74 69 74 6c 65 20 6f 66 20 74 68 | The title of th| 00065d50 65 20 6d 65 6e 75 20 69 73 20 67 69 76 65 6e 20 |e menu is given | 00065d60 69 6e 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f |in the string po| 00065d70 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 2f 2c |inted to by /t/,| 00065d80 20 61 6e 64 20 74 68 65 20 3c 6d 65 6e 75 20 64 | and the <menu d| 00065d90 65 73 63 72 69 70 74 6f 72 3d 3e 6d 65 6e 75 5f |escriptor=>menu_| 00065da0 64 65 73 63 5f 3e 20 69 73 20 67 69 76 65 6e 20 |desc_> is given | 00065db0 69 6e 20 2f 64 65 73 63 2f 2e 20 54 68 65 20 6d |in /desc/. The m| 00065dc0 65 6e 75 20 63 61 6e 20 62 65 20 64 69 73 70 6c |enu can be displ| 00065dd0 61 79 65 64 20 75 73 69 6e 67 20 3c 4d 65 6e 75 |ayed using <Menu| 00065de0 5f 53 68 6f 77 3e 2e 0a 0a 4e 42 3a 20 54 68 69 |_Show>...NB: Thi| 00065df0 73 20 66 75 6e 63 74 69 6f 6e 20 6e 65 65 64 73 |s function needs| 00065e00 20 3c 44 65 73 6b 4c 69 62 3a 53 63 72 65 65 6e | <DeskLib:Screen| 00065e10 2e 68 3d 3e 53 63 72 65 65 6e 3e 20 66 75 6e 63 |.h=>Screen> func| 00065e20 74 69 6f 6e 73 2e 20 59 6f 75 20 6d 75 73 74 20 |tions. You must | 00065e30 68 61 76 65 20 63 61 6c 6c 65 64 20 3c 53 63 72 |have called <Scr| 00065e40 65 65 6e 5f 43 61 63 68 65 4d 6f 64 65 49 6e 66 |een_CacheModeInf| 00065e50 6f 3e 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 |o> before using | 00065e60 4d 65 6e 75 20 66 75 6e 63 74 69 6f 6e 73 2e 0a |Menu functions..| 00065e70 0a 53 65 65 20 61 6c 73 6f 20 74 68 65 20 44 65 |.See also the De| 00065e80 73 6b 74 6f 70 20 43 20 66 75 6e 63 74 69 6f 6e |sktop C function| 00065e90 2c 20 3c 6d 65 6e 75 5f 6e 65 77 3d 3e 6d 65 6e |, <menu_new=>men| 00065ea0 75 5f 6e 65 77 5f 3e 2e 0a 53 65 65 20 61 6c 73 |u_new_>..See als| 00065eb0 6f 20 74 68 65 20 54 69 6d 73 4c 69 62 20 66 75 |o the TimsLib fu| 00065ec0 6e 63 74 69 6f 6e 2c 20 3c 4d 65 6e 75 5f 4e 65 |nction, <Menu_Ne| 00065ed0 77 3d 3e 4d 65 6e 75 5f 4e 65 77 5f 5f 3e 2e 00 |w=>Menu_New__>..| 00065ee0 44 41 54 41 bd 01 00 00 6d 65 6e 75 5f 6e 65 77 |DATA....menu_new| 00065ef0 0a 53 79 6e 74 61 78 3a 09 3c 6d 65 6e 75 3e 20 |.Syntax:.<menu> | 00065f00 6d 65 6e 75 5f 6e 65 77 20 28 63 68 61 72 20 2a |menu_new (char *| 00065f10 74 2c 20 63 68 61 72 20 2a 64 65 73 63 29 3b 0a |t, char *desc);.| 00065f20 48 65 61 64 65 72 3a 09 3c 6d 65 6e 75 2e 68 3d |Header:.<menu.h=| 00065f30 3e 6d 65 6e 75 5f 68 3e 0a 0a 52 65 74 75 72 6e |>menu_h>..Return| 00065f40 73 3a 09 54 68 65 20 6d 65 6e 75 20 68 61 6e 64 |s:.The menu hand| 00065f50 6c 65 20 6f 66 20 74 68 65 20 6d 65 6e 75 2e 0a |le of the menu..| 00065f60 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 00065f70 72 65 61 74 65 73 20 61 20 6e 65 77 20 6d 65 6e |reates a new men| 00065f80 75 2e 20 54 68 65 20 74 69 74 6c 65 20 6f 66 20 |u. The title of | 00065f90 74 68 65 20 6d 65 6e 75 20 69 73 20 67 69 76 65 |the menu is give| 00065fa0 6e 20 69 6e 20 74 68 65 20 73 74 72 69 6e 67 20 |n in the string | 00065fb0 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 |pointed to by /t| 00065fc0 2f 2c 20 61 6e 64 20 74 68 65 20 3c 6d 65 6e 75 |/, and the <menu| 00065fd0 20 64 65 73 63 72 69 70 74 6f 72 3d 3e 6d 65 6e | descriptor=>men| 00065fe0 75 5f 64 65 73 63 5f 3e 20 69 73 20 67 69 76 65 |u_desc_> is give| 00065ff0 6e 20 69 6e 20 2f 64 65 73 63 2f 2e 20 54 68 65 |n in /desc/. The| 00066000 20 65 6e 74 72 69 65 73 20 61 72 65 20 69 6e 64 | entries are ind| 00066010 65 78 65 64 20 66 72 6f 6d 20 31 2e 20 41 20 68 |exed from 1. A h| 00066020 61 6e 64 6c 65 72 20 6e 65 65 64 73 20 74 6f 20 |andler needs to | 00066030 62 65 20 61 74 74 61 63 68 65 64 20 75 73 69 6e |be attached usin| 00066040 67 20 3c 65 76 65 6e 74 5f 61 74 74 61 63 68 6d |g <event_attachm| 00066050 65 6e 75 3e 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a |enu>...Example:.| 00066060 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 00066070 74 72 65 7d 6d 3d 6d 65 6e 75 5f 6e 65 77 28 22 |tre}m=menu_new("| 00066080 45 64 69 74 22 2c 22 3e 49 6e 66 6f 2c 43 72 65 |Edit",">Info,Cre| 00066090 61 74 65 2c 51 75 69 74 22 29 3b 0a 0a 00 00 00 |ate,Quit");.....| 000660a0 44 41 54 41 6b 01 00 00 4d 65 6e 75 5f 4e 65 77 |DATAk...Menu_New| 000660b0 0a 53 79 6e 74 61 78 3a 09 3c 6d 65 6e 75 3e 20 |.Syntax:.<menu> | 000660c0 4d 65 6e 75 5f 4e 65 77 20 28 63 68 61 72 20 2a |Menu_New (char *| 000660d0 74 2c 20 63 68 61 72 20 2a 64 65 73 63 29 3b 0a |t, char *desc);.| 000660e0 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 |Header:.<TimsLib| 000660f0 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c |:Menu.h=>Menu_TL| 00066100 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 |>..Returns:.The | 00066110 6d 65 6e 75 20 68 61 6e 64 6c 65 20 6f 66 20 74 |menu handle of t| 00066120 68 65 20 6d 65 6e 75 2e 0a 0a 54 68 69 73 20 66 |he menu...This f| 00066130 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 |unction creates | 00066140 61 20 6e 65 77 20 6d 65 6e 75 2e 20 54 68 65 20 |a new menu. The | 00066150 74 69 74 6c 65 20 6f 66 20 74 68 65 20 6d 65 6e |title of the men| 00066160 75 20 69 73 20 67 69 76 65 6e 20 69 6e 20 74 68 |u is given in th| 00066170 65 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 |e string pointed| 00066180 20 74 6f 20 62 79 20 2f 74 2f 2c 20 61 6e 64 20 | to by /t/, and | 00066190 74 68 65 20 3c 6d 65 6e 75 20 64 65 73 63 72 69 |the <menu descri| 000661a0 70 74 6f 72 3d 3e 6d 65 6e 75 5f 64 65 73 63 5f |ptor=>menu_desc_| 000661b0 3e 20 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 64 |> is given in /d| 000661c0 65 73 63 2f 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a |esc/...Example:.| 000661d0 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 000661e0 74 72 65 7d 6d 3d 4d 65 6e 75 5f 4e 65 77 28 22 |tre}m=Menu_New("| 000661f0 45 64 69 74 22 2c 22 3e 49 6e 66 6f 2c 43 72 65 |Edit",">Info,Cre| 00066200 61 74 65 2c 51 75 69 74 22 29 3b 00 44 41 54 41 |ate,Quit");.DATA| 00066210 62 00 00 00 6d 65 6e 75 5f 70 74 72 0a 54 68 69 |b...menu_ptr.Thi| 00066220 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 00066230 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 |d in <DeskLib:Wi| 00066240 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 |mp.h=>Wimp> as a| 00066250 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 79 70 65 | pointer to type| 00066260 20 3c 6d 65 6e 75 5f 62 6c 6f 63 6b 3e 2e 00 00 | <menu_block>...| 00066270 44 41 54 41 fb 00 00 00 4d 65 6e 75 5f 52 65 6d |DATA....Menu_Rem| 00066280 6f 76 65 49 74 65 6d 0a 53 79 6e 74 61 78 3a 09 |oveItem.Syntax:.| 00066290 76 6f 69 64 20 4d 65 6e 75 5f 52 65 6d 6f 76 65 |void Menu_Remove| 000662a0 49 74 65 6d 20 28 3c 6d 65 6e 75 5f 70 74 72 3e |Item (<menu_ptr>| 000662b0 20 6d 65 6e 75 2c 20 69 6e 74 20 65 6e 74 72 79 | menu, int entry| 000662c0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000662d0 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d |Lib:Menu.h=>DL_M| 000662e0 65 6e 75 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |enu>..This funct| 000662f0 69 6f 6e 20 72 65 6d 6f 76 65 73 20 6f 6e 65 20 |ion removes one | 00066300 69 74 65 6d 20 66 72 6f 6d 20 61 20 6d 65 6e 75 |item from a menu| 00066310 2c 20 70 72 6f 76 69 64 65 64 20 74 68 65 72 65 |, provided there| 00066320 20 69 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e | is more than on| 00066330 65 20 69 74 65 6d 20 69 6e 20 69 74 2c 20 61 6e |e item in it, an| 00066340 64 20 73 68 75 66 66 6c 65 73 20 74 68 65 20 6f |d shuffles the o| 00066350 74 68 65 72 73 20 75 70 20 74 6f 20 66 69 6c 6c |thers up to fill| 00066360 20 74 68 65 20 73 70 61 63 65 2e 00 44 41 54 41 | the space..DATA| 00066370 05 01 00 00 4d 65 6e 75 5f 53 44 69 73 70 6f 73 |....Menu_SDispos| 00066380 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d |e.Syntax:.void M| 00066390 65 6e 75 5f 53 44 69 73 70 6f 73 65 20 28 3c 6d |enu_SDispose (<m| 000663a0 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 29 3b 0a |enu_ptr> menu);.| 000663b0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000663c0 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 |:Menu.h=>DL_Menu| 000663d0 3e 0a 0a 54 68 69 73 20 69 73 20 61 20 56 45 52 |>..This is a VER| 000663e0 59 20 73 69 6d 70 6c 65 20 64 69 73 70 6f 73 65 |Y simple dispose| 000663f0 20 66 75 6e 63 74 69 6f 6e 2e 20 49 74 20 64 6f | function. It do| 00066400 65 73 20 6e 6f 74 20 66 72 65 65 20 6d 65 6d 6f |es not free memo| 00066410 72 79 20 75 73 65 64 20 62 79 20 73 75 62 6d 65 |ry used by subme| 00066420 6e 75 73 2c 20 6f 72 20 62 79 20 69 6e 64 69 72 |nus, or by indir| 00066430 65 63 74 65 64 20 69 63 6f 6e 20 74 65 78 74 2e |ected icon text.| 00066440 20 49 6e 20 66 61 63 74 20 69 74 20 69 73 20 6a | In fact it is j| 00066450 75 73 74 20 61 20 6d 61 63 72 6f 20 77 68 69 63 |ust a macro whic| 00066460 68 20 63 61 6c 6c 73 20 3c 66 72 65 65 3e 28 29 |h calls <free>()| 00066470 2e 00 00 00 44 41 54 41 1a 01 00 00 6d 65 6e 75 |....DATA....menu| 00066480 5f 73 65 6c 65 63 74 69 6f 6e 0a 54 68 69 73 20 |_selection.This | 00066490 76 61 72 69 61 62 6c 65 20 6f 66 20 74 79 70 65 |variable of type| 000664a0 20 3c 42 4f 4f 4c 3e 20 69 73 20 64 65 66 69 6e | <BOOL> is defin| 000664b0 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 4d |ed in <TimsLib:M| 000664c0 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 2e |enu.h=>Menu_TL>.| 000664d0 20 49 74 20 63 6f 6e 74 61 69 6e 73 20 3c 54 52 | It contains <TR| 000664e0 55 45 3e 20 69 66 20 74 68 65 20 6d 65 6e 75 20 |UE> if the menu | 000664f0 68 61 6e 64 6c 65 72 20 69 73 20 62 65 69 6e 67 |handler is being| 00066500 20 63 61 6c 6c 65 64 20 61 73 20 74 68 65 20 72 | called as the r| 00066510 65 73 75 6c 74 20 6f 66 20 61 6e 20 61 63 74 69 |esult of an acti| 00066520 76 65 20 73 65 6c 65 63 74 69 6f 6e 20 6f 66 66 |ve selection off| 00066530 20 61 20 6d 65 6e 75 20 28 69 65 20 61 20 63 6c | a menu (ie a cl| 00066540 69 63 6b 29 20 6f 72 20 3c 46 41 4c 53 45 3e 20 |ick) or <FALSE> | 00066550 69 66 20 69 74 20 69 73 20 64 75 65 20 74 6f 20 |if it is due to | 00066560 61 20 73 75 62 6d 65 6e 75 20 62 65 69 6e 67 20 |a submenu being | 00066570 6f 70 65 6e 65 64 20 28 61 20 6d 65 6e 75 20 77 |opened (a menu w| 00066580 61 72 6e 69 6e 67 20 65 76 65 6e 74 29 2e 00 00 |arning event)...| 00066590 44 41 54 41 90 01 00 00 4d 65 6e 75 5f 53 65 74 |DATA....Menu_Set| 000665a0 46 6c 61 67 73 0a 53 79 6e 74 61 78 3a 09 76 6f |Flags.Syntax:.vo| 000665b0 69 64 20 4d 65 6e 75 5f 53 65 74 46 6c 61 67 73 |id Menu_SetFlags| 000665c0 20 28 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d 65 6e | (<menu_ptr> men| 000665d0 75 2c 20 69 6e 74 20 65 6e 74 72 79 2c 20 69 6e |u, int entry, in| 000665e0 74 20 74 69 63 6b 2c 20 69 6e 74 20 73 68 61 64 |t tick, int shad| 000665f0 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 00066600 6b 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f |kLib:Menu.h=>DL_| 00066610 4d 65 6e 75 3e 0a 0a 53 79 6e 74 61 78 3a 09 76 |Menu>..Syntax:.v| 00066620 6f 69 64 20 4d 65 6e 75 5f 53 65 74 46 6c 61 67 |oid Menu_SetFlag| 00066630 73 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e 74 |s (<menu> m, int| 00066640 20 65 6e 74 72 79 2c 20 3c 42 4f 4f 4c 3e 20 74 | entry, <BOOL> t| 00066650 69 63 6b 2c 20 42 4f 4f 4c 20 73 68 61 64 65 29 |ick, BOOL shade)| 00066660 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 00066670 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f |ib:Menu.h=>Menu_| 00066680 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |TL>..This functi| 00066690 6f 6e 20 61 6c 74 65 72 73 20 74 68 65 20 73 74 |on alters the st| 000666a0 61 74 65 20 6f 66 20 2f 65 6e 74 72 79 2f 20 6f |ate of /entry/ o| 000666b0 6e 20 74 68 65 20 6d 65 6e 75 20 67 69 76 65 6e |n the menu given| 000666c0 2e 20 53 65 74 74 69 6e 67 20 2f 74 69 63 6b 2f |. Setting /tick/| 000666d0 20 6f 72 20 2f 73 68 61 64 65 2f 20 74 6f 20 31 | or /shade/ to 1| 000666e0 20 73 65 74 73 20 74 68 65 20 65 6e 74 72 79 20 | sets the entry | 000666f0 74 6f 20 68 61 76 65 20 74 68 6f 73 65 20 73 74 |to have those st| 00066700 61 74 65 73 2c 20 30 20 75 6e 74 69 63 6b 73 20 |ates, 0 unticks | 00066710 61 6e 64 2f 6f 72 20 75 6e 73 68 61 64 65 73 2e |and/or unshades.| 00066720 44 41 54 41 61 01 00 00 6d 65 6e 75 5f 73 65 74 |DATAa...menu_set| 00066730 66 6c 61 67 73 0a 53 79 6e 74 61 78 3a 09 76 6f |flags.Syntax:.vo| 00066740 69 64 20 6d 65 6e 75 5f 73 65 74 66 6c 61 67 73 |id menu_setflags| 00066750 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e 74 20 | (<menu> m, int | 00066760 65 6e 74 72 79 2c 20 69 6e 74 20 74 69 63 6b 2c |entry, int tick,| 00066770 20 69 6e 74 20 66 61 64 65 29 3b 0a 48 65 61 64 | int fade);.Head| 00066780 65 72 3a 09 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e |er:.<menu.h=>men| 00066790 75 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |u_h>..This funct| 000667a0 69 6f 6e 20 73 65 74 73 20 74 68 65 20 66 6c 61 |ion sets the fla| 000667b0 67 73 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 |gs for a particu| 000667c0 6c 61 72 20 6d 65 6e 75 20 65 6e 74 72 79 20 28 |lar menu entry (| 000667d0 73 70 65 63 69 66 69 65 64 20 62 79 20 7b 2f 7d |specified by {/}| 000667e0 6d 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 65 6e 74 72 |m{/} and {/}entr| 000667f0 79 7b 2f 7d 29 2e 20 49 66 20 2f 74 69 63 6b 2f |y{/}). If /tick/| 00066800 20 69 73 20 6e 6f 6e 2d 7a 65 72 6f 20 74 68 65 | is non-zero the| 00066810 6e 20 74 68 65 20 65 6e 74 72 79 20 69 73 20 74 |n the entry is t| 00066820 69 63 6b 65 64 2c 20 61 6e 64 20 69 66 20 2f 66 |icked, and if /f| 00066830 61 64 65 2f 20 69 73 20 6e 6f 6e 2d 7a 65 72 6f |ade/ is non-zero| 00066840 20 74 68 65 6e 20 74 68 65 20 65 6e 74 72 79 20 | then the entry | 00066850 69 73 20 66 61 64 65 64 20 28 73 68 61 64 65 64 |is faded (shaded| 00066860 29 20 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e |) so that it can| 00066870 20 6e 6f 74 20 62 65 20 73 65 6c 65 63 74 65 64 | not be selected| 00066880 2e 00 00 00 44 41 54 41 cf 00 00 00 4d 65 6e 75 |....DATA....Menu| 00066890 5f 53 65 74 54 65 78 74 0a 53 79 6e 74 61 78 3a |_SetText.Syntax:| 000668a0 09 76 6f 69 64 20 4d 65 6e 75 5f 53 65 74 54 65 |.void Menu_SetTe| 000668b0 78 74 20 28 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d |xt (<menu_ptr> m| 000668c0 65 6e 75 2c 20 69 6e 74 20 65 6e 74 72 79 2c 20 |enu, int entry, | 000668d0 63 68 61 72 20 2a 74 65 78 74 29 3b 0a 48 65 61 |char *text);.Hea| 000668e0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 |der:.<DeskLib:Me| 000668f0 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a 0a |nu.h=>DL_Menu>..| 00066900 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 |This function se| 00066910 74 73 20 74 68 65 20 74 65 78 74 20 66 6f 72 20 |ts the text for | 00066920 61 20 67 69 76 65 6e 20 6d 65 6e 75 20 65 6e 74 |a given menu ent| 00066930 72 79 20 74 6f 20 62 65 20 74 68 61 74 20 70 6f |ry to be that po| 00066940 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 65 78 |inted to by /tex| 00066950 74 2f 2e 00 44 41 54 41 3f 01 00 00 4d 65 6e 75 |t/..DATA?...Menu| 00066960 5f 53 68 6f 77 0a 53 79 6e 74 61 78 3a 09 76 6f |_Show.Syntax:.vo| 00066970 69 64 20 4d 65 6e 75 5f 53 68 6f 77 20 28 3c 6d |id Menu_Show (<m| 00066980 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 2c 20 69 |enu_ptr> menu, i| 00066990 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 |nt x, int y);.He| 000669a0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d |ader:.<DeskLib:M| 000669b0 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a |enu.h=>DL_Menu>.| 000669c0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 000669d0 68 6f 77 73 20 74 68 65 20 67 69 76 65 6e 20 6d |hows the given m| 000669e0 65 6e 75 20 6f 6e 20 73 63 72 65 65 6e 2c 20 61 |enu on screen, a| 000669f0 74 20 74 68 65 20 67 69 76 65 6e 20 2f 78 2f 20 |t the given /x/ | 00066a00 61 6e 64 20 2f 79 2f 20 70 6f 73 69 74 69 6f 6e |and /y/ position| 00066a10 2e 20 49 66 20 2f 79 2f 20 69 73 20 2d 31 20 74 |. If /y/ is -1 t| 00066a20 68 65 6e 20 74 68 65 20 68 65 69 67 68 74 20 69 |hen the height i| 00066a30 73 20 63 6f 72 72 65 63 74 20 66 6f 72 20 69 63 |s correct for ic| 00066a40 6f 6e 20 62 61 72 20 69 63 6f 6e 73 20 28 76 65 |on bar icons (ve| 00066a50 72 79 20 68 61 6e 64 79 29 2e 0a 0a 53 65 65 20 |ry handy)...See | 00066a60 61 6c 73 6f 20 74 68 65 20 54 69 6d 73 4c 69 62 |also the TimsLib| 00066a70 20 66 75 6e 63 74 69 6f 6e 2c 20 3c 4d 65 6e 75 | function, <Menu| 00066a80 5f 53 68 6f 77 3d 3e 4d 65 6e 75 5f 53 68 6f 77 |_Show=>Menu_Show| 00066a90 5f 3e 2e 00 44 41 54 41 50 01 00 00 4d 65 6e 75 |_>..DATAP...Menu| 00066aa0 5f 53 68 6f 77 0a 53 79 6e 74 61 78 3a 09 76 6f |_Show.Syntax:.vo| 00066ab0 69 64 20 4d 65 6e 75 5f 53 68 6f 77 20 28 3c 6d |id Menu_Show (<m| 00066ac0 65 6e 75 3e 20 6d 2c 20 3c 77 69 6d 70 5f 70 6f |enu> m, <wimp_po| 00066ad0 69 6e 74 3e 20 6d 6f 75 73 65 5f 70 6f 73 2c 20 |int> mouse_pos, | 00066ae0 3c 42 4f 4f 4c 3e 20 69 63 6f 6e 62 61 72 29 3b |<BOOL> iconbar);| 00066af0 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 |.Header:.<TimsLi| 00066b00 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 |b:Menu.h=>Menu_T| 00066b10 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |L>..This functio| 00066b20 6e 20 73 68 6f 77 73 20 74 68 65 20 6d 65 6e 75 |n shows the menu| 00066b30 20 2f 6d 2f 20 6f 6e 20 73 63 72 65 65 6e 2c 20 | /m/ on screen, | 00066b40 75 73 69 6e 67 20 74 68 65 20 6d 6f 75 73 65 20 |using the mouse | 00066b50 70 6f 73 69 74 69 6f 6e 20 67 69 76 65 6e 2e 20 |position given. | 00066b60 49 66 20 2f 69 63 6f 6e 62 61 72 2f 20 69 73 20 |If /iconbar/ is | 00066b70 3c 54 52 55 45 3e 20 74 68 65 6e 20 74 68 65 20 |<TRUE> then the | 00066b80 76 65 72 74 69 63 61 6c 20 6d 6f 75 73 65 20 70 |vertical mouse p| 00066b90 6f 73 69 74 69 6f 6e 20 69 73 20 69 67 6e 6f 72 |osition is ignor| 00066ba0 65 64 20 61 6e 64 20 74 68 65 20 6d 65 6e 75 20 |ed and the menu | 00066bb0 69 73 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 |is placed in the| 00066bc0 20 63 6f 72 72 65 63 74 20 70 6f 73 69 74 69 6f | correct positio| 00066bd0 6e 20 6f 76 65 72 20 74 68 65 20 69 63 6f 6e 20 |n over the icon | 00066be0 62 61 72 2e 44 41 54 41 00 01 00 00 4d 65 6e 75 |bar.DATA....Menu| 00066bf0 5f 53 68 6f 77 4c 61 73 74 0a 53 79 6e 74 61 78 |_ShowLast.Syntax| 00066c00 3a 09 76 6f 69 64 20 4d 65 6e 75 5f 53 68 6f 77 |:.void Menu_Show| 00066c10 4c 61 73 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 |Last (void);.Hea| 00066c20 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 |der:.<DeskLib:Me| 00066c30 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a 0a |nu.h=>DL_Menu>..| 00066c40 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 |This function sh| 00066c50 6f 77 73 20 74 68 65 20 6c 61 73 74 20 6d 65 6e |ows the last men| 00066c60 75 20 73 68 6f 77 6e 20 77 69 74 68 20 3c 4d 65 |u shown with <Me| 00066c70 6e 75 5f 53 68 6f 77 3e 2c 20 69 6e 20 74 68 65 |nu_Show>, in the| 00066c80 20 73 61 6d 65 20 70 6c 61 63 65 20 61 73 20 62 | same place as b| 00066c90 65 66 6f 72 65 2e 20 49 74 20 69 73 20 69 6e 74 |efore. It is int| 00066ca0 65 6e 64 65 64 20 74 68 61 74 20 74 68 69 73 20 |ended that this | 00066cb0 73 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 |should be called| 00066cc0 20 77 68 65 6e 20 2a 41 64 6a 75 73 74 2a 20 69 | when *Adjust* i| 00066cd0 73 20 63 6c 69 63 6b 65 64 20 6f 6e 20 61 20 6d |s clicked on a m| 00066ce0 65 6e 75 2e 44 41 54 41 b0 01 00 00 6d 65 6e 75 |enu.DATA....menu| 00066cf0 5f 73 75 62 6d 65 6e 75 0a 53 79 6e 74 61 78 3a |_submenu.Syntax:| 00066d00 09 76 6f 69 64 20 6d 65 6e 75 5f 73 75 62 6d 65 |.void menu_subme| 00066d10 6e 75 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e |nu (<menu> m, in| 00066d20 74 20 65 6e 74 72 79 2c 20 6d 65 6e 75 20 73 75 |t entry, menu su| 00066d30 62 6d 65 6e 75 29 3b 0a 48 65 61 64 65 72 3a 09 |bmenu);.Header:.| 00066d40 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e 75 5f 68 3e |<menu.h=>menu_h>| 00066d50 20 28 44 65 73 6b 74 6f 70 20 43 29 0a 09 3c 54 | (Desktop C)..<T| 00066d60 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d |imsLib:Menu.h=>M| 00066d70 65 6e 75 5f 54 4c 3e 20 28 54 69 6d 73 4c 69 62 |enu_TL> (TimsLib| 00066d80 29 0a 0a 4b 6e 6f 77 6e 20 69 6e 20 54 69 6d 73 |)..Known in Tims| 00066d90 4c 69 62 20 61 73 20 7b 2a 7d 4d 65 6e 75 5f 53 |Lib as {*}Menu_S| 00066da0 75 62 4d 65 6e 75 7b 2a 7d 2e 0a 0a 54 68 69 73 |ubMenu{*}...This| 00066db0 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 61 63 68 | function attach| 00066dc0 65 73 20 74 68 65 20 73 75 62 6d 65 6e 75 20 77 |es the submenu w| 00066dd0 68 6f 73 65 20 6d 65 6e 75 20 68 61 6e 64 6c 65 |hose menu handle| 00066de0 20 69 73 20 67 69 76 65 6e 20 74 6f 20 74 68 65 | is given to the| 00066df0 20 6d 65 6e 75 20 2f 6d 2f 2c 20 61 74 20 74 68 | menu /m/, at th| 00066e00 65 20 65 6e 74 72 79 20 73 70 65 63 69 66 69 65 |e entry specifie| 00066e10 64 2e 20 49 66 20 2f 73 75 62 6d 65 6e 75 2f 20 |d. If /submenu/ | 00066e20 69 73 20 7a 65 72 6f 20 74 68 65 6e 20 74 68 65 |is zero then the| 00066e30 20 65 78 69 73 74 69 6e 67 20 73 75 62 6d 65 6e | existing submen| 00066e40 75 20 69 73 20 72 65 6d 6f 76 65 64 2e 0a 0a 4f |u is removed...O| 00066e50 6e 63 65 20 61 74 74 61 63 68 65 64 2c 20 61 20 |nce attached, a | 00066e60 73 75 62 6d 65 6e 75 20 63 61 6e 6e 6f 74 20 62 |submenu cannot b| 00066e70 65 20 65 78 74 65 6e 64 65 64 2c 20 6f 72 20 64 |e extended, or d| 00066e80 65 6c 65 74 65 64 20 28 6f 6e 20 69 74 73 20 6f |eleted (on its o| 00066e90 77 6e 29 2e 44 41 54 41 69 01 00 00 6d 65 6e 75 |wn).DATAi...menu| 00066ea0 5f 73 75 62 6d 65 6e 75 0a 54 68 69 73 20 74 79 |_submenu.This ty| 00066eb0 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 00066ec0 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 | <DeskLib:Wimp.h| 00066ed0 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 69 73 20 75 |=>Wimp>. It is u| 00066ee0 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 61 |sed as part of a| 00066ef0 20 6d 65 6e 75 20 64 65 66 69 6e 69 74 69 6f 6e | menu definition| 00066f00 20 74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 65 | to indicate the| 00066f10 20 73 75 62 6d 65 6e 75 20 6f 72 20 73 75 62 77 | submenu or subw| 00066f20 69 6e 64 6f 77 20 61 74 74 61 63 68 65 64 20 74 |indow attached t| 00066f30 6f 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 65 |o a particular e| 00066f40 6e 74 72 79 2e 20 49 74 20 69 73 20 64 65 66 69 |ntry. It is defi| 00066f50 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ned as the follo| 00066f60 77 69 6e 67 20 75 6e 69 6f 6e 3a 0a 0a 20 20 5c |wing union:.. \| 00066f70 7b 0a 20 20 20 20 3c 6d 65 6e 75 5f 70 74 72 3e |{. <menu_ptr>| 00066f80 09 6d 65 6e 75 3b 0a 20 20 20 20 3c 77 69 6e 64 |.menu;. <wind| 00066f90 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 69 6e 64 6f |ow_handle>.windo| 00066fa0 77 3b 0a 20 20 20 20 69 6e 74 09 76 61 6c 75 65 |w;. int.value| 00066fb0 3b 0a 20 20 7d 0a 0a 2f 76 61 6c 75 65 2f 20 73 |;. }../value/ s| 00066fc0 68 6f 75 6c 64 20 62 65 20 73 65 74 20 74 6f 20 |hould be set to | 00066fd0 2d 31 20 69 66 20 6e 6f 20 73 75 62 6d 65 6e 75 |-1 if no submenu| 00066fe0 2f 73 75 62 77 69 6e 64 6f 77 20 69 73 20 74 6f |/subwindow is to| 00066ff0 20 62 65 20 61 74 74 61 63 68 65 64 2e 00 00 00 | be attached....| 00067000 44 41 54 41 e9 00 00 00 6d 65 6e 75 5f 73 75 62 |DATA....menu_sub| 00067010 6d 65 6e 75 70 6f 73 0a 54 68 69 73 20 76 61 72 |menupos.This var| 00067020 69 61 62 6c 65 20 6f 66 20 74 79 70 65 20 3c 77 |iable of type <w| 00067030 69 6d 70 5f 70 6f 69 6e 74 3e 20 69 73 20 64 65 |imp_point> is de| 00067040 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 |fined in <TimsLi| 00067050 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 |b:Menu.h=>Menu_T| 00067060 4c 3e 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 20 |L>. It contains | 00067070 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 70 61 73 |the position pas| 00067080 73 65 64 20 62 79 20 61 6e 79 20 4d 65 6e 75 57 |sed by any MenuW| 00067090 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 20 |arning messages | 000670a0 69 65 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 |ie the position | 000670b0 61 20 73 75 62 6d 65 6e 75 20 73 68 6f 75 6c 64 |a submenu should| 000670c0 20 62 65 20 6f 70 65 6e 65 64 20 61 74 20 69 6e | be opened at in| 000670d0 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 74 68 65 | response to the| 000670e0 20 6d 65 73 73 61 67 65 2e 00 00 00 44 41 54 41 | message....DATA| 000670f0 fc 00 00 00 6d 65 6e 75 5f 73 79 73 68 61 6e 64 |....menu_syshand| 00067100 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |le.Syntax:.void | 00067110 2a 6d 65 6e 75 5f 73 79 73 68 61 6e 64 6c 65 20 |*menu_syshandle | 00067120 28 3c 6d 65 6e 75 3e 20 6d 29 3b 0a 48 65 61 64 |(<menu> m);.Head| 00067130 65 72 3a 09 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e |er:.<menu.h=>men| 00067140 75 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 41 |u_h>..Returns:.A| 00067150 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 3c 77 | pointer to a <w| 00067160 69 6d 70 5f 6d 65 6e 75 73 74 72 3e 2e 0a 0a 54 |imp_menustr>...T| 00067170 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 |his function get| 00067180 73 20 74 68 65 20 6d 65 6e 75 20 70 6f 69 6e 74 |s the menu point| 00067190 65 72 20 66 6f 72 20 61 20 67 69 76 65 6e 20 6d |er for a given m| 000671a0 65 6e 75 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 |enu...See also t| 000671b0 68 65 20 54 69 6d 73 4c 69 62 20 66 75 6e 63 74 |he TimsLib funct| 000671c0 69 6f 6e 2c 20 3c 4d 65 6e 75 5f 53 79 73 48 61 |ion, <Menu_SysHa| 000671d0 6e 64 6c 65 3d 3e 4d 65 6e 75 5f 53 79 73 48 61 |ndle=>Menu_SysHa| 000671e0 6e 64 6c 65 5f 5f 3e 2e 44 41 54 41 3b 01 00 00 |ndle__>.DATA;...| 000671f0 4d 65 6e 75 5f 53 79 73 48 61 6e 64 6c 65 0a 53 |Menu_SysHandle.S| 00067200 79 6e 74 61 78 3a 09 3c 6d 65 6e 75 5f 70 74 72 |yntax:.<menu_ptr| 00067210 3e 20 4d 65 6e 75 5f 53 79 73 48 61 6e 64 6c 65 |> Menu_SysHandle| 00067220 20 28 6d 65 6e 75 5f 70 74 72 20 6d 29 3b 0a 48 | (menu_ptr m);.H| 00067230 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00067240 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e |Menu.h=>DL_Menu>| 00067250 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 76 |..Returns:.The v| 00067260 61 6c 75 65 20 70 61 73 73 65 64 2c 20 2f 6d 2f |alue passed, /m/| 00067270 21 0a 0a 54 68 69 73 20 69 73 20 61 20 70 6f 69 |!..This is a poi| 00067280 6e 74 6c 65 73 73 20 66 75 6e 63 74 69 6f 6e 2c |ntless function,| 00067290 20 72 65 74 61 69 6e 65 64 20 6f 6e 6c 79 20 66 | retained only f| 000672a0 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 |or compatibility| 000672b0 20 77 69 74 68 20 44 65 73 6b 74 6f 70 20 43 27 | with Desktop C'| 000672c0 73 20 3c 6d 65 6e 75 5f 73 79 73 68 61 6e 64 6c |s <menu_syshandl| 000672d0 65 3e 2c 20 73 69 6e 63 65 20 7b 2a 7d 6d 65 6e |e>, since {*}men| 000672e0 75 5f 70 74 72 7b 2a 7d 73 20 69 6e 20 44 65 73 |u_ptr{*}s in Des| 000672f0 6b 4c 69 62 20 61 72 65 20 70 6f 69 6e 74 65 72 |kLib are pointer| 00067300 20 74 6f 20 74 68 65 20 75 6e 64 65 72 6c 79 69 | to the underlyi| 00067310 6e 67 20 57 69 6d 70 20 64 65 66 69 6e 69 74 69 |ng Wimp definiti| 00067320 6f 6e 2e 00 44 41 54 41 39 01 00 00 4d 65 6e 75 |on..DATA9...Menu| 00067330 5f 53 79 73 48 61 6e 64 6c 65 0a 53 79 6e 74 61 |_SysHandle.Synta| 00067340 78 3a 09 3c 6d 65 6e 75 5f 70 74 72 3e 20 4d 65 |x:.<menu_ptr> Me| 00067350 6e 75 5f 53 79 73 48 61 6e 64 6c 65 20 28 3c 6d |nu_SysHandle (<m| 00067360 65 6e 75 3e 20 6d 29 3b 0a 48 65 61 64 65 72 3a |enu> m);.Header:| 00067370 09 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e 68 |.<TimsLib:Menu.h| 00067380 3d 3e 4d 65 6e 75 5f 54 4c 3e 0a 0a 52 65 74 75 |=>Menu_TL>..Retu| 00067390 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000673a0 74 68 65 20 6d 65 6e 75 2e 0a 0a 54 68 69 73 20 |the menu...This | 000673b0 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 000673c0 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 | a pointer to th| 000673d0 65 20 6d 65 6e 75 20 73 74 72 75 63 74 75 72 65 |e menu structure| 000673e0 20 69 74 73 65 6c 66 2c 20 66 6f 72 20 79 6f 75 | itself, for you| 000673f0 20 74 6f 20 6d 6f 64 69 66 79 20 69 66 20 6e 65 | to modify if ne| 00067400 65 64 65 64 2e 20 49 74 20 69 73 20 61 63 74 75 |eded. It is actu| 00067410 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 61 73 20 |ally defined as | 00067420 61 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6b 65 20 |a function like | 00067430 6d 61 63 72 6f 20 72 65 74 75 72 6e 69 6e 67 20 |macro returning | 00067440 2f 6d 2f 20 63 61 73 74 20 61 73 20 61 20 7b 2a |/m/ cast as a {*| 00067450 7d 6d 65 6e 75 5f 70 74 72 7b 2a 7d 2e 00 00 00 |}menu_ptr{*}....| 00067460 44 41 54 41 ae 00 00 00 4d 65 6e 75 5f 54 69 63 |DATA....Menu_Tic| 00067470 6b 45 6e 74 72 79 0a 53 79 6e 74 61 78 3a 09 76 |kEntry.Syntax:.v| 00067480 6f 69 64 20 4d 65 6e 75 5f 54 69 63 6b 45 6e 74 |oid Menu_TickEnt| 00067490 72 79 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e |ry (<menu> m, in| 000674a0 74 20 65 6e 74 72 79 29 3b 0a 48 65 61 64 65 72 |t entry);.Header| 000674b0 3a 09 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e |:.<TimsLib:Menu.| 000674c0 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 0a 0a 54 68 69 |h=>Menu_TL>..Thi| 000674d0 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 |s function-like | 000674e0 6d 61 63 72 6f 20 74 69 63 6b 73 20 74 68 65 20 |macro ticks the | 000674f0 67 69 76 65 6e 20 65 6e 74 72 79 20 69 6e 20 74 |given entry in t| 00067500 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 2e 00 00 |he given menu...| 00067510 44 41 54 41 8b 03 00 00 54 69 6d 73 4c 69 62 3a |DATA....TimsLib:| 00067520 4d 65 6e 75 2e 68 0a 54 68 69 73 20 68 65 61 64 |Menu.h.This head| 00067530 65 72 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 65 |er is a complete| 00067540 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 66 6f 72 | replacement for| 00067550 20 62 6f 74 68 20 44 65 73 6b 74 6f 70 20 43 27 | both Desktop C'| 00067560 73 20 3c 6d 65 6e 75 2e 68 3d 3e 6d 65 6e 75 5f |s <menu.h=>menu_| 00067570 68 3e 20 61 6e 64 20 44 65 73 6b 4c 69 62 27 73 |h> and DeskLib's| 00067580 20 3c 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e | <Menu.h=>DL_Men| 00067590 75 3e 2e 20 49 74 20 70 72 6f 76 69 64 65 73 20 |u>. It provides | 000675a0 73 75 70 65 72 69 6f 72 20 6d 65 6e 75 20 68 61 |superior menu ha| 000675b0 6e 64 6c 69 6e 67 20 66 61 63 69 6c 69 74 69 65 |ndling facilitie| 000675c0 73 20 74 6f 20 74 68 65 20 73 74 61 6e 64 61 72 |s to the standar| 000675d0 64 20 44 65 73 6b 4c 69 62 20 66 75 6e 63 74 69 |d DeskLib functi| 000675e0 6f 6e 73 2c 20 61 6c 6c 6f 77 69 6e 67 20 6d 65 |ons, allowing me| 000675f0 6e 75 73 20 74 6f 20 62 65 20 61 74 74 61 63 68 |nus to be attach| 00067600 65 64 20 69 6e 20 61 20 73 69 6d 69 6c 61 72 20 |ed in a similar | 00067610 77 61 79 20 74 6f 20 74 68 65 20 3c 45 76 65 6e |way to the <Even| 00067620 74 3e 20 6d 6f 64 75 6c 65 2e 0a 0a 46 75 6e 63 |t> module...Func| 00067630 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 |tions:..#indent | 00067640 34 0a 23 54 61 62 6c 65 20 39 20 32 30 0a 3c 4d |4.#Table 9 20.<M| 00067650 65 6e 75 5f 4e 65 77 3d 3e 4d 65 6e 75 5f 4e 65 |enu_New=>Menu_Ne| 00067660 77 5f 5f 3e 0a 3c 4d 65 6e 75 5f 43 6f 6c 6f 75 |w__>.<Menu_Colou| 00067670 72 4d 65 6e 75 3e 0a 3c 4d 65 6e 75 5f 44 69 73 |rMenu>.<Menu_Dis| 00067680 70 6f 73 65 3e 0a 3c 4d 65 6e 75 5f 53 75 62 4d |pose>.<Menu_SubM| 00067690 65 6e 75 3e 0a 3c 4d 65 6e 75 5f 41 64 64 44 69 |enu>.<Menu_AddDi| 000676a0 61 6c 6f 67 42 6f 78 3e 0a 3c 4d 65 6e 75 5f 53 |alogBox>.<Menu_S| 000676b0 65 74 46 6c 61 67 73 3e 0a 3c 4d 65 6e 75 5f 54 |etFlags>.<Menu_T| 000676c0 69 63 6b 45 6e 74 72 79 3e 0a 3c 4d 65 6e 75 5f |ickEntry>.<Menu_| 000676d0 55 6e 54 69 63 6b 45 6e 74 72 79 3e 0a 3c 4d 65 |UnTickEntry>.<Me| 000676e0 6e 75 5f 46 61 64 65 45 6e 74 72 79 3e 0a 3c 4d |nu_FadeEntry>.<M| 000676f0 65 6e 75 5f 55 6e 46 61 64 65 45 6e 74 72 79 3e |enu_UnFadeEntry>| 00067700 0a 3c 4d 65 6e 75 5f 4d 61 6b 65 57 72 69 74 61 |.<Menu_MakeWrita| 00067710 62 6c 65 3e 0a 3c 4d 65 6e 75 5f 53 68 6f 77 3d |ble>.<Menu_Show=| 00067720 3e 4d 65 6e 75 5f 53 68 6f 77 5f 3e 0a 3c 4d 65 |>Menu_Show_>.<Me| 00067730 6e 75 5f 53 79 73 48 61 6e 64 6c 65 3d 3e 4d 65 |nu_SysHandle=>Me| 00067740 6e 75 5f 53 79 73 48 61 6e 64 6c 65 5f 5f 3e 0a |nu_SysHandle__>.| 00067750 3c 4d 65 6e 75 5f 41 74 74 61 63 68 4d 65 6e 75 |<Menu_AttachMenu| 00067760 3e 0a 3c 4d 65 6e 75 5f 41 74 74 61 63 68 4d 65 |>.<Menu_AttachMe| 00067770 6e 75 4d 61 6b 65 72 3e 0a 3c 4d 65 6e 75 5f 41 |nuMaker>.<Menu_A| 00067780 64 64 44 79 6e 61 6d 69 63 44 69 61 6c 6f 67 42 |ddDynamicDialogB| 00067790 6f 78 3e 0a 3c 4d 65 6e 75 5f 44 65 74 61 63 68 |ox>.<Menu_Detach| 000677a0 4d 65 6e 75 3e 0a 23 45 6e 64 54 61 62 6c 65 0a |Menu>.#EndTable.| 000677b0 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 73 3a 0a |#indent..Types:.| 000677c0 0a 23 69 6e 64 65 6e 74 20 31 31 0a 23 74 61 62 |.#indent 11.#tab| 000677d0 6c 65 20 6c 69 6e 65 73 20 31 0a 3c 6d 65 6e 75 |le lines 1.<menu| 000677e0 3e 0a 3c 6d 65 6e 75 5f 68 61 6e 64 6c 65 72 3e |>.<menu_handler>| 000677f0 0a 3c 6d 65 6e 75 5f 6d 61 6b 65 72 3e 0a 23 65 |.<menu_maker>.#e| 00067800 6e 64 74 61 62 6c 65 0a 23 69 6e 64 65 6e 74 0a |ndtable.#indent.| 00067810 0a 56 61 72 69 61 62 6c 65 73 3a 0a 0a 23 74 61 |.Variables:..#ta| 00067820 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 6d |ble columns 3.<m| 00067830 65 6e 75 5f 61 64 6a 75 73 74 5f 70 72 65 73 73 |enu_adjust_press| 00067840 65 64 3e 0a 3c 6d 65 6e 75 5f 63 75 72 72 65 6e |ed>.<menu_curren| 00067850 74 5f 77 69 6e 64 6f 77 3e 0a 3c 6d 65 6e 75 5f |t_window>.<menu_| 00067860 63 75 72 72 65 6e 74 5f 69 63 6f 6e 3e 0a 3c 6d |current_icon>.<m| 00067870 65 6e 75 5f 73 65 6c 65 63 74 69 6f 6e 3e 0a 3c |enu_selection>.<| 00067880 6d 65 6e 75 5f 73 75 62 6d 65 6e 75 70 6f 73 3e |menu_submenupos>| 00067890 0a 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |..#EndTable.DATA| 000678a0 b5 00 00 00 4d 65 6e 75 5f 55 6e 46 61 64 65 45 |....Menu_UnFadeE| 000678b0 6e 74 72 79 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |ntry.Syntax:.voi| 000678c0 64 20 4d 65 6e 75 5f 55 6e 46 61 64 65 45 6e 74 |d Menu_UnFadeEnt| 000678d0 72 79 20 28 3c 6d 65 6e 75 3e 20 6d 2c 20 69 6e |ry (<menu> m, in| 000678e0 74 20 65 6e 74 72 79 29 3b 0a 48 65 61 64 65 72 |t entry);.Header| 000678f0 3a 09 3c 54 69 6d 73 4c 69 62 3a 4d 65 6e 75 2e |:.<TimsLib:Menu.| 00067900 68 3d 3e 4d 65 6e 75 5f 54 4c 3e 0a 0a 54 68 69 |h=>Menu_TL>..Thi| 00067910 73 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 |s function-like | 00067920 6d 61 63 72 6f 20 75 6e 73 68 61 64 65 73 20 74 |macro unshades t| 00067930 68 65 20 67 69 76 65 6e 20 65 6e 74 72 79 20 69 |he given entry i| 00067940 6e 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 |n the given menu| 00067950 2e 00 00 00 44 41 54 41 b4 00 00 00 4d 65 6e 75 |....DATA....Menu| 00067960 5f 55 6e 54 69 63 6b 45 6e 74 72 79 0a 53 79 6e |_UnTickEntry.Syn| 00067970 74 61 78 3a 09 76 6f 69 64 20 4d 65 6e 75 5f 55 |tax:.void Menu_U| 00067980 6e 54 69 63 6b 45 6e 74 72 79 20 28 3c 6d 65 6e |nTickEntry (<men| 00067990 75 3e 20 6d 2c 20 69 6e 74 20 65 6e 74 72 79 29 |u> m, int entry)| 000679a0 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 000679b0 69 62 3a 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f |ib:Menu.h=>Menu_| 000679c0 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |TL>..This functi| 000679d0 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 75 6e |on-like macro un| 000679e0 74 69 63 6b 73 20 74 68 65 20 67 69 76 65 6e 20 |ticks the given | 000679f0 65 6e 74 72 79 20 69 6e 20 74 68 65 20 67 69 76 |entry in the giv| 00067a00 65 6e 20 6d 65 6e 75 2e 44 41 54 41 74 01 00 00 |en menu.DATAt...| 00067a10 4d 65 6e 75 5f 57 61 72 6e 0a 53 79 6e 74 61 78 |Menu_Warn.Syntax| 00067a20 3a 09 76 6f 69 64 20 4d 65 6e 75 5f 57 61 72 6e |:.void Menu_Warn| 00067a30 20 28 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d 65 6e | (<menu_ptr> men| 00067a40 75 2c 20 69 6e 74 20 65 6e 74 72 79 2c 20 3c 42 |u, int entry, <B| 00067a50 4f 4f 4c 3e 20 79 6e 2c 20 3c 65 76 65 6e 74 5f |OOL> yn, <event_| 00067a60 68 61 6e 64 6c 65 72 3e 20 68 61 6e 64 6c 65 72 |handler> handler| 00067a70 2c 20 76 6f 69 64 20 2a 72 65 66 29 3b 0a 48 65 |, void *ref);.He| 00067a80 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d |ader:.<DeskLib:M| 00067a90 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a |enu.h=>DL_Menu>.| 00067aa0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 00067ab0 6c 61 69 6d 73 20 74 68 65 20 4d 65 6e 75 20 57 |laims the Menu W| 00067ac0 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 20 75 |arning message u| 00067ad0 73 69 6e 67 20 3c 45 76 65 6e 74 4d 73 67 3e 20 |sing <EventMsg> | 00067ae0 61 6e 64 20 61 74 74 61 63 68 65 73 20 74 68 65 |and attaches the| 00067af0 20 67 69 76 65 6e 20 68 61 6e 64 6c 65 72 20 74 | given handler t| 00067b00 6f 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 |o the given menu| 00067b10 20 65 6e 74 72 79 2c 20 6d 61 6b 69 6e 67 20 69 | entry, making i| 00067b20 74 20 4d 65 6e 75 20 57 61 72 6e 69 6e 67 20 6d |t Menu Warning m| 00067b30 65 73 73 61 67 65 73 2e 20 49 66 20 2f 79 6e 2f |essages. If /yn/| 00067b40 20 69 73 20 3c 54 52 55 45 3e 20 69 74 20 61 74 | is <TRUE> it at| 00067b50 74 61 63 68 65 73 20 74 68 65 20 68 61 6e 64 6c |taches the handl| 00067b60 65 72 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 |er, otherwise it| 00067b70 20 72 65 6d 6f 76 65 73 20 69 74 2e 44 41 54 41 | removes it.DATA| 00067b80 ee 00 00 00 4d 65 6e 75 5f 50 6f 70 55 70 0a 53 |....Menu_PopUp.S| 00067b90 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 6e 75 |yntax:.void Menu| 00067ba0 5f 50 6f 70 55 70 20 28 3c 6d 65 6e 75 5f 70 74 |_PopUp (<menu_pt| 00067bb0 72 3e 20 6d 65 6e 75 2c 20 3c 77 69 6e 64 6f 77 |r> menu, <window| 00067bc0 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 |_handle> win, <i| 00067bd0 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 63 6f 6e |con_handle> icon| 00067be0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00067bf0 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d |Lib:Menu.h=>DL_M| 00067c00 65 6e 75 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |enu>..This funct| 00067c10 69 6f 6e 20 70 6f 70 73 20 74 68 65 20 6d 65 6e |ion pops the men| 00067c20 75 20 2f 6d 65 6e 75 2f 20 75 70 20 6a 75 73 74 |u /menu/ up just| 00067c30 20 62 65 73 69 64 65 20 74 68 65 20 67 69 76 65 | beside the give| 00067c40 6e 20 69 63 6f 6e 2c 20 61 73 20 72 65 63 6f 6d |n icon, as recom| 00067c50 6d 65 6e 64 65 64 20 69 6e 20 74 68 65 20 73 74 |mended in the st| 00067c60 79 6c 65 20 67 75 69 64 65 2e 00 00 44 41 54 41 |yle guide...DATA| 00067c70 19 01 00 00 4d 65 6e 75 5f 50 6f 70 55 70 41 75 |....Menu_PopUpAu| 00067c80 74 6f 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |to.Syntax:.void | 00067c90 4d 65 6e 75 5f 50 6f 70 55 70 41 75 74 6f 20 28 |Menu_PopUpAuto (| 00067ca0 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 29 |<menu_ptr> menu)| 00067cb0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00067cc0 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 |ib:Menu.h=>DL_Me| 00067cd0 6e 75 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |nu>..This functi| 00067ce0 6f 6e 20 70 6f 70 73 20 74 68 65 20 6d 65 6e 75 |on pops the menu| 00067cf0 20 2f 6d 65 6e 75 2f 20 75 70 20 6a 75 73 74 20 | /menu/ up just | 00067d00 62 65 73 69 64 65 20 74 68 65 20 69 63 6f 6e 20 |beside the icon | 00067d10 77 68 69 63 68 20 69 73 20 64 65 74 65 72 6d 69 |which is determi| 00067d20 6e 65 64 20 62 79 20 74 68 65 20 6c 61 73 74 20 |ned by the last | 00067d30 57 69 6d 70 20 65 76 65 6e 74 20 70 72 6f 63 65 |Wimp event proce| 00067d40 73 73 65 64 20 62 79 20 74 68 65 20 3c 45 76 65 |ssed by the <Eve| 00067d50 6e 74 3e 20 6d 6f 64 75 6c 65 2e 20 49 66 20 6e |nt> module. If n| 00067d60 6f 20 69 6e 66 6f 20 63 61 6e 20 62 65 20 66 6f |o info can be fo| 00067d70 75 6e 64 2c 20 6e 6f 74 68 69 6e 67 20 68 61 70 |und, nothing hap| 00067d80 70 65 6e 73 2e 00 00 00 44 41 54 41 ff 00 00 00 |pens....DATA....| 00067d90 4d 65 6e 75 5f 4d 61 6b 65 49 6e 64 69 72 65 63 |Menu_MakeIndirec| 00067da0 74 65 64 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ted.Syntax:.void| 00067db0 20 4d 65 6e 75 5f 4d 61 6b 65 49 6e 64 69 72 65 | Menu_MakeIndire| 00067dc0 63 74 65 64 20 28 3c 6d 65 6e 75 5f 70 74 72 3e |cted (<menu_ptr>| 00067dd0 20 6d 65 6e 75 2c 20 69 6e 74 20 65 6e 74 72 79 | menu, int entry| 00067de0 2c 20 63 68 61 72 20 2a 62 75 66 2c 20 69 6e 74 |, char *buf, int| 00067df0 20 73 69 7a 65 29 3b 0a 48 65 61 64 65 72 3a 09 | size);.Header:.| 00067e00 3c 44 65 73 6b 4c 69 62 3a 4d 65 6e 75 2e 68 3d |<DeskLib:Menu.h=| 00067e10 3e 44 4c 5f 4d 65 6e 75 3e 0a 0a 54 68 69 73 20 |>DL_Menu>..This | 00067e20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 |function convert| 00067e30 73 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 |s the given menu| 00067e40 20 65 6e 74 72 79 20 69 6e 74 6f 20 61 6e 20 69 | entry into an i| 00067e50 6e 64 69 72 65 63 74 65 64 20 69 74 65 6d 20 75 |ndirected item u| 00067e60 73 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 |sing the buffer | 00067e70 2f 62 75 66 2f 20 6f 66 20 6c 65 6e 67 74 68 20 |/buf/ of length | 00067e80 2f 73 69 7a 65 2f 2e 00 44 41 54 41 ef 00 00 00 |/size/..DATA....| 00067e90 4d 65 6e 75 5f 46 75 6c 6c 44 69 73 70 6f 73 65 |Menu_FullDispose| 00067ea0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 |.Syntax:.void Me| 00067eb0 6e 75 5f 46 75 6c 6c 44 69 73 70 6f 73 65 20 28 |nu_FullDispose (| 00067ec0 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 29 |<menu_ptr> menu)| 00067ed0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00067ee0 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 |ib:Menu.h=>DL_Me| 00067ef0 6e 75 3e 0a 0a 54 68 69 73 20 66 72 65 65 73 20 |nu>..This frees | 00067f00 75 70 20 74 68 65 20 6d 65 6d 6f 72 79 20 75 73 |up the memory us| 00067f10 65 64 20 62 79 20 61 20 6d 65 6e 75 2e 20 49 74 |ed by a menu. It| 00067f20 20 64 6f 65 73 6e 27 74 20 72 65 63 75 72 73 69 | doesn't recursi| 00067f30 76 65 6c 79 20 64 69 73 70 6f 73 65 20 6f 66 20 |vely dispose of | 00067f40 73 75 62 6d 65 6e 75 73 20 62 75 74 20 69 74 20 |submenus but it | 00067f50 5f 64 6f 65 73 5f 20 64 69 73 70 6f 73 65 20 6f |_does_ dispose o| 00067f60 66 20 69 6e 64 69 72 65 63 74 65 64 20 6d 65 6e |f indirected men| 00067f70 75 20 64 61 74 61 2e 00 44 41 54 41 fe 00 00 00 |u data..DATA....| 00067f80 4d 65 6e 75 5f 52 65 76 69 73 65 57 69 64 74 68 |Menu_ReviseWidth| 00067f90 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 65 |.Syntax:.void Me| 00067fa0 6e 75 5f 52 65 76 69 73 65 57 69 64 74 68 20 28 |nu_ReviseWidth (| 00067fb0 3c 6d 65 6e 75 5f 70 74 72 3e 20 6d 65 6e 75 29 |<menu_ptr> menu)| 00067fc0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00067fd0 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 |ib:Menu.h=>DL_Me| 00067fe0 6e 75 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |nu>..This functi| 00067ff0 6f 6e 20 72 65 73 63 61 6e 73 20 74 68 72 6f 75 |on rescans throu| 00068000 67 68 20 61 20 6d 65 6e 75 20 64 65 66 69 6e 69 |gh a menu defini| 00068010 74 69 6f 6e 20 61 6e 64 20 72 65 76 69 73 65 73 |tion and revises| 00068020 20 69 74 73 20 77 69 64 74 68 20 62 61 73 65 64 | its width based| 00068030 20 6f 6e 20 74 68 65 20 74 69 74 6c 65 20 61 6e | on the title an| 00068040 64 20 69 74 65 6d 20 6c 65 6e 67 74 68 73 2e 20 |d item lengths. | 00068050 41 74 20 6c 65 61 73 74 20 6f 6e 65 20 69 74 65 |At least one ite| 00068060 6d 20 6d 75 73 74 20 62 65 20 69 6e 20 74 68 65 |m must be in the| 00068070 20 6d 65 6e 75 2e 00 00 44 41 54 41 a1 01 00 00 | menu...DATA....| 00068080 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 0a 53 79 |Menu_FontMenu.Sy| 00068090 6e 74 61 78 3a 09 3c 6d 65 6e 75 5f 70 74 72 3e |ntax:.<menu_ptr>| 000680a0 20 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 20 28 | Menu_FontMenu (| 000680b0 3c 42 4f 4f 4c 3e 20 73 79 73 66 6f 6e 74 2c 20 |<BOOL> sysfont, | 000680c0 63 68 61 72 20 2a 74 69 63 6b 29 3b 0a 48 65 61 |char *tick);.Hea| 000680d0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 |der:.<DeskLib:Me| 000680e0 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a 0a |nu.h=>DL_Menu>..| 000680f0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00068100 20 74 6f 20 6d 65 6e 75 2c 20 6f 72 20 30 20 69 | to menu, or 0 i| 00068110 66 20 66 61 69 6c 65 64 2e 0a 0a 54 68 69 73 20 |f failed...This | 00068120 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 73 |function creates| 00068130 20 61 20 66 6f 6e 74 20 6d 65 6e 75 2c 20 69 6e | a font menu, in| 00068140 63 6c 75 64 69 6e 67 20 27 53 79 73 74 65 6d 20 |cluding 'System | 00068150 66 6f 6e 74 27 20 69 66 20 2f 73 79 73 66 6f 6e |font' if /sysfon| 00068160 74 2f 20 69 73 20 3c 54 52 55 45 3e 2e 20 2f 74 |t/ is <TRUE>. /t| 00068170 69 63 6b 2f 20 69 6e 64 69 63 61 74 65 73 20 74 |ick/ indicates t| 00068180 68 65 20 66 6f 6e 74 20 6e 61 6d 65 20 74 6f 20 |he font name to | 00068190 62 65 20 74 69 63 6b 65 64 2c 20 6f 72 20 3c 4d |be ticked, or <M| 000681a0 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 5f 4e 4f 54 |enu_FontMenu_NOT| 000681b0 49 43 4b 3e 2c 20 6f 72 20 3c 4d 65 6e 75 5f 46 |ICK>, or <Menu_F| 000681c0 6f 6e 74 4d 65 6e 75 5f 54 49 43 4b 53 59 53 46 |ontMenu_TICKSYSF| 000681d0 4f 4e 54 3e 2e 20 49 66 20 79 6f 75 20 64 6f 6e |ONT>. If you don| 000681e0 27 74 20 6e 65 65 64 20 74 6f 20 62 65 20 52 49 |'t need to be RI| 000681f0 53 43 20 4f 53 20 32 20 63 6f 6d 70 61 74 69 62 |SC OS 2 compatib| 00068200 6c 65 2c 20 75 73 65 20 3c 4d 65 6e 75 5f 46 6f |le, use <Menu_Fo| 00068210 6e 74 4d 65 6e 75 33 3e 2e 00 00 00 44 41 54 41 |ntMenu3>....DATA| 00068220 86 01 00 00 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e |....Menu_FontMen| 00068230 75 33 0a 53 79 6e 74 61 78 3a 09 3c 6d 65 6e 75 |u3.Syntax:.<menu| 00068240 5f 70 74 72 3e 20 4d 65 6e 75 5f 46 6f 6e 74 4d |_ptr> Menu_FontM| 00068250 65 6e 75 33 20 28 3c 42 4f 4f 4c 3e 20 73 79 73 |enu3 (<BOOL> sys| 00068260 66 6f 6e 74 2c 20 63 68 61 72 20 2a 74 69 63 6b |font, char *tick| 00068270 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00068280 4c 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d |Lib:Menu.h=>DL_M| 00068290 65 6e 75 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |enu>..Returns:.P| 000682a0 6f 69 6e 74 65 72 20 74 6f 20 6d 65 6e 75 2c 20 |ointer to menu, | 000682b0 6f 72 20 30 20 69 66 20 66 61 69 6c 65 64 2e 0a |or 0 if failed..| 000682c0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 000682d0 72 65 61 74 65 73 20 61 20 66 6f 6e 74 20 6d 65 |reates a font me| 000682e0 6e 75 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 53 |nu, including 'S| 000682f0 79 73 74 65 6d 20 66 6f 6e 74 27 20 69 66 20 2f |ystem font' if /| 00068300 73 79 73 66 6f 6e 74 2f 20 69 73 20 3c 54 52 55 |sysfont/ is <TRU| 00068310 45 3e 2e 20 2f 74 69 63 6b 2f 20 69 6e 64 69 63 |E>. /tick/ indic| 00068320 61 74 65 73 20 74 68 65 20 66 6f 6e 74 20 6e 61 |ates the font na| 00068330 6d 65 20 74 6f 20 62 65 20 74 69 63 6b 65 64 2c |me to be ticked,| 00068340 20 6f 72 20 3c 4d 65 6e 75 5f 46 6f 6e 74 4d 65 | or <Menu_FontMe| 00068350 6e 75 5f 4e 4f 54 49 43 4b 3e 2c 20 6f 72 20 3c |nu_NOTICK>, or <| 00068360 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 5f 54 49 |Menu_FontMenu_TI| 00068370 43 4b 53 59 53 46 4f 4e 54 3e 2e 20 54 68 69 73 |CKSYSFONT>. This| 00068380 20 66 75 6e 63 74 69 6f 6e 20 77 6f 6e 27 74 20 | function won't | 00068390 77 6f 72 6b 20 6f 6e 20 52 49 53 43 20 4f 53 20 |work on RISC OS | 000683a0 32 2e 00 00 44 41 54 41 2b 01 00 00 4d 65 6e 75 |2...DATA+...Menu| 000683b0 5f 46 6f 6e 74 4d 65 6e 75 44 65 63 6f 64 65 0a |_FontMenuDecode.| 000683c0 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 4d 65 |Syntax:.char *Me| 000683d0 6e 75 5f 46 6f 6e 74 4d 65 6e 75 44 65 63 6f 64 |nu_FontMenuDecod| 000683e0 65 20 28 69 6e 74 20 2a 73 65 6c 29 3b 0a 48 65 |e (int *sel);.He| 000683f0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d |ader:.<DeskLib:M| 00068400 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a |enu.h=>DL_Menu>.| 00068410 0a 52 65 74 75 72 6e 73 3a 09 46 6f 6e 74 20 6e |.Returns:.Font n| 00068420 61 6d 65 2c 20 6f 72 20 30 20 69 66 20 61 6e 20 |ame, or 0 if an | 00068430 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e |error...This fun| 00068440 63 74 69 6f 6e 2c 20 67 69 76 65 6e 20 61 20 6c |ction, given a l| 00068450 69 73 74 20 6f 66 20 73 65 6c 65 63 74 69 6f 6e |ist of selection| 00068460 73 20 66 72 6f 6d 20 74 68 65 20 66 6f 6e 74 20 |s from the font | 00068470 6d 65 6e 75 2c 20 72 65 74 75 72 6e 73 20 74 68 |menu, returns th| 00068480 65 20 66 6f 6e 74 20 6e 61 6d 65 2e 20 49 66 20 |e font name. If | 00068490 79 6f 75 20 6f 6e 6c 79 20 6e 65 65 64 20 74 6f |you only need to| 000684a0 20 73 75 70 70 6f 72 74 20 52 49 53 43 20 4f 53 | support RISC OS| 000684b0 20 33 2c 20 75 73 65 20 3c 4d 65 6e 75 5f 46 6f | 3, use <Menu_Fo| 000684c0 6e 74 4d 65 6e 75 44 65 63 6f 64 65 33 3e 2e 00 |ntMenuDecode3>..| 000684d0 44 41 54 41 02 01 00 00 4d 65 6e 75 5f 46 6f 6e |DATA....Menu_Fon| 000684e0 74 4d 65 6e 75 44 65 63 6f 64 65 33 0a 53 79 6e |tMenuDecode3.Syn| 000684f0 74 61 78 3a 09 63 68 61 72 20 2a 4d 65 6e 75 5f |tax:.char *Menu_| 00068500 46 6f 6e 74 4d 65 6e 75 44 65 63 6f 64 65 33 20 |FontMenuDecode3 | 00068510 28 69 6e 74 20 2a 73 65 6c 29 3b 0a 48 65 61 64 |(int *sel);.Head| 00068520 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 65 6e |er:.<DeskLib:Men| 00068530 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 0a 0a 52 |u.h=>DL_Menu>..R| 00068540 65 74 75 72 6e 73 3a 09 46 6f 6e 74 20 6e 61 6d |eturns:.Font nam| 00068550 65 2c 20 6f 72 20 30 20 69 66 20 61 6e 20 65 72 |e, or 0 if an er| 00068560 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ror...This funct| 00068570 69 6f 6e 2c 20 67 69 76 65 6e 20 61 20 6c 69 73 |ion, given a lis| 00068580 74 20 6f 66 20 73 65 6c 65 63 74 69 6f 6e 73 20 |t of selections | 00068590 66 72 6f 6d 20 74 68 65 20 66 6f 6e 74 20 6d 65 |from the font me| 000685a0 6e 75 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 |nu, returns the | 000685b0 66 6f 6e 74 20 6e 61 6d 65 2e 20 54 68 69 73 20 |font name. This | 000685c0 69 73 20 52 49 53 43 20 4f 53 20 33 20 6f 6e 6c |is RISC OS 3 onl| 000685d0 79 2e 00 00 44 41 54 41 a2 00 00 00 4d 65 6e 75 |y...DATA....Menu| 000685e0 5f 46 6f 6e 74 4d 65 6e 75 5f 4e 4f 54 49 43 4b |_FontMenu_NOTICK| 000685f0 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 00068600 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c |efined in <DeskL| 00068610 69 62 3a 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 |ib:Menu.h=>DL_Me| 00068620 6e 75 3e 2e 20 49 74 20 73 70 65 63 69 66 69 65 |nu>. It specifie| 00068630 73 20 74 68 61 74 20 6e 6f 20 65 6e 74 72 79 20 |s that no entry | 00068640 6f 6e 20 74 68 65 20 66 6f 6e 74 20 6d 65 6e 75 |on the font menu| 00068650 20 73 68 6f 75 6c 64 20 62 65 20 74 69 63 6b 65 | should be ticke| 00068660 64 20 61 6e 64 20 69 73 20 64 65 66 69 6e 65 64 |d and is defined| 00068670 20 61 73 20 30 2e 00 00 44 41 54 41 c1 00 00 00 | as 0...DATA....| 00068680 4d 65 6e 75 5f 46 6f 6e 74 4d 65 6e 75 5f 54 49 |Menu_FontMenu_TI| 00068690 43 4b 53 59 53 46 4f 4e 54 0a 54 68 69 73 20 6d |CKSYSFONT.This m| 000686a0 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 000686b0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 4d 65 6e 75 |in <DeskLib:Menu| 000686c0 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 3e 2e 20 49 74 |.h=>DL_Menu>. It| 000686d0 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 | specifies that | 000686e0 74 68 65 20 27 53 79 73 74 65 6d 20 66 6f 6e 74 |the 'System font| 000686f0 27 20 65 6e 74 72 79 20 6f 6e 20 74 68 65 20 66 |' entry on the f| 00068700 6f 6e 74 20 6d 65 6e 75 20 73 68 6f 75 6c 64 20 |ont menu should | 00068710 62 65 20 74 69 63 6b 65 64 20 61 6e 64 20 69 73 |be ticked and is| 00068720 20 64 65 66 69 6e 65 64 20 61 73 20 28 28 63 68 | defined as ((ch| 00068730 61 72 20 2a 29 20 31 29 2e 00 00 00 44 49 52 24 |ar *) 1)....DIR$| 00068740 a8 02 00 00 a8 02 00 00 e4 89 06 00 46 ff ff ff |............F...| 00068750 ae c5 46 26 16 08 00 00 13 00 00 00 00 00 00 00 |..F&............| 00068760 61 63 74 69 6f 6e 00 00 fc 91 06 00 46 ff ff ff |action......F...| 00068770 a9 16 48 26 ac 03 00 00 13 00 00 00 00 00 00 00 |..H&............| 00068780 62 6c 6f 63 6b 00 00 00 a8 95 06 00 46 ff ff ff |block.......F...| 00068790 10 18 47 26 60 01 00 00 13 00 00 00 00 00 00 00 |..G&`...........| 000687a0 64 61 74 61 6c 6f 61 64 00 00 00 00 08 97 06 00 |dataload........| 000687b0 46 ff ff ff 4d 2f 47 26 a3 00 00 00 13 00 00 00 |F...M/G&........| 000687c0 00 00 00 00 64 61 74 61 6f 70 65 6e 00 00 00 00 |....dataopen....| 000687d0 ac 97 06 00 46 ff ff ff dc f9 46 26 a6 02 00 00 |....F.....F&....| 000687e0 13 00 00 00 00 00 00 00 64 61 74 61 73 61 76 65 |........datasave| 000687f0 00 00 00 00 54 9a 06 00 46 ff ff ff ee 0c 47 26 |....T...F.....G&| 00068800 ad 01 00 00 13 00 00 00 00 00 00 00 64 61 74 61 |............data| 00068810 73 61 76 65 61 63 6b 00 04 9c 06 00 46 ff ff ff |saveack.....F...| 00068820 46 d9 46 26 be 00 00 00 13 00 00 00 00 00 00 00 |F.F&............| 00068830 64 65 73 74 69 6e 65 65 00 00 00 00 c4 9c 06 00 |destinee........| 00068840 46 ff ff ff 6d e2 46 26 3d 01 00 00 13 00 00 00 |F...m.F&=.......| 00068850 00 00 00 00 68 65 61 64 65 72 00 00 04 9e 06 00 |....header......| 00068860 46 ff ff ff 25 4a 47 26 5a 01 00 00 13 00 00 00 |F...%JG&Z.......| 00068870 00 00 00 00 68 65 6c 70 72 65 70 6c 79 00 00 00 |....helpreply...| 00068880 60 9f 06 00 46 ff ff ff dc 44 47 26 15 01 00 00 |`...F....DG&....| 00068890 13 00 00 00 00 00 00 00 68 65 6c 70 72 65 71 75 |........helprequ| 000688a0 65 73 74 00 78 a0 06 00 46 ff ff ff 55 63 47 26 |est.x...F...UcG&| 000688b0 66 01 00 00 13 00 00 00 00 00 00 00 6d 65 6e 75 |f...........menu| 000688c0 77 61 72 6e 00 00 00 00 e0 a1 06 00 46 ff ff ff |warn........F...| 000688d0 15 e7 61 25 62 01 00 00 13 00 00 00 00 00 00 00 |..a%b...........| 000688e0 70 6f 70 75 70 72 65 71 75 65 73 74 00 00 00 00 |popuprequest....| 000688f0 44 a3 06 00 46 ff ff ff 45 ee 61 25 74 01 00 00 |D...F...E.a%t...| 00068900 13 00 00 00 00 00 00 00 70 6f 70 75 70 73 74 61 |........popupsta| 00068910 74 65 00 00 b8 a4 06 00 46 ff ff ff f5 51 47 26 |te......F....QG&| 00068920 c3 00 00 00 13 00 00 00 00 00 00 00 70 72 69 6e |............prin| 00068930 74 00 00 00 7c a5 06 00 46 ff ff ff cd 35 47 26 |t...|...F....5G&| 00068940 aa 00 00 00 13 00 00 00 00 00 00 00 72 61 6d 66 |............ramf| 00068950 65 74 63 68 00 00 00 00 28 a6 06 00 46 ff ff ff |etch....(...F...| 00068960 6d 3f 47 26 b4 00 00 00 13 00 00 00 00 00 00 00 |m?G&............| 00068970 72 61 6d 74 72 61 6e 73 6d 69 74 00 dc a6 06 00 |ramtransmit.....| 00068980 46 ff ff ff f4 25 47 26 13 01 00 00 13 00 00 00 |F....%G&........| 00068990 00 00 00 00 64 61 74 61 6c 6f 61 64 61 63 6b 00 |....dataloadack.| 000689a0 f0 a7 06 00 46 ff ff ff 27 a8 47 26 61 01 00 00 |....F...'.G&a...| 000689b0 13 00 00 00 00 00 00 00 69 63 6f 6e 69 7a 65 00 |........iconize.| 000689c0 54 a9 06 00 46 ff ff ff c3 e4 47 26 9b 01 00 00 |T...F.....G&....| 000689d0 13 00 00 00 00 00 00 00 77 69 6e 64 6f 77 69 6e |........windowin| 000689e0 66 6f 00 00 44 41 54 41 16 08 00 00 6d 65 73 73 |fo..DATA....mess| 000689f0 61 67 65 5f 61 63 74 69 6f 6e 0a 54 68 69 73 20 |age_action.This | 00068a00 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 00068a10 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |in <DeskLib:Wimp| 00068a20 2e 68 3e 2e 20 49 74 20 69 73 20 61 6e 20 65 6e |.h>. It is an en| 00068a30 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 63 6f |umerated type co| 00068a40 6e 74 61 69 6e 69 6e 67 20 76 61 6c 75 65 73 20 |ntaining values | 00068a50 66 6f 72 20 63 6f 6d 6d 6f 6e 20 57 69 6d 70 20 |for common Wimp | 00068a60 6d 65 73 73 61 67 65 73 2e 0a 7b 77 72 61 70 20 |messages..{wrap | 00068a70 6f 66 66 7d 0a 20 5c 7b 0a 20 20 6d 65 73 73 61 |off}. \{. messa| 00068a80 67 65 5f 51 55 49 54 09 09 09 3d 20 30 2c 09 09 |ge_QUIT...= 0,..| 00068a90 2f 2a 20 51 75 69 74 20 2a 2f 0a 20 20 6d 65 73 |/* Quit */. mes| 00068aa0 73 61 67 65 5f 43 4c 4f 53 45 44 4f 57 4e 09 09 |sage_CLOSEDOWN..| 00068ab0 3d 20 30 2c 20 20 20 20 0a 20 20 6d 65 73 73 61 |= 0, . messa| 00068ac0 67 65 5f 44 41 54 41 53 41 56 45 09 09 3d 20 31 |ge_DATASAVE..= 1| 00068ad0 2c 09 09 2f 2a 20 44 61 74 61 53 61 76 65 20 2a |,../* DataSave *| 00068ae0 2f 0a 20 20 6d 65 73 73 61 67 65 5f 44 41 54 41 |/. message_DATA| 00068af0 53 41 56 45 41 43 4b 09 09 3d 20 32 2c 09 09 2f |SAVEACK..= 2,../| 00068b00 2a 20 44 61 74 61 53 61 76 65 41 63 6b 20 2a 2f |* DataSaveAck */| 00068b10 0a 20 20 6d 65 73 73 61 67 65 5f 44 41 54 41 53 |. message_DATAS| 00068b20 41 56 45 4f 4b 09 09 3d 20 32 2c 20 20 20 20 0a |AVEOK..= 2, .| 00068b30 20 20 6d 65 73 73 61 67 65 5f 44 41 54 41 4c 4f | message_DATALO| 00068b40 41 44 09 09 3d 20 33 2c 09 09 2f 2a 20 44 61 74 |AD..= 3,../* Dat| 00068b50 61 4c 6f 61 64 20 2a 2f 0a 20 20 6d 65 73 73 61 |aLoad */. messa| 00068b60 67 65 5f 44 41 54 41 4c 4f 41 44 41 43 4b 09 09 |ge_DATALOADACK..| 00068b70 3d 20 34 2c 09 09 2f 2a 20 44 61 74 61 4c 6f 61 |= 4,../* DataLoa| 00068b80 64 41 63 6b 20 2a 2f 0a 20 20 6d 65 73 73 61 67 |dAck */. messag| 00068b90 65 5f 44 41 54 41 4c 4f 41 44 4f 4b 09 09 3d 20 |e_DATALOADOK..= | 00068ba0 34 2c 20 20 20 20 0a 20 20 6d 65 73 73 61 67 65 |4, . message| 00068bb0 5f 44 41 54 41 4f 50 45 4e 2c 09 09 20 09 09 2f |_DATAOPEN,.. ../| 00068bc0 2a 20 44 61 74 61 4f 70 65 6e 20 2a 2f 0a 20 20 |* DataOpen */. | 00068bd0 6d 65 73 73 61 67 65 5f 52 41 4d 46 45 54 43 48 |message_RAMFETCH| 00068be0 2c 09 09 20 09 09 2f 2a 20 52 41 4d 46 65 74 63 |,.. ../* RAMFetc| 00068bf0 68 20 2a 2f 0a 20 20 6d 65 73 73 61 67 65 5f 52 |h */. message_R| 00068c00 41 4d 54 52 41 4e 53 4d 49 54 2c 09 09 20 09 09 |AMTRANSMIT,.. ..| 00068c10 2f 2a 20 52 41 4d 54 72 61 6e 73 6d 69 74 20 2a |/* RAMTransmit *| 00068c20 2f 0a 20 20 6d 65 73 73 61 67 65 5f 50 52 45 51 |/. message_PREQ| 00068c30 55 49 54 2c 09 09 20 09 09 2f 2a 20 50 72 65 51 |UIT,.. ../* PreQ| 00068c40 75 69 74 20 2a 2f 0a 20 20 6d 65 73 73 61 67 65 |uit */. message| 00068c50 5f 50 41 4c 45 54 54 45 43 48 41 4e 47 45 2c 09 |_PALETTECHANGE,.| 00068c60 20 09 09 2f 2a 20 50 61 6c 65 74 74 65 43 68 61 | ../* PaletteCha| 00068c70 6e 67 65 20 2a 2f 0a 20 20 6d 65 73 73 61 67 65 |nge */. message| 00068c80 5f 53 41 56 45 44 45 53 4b 2c 09 09 20 09 09 2f |_SAVEDESK,.. ../| 00068c90 2a 20 53 61 76 65 44 65 73 6b 74 6f 70 20 2a 2f |* SaveDesktop */| 00068ca0 0a 20 20 6d 65 73 73 61 67 65 5f 44 45 56 49 43 |. message_DEVIC| 00068cb0 45 43 4c 41 49 4d 2c 09 09 20 09 09 2f 2a 20 44 |ECLAIM,.. ../* D| 00068cc0 65 76 69 63 65 43 6c 61 69 6d 20 2a 2f 0a 20 20 |eviceClaim */. | 00068cd0 6d 65 73 73 61 67 65 5f 44 45 56 49 43 45 49 4e |message_DEVICEIN| 00068ce0 55 53 45 2c 09 09 20 09 09 2f 2a 20 44 65 76 69 |USE,.. ../* Devi| 00068cf0 63 65 49 6e 55 73 65 20 2a 2f 0a 20 20 6d 65 73 |ceInUse */. mes| 00068d00 73 61 67 65 5f 44 41 54 41 53 41 56 45 44 2c 09 |sage_DATASAVED,.| 00068d10 09 20 09 09 2f 2a 20 44 61 74 61 53 61 76 65 64 |. ../* DataSaved| 00068d20 20 2a 2f 0a 20 20 6d 65 73 73 61 67 65 5f 46 49 | */. message_FI| 00068d30 4c 45 52 4f 50 45 4e 44 49 52 09 09 3d 20 30 78 |LEROPENDIR..= 0x| 00068d40 34 30 30 2c 09 2f 2a 20 46 69 6c 65 72 4f 70 65 |400,./* FilerOpe| 00068d50 6e 44 69 72 20 2a 2f 0a 20 20 6d 65 73 73 61 67 |nDir */. messag| 00068d60 65 5f 46 49 4c 45 52 43 4c 4f 53 45 44 49 52 2c |e_FILERCLOSEDIR,| 00068d70 09 20 09 09 2f 2a 20 46 69 6c 65 72 43 6c 6f 73 |. ../* FilerClos| 00068d80 65 44 69 72 20 2a 2f 0a 20 20 6d 65 73 73 61 67 |eDir */. messag| 00068d90 65 5f 48 45 4c 50 52 45 51 55 45 53 54 09 09 3d |e_HELPREQUEST..=| 00068da0 20 30 78 35 30 32 2c 09 2f 2a 20 48 65 6c 70 52 | 0x502,./* HelpR| 00068db0 65 71 75 65 73 74 20 2a 2f 0a 20 20 6d 65 73 73 |equest */. mess| 00068dc0 61 67 65 5f 48 45 4c 50 52 45 50 4c 59 2c 09 09 |age_HELPREPLY,..| 00068dd0 20 09 09 2f 2a 20 48 65 6c 70 52 65 70 6c 79 20 | ../* HelpReply | 00068de0 2a 2f 0a 20 20 6d 65 73 73 61 67 65 5f 4e 4f 54 |*/. message_NOT| 00068df0 49 46 59 09 09 3d 20 30 78 34 30 30 34 30 2c 09 |IFY..= 0x40040,.| 00068e00 2f 2a 20 4e 6f 74 69 66 79 20 2a 2f 0a 20 20 6d |/* Notify */. m| 00068e10 65 73 73 61 67 65 5f 4d 45 4e 55 57 41 52 4e 49 |essage_MENUWARNI| 00068e20 4e 47 09 09 3d 20 30 78 34 30 30 43 30 2c 09 2f |NG..= 0x400C0,./| 00068e30 2a 20 4d 65 6e 75 57 61 72 6e 69 6e 67 20 2a 2f |* MenuWarning */| 00068e40 0a 20 20 6d 65 73 73 61 67 65 5f 4d 45 4e 55 57 |. message_MENUW| 00068e50 41 52 4e 09 09 3d 20 30 78 34 30 30 43 30 2c 0a |ARN..= 0x400C0,.| 00068e60 20 20 6d 65 73 73 61 67 65 5f 4d 4f 44 45 43 48 | message_MODECH| 00068e70 41 4e 47 45 2c 09 09 20 09 09 2f 2a 20 4d 6f 64 |ANGE,.. ../* Mod| 00068e80 65 43 68 61 6e 67 65 20 2a 2f 0a 20 20 6d 65 73 |eChange */. mes| 00068e90 73 61 67 65 5f 54 41 53 4b 49 4e 49 54 49 41 4c |sage_TASKINITIAL| 00068ea0 49 53 45 09 3d 20 30 78 34 30 30 43 32 2c 09 2f |ISE.= 0x400C2,./| 00068eb0 2a 20 54 61 73 6b 49 6e 69 74 69 61 6c 69 73 65 |* TaskInitialise| 00068ec0 20 2a 2f 0a 20 20 6d 65 73 73 61 67 65 5f 49 4e | */. message_IN| 00068ed0 49 54 54 41 53 4b 09 09 3d 20 30 78 34 30 30 43 |ITTASK..= 0x400C| 00068ee0 32 2c 0a 20 20 6d 65 73 73 61 67 65 5f 54 41 53 |2,. message_TAS| 00068ef0 4b 43 4c 4f 53 45 44 4f 57 4e 09 09 3d 20 30 78 |KCLOSEDOWN..= 0x| 00068f00 34 30 30 43 33 2c 09 2f 2a 20 54 61 73 6b 43 6c |400C3,./* TaskCl| 00068f10 6f 73 65 44 6f 77 6e 20 2a 2f 0a 20 20 6d 65 73 |oseDown */. mes| 00068f20 73 61 67 65 5f 43 4c 4f 53 45 54 41 53 4b 09 09 |sage_CLOSETASK..| 00068f30 3d 20 30 78 34 30 30 43 33 2c 0a 20 20 6d 65 73 |= 0x400C3,. mes| 00068f40 73 61 67 65 5f 53 4c 4f 54 53 49 5a 45 09 09 3d |sage_SLOTSIZE..=| 00068f50 20 30 78 34 30 30 43 34 2c 09 2f 2a 20 53 6c 6f | 0x400C4,./* Slo| 00068f60 74 53 69 7a 65 20 2a 2f 0a 20 20 6d 65 73 73 61 |tSize */. messa| 00068f70 67 65 5f 53 4c 4f 54 43 48 41 4e 47 45 09 09 3d |ge_SLOTCHANGE..=| 00068f80 20 30 78 34 30 30 43 34 2c 0a 20 20 6d 65 73 73 | 0x400C4,. mess| 00068f90 61 67 65 5f 53 45 54 53 4c 4f 54 09 09 3d 20 30 |age_SETSLOT..= 0| 00068fa0 78 34 30 30 43 35 2c 09 2f 2a 20 53 65 74 53 6c |x400C5,./* SetSl| 00068fb0 6f 74 20 2a 2f 0a 20 20 6d 65 73 73 61 67 65 5f |ot */. message_| 00068fc0 54 41 53 4b 4e 41 4d 45 52 51 2c 09 09 20 09 09 |TASKNAMERQ,.. ..| 00068fd0 2f 2a 20 54 61 73 6b 4e 61 6d 65 52 71 20 2a 2f |/* TaskNameRq */| 00068fe0 0a 20 20 6d 65 73 73 61 67 65 5f 54 41 53 4b 4e |. message_TASKN| 00068ff0 41 4d 45 49 53 2c 09 09 20 09 09 2f 2a 20 54 61 |AMEIS,.. ../* Ta| 00069000 73 6b 4e 61 6d 65 49 73 20 2a 2f 0a 20 20 6d 65 |skNameIs */. me| 00069010 73 73 61 67 65 5f 54 41 53 4b 53 54 41 52 54 45 |ssage_TASKSTARTE| 00069020 44 2c 09 09 20 09 09 2f 2a 20 54 61 73 6b 53 74 |D,.. ../* TaskSt| 00069030 61 72 74 65 64 20 2a 2f 0a 20 20 6d 65 73 73 61 |arted */. messa| 00069040 67 65 5f 4d 45 4e 55 53 44 45 4c 45 54 45 44 2c |ge_MENUSDELETED,| 00069050 09 09 20 09 09 2f 2a 20 4d 65 6e 75 73 44 65 6c |.. ../* MenusDel| 00069060 65 74 65 64 20 2a 2f 0a 20 20 6d 65 73 73 61 67 |eted */. messag| 00069070 65 5f 57 49 4e 44 4f 57 49 4e 46 4f 09 09 3d 20 |e_WINDOWINFO..= | 00069080 30 78 34 30 30 43 43 2c 09 2f 2a 20 57 69 6e 64 |0x400CC,./* Wind| 00069090 6f 77 49 6e 66 6f 20 2a 2f 0a 20 20 6d 65 73 73 |owInfo */. mess| 000690a0 61 67 65 5f 50 4f 50 55 50 52 51 09 09 3d 20 30 |age_POPUPRQ..= 0| 000690b0 78 34 36 44 34 30 2c 0a 20 20 6d 65 73 73 61 67 |x46D40,. messag| 000690c0 65 5f 50 4f 50 55 50 52 45 51 55 45 53 54 09 09 |e_POPUPREQUEST..| 000690d0 3d 20 30 78 34 36 44 34 30 2c 0a 20 20 6d 65 73 |= 0x46D40,. mes| 000690e0 73 61 67 65 5f 50 4f 50 55 50 53 54 41 54 45 2c |sage_POPUPSTATE,| 000690f0 0a 20 20 6d 65 73 73 61 67 65 5f 50 4f 50 55 50 |. message_POPUP| 00069100 43 4c 4f 53 45 44 2c 20 20 0a 20 20 6d 65 73 73 |CLOSED, . mess| 00069110 61 67 65 5f 50 52 49 4e 54 46 49 4c 45 09 09 3d |age_PRINTFILE..=| 00069120 20 30 78 38 30 31 34 30 2c 09 2f 2a 20 50 72 69 | 0x80140,./* Pri| 00069130 6e 74 46 69 6c 65 20 2a 2f 0a 20 20 6d 65 73 73 |ntFile */. mess| 00069140 61 67 65 5f 57 49 4c 4c 50 52 49 4e 54 2c 09 09 |age_WILLPRINT,..| 00069150 20 09 09 2f 2a 20 57 69 6c 6c 50 72 69 6e 74 20 | ../* WillPrint | 00069160 2a 2f 0a 20 20 6d 65 73 73 61 67 65 5f 50 52 49 |*/. message_PRI| 00069170 4e 54 54 59 50 45 4f 44 44 09 09 3d 20 30 78 38 |NTTYPEODD..= 0x8| 00069180 30 31 34 35 2c 09 2f 2a 20 50 72 69 6e 74 54 79 |0145,./* PrintTy| 00069190 70 65 4f 64 64 20 2a 2f 0a 20 20 6d 65 73 73 61 |peOdd */. messa| 000691a0 67 65 5f 50 52 49 4e 54 54 59 50 45 4b 4e 4f 57 |ge_PRINTTYPEKNOW| 000691b0 4e 2c 09 20 09 09 2f 2a 20 50 72 69 6e 74 54 79 |N,. ../* PrintTy| 000691c0 70 65 4b 6e 6f 77 6e 20 2a 2f 0a 20 20 6d 65 73 |peKnown */. mes| 000691d0 73 61 67 65 5f 50 52 49 4e 54 45 52 43 48 41 4e |sage_PRINTERCHAN| 000691e0 47 45 09 09 20 09 09 2f 2a 20 53 65 74 50 72 69 |GE.. ../* SetPri| 000691f0 6e 74 65 72 20 2a 2f 0a 20 7d 00 00 44 41 54 41 |nter */. }..DATA| 00069200 ac 03 00 00 6d 65 73 73 61 67 65 5f 62 6c 6f 63 |....message_bloc| 00069210 6b 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |k.This type is d| 00069220 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c |efined in <DeskL| 00069230 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e |ib:Wimp.h=>Wimp>| 00069240 2e 20 49 74 20 69 73 20 74 68 65 20 73 74 72 75 |. It is the stru| 00069250 63 74 75 72 65 20 75 73 65 64 20 66 6f 72 20 57 |cture used for W| 00069260 69 6d 70 20 6d 65 73 73 61 67 65 73 2e 0a 0a 20 |imp messages... | 00069270 20 5c 7b 0a 20 20 20 20 3c 6d 65 73 73 61 67 65 | \{. <message| 00069280 5f 68 65 61 64 65 72 3e 20 20 68 65 61 64 65 72 |_header> header| 00069290 3b 0a 20 20 20 20 75 6e 69 6f 6e 0a 20 20 20 20 |;. union. | 000692a0 5c 7b 0a 20 20 20 20 20 20 63 68 61 72 09 09 09 |\{. char...| 000692b0 62 79 74 65 73 20 5b 32 33 36 5d 3b 0a 20 20 20 |bytes [236];. | 000692c0 20 20 20 69 6e 74 09 09 09 77 6f 72 64 73 20 5b | int...words [| 000692d0 35 39 5d 3b 0a 20 20 20 20 20 20 3c 6d 65 73 73 |59];. <mess| 000692e0 61 67 65 5f 64 61 74 61 73 61 76 65 3e 09 64 61 |age_datasave>.da| 000692f0 74 61 73 61 76 65 3b 0a 20 20 20 20 20 20 3c 6d |tasave;. <m| 00069300 65 73 73 61 67 65 5f 64 61 74 61 73 61 76 65 61 |essage_datasavea| 00069310 63 6b 3e 09 64 61 74 61 73 61 76 65 61 63 6b 3b |ck>.datasaveack;| 00069320 0a 20 20 20 20 20 20 3c 6d 65 73 73 61 67 65 5f |. <message_| 00069330 64 61 74 61 6c 6f 61 64 3e 09 64 61 74 61 6c 6f |dataload>.datalo| 00069340 61 64 3b 0a 20 20 20 20 20 20 3c 6d 65 73 73 61 |ad;. <messa| 00069350 67 65 5f 64 61 74 61 6f 70 65 6e 3e 09 64 61 74 |ge_dataopen>.dat| 00069360 61 6f 70 65 6e 3b 0a 20 20 20 20 20 20 3c 6d 65 |aopen;. <me| 00069370 73 73 61 67 65 5f 72 61 6d 66 65 74 63 68 3e 09 |ssage_ramfetch>.| 00069380 72 61 6d 66 65 74 63 68 3b 0a 20 20 20 20 20 20 |ramfetch;. | 00069390 3c 6d 65 73 73 61 67 65 5f 72 61 6d 74 72 61 6e |<message_ramtran| 000693a0 73 6d 69 74 3e 09 72 61 6d 74 72 61 6e 73 6d 69 |smit>.ramtransmi| 000693b0 74 3b 0a 20 20 20 20 20 20 3c 6d 65 73 73 61 67 |t;. <messag| 000693c0 65 5f 68 65 6c 70 72 65 71 75 65 73 74 3e 09 68 |e_helprequest>.h| 000693d0 65 6c 70 72 65 71 75 65 73 74 3b 0a 20 20 20 20 |elprequest;. | 000693e0 20 20 3c 6d 65 73 73 61 67 65 5f 68 65 6c 70 72 | <message_helpr| 000693f0 65 70 6c 79 3e 09 68 65 6c 70 72 65 70 6c 79 3b |eply>.helpreply;| 00069400 0a 20 20 20 20 20 20 3c 6d 65 73 73 61 67 65 5f |. <message_| 00069410 70 72 69 6e 74 3e 09 09 70 72 69 6e 74 3b 0a 20 |print>..print;. | 00069420 20 20 20 20 20 3c 6d 65 73 73 61 67 65 5f 6d 65 | <message_me| 00069430 6e 75 77 61 72 6e 3e 09 6d 65 6e 75 77 61 72 6e |nuwarn>.menuwarn| 00069440 3b 0a 20 20 20 20 20 20 3c 6d 65 73 73 61 67 65 |;. <message| 00069450 5f 69 63 6f 6e 69 7a 65 3e 09 09 69 63 6f 6e 69 |_iconize>..iconi| 00069460 7a 65 3b 0a 20 20 20 20 20 20 3c 6d 65 73 73 61 |ze;. <messa| 00069470 67 65 5f 77 69 6e 64 6f 77 69 6e 66 6f 3e 09 77 |ge_windowinfo>.w| 00069480 69 6e 64 6f 77 69 6e 66 6f 3b 0a 20 20 20 20 7d |indowinfo;. }| 00069490 20 64 61 74 61 3b 0a 20 20 7d 0a 0a 41 73 20 63 | data;. }..As c| 000694a0 61 6e 20 62 65 20 73 65 65 6e 2c 20 63 65 72 74 |an be seen, cert| 000694b0 61 69 6e 20 6d 65 73 73 61 67 65 73 20 68 61 76 |ain messages hav| 000694c0 65 20 74 68 65 69 72 20 6f 77 6e 20 74 79 70 65 |e their own type| 000694d0 73 20 70 72 65 64 65 66 69 6e 65 64 2e 20 46 6f |s predefined. Fo| 000694e0 72 20 6f 74 68 65 72 73 2c 20 64 65 66 69 6e 65 |r others, define| 000694f0 20 79 6f 75 72 20 6f 77 6e 20 61 6e 64 20 63 61 | your own and ca| 00069500 73 74 20 7b 2f 7d 64 61 74 61 2e 62 79 74 65 73 |st {/}data.bytes| 00069510 7b 2f 7d 20 69 6e 74 6f 20 74 68 69 73 20 74 79 |{/} into this ty| 00069520 70 65 2c 20 6f 72 20 6a 75 73 74 20 61 63 63 65 |pe, or just acce| 00069530 73 73 20 74 68 65 20 64 61 74 61 20 64 69 72 65 |ss the data dire| 00069540 63 74 6c 79 20 66 72 6f 6d 20 7b 2f 7d 64 61 74 |ctly from {/}dat| 00069550 61 2e 62 79 74 65 73 7b 2f 7d 20 6f 72 20 7b 2f |a.bytes{/} or {/| 00069560 7d 64 61 74 61 2e 77 6f 72 64 73 7b 2f 7d 2e 0a |}data.words{/}..| 00069570 0a 3c 64 61 74 61 6c 6f 61 64 61 63 6b 3d 3e 6d |.<dataloadack=>m| 00069580 65 73 73 61 67 65 5f 64 61 74 61 6c 6f 61 64 61 |essage_dataloada| 00069590 63 6b 3e 20 69 73 20 73 74 72 61 6e 67 65 6c 79 |ck> is strangely| 000695a0 20 61 62 73 65 6e 74 2e 44 41 54 41 60 01 00 00 | absent.DATA`...| 000695b0 6d 65 73 73 61 67 65 5f 64 61 74 61 6c 6f 61 64 |message_dataload| 000695c0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 000695d0 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 000695e0 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 |b:Wimp.h=>Wimp> | 000695f0 61 73 20 61 20 73 74 72 75 63 74 75 72 65 20 68 |as a structure h| 00069600 6f 6c 64 69 6e 67 20 64 61 74 61 20 66 72 6f 6d |olding data from| 00069610 20 61 20 44 61 74 61 4c 6f 61 64 20 6d 65 73 73 | a DataLoad mess| 00069620 61 67 65 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c |age... \{. <| 00069630 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 |window_handle>.w| 00069640 69 6e 64 6f 77 3b 0a 20 20 20 20 3c 69 63 6f 6e |indow;. <icon| 00069650 5f 68 61 6e 64 6c 65 3e 09 69 63 6f 6e 3b 0a 20 |_handle>.icon;. | 00069660 20 20 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 09 | <wimp_point>.| 00069670 70 6f 73 3b 0a 20 20 20 20 69 6e 74 09 09 09 73 |pos;. int...s| 00069680 69 7a 65 3b 0a 20 20 20 20 69 6e 74 09 09 09 66 |ize;. int...f| 00069690 69 6c 65 74 79 70 65 3b 0a 20 20 20 20 63 68 61 |iletype;. cha| 000696a0 72 09 09 66 69 6c 65 6e 61 6d 65 5b 32 31 32 5d |r..filename[212]| 000696b0 3b 0a 20 20 7d 0a 0a 54 68 65 20 72 65 63 65 69 |;. }..The recei| 000696c0 76 65 72 20 6f 66 20 74 68 69 73 20 6d 65 73 73 |ver of this mess| 000696d0 61 67 65 20 73 68 6f 75 6c 64 20 6c 6f 61 64 20 |age should load | 000696e0 74 68 65 20 66 69 6c 65 20 61 6e 64 20 73 65 6e |the file and sen| 000696f0 64 20 61 20 44 61 74 61 4c 6f 61 64 41 63 6b 20 |d a DataLoadAck | 00069700 6d 65 73 73 61 67 65 2e 44 41 54 41 a3 00 00 00 |message.DATA....| 00069710 6d 65 73 73 61 67 65 5f 64 61 74 61 6f 70 65 6e |message_dataopen| 00069720 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 00069730 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 00069740 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 |b:Wimp.h=>Wimp> | 00069750 61 73 20 61 20 73 74 72 75 63 74 75 72 65 20 68 |as a structure h| 00069760 6f 6c 64 69 6e 67 20 64 61 74 61 20 66 72 6f 6d |olding data from| 00069770 20 61 20 44 61 74 61 4f 70 65 6e 20 6d 65 73 73 | a DataOpen mess| 00069780 61 67 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e |age. It is defin| 00069790 65 64 20 61 73 20 61 20 3c 6d 65 73 73 61 67 65 |ed as a <message| 000697a0 5f 64 61 74 61 6c 6f 61 64 3e 2e 00 44 41 54 41 |_dataload>..DATA| 000697b0 a6 02 00 00 6d 65 73 73 61 67 65 5f 64 61 74 61 |....message_data| 000697c0 73 61 76 65 0a 54 68 69 73 20 69 73 20 61 20 74 |save.This is a t| 000697d0 79 70 65 20 64 65 66 69 6e 65 64 20 69 6e 20 3c |ype defined in <| 000697e0 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e |DeskLib:Wimp.h=>| 000697f0 57 69 6d 70 3e 20 61 73 20 61 20 74 79 70 65 20 |Wimp> as a type | 00069800 73 75 69 74 61 62 6c 65 20 66 6f 72 20 68 6f 6c |suitable for hol| 00069810 64 69 6e 67 20 64 61 74 61 20 66 72 6f 6d 20 61 |ding data from a| 00069820 20 44 61 74 61 53 61 76 65 20 6d 65 73 73 61 67 | DataSave messag| 00069830 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |e. It is defined| 00069840 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 00069850 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 |g structure:.. | 00069860 5c 7b 0a 20 20 20 20 3c 77 69 6e 64 6f 77 5f 68 |\{. <window_h| 00069870 61 6e 64 6c 65 3e 09 77 69 6e 64 6f 77 3b 0a 20 |andle>.window;. | 00069880 20 20 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e | <icon_handle>| 00069890 09 69 63 6f 6e 3b 0a 20 20 20 20 3c 77 69 6d 70 |.icon;. <wimp| 000698a0 5f 70 6f 69 6e 74 3e 09 70 6f 73 3b 0a 20 20 20 |_point>.pos;. | 000698b0 20 69 6e 74 09 09 09 65 73 74 73 69 7a 65 3b 0a | int...estsize;.| 000698c0 20 20 20 20 69 6e 74 09 09 09 66 69 6c 65 74 79 | int...filety| 000698d0 70 65 3b 0a 20 20 20 20 63 68 61 72 09 09 6c 65 |pe;. char..le| 000698e0 61 66 6e 61 6d 65 5b 31 32 5d 3b 0a 20 20 7d 0a |afname[12];. }.| 000698f0 0a 54 68 69 73 20 6d 65 73 73 61 67 65 20 69 6e |.This message in| 00069900 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 65 |dicates that the| 00069910 20 73 65 6e 64 65 72 20 77 61 6e 74 73 20 74 6f | sender wants to| 00069920 20 73 61 76 65 20 64 61 74 61 20 74 6f 20 74 68 | save data to th| 00069930 65 20 72 65 63 65 69 76 65 72 2e 20 54 68 65 20 |e receiver. The | 00069940 72 65 63 65 69 76 65 72 20 73 68 6f 75 6c 64 20 |receiver should | 00069950 72 65 73 70 6f 6e 64 20 77 69 74 68 20 61 20 44 |respond with a D| 00069960 61 74 61 53 61 76 65 41 63 6b 20 6f 72 20 52 61 |ataSaveAck or Ra| 00069970 6d 46 65 74 63 68 20 6d 65 73 73 61 67 65 2e 0a |mFetch message..| 00069980 0a 54 68 65 20 2f 77 69 6e 64 6f 77 2f 2c 20 2f |.The /window/, /| 00069990 69 63 6f 6e 2f 2c 20 61 6e 64 20 2f 70 6f 73 2f |icon/, and /pos/| 000699a0 20 63 6f 6d 65 20 66 72 6f 6d 20 3c 57 69 6d 70 | come from <Wimp| 000699b0 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 3e |_GetPointerInfo>| 000699c0 2e 20 54 68 65 20 72 65 73 74 20 73 68 6f 75 6c |. The rest shoul| 000699d0 64 20 62 65 20 66 69 6c 6c 65 64 20 69 6e 20 62 |d be filled in b| 000699e0 79 20 74 68 65 20 73 61 76 69 6e 67 20 74 61 73 |y the saving tas| 000699f0 6b 2e 20 2f 66 69 6c 65 74 79 70 65 2f 20 63 61 |k. /filetype/ ca| 00069a00 6e 20 62 65 20 30 78 31 30 30 30 20 66 6f 72 20 |n be 0x1000 for | 00069a10 61 20 64 69 72 65 63 74 6f 72 79 2c 20 30 78 32 |a directory, 0x2| 00069a20 30 30 30 20 66 6f 72 20 61 6e 20 61 70 70 6c 69 |000 for an appli| 00069a30 63 61 74 69 6f 6e 2c 20 6f 72 20 30 78 66 66 66 |cation, or 0xfff| 00069a40 66 66 66 66 66 20 66 6f 72 20 75 6e 74 79 70 65 |fffff for untype| 00069a50 64 2e 00 00 44 41 54 41 ad 01 00 00 6d 65 73 73 |d...DATA....mess| 00069a60 61 67 65 5f 64 61 74 61 73 61 76 65 61 63 6b 0a |age_datasaveack.| 00069a70 54 68 69 73 20 69 73 20 61 20 73 74 72 75 63 74 |This is a struct| 00069a80 75 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 3c |ure defined in <| 00069a90 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e |DeskLib:Wimp.h=>| 00069aa0 57 69 6d 70 3e 2c 20 75 73 65 64 20 66 6f 72 20 |Wimp>, used for | 00069ab0 68 6f 6c 64 69 6e 67 20 64 61 74 61 20 66 72 6f |holding data fro| 00069ac0 6d 20 61 20 44 61 74 61 53 61 76 65 41 63 6b 20 |m a DataSaveAck | 00069ad0 6d 65 73 73 61 67 65 2e 0a 0a 20 20 5c 7b 0a 20 |message... \{. | 00069ae0 20 20 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c | <window_handl| 00069af0 65 3e 09 77 69 6e 64 6f 77 3b 0a 20 20 20 20 3c |e>.window;. <| 00069b00 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 09 69 63 6f |icon_handle>.ico| 00069b10 6e 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 70 6f 69 |n;. <wimp_poi| 00069b20 6e 74 3e 09 70 6f 73 3b 0a 20 20 20 20 69 6e 74 |nt>.pos;. int| 00069b30 09 09 09 65 73 74 73 69 7a 65 3b 0a 20 20 20 20 |...estsize;. | 00069b40 69 6e 74 09 09 09 66 69 6c 65 74 79 70 65 3b 0a |int...filetype;.| 00069b50 20 20 20 20 63 68 61 72 09 09 66 69 6c 65 6e 61 | char..filena| 00069b60 6d 65 5b 32 31 32 5d 3b 0a 20 20 7d 0a 0a 54 68 |me[212];. }..Th| 00069b70 69 73 20 6d 65 73 73 61 67 65 20 61 63 6b 6e 6f |is message ackno| 00069b80 77 6c 65 64 67 65 73 20 61 20 44 61 74 61 53 61 |wledges a DataSa| 00069b90 76 65 20 6d 65 73 73 61 67 65 2e 20 54 68 65 20 |ve message. The | 00069ba0 72 65 63 65 69 76 65 72 20 73 68 6f 75 6c 64 20 |receiver should | 00069bb0 72 65 73 70 6f 6e 64 20 77 69 74 68 20 61 20 44 |respond with a D| 00069bc0 61 74 61 4c 6f 61 64 20 6d 65 73 73 61 67 65 2e |ataLoad message.| 00069bd0 0a 0a 2f 65 73 74 73 69 7a 65 2f 20 77 69 6c 6c |../estsize/ will| 00069be0 20 62 65 20 2d 31 20 69 66 20 74 68 65 20 66 69 | be -1 if the fi| 00069bf0 6c 65 20 69 73 20 6e 6f 74 20 27 73 61 66 65 27 |le is not 'safe'| 00069c00 2e 00 00 00 44 41 54 41 be 00 00 00 6d 65 73 73 |....DATA....mess| 00069c10 61 67 65 5f 64 65 73 74 69 6e 65 65 0a 54 68 69 |age_destinee.Thi| 00069c20 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 00069c30 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 |d in <DeskLib:Wi| 00069c40 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 |mp.h=>Wimp> as a| 00069c50 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 00069c60 20 68 6f 6c 64 69 6e 67 20 61 20 6d 65 73 73 61 | holding a messa| 00069c70 67 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 68 |ge destination h| 00069c80 61 6e 64 6c 65 20 28 65 69 74 68 65 72 20 61 20 |andle (either a | 00069c90 77 69 6e 64 6f 77 20 6f 72 20 74 61 73 6b 20 68 |window or task h| 00069ca0 61 6e 64 6c 65 29 2e 20 49 74 20 69 73 20 64 65 |andle). It is de| 00069cb0 66 69 6e 65 64 20 61 73 20 61 6e 20 2f 69 6e 74 |fined as an /int| 00069cc0 2f 2e 00 00 44 41 54 41 3d 01 00 00 6d 65 73 73 |/...DATA=...mess| 00069cd0 61 67 65 5f 68 65 61 64 65 72 0a 54 68 69 73 20 |age_header.This | 00069ce0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 00069cf0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |in <DeskLib:Wimp| 00069d00 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 20 74 |.h=>Wimp> as a t| 00069d10 79 70 65 20 73 75 69 74 61 62 6c 65 20 66 6f 72 |ype suitable for| 00069d20 20 68 6f 6c 64 69 6e 67 20 61 20 57 69 6d 70 20 | holding a Wimp | 00069d30 6d 65 73 73 61 67 65 20 68 65 61 64 65 72 2e 20 |message header. | 00069d40 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00069d50 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 00069d60 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 20 20 5c |tructure:.. \| 00069d70 7b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |{. unsigned| 00069d80 20 69 6e 74 09 73 69 7a 65 3b 0a 20 20 20 20 20 | int.size;. | 00069d90 20 3c 74 61 73 6b 5f 68 61 6e 64 6c 65 3e 09 73 | <task_handle>.s| 00069da0 65 6e 64 65 72 3b 0a 20 20 20 20 20 20 75 6e 73 |ender;. uns| 00069db0 69 67 6e 65 64 20 69 6e 74 09 6d 79 72 65 66 3b |igned int.myref;| 00069dc0 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00069dd0 69 6e 74 09 79 6f 75 72 72 65 66 3b 0a 20 20 20 |int.yourref;. | 00069de0 20 20 20 3c 6d 65 73 73 61 67 65 5f 61 63 74 69 | <message_acti| 00069df0 6f 6e 3e 09 61 63 74 69 6f 6e 3b 0a 20 20 20 20 |on>.action;. | 00069e00 7d 00 00 00 44 41 54 41 5a 01 00 00 6d 65 73 73 |}...DATAZ...mess| 00069e10 61 67 65 5f 68 65 6c 70 72 65 70 6c 79 0a 54 68 |age_helpreply.Th| 00069e20 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00069e30 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 |ed in <DeskLib:W| 00069e40 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 |imp.h=>Wimp> as | 00069e50 61 20 73 74 72 75 63 74 75 72 65 20 68 6f 6c 64 |a structure hold| 00069e60 69 6e 67 20 64 61 74 61 20 66 6f 72 20 61 20 48 |ing data for a H| 00069e70 65 6c 70 52 65 70 6c 79 20 6d 65 73 73 61 67 65 |elpReply message| 00069e80 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 |... \{. char| 00069e90 20 74 65 78 74 5b 32 30 30 5d 3b 0a 20 20 7d 0a | text[200];. }.| 00069ea0 0a 54 68 69 73 20 6d 65 73 73 61 67 65 20 69 73 |.This message is| 00069eb0 20 75 73 65 64 20 74 6f 20 70 72 6f 76 69 64 65 | used to provide| 00069ec0 20 69 6e 74 65 72 61 63 74 69 76 65 20 68 65 6c | interactive hel| 00069ed0 70 2e 20 59 6f 75 20 72 65 70 6c 79 20 74 6f 20 |p. You reply to | 00069ee0 61 20 48 65 6c 70 52 65 71 75 65 73 74 20 6d 65 |a HelpRequest me| 00069ef0 73 73 61 67 65 20 77 69 74 68 20 74 68 69 73 20 |ssage with this | 00069f00 6d 65 73 73 61 67 65 20 77 68 69 63 68 20 69 6e |message which in| 00069f10 64 69 63 61 74 65 73 20 74 68 65 20 68 65 6c 70 |dicates the help| 00069f20 20 74 6f 20 62 65 20 64 69 73 70 6c 61 79 65 64 | to be displayed| 00069f30 2e 20 22 7c 4d 22 20 77 69 74 68 69 6e 20 74 68 |. "|M" within th| 00069f40 65 20 74 65 78 74 20 69 6e 64 69 63 61 74 65 73 |e text indicates| 00069f50 20 61 20 6c 69 6e 65 20 62 72 65 61 6b 2e 00 00 | a line break...| 00069f60 44 41 54 41 15 01 00 00 6d 65 73 73 61 67 65 5f |DATA....message_| 00069f70 68 65 6c 70 72 65 71 75 65 73 74 0a 54 68 69 73 |helprequest.This| 00069f80 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 | type is defined| 00069f90 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d | in <DeskLib:Wim| 00069fa0 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 0a |p.h=>Wimp> as a.| 00069fb0 73 74 72 75 63 74 75 72 65 20 68 6f 6c 64 69 6e |structure holdin| 00069fc0 67 20 64 61 74 61 20 66 6f 72 20 61 20 48 65 6c |g data for a Hel| 00069fd0 70 52 65 71 75 65 73 74 0a 6d 65 73 73 61 67 65 |pRequest.message| 00069fe0 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c 6d 6f 75 |... \{. <mou| 00069ff0 73 65 5f 62 6c 6f 63 6b 3e 20 77 68 65 72 65 3b |se_block> where;| 0006a000 0a 20 20 7d 0a 0a 54 68 69 73 20 6d 65 73 73 61 |. }..This messa| 0006a010 67 65 20 69 73 20 75 73 65 64 20 74 6f 20 70 72 |ge is used to pr| 0006a020 6f 76 69 64 65 20 69 6e 74 65 72 61 63 74 69 76 |ovide interactiv| 0006a030 65 0a 68 65 6c 70 2e 20 2f 77 68 65 72 65 2f 20 |e.help. /where/ | 0006a040 74 65 6c 6c 73 20 79 6f 75 20 66 6f 72 20 77 68 |tells you for wh| 0006a050 69 63 68 20 77 69 6e 64 6f 77 20 61 6e 64 0a 69 |ich window and.i| 0006a060 63 6f 6e 20 68 65 6c 70 20 69 73 20 72 65 71 75 |con help is requ| 0006a070 69 72 65 64 2e 00 00 00 44 41 54 41 66 01 00 00 |ired....DATAf...| 0006a080 6d 65 73 73 61 67 65 5f 6d 65 6e 75 77 61 72 6e |message_menuwarn| 0006a090 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0006a0a0 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 0006a0b0 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 |b:Wimp.h=>Wimp> | 0006a0c0 61 73 20 61 20 73 74 72 75 63 74 75 72 65 20 68 |as a structure h| 0006a0d0 6f 6c 64 69 6e 67 20 64 61 74 61 20 66 6f 72 20 |olding data for | 0006a0e0 61 20 4d 65 6e 75 57 61 72 6e 69 6e 67 20 6d 65 |a MenuWarning me| 0006a0f0 73 73 61 67 65 2e 0a 0a 20 20 5c 7b 0a 20 20 20 |ssage... \{. | 0006a100 20 69 6e 74 09 09 09 69 64 3b 0a 20 20 20 20 3c | int...id;. <| 0006a110 77 69 6d 70 5f 70 6f 69 6e 74 3e 09 6f 70 65 6e |wimp_point>.open| 0006a120 70 6f 73 3b 0a 20 20 20 20 69 6e 74 09 09 09 73 |pos;. int...s| 0006a130 65 6c 65 63 74 69 6f 6e 5b 31 30 5d 3b 0a 20 20 |election[10];. | 0006a140 7d 0a 7b 74 61 62 7d 0a 8f 09 2f 69 64 2f 20 69 |}.{tab}.../id/ i| 0006a150 73 20 74 68 65 20 6e 75 6d 62 65 72 20 67 69 76 |s the number giv| 0006a160 65 6e 20 74 6f 20 57 69 6d 70 5f 43 72 65 61 74 |en to Wimp_Creat| 0006a170 65 4d 65 6e 75 2e 0a 8f 09 2f 6f 70 65 6e 70 6f |eMenu..../openpo| 0006a180 73 2f 20 69 73 20 74 68 65 20 70 6f 73 69 74 69 |s/ is the positi| 0006a190 6f 6e 20 74 6f 20 6f 70 65 6e 20 73 75 62 6d 65 |on to open subme| 0006a1a0 6e 75 20 61 74 2e 0a 8f 09 2f 73 65 6c 65 63 74 |nu at..../select| 0006a1b0 69 6f 6e 2f 20 69 73 20 61 20 6c 69 73 74 20 6f |ion/ is a list o| 0006a1c0 66 20 73 65 6c 65 63 74 69 6f 6e 73 2c 20 74 65 |f selections, te| 0006a1d0 72 6d 69 6e 61 74 65 64 20 62 79 20 2d 31 00 00 |rminated by -1..| 0006a1e0 44 41 54 41 62 01 00 00 6d 65 73 73 61 67 65 5f |DATAb...message_| 0006a1f0 70 6f 70 75 70 72 65 71 75 65 73 74 0a 54 68 69 |popuprequest.Thi| 0006a200 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 0006a210 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f |d in <DeskLib:Po| 0006a220 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 |pUp.h=>PopUp>. I| 0006a230 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 0006a240 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e | used to contain| 0006a250 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 61 73 | information pas| 0006a260 73 65 64 20 62 79 20 61 20 6d 65 73 73 61 67 65 |sed by a message| 0006a270 5f 50 4f 50 55 50 52 45 51 55 45 53 54 20 65 76 |_POPUPREQUEST ev| 0006a280 65 6e 74 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c |ent:.. \{. <| 0006a290 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 |window_handle>.w| 0006a2a0 69 6e 64 6f 77 3b 0a 20 20 20 20 3c 77 69 6d 70 |indow;. <wimp| 0006a2b0 5f 70 6f 69 6e 74 3e 09 6f 70 65 6e 70 6f 73 3b |_point>.openpos;| 0006a2c0 0a 20 20 7d 0a 0a 59 6f 75 20 73 68 6f 75 6c 64 |. }..You should| 0006a2d0 20 63 61 73 74 20 74 68 65 20 3c 65 76 65 6e 74 | cast the <event| 0006a2e0 5f 70 6f 6c 6c 62 6c 6f 63 6b 3e 2e 64 61 74 61 |_pollblock>.data| 0006a2f0 2e 6d 65 73 73 61 67 65 2e 64 61 74 61 20 75 6e |.message.data un| 0006a300 69 6f 6e 20 69 6e 74 6f 20 74 68 69 73 20 74 79 |ion into this ty| 0006a310 70 65 2e 0a 0a 53 65 65 20 74 68 65 20 50 6f 70 |pe...See the Pop| 0006a320 55 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e |Up documentation| 0006a330 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c | for more detail| 0006a340 73 2e 00 00 44 41 54 41 74 01 00 00 6d 65 73 73 |s...DATAt...mess| 0006a350 61 67 65 5f 70 6f 70 75 70 73 74 61 74 65 0a 54 |age_popupstate.T| 0006a360 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 0006a370 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 0006a380 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e |PopUp.h=>PopUp>.| 0006a390 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 | It is a structu| 0006a3a0 72 65 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 61 |re used to conta| 0006a3b0 69 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 |in information p| 0006a3c0 61 73 73 65 64 20 62 79 20 61 20 6d 65 73 73 61 |assed by a messa| 0006a3d0 67 65 5f 50 4f 50 55 50 53 54 41 54 45 20 65 76 |ge_POPUPSTATE ev| 0006a3e0 65 6e 74 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c |ent:.. \{. <| 0006a3f0 70 6f 70 75 70 5f 68 61 6e 64 6c 65 3e 09 68 61 |popup_handle>.ha| 0006a400 6e 64 6c 65 3b 0a 20 20 20 20 63 68 61 72 09 09 |ndle;. char..| 0006a410 6e 61 6d 65 5b 31 32 5d 3b 0a 20 20 20 20 3c 70 |name[12];. <p| 0006a420 6f 70 75 70 5f 72 65 74 75 72 6e 64 61 74 61 3e |opup_returndata>| 0006a430 09 64 61 74 61 3b 0a 20 20 7d 0a 0a 59 6f 75 20 |.data;. }..You | 0006a440 73 68 6f 75 6c 64 20 63 61 73 74 20 74 68 65 20 |should cast the | 0006a450 3c 65 76 65 6e 74 5f 70 6f 6c 6c 62 6c 6f 63 6b |<event_pollblock| 0006a460 3e 2e 64 61 74 61 2e 6d 65 73 73 61 67 65 2e 64 |>.data.message.d| 0006a470 61 74 61 20 75 6e 69 6f 6e 20 69 6e 74 6f 20 74 |ata union into t| 0006a480 68 69 73 20 74 79 70 65 2e 0a 0a 53 65 65 20 74 |his type...See t| 0006a490 68 65 20 50 6f 70 55 70 20 64 6f 63 75 6d 65 6e |he PopUp documen| 0006a4a0 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 |tation for more | 0006a4b0 64 65 74 61 69 6c 73 2e 44 41 54 41 c3 00 00 00 |details.DATA....| 0006a4c0 6d 65 73 73 61 67 65 5f 70 72 69 6e 74 0a 54 68 |message_print.Th| 0006a4d0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0006a4e0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 |ed in <DeskLib:W| 0006a4f0 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 20 |imp.h=>Wimp> as | 0006a500 61 20 73 74 72 75 63 74 75 72 65 20 68 6f 6c 64 |a structure hold| 0006a510 69 6e 67 20 64 61 74 61 20 66 6f 72 20 61 20 50 |ing data for a P| 0006a520 72 69 6e 74 54 79 70 65 4f 64 64 20 6d 65 73 73 |rintTypeOdd mess| 0006a530 61 67 65 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 |age... \{. i| 0006a540 6e 74 20 66 69 6c 6c 65 72 5b 35 5d 3b 0a 20 20 |nt filler[5];. | 0006a550 20 20 69 6e 74 20 66 69 6c 65 74 79 70 65 3b 0a | int filetype;.| 0006a560 20 20 20 20 63 68 61 72 20 66 69 6c 65 6e 61 6d | char filenam| 0006a570 65 5b 32 31 32 5d 3b 0a 20 20 7d 00 44 41 54 41 |e[212];. }.DATA| 0006a580 aa 00 00 00 6d 65 73 73 61 67 65 5f 72 61 6d 66 |....message_ramf| 0006a590 65 74 63 68 0a 54 68 69 73 20 74 79 70 65 20 69 |etch.This type i| 0006a5a0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 0006a5b0 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 |skLib:Wimp.h=>Wi| 0006a5c0 6d 70 3e 20 61 73 20 61 20 73 74 72 75 63 74 75 |mp> as a structu| 0006a5d0 72 65 20 68 6f 6c 64 69 6e 67 20 64 61 74 61 20 |re holding data | 0006a5e0 66 6f 72 20 61 20 52 41 4d 46 65 74 63 68 20 6d |for a RAMFetch m| 0006a5f0 65 73 73 61 67 65 2e 0a 0a 20 20 5c 7b 0a 20 20 |essage... \{. | 0006a600 20 20 63 68 61 72 09 2a 62 75 66 66 65 72 3b 0a | char.*buffer;.| 0006a610 20 20 20 20 69 6e 74 09 09 62 75 66 66 73 69 7a | int..buffsiz| 0006a620 65 3b 0a 20 20 7d 00 00 44 41 54 41 b4 00 00 00 |e;. }..DATA....| 0006a630 6d 65 73 73 61 67 65 5f 72 61 6d 74 72 61 6e 73 |message_ramtrans| 0006a640 6d 69 74 0a 54 68 69 73 20 74 79 70 65 20 69 73 |mit.This type is| 0006a650 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 0006a660 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d |kLib:Wimp.h=>Wim| 0006a670 70 3e 20 61 73 20 61 20 73 74 72 75 63 74 75 72 |p> as a structur| 0006a680 65 20 68 6f 6c 64 69 6e 67 20 64 61 74 61 20 66 |e holding data f| 0006a690 6f 72 20 61 20 52 41 4d 54 72 61 6e 73 6d 69 74 |or a RAMTransmit| 0006a6a0 20 6d 65 73 73 61 67 65 2e 0a 0a 20 20 5c 7b 0a | message... \{.| 0006a6b0 20 20 20 20 63 68 61 72 09 2a 62 75 66 66 65 72 | char.*buffer| 0006a6c0 3b 0a 20 20 20 20 69 6e 74 09 09 62 79 74 65 73 |;. int..bytes| 0006a6d0 77 72 69 74 74 65 6e 3b 0a 20 20 7d 44 41 54 41 |written;. }DATA| 0006a6e0 13 01 00 00 6d 65 73 73 61 67 65 5f 64 61 74 61 |....message_data| 0006a6f0 6c 6f 61 64 61 63 6b 0a 54 68 69 73 20 74 79 70 |loadack.This typ| 0006a700 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 0006a710 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d |<DeskLib:Wimp.h=| 0006a720 3e 57 69 6d 70 3e 20 61 73 20 61 20 73 74 72 75 |>Wimp> as a stru| 0006a730 63 74 75 72 65 20 68 6f 6c 64 69 6e 67 20 64 61 |cture holding da| 0006a740 74 61 20 66 72 6f 6d 20 61 20 44 61 74 61 4c 6f |ta from a DataLo| 0006a750 61 64 41 63 6b 20 6d 65 73 73 61 67 65 2e 0a 0a |adAck message...| 0006a760 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6e 64 6f 77 | \{. <window| 0006a770 5f 68 61 6e 64 6c 65 3e 09 77 69 6e 64 6f 77 3b |_handle>.window;| 0006a780 0a 20 20 20 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c |. <icon_handl| 0006a790 65 3e 09 69 63 6f 6e 3b 0a 20 20 20 20 3c 77 69 |e>.icon;. <wi| 0006a7a0 6d 70 5f 70 6f 69 6e 74 3e 09 70 6f 73 3b 0a 20 |mp_point>.pos;. | 0006a7b0 20 20 20 69 6e 74 09 09 09 73 69 7a 65 3b 0a 20 | int...size;. | 0006a7c0 20 20 20 69 6e 74 09 09 09 66 69 6c 65 74 79 70 | int...filetyp| 0006a7d0 65 3b 0a 20 20 20 20 63 68 61 72 09 09 66 69 6c |e;. char..fil| 0006a7e0 65 6e 61 6d 65 5b 32 31 32 5d 3b 0a 20 20 7d 00 |ename[212];. }.| 0006a7f0 44 41 54 41 61 01 00 00 6d 65 73 73 61 67 65 5f |DATAa...message_| 0006a800 69 63 6f 6e 69 7a 65 0a 54 68 69 73 20 74 79 70 |iconize.This typ| 0006a810 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 0006a820 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d |<DeskLib:Wimp.h=| 0006a830 3e 57 69 6d 70 3e 20 61 73 20 61 20 73 74 72 75 |>Wimp> as a stru| 0006a840 63 74 75 72 65 20 68 6f 6c 64 69 6e 67 20 64 61 |cture holding da| 0006a850 74 61 20 66 6f 72 20 61 6e 20 49 63 6f 6e 69 7a |ta for an Iconiz| 0006a860 65 20 6d 65 73 73 61 67 65 2e 0a 0a 20 20 5c 7b |e message... \{| 0006a870 0a 20 20 20 20 3c 77 69 6e 64 6f 77 5f 68 61 6e |. <window_han| 0006a880 64 6c 65 3e 09 77 69 6e 64 6f 77 3b 0a 20 20 20 |dle>.window;. | 0006a890 20 3c 74 61 73 6b 5f 68 61 6e 64 6c 65 3e 09 74 | <task_handle>.t| 0006a8a0 61 73 6b 3b 0a 20 20 20 20 63 68 61 72 09 09 74 |ask;. char..t| 0006a8b0 69 74 6c 65 5b 32 30 5d 3b 0a 20 20 7d 0a 7b 74 |itle[20];. }.{t| 0006a8c0 61 62 7d 0a 8f 09 2f 77 69 6e 64 6f 77 2f 20 69 |ab}.../window/ i| 0006a8d0 73 20 74 68 65 20 77 69 6e 64 6f 77 20 74 6f 20 |s the window to | 0006a8e0 69 63 6f 6e 69 7a 65 2e 0a 8f 09 2f 74 61 73 6b |iconize..../task| 0006a8f0 2f 20 69 73 20 74 68 65 20 74 61 73 6b 20 6f 77 |/ is the task ow| 0006a900 6e 69 6e 67 20 74 68 65 20 77 69 6e 64 6f 77 2e |ning the window.| 0006a910 0a 8f 09 2f 74 69 74 6c 65 2f 20 69 73 20 32 30 |.../title/ is 20| 0006a920 20 62 79 74 65 73 20 6f 66 20 74 69 74 6c 65 20 | bytes of title | 0006a930 73 74 72 69 6e 67 20 28 6c 61 73 74 20 70 61 72 |string (last par| 0006a940 74 20 6f 66 20 66 69 72 73 74 20 77 6f 72 64 29 |t of first word)| 0006a950 2e 00 00 00 44 41 54 41 9b 01 00 00 6d 65 73 73 |....DATA....mess| 0006a960 61 67 65 5f 77 69 6e 64 6f 77 69 6e 66 6f 0a 54 |age_windowinfo.T| 0006a970 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 0006a980 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 0006a990 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 |Wimp.h=>Wimp> as| 0006a9a0 20 61 20 73 74 72 75 63 74 75 72 65 20 68 6f 6c | a structure hol| 0006a9b0 64 69 6e 67 20 64 61 74 61 20 66 6f 72 20 61 6e |ding data for an| 0006a9c0 20 57 69 6e 64 6f 77 49 6e 66 6f 20 6d 65 73 73 | WindowInfo mess| 0006a9d0 61 67 65 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c |age... \{. <| 0006a9e0 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 |window_handle>.w| 0006a9f0 69 6e 64 6f 77 3b 0a 20 20 20 20 69 6e 74 09 09 |indow;. int..| 0006aa00 09 64 75 6d 6d 79 3b 0a 20 20 20 20 63 68 61 72 |.dummy;. char| 0006aa10 09 09 73 70 72 69 74 65 6e 61 6d 65 5b 38 5d 3b |..spritename[8];| 0006aa20 0a 20 20 20 20 63 68 61 72 09 09 74 69 74 6c 65 |. char..title| 0006aa30 5b 32 30 5d 3b 0a 20 20 7d 0a 7b 74 61 62 7d 0a |[20];. }.{tab}.| 0006aa40 8f 09 2f 77 69 6e 64 6f 77 2f 20 69 73 20 74 68 |../window/ is th| 0006aa50 65 20 77 69 6e 64 6f 77 20 74 6f 20 69 63 6f 6e |e window to icon| 0006aa60 69 7a 65 2e 0a 8f 09 2f 64 75 6d 6d 79 2f 20 69 |ize..../dummy/ i| 0006aa70 73 20 72 65 73 65 72 76 65 64 20 61 6e 64 20 6d |s reserved and m| 0006aa80 75 73 74 20 62 65 20 30 2e 0a 8f 09 2f 73 70 72 |ust be 0..../spr| 0006aa90 69 74 65 6e 61 6d 65 2f 20 69 73 20 74 68 65 20 |itename/ is the | 0006aaa0 73 70 72 69 74 65 20 74 6f 20 75 73 65 2e 0a 8f |sprite to use...| 0006aab0 09 2f 74 69 74 6c 65 2f 20 69 73 20 32 30 20 62 |./title/ is 20 b| 0006aac0 79 74 65 73 20 6f 66 20 74 69 74 6c 65 20 73 74 |ytes of title st| 0006aad0 72 69 6e 67 20 28 6c 61 73 74 20 70 61 72 74 20 |ring (last part | 0006aae0 6f 66 20 66 69 72 73 74 20 77 6f 72 64 29 2e 00 |of first word)..| 0006aaf0 44 41 54 41 bc 00 00 00 4d 49 4e 0a 54 68 69 73 |DATA....MIN.This| 0006ab00 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 0006ab10 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 43 6f |d in <TimsLib:Co| 0006ab20 72 65 2e 68 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 |re.h=>Core_TL> a| 0006ab30 6e 64 20 3c 44 65 73 6b 4c 69 62 3a 43 6f 72 65 |nd <DeskLib:Core| 0006ab40 2e 68 3d 3e 43 6f 72 65 3e 2e 20 49 74 20 69 73 |.h=>Core>. It is| 0006ab50 20 75 73 65 64 20 74 6f 20 66 69 6e 64 20 74 68 | used to find th| 0006ab60 65 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 74 77 6f |e minimum of two| 0006ab70 20 76 61 6c 75 65 73 2e 20 4d 49 4e 28 78 2c 79 | values. MIN(x,y| 0006ab80 29 20 77 69 6c 6c 20 67 69 76 65 20 79 6f 75 20 |) will give you | 0006ab90 2f 78 2f 20 69 66 20 78 5c 3c 79 2c 20 6f 72 20 |/x/ if x\<y, or | 0006aba0 2f 79 2f 20 69 66 20 78 3e 3d 79 2e 44 41 54 41 |/y/ if x>=y.DATA| 0006abb0 e8 01 00 00 6d 6b 74 69 6d 65 0a 53 79 6e 74 61 |....mktime.Synta| 0006abc0 78 3a 09 3c 74 69 6d 65 5f 74 3e 20 6d 6b 74 69 |x:.<time_t> mkti| 0006abd0 6d 65 20 28 3c 73 74 72 75 63 74 a0 74 6d 3e 20 |me (<struct.tm> | 0006abe0 2a 74 70 74 72 29 3b 0a 48 65 61 64 65 72 3a 09 |*tptr);.Header:.| 0006abf0 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 5f 68 3e |<time.h=>time_h>| 0006ac00 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 |..Returns:.The c| 0006ac10 61 6c 65 6e 64 61 72 20 74 69 6d 65 2e 0a 0a 54 |alendar time...T| 0006ac20 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b |his function tak| 0006ac30 65 73 20 74 68 65 20 62 72 6f 6b 65 6e 2d 64 6f |es the broken-do| 0006ac40 77 6e 20 74 69 6d 65 20 28 65 78 70 72 65 73 73 |wn time (express| 0006ac50 65 64 20 61 73 20 6c 6f 63 61 6c 20 74 69 6d 65 |ed as local time| 0006ac60 29 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |) pointed to by | 0006ac70 2f 74 70 74 72 2f 20 61 6e 64 20 63 6f 6e 76 65 |/tptr/ and conve| 0006ac80 72 74 73 20 69 6e 20 69 6e 74 6f 20 61 20 63 61 |rts in into a ca| 0006ac90 6c 65 6e 64 61 72 20 74 69 6d 65 20 76 61 6c 75 |lendar time valu| 0006aca0 65 2e 20 7b 2f 7d 74 70 74 72 2d 3e 74 6d 5f 77 |e. {/}tptr->tm_w| 0006acb0 64 61 79 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 74 70 |day{/} and {/}tp| 0006acc0 74 72 2d 3e 74 6d 5f 79 64 61 79 7b 2f 7d 20 61 |tr->tm_yday{/} a| 0006acd0 72 65 20 69 67 6e 6f 72 65 64 20 6f 6e 20 65 6e |re ignored on en| 0006ace0 74 72 79 2e 0a 0a 54 68 65 20 76 61 6c 75 65 73 |try...The values| 0006acf0 20 69 6e 20 74 68 65 20 62 72 6f 6b 65 6e 2d 64 | in the broken-d| 0006ad00 6f 77 6e 20 74 69 6d 65 20 73 74 72 75 63 74 75 |own time structu| 0006ad10 72 65 20 6d 61 79 20 62 65 20 61 6c 74 65 72 65 |re may be altere| 0006ad20 64 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 66 |d so that they f| 0006ad30 69 74 20 77 69 74 68 69 6e 20 74 68 65 20 6e 6f |it within the no| 0006ad40 72 6d 61 6c 20 72 61 6e 67 65 73 2e 20 41 6c 73 |rmal ranges. Als| 0006ad50 6f 20 7b 2f 7d 74 6d 5f 77 64 61 79 7b 2f 7d 20 |o {/}tm_wday{/} | 0006ad60 61 6e 64 20 7b 2f 7d 74 6d 5f 79 64 61 79 7b 2f |and {/}tm_yday{/| 0006ad70 7d 20 77 69 6c 6c 20 62 65 20 73 65 74 20 74 6f |} will be set to| 0006ad80 20 74 68 65 20 63 6f 72 72 65 63 74 20 76 61 6c | the correct val| 0006ad90 75 65 73 2e 44 41 54 41 48 01 00 00 6d 6f 64 66 |ues.DATAH...modf| 0006ada0 0a 53 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 20 |.Syntax:.double | 0006adb0 6d 6f 64 66 20 28 64 6f 75 62 6c 65 20 78 2c 20 |modf (double x, | 0006adc0 64 6f 75 62 6c 65 20 2a 69 29 3b 0a 48 65 61 64 |double *i);.Head| 0006add0 65 72 3a 09 3c 6d 61 74 68 2e 68 3d 3e 6d 61 74 |er:.<math.h=>mat| 0006ade0 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 |h>..Returns:.The| 0006adf0 20 66 72 61 63 74 69 6f 6e 61 6c 20 70 61 72 74 | fractional part| 0006ae00 20 6f 66 20 78 2e 0a 0a 54 68 69 73 20 66 75 6e | of x...This fun| 0006ae10 63 74 69 6f 6e 20 73 70 6c 69 74 73 20 74 68 65 |ction splits the| 0006ae20 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 | floating point | 0006ae30 6e 75 6d 62 65 72 20 69 6e 20 78 20 69 6e 74 6f |number in x into| 0006ae40 20 61 6e 20 69 6e 74 65 67 65 72 20 70 61 72 74 | an integer part| 0006ae50 20 61 6e 64 20 61 20 66 72 61 63 74 69 6f 6e 61 | and a fractiona| 0006ae60 6c 20 70 61 72 74 2e 20 49 74 20 73 74 6f 72 65 |l part. It store| 0006ae70 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 70 61 |s the integer pa| 0006ae80 72 74 20 28 61 73 20 61 20 64 6f 75 62 6c 65 21 |rt (as a double!| 0006ae90 29 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c |) in the variabl| 0006aea0 65 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |e pointed to by | 0006aeb0 69 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 |i. The function | 0006aec0 72 65 74 75 72 6e 73 20 74 68 65 20 66 72 61 63 |returns the frac| 0006aed0 74 69 6f 6e 61 6c 20 70 61 72 74 2e 44 41 54 41 |tional part.DATA| 0006aee0 87 01 00 00 6d 6f 64 69 66 69 65 72 73 0a 54 68 |....modifiers.Th| 0006aef0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0006af00 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 4b |ed in <TimsLib:K| 0006af10 62 64 2e 68 3d 3e 4b 62 64 5f 54 4c 3e 2e 20 49 |bd.h=>Kbd_TL>. I| 0006af20 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 0006af30 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 | used to hold th| 0006af40 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 |e status of the | 0006af50 6d 6f 64 69 66 69 65 72 20 6b 65 79 73 20 61 73 |modifier keys as| 0006af60 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 20 5c 7b 0a | follows:.. \{.| 0006af70 20 20 20 20 75 6e 73 69 67 6e 65 64 20 61 6c 74 | unsigned alt| 0006af80 09 3a 20 31 3b 0a 20 20 20 20 75 6e 73 69 67 6e |.: 1;. unsign| 0006af90 65 64 20 63 74 72 6c 09 3a 20 31 3b 0a 20 20 20 |ed ctrl.: 1;. | 0006afa0 20 75 6e 73 69 67 6e 65 64 20 73 68 69 66 74 09 | unsigned shift.| 0006afb0 3a 20 31 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 |: 1;. unsigne| 0006afc0 64 20 6c 65 66 74 5f 61 6c 74 09 3a 20 31 3b 0a |d left_alt.: 1;.| 0006afd0 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6c 65 66 | unsigned lef| 0006afe0 74 5f 63 74 72 6c 09 3a 20 31 3b 0a 20 20 20 20 |t_ctrl.: 1;. | 0006aff0 75 6e 73 69 67 6e 65 64 20 6c 65 66 74 5f 73 68 |unsigned left_sh| 0006b000 69 66 74 09 3a 20 31 3b 0a 20 20 20 20 75 6e 73 |ift.: 1;. uns| 0006b010 69 67 6e 65 64 20 72 69 67 68 74 5f 61 6c 74 09 |igned right_alt.| 0006b020 3a 20 31 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 |: 1;. unsigne| 0006b030 64 20 72 69 67 68 74 5f 63 74 72 6c 09 3a 20 31 |d right_ctrl.: 1| 0006b040 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 72 |;. unsigned r| 0006b050 69 67 68 74 5f 73 68 69 66 74 09 3a 20 31 3b 0a |ight_shift.: 1;.| 0006b060 20 20 7d 00 44 41 54 41 b1 00 00 00 44 65 73 6b | }.DATA....Desk| 0006b070 4c 69 62 3a 4d 6f 64 75 6c 65 2e 68 0a 56 65 72 |Lib:Module.h.Ver| 0006b080 73 69 6f 6e 3a 20 31 2e 30 30 20 28 32 33 20 4e |sion: 1.00 (23 N| 0006b090 6f 76 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a 54 |ov 1993).#line.T| 0006b0a0 68 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 |his header decla| 0006b0b0 72 65 73 20 61 20 66 65 77 20 76 65 6e 65 65 72 |res a few veneer| 0006b0c0 73 20 66 6f 72 20 74 68 65 20 3c 4f 53 5f 4d 6f |s for the <OS_Mo| 0006b0d0 64 75 6c 65 3d 3e 53 57 49 3a 4f 53 5f 4d 6f 64 |dule=>SWI:OS_Mod| 0006b0e0 75 6c 65 3e 20 53 57 49 2e 0a 0a 7b 61 6c 69 67 |ule> SWI...{alig| 0006b0f0 6e 20 63 65 6e 74 72 65 7d 3c 4d 6f 64 75 6c 65 |n centre}<Module| 0006b100 5f 43 6c 61 69 6d 3e 0a 3c 4d 6f 64 75 6c 65 5f |_Claim>.<Module_| 0006b110 46 72 65 65 3e 00 00 00 44 49 52 24 4c 00 00 00 |Free>...DIR$L...| 0006b120 4c 00 00 00 64 b1 06 00 46 ff ff ff 42 a0 43 25 |L...d...F...B.C%| 0006b130 33 01 00 00 13 00 00 00 00 00 00 00 43 6c 61 69 |3...........Clai| 0006b140 6d 00 00 00 98 b2 06 00 46 ff ff ff 1a a6 43 25 |m.......F.....C%| 0006b150 0f 01 00 00 13 00 00 00 00 00 00 00 46 72 65 65 |............Free| 0006b160 00 00 00 00 44 41 54 41 33 01 00 00 4d 6f 64 75 |....DATA3...Modu| 0006b170 6c 65 5f 43 6c 61 69 6d 0a 53 79 6e 74 61 78 3a |le_Claim.Syntax:| 0006b180 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 4d 6f 64 |.<os_error> *Mod| 0006b190 75 6c 65 5f 43 6c 61 69 6d 20 28 75 6e 73 69 67 |ule_Claim (unsig| 0006b1a0 6e 65 64 20 73 69 7a 65 2c 20 76 6f 69 64 20 2a |ned size, void *| 0006b1b0 2a 62 6c 6f 63 6b 29 3b 0a 48 65 61 64 65 72 3a |*block);.Header:| 0006b1c0 09 3c 44 65 73 6b 4c 69 62 3a 4d 6f 64 75 6c 65 |.<DeskLib:Module| 0006b1d0 2e 68 3d 3e 4d 6f 64 75 6c 65 3e 0a 0a 52 65 74 |.h=>Module>..Ret| 0006b1e0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 0006b1f0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 0006b200 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 0006b210 20 66 75 6e 63 74 69 6f 6e 20 63 6c 61 69 6d 73 | function claims| 0006b220 20 61 6e 20 61 72 65 61 20 6f 66 20 52 4d 41 20 | an area of RMA | 0006b230 73 70 61 63 65 20 6f 66 20 73 69 7a 65 20 73 70 |space of size sp| 0006b240 65 63 69 66 69 65 64 20 61 6e 64 20 72 65 74 75 |ecified and retu| 0006b250 72 6e 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f |rns a pointer to| 0006b260 20 69 74 20 69 6e 20 7b 2f 7d 2a 62 6c 6f 63 6b | it in {/}*block| 0006b270 7b 2f 7d 2e 20 2f 62 6c 6f 63 6b 2f 20 69 73 20 |{/}. /block/ is | 0006b280 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 70 |a pointer to a p| 0006b290 6f 69 6e 74 65 72 2e 00 44 41 54 41 0f 01 00 00 |ointer..DATA....| 0006b2a0 4d 6f 64 75 6c 65 5f 46 72 65 65 0a 53 79 6e 74 |Module_Free.Synt| 0006b2b0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0006b2c0 4d 6f 64 75 6c 65 5f 46 72 65 65 20 28 76 6f 69 |Module_Free (voi| 0006b2d0 64 20 2a 62 6c 6f 63 6b 29 3b 0a 48 65 61 64 65 |d *block);.Heade| 0006b2e0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 6f 64 75 |r:.<DeskLib:Modu| 0006b2f0 6c 65 2e 68 3d 3e 4d 6f 64 75 6c 65 3e 0a 0a 52 |le.h=>Module>..R| 0006b300 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0006b310 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0006b320 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0006b330 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 65 |is function rele| 0006b340 61 73 65 73 20 61 20 62 6c 6f 63 6b 20 6f 66 20 |ases a block of | 0006b350 52 4d 41 20 73 70 61 63 65 20 70 72 65 76 69 6f |RMA space previo| 0006b360 75 73 6c 79 20 63 6c 61 69 6d 65 64 20 75 73 69 |usly claimed usi| 0006b370 6e 67 20 3c 4d 6f 64 75 6c 65 5f 43 6c 61 69 6d |ng <Module_Claim| 0006b380 3e 2e 20 2f 62 6c 6f 63 6b 2f 20 69 73 20 74 68 |>. /block/ is th| 0006b390 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 |e pointer to the| 0006b3a0 20 62 6c 6f 63 6b 2e 00 44 49 52 24 2c 00 00 00 | block..DIR$,...| 0006b3b0 2c 00 00 00 d4 b3 06 00 46 ff ff ff eb 10 42 26 |,.......F.....B&| 0006b3c0 0e 01 00 00 13 00 00 00 00 00 00 00 62 6c 6f 63 |............bloc| 0006b3d0 6b 00 00 00 44 41 54 41 0e 01 00 00 6d 6f 75 73 |k...DATA....mous| 0006b3e0 65 5f 62 6c 6f 63 6b 0a 54 68 69 73 20 74 79 70 |e_block.This typ| 0006b3f0 65 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 |e is defined by | 0006b400 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d |<DeskLib:Wimp.h=| 0006b410 3e 57 69 6d 70 3e 2e 20 49 74 20 69 73 20 61 20 |>Wimp>. It is a | 0006b420 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 |structure used t| 0006b430 6f 20 63 6f 6e 74 61 69 6e 20 69 6e 66 6f 72 6d |o contain inform| 0006b440 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 6d 6f 75 |ation on the mou| 0006b450 73 65 20 70 6f 73 69 74 69 6f 6e 20 61 6e 64 20 |se position and | 0006b460 73 74 61 74 75 73 2c 20 61 73 20 66 6f 6c 6c 6f |status, as follo| 0006b470 77 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c 77 |ws:.. \{. <w| 0006b480 69 6d 70 5f 70 6f 69 6e 74 3e 09 70 6f 73 3b 0a |imp_point>.pos;.| 0006b490 20 20 20 20 3c 62 75 74 74 6f 6e 5f 73 74 61 74 | <button_stat| 0006b4a0 65 3e 09 62 75 74 74 6f 6e 3b 0a 20 20 20 20 3c |e>.button;. <| 0006b4b0 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 |window_handle>.w| 0006b4c0 69 6e 64 6f 77 3b 0a 20 20 20 20 3c 69 63 6f 6e |indow;. <icon| 0006b4d0 5f 68 61 6e 64 6c 65 3e 09 69 63 6f 6e 3b 0a 20 |_handle>.icon;. | 0006b4e0 20 7d 00 00 44 41 54 41 35 02 00 00 44 65 73 6b | }..DATA5...Desk| 0006b4f0 4c 69 62 3a 4d 73 67 73 2e 68 0a 56 65 72 73 69 |Lib:Msgs.h.Versi| 0006b500 6f 6e 3a 20 31 2e 30 31 20 28 30 34 20 41 75 67 |on: 1.01 (04 Aug| 0006b510 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a 54 68 69 | 1993).#line.Thi| 0006b520 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 |s header declare| 0006b530 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 |s functions for | 0006b540 68 61 6e 64 6c 69 6e 67 20 6d 65 73 73 61 67 65 |handling message| 0006b550 20 66 69 6c 65 73 2e 20 4e 6f 74 65 20 74 68 61 | files. Note tha| 0006b560 74 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e |t these function| 0006b570 73 20 64 6f 20 6e 6f 74 20 75 73 65 20 3c 4d 65 |s do not use <Me| 0006b580 73 73 61 67 65 54 72 61 6e 73 3d 3e 53 57 49 3a |ssageTrans=>SWI:| 0006b590 4d 65 73 73 61 67 65 54 72 61 6e 73 5f 3e 2e 0a |MessageTrans_>..| 0006b5a0 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e |.Functions:..#in| 0006b5b0 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 63 6f |dent 4.#Table co| 0006b5c0 6c 75 6d 6e 73 20 33 0a 3c 4d 73 67 73 5f 4c 6f |lumns 3.<Msgs_Lo| 0006b5d0 6f 6b 75 70 3e 0a 3c 4d 73 67 73 5f 70 72 69 6e |okup>.<Msgs_prin| 0006b5e0 74 66 3e 0a 3c 4d 73 67 73 5f 4c 6f 61 64 46 69 |tf>.<Msgs_LoadFi| 0006b5f0 6c 65 3e 0a 3c 4d 73 67 73 5f 44 72 6f 70 47 72 |le>.<Msgs_DropGr| 0006b600 6f 75 70 3e 0a 3c 4d 73 67 73 5f 52 65 70 6f 72 |oup>.<Msgs_Repor| 0006b610 74 3e 0a 3c 4d 73 67 73 5f 52 65 70 6f 72 74 46 |t>.<Msgs_ReportF| 0006b620 61 74 61 6c 3e 0a 23 45 6e 64 54 61 62 6c 65 0a |atal>.#EndTable.| 0006b630 23 69 6e 64 65 6e 74 20 30 0a 0a 41 63 6f 72 6e |#indent 0..Acorn| 0006b640 20 72 65 63 6f 6d 6d 65 6e 64 20 74 68 61 74 20 | recommend that | 0006b650 6d 65 73 73 61 67 65 20 66 69 6c 65 73 20 73 68 |message files sh| 0006b660 6f 75 6c 64 20 62 65 20 75 73 65 64 20 66 6f 72 |ould be used for| 0006b670 20 61 6c 6c 20 74 65 78 74 75 61 6c 20 6d 65 73 | all textual mes| 0006b680 73 61 67 65 73 20 65 67 20 6d 65 6e 75 73 2c 20 |sages eg menus, | 0006b690 65 72 72 6f 72 73 20 65 74 63 20 77 69 74 68 69 |errors etc withi| 0006b6a0 6e 20 70 72 6f 67 72 61 6d 73 20 73 6f 20 74 68 |n programs so th| 0006b6b0 61 74 20 76 65 72 73 69 6f 6e 73 20 69 6e 20 6f |at versions in o| 0006b6c0 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 63 |ther languages c| 0006b6d0 61 6e 20 62 65 20 70 72 6f 64 75 63 65 64 20 65 |an be produced e| 0006b6e0 61 73 69 6c 79 20 62 79 20 75 73 65 72 73 20 77 |asily by users w| 0006b6f0 69 74 68 6f 75 74 20 61 63 63 65 73 73 20 74 6f |ithout access to| 0006b700 20 74 68 65 20 70 72 6f 67 72 61 6d 20 73 6f 75 | the program sou| 0006b710 72 63 65 20 63 6f 64 65 2e 00 00 00 44 49 52 24 |rce code....DIR$| 0006b720 b4 01 00 00 b4 01 00 00 d0 b8 06 00 46 ff ff ff |............F...| 0006b730 0b 26 44 25 1b 01 00 00 13 00 00 00 00 00 00 00 |.&D%............| 0006b740 44 72 6f 70 47 72 6f 75 70 00 00 00 ec b9 06 00 |DropGroup.......| 0006b750 46 fd ff ff 14 b5 b1 24 ea 01 00 00 13 00 00 00 |F......$........| 0006b760 00 00 00 00 68 00 00 00 d8 bb 06 00 46 ff ff ff |....h.......F...| 0006b770 0f cd b1 24 6c 01 00 00 13 00 00 00 00 00 00 00 |...$l...........| 0006b780 69 6e 69 74 00 00 00 00 44 bd 06 00 46 ff ff ff |init....D...F...| 0006b790 62 12 44 25 fd 01 00 00 13 00 00 00 00 00 00 00 |b.D%............| 0006b7a0 4c 6f 61 64 46 69 6c 65 00 00 00 00 44 bf 06 00 |LoadFile....D...| 0006b7b0 46 ff ff ff 3c f4 43 25 b8 02 00 00 13 00 00 00 |F...<.C%........| 0006b7c0 00 00 00 00 4c 6f 6f 6b 75 70 00 00 fc c1 06 00 |....Lookup......| 0006b7d0 46 fd ff ff e6 fb b1 24 d5 01 00 00 13 00 00 00 |F......$........| 0006b7e0 00 00 00 00 6c 6f 6f 6b 75 70 5f 00 d4 c3 06 00 |....lookup_.....| 0006b7f0 46 ff ff ff 41 07 b2 24 78 00 00 00 13 00 00 00 |F...A..$x.......| 0006b800 00 00 00 00 4d 53 47 5f 4d 41 58 00 4c c4 06 00 |....MSG_MAX.L...| 0006b810 46 ff ff ff 63 ff 43 25 02 01 00 00 13 00 00 00 |F...c.C%........| 0006b820 00 00 00 00 70 72 69 6e 74 66 00 00 50 c5 06 00 |....printf..P...| 0006b830 46 ff ff ff 66 e0 b1 24 76 01 00 00 13 00 00 00 |F...f..$v.......| 0006b840 00 00 00 00 72 65 61 64 66 69 6c 65 00 00 00 00 |....readfile....| 0006b850 c8 c6 06 00 46 ff ff ff e2 2d 44 25 ea 00 00 00 |....F....-D%....| 0006b860 13 00 00 00 00 00 00 00 52 65 70 6f 72 74 00 00 |........Report..| 0006b870 b4 c7 06 00 46 ff ff ff 39 35 44 25 f9 00 00 00 |....F...95D%....| 0006b880 13 00 00 00 00 00 00 00 52 65 70 6f 72 74 46 61 |........ReportFa| 0006b890 74 61 6c 00 b0 c8 06 00 46 ff ff ff bc 04 b2 24 |tal.....F......$| 0006b8a0 7b 00 00 00 13 00 00 00 00 00 00 00 54 41 47 5f |{...........TAG_| 0006b8b0 4d 41 58 00 2c c9 06 00 46 fd ff ff d7 01 58 26 |MAX.,...F.....X&| 0006b8c0 dc 00 00 00 13 00 00 00 00 00 00 00 54 4c 00 00 |............TL..| 0006b8d0 44 41 54 41 1b 01 00 00 4d 73 67 73 5f 44 72 6f |DATA....Msgs_Dro| 0006b8e0 70 47 72 6f 75 70 0a 53 79 6e 74 61 78 3a 09 76 |pGroup.Syntax:.v| 0006b8f0 6f 69 64 20 4d 73 67 73 5f 44 72 6f 70 47 72 6f |oid Msgs_DropGro| 0006b900 75 70 20 28 63 68 61 72 20 2a 67 72 6f 75 70 29 |up (char *group)| 0006b910 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0006b920 69 62 3a 4d 73 67 73 2e 68 3d 3e 4d 73 67 73 3e |ib:Msgs.h=>Msgs>| 0006b930 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0006b940 64 65 6c 65 74 65 73 20 61 20 63 6f 6d 70 6c 65 |deletes a comple| 0006b950 74 65 20 6d 65 73 73 61 67 65 20 67 72 6f 75 70 |te message group| 0006b960 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 2e 20 2f 67 | from memory. /g| 0006b970 72 6f 75 70 2f 20 70 6f 69 6e 74 73 20 74 6f 20 |roup/ points to | 0006b980 74 68 65 20 67 72 6f 75 70 20 6e 61 6d 65 2e 20 |the group name. | 0006b990 69 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |ie this function| 0006b9a0 20 64 65 6c 65 74 65 73 20 61 6c 6c 20 6d 65 73 | deletes all mes| 0006b9b0 73 61 67 65 73 20 6f 66 20 74 68 65 20 66 6f 72 |sages of the for| 0006b9c0 6d 3a 20 7b 66 43 6f 64 65 7d 67 72 6f 75 70 2e |m: {fCode}group.| 0006b9d0 2a 7b 66 7d 2c 20 77 68 65 72 65 20 22 2a 22 20 |*{f}, where "*" | 0006b9e0 69 73 20 61 6e 79 20 74 61 67 2e 00 44 41 54 41 |is any tag..DATA| 0006b9f0 ea 01 00 00 6d 73 67 73 2e 68 0a 54 68 69 73 20 |....msgs.h.This | 0006ba00 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 |header declares | 0006ba10 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 68 61 |functions for ha| 0006ba20 6e 64 6c 69 6e 67 20 6d 65 73 73 61 67 65 20 66 |ndling message f| 0006ba30 69 6c 65 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |iles...Functions| 0006ba40 3a 0a 0a 23 69 6e 64 65 6e 74 20 38 3b 74 61 62 |:..#indent 8;tab| 0006ba50 6c 65 20 6c 69 6e 65 73 20 31 0a 3c 6d 73 67 73 |le lines 1.<msgs| 0006ba60 5f 69 6e 69 74 3e 0a 3c 6d 73 67 73 5f 72 65 61 |_init>.<msgs_rea| 0006ba70 64 66 69 6c 65 3e 0a 3c 6d 73 67 73 5f 6c 6f 6f |dfile>.<msgs_loo| 0006ba80 6b 75 70 3d 3e 6d 73 67 73 5f 6c 6f 6f 6b 75 70 |kup=>msgs_lookup| 0006ba90 5f 3e 0a 23 65 6e 64 74 61 62 6c 65 0a 23 69 6e |_>.#endtable.#in| 0006baa0 64 65 6e 74 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 23 |dent..Macros:..#| 0006bab0 69 6e 64 65 6e 74 20 39 3b 74 61 62 6c 65 20 6c |indent 9;table l| 0006bac0 69 6e 65 73 20 31 0a 3c 6d 73 67 73 5f 54 41 47 |ines 1.<msgs_TAG| 0006bad0 5f 4d 41 58 3e 0a 3c 6d 73 67 73 5f 4d 53 47 5f |_MAX>.<msgs_MSG_| 0006bae0 4d 41 58 3e 0a 23 65 6e 64 74 61 62 6c 65 0a 23 |MAX>.#endtable.#| 0006baf0 69 6e 64 65 6e 74 0a 0a 41 63 6f 72 6e 20 72 65 |indent..Acorn re| 0006bb00 63 6f 6d 6d 65 6e 64 20 74 68 61 74 20 6d 65 73 |commend that mes| 0006bb10 73 61 67 65 20 66 69 6c 65 73 20 73 68 6f 75 6c |sage files shoul| 0006bb20 64 20 62 65 20 75 73 65 64 20 66 6f 72 20 61 6c |d be used for al| 0006bb30 6c 20 74 65 78 74 75 61 6c 20 6d 65 73 73 61 67 |l textual messag| 0006bb40 65 73 20 65 67 20 6d 65 6e 75 73 2c 20 65 72 72 |es eg menus, err| 0006bb50 6f 72 73 20 65 74 63 20 77 69 74 68 69 6e 20 70 |ors etc within p| 0006bb60 72 6f 67 72 61 6d 73 20 73 6f 20 74 68 61 74 20 |rograms so that | 0006bb70 76 65 72 73 69 6f 6e 73 20 69 6e 20 6f 74 68 65 |versions in othe| 0006bb80 72 20 6c 61 6e 67 75 61 67 65 73 20 63 61 6e 20 |r languages can | 0006bb90 62 65 20 70 72 6f 64 75 63 65 64 20 65 61 73 69 |be produced easi| 0006bba0 6c 79 20 62 79 20 75 73 65 72 73 20 77 69 74 68 |ly by users with| 0006bbb0 6f 75 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 |out access to th| 0006bbc0 65 20 70 72 6f 67 72 61 6d 20 73 6f 75 72 63 65 |e program source| 0006bbd0 20 63 6f 64 65 2e 00 00 44 41 54 41 6c 01 00 00 | code...DATAl...| 0006bbe0 6d 73 67 73 5f 69 6e 69 74 0a 53 79 6e 74 61 78 |msgs_init.Syntax| 0006bbf0 3a 09 76 6f 69 64 20 6d 73 67 73 5f 69 6e 69 74 |:.void msgs_init| 0006bc00 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 0006bc10 09 3c 6d 73 67 73 2e 68 3d 3e 6d 73 67 73 5f 68 |.<msgs.h=>msgs_h| 0006bc20 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 0006bc30 20 72 65 61 64 73 20 69 6e 20 74 68 65 20 6d 65 | reads in the me| 0006bc40 73 73 61 67 65 73 20 69 6e 20 74 68 65 20 72 65 |ssages in the re| 0006bc50 73 6f 75 72 63 65 20 66 69 6c 65 20 22 4d 65 73 |source file "Mes| 0006bc60 73 61 67 65 73 22 2e 20 49 74 20 65 78 70 65 63 |sages". It expec| 0006bc70 74 73 20 6c 69 6e 65 73 20 6f 66 20 74 68 65 20 |ts lines of the | 0006bc80 66 6f 72 6d 3a 0a 7b 77 72 61 70 20 6f 66 66 7d |form:.{wrap off}| 0006bc90 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 0006bca0 6e 74 72 65 7d 74 61 67 31 2f 74 61 67 32 2f 74 |ntre}tag1/tag2/t| 0006bcb0 61 67 33 3a 4d 65 73 73 61 67 65 20 74 65 78 74 |ag3:Message text| 0006bcc0 20 75 6e 74 69 6c 20 6e 65 77 6c 69 6e 65 7b 66 | until newline{f| 0006bcd0 3b 61 6c 69 67 6e 3b 77 72 61 70 7d 0a 0a 57 68 |;align;wrap}..Wh| 0006bce0 65 72 65 20 7b 2f 7d 74 61 67 31 7b 2f 7d 2c 20 |ere {/}tag1{/}, | 0006bcf0 7b 2f 7d 74 61 67 32 7b 2f 7d 20 61 6e 64 20 7b |{/}tag2{/} and {| 0006bd00 2f 7d 74 61 67 33 7b 2f 7d 20 28 75 70 20 74 6f |/}tag3{/} (up to| 0006bd10 20 38 20 63 61 6e 20 62 65 20 75 73 65 64 29 20 | 8 can be used) | 0006bd20 61 72 65 20 61 6c 6c 20 69 64 65 6e 74 69 66 69 |are all identifi| 0006bd30 65 72 73 20 66 6f 72 20 74 68 65 20 6d 65 73 73 |ers for the mess| 0006bd40 61 67 65 2e 44 41 54 41 fd 01 00 00 4d 73 67 73 |age.DATA....Msgs| 0006bd50 5f 4c 6f 61 64 46 69 6c 65 0a 53 79 6e 74 61 78 |_LoadFile.Syntax| 0006bd60 3a 09 3c 42 4f 4f 4c 3e 20 4d 73 67 73 5f 4c 6f |:.<BOOL> Msgs_Lo| 0006bd70 61 64 46 69 6c 65 20 28 63 68 61 72 20 2a 6c 65 |adFile (char *le| 0006bd80 61 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |af);.Header:.<De| 0006bd90 73 6b 4c 69 62 3a 4d 73 67 73 2e 68 3d 3e 4d 73 |skLib:Msgs.h=>Ms| 0006bda0 67 73 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |gs>..This functi| 0006bdb0 6f 6e 20 61 64 64 73 20 74 68 65 20 6d 65 73 73 |on adds the mess| 0006bdc0 61 67 65 20 69 6e 20 74 68 65 20 66 69 6c 65 20 |age in the file | 0006bdd0 73 70 65 63 69 66 69 65 64 20 69 6e 74 6f 20 74 |specified into t| 0006bde0 68 65 20 63 75 72 72 65 6e 74 20 6c 69 73 74 20 |he current list | 0006bdf0 6f 66 20 6d 65 73 73 61 67 65 73 2c 20 77 69 74 |of messages, wit| 0006be00 68 20 6e 65 77 20 6d 65 73 73 61 67 65 73 20 6f |h new messages o| 0006be10 76 65 72 77 72 69 74 69 6e 67 20 6f 6c 64 20 6f |verwriting old o| 0006be20 6e 65 73 20 6f 66 20 74 68 65 20 73 61 6d 65 20 |nes of the same | 0006be30 6e 61 6d 65 2e 20 45 78 70 65 63 74 73 20 6c 69 |name. Expects li| 0006be40 6e 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a |nes of the form:| 0006be50 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 0006be60 6e 74 72 65 7d 67 72 6f 75 70 2e 74 61 67 3a 20 |ntre}group.tag: | 0006be70 6d 65 73 73 61 67 65 20 74 65 78 74 20 75 6e 74 |message text unt| 0006be80 69 6c 20 6e 65 77 6c 69 6e 65 7b 66 3b 61 6c 69 |il newline{f;ali| 0006be90 67 6e 7d 0a 0a 4c 65 61 64 69 6e 67 20 73 70 61 |gn}..Leading spa| 0006bea0 63 65 73 20 61 72 65 20 73 74 72 69 70 70 65 64 |ces are stripped| 0006beb0 2e 20 43 6f 6d 6d 65 6e 74 73 20 63 61 6e 20 62 |. Comments can b| 0006bec0 65 20 69 6e 63 6c 75 64 65 64 20 69 66 20 74 68 |e included if th| 0006bed0 65 20 6c 69 6e 65 20 73 74 61 72 74 73 20 77 69 |e line starts wi| 0006bee0 74 68 20 22 23 22 2e 0a 0a 54 68 65 20 66 69 6c |th "#"...The fil| 0006bef0 65 20 69 73 20 66 6f 75 6e 64 20 75 73 69 6e 67 |e is found using| 0006bf00 20 74 68 65 20 3c 72 65 73 6f 75 72 63 65 5f 70 | the <resource_p| 0006bf10 61 74 68 6e 61 6d 65 3e 2c 20 61 6e 64 20 2f 6c |athname>, and /l| 0006bf20 65 61 66 2f 20 77 68 69 63 68 20 63 6f 6e 74 61 |eaf/ which conta| 0006bf30 69 6e 73 20 74 68 65 20 6c 65 61 66 6e 61 6d 65 |ins the leafname| 0006bf40 2e 00 00 00 44 41 54 41 b8 02 00 00 4d 73 67 73 |....DATA....Msgs| 0006bf50 5f 4c 6f 6f 6b 75 70 0a 53 79 6e 74 61 78 3a 09 |_Lookup.Syntax:.| 0006bf60 3c 42 4f 4f 4c 3e 20 4d 73 67 73 5f 4c 6f 6f 6b |<BOOL> Msgs_Look| 0006bf70 75 70 20 28 63 68 61 72 20 2a 74 61 67 2c 20 63 |up (char *tag, c| 0006bf80 68 61 72 20 2a 72 65 73 75 6c 74 2c 20 69 6e 74 |har *result, int| 0006bf90 20 6d 61 78 6c 65 6e 67 74 68 29 3b 0a 48 65 61 | maxlength);.Hea| 0006bfa0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 73 |der:.<DeskLib:Ms| 0006bfb0 67 73 2e 68 3d 3e 4d 73 67 73 3e 0a 0a 52 65 74 |gs.h=>Msgs>..Ret| 0006bfc0 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 0006bfd0 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a 53 65 65 |successful...See| 0006bfe0 20 61 6c 73 6f 20 74 68 65 20 44 65 73 6b 74 6f | also the Deskto| 0006bff0 70 20 43 20 66 75 6e 63 74 69 6f 6e 2c 20 3c 6d |p C function, <m| 0006c000 73 67 73 5f 6c 6f 6f 6b 75 70 3d 3e 6d 73 67 73 |sgs_lookup=>msgs| 0006c010 5f 6c 6f 6f 6b 75 70 5f 3e 2e 0a 0a 54 68 69 73 |_lookup_>...This| 0006c020 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 73 20 | function looks | 0006c030 69 6e 20 74 68 65 20 6d 65 73 73 61 67 65 20 6c |in the message l| 0006c040 69 73 74 20 28 6c 6f 61 64 65 64 20 77 69 74 68 |ist (loaded with| 0006c050 20 3c 4d 73 67 73 5f 4c 6f 61 64 46 69 6c 65 3e | <Msgs_LoadFile>| 0006c060 29 20 66 6f 72 20 74 68 65 20 74 61 67 20 73 70 |) for the tag sp| 0006c070 65 63 69 66 69 65 64 2e 20 49 74 20 74 68 65 6e |ecified. It then| 0006c080 20 63 6f 70 69 65 73 20 75 70 20 74 6f 20 2f 6d | copies up to /m| 0006c090 61 78 6c 65 6e 67 74 68 2f 20 63 68 61 72 61 63 |axlength/ charac| 0006c0a0 74 65 72 73 20 6f 66 20 74 68 65 20 61 73 73 6f |ters of the asso| 0006c0b0 63 69 61 74 65 64 20 6d 65 73 73 61 67 65 20 69 |ciated message i| 0006c0c0 6e 74 6f 20 2f 72 65 73 75 6c 74 2f 2e 20 54 61 |nto /result/. Ta| 0006c0d0 67 73 20 73 68 6f 75 6c 64 20 62 65 20 6f 66 20 |gs should be of | 0006c0e0 74 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 |the form:..{fCod| 0006c0f0 65 7d 20 20 67 72 6f 75 70 2e 74 61 67 3a 7b 66 |e} group.tag:{f| 0006c100 7d 0a 0a 4d 65 73 73 61 67 65 73 20 63 61 6e 20 |}..Messages can | 0006c110 69 6e 63 6c 75 64 65 20 6f 74 68 65 72 20 6d 65 |include other me| 0006c120 73 73 61 67 65 73 20 62 79 20 65 6e 63 6c 6f 73 |ssages by enclos| 0006c130 69 6e 67 20 74 68 65 69 72 20 74 61 67 20 69 6e |ing their tag in| 0006c140 20 5c 3c 3e 73 3a 0a 0a 7b 66 43 6f 64 65 7d 20 | \<>s:..{fCode} | 0006c150 20 65 72 72 2e 70 72 65 66 3a 4e 61 73 74 79 20 | err.pref:Nasty | 0006c160 65 72 72 6f 72 20 61 6c 65 72 74 3a 0a 20 20 65 |error alert:. e| 0006c170 72 72 2e 77 61 6c 6c 79 3a 5c 3c 65 72 72 2e 70 |rr.wally:\<err.p| 0006c180 72 65 66 3e 20 54 68 65 72 65 27 73 20 61 20 77 |ref> There's a w| 0006c190 61 6c 6c 79 20 61 62 6f 75 74 2e 7b 66 7d 0a 0a |ally about.{f}..| 0006c1a0 55 73 69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 |Using this funct| 0006c1b0 69 6f 6e 20 6f 6e 20 22 65 72 72 2e 77 61 6c 6c |ion on "err.wall| 0006c1c0 79 22 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 22 |y" will return "| 0006c1d0 4e 61 73 74 79 20 65 72 72 6f 72 20 61 6c 65 72 |Nasty error aler| 0006c1e0 74 3a 20 54 68 65 72 65 27 73 20 61 20 77 61 6c |t: There's a wal| 0006c1f0 6c 79 20 61 62 6f 75 74 2e 22 0a 0a 44 41 54 41 |ly about."..DATA| 0006c200 d5 01 00 00 6d 73 67 73 5f 6c 6f 6f 6b 75 70 0a |....msgs_lookup.| 0006c210 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 6d 73 |Syntax:.char *ms| 0006c220 67 73 5f 6c 6f 6f 6b 75 70 20 28 63 68 61 72 20 |gs_lookup (char | 0006c230 2a 74 61 67 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*tag);.Header:.<| 0006c240 6d 73 67 73 2e 68 3d 3e 6d 73 67 73 5f 68 3e 0a |msgs.h=>msgs_h>.| 0006c250 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 0006c260 72 20 74 6f 20 74 68 65 20 6d 65 73 73 61 67 65 |r to the message| 0006c270 20 74 65 78 74 2e 0a 0a 54 68 69 73 20 66 75 6e | text...This fun| 0006c280 63 74 69 6f 6e 20 66 69 6e 64 73 20 74 68 65 20 |ction finds the | 0006c290 67 69 76 65 6e 20 74 61 67 20 69 6e 20 74 68 65 |given tag in the| 0006c2a0 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 65 | list of message| 0006c2b0 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 |s and returns th| 0006c2c0 65 20 6d 65 73 73 61 67 65 20 61 73 73 6f 63 69 |e message associ| 0006c2d0 61 74 65 64 20 77 69 74 68 20 69 74 2e 20 2f 74 |ated with it. /t| 0006c2e0 61 67 2f 20 63 61 6e 20 62 65 20 66 6f 6c 6c 6f |ag/ can be follo| 0006c2f0 77 65 64 20 62 79 20 61 20 63 6f 6c 6f 6e 20 61 |wed by a colon a| 0006c300 6e 64 20 61 20 6d 65 73 73 61 67 65 20 2d 20 74 |nd a message - t| 0006c310 68 69 73 20 69 73 20 75 73 65 64 20 61 73 20 61 |his is used as a| 0006c320 20 64 65 66 61 75 6c 74 20 69 66 20 74 68 65 20 | default if the | 0006c330 74 61 67 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 |tag is not found| 0006c340 20 65 67 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b | eg.{wrap off}.{| 0006c350 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 |fCode;align cent| 0006c360 72 65 7d 6d 73 67 73 5f 6c 6f 6f 6b 75 70 28 22 |re}msgs_lookup("| 0006c370 45 52 52 4f 52 30 31 3a 57 68 6f 6f 70 73 21 22 |ERROR01:Whoops!"| 0006c380 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 7b 77 72 61 |);{f;align}.{wra| 0006c390 70 7d 0a 54 68 69 73 20 77 69 6c 6c 20 72 65 74 |p}.This will ret| 0006c3a0 75 72 6e 20 22 57 68 6f 6f 70 73 21 22 20 69 66 |urn "Whoops!" if| 0006c3b0 20 74 68 65 20 74 61 67 20 45 52 52 4f 52 30 31 | the tag ERROR01| 0006c3c0 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 | cannot be found| 0006c3d0 2e 00 00 00 44 41 54 41 78 00 00 00 6d 73 67 73 |....DATAx...msgs| 0006c3e0 5f 4d 53 47 5f 4d 41 58 0a 54 68 69 73 20 6d 61 |_MSG_MAX.This ma| 0006c3f0 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0006c400 6e 20 3c 6d 73 67 73 2e 68 3d 3e 6d 73 67 73 5f |n <msgs.h=>msgs_| 0006c410 68 3e 20 61 73 20 74 68 65 20 6d 61 78 69 6d 75 |h> as the maximu| 0006c420 6d 20 6c 65 6e 67 74 68 20 6f 66 20 61 20 6d 65 |m length of a me| 0006c430 73 73 61 67 65 2e 20 49 74 20 69 73 20 64 65 66 |ssage. It is def| 0006c440 69 6e 65 64 20 61 73 20 32 35 35 2e 44 41 54 41 |ined as 255.DATA| 0006c450 02 01 00 00 4d 73 67 73 5f 70 72 69 6e 74 66 0a |....Msgs_printf.| 0006c460 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 4d 73 67 |Syntax:.void Msg| 0006c470 73 5f 70 72 69 6e 74 66 20 28 63 68 61 72 20 2a |s_printf (char *| 0006c480 6f 75 74 2c 20 63 68 61 72 20 2a 66 6f 72 6d 61 |out, char *forma| 0006c490 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 64 65 72 3a |t, ...);.Header:| 0006c4a0 09 3c 44 65 73 6b 4c 69 62 3a 4d 73 67 73 2e 68 |.<DeskLib:Msgs.h| 0006c4b0 3d 3e 4d 73 67 73 3e 0a 0a 54 68 69 73 20 66 75 |=>Msgs>..This fu| 0006c4c0 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 |nction is equiva| 0006c4d0 6c 65 6e 74 20 74 6f 20 3c 73 70 72 69 6e 74 66 |lent to <sprintf| 0006c4e0 3e 2c 20 62 75 74 20 74 68 65 20 66 6f 72 6d 61 |>, but the forma| 0006c4f0 74 20 73 74 72 69 6e 67 20 69 73 20 61 20 74 61 |t string is a ta| 0006c500 67 20 77 68 69 63 68 20 69 73 20 6c 6f 6f 6b 65 |g which is looke| 0006c510 64 20 75 70 20 62 79 20 3c 4d 73 67 73 5f 4c 6f |d up by <Msgs_Lo| 0006c520 6f 6b 75 70 3e 20 74 6f 20 67 65 74 20 74 68 65 |okup> to get the| 0006c530 20 72 65 61 6c 20 3c 66 6f 72 6d 61 74 20 73 74 | real <format st| 0006c540 72 69 6e 67 3d 3e 70 66 6f 72 6d 5f 3e 2e 00 00 |ring=>pform_>...| 0006c550 44 41 54 41 76 01 00 00 6d 73 67 73 5f 72 65 61 |DATAv...msgs_rea| 0006c560 64 66 69 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f |dfile.Syntax:.vo| 0006c570 69 64 20 6d 73 67 73 5f 72 65 61 64 66 69 6c 65 |id msgs_readfile| 0006c580 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 | (char *name);.H| 0006c590 65 61 64 65 72 3a 09 3c 6d 73 67 73 2e 68 3d 3e |eader:.<msgs.h=>| 0006c5a0 6d 73 67 73 5f 68 3e 0a 0a 54 68 69 73 20 66 75 |msgs_h>..This fu| 0006c5b0 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 69 6e 20 |nction reads in | 0006c5c0 74 68 65 20 6d 65 73 73 61 67 65 73 20 69 6e 20 |the messages in | 0006c5d0 74 68 65 20 72 65 73 6f 75 72 63 65 20 66 69 6c |the resource fil| 0006c5e0 65 20 2f 6e 61 6d 65 2f 2e 20 49 74 20 65 78 70 |e /name/. It exp| 0006c5f0 65 63 74 73 20 6c 69 6e 65 73 20 6f 66 20 74 68 |ects lines of th| 0006c600 65 20 66 6f 72 6d 3a 0a 7b 77 72 61 70 20 6f 66 |e form:.{wrap of| 0006c610 66 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |f}.{fCode;align | 0006c620 63 65 6e 74 72 65 7d 74 61 67 31 2f 74 61 67 32 |centre}tag1/tag2| 0006c630 2f 74 61 67 33 3a 4d 65 73 73 61 67 65 20 74 65 |/tag3:Message te| 0006c640 78 74 20 75 6e 74 69 6c 20 6e 65 77 6c 69 6e 65 |xt until newline| 0006c650 7b 66 3b 61 6c 69 67 6e 3b 77 72 61 70 7d 0a 0a |{f;align;wrap}..| 0006c660 57 68 65 72 65 20 7b 2f 7d 74 61 67 31 7b 2f 7d |Where {/}tag1{/}| 0006c670 2c 20 7b 2f 7d 74 61 67 32 7b 2f 7d 20 61 6e 64 |, {/}tag2{/} and| 0006c680 20 7b 2f 7d 74 61 67 33 7b 2f 7d 20 28 75 70 20 | {/}tag3{/} (up | 0006c690 74 6f 20 38 20 63 61 6e 20 62 65 20 75 73 65 64 |to 8 can be used| 0006c6a0 29 20 61 72 65 20 61 6c 6c 20 69 64 65 6e 74 69 |) are all identi| 0006c6b0 66 69 65 72 73 20 66 6f 72 20 74 68 65 20 6d 65 |fiers for the me| 0006c6c0 73 73 61 67 65 2e 00 00 44 41 54 41 ea 00 00 00 |ssage...DATA....| 0006c6d0 4d 73 67 73 5f 52 65 70 6f 72 74 0a 53 79 6e 74 |Msgs_Report.Synt| 0006c6e0 61 78 3a 09 76 6f 69 64 20 4d 73 67 73 5f 52 65 |ax:.void Msgs_Re| 0006c6f0 70 6f 72 74 20 28 69 6e 74 20 65 72 72 6e 6f 2c |port (int errno,| 0006c700 20 63 68 61 72 20 2a 72 65 70 6f 72 74 2c 20 2e | char *report, .| 0006c710 2e 2e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |..);.Header:.<De| 0006c720 73 6b 4c 69 62 3a 4d 73 67 73 2e 68 3d 3e 4d 73 |skLib:Msgs.h=>Ms| 0006c730 67 73 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |gs>..This functi| 0006c740 6f 6e 20 63 61 6c 6c 73 20 3c 45 72 72 6f 72 5f |on calls <Error_| 0006c750 52 65 70 6f 72 74 3e 2c 20 62 75 74 20 2f 72 65 |Report>, but /re| 0006c760 70 6f 72 74 2f 20 69 73 20 61 20 6d 65 73 73 61 |port/ is a messa| 0006c770 67 65 20 74 61 67 20 77 68 69 63 68 20 69 73 20 |ge tag which is | 0006c780 6c 6f 6f 6b 65 64 20 75 70 20 74 6f 20 67 65 74 |looked up to get| 0006c790 20 74 68 65 20 72 65 61 6c 20 3c 66 6f 72 6d 61 | the real <forma| 0006c7a0 74 20 73 74 72 69 6e 67 3d 3e 70 66 6f 72 6d 5f |t string=>pform_| 0006c7b0 3e 2e 00 00 44 41 54 41 f9 00 00 00 4d 73 67 73 |>...DATA....Msgs| 0006c7c0 5f 52 65 70 6f 72 74 46 61 74 61 6c 0a 53 79 6e |_ReportFatal.Syn| 0006c7d0 74 61 78 3a 09 76 6f 69 64 20 4d 73 67 73 5f 52 |tax:.void Msgs_R| 0006c7e0 65 70 6f 72 74 46 61 74 61 6c 20 28 69 6e 74 20 |eportFatal (int | 0006c7f0 65 72 72 6e 6f 2c 20 63 68 61 72 20 2a 72 65 70 |errno, char *rep| 0006c800 6f 72 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 64 65 |ort, ...);.Heade| 0006c810 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4d 73 67 73 |r:.<DeskLib:Msgs| 0006c820 2e 68 3d 3e 4d 73 67 73 3e 0a 0a 54 68 69 73 20 |.h=>Msgs>..This | 0006c830 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 3c |function calls <| 0006c840 45 72 72 6f 72 5f 52 65 70 6f 72 74 46 61 74 61 |Error_ReportFata| 0006c850 6c 3e 2c 20 62 75 74 20 2f 72 65 70 6f 72 74 2f |l>, but /report/| 0006c860 20 69 73 20 61 20 6d 65 73 73 61 67 65 20 74 61 | is a message ta| 0006c870 67 20 77 68 69 63 68 20 69 73 20 6c 6f 6f 6b 65 |g which is looke| 0006c880 64 20 75 70 20 74 6f 20 67 65 74 20 74 68 65 20 |d up to get the | 0006c890 72 65 61 6c 20 3c 66 6f 72 6d 61 74 20 73 74 72 |real <format str| 0006c8a0 69 6e 67 3d 3e 70 66 6f 72 6d 5f 3e 2e 00 00 00 |ing=>pform_>....| 0006c8b0 44 41 54 41 7b 00 00 00 6d 73 67 73 5f 54 41 47 |DATA{...msgs_TAG| 0006c8c0 5f 4d 41 58 0a 54 68 69 73 20 6d 61 63 72 6f 20 |_MAX.This macro | 0006c8d0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 6d |is defined in <m| 0006c8e0 73 67 73 2e 68 3d 3e 6d 73 67 73 5f 68 3e 20 61 |sgs.h=>msgs_h> a| 0006c8f0 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6c 65 |s the maximum le| 0006c900 6e 67 74 68 20 6f 66 20 61 20 6d 65 73 73 61 67 |ngth of a messag| 0006c910 65 20 74 61 67 2e 20 49 74 20 69 73 20 64 65 66 |e tag. It is def| 0006c920 69 6e 65 64 20 61 73 20 31 30 2e 00 44 41 54 41 |ined as 10..DATA| 0006c930 dc 00 00 00 54 69 6d 73 4c 69 62 3a 4d 73 67 73 |....TimsLib:Msgs| 0006c940 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |.h.This header d| 0006c950 65 63 6c 61 72 65 73 20 6f 6e 65 20 6d 61 63 72 |eclares one macr| 0006c960 6f 20 63 61 6c 6c 65 64 20 7b 2a 7d 6d 73 67 73 |o called {*}msgs| 0006c970 5f 6c 6f 6f 6b 75 70 7b 2a 7d 2e 20 54 68 69 73 |_lookup{*}. This| 0006c980 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 63 | allows you to c| 0006c990 61 6c 6c 20 61 20 44 65 73 6b 74 6f 70 20 43 2d |all a Desktop C-| 0006c9a0 73 74 79 6c 65 20 3c 6d 73 67 73 5f 6c 6f 6f 6b |style <msgs_look| 0006c9b0 75 70 3d 3e 6d 73 67 73 5f 6c 6f 6f 6b 75 70 5f |up=>msgs_lookup_| 0006c9c0 3e 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 69 |> function and i| 0006c9d0 74 20 6d 61 70 73 20 74 68 69 73 20 63 61 6c 6c |t maps this call| 0006c9e0 20 6f 6e 74 6f 20 61 20 63 61 6c 6c 20 74 6f 20 | onto a call to | 0006c9f0 44 65 73 6b 4c 69 62 27 73 20 3c 4d 73 67 73 5f |DeskLib's <Msgs_| 0006ca00 4c 6f 6f 6b 75 70 3e 2e 44 41 54 41 b8 01 00 00 |Lookup>.DATA....| 0006ca10 6d 6f 64 65 5f 76 61 72 69 61 62 6c 65 0a 54 68 |mode_variable.Th| 0006ca20 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0006ca30 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 4b |ed in <DeskLib:K| 0006ca40 65 72 6e 65 6c 53 57 49 73 2e 68 3d 3e 4b 65 72 |ernelSWIs.h=>Ker| 0006ca50 6e 65 6c 53 57 49 73 3e 2e 20 49 74 20 69 73 20 |nelSWIs>. It is | 0006ca60 61 6e 20 65 6e 75 6d 65 72 61 74 65 64 0a 74 79 |an enumerated.ty| 0006ca70 70 65 20 67 69 76 69 6e 67 20 6e 61 6d 65 73 20 |pe giving names | 0006ca80 74 6f 20 74 68 65 20 6d 6f 64 65 20 76 61 72 69 |to the mode vari| 0006ca90 61 62 6c 65 20 6e 75 6d 62 65 72 73 2e 0a 0a 5c |able numbers...\| 0006caa0 7b 0a 20 20 6d 6f 64 65 76 61 72 5f 4d 4f 44 45 |{. modevar_MODE| 0006cab0 46 4c 41 47 53 20 3d 20 30 2c 0a 20 20 6d 6f 64 |FLAGS = 0,. mod| 0006cac0 65 76 61 72 5f 52 49 47 48 54 43 4f 4c 55 4d 4e |evar_RIGHTCOLUMN| 0006cad0 2c 0a 20 20 6d 6f 64 65 76 61 72 5f 42 4f 54 54 |,. modevar_BOTT| 0006cae0 4f 4d 52 4f 57 2c 0a 20 20 6d 6f 64 65 76 61 72 |OMROW,. modevar| 0006caf0 5f 4e 43 4f 4c 4f 55 52 2c 0a 20 20 6d 6f 64 65 |_NCOLOUR,. mode| 0006cb00 76 61 72 5f 58 45 49 47 46 41 43 54 4f 52 2c 0a |var_XEIGFACTOR,.| 0006cb10 20 20 6d 6f 64 65 76 61 72 5f 59 45 49 47 46 41 | modevar_YEIGFA| 0006cb20 43 54 4f 52 2c 0a 20 20 6d 6f 64 65 76 61 72 5f |CTOR,. modevar_| 0006cb30 4c 49 4e 45 4c 45 4e 47 54 48 2c 0a 20 20 6d 6f |LINELENGTH,. mo| 0006cb40 64 65 76 61 72 5f 53 43 52 45 45 4e 53 49 5a 45 |devar_SCREENSIZE| 0006cb50 2c 0a 20 20 6d 6f 64 65 76 61 72 5f 59 53 48 49 |,. modevar_YSHI| 0006cb60 46 54 46 41 43 54 4f 52 2c 0a 20 20 6d 6f 64 65 |FTFACTOR,. mode| 0006cb70 76 61 72 5f 4c 4f 47 32 42 50 50 2c 0a 20 20 6d |var_LOG2BPP,. m| 0006cb80 6f 64 65 76 61 72 5f 4c 4f 47 32 42 50 43 2c 0a |odevar_LOG2BPC,.| 0006cb90 20 20 6d 6f 64 65 76 61 72 5f 58 57 49 4e 44 4f | modevar_XWINDO| 0006cba0 57 4c 49 4d 49 54 2c 0a 20 20 6d 6f 64 65 76 61 |WLIMIT,. modeva| 0006cbb0 72 5f 59 57 49 4e 44 4f 57 4c 49 4d 49 54 0a 7d |r_YWINDOWLIMIT.}| 0006cbc0 44 49 52 24 6c 01 00 00 6c 01 00 00 2c cd 06 00 |DIR$l...l...,...| 0006cbd0 46 fd ff ff 35 b5 84 2f 30 00 00 00 13 01 00 00 |F...5../0.......| 0006cbe0 00 00 00 00 4e 4f 5f 00 20 ce 06 00 46 ff ff ff |....NO_. ...F...| 0006cbf0 96 a0 f1 24 9b 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0006cc00 4e 4f 45 52 52 4f 52 00 bc ce 06 00 46 ff ff ff |NOERROR.....F...| 0006cc10 cc 5d c0 22 f0 00 00 00 13 00 00 00 00 00 00 00 |.]."............| 0006cc20 4e 55 4c 4c 00 00 00 00 ac cf 06 00 46 ff ff ff |NULL........F...| 0006cc30 05 61 56 26 24 01 00 00 13 00 00 00 00 00 00 00 |.aV&$...........| 0006cc40 4e 75 6d 46 72 6f 6d 48 65 78 44 69 67 69 74 00 |NumFromHexDigit.| 0006cc50 d0 d0 06 00 46 fd ff ff 89 b5 84 2f 2c 00 00 00 |....F....../,...| 0006cc60 13 01 00 00 00 00 00 00 6f 62 6a 65 63 74 5f 00 |........object_.| 0006cc70 38 d2 06 00 46 ff ff ff de 6f c0 22 49 01 00 00 |8...F....o."I...| 0006cc80 13 00 00 00 00 00 00 00 6f 66 66 73 65 74 6f 66 |........offsetof| 0006cc90 00 00 00 00 84 d3 06 00 46 ff ff ff 74 62 b2 24 |........F...tb.$| 0006cca0 80 02 00 00 13 00 00 00 00 00 00 00 6f 73 00 00 |............os..| 0006ccb0 04 d6 06 00 46 fd ff ff f3 b5 84 2f 50 06 00 00 |....F....../P...| 0006ccc0 13 01 00 00 00 00 00 00 6f 73 5f 00 8c 25 07 00 |........os_..%..| 0006ccd0 46 fd ff ff 9b b9 84 2f 2c 00 00 00 13 01 00 00 |F....../,.......| 0006cce0 00 00 00 00 6f 73 62 79 74 65 5f 00 9c 33 07 00 |....osbyte_..3..| 0006ccf0 46 ff ff ff ad d2 f1 24 16 01 00 00 13 00 00 00 |F......$........| 0006cd00 00 00 00 00 4f 53 43 4c 49 00 00 00 b4 34 07 00 |....OSCLI....4..| 0006cd10 46 fd ff ff e2 b9 84 2f 2c 00 00 00 13 01 00 00 |F....../,.......| 0006cd20 00 00 00 00 6f 73 77 6f 72 64 5f 00 44 49 52 24 |....osword_.DIR$| 0006cd30 30 00 00 00 30 00 00 00 5c cd 06 00 46 ff ff ff |0...0...\...F...| 0006cd40 da 99 55 26 c2 00 00 00 13 00 00 00 00 00 00 00 |..U&............| 0006cd50 49 43 4f 4e 5f 44 41 54 41 00 00 00 44 41 54 41 |ICON_DATA...DATA| 0006cd60 c2 00 00 00 4e 4f 5f 49 43 4f 4e 5f 44 41 54 41 |....NO_ICON_DATA| 0006cd70 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 0006cd80 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c |efined in <TimsL| 0006cd90 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f |ib:Icon.h=>Icon_| 0006cda0 54 4c 3e 2e 20 49 74 20 69 73 20 74 68 65 20 76 |TL>. It is the v| 0006cdb0 61 6c 75 65 20 74 68 65 20 72 65 74 75 72 6e 65 |alue the returne| 0006cdc0 64 20 62 79 20 3c 49 43 4f 4e 5f 54 59 50 45 3e |d by <ICON_TYPE>| 0006cdd0 20 77 68 65 6e 20 74 68 65 20 69 63 6f 6e 20 69 | when the icon i| 0006cde0 6e 20 71 75 65 73 74 69 6f 6e 20 69 73 20 61 20 |n question is a | 0006cdf0 27 6e 6f 20 74 65 78 74 2c 20 6e 6f 20 73 70 72 |'no text, no spr| 0006ce00 69 74 65 27 20 69 63 6f 6e 2e 20 49 74 20 69 73 |ite' icon. It is| 0006ce10 20 64 65 66 69 6e 65 64 20 61 73 20 30 2e 00 00 | defined as 0...| 0006ce20 44 41 54 41 9b 00 00 00 4e 4f 45 52 52 4f 52 0a |DATA....NOERROR.| 0006ce30 54 68 65 20 6d 61 63 72 6f 20 4e 4f 45 52 52 4f |The macro NOERRO| 0006ce40 52 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |R is defined in | 0006ce50 3c 44 65 73 6b 4c 69 62 3a 43 6f 72 65 2e 68 3d |<DeskLib:Core.h=| 0006ce60 3e 43 6f 72 65 3e 20 61 73 20 61 20 76 61 6c 75 |>Core> as a valu| 0006ce70 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 |e representing t| 0006ce80 68 65 20 73 74 61 74 65 20 74 68 61 74 20 6e 6f |he state that no| 0006ce90 20 65 72 72 6f 72 20 65 78 69 73 74 73 2e 20 49 | error exists. I| 0006cea0 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 |t is actually de| 0006ceb0 66 69 6e 65 64 20 61 73 20 30 2e 00 44 41 54 41 |fined as 0..DATA| 0006cec0 f0 00 00 00 4e 55 4c 4c 0a 54 68 65 20 6d 61 63 |....NULL.The mac| 0006ced0 72 6f 20 4e 55 4c 4c 20 69 73 20 64 65 66 69 6e |ro NULL is defin| 0006cee0 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 3d 3e |ed in <stdio.h=>| 0006cef0 73 74 64 69 6f 3e 2c 20 3c 73 74 64 6c 69 62 2e |stdio>, <stdlib.| 0006cf00 68 3d 3e 73 74 64 6c 69 62 3e 2c 20 3c 73 74 64 |h=>stdlib>, <std| 0006cf10 64 65 66 2e 68 3d 3e 73 74 64 64 65 66 3e 2c 20 |def.h=>stddef>, | 0006cf20 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 69 6e |<string.h=>strin| 0006cf30 67 3e 2c 20 3c 44 65 73 6b 4c 69 62 3a 43 6f 72 |g>, <DeskLib:Cor| 0006cf40 65 2e 68 3d 3e 43 6f 72 65 3e 2c 20 61 6e 64 20 |e.h=>Core>, and | 0006cf50 3c 54 69 6d 73 4c 69 62 3a 43 6f 72 65 2e 68 3d |<TimsLib:Core.h=| 0006cf60 3e 43 6f 72 65 5f 54 4c 3e 20 61 6e 64 20 75 73 |>Core_TL> and us| 0006cf70 65 64 20 61 73 20 61 20 6e 75 6c 6c 20 70 6f 69 |ed as a null poi| 0006cf80 6e 74 65 72 2e 20 49 6e 20 45 61 73 79 a0 43 20 |nter. In Easy.C | 0006cf90 69 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 |it is actually d| 0006cfa0 65 66 69 6e 65 64 20 61 73 20 30 2e 44 41 54 41 |efined as 0.DATA| 0006cfb0 24 01 00 00 4e 75 6d 46 72 6f 6d 48 65 78 44 69 |$...NumFromHexDi| 0006cfc0 67 69 74 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |git.Syntax:.int | 0006cfd0 4e 75 6d 46 72 6f 6d 48 65 78 44 69 67 69 74 20 |NumFromHexDigit | 0006cfe0 28 63 68 61 72 20 64 69 67 69 74 29 3b 0a 48 65 |(char digit);.He| 0006cff0 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c |ader:.<TimsLib:L| 0006d000 69 62 2e 68 3d 3e 4c 69 62 3e 0a 0a 52 65 74 75 |ib.h=>Lib>..Retu| 0006d010 72 6e 73 3a 09 56 61 6c 75 65 20 6f 66 20 74 68 |rns:.Value of th| 0006d020 65 20 68 65 78 61 64 65 63 69 6d 61 6c 20 63 68 |e hexadecimal ch| 0006d030 61 72 61 63 74 65 72 2e 0a 0a 54 68 69 73 20 66 |aracter...This f| 0006d040 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 20 |unction takes a | 0006d050 63 68 61 72 61 63 74 65 72 20 2f 64 69 67 69 74 |character /digit| 0006d060 2f 20 77 68 69 63 68 20 69 73 20 61 20 68 65 78 |/ which is a hex| 0006d070 61 64 65 63 69 6d 61 6c 20 64 69 67 69 74 20 28 |adecimal digit (| 0006d080 30 2d 46 29 2e 20 49 74 20 72 65 74 75 72 6e 73 |0-F). It returns| 0006d090 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 | the value of th| 0006d0a0 69 73 20 28 30 2d 31 35 29 2e 20 2d 31 20 69 73 |is (0-15). -1 is| 0006d0b0 20 72 65 74 75 72 6e 65 64 20 69 66 20 2f 64 69 | returned if /di| 0006d0c0 67 69 74 2f 20 69 73 20 69 6e 76 61 6c 69 64 2e |git/ is invalid.| 0006d0d0 44 49 52 24 2c 00 00 00 2c 00 00 00 fc d0 06 00 |DIR$,...,.......| 0006d0e0 46 ff ff ff 51 5d 55 26 3a 01 00 00 13 00 00 00 |F...Q]U&:.......| 0006d0f0 00 00 00 00 69 6e 66 6f 00 00 00 00 44 41 54 41 |....info....DATA| 0006d100 3a 01 00 00 6f 62 6a 65 63 74 5f 69 6e 66 6f 0a |:...object_info.| 0006d110 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 0006d120 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 |ined in <TimsLib| 0006d130 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 54 4c |:File.h=>File_TL| 0006d140 3e 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 20 69 |>. It contains i| 0006d150 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 61 20 |nformation on a | 0006d160 66 69 6c 65 20 61 73 20 72 65 74 75 72 6e 65 64 |file as returned| 0006d170 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | by the function| 0006d180 20 3c 52 65 61 64 45 6e 74 72 69 65 73 3e 2e 20 | <ReadEntries>. | 0006d190 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 0006d1a0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 0006d1b0 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a |tructure:.. \{.| 0006d1c0 20 20 20 20 75 6e 73 69 67 6e 65 64 09 6c 6f 61 | unsigned.loa| 0006d1d0 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 09 |d;. unsigned.| 0006d1e0 65 78 65 63 3b 0a 20 20 20 20 75 6e 73 69 67 6e |exec;. unsign| 0006d1f0 65 64 09 6c 65 6e 67 74 68 3b 0a 20 20 20 20 75 |ed.length;. u| 0006d200 6e 73 69 67 6e 65 64 09 61 74 74 72 3b 0a 20 20 |nsigned.attr;. | 0006d210 20 20 75 6e 73 69 67 6e 65 64 09 74 79 70 65 3b | unsigned.type;| 0006d220 0a 20 20 20 20 63 68 61 72 09 6e 61 6d 65 5b 31 |. char.name[1| 0006d230 5d 3b 0a 20 20 7d 00 00 44 41 54 41 49 01 00 00 |];. }..DATAI...| 0006d240 6f 66 66 73 65 74 6f 66 0a 53 79 6e 74 61 78 3a |offsetof.Syntax:| 0006d250 20 6f 66 66 73 65 74 6f 66 28 74 79 70 65 2c 20 | offsetof(type, | 0006d260 69 64 29 3b 0a 0a 54 68 69 73 20 66 75 6e 63 74 |id);..This funct| 0006d270 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 69 |ion-like macro i| 0006d280 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 |s defined in <st| 0006d290 64 64 65 66 2e 68 3d 3e 73 74 64 64 65 66 3e 20 |ddef.h=>stddef> | 0006d2a0 66 6f 72 20 74 68 65 20 70 75 72 70 6f 73 65 20 |for the purpose | 0006d2b0 6f 66 20 66 69 6e 64 69 6e 67 20 74 68 65 20 6f |of finding the o| 0006d2c0 66 66 73 65 74 20 69 6e 20 62 79 74 65 73 20 66 |ffset in bytes f| 0006d2d0 72 6f 6d 20 74 68 65 20 62 65 67 69 6e 6e 69 6e |rom the beginnin| 0006d2e0 67 20 6f 66 20 61 20 73 74 72 75 63 74 75 72 65 |g of a structure| 0006d2f0 20 74 6f 20 6f 6e 65 20 6f 66 20 69 74 73 20 6d | to one of its m| 0006d300 65 6d 62 65 72 73 2e 20 54 68 65 20 70 61 72 61 |embers. The para| 0006d310 6d 65 74 65 72 73 20 61 72 65 20 2f 74 79 70 65 |meters are /type| 0006d320 2f 2c 20 74 68 65 20 73 74 72 75 63 74 75 72 65 |/, the structure| 0006d330 20 74 79 70 65 20 65 67 2e 20 2f 73 74 72 75 63 | type eg. /struc| 0006d340 74 20 6d 79 73 74 72 75 63 74 2f 20 6f 72 20 2f |t mystruct/ or /| 0006d350 46 49 4c 45 2f 3b 20 61 6e 64 20 2f 69 64 2f 2c |FILE/; and /id/,| 0006d360 20 74 68 65 20 6d 65 6d 62 65 72 20 77 69 74 68 | the member with| 0006d370 69 6e 20 74 68 65 20 73 74 72 75 63 74 75 72 65 |in the structure| 0006d380 2e 00 00 00 44 41 54 41 80 02 00 00 6f 73 2e 68 |....DATA....os.h| 0006d390 0a 54 68 65 20 5c 3c 6f 73 2e 68 3e 20 68 65 61 |.The \<os.h> hea| 0006d3a0 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e |der declares fun| 0006d3b0 63 74 69 6f 6e 73 20 66 6f 72 20 61 63 63 65 73 |ctions for acces| 0006d3c0 73 69 6e 67 20 4f 70 65 72 61 74 69 6e 67 20 53 |sing Operating S| 0006d3d0 79 73 74 65 6d 20 72 6f 75 74 69 6e 65 73 2e 20 |ystem routines. | 0006d3e0 49 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 61 |It is intended a| 0006d3f0 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 |s an alternative| 0006d400 20 74 6f 20 5c 3c 6b 65 72 6e 65 6c 2e 68 3e 2e | to \<kernel.h>.| 0006d410 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 |..Functions:..#I| 0006d420 6e 64 65 6e 74 20 31 30 0a 23 54 61 62 6c 65 20 |ndent 10.#Table | 0006d430 33 20 31 32 0a 3c 6f 73 5f 73 77 69 20 3e 0a 3c |3 12.<os_swi >.<| 0006d440 6f 73 5f 62 79 74 65 3e 0a 3c 6f 73 5f 77 6f 72 |os_byte>.<os_wor| 0006d450 64 3e 0a 3c 6f 73 5f 67 62 70 62 3e 0a 3c 6f 73 |d>.<os_gbpb>.<os| 0006d460 5f 66 69 6c 65 3e 0a 3c 6f 73 5f 61 72 67 73 3e |_file>.<os_args>| 0006d470 0a 3c 6f 73 5f 66 69 6e 64 3e 0a 3c 6f 73 5f 63 |.<os_find>.<os_c| 0006d480 6c 69 3e 0a 3c 6f 73 5f 72 65 61 64 5f 76 61 72 |li>.<os_read_var| 0006d490 5f 76 61 6c 3e 0a 23 45 6e 64 54 61 62 6c 65 0a |_val>.#EndTable.| 0006d4a0 0a 23 49 6e 64 65 6e 74 20 30 0a 4d 61 63 72 6f |.#Indent 0.Macro| 0006d4b0 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 37 0a 23 54 |s:..#Indent 7.#T| 0006d4c0 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 34 0a 3c |able columns 4.<| 0006d4d0 42 4f 4f 4c 3e 0a 3c 54 52 55 45 3e 0a 3c 46 41 |BOOL>.<TRUE>.<FA| 0006d4e0 4c 53 45 3e 0a 3c 4f 53 5f 43 4c 49 3d 3e 6f 73 |LSE>.<OS_CLI=>os| 0006d4f0 5f 6d 61 63 72 6f 73 5f 3e 0a 3c 4f 53 5f 42 79 |_macros_>.<OS_By| 0006d500 74 65 3d 3e 6f 73 5f 6d 61 63 72 6f 73 5f 3e 0a |te=>os_macros_>.| 0006d510 3c 4f 53 5f 57 6f 72 64 3d 3e 6f 73 5f 6d 61 63 |<OS_Word=>os_mac| 0006d520 72 6f 73 5f 3e 0a 3c 4f 53 5f 46 69 6c 65 3d 3e |ros_>.<OS_File=>| 0006d530 6f 73 5f 6d 61 63 72 6f 73 5f 3e 0a 3c 4f 53 5f |os_macros_>.<OS_| 0006d540 41 72 67 73 3d 3e 6f 73 5f 6d 61 63 72 6f 73 5f |Args=>os_macros_| 0006d550 3e 0a 3c 4f 53 5f 47 42 50 42 3d 3e 6f 73 5f 6d |>.<OS_GBPB=>os_m| 0006d560 61 63 72 6f 73 5f 3e 0a 3c 4f 53 5f 46 69 6e 64 |acros_>.<OS_Find| 0006d570 3d 3e 6f 73 5f 6d 61 63 72 6f 73 5f 3e 0a 3c 6f |=>os_macros_>.<o| 0006d580 73 5f 58 3d 3e 6f 73 5f 6d 61 63 72 6f 73 5f 3e |s_X=>os_macros_>| 0006d590 0a 0a 23 45 6e 64 54 61 62 6c 65 0a 23 49 6e 64 |..#EndTable.#Ind| 0006d5a0 65 6e 74 20 30 0a 0a 54 79 70 65 73 3a 0a 0a 23 |ent 0..Types:..#| 0006d5b0 49 6e 64 65 6e 74 20 37 0a 23 54 61 62 6c 65 20 |Indent 7.#Table | 0006d5c0 63 6f 6c 75 6d 6e 73 20 34 0a 3c 6f 73 5f 72 65 |columns 4.<os_re| 0006d5d0 67 73 65 74 3e 0a 3c 6f 73 5f 65 72 72 6f 72 3e |gset>.<os_error>| 0006d5e0 0a 3c 6f 73 5f 67 62 70 62 73 74 72 3e 0a 3c 6f |.<os_gbpbstr>.<o| 0006d5f0 73 5f 66 69 6c 65 73 74 72 3e 0a 23 45 6e 64 54 |s_filestr>.#EndT| 0006d600 61 62 6c 65 44 49 52 24 50 06 00 00 50 06 00 00 |ableDIR$P...P...| 0006d610 54 dc 06 00 46 ff ff ff 4e d6 ee 24 9d 02 00 00 |T...F...N..$....| 0006d620 13 00 00 00 00 00 00 00 61 64 76 61 6c 00 00 00 |........adval...| 0006d630 f4 de 06 00 46 ff ff ff a7 43 b3 24 40 01 00 00 |....F....C.$@...| 0006d640 13 00 00 00 00 00 00 00 61 72 67 73 00 00 00 00 |........args....| 0006d650 34 e0 06 00 46 ff ff ff 11 fe b2 24 b8 01 00 00 |4...F......$....| 0006d660 13 00 00 00 00 00 00 00 62 79 74 65 00 00 00 00 |........byte....| 0006d670 ec e1 06 00 46 ff ff ff 31 83 3e 25 d5 01 00 00 |....F...1.>%....| 0006d680 13 00 00 00 00 00 00 00 42 79 74 65 5f 00 00 00 |........Byte_...| 0006d690 c4 e3 06 00 46 ff ff ff d8 33 ed 24 e5 00 00 00 |....F....3.$....| 0006d6a0 13 00 00 00 00 00 00 00 63 69 72 63 6c 65 00 00 |........circle..| 0006d6b0 ac e4 06 00 46 ff ff ff 5c 3d ed 24 f9 00 00 00 |....F...\=.$....| 0006d6c0 13 00 00 00 00 00 00 00 63 69 72 63 6c 65 66 69 |........circlefi| 0006d6d0 6c 6c 00 00 a8 e5 06 00 46 ff ff ff fb 42 ed 24 |ll......F....B.$| 0006d6e0 b1 00 00 00 13 00 00 00 00 00 00 00 63 6c 67 00 |............clg.| 0006d6f0 5c e6 06 00 46 ff ff ff 16 5c b3 24 75 01 00 00 |\...F....\.$u...| 0006d700 13 00 00 00 00 00 00 00 63 6c 69 00 d4 e7 06 00 |........cli.....| 0006d710 46 ff ff ff 2f 46 ed 24 aa 00 00 00 13 00 00 00 |F.../F.$........| 0006d720 00 00 00 00 63 6c 73 00 80 e8 06 00 46 ff ff ff |....cls.....F...| 0006d730 65 52 ed 24 13 01 00 00 13 00 00 00 00 00 00 00 |eR.$............| 0006d740 63 6f 6c 6f 75 72 00 00 94 e9 06 00 46 ff ff ff |colour......F...| 0006d750 0c 66 ed 24 26 01 00 00 13 00 00 00 00 00 00 00 |.f.$&...........| 0006d760 63 75 72 73 6f 72 00 00 bc ea 06 00 46 ff ff ff |cursor......F...| 0006d770 10 72 ed 24 ea 00 00 00 13 00 00 00 00 00 00 00 |.r.$............| 0006d780 64 72 61 77 00 00 00 00 a8 eb 06 00 46 ff ff ff |draw........F...| 0006d790 f1 79 ed 24 08 01 00 00 13 00 00 00 00 00 00 00 |.y.$............| 0006d7a0 64 72 61 77 62 79 00 00 b0 ec 06 00 46 ff ff ff |drawby......F...| 0006d7b0 2c bf b3 24 cc 01 00 00 13 00 00 00 00 00 00 00 |,..$............| 0006d7c0 65 72 72 6f 72 00 00 00 7c ee 06 00 46 ff ff ff |error...|...F...| 0006d7d0 4a 33 b3 24 50 01 00 00 13 00 00 00 00 00 00 00 |J3.$P...........| 0006d7e0 66 69 6c 65 00 00 00 00 cc ef 06 00 46 ff ff ff |file........F...| 0006d7f0 f3 28 b4 24 ac 02 00 00 13 00 00 00 00 00 00 00 |.(.$............| 0006d800 66 69 6c 65 73 74 72 00 78 f2 06 00 46 ff ff ff |filestr.x...F...| 0006d810 8b 80 ed 24 b9 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0006d820 66 69 6c 6c 00 00 00 00 34 f3 06 00 46 ff ff ff |fill....4...F...| 0006d830 34 4f b3 24 4c 01 00 00 13 00 00 00 00 00 00 00 |4O.$L...........| 0006d840 66 69 6e 64 00 00 00 00 80 f4 06 00 46 ff ff ff |find........F...| 0006d850 df 27 b3 24 50 01 00 00 13 00 00 00 00 00 00 00 |.'.$P...........| 0006d860 67 62 70 62 00 00 00 00 d0 f5 06 00 46 ff ff ff |gbpb........F...| 0006d870 d5 22 b4 24 41 02 00 00 13 00 00 00 00 00 00 00 |.".$A...........| 0006d880 67 62 70 62 73 74 72 00 14 f8 06 00 46 ff ff ff |gbpbstr.....F...| 0006d890 d9 a6 ed 24 f9 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0006d8a0 67 63 6f 6c 00 00 00 00 10 f9 06 00 46 ff ff ff |gcol........F...| 0006d8b0 ba e3 ee 24 7d 01 00 00 13 00 00 00 00 00 00 00 |...$}...........| 0006d8c0 67 65 74 00 90 fa 06 00 46 ff ff ff ff ff ee 24 |get.....F......$| 0006d8d0 73 03 00 00 13 00 00 00 00 00 00 00 69 6e 6b 65 |s...........inke| 0006d8e0 79 00 00 00 04 fe 06 00 46 fd ff ff a4 a5 b3 24 |y.......F......$| 0006d8f0 af 01 00 00 13 00 00 00 00 00 00 00 6d 61 63 72 |............macr| 0006d900 6f 73 5f 00 b4 ff 06 00 46 ff ff ff a6 af ed 24 |os_.....F......$| 0006d910 e5 00 00 00 13 00 00 00 00 00 00 00 6d 6f 64 65 |............mode| 0006d920 00 00 00 00 9c 00 07 00 46 ff ff ff 47 b9 ed 24 |........F...G..$| 0006d930 c3 00 00 00 13 00 00 00 00 00 00 00 6d 6f 76 65 |............move| 0006d940 00 00 00 00 60 01 07 00 46 ff ff ff 24 bf ed 24 |....`...F...$..$| 0006d950 df 00 00 00 13 00 00 00 00 00 00 00 6d 6f 76 65 |............move| 0006d960 62 79 00 00 40 02 07 00 46 ff ff ff 10 c6 ed 24 |by..@...F......$| 0006d970 2a 01 00 00 13 00 00 00 00 00 00 00 6f 72 69 67 |*...........orig| 0006d980 69 6e 00 00 6c 03 07 00 46 ff ff ff 54 f1 ed 24 |in..l...F...T..$| 0006d990 ee 02 00 00 13 00 00 00 00 00 00 00 70 61 6c 65 |............pale| 0006d9a0 74 74 65 00 5c 06 07 00 46 ff ff ff eb 1a ee 24 |tte.\...F......$| 0006d9b0 18 01 00 00 13 00 00 00 00 00 00 00 70 6c 6f 74 |............plot| 0006d9c0 00 00 00 00 74 07 07 00 46 ff ff ff 9a 25 ee 24 |....t...F....%.$| 0006d9d0 07 01 00 00 13 00 00 00 00 00 00 00 70 6f 69 6e |............poin| 0006d9e0 74 00 00 00 7c 08 07 00 46 ff ff ff f6 29 ee 24 |t...|...F....).$| 0006d9f0 d1 00 00 00 13 00 00 00 00 00 00 00 70 6f 73 00 |............pos.| 0006da00 50 09 07 00 46 ff ff ff 2c 6c b3 24 bc 01 00 00 |P...F...,l.$....| 0006da10 13 00 00 00 00 00 00 00 72 65 61 64 5f 76 61 72 |........read_var| 0006da20 5f 76 61 6c 00 00 00 00 0c 0b 07 00 46 ff ff ff |_val........F...| 0006da30 68 97 3e 25 32 01 00 00 13 00 00 00 00 00 00 00 |h.>%2...........| 0006da40 52 65 61 64 56 61 72 56 61 6c 00 00 40 0c 07 00 |ReadVarVal..@...| 0006da50 46 ff ff ff 43 3e ee 24 39 01 00 00 13 00 00 00 |F...C>.$9.......| 0006da60 00 00 00 00 72 65 63 74 61 6e 67 6c 65 00 00 00 |....rectangle...| 0006da70 7c 0d 07 00 46 ff ff ff 6a 6a ee 24 47 01 00 00 ||...F...jj.$G...| 0006da80 13 00 00 00 00 00 00 00 72 65 63 74 61 6e 67 6c |........rectangl| 0006da90 65 66 69 6c 6c 00 00 00 c4 0e 07 00 46 ff ff ff |efill.......F...| 0006daa0 a9 b4 b3 24 06 01 00 00 13 00 00 00 00 00 00 00 |...$............| 0006dab0 72 65 67 73 65 74 00 00 cc 0f 07 00 46 ff ff ff |regset......F...| 0006dac0 76 1e ef 24 65 01 00 00 13 00 00 00 00 00 00 00 |v..$e...........| 0006dad0 72 6e 64 00 34 11 07 00 46 ff ff ff 33 2d ef 24 |rnd.4...F...3-.$| 0006dae0 e8 02 00 00 13 00 00 00 00 00 00 00 73 6f 75 6e |............soun| 0006daf0 64 00 00 00 1c 14 07 00 46 ff ff ff ba 78 b2 24 |d.......F....x.$| 0006db00 09 02 00 00 13 00 00 00 00 00 00 00 73 77 69 00 |............swi.| 0006db10 28 16 07 00 46 fd ff ff e4 9c b2 24 9c 02 00 00 |(...F......$....| 0006db20 13 00 00 00 00 00 00 00 73 77 69 5f 00 00 00 00 |........swi_....| 0006db30 c4 18 07 00 46 ff ff ff 65 46 ef 24 e6 01 00 00 |....F...eF.$....| 0006db40 13 00 00 00 00 00 00 00 73 77 69 78 00 00 00 00 |........swix....| 0006db50 ac 1a 07 00 46 ff ff ff c7 75 ee 24 11 01 00 00 |....F....u.$....| 0006db60 13 00 00 00 00 00 00 00 74 61 62 00 c0 1b 07 00 |........tab.....| 0006db70 46 ff ff ff a0 88 ee 24 3c 02 00 00 13 00 00 00 |F......$<.......| 0006db80 00 00 00 00 74 69 6e 74 00 00 00 00 fc 1d 07 00 |....tint........| 0006db90 46 ff ff ff be 99 ee 24 0e 01 00 00 13 00 00 00 |F......$........| 0006dba0 00 00 00 00 76 64 75 00 0c 1f 07 00 46 ff ff ff |....vdu.....F...| 0006dbb0 bd a1 ee 24 f3 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0006dbc0 76 64 75 71 00 00 00 00 00 20 07 00 46 ff ff ff |vduq..... ..F...| 0006dbd0 3e ad ee 24 2d 01 00 00 13 00 00 00 00 00 00 00 |>..$-...........| 0006dbe0 76 64 75 77 00 00 00 00 30 21 07 00 46 ff ff ff |vduw....0!..F...| 0006dbf0 fa b0 ee 24 cd 00 00 00 13 00 00 00 00 00 00 00 |...$............| 0006dc00 76 70 6f 73 00 00 00 00 00 22 07 00 46 ff ff ff |vpos....."..F...| 0006dc10 32 10 b3 24 1a 02 00 00 13 00 00 00 00 00 00 00 |2..$............| 0006dc20 77 6f 72 64 00 00 00 00 1c 24 07 00 46 ff ff ff |word.....$..F...| 0006dc30 e9 39 3f 25 70 01 00 00 13 00 00 00 00 00 00 00 |.9?%p...........| 0006dc40 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 0006dc50 00 00 00 00 44 41 54 41 9d 02 00 00 6f 73 5f 61 |....DATA....os_a| 0006dc60 64 76 61 6c 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |dval.Syntax:.int| 0006dc70 20 6f 73 5f 61 64 76 61 6c 20 28 69 6e 74 20 62 | os_adval (int b| 0006dc80 75 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f |uf);.Header:.<ro| 0006dc90 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a |slib.h=>roslib>.| 0006dca0 0a 52 65 74 75 72 6e 73 3a 09 41 20 76 61 6c 75 |.Returns:.A valu| 0006dcb0 65 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 |e, depending on | 0006dcc0 74 68 65 20 76 61 6c 75 65 20 6f 66 20 2f 62 75 |the value of /bu| 0006dcd0 66 2f 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |f/...This functi| 0006dce0 6f 6e 20 72 65 61 64 73 20 74 68 65 20 63 6f 6e |on reads the con| 0006dcf0 74 65 6e 74 73 20 61 6e 64 20 73 74 61 74 75 73 |tents and status| 0006dd00 20 6f 66 20 76 61 72 69 6f 75 73 20 62 75 66 66 | of various buff| 0006dd10 65 72 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f |ers, depending o| 0006dd20 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 2f |n the value of /| 0006dd30 62 75 66 2f 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 |buf/:..#indent 4| 0006dd40 3b 74 61 62 0a 37 09 58 20 63 6f 6f 72 64 69 6e |;tab.7.X coordin| 0006dd50 61 74 65 20 6f 66 20 6d 6f 75 73 65 20 28 64 6f |ate of mouse (do| 0006dd60 20 6e 6f 74 20 75 73 65 29 0a 38 09 59 20 63 6f | not use).8.Y co| 0006dd70 6f 72 64 69 6e 61 74 65 20 6f 66 20 6d 6f 75 73 |ordinate of mous| 0006dd80 65 20 28 64 6f 20 6e 6f 74 20 75 73 65 29 0a 32 |e (do not use).2| 0006dd90 34 36 09 42 79 74 65 73 20 66 72 65 65 20 69 6e |46.Bytes free in| 0006dda0 20 6d 6f 75 73 65 20 62 75 66 66 65 72 0a 32 35 | mouse buffer.25| 0006ddb0 32 09 42 79 74 65 73 20 66 72 65 65 20 69 6e 20 |2.Bytes free in | 0006ddc0 70 72 69 6e 74 65 72 20 62 75 66 66 65 72 0a 32 |printer buffer.2| 0006ddd0 35 33 09 42 79 74 65 73 20 66 72 65 65 20 69 6e |53.Bytes free in| 0006dde0 20 52 53 34 32 33 20 6f 75 74 70 75 74 20 62 75 | RS423 output bu| 0006ddf0 66 66 65 72 0a 32 35 34 09 42 79 74 65 73 20 69 |ffer.254.Bytes i| 0006de00 6e 20 52 53 34 32 33 20 69 6e 70 75 74 20 62 75 |n RS423 input bu| 0006de10 66 66 65 72 0a 32 35 35 09 42 79 74 65 73 20 69 |ffer.255.Bytes i| 0006de20 6e 20 6b 65 79 62 6f 61 72 64 20 62 75 66 66 65 |n keyboard buffe| 0006de30 72 0a 23 69 6e 64 65 6e 74 0a 0a 49 74 20 69 73 |r.#indent..It is| 0006de40 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 62 79 20 | recommended by | 0006de50 41 63 6f 72 6e 20 74 68 61 74 20 79 6f 75 20 64 |Acorn that you d| 0006de60 6f 20 6e 6f 74 20 75 73 65 20 6f 73 5f 61 64 76 |o not use os_adv| 0006de70 61 6c 20 37 20 61 6e 64 20 38 20 74 6f 20 72 65 |al 7 and 8 to re| 0006de80 61 64 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 73 |ad the mouse pos| 0006de90 69 74 69 6f 6e 2c 20 62 75 74 20 63 61 6c 6c 20 |ition, but call | 0006dea0 74 68 65 20 4f 53 5f 4d 6f 75 73 65 20 53 57 49 |the OS_Mouse SWI| 0006deb0 20 69 6e 73 74 65 61 64 2e 0a 0a 54 68 69 73 20 | instead...This | 0006dec0 63 61 6c 6c 20 69 73 20 65 71 75 69 76 61 6c 65 |call is equivale| 0006ded0 6e 74 20 74 6f 20 3c 4f 53 5f 42 79 74 65 3d 3e |nt to <OS_Byte=>| 0006dee0 53 57 49 3a 4f 53 5f 42 79 74 65 3e 20 31 32 38 |SWI:OS_Byte> 128| 0006def0 2e 00 00 00 44 41 54 41 40 01 00 00 6f 73 5f 61 |....DATA@...os_a| 0006df00 72 67 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |rgs.Syntax:.<os_| 0006df10 65 72 72 6f 72 3e 20 2a 6f 73 5f 61 72 67 73 20 |error> *os_args | 0006df20 28 3c 6f 73 5f 72 65 67 73 65 74 3e 20 2a 72 29 |(<os_regset> *r)| 0006df30 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 |;.Header:.<rosli| 0006df40 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 09 28 45 61 |b.h=>roslib>.(Ea| 0006df50 73 79 20 43 29 0a 09 3c 6f 73 2e 68 3d 3e 6f 73 |sy C)..<os.h=>os| 0006df60 3e 09 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a 52 |>.(Desktop C)..R| 0006df70 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0006df80 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0006df90 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0006dfa0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c |is function call| 0006dfb0 73 20 74 68 65 20 3c 4f 53 5f 41 72 67 73 3d 3e |s the <OS_Args=>| 0006dfc0 53 57 49 3a 4f 53 5f 41 72 67 73 3e 20 53 57 49 |SWI:OS_Args> SWI| 0006dfd0 20 77 68 69 63 68 20 70 65 72 66 6f 72 6d 73 20 | which performs | 0006dfe0 76 61 72 69 6f 75 73 20 66 75 6e 63 74 69 6f 6e |various function| 0006dff0 73 2e 20 54 68 65 20 72 65 67 69 73 74 65 72 73 |s. The registers| 0006e000 20 52 30 2d 52 39 20 61 72 65 20 73 65 74 20 74 | R0-R9 are set t| 0006e010 6f 20 74 68 65 20 76 61 6c 75 65 73 20 69 6e 20 |o the values in | 0006e020 2f 72 2f 20 62 65 66 6f 72 65 20 74 68 65 20 63 |/r/ before the c| 0006e030 61 6c 6c 2e 44 41 54 41 b8 01 00 00 6f 73 5f 62 |all.DATA....os_b| 0006e040 79 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |yte.Syntax:.<os_| 0006e050 65 72 72 6f 72 3e 20 2a 6f 73 5f 62 79 74 65 20 |error> *os_byte | 0006e060 28 69 6e 74 20 72 30 2c 20 69 6e 74 20 2a 72 31 |(int r0, int *r1| 0006e070 2c 20 69 6e 74 20 2a 72 32 29 3b 0a 48 65 61 64 |, int *r2);.Head| 0006e080 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 |er:.<roslib.h=>r| 0006e090 6f 73 6c 69 62 3e 09 28 45 61 73 79 20 43 29 0a |oslib>.(Easy C).| 0006e0a0 09 3c 6f 73 2e 68 3d 3e 6f 73 2e 68 3e 09 28 44 |.<os.h=>os.h>.(D| 0006e0b0 65 73 6b 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 |esktop C)..Retur| 0006e0c0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 0006e0d0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 0006e0e0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 0006e0f0 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 68 |unction calls th| 0006e100 65 20 3c 4f 53 5f 42 79 74 65 3d 3e 53 57 49 3a |e <OS_Byte=>SWI:| 0006e110 4f 53 5f 42 79 74 65 3e 20 53 57 49 20 77 69 74 |OS_Byte> SWI wit| 0006e120 68 20 74 68 65 20 72 65 67 69 73 74 65 72 20 52 |h the register R| 0006e130 30 20 73 65 74 20 74 6f 20 74 68 65 20 76 61 6c |0 set to the val| 0006e140 75 65 20 70 61 73 73 65 64 20 69 6e 20 72 30 2c |ue passed in r0,| 0006e150 20 61 6e 64 20 72 65 67 69 73 74 65 72 73 20 52 | and registers R| 0006e160 31 20 61 6e 64 20 52 32 20 73 65 74 20 74 6f 20 |1 and R2 set to | 0006e170 74 68 65 20 76 61 6c 75 65 73 20 70 6f 69 6e 74 |the values point| 0006e180 65 64 20 74 6f 20 62 79 20 7b 2f 7d 72 31 7b 2f |ed to by {/}r1{/| 0006e190 7d 20 61 6e 64 20 7b 2f 7d 72 32 7b 2f 7d 2e 20 |} and {/}r2{/}. | 0006e1a0 56 61 6c 75 65 73 20 6d 61 79 20 61 6c 73 6f 20 |Values may also | 0006e1b0 62 65 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 |be returned in t| 0006e1c0 68 65 20 69 6e 74 73 20 70 6f 69 6e 74 65 64 20 |he ints pointed | 0006e1d0 74 6f 20 62 79 20 7b 2f 7d 72 31 7b 2f 7d 20 61 |to by {/}r1{/} a| 0006e1e0 6e 64 20 7b 2f 7d 72 32 7b 2f 7d 2e 44 41 54 41 |nd {/}r2{/}.DATA| 0006e1f0 d5 01 00 00 4f 53 5f 42 79 74 65 0a 53 79 6e 74 |....OS_Byte.Synt| 0006e200 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0006e210 4f 53 5f 42 79 74 65 20 28 3c 6f 73 62 79 74 65 |OS_Byte (<osbyte| 0006e220 5f 6e 75 6d 62 65 72 3e 20 72 30 2c 20 69 6e 74 |_number> r0, int| 0006e230 20 72 31 69 6e 2c 20 69 6e 74 20 72 32 69 6e 2c | r1in, int r2in,| 0006e240 20 69 6e 74 20 2a 72 31 6f 75 74 2c 20 69 6e 74 | int *r1out, int| 0006e250 20 2a 72 32 6f 75 74 29 3b 0a 48 65 61 64 65 72 | *r2out);.Header| 0006e260 3a 09 3c 44 65 73 6b 4c 69 62 3a 4b 65 72 6e 65 |:.<DeskLib:Kerne| 0006e270 6c 53 57 49 73 2e 68 3d 3e 4b 65 72 6e 65 6c 53 |lSWIs.h=>KernelS| 0006e280 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |WIs>..Returns:.P| 0006e290 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 0006e2a0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 0006e2b0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 0006e2c0 6f 6e 20 63 61 6c 6c 73 20 74 68 65 20 3c 4f 53 |on calls the <OS| 0006e2d0 5f 42 79 74 65 3d 3e 53 57 49 3a 4f 53 5f 42 79 |_Byte=>SWI:OS_By| 0006e2e0 74 65 3e 20 53 57 49 20 77 69 74 68 20 74 68 65 |te> SWI with the| 0006e2f0 20 72 65 67 69 73 74 65 72 20 52 30 20 73 65 74 | register R0 set| 0006e300 20 74 68 65 20 74 68 65 20 76 61 6c 75 65 20 70 | the the value p| 0006e310 61 73 73 65 64 20 69 6e 20 7b 2f 7d 72 30 7b 2f |assed in {/}r0{/| 0006e320 7d 2c 20 61 6e 64 20 72 65 67 69 73 74 65 72 73 |}, and registers| 0006e330 20 52 31 20 61 6e 64 20 52 32 20 73 65 74 20 74 | R1 and R2 set t| 0006e340 6f 20 74 68 65 20 76 61 6c 75 65 73 20 70 61 73 |o the values pas| 0006e350 73 65 64 20 69 6e 20 7b 2f 7d 72 31 69 6e 7b 2f |sed in {/}r1in{/| 0006e360 7d 20 61 6e 64 20 7b 2f 7d 72 32 69 6e 7b 2f 7d |} and {/}r2in{/}| 0006e370 2e 20 56 61 6c 75 65 73 20 6d 61 79 20 62 65 20 |. Values may be | 0006e380 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 |returned in the | 0006e390 2f 69 6e 74 73 2f 20 70 6f 69 6e 74 65 64 20 74 |/ints/ pointed t| 0006e3a0 6f 20 62 79 20 7b 2f 7d 72 31 6f 75 74 7b 2f 7d |o by {/}r1out{/}| 0006e3b0 20 61 6e 64 20 7b 2f 7d 72 32 6f 75 74 7b 2f 7d | and {/}r2out{/}| 0006e3c0 2e 00 00 00 44 41 54 41 e5 00 00 00 6f 73 5f 63 |....DATA....os_c| 0006e3d0 69 72 63 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f |ircle.Syntax:.vo| 0006e3e0 69 64 20 6f 73 5f 63 69 72 63 6c 65 20 28 69 6e |id os_circle (in| 0006e3f0 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 |t x, int y, int | 0006e400 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 |r);.Header:.<ros| 0006e410 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a |lib.h=>roslib>..| 0006e420 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 72 |This function dr| 0006e430 61 77 73 20 61 20 63 69 72 63 6c 65 20 77 69 74 |aws a circle wit| 0006e440 68 20 63 65 6e 74 72 65 20 61 74 20 73 63 72 65 |h centre at scre| 0006e450 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 7b |en coordinates {| 0006e460 2f 7d 28 78 2c 79 29 7b 2f 7d 20 61 6e 64 20 72 |/}(x,y){/} and r| 0006e470 61 64 69 75 73 20 2f 72 2f 2e 20 45 71 75 69 76 |adius /r/. Equiv| 0006e480 61 6c 65 6e 74 20 74 6f 20 3c 43 49 52 43 4c 45 |alent to <CIRCLE| 0006e490 3d 3e 42 61 73 69 63 3a 43 49 52 43 4c 45 3e 20 |=>Basic:CIRCLE> | 0006e4a0 69 6e 20 42 61 73 69 63 2e 00 00 00 44 41 54 41 |in Basic....DATA| 0006e4b0 f9 00 00 00 6f 73 5f 63 69 72 63 6c 65 66 69 6c |....os_circlefil| 0006e4c0 6c 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f |l.Syntax:.void o| 0006e4d0 73 5f 63 69 72 63 6c 65 66 69 6c 6c 20 28 69 6e |s_circlefill (in| 0006e4e0 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 |t x, int y, int | 0006e4f0 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 |r);.Header:.<ros| 0006e500 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a |lib.h=>roslib>..| 0006e510 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 72 |This function dr| 0006e520 61 77 73 20 61 20 66 69 6c 6c 65 64 20 63 69 72 |aws a filled cir| 0006e530 63 6c 65 20 77 69 74 68 20 63 65 6e 74 72 65 20 |cle with centre | 0006e540 61 74 20 73 63 72 65 65 6e 20 63 6f 6f 72 64 69 |at screen coordi| 0006e550 6e 61 74 65 73 20 7b 2f 7d 28 78 2c 79 29 7b 2f |nates {/}(x,y){/| 0006e560 7d 20 61 6e 64 20 72 61 64 69 75 73 20 2f 72 2f |} and radius /r/| 0006e570 2e 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |. Equivalent to | 0006e580 3c 43 49 52 43 4c 45 20 46 49 4c 4c 3d 3e 42 61 |<CIRCLE FILL=>Ba| 0006e590 73 69 63 3a 43 49 52 43 4c 45 3e 20 69 6e 20 42 |sic:CIRCLE> in B| 0006e5a0 61 73 69 63 2e 00 00 00 44 41 54 41 b1 00 00 00 |asic....DATA....| 0006e5b0 6f 73 5f 63 6c 67 0a 53 79 6e 74 61 78 3a 09 76 |os_clg.Syntax:.v| 0006e5c0 6f 69 64 20 6f 73 5f 63 6c 67 20 28 76 6f 69 64 |oid os_clg (void| 0006e5d0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c |);.Header:.<rosl| 0006e5e0 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 |ib.h=>roslib>..T| 0006e5f0 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 63 6c |his functions cl| 0006e600 65 61 72 73 20 74 68 65 20 67 72 61 70 68 69 63 |ears the graphic| 0006e610 73 20 77 69 6e 64 6f 77 20 74 6f 20 74 68 65 20 |s window to the | 0006e620 63 75 72 72 65 6e 74 20 62 61 63 6b 67 72 6f 75 |current backgrou| 0006e630 6e 64 20 67 72 61 70 68 69 63 73 20 63 6f 6c 6f |nd graphics colo| 0006e640 75 72 20 28 73 65 74 20 75 73 69 6e 67 20 3c 6f |ur (set using <o| 0006e650 73 5f 67 63 6f 6c 3e 29 2e 00 00 00 44 41 54 41 |s_gcol>)....DATA| 0006e660 75 01 00 00 6f 73 5f 63 6c 69 0a 53 79 6e 74 61 |u...os_cli.Synta| 0006e670 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 6f |x:.<os_error> *o| 0006e680 73 5f 63 6c 69 20 28 63 68 61 72 20 2a 63 6f 6d |s_cli (char *com| 0006e690 6d 61 6e 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |mand);.Header:.<| 0006e6a0 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 |roslib.h=>roslib| 0006e6b0 3e 09 28 45 61 73 79 20 43 29 0a 09 3c 6f 73 2e |>.(Easy C)..<os.| 0006e6c0 68 3d 3e 6f 73 3e 09 28 44 65 73 6b 74 6f 70 20 |h=>os>.(Desktop | 0006e6d0 43 29 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |C)..Returns:.Poi| 0006e6e0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 0006e6f0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 0006e700 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0006e710 73 20 70 61 73 73 65 73 20 74 68 65 20 73 74 72 |s passes the str| 0006e720 69 6e 67 20 67 69 76 65 6e 20 74 6f 20 74 68 65 |ing given to the| 0006e730 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 | operating syste| 0006e740 6d 20 43 4c 49 20 74 6f 20 62 65 20 65 78 65 63 |m CLI to be exec| 0006e750 75 74 65 64 20 61 73 20 69 66 20 69 74 20 68 61 |uted as if it ha| 0006e760 64 20 62 65 65 6e 20 74 79 70 65 64 20 69 6e 20 |d been typed in | 0006e770 61 73 20 61 20 22 73 74 61 72 20 63 6f 6d 6d 61 |as a "star comma| 0006e780 6e 64 22 2e 20 46 6f 72 20 69 6e 73 74 61 6e 63 |nd". For instanc| 0006e790 65 2c 20 7b 66 43 6f 64 65 7d 6f 73 5f 63 6c 69 |e, {fCode}os_cli| 0006e7a0 28 22 4d 6f 64 75 6c 65 73 22 29 7b 66 7d 20 68 |("Modules"){f} h| 0006e7b0 61 73 20 74 68 65 20 73 61 6d 65 20 65 66 66 65 |as the same effe| 0006e7c0 63 74 20 61 73 20 3c 2a 4d 6f 64 75 6c 65 73 3e |ct as <*Modules>| 0006e7d0 2e 00 00 00 44 41 54 41 aa 00 00 00 6f 73 5f 63 |....DATA....os_c| 0006e7e0 6c 73 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |ls.Syntax:.void | 0006e7f0 6f 73 5f 63 6c 73 20 28 76 6f 69 64 29 3b 0a 48 |os_cls (void);.H| 0006e800 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 |eader:.<roslib.h| 0006e810 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 |=>roslib>..This | 0006e820 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 73 20 |function clears | 0006e830 74 68 65 20 74 65 78 74 20 77 69 6e 64 6f 77 20 |the text window | 0006e840 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 |to the current b| 0006e850 61 63 6b 67 72 6f 75 6e 64 20 74 65 78 74 20 63 |ackground text c| 0006e860 6f 6c 6f 75 72 20 28 73 65 74 20 75 73 69 6e 67 |olour (set using| 0006e870 20 3c 6f 73 5f 63 6f 6c 6f 75 72 3e 29 2e 00 00 | <os_colour>)...| 0006e880 44 41 54 41 13 01 00 00 6f 73 5f 63 6f 6c 6f 75 |DATA....os_colou| 0006e890 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f |r.Syntax:.void o| 0006e8a0 73 5f 63 6f 6c 6f 75 72 20 28 69 6e 74 20 63 29 |s_colour (int c)| 0006e8b0 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 |;.Header:.<rosli| 0006e8c0 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 |b.h=>roslib>..Th| 0006e8d0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 0006e8e0 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 65 78 | the current tex| 0006e8f0 74 20 63 6f 6c 6f 75 72 20 74 6f 20 74 68 65 20 |t colour to the | 0006e900 76 61 6c 75 65 20 69 6e 20 2f 63 2f 2e 20 46 6f |value in /c/. Fo| 0006e910 72 20 2f 63 2f 20 5c 3c 20 31 32 37 20 74 68 69 |r /c/ \< 127 thi| 0006e920 73 20 61 6c 74 65 72 73 20 74 68 65 20 74 65 78 |s alters the tex| 0006e930 74 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c |t foreground col| 0006e940 6f 75 72 20 74 6f 20 2f 63 2f 2c 20 61 6e 64 20 |our to /c/, and | 0006e950 66 6f 72 20 2f 63 2f 20 5c 3e 20 31 32 37 20 74 |for /c/ \> 127 t| 0006e960 68 69 73 20 61 6c 74 65 72 73 20 74 68 65 20 74 |his alters the t| 0006e970 65 78 74 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 |ext background c| 0006e980 6f 6c 6f 75 72 20 74 6f 20 2f 63 2f 20 2d 20 31 |olour to /c/ - 1| 0006e990 32 38 2e 00 44 41 54 41 26 01 00 00 6f 73 5f 63 |28..DATA&...os_c| 0006e9a0 75 72 73 6f 72 0a 53 79 6e 74 61 78 3a 09 76 6f |ursor.Syntax:.vo| 0006e9b0 69 64 20 6f 73 5f 63 75 72 73 6f 72 20 28 69 6e |id os_cursor (in| 0006e9c0 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 |t n);.Header:.<r| 0006e9d0 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e |oslib.h=>roslib>| 0006e9e0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0006e9f0 63 68 61 6e 67 65 73 20 74 68 65 20 61 70 70 65 |changes the appe| 0006ea00 61 72 61 6e 63 65 20 6f 66 20 74 68 65 20 74 65 |arance of the te| 0006ea10 78 74 20 63 75 72 73 6f 72 20 64 65 70 65 6e 64 |xt cursor depend| 0006ea20 69 6e 67 20 6f 6e 20 2f 6e 2f 2e 20 50 6f 73 73 |ing on /n/. Poss| 0006ea30 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a |ible values are:| 0006ea40 0a 0a 23 69 6e 64 65 6e 74 20 32 3b 74 61 62 0a |..#indent 2;tab.| 0006ea50 30 09 48 69 64 65 20 63 75 72 73 6f 72 0a 31 09 |0.Hide cursor.1.| 0006ea60 53 68 6f 77 20 63 75 72 73 6f 72 0a 32 09 53 74 |Show cursor.2.St| 0006ea70 65 61 64 79 20 63 75 72 73 6f 72 0a 33 09 46 6c |eady cursor.3.Fl| 0006ea80 61 73 68 69 6e 67 20 63 75 72 73 6f 72 7b 69 6e |ashing cursor{in| 0006ea90 64 65 6e 74 7d 0a 0a 45 71 75 69 76 61 6c 65 6e |dent}..Equivalen| 0006eaa0 74 20 74 6f 20 3c 56 44 55 20 32 33 2c 31 3d 3e |t to <VDU 23,1=>| 0006eab0 56 44 55 3a 32 33 2c 31 3e 2e 00 00 44 41 54 41 |VDU:23,1>...DATA| 0006eac0 ea 00 00 00 6f 73 5f 64 72 61 77 0a 53 79 6e 74 |....os_draw.Synt| 0006ead0 61 78 3a 09 76 6f 69 64 20 6f 73 5f 64 72 61 77 |ax:.void os_draw| 0006eae0 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b | (int x, int y);| 0006eaf0 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 |.Header:.<roslib| 0006eb00 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 |.h=>roslib>..Thi| 0006eb10 73 20 66 75 6e 63 74 69 6f 6e 20 64 72 61 77 73 |s function draws| 0006eb20 20 61 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 63 | a line in the c| 0006eb30 75 72 72 65 6e 74 20 66 6f 72 65 67 72 6f 75 6e |urrent foregroun| 0006eb40 64 20 67 72 61 70 68 69 63 73 20 63 6f 6c 6f 75 |d graphics colou| 0006eb50 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 |r from the curre| 0006eb60 6e 74 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 7b |nt position to {| 0006eb70 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 20 45 71 75 69 |/}(x,y){/}. Equi| 0006eb80 76 61 6c 65 6e 74 20 74 6f 20 3c 44 52 41 57 3d |valent to <DRAW=| 0006eb90 3e 42 61 73 69 63 3a 44 52 41 57 3e 20 69 6e 20 |>Basic:DRAW> in | 0006eba0 42 61 73 69 63 2e 00 00 44 41 54 41 08 01 00 00 |Basic...DATA....| 0006ebb0 6f 73 5f 64 72 61 77 62 79 0a 53 79 6e 74 61 78 |os_drawby.Syntax| 0006ebc0 3a 09 76 6f 69 64 20 6f 73 5f 64 72 61 77 62 79 |:.void os_drawby| 0006ebd0 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b | (int x, int y);| 0006ebe0 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 |.Header:.<roslib| 0006ebf0 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 |.h=>roslib>..Thi| 0006ec00 73 20 66 75 6e 63 74 69 6f 6e 20 64 72 61 77 73 |s function draws| 0006ec10 20 61 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 63 | a line in the c| 0006ec20 75 72 72 65 6e 74 20 66 6f 72 65 67 72 6f 75 6e |urrent foregroun| 0006ec30 64 20 67 72 61 70 68 69 63 73 20 63 6f 6c 6f 75 |d graphics colou| 0006ec40 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 |r from the curre| 0006ec50 6e 74 20 70 6f 73 69 74 69 6f 6e 20 72 65 6c 61 |nt position rela| 0006ec60 74 69 76 65 6c 79 20 62 79 20 7b 2f 7d 28 78 2c |tively by {/}(x,| 0006ec70 79 29 7b 2f 7d 20 63 6f 6f 72 64 69 6e 61 74 65 |y){/} coordinate| 0006ec80 73 2e 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f |s. Equivalent to| 0006ec90 20 3c 44 52 41 57 20 42 59 3d 3e 42 61 73 69 63 | <DRAW BY=>Basic| 0006eca0 3a 44 52 41 57 3e 20 69 6e 20 42 61 73 69 63 2e |:DRAW> in Basic.| 0006ecb0 44 41 54 41 cc 01 00 00 6f 73 5f 65 72 72 6f 72 |DATA....os_error| 0006ecc0 0a 54 68 65 20 74 79 70 65 20 7b 2a 7d 6f 73 5f |.The type {*}os_| 0006ecd0 65 72 72 6f 72 7b 2a 7d 20 69 73 20 64 65 66 69 |error{*} is defi| 0006ece0 6e 65 64 20 69 6e 20 3c 72 6f 73 6c 69 62 2e 68 |ned in <roslib.h| 0006ecf0 3d 3e 72 6f 73 6c 69 62 3e 20 28 45 61 73 79 0a |=>roslib> (Easy.| 0006ed00 43 29 2c 20 3c 6f 73 2e 68 3d 3e 6f 73 3e 20 28 |C), <os.h=>os> (| 0006ed10 44 65 73 6b 74 6f 70 20 43 29 20 61 6e 64 20 3c |Desktop C) and <| 0006ed20 44 65 73 6b 4c 69 62 3a 43 6f 72 65 2e 68 3d 3e |DeskLib:Core.h=>| 0006ed30 43 6f 72 65 3e 20 61 73 20 61 6e 0a 6f 62 6a 65 |Core> as an.obje| 0006ed40 63 74 20 68 6f 6c 64 69 6e 67 20 61 20 73 74 61 |ct holding a sta| 0006ed50 6e 64 61 72 64 20 52 49 53 43 20 4f 53 20 65 72 |ndard RISC OS er| 0006ed60 72 6f 72 20 62 6c 6f 63 6b 2e 0a 49 74 20 69 73 |ror block..It is| 0006ed70 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 | defined as the | 0006ed80 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 |following struct| 0006ed90 75 72 65 20 69 6e 0a 72 6f 73 6c 69 62 2e 68 3a |ure in.roslib.h:| 0006eda0 0a 0a 5c 7b 0a 20 20 20 20 69 6e 74 20 65 72 72 |..\{. int err| 0006edb0 6e 75 6d 3b 09 2f 2a 20 45 72 72 6f 72 20 6e 75 |num;./* Error nu| 0006edc0 6d 62 65 72 20 20 2a 2f 0a 20 20 20 20 63 68 61 |mber */. cha| 0006edd0 72 20 65 72 72 6d 65 73 73 5b 32 35 35 5d 3b 09 |r errmess[255];.| 0006ede0 2f 2a 20 45 72 72 6f 72 20 6d 65 73 73 61 67 65 |/* Error message| 0006edf0 20 2a 2f 0a 7d 0a 0a 61 6e 64 20 69 6e 20 6f 73 | */.}..and in os| 0006ee00 2e 68 20 61 6e 64 20 44 65 73 6b 4c 69 62 3a 43 |.h and DeskLib:C| 0006ee10 6f 72 65 2e 68 20 69 74 20 69 73 20 64 65 66 69 |ore.h it is defi| 0006ee20 6e 65 64 20 61 73 3a 0a 0a 5c 7b 0a 20 20 20 20 |ned as:..\{. | 0006ee30 69 6e 74 20 65 72 72 6e 75 6d 3b 09 2f 2a 20 45 |int errnum;./* E| 0006ee40 72 72 6f 72 20 6e 75 6d 62 65 72 20 20 2a 2f 0a |rror number */.| 0006ee50 20 20 20 20 63 68 61 72 20 65 72 72 6d 65 73 73 | char errmess| 0006ee60 5b 32 35 32 5d 3b 09 2f 2a 20 45 72 72 6f 72 20 |[252];./* Error | 0006ee70 6d 65 73 73 61 67 65 20 2a 2f 0a 7d 44 41 54 41 |message */.}DATA| 0006ee80 50 01 00 00 6f 73 5f 66 69 6c 65 0a 53 79 6e 74 |P...os_file.Synt| 0006ee90 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0006eea0 6f 73 5f 66 69 6c 65 20 28 3c 6f 73 5f 66 69 6c |os_file (<os_fil| 0006eeb0 65 73 74 72 3e 20 2a 62 6c 6b 29 3b 0a 48 65 61 |estr> *blk);.Hea| 0006eec0 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e |der:.<roslib.h=>| 0006eed0 72 6f 73 6c 69 62 3e 09 28 45 61 73 79 20 43 29 |roslib>.(Easy C)| 0006eee0 0a 09 3c 6f 73 2e 68 3d 3e 6f 73 3e 09 28 44 65 |..<os.h=>os>.(De| 0006eef0 73 6b 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e |sktop C)..Return| 0006ef00 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 0006ef10 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 0006ef20 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 0006ef30 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 68 65 |nction calls the| 0006ef40 20 3c 4f 53 5f 46 69 6c 65 3d 3e 53 57 49 3a 4f | <OS_File=>SWI:O| 0006ef50 53 5f 46 69 6c 65 3e 20 53 57 49 20 77 68 69 63 |S_File> SWI whic| 0006ef60 68 20 70 65 72 66 6f 72 6d 73 20 76 61 72 69 6f |h performs vario| 0006ef70 75 73 20 66 75 6e 63 74 69 6f 6e 73 20 6f 6e 20 |us functions on | 0006ef80 77 68 6f 6c 65 20 66 69 6c 65 73 2e 20 54 68 65 |whole files. The| 0006ef90 20 70 61 72 61 6d 65 74 65 72 73 20 66 6f 72 20 | parameters for | 0006efa0 74 68 65 20 63 61 6c 6c 20 61 72 65 20 73 65 74 |the call are set| 0006efb0 20 66 72 6f 6d 20 61 6e 64 20 72 65 74 75 72 6e | from and return| 0006efc0 65 64 20 69 6e 20 2f 62 6c 6b 2f 2e 44 41 54 41 |ed in /blk/.DATA| 0006efd0 ac 02 00 00 6f 73 5f 66 69 6c 65 73 74 72 0a 54 |....os_filestr.T| 0006efe0 68 65 20 74 79 70 65 20 6f 73 5f 66 69 6c 65 73 |he type os_files| 0006eff0 74 72 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |tr is defined in| 0006f000 20 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c | <roslib.h=>rosl| 0006f010 69 62 3e 20 28 45 61 73 79 20 43 29 20 61 6e 64 |ib> (Easy C) and| 0006f020 20 3c 6f 73 2e 68 3d 3e 6f 73 3e 20 28 44 65 73 | <os.h=>os> (Des| 0006f030 6b 74 6f 70 20 43 29 20 61 73 20 61 6e 20 6f 62 |ktop C) as an ob| 0006f040 6a 65 63 74 20 68 6f 6c 64 69 6e 67 20 69 6e 66 |ject holding inf| 0006f050 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 62 65 20 70 |ormation to be p| 0006f060 61 73 73 65 64 20 74 6f 20 74 68 65 20 66 75 6e |assed to the fun| 0006f070 63 74 69 6f 6e 20 3c 6f 73 5f 66 69 6c 65 3e 2e |ction <os_file>.| 0006f080 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | It is defined a| 0006f090 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 |s the following | 0006f0a0 73 74 72 75 63 74 75 72 65 3a 0a 0a 23 69 6e 64 |structure:..#ind| 0006f0b0 65 6e 74 20 31 30 0a 23 74 61 62 6c 65 20 63 6f |ent 10.#table co| 0006f0c0 6c 75 6d 6e 73 20 32 0a 45 61 73 79 20 43 3a 20 |lumns 2.Easy C: | 0006f0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 0006f0e0 20 0a 5c 7b 20 20 20 20 20 20 20 20 20 20 20 20 | .\{ | 0006f0f0 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 | . | 0006f100 20 69 6e 74 20 61 63 74 69 6f 6e 3b 20 20 20 20 | int action; | 0006f110 20 20 20 20 20 20 0a 20 20 20 20 63 68 61 72 20 | . char | 0006f120 2a 6f 62 6a 6e 61 6d 65 3b 20 20 20 20 20 20 20 |*objname; | 0006f130 0a 20 20 20 20 69 6e 74 20 6c 6f 61 64 61 64 64 |. int loadadd| 0006f140 72 3b 20 20 20 20 20 20 20 20 0a 20 20 20 20 69 |r; . i| 0006f150 6e 74 20 65 78 65 63 61 64 64 72 3b 20 20 20 20 |nt execaddr; | 0006f160 20 20 20 20 0a 20 20 20 20 69 6e 74 20 73 74 61 | . int sta| 0006f170 72 74 61 64 64 72 3b 20 20 20 20 20 20 20 0a 20 |rtaddr; . | 0006f180 20 20 20 69 6e 74 20 65 6e 64 61 64 64 72 3b 20 | int endaddr; | 0006f190 20 20 20 20 20 20 20 20 0a 20 20 20 20 69 6e 74 | . int| 0006f1a0 20 72 65 73 65 72 76 65 64 5b 34 5d 3b 20 20 20 | reserved[4]; | 0006f1b0 20 20 0a 7d 20 20 20 20 20 20 20 20 20 20 20 20 | .} | 0006f1c0 20 20 20 20 20 20 20 20 20 20 20 20 0a 44 65 73 | .Des| 0006f1d0 6b 74 6f 70 20 43 0a 5c 7b 0a 20 20 20 20 69 6e |ktop C.\{. in| 0006f1e0 74 20 61 63 74 69 6f 6e 3b 20 20 20 20 20 0a 20 |t action; . | 0006f1f0 20 20 20 63 68 61 72 20 2a 6e 61 6d 65 3b 20 20 | char *name; | 0006f200 20 20 20 0a 20 20 20 20 69 6e 74 20 6c 6f 61 64 | . int load| 0006f210 61 64 64 72 3b 20 20 20 0a 20 20 20 20 69 6e 74 |addr; . int| 0006f220 20 65 78 65 63 61 64 64 72 3b 20 20 20 0a 20 20 | execaddr; . | 0006f230 20 20 69 6e 74 20 73 74 61 72 74 3b 20 20 20 20 | int start; | 0006f240 20 20 0a 20 20 20 20 69 6e 74 20 65 6e 64 3b 20 | . int end; | 0006f250 20 20 20 20 20 20 20 0a 20 20 20 20 69 6e 74 20 | . int | 0006f260 72 65 73 65 72 76 65 64 5b 34 5d 3b 0a 7d 0a 23 |reserved[4];.}.#| 0006f270 65 6e 64 74 61 62 6c 65 44 41 54 41 b9 00 00 00 |endtableDATA....| 0006f280 6f 73 5f 66 69 6c 6c 0a 53 79 6e 74 61 78 3a 09 |os_fill.Syntax:.| 0006f290 76 6f 69 64 20 6f 73 5f 66 69 6c 6c 20 28 69 6e |void os_fill (in| 0006f2a0 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 |t x, int y);.Hea| 0006f2b0 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e |der:.<roslib.h=>| 0006f2c0 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 66 75 |roslib>..This fu| 0006f2d0 6e 63 74 69 6f 6e 73 20 66 6c 6f 6f 64 20 66 69 |nctions flood fi| 0006f2e0 6c 6c 73 20 61 6e 20 61 72 65 61 20 77 69 74 68 |lls an area with| 0006f2f0 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 6f 72 | the current for| 0006f300 65 67 72 6f 75 6e 64 20 67 72 61 70 68 69 63 73 |eground graphics| 0006f310 20 63 6f 6c 6f 75 72 2c 20 73 74 61 72 74 69 6e | colour, startin| 0006f320 67 20 61 74 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d |g at {/}(x,y){/}| 0006f330 2e 00 00 00 44 41 54 41 4c 01 00 00 6f 73 5f 66 |....DATAL...os_f| 0006f340 69 6e 64 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ind.Syntax:.<os_| 0006f350 65 72 72 6f 72 3e 20 2a 6f 73 5f 66 69 6e 64 20 |error> *os_find | 0006f360 28 3c 6f 73 5f 72 65 67 73 65 74 3e 20 2a 72 29 |(<os_regset> *r)| 0006f370 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 |;.Header:.<rosli| 0006f380 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 09 28 45 61 |b.h=>roslib>.(Ea| 0006f390 73 79 20 43 29 0a 09 3c 6f 73 2e 68 3d 3e 6f 73 |sy C)..<os.h=>os| 0006f3a0 3e 09 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a 52 |>.(Desktop C)..R| 0006f3b0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0006f3c0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0006f3d0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0006f3e0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c |is function call| 0006f3f0 73 20 74 68 65 20 3c 4f 53 5f 46 69 6e 64 3d 3e |s the <OS_Find=>| 0006f400 53 57 49 3a 4f 53 5f 46 69 6e 64 3e 20 53 57 49 |SWI:OS_Find> SWI| 0006f410 20 77 68 69 63 68 20 68 61 6e 64 6c 65 73 20 6f | which handles o| 0006f420 70 65 6e 69 6e 67 20 61 6e 64 20 63 6c 6f 73 69 |pening and closi| 0006f430 6e 67 20 6f 66 20 72 61 6e 64 6f 6d 20 61 63 63 |ng of random acc| 0006f440 65 73 73 20 66 69 6c 65 73 2e 20 54 68 65 20 72 |ess files. The r| 0006f450 65 67 69 73 74 65 72 73 20 52 30 2d 52 39 20 61 |egisters R0-R9 a| 0006f460 72 65 20 73 65 74 20 66 72 6f 6d 20 61 6e 64 20 |re set from and | 0006f470 72 65 74 75 72 6e 65 64 20 69 6e 20 2f 72 2f 2e |returned in /r/.| 0006f480 44 41 54 41 50 01 00 00 6f 73 5f 67 62 70 62 0a |DATAP...os_gbpb.| 0006f490 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0006f4a0 72 3e 20 2a 6f 73 5f 67 62 70 62 20 28 3c 6f 73 |r> *os_gbpb (<os| 0006f4b0 5f 67 62 70 62 73 74 72 3e 20 2a 62 6c 6b 29 3b |_gbpbstr> *blk);| 0006f4c0 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 |.Header:.<roslib| 0006f4d0 2e 68 3d 3e 72 6f 73 6c 69 62 3e 09 28 45 61 73 |.h=>roslib>.(Eas| 0006f4e0 79 20 43 29 0a 09 3c 6f 73 2e 68 3d 3e 6f 73 3e |y C)..<os.h=>os>| 0006f4f0 09 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a 52 65 |.(Desktop C)..Re| 0006f500 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 0006f510 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 0006f520 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 0006f530 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 |s function calls| 0006f540 20 74 68 65 20 3c 4f 53 5f 47 42 50 42 3d 3e 53 | the <OS_GBPB=>S| 0006f550 57 49 3a 4f 53 5f 47 42 50 42 3e 20 53 57 49 20 |WI:OS_GBPB> SWI | 0006f560 77 68 69 63 68 20 70 65 72 66 6f 72 6d 73 20 61 |which performs a| 0006f570 20 6d 79 72 69 61 64 20 6f 66 20 64 69 66 66 65 | myriad of diffe| 0006f580 72 65 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e |rent operations.| 0006f590 20 54 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 | The parameters | 0006f5a0 66 6f 72 20 74 68 65 20 63 61 6c 6c 20 61 72 65 |for the call are| 0006f5b0 20 73 65 74 20 66 72 6f 6d 20 61 6e 64 20 72 65 | set from and re| 0006f5c0 74 75 72 6e 65 64 20 69 6e 20 2f 62 6c 6b 2f 2e |turned in /blk/.| 0006f5d0 44 41 54 41 41 02 00 00 6f 73 5f 67 62 70 62 73 |DATAA...os_gbpbs| 0006f5e0 74 72 0a 54 68 65 20 74 79 70 65 20 6f 73 5f 67 |tr.The type os_g| 0006f5f0 62 70 62 73 74 72 20 69 73 20 64 65 66 69 6e 65 |bpbstr is define| 0006f600 64 20 69 6e 20 3c 72 6f 73 6c 69 62 2e 68 3d 3e |d in <roslib.h=>| 0006f610 72 6f 73 6c 69 62 3e 20 28 45 61 73 79 20 43 29 |roslib> (Easy C)| 0006f620 20 61 6e 64 20 3c 6f 73 2e 68 3d 3e 6f 73 3e 20 | and <os.h=>os> | 0006f630 28 44 65 73 6b 74 6f 70 20 43 29 20 61 73 20 61 |(Desktop C) as a| 0006f640 6e 20 6f 62 6a 65 63 74 20 68 6f 6c 64 69 6e 67 |n object holding| 0006f650 20 64 61 74 61 20 74 6f 20 62 65 20 70 61 73 73 | data to be pass| 0006f660 65 64 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 |ed to the functi| 0006f670 6f 6e 20 3c 6f 73 5f 67 62 70 62 3e 2e 20 49 74 |on <os_gbpb>. It| 0006f680 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 | is defined as t| 0006f690 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 |he following str| 0006f6a0 75 63 74 75 72 65 3a 0a 0a 23 69 6e 64 65 6e 74 |ucture:..#indent| 0006f6b0 20 39 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d 6e | 9.#table column| 0006f6c0 73 20 32 0a 45 61 73 79 20 43 3a 0a 5c 7b 0a 20 |s 2.Easy C:.\{. | 0006f6d0 20 20 20 69 6e 74 20 61 63 74 69 6f 6e 3b 0a 20 | int action;. | 0006f6e0 20 20 20 69 6e 74 20 68 61 6e 64 6c 65 3b 0a 20 | int handle;. | 0006f6f0 20 20 20 76 6f 69 64 20 2a 73 74 61 72 74 61 64 | void *startad| 0006f700 64 72 3b 0a 20 20 20 20 69 6e 74 20 6e 75 6d 62 |dr;. int numb| 0006f710 65 72 3b 0a 20 20 20 20 69 6e 74 20 70 6f 69 6e |er;. int poin| 0006f720 74 65 72 3b 0a 20 20 20 20 69 6e 74 20 62 75 66 |ter;. int buf| 0006f730 5f 6c 65 6e 3b 0a 20 20 20 20 63 68 61 72 20 2a |_len;. char *| 0006f740 77 69 6c 64 63 61 72 64 3b 0a 20 20 20 20 69 6e |wildcard;. in| 0006f750 74 20 72 65 73 65 72 76 65 64 5b 33 5d 3b 0a 7d |t reserved[3];.}| 0006f760 0a 44 65 73 6b 74 6f 70 20 43 3a 0a 5c 7b 0a 20 |.Desktop C:.\{. | 0006f770 20 20 20 69 6e 74 20 61 63 74 69 6f 6e 3b 0a 20 | int action;. | 0006f780 20 20 20 69 6e 74 20 66 69 6c 65 5f 68 61 6e 64 | int file_hand| 0006f790 6c 65 3b 0a 20 20 20 20 76 6f 69 64 20 2a 64 61 |le;. void *da| 0006f7a0 74 61 5f 61 64 64 72 3b 0a 20 20 20 20 69 6e 74 |ta_addr;. int| 0006f7b0 20 6e 75 6d 62 65 72 3b 0a 20 20 20 20 69 6e 74 | number;. int| 0006f7c0 20 73 65 71 5f 70 6f 69 6e 74 3b 0a 20 20 20 20 | seq_point;. | 0006f7d0 69 6e 74 20 62 75 66 5f 6c 65 6e 3b 0a 20 20 20 |int buf_len;. | 0006f7e0 20 63 68 61 72 20 2a 77 69 6c 64 5f 66 6c 64 3b | char *wild_fld;| 0006f7f0 0a 20 20 20 20 69 6e 74 20 72 65 73 65 72 76 65 |. int reserve| 0006f800 64 5b 33 5d 3b 0a 7d 0a 23 65 6e 64 74 61 62 6c |d[3];.}.#endtabl| 0006f810 65 00 00 00 44 41 54 41 f9 00 00 00 6f 73 5f 67 |e...DATA....os_g| 0006f820 63 6f 6c 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |col.Syntax:.void| 0006f830 20 6f 73 5f 67 63 6f 6c 20 28 69 6e 74 20 61 2c | os_gcol (int a,| 0006f840 20 69 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 3a | int c);.Header:| 0006f850 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c |.<roslib.h=>rosl| 0006f860 69 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ib>..This functi| 0006f870 6f 6e 20 63 68 61 6e 67 65 73 20 74 68 65 20 63 |on changes the c| 0006f880 75 72 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 |urrent graphics | 0006f890 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 |foreground colou| 0006f8a0 72 20 28 69 6e 20 7b 2f 7d 63 7b 2f 7d 29 20 61 |r (in {/}c{/}) a| 0006f8b0 6e 64 20 3c 61 63 74 69 6f 6e 3d 3e 56 44 55 3a |nd <action=>VDU:| 0006f8c0 31 38 61 3e 20 28 7b 2f 7d 61 7b 2f 7d 29 2e 20 |18a> ({/}a{/}). | 0006f8d0 49 66 20 2f 63 2f 20 5c 3e a0 31 32 38 20 74 68 |If /c/ \>.128 th| 0006f8e0 65 6e 20 74 68 65 20 62 61 63 6b 67 72 6f 75 6e |en the backgroun| 0006f8f0 64 20 63 6f 6c 6f 75 72 20 69 73 20 73 65 74 20 |d colour is set | 0006f900 74 6f 20 2f 63 2f 20 2d a0 31 32 38 2e 00 00 00 |to /c/ -.128....| 0006f910 44 41 54 41 7d 01 00 00 6f 73 5f 67 65 74 0a 53 |DATA}...os_get.S| 0006f920 79 6e 74 61 78 3a 09 69 6e 74 20 6f 73 5f 67 65 |yntax:.int os_ge| 0006f930 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |t (void);.Header| 0006f940 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 |:.<roslib.h=>ros| 0006f950 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 |lib>..Returns:.T| 0006f960 68 65 20 63 68 61 72 61 63 74 65 72 20 72 65 61 |he character rea| 0006f970 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |d...This functio| 0006f980 6e 20 72 65 61 64 73 20 61 20 63 68 61 72 61 63 |n reads a charac| 0006f990 74 65 72 20 66 72 6f 6d 20 74 68 65 20 63 75 72 |ter from the cur| 0006f9a0 72 65 6e 74 20 69 6e 70 75 74 20 73 74 72 65 61 |rent input strea| 0006f9b0 6d 2e 20 49 74 20 77 61 69 74 73 20 75 6e 74 69 |m. It waits unti| 0006f9c0 6c 20 6f 6e 65 20 69 73 20 61 76 61 69 6c 61 62 |l one is availab| 0006f9d0 6c 65 2c 20 73 6f 20 6d 61 79 20 68 61 6c 74 20 |le, so may halt | 0006f9e0 74 68 65 20 70 72 6f 67 72 61 6d 20 74 65 6d 70 |the program temp| 0006f9f0 6f 72 61 72 69 6c 79 2e 20 49 66 20 61 6e 20 65 |orarily. If an e| 0006fa00 73 63 61 70 65 20 63 6f 6e 64 69 74 69 6f 6e 20 |scape condition | 0006fa10 6f 63 63 75 72 73 2c 20 74 68 65 20 66 75 6e 63 |occurs, the func| 0006fa20 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 76 |tion returns a v| 0006fa30 61 6c 75 65 20 67 72 65 61 74 65 72 20 74 68 61 |alue greater tha| 0006fa40 6e 20 32 35 35 2e 0a 0a 54 68 69 73 20 66 75 6e |n 255...This fun| 0006fa50 63 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 63 |ction is identic| 0006fa60 61 6c 20 74 6f 20 4f 53 5f 52 65 61 64 43 2c 20 |al to OS_ReadC, | 0006fa70 6f 72 20 3c 47 45 54 3d 3e 42 61 73 69 63 3a 47 |or <GET=>Basic:G| 0006fa80 45 54 3e 20 69 6e 20 42 61 73 69 63 2e 00 00 00 |ET> in Basic....| 0006fa90 44 41 54 41 73 03 00 00 6f 73 5f 69 6e 6b 65 79 |DATAs...os_inkey| 0006faa0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 6f 73 5f |.Syntax:.int os_| 0006fab0 69 6e 6b 65 79 20 28 69 6e 74 20 6e 29 3b 0a 48 |inkey (int n);.H| 0006fac0 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 |eader:.<roslib.h| 0006fad0 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 52 65 74 75 72 |=>roslib>..Retur| 0006fae0 6e 73 3a 09 6e 3e 3d 30 09 54 68 65 20 63 68 61 |ns:.n>=0.The cha| 0006faf0 72 61 63 74 65 72 20 72 65 61 64 2e 0a 09 6e 5c |racter read...n\| 0006fb00 3c 30 09 2d 31 20 69 66 20 74 68 65 20 6b 65 79 |<0.-1 if the key| 0006fb10 20 69 73 20 62 65 69 6e 67 20 70 72 65 73 73 65 | is being presse| 0006fb20 64 2c 20 6f 72 20 30 20 69 66 20 6e 6f 74 2e 0a |d, or 0 if not..| 0006fb30 09 6e 3d 3d 32 35 36 09 54 68 65 20 4f 70 65 72 |.n==256.The Oper| 0006fb40 61 74 69 6e 67 20 53 79 73 74 65 6d 20 76 65 72 |ating System ver| 0006fb50 73 69 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |sion...This func| 0006fb60 74 69 6f 6e 20 65 69 74 68 65 72 20 72 65 61 64 |tion either read| 0006fb70 73 20 61 20 63 68 61 72 61 63 74 65 72 20 66 72 |s a character fr| 0006fb80 6f 6d 20 74 68 65 20 69 6e 70 75 74 20 73 74 72 |om the input str| 0006fb90 65 61 6d 20 77 69 74 68 69 6e 20 61 20 74 69 6d |eam within a tim| 0006fba0 65 20 6c 69 6d 69 74 2c 20 74 65 73 74 73 20 61 |e limit, tests a| 0006fbb0 20 73 70 65 63 69 66 69 63 20 6b 65 79 2c 20 6f | specific key, o| 0006fbc0 72 20 72 65 61 64 73 20 74 68 65 20 4f 70 65 72 |r reads the Oper| 0006fbd0 61 74 69 6e 67 20 53 79 73 74 65 6d 20 76 65 72 |ating System ver| 0006fbe0 73 69 6f 6e 2e 0a 0a 54 6f 20 72 65 61 64 20 61 |sion...To read a| 0006fbf0 20 63 68 61 72 61 63 74 65 72 20 77 69 74 68 69 | character withi| 0006fc00 6e 20 61 20 74 69 6d 65 20 6c 69 6d 69 74 2c 20 |n a time limit, | 0006fc10 2f 6e 2f 20 73 68 6f 75 6c 64 20 62 65 20 74 68 |/n/ should be th| 0006fc20 65 20 74 69 6d 65 20 6c 69 6d 69 74 20 69 6e 20 |e time limit in | 0006fc30 63 65 6e 74 69 73 65 63 6f 6e 64 73 20 28 75 70 |centiseconds (up| 0006fc40 20 74 6f 20 33 32 37 36 37 20 2d 20 69 74 20 63 | to 32767 - it c| 0006fc50 61 6e 20 62 65 20 30 29 2e 20 54 68 65 20 70 72 |an be 0). The pr| 0006fc60 6f 67 72 61 6d 20 77 69 6c 6c 20 77 61 69 74 20 |ogram will wait | 0006fc70 75 6e 74 69 6c 20 61 20 63 68 61 72 61 63 74 65 |until a characte| 0006fc80 72 20 69 73 20 69 6e 70 75 74 2c 20 66 6f 72 20 |r is input, for | 0006fc90 61 20 6d 61 78 69 6d 75 6d 20 6f 66 20 2f 6e 2f |a maximum of /n/| 0006fca0 20 63 65 6e 74 69 73 65 63 6f 6e 64 73 2c 20 61 | centiseconds, a| 0006fcb0 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 41 53 |nd return the AS| 0006fcc0 43 49 49 20 76 61 6c 75 65 20 6f 66 20 74 68 65 |CII value of the| 0006fcd0 20 6b 65 79 2e 0a 0a 54 6f 20 74 65 73 74 20 61 | key...To test a| 0006fce0 20 73 70 65 63 69 66 69 63 20 6b 65 79 2c 20 2f | specific key, /| 0006fcf0 6e 2f 20 73 68 6f 75 6c 64 20 62 65 20 61 20 76 |n/ should be a v| 0006fd00 61 6c 75 65 20 66 72 6f 6d 20 2d 32 35 35 20 74 |alue from -255 t| 0006fd10 6f 20 2d 31 2c 20 61 6e 64 20 74 68 65 20 6b 65 |o -1, and the ke| 0006fd20 79 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 |y represented by| 0006fd30 20 74 68 61 74 20 76 61 6c 75 65 20 77 69 6c 6c | that value will| 0006fd40 20 62 65 20 74 65 73 74 65 64 2e 20 54 68 65 20 | be tested. The | 0006fd50 76 61 6c 75 65 20 73 68 6f 75 6c 64 20 62 65 20 |value should be | 0006fd60 28 2d 31 20 2d 20 3c 6b 65 79 20 6e 72 3d 3e 53 |(-1 - <key nr=>S| 0006fd70 57 49 3a 6f 73 5f 62 79 74 65 31 32 31 61 3e 29 |WI:os_byte121a>)| 0006fd80 0a 0a 54 6f 20 72 65 61 64 20 74 68 65 20 4f 53 |..To read the OS| 0006fd90 20 76 65 72 73 69 6f 6e 2c 20 2f 6e 2f 20 3d a0 | version, /n/ =.| 0006fda0 2d 32 35 36 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |-256...This func| 0006fdb0 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 |tion is equivale| 0006fdc0 6e 74 20 74 6f 20 3c 4f 53 5f 42 79 74 65 3d 3e |nt to <OS_Byte=>| 0006fdd0 53 57 49 3a 4f 53 5f 42 79 74 65 3e 20 31 32 39 |SWI:OS_Byte> 129| 0006fde0 2c 20 6f 72 20 3c 49 4e 4b 45 59 3d 3e 42 61 73 |, or <INKEY=>Bas| 0006fdf0 69 63 3a 49 4e 4b 45 59 3e 20 69 6e 20 42 61 73 |ic:INKEY> in Bas| 0006fe00 69 63 2e 00 44 41 54 41 af 01 00 00 6f 73 2e 68 |ic..DATA....os.h| 0006fe10 20 4d 61 63 72 6f 73 0a 45 69 67 68 74 20 6d 61 | Macros.Eight ma| 0006fe20 63 72 6f 73 20 61 72 65 20 64 65 66 69 6e 65 64 |cros are defined| 0006fe30 20 72 65 6c 61 74 69 6e 67 20 74 6f 20 53 57 49 | relating to SWI| 0006fe40 20 6e 75 6d 62 65 72 73 2e 20 54 68 65 20 66 6f | numbers. The fo| 0006fe50 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20 61 |llowing macros a| 0006fe60 72 65 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 |re defined as th| 0006fe70 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 69 |e number of thei| 0006fe80 72 20 6e 61 6d 65 73 61 6b 65 27 73 20 53 57 49 |r namesake's SWI| 0006fe90 3a 0a 0a 23 49 6e 64 65 6e 74 20 37 0a 23 54 61 |:..#Indent 7.#Ta| 0006fea0 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 7b 2a |ble columns 3.{*| 0006feb0 7d 4f 53 5f 43 4c 49 7b 2a 7d 0a 7b 2a 7d 4f 53 |}OS_CLI{*}.{*}OS| 0006fec0 5f 42 79 74 65 7b 2a 7d 0a 7b 2a 7d 4f 53 5f 57 |_Byte{*}.{*}OS_W| 0006fed0 6f 72 64 7b 2a 7d 0a 7b 2a 7d 4f 53 5f 46 69 6c |ord{*}.{*}OS_Fil| 0006fee0 65 7b 2a 7d 0a 7b 2a 7d 4f 53 5f 41 72 67 73 7b |e{*}.{*}OS_Args{| 0006fef0 2a 7d 0a 7b 2a 7d 4f 53 5f 47 42 50 42 7b 2a 7d |*}.{*}OS_GBPB{*}| 0006ff00 0a 7b 2a 7d 4f 53 5f 46 69 6e 64 7b 2a 7d 0a 23 |.{*}OS_Find{*}.#| 0006ff10 45 6e 64 54 61 62 6c 65 0a 23 49 6e 64 65 6e 74 |EndTable.#Indent| 0006ff20 20 30 0a 0a 54 68 65 20 6d 61 63 72 6f 20 7b 2a | 0..The macro {*| 0006ff30 7d 6f 73 5f 58 7b 2a 7d 20 69 73 20 74 68 65 20 |}os_X{*} is the | 0006ff40 76 61 6c 75 65 20 6f 66 20 74 68 65 20 27 58 20 |value of the 'X | 0006ff50 62 69 74 27 20 69 6e 20 53 57 49 20 6e 75 6d 62 |bit' in SWI numb| 0006ff60 65 72 73 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 |ers. It should b| 0006ff70 65 20 6c 6f 67 69 63 61 6c 6c 79 20 4f 52 65 64 |e logically ORed| 0006ff80 20 77 69 74 68 20 74 68 65 20 53 57 49 20 6e 75 | with the SWI nu| 0006ff90 6d 62 65 72 20 74 6f 20 63 61 6c 6c 20 74 68 65 |mber to call the| 0006ffa0 20 58 20 66 6f 72 6d 20 6f 66 20 74 68 65 20 53 | X form of the S| 0006ffb0 57 49 2e 00 44 41 54 41 e5 00 00 00 6f 73 5f 6d |WI..DATA....os_m| 0006ffc0 6f 64 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ode.Syntax:.void| 0006ffd0 20 6f 73 5f 6d 6f 64 65 20 28 69 6e 74 20 6d 29 | os_mode (int m)| 0006ffe0 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 |;.Header:.<rosli| 0006fff0 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 |b.h=>roslib>..Th| 00070000 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e |is function chan| 00070010 67 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 |ges the current | 00070020 3c 73 63 72 65 65 6e 20 6d 6f 64 65 3d 3e 56 44 |<screen mode=>VD| 00070030 55 3a 32 32 61 3e 20 74 6f 20 74 68 65 20 6f 6e |U:22a> to the on| 00070040 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 2f |e specified in /| 00070050 6d 2f 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |m/. It is equiva| 00070060 6c 65 6e 74 20 74 6f 20 3c 4d 4f 44 45 3d 3e 42 |lent to <MODE=>B| 00070070 61 73 69 63 3a 4d 4f 44 45 3e 20 69 6e 20 42 61 |asic:MODE> in Ba| 00070080 73 69 63 2c 20 6f 72 20 3c 56 44 55 20 32 32 3d |sic, or <VDU 22=| 00070090 3e 56 44 55 3a 32 32 3e 2e 00 00 00 44 41 54 41 |>VDU:22>....DATA| 000700a0 c3 00 00 00 6f 73 5f 6d 6f 76 65 0a 53 79 6e 74 |....os_move.Synt| 000700b0 61 78 3a 09 76 6f 69 64 20 6f 73 5f 6d 6f 76 65 |ax:.void os_move| 000700c0 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b | (int x, int y);| 000700d0 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 |.Header:.<roslib| 000700e0 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 |.h=>roslib>..Thi| 000700f0 73 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 73 |s function moves| 00070100 20 74 68 65 20 67 72 61 70 68 69 63 73 20 63 75 | the graphics cu| 00070110 72 73 6f 72 20 74 6f 20 74 68 65 20 70 6f 73 69 |rsor to the posi| 00070120 74 69 6f 6e 20 67 69 76 65 6e 20 62 79 20 28 78 |tion given by (x| 00070130 2c 79 29 2e 20 45 71 75 69 76 61 6c 65 6e 74 20 |,y). Equivalent | 00070140 74 6f 20 3c 4d 4f 56 45 3d 3e 42 61 73 69 63 3a |to <MOVE=>Basic:| 00070150 4d 4f 56 45 3e 20 69 6e 20 42 61 73 69 63 2e 00 |MOVE> in Basic..| 00070160 44 41 54 41 df 00 00 00 6f 73 5f 6d 6f 76 65 62 |DATA....os_moveb| 00070170 79 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f |y.Syntax:.void o| 00070180 73 5f 6d 6f 76 65 62 79 20 28 69 6e 74 20 78 2c |s_moveby (int x,| 00070190 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a | int y);.Header:| 000701a0 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c |.<roslib.h=>rosl| 000701b0 69 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ib>..This functi| 000701c0 6f 6e 20 6d 6f 76 65 73 20 74 68 65 20 67 72 61 |on moves the gra| 000701d0 70 68 69 63 73 20 63 75 72 73 6f 72 20 66 72 6f |phics cursor fro| 000701e0 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6f |m the current po| 000701f0 73 69 74 69 6f 6e 20 72 65 6c 61 74 69 76 65 6c |sition relativel| 00070200 79 20 62 79 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d |y by {/}(x,y){/}| 00070210 2e 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |. Equivalent to | 00070220 3c 4d 4f 56 45 20 42 59 3d 3e 42 61 73 69 63 3a |<MOVE BY=>Basic:| 00070230 4d 4f 56 45 3e 20 69 6e 20 42 61 73 69 63 2e 00 |MOVE> in Basic..| 00070240 44 41 54 41 2a 01 00 00 6f 73 5f 6f 72 69 67 69 |DATA*...os_origi| 00070250 6e 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f |n.Syntax:.void o| 00070260 73 5f 6f 72 69 67 69 6e 20 28 69 6e 74 20 78 2c |s_origin (int x,| 00070270 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a | int y);.Header:| 00070280 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c |.<roslib.h=>rosl| 00070290 69 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ib>..This functi| 000702a0 6f 6e 20 6d 6f 76 65 73 20 74 68 65 20 63 75 72 |on moves the cur| 000702b0 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 6f 72 |rent graphics or| 000702c0 69 67 69 6e 20 28 69 65 20 74 68 65 20 70 6f 73 |igin (ie the pos| 000702d0 69 74 69 6f 6e 20 6f 66 20 28 30 2c 30 29 20 6f |ition of (0,0) o| 000702e0 6e 20 74 68 65 20 73 63 72 65 65 6e 29 20 74 6f |n the screen) to| 000702f0 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 20 54 68 | {/}(x,y){/}. Th| 00070300 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 61 72 |e coordinates ar| 00070310 65 20 67 69 76 65 6e 20 72 65 6c 61 74 69 76 65 |e given relative| 00070320 20 74 6f 20 74 68 65 20 73 63 72 65 65 6e 20 62 | to the screen b| 00070330 6f 74 74 6f 6d 20 6c 65 66 74 2e 20 45 71 75 69 |ottom left. Equi| 00070340 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 52 49 47 49 |valent to <ORIGI| 00070350 4e 3d 3e 42 61 73 69 63 3a 4f 52 49 47 49 4e 3e |N=>Basic:ORIGIN>| 00070360 20 69 6e 20 42 61 73 69 63 2e 00 00 44 41 54 41 | in Basic...DATA| 00070370 ee 02 00 00 6f 73 5f 70 61 6c 65 74 74 65 0a 53 |....os_palette.S| 00070380 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f 73 5f 70 |yntax:.void os_p| 00070390 61 6c 65 74 74 65 20 28 69 6e 74 20 63 2c 20 69 |alette (int c, i| 000703a0 6e 74 20 6d 2c 20 69 6e 74 20 72 2c 20 69 6e 74 |nt m, int r, int| 000703b0 20 67 2c 20 69 6e 74 20 62 29 3b 0a 48 65 61 64 | g, int b);.Head| 000703c0 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 |er:.<roslib.h=>r| 000703d0 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 66 75 6e |oslib>..This fun| 000703e0 63 74 69 6f 6e 20 72 65 64 65 66 69 6e 65 64 20 |ction redefined | 000703f0 74 68 65 20 63 6f 6c 6f 75 72 20 73 70 65 63 69 |the colour speci| 00070400 66 69 65 64 20 69 6e 20 63 20 65 69 74 68 65 72 |fied in c either| 00070410 20 74 6f 20 74 68 65 20 70 68 79 73 69 63 61 6c | to the physical| 00070420 20 63 6f 6c 6f 75 72 20 69 6e 20 2f 6d 2f 20 28 | colour in /m/ (| 00070430 69 66 20 2f 6d 2f 20 5c 3c a0 31 36 29 20 6f 72 |if /m/ \<.16) or| 00070440 20 74 6f 20 74 68 65 20 63 6f 6c 6f 75 72 20 77 | to the colour w| 00070450 68 6f 73 65 20 72 65 64 2c 20 67 72 65 65 6e 2c |hose red, green,| 00070460 20 61 6e 64 20 62 6c 75 65 20 63 6f 6d 70 6f 6e | and blue compon| 00070470 65 6e 74 73 20 61 72 65 20 67 69 76 65 6e 20 62 |ents are given b| 00070480 79 20 2f 72 2f 2c 20 2f 67 2f 2c 20 61 6e 64 20 |y /r/, /g/, and | 00070490 2f 62 2f 2e 20 2f 6d 2f 20 63 61 6e 20 62 65 20 |/b/. /m/ can be | 000704a0 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f |one of the follo| 000704b0 77 69 6e 67 3a 0a 0a 23 69 6e 64 65 6e 74 20 32 |wing:..#indent 2| 000704c0 3b 74 61 62 0a 30 2d 31 35 09 43 6f 6c 6f 75 72 |;tab.0-15.Colour| 000704d0 20 2f 63 2f 20 69 73 20 72 65 64 65 66 69 6e 65 | /c/ is redefine| 000704e0 64 20 74 6f 20 62 65 20 74 68 65 20 70 68 79 73 |d to be the phys| 000704f0 69 63 61 6c 20 63 6f 6c 6f 75 72 20 69 6e 20 2f |ical colour in /| 00070500 6d 2f 2e 0a 31 36 09 43 6f 6c 6f 75 72 20 2f 63 |m/..16.Colour /c| 00070510 2f 20 69 73 20 72 65 64 65 66 69 6e 65 64 20 74 |/ is redefined t| 00070520 6f 20 7b 2f 7d 28 72 2c 67 2c 62 29 7b 2f 7d 2e |o {/}(r,g,b){/}.| 00070530 0a 31 37 09 46 69 72 73 74 20 66 6c 61 73 68 20 |.17.First flash | 00070540 63 6f 6c 6f 75 72 20 66 6f 72 20 2f 63 2f 20 69 |colour for /c/ i| 00070550 73 20 7b 2f 7d 28 72 2c 67 2c 62 29 7b 2f 7d 2e |s {/}(r,g,b){/}.| 00070560 0a 31 38 09 53 65 63 6f 6e 64 20 66 6c 61 73 68 |.18.Second flash| 00070570 20 63 6f 6c 6f 75 72 20 66 6f 72 20 2f 63 2f 20 | colour for /c/ | 00070580 69 73 20 7b 2f 7d 28 72 2c 67 2c 62 29 7b 2f 7d |is {/}(r,g,b){/}| 00070590 2e 0a 32 34 09 42 6f 72 64 65 72 20 63 6f 6c 6f |..24.Border colo| 000705a0 75 72 20 69 73 20 7b 2f 7d 28 72 2c 67 2c 62 29 |ur is {/}(r,g,b)| 000705b0 7b 2f 7d 2e 20 2f 63 2f 20 69 73 20 69 67 6e 6f |{/}. /c/ is igno| 000705c0 72 65 64 2e 0a 32 35 09 4d 6f 75 73 65 20 63 6f |red..25.Mouse co| 000705d0 6c 6f 75 72 20 2f 63 2f 20 69 73 20 7b 2f 7d 28 |lour /c/ is {/}(| 000705e0 72 2c 67 2c 62 29 7b 2f 7d 2e 0a 23 69 6e 64 65 |r,g,b){/}..#inde| 000705f0 6e 74 0a 0a 31 32 38 20 61 64 64 65 64 20 74 6f |nt..128 added to| 00070600 20 61 6e 79 20 6f 66 20 74 68 65 20 61 62 6f 76 | any of the abov| 00070610 65 20 73 65 74 73 20 74 68 65 20 73 75 70 72 65 |e sets the supre| 00070620 6d 61 63 79 20 62 69 74 2e 0a 0a 54 68 69 73 20 |macy bit...This | 00070630 63 6f 6d 6d 61 6e 64 20 69 73 20 65 71 75 69 76 |command is equiv| 00070640 61 6c 65 6e 74 20 74 6f 20 3c 56 44 55 20 31 39 |alent to <VDU 19| 00070650 3d 3e 56 44 55 3a 31 39 3e 2e 00 00 44 41 54 41 |=>VDU:19>...DATA| 00070660 18 01 00 00 6f 73 5f 70 6c 6f 74 0a 53 79 6e 74 |....os_plot.Synt| 00070670 61 78 3a 09 76 6f 69 64 20 6f 73 5f 70 6c 6f 74 |ax:.void os_plot| 00070680 20 28 69 6e 74 20 6e 2c 20 69 6e 74 20 78 2c 20 | (int n, int x, | 00070690 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 |int y);.Header:.| 000706a0 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 |<roslib.h=>rosli| 000706b0 62 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |b>..This functio| 000706c0 6e 20 64 6f 65 73 20 6c 6f 74 73 20 6f 66 20 74 |n does lots of t| 000706d0 68 69 6e 67 73 2e 20 49 74 20 69 73 20 74 68 65 |hings. It is the| 000706e0 20 73 61 6d 65 20 61 73 20 3c 50 4c 4f 54 3d 3e | same as <PLOT=>| 000706f0 42 61 73 69 63 3a 50 4c 4f 54 3e 20 69 6e 20 42 |Basic:PLOT> in B| 00070700 61 73 69 63 2c 20 6f 72 20 74 68 65 20 53 57 49 |asic, or the SWI| 00070710 20 3c 4f 53 5f 50 6c 6f 74 3d 3e 53 57 49 3a 4f | <OS_Plot=>SWI:O| 00070720 53 5f 50 6c 6f 74 3e 2e 20 2f 6e 2f 20 69 73 20 |S_Plot>. /n/ is | 00070730 74 68 65 20 3c 70 6c 6f 74 20 74 79 70 65 3d 3e |the <plot type=>| 00070740 53 57 49 3a 6f 73 5f 70 6c 6f 74 2e 69 6e 64 65 |SWI:os_plot.inde| 00070750 78 3e 2c 20 61 6e 64 20 2f 78 2f 20 61 6e 64 20 |x>, and /x/ and | 00070760 2f 79 2f 20 61 72 65 20 63 6f 6f 72 64 69 6e 61 |/y/ are coordina| 00070770 74 65 73 2e 44 41 54 41 07 01 00 00 6f 73 5f 70 |tes.DATA....os_p| 00070780 6f 69 6e 74 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |oint.Syntax:.int| 00070790 20 6f 73 5f 70 6f 69 6e 74 20 28 69 6e 74 20 78 | os_point (int x| 000707a0 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 |, int y);.Header| 000707b0 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 |:.<roslib.h=>ros| 000707c0 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 |lib>..Returns:.T| 000707d0 68 65 20 63 6f 6c 6f 75 72 20 6f 66 20 74 68 65 |he colour of the| 000707e0 20 70 69 78 65 6c 2e 0a 0a 54 68 69 73 20 66 75 | pixel...This fu| 000707f0 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 |nction reads the| 00070800 20 6c 6f 67 69 63 61 6c 20 63 6f 6c 6f 75 72 20 | logical colour | 00070810 6f 66 20 70 69 78 65 6c 20 61 74 20 63 6f 6f 72 |of pixel at coor| 00070820 64 69 6e 61 74 65 73 20 7b 2f 7d 28 78 2c 79 29 |dinates {/}(x,y)| 00070830 7b 2f 7d 2e 20 49 66 20 74 68 65 20 63 6f 6f 72 |{/}. If the coor| 00070840 64 69 6e 61 74 65 73 20 61 72 65 20 6f 75 74 73 |dinates are outs| 00070850 69 64 65 20 74 68 65 20 67 72 61 70 68 69 63 73 |ide the graphics| 00070860 20 77 69 6e 64 6f 77 20 74 68 65 6e 20 69 74 20 | window then it | 00070870 72 65 74 75 72 6e 73 20 2d 31 2e 00 44 41 54 41 |returns -1..DATA| 00070880 d1 00 00 00 6f 73 5f 70 6f 73 0a 53 79 6e 74 61 |....os_pos.Synta| 00070890 78 3a 09 69 6e 74 20 6f 73 5f 70 6f 73 20 28 76 |x:.int os_pos (v| 000708a0 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 |oid);.Header:.<r| 000708b0 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e |oslib.h=>roslib>| 000708c0 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 |..Returns:.The c| 000708d0 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2e 0a |ursor position..| 000708e0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000708f0 65 61 64 73 20 74 68 65 20 58 20 63 6f 6f 72 64 |eads the X coord| 00070900 69 6e 61 74 65 20 6f 66 20 74 68 65 20 74 65 78 |inate of the tex| 00070910 74 20 63 75 72 73 6f 72 2c 20 66 72 6f 6d 20 74 |t cursor, from t| 00070920 68 65 20 6c 65 66 74 20 68 61 6e 64 20 65 64 67 |he left hand edg| 00070930 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 |e of the current| 00070940 20 74 65 78 74 20 77 69 6e 64 6f 77 2e 00 00 00 | text window....| 00070950 44 41 54 41 bc 01 00 00 6f 73 5f 72 65 61 64 5f |DATA....os_read_| 00070960 76 61 72 5f 76 61 6c 0a 53 79 6e 74 61 78 3a 09 |var_val.Syntax:.| 00070970 76 6f 69 64 20 6f 73 5f 72 65 61 64 5f 76 61 72 |void os_read_var| 00070980 5f 76 61 6c 20 28 63 68 61 72 20 2a 6e 61 6d 65 |_val (char *name| 00070990 2c 20 63 68 61 72 20 2a 62 75 66 2c 20 69 6e 74 |, char *buf, int| 000709a0 20 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c | len);.Header:.<| 000709b0 6f 73 2e 68 3d 3e 6f 73 3e 0a 0a 54 68 69 73 20 |os.h=>os>..This | 000709c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 74 68 |function gets th| 000709d0 65 20 76 61 6c 75 65 20 6f 66 20 73 79 73 74 65 |e value of syste| 000709e0 6d 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 |m variable whose| 000709f0 20 6e 61 6d 65 20 69 73 20 73 70 65 63 69 66 69 | name is specifi| 00070a00 65 64 20 61 6e 64 20 70 6c 61 63 65 73 20 69 74 |ed and places it| 00070a10 20 69 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 | in the characte| 00070a20 72 20 61 72 72 61 79 20 70 6f 69 6e 74 65 64 20 |r array pointed | 00070a30 74 6f 20 62 79 20 2f 62 75 66 2f 2e 20 54 68 65 |to by /buf/. The| 00070a40 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 61 | length of the a| 00070a50 72 72 61 79 20 69 73 20 67 69 76 65 6e 20 62 79 |rray is given by| 00070a60 20 2f 6c 65 6e 2f 2e 20 57 68 65 6e 20 72 65 61 | /len/. When rea| 00070a70 64 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c |ding the variabl| 00070a80 65 73 20 69 74 20 63 6f 6e 76 65 72 74 73 20 6e |es it converts n| 00070a90 75 6d 62 65 72 73 20 74 6f 20 73 74 72 69 6e 67 |umbers to string| 00070aa0 73 20 61 6e 64 20 65 78 70 61 6e 64 73 20 6d 61 |s and expands ma| 00070ab0 63 72 6f 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |cros...This func| 00070ac0 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 |tion is equivale| 00070ad0 6e 74 20 74 6f 20 74 68 65 20 53 57 49 20 3c 4f |nt to the SWI <O| 00070ae0 53 5f 52 65 61 64 56 61 72 56 61 6c 3d 3e 53 57 |S_ReadVarVal=>SW| 00070af0 49 3a 4f 53 5f 52 65 61 64 56 61 72 56 61 6c 3e |I:OS_ReadVarVal>| 00070b00 2c 20 77 69 74 68 20 52 34 3d 33 2e 44 41 54 41 |, with R4=3.DATA| 00070b10 32 01 00 00 4f 53 5f 52 65 61 64 56 61 72 56 61 |2...OS_ReadVarVa| 00070b20 6c 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e |l.Syntax:.<BOOL>| 00070b30 20 4f 53 5f 52 65 61 64 56 61 72 56 61 6c 20 28 | OS_ReadVarVal (| 00070b40 63 68 61 72 20 2a 76 61 72 2c 20 63 68 61 72 20 |char *var, char | 00070b50 2a 62 75 66 2c 20 69 6e 74 20 62 75 66 73 69 7a |*buf, int bufsiz| 00070b60 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 00070b70 6b 4c 69 62 3a 4b 65 72 6e 65 6c 53 57 49 73 2e |kLib:KernelSWIs.| 00070b80 68 3d 3e 4b 65 72 6e 65 6c 53 57 49 73 3e 0a 0a |h=>KernelSWIs>..| 00070b90 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 00070ba0 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a |if successful...| 00070bb0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 00070bc0 61 64 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 |ads the value of| 00070bd0 20 74 68 65 20 73 79 73 74 65 6d 20 76 61 72 69 | the system vari| 00070be0 61 62 6c 65 20 77 68 6f 73 65 20 6e 61 6d 65 20 |able whose name | 00070bf0 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 76 61 72 |is given in /var| 00070c00 2f 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 |/ and returns it| 00070c10 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 2f | in the buffer /| 00070c20 62 75 66 2f 2c 20 77 68 6f 73 65 20 73 69 7a 65 |buf/, whose size| 00070c30 20 69 73 20 2f 62 75 66 73 69 7a 65 2f 2e 00 00 | is /bufsize/...| 00070c40 44 41 54 41 39 01 00 00 6f 73 5f 72 65 63 74 61 |DATA9...os_recta| 00070c50 6e 67 6c 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |ngle.Syntax:.voi| 00070c60 64 20 6f 73 5f 72 65 63 74 61 6e 67 6c 65 20 28 |d os_rectangle (| 00070c70 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e |int x, int y, in| 00070c80 74 20 77 2c 20 69 6e 74 20 68 29 3b 0a 48 65 61 |t w, int h);.Hea| 00070c90 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e |der:.<roslib.h=>| 00070ca0 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 66 75 |roslib>..This fu| 00070cb0 6e 63 74 69 6f 6e 20 64 72 61 77 73 20 61 20 72 |nction draws a r| 00070cc0 65 63 74 61 6e 67 6c 65 20 6f 6e 20 74 68 65 20 |ectangle on the | 00070cd0 73 63 72 65 65 6e 2c 20 77 69 74 68 20 74 68 65 |screen, with the| 00070ce0 20 62 6f 74 74 6f 6d 20 6c 65 66 74 20 61 74 20 | bottom left at | 00070cf0 70 6f 73 69 74 69 6f 6e 20 7b 2f 7d 28 78 2c 79 |position {/}(x,y| 00070d00 29 7b 2f 7d 20 61 6e 64 20 77 69 64 74 68 20 61 |){/} and width a| 00070d10 6e 64 20 68 65 69 67 68 74 20 61 73 20 67 69 76 |nd height as giv| 00070d20 65 6e 20 62 79 20 2f 77 2f 20 61 6e 64 20 2f 68 |en by /w/ and /h| 00070d30 2f 2e 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f |/. Equivalent to| 00070d40 20 7b 66 43 6f 64 65 7d 3c 52 45 43 54 41 4e 47 | {fCode}<RECTANG| 00070d50 4c 45 3d 3e 42 61 73 69 63 3a 52 45 43 54 41 4e |LE=>Basic:RECTAN| 00070d60 47 4c 45 3e 20 78 2c 79 2c 77 2c 68 7b 66 7d 20 |GLE> x,y,w,h{f} | 00070d70 69 6e 20 42 61 73 69 63 2e 00 00 00 44 41 54 41 |in Basic....DATA| 00070d80 47 01 00 00 6f 73 5f 72 65 63 74 61 6e 67 6c 65 |G...os_rectangle| 00070d90 66 69 6c 6c 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |fill.Syntax:.voi| 00070da0 64 20 6f 73 5f 72 65 63 74 61 6e 67 6c 65 66 69 |d os_rectanglefi| 00070db0 6c 6c 20 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 |ll (int x, int y| 00070dc0 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 29 3b |, int w, int h);| 00070dd0 0a 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 |.Header:.<roslib| 00070de0 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 |.h=>roslib>..Thi| 00070df0 73 20 66 75 6e 63 74 69 6f 6e 20 64 72 61 77 73 |s function draws| 00070e00 20 61 20 66 69 6c 6c 65 64 20 72 65 63 74 61 6e | a filled rectan| 00070e10 67 6c 65 20 6f 6e 20 74 68 65 20 73 63 72 65 65 |gle on the scree| 00070e20 6e 2c 20 77 69 74 68 20 62 6f 74 74 6f 6d 20 6c |n, with bottom l| 00070e30 65 66 74 20 61 74 20 7b 2f 7d 28 78 2c 79 29 7b |eft at {/}(x,y){| 00070e40 2f 7d 20 61 6e 64 20 77 69 64 74 68 20 61 6e 64 |/} and width and| 00070e50 20 68 65 69 67 68 74 20 73 70 65 63 69 66 69 65 | height specifie| 00070e60 64 20 62 79 20 2f 77 2f 20 61 6e 64 20 2f 68 2f |d by /w/ and /h/| 00070e70 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 |. It is equivale| 00070e80 6e 74 20 74 6f 20 7b 66 43 6f 64 65 7d 3c 52 45 |nt to {fCode}<RE| 00070e90 43 54 41 4e 47 4c 45 20 46 49 4c 4c 3d 3e 42 61 |CTANGLE FILL=>Ba| 00070ea0 73 69 63 3a 52 45 43 54 41 4e 47 4c 45 3e 20 78 |sic:RECTANGLE> x| 00070eb0 2c 79 2c 77 2c 68 7b 66 7d 20 69 6e 20 42 61 73 |,y,w,h{f} in Bas| 00070ec0 69 63 2e 00 44 41 54 41 06 01 00 00 6f 73 5f 72 |ic..DATA....os_r| 00070ed0 65 67 73 65 74 0a 54 68 65 20 74 79 70 65 20 6f |egset.The type o| 00070ee0 73 5f 72 65 67 73 65 74 20 69 73 20 64 65 66 69 |s_regset is defi| 00070ef0 6e 65 64 20 69 6e 20 3c 72 6f 73 6c 69 62 2e 68 |ned in <roslib.h| 00070f00 3d 3e 72 6f 73 6c 69 62 3e 20 28 45 61 73 79 20 |=>roslib> (Easy | 00070f10 43 29 20 61 6e 64 20 3c 6f 73 2e 68 3d 3e 6f 73 |C) and <os.h=>os| 00070f20 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 20 61 73 |> (Desktop C) as| 00070f30 20 61 6e 20 6f 62 6a 65 63 74 20 63 61 70 61 62 | an object capab| 00070f40 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 74 68 |le of holding th| 00070f50 65 20 72 65 67 69 73 74 65 72 73 20 52 30 2d 52 |e registers R0-R| 00070f60 39 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 63 |9 so that they c| 00070f70 61 6e 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 |an be passed to | 00070f80 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 |the operating sy| 00070f90 73 74 65 6d 2e 20 49 74 20 69 73 20 64 65 66 69 |stem. It is defi| 00070fa0 6e 65 64 20 61 73 20 74 68 65 20 73 74 72 75 63 |ned as the struc| 00070fb0 74 75 72 65 3a 0a 0a 5c 7b 0a 20 20 20 20 69 6e |ture:..\{. in| 00070fc0 74 20 72 5b 31 30 5d 3b 0a 7d 00 00 44 41 54 41 |t r[10];.}..DATA| 00070fd0 65 01 00 00 6f 73 5f 72 6e 64 0a 53 79 6e 74 61 |e...os_rnd.Synta| 00070fe0 78 3a 09 75 6e 73 69 67 6e 65 64 20 6f 73 5f 72 |x:.unsigned os_r| 00070ff0 6e 64 20 28 69 6e 74 20 6e 29 3b 0a 48 65 61 64 |nd (int n);.Head| 00071000 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 |er:.<roslib.h=>r| 00071010 6f 73 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a |oslib>..Returns:| 00071020 09 41 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 |.A random number| 00071030 2c 20 6f 72 20 30 20 69 66 20 2f 6e 2f 20 69 73 |, or 0 if /n/ is| 00071040 20 6e 65 67 61 74 69 76 65 2e 0a 0a 54 68 69 73 | negative...This| 00071050 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 | function genera| 00071060 74 65 73 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 |tes random numbe| 00071070 72 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65 20 |rs in the range | 00071080 30 20 74 6f 20 2f 6e 2f 20 2d a0 31 2e 20 49 66 |0 to /n/ -.1. If| 00071090 20 2f 6e 2f 20 69 73 20 6e 65 67 61 74 69 76 65 | /n/ is negative| 000710a0 20 74 68 65 6e 20 69 74 20 72 65 73 65 65 64 73 | then it reseeds| 000710b0 20 74 68 65 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 | the random numb| 000710c0 65 72 20 67 65 6e 65 72 61 74 6f 72 2e 20 41 66 |er generator. Af| 000710d0 74 65 72 20 72 65 73 65 65 64 69 6e 67 20 77 69 |ter reseeding wi| 000710e0 74 68 20 74 68 65 20 73 61 6d 65 20 6e 75 6d 62 |th the same numb| 000710f0 65 72 2c 20 74 68 65 20 73 61 6d 65 20 73 65 71 |er, the same seq| 00071100 75 65 6e 63 65 20 6f 66 20 72 61 6e 64 6f 6d 20 |uence of random | 00071110 6e 75 6d 62 65 72 73 20 77 69 6c 6c 20 61 6c 77 |numbers will alw| 00071120 61 79 73 20 62 65 20 67 65 6e 65 72 61 74 65 64 |ays be generated| 00071130 2e 00 00 00 44 41 54 41 e8 02 00 00 6f 73 5f 73 |....DATA....os_s| 00071140 6f 75 6e 64 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |ound.Syntax:.<os| 00071150 5f 65 72 72 6f 72 3e 20 2a 6f 73 5f 73 6f 75 6e |_error> *os_soun| 00071160 64 20 28 69 6e 74 20 63 2c 20 69 6e 74 20 61 2c |d (int c, int a,| 00071170 20 69 6e 74 20 70 2c 20 69 6e 74 20 64 29 3b 0a | int p, int d);.| 00071180 48 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e |Header:.<roslib.| 00071190 68 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 52 65 74 75 |h=>roslib>..Retu| 000711a0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000711b0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000711c0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000711d0 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 |function generat| 000711e0 65 73 20 61 20 73 6f 75 6e 64 20 77 69 74 68 20 |es a sound with | 000711f0 63 68 61 6e 6e 65 6c 2c 20 61 6d 70 6c 69 74 75 |channel, amplitu| 00071200 64 65 2c 20 70 69 74 63 68 20 61 6e 64 20 64 75 |de, pitch and du| 00071210 72 61 74 69 6f 6e 20 73 65 74 20 62 79 20 2f 63 |ration set by /c| 00071220 2f 2c 20 2f 61 2f 2c 20 2f 70 2f 20 61 6e 64 20 |/, /a/, /p/ and | 00071230 2f 64 2f 20 72 65 73 70 65 63 74 69 76 65 6c 79 |/d/ respectively| 00071240 2e 0a 0a 41 6d 70 6c 69 74 75 64 65 20 6d 61 79 |...Amplitude may| 00071250 20 62 65 20 65 69 74 68 65 72 20 30 2d 31 35 20 | be either 0-15 | 00071260 66 6f 72 20 6c 69 6e 65 61 72 20 63 6f 6e 74 72 |for linear contr| 00071270 6f 6c 2c 20 6f 72 20 30 78 31 30 30 20 74 6f 20 |ol, or 0x100 to | 00071280 30 78 31 37 46 20 66 6f 72 20 6c 6f 67 61 72 69 |0x17F for logari| 00071290 74 68 6d 69 63 20 63 6f 6e 74 72 6f 6c 20 69 6e |thmic control in| 000712a0 20 77 68 69 63 68 20 63 61 73 65 20 62 69 74 20 | which case bit | 000712b0 37 20 73 65 74 20 6d 65 61 6e 73 20 73 6d 6f 6f |7 set means smoo| 000712c0 74 68 20 70 69 74 63 68 20 63 68 61 6e 67 65 73 |th pitch changes| 000712d0 2e 20 49 6e 20 74 68 65 20 6c 6f 67 61 72 69 74 |. In the logarit| 000712e0 68 6d 69 63 20 73 63 61 6c 65 20 61 20 63 68 61 |hmic scale a cha| 000712f0 6e 67 65 20 6f 66 20 30 78 31 30 20 6d 65 61 6e |nge of 0x10 mean| 00071300 73 20 61 20 64 6f 75 62 6c 69 6e 67 20 6f 72 20 |s a doubling or | 00071310 68 61 6c 76 69 6e 67 20 6f 66 20 76 6f 6c 75 6d |halving of volum| 00071320 65 2e 0a 0a 3c 50 69 74 63 68 3d 3e 73 6f 75 6e |e...<Pitch=>soun| 00071330 64 5f 70 69 74 63 68 5f 3e 20 6d 61 79 20 62 65 |d_pitch_> may be| 00071340 20 65 69 74 68 65 72 20 30 2d 32 35 35 20 69 6e | either 0-255 in| 00071350 20 71 75 61 72 74 65 72 2d 73 65 6d 69 74 6f 6e | quarter-semiton| 00071360 65 20 73 74 65 70 73 2c 20 6f 72 20 30 78 31 30 |e steps, or 0x10| 00071370 30 20 74 6f 20 30 78 37 46 46 20 66 6f 72 20 66 |0 to 0x7FF for f| 00071380 69 6e 65 20 63 6f 6e 74 72 6f 6c 20 28 34 30 39 |ine control (409| 00071390 36 20 73 74 65 70 73 20 70 65 72 20 6f 63 74 61 |6 steps per octa| 000713a0 76 65 21 29 20 69 6e 20 77 68 69 63 68 20 63 61 |ve!) in which ca| 000713b0 73 65 20 62 69 74 73 20 30 2d 31 31 20 72 65 70 |se bits 0-11 rep| 000713c0 72 65 73 65 6e 74 20 74 68 65 20 6e 6f 74 65 20 |resent the note | 000713d0 61 6e 64 20 62 69 74 73 20 31 32 2d 31 34 20 72 |and bits 12-14 r| 000713e0 65 70 72 65 73 65 6e 74 20 74 68 65 20 6f 63 74 |epresent the oct| 000713f0 61 76 65 2e 0a 0a 44 75 72 61 74 69 6f 6e 20 69 |ave...Duration i| 00071400 73 20 69 6e 20 74 77 65 6e 74 69 65 74 68 73 20 |s in twentieths | 00071410 6f 66 20 61 20 73 65 63 6f 6e 64 2e 44 41 54 41 |of a second.DATA| 00071420 09 02 00 00 6f 73 5f 73 77 69 0a 53 79 6e 74 61 |....os_swi.Synta| 00071430 78 3a 09 76 6f 69 64 20 6f 73 5f 73 77 69 20 28 |x:.void os_swi (| 00071440 69 6e 74 20 6e 2c 20 3c 6f 73 5f 72 65 67 73 65 |int n, <os_regse| 00071450 74 3e 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a 09 |t> *r);.Header:.| 00071460 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 |<roslib.h=>rosli| 00071470 62 3e 09 28 45 61 73 79 20 43 29 0a 09 3c 6f 73 |b>.(Easy C)..<os| 00071480 2e 68 3d 3e 6f 73 3e 09 28 44 65 73 6b 74 6f 70 |.h=>os>.(Desktop| 00071490 20 43 29 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 | C)..This functi| 000714a0 6f 6e 20 63 61 6c 6c 73 20 61 20 3c 53 57 49 3d |on calls a <SWI=| 000714b0 3e 53 57 49 3a 21 52 6f 6f 74 3e 2c 20 77 68 6f |>SWI:!Root>, who| 000714c0 73 65 20 6e 75 6d 62 65 72 20 69 73 20 67 69 76 |se number is giv| 000714d0 65 6e 20 69 6e 20 2f 6e 2f 2e 20 54 68 65 20 72 |en in /n/. The r| 000714e0 65 67 69 73 74 65 72 73 20 52 30 2d 52 39 20 61 |egisters R0-R9 a| 000714f0 72 65 20 73 65 74 20 74 6f 20 61 6e 64 20 72 65 |re set to and re| 00071500 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 76 61 |turned in the va| 00071510 6c 75 65 73 20 69 6e 20 2f 72 2f 2e 0a 0a 49 66 |lues in /r/...If| 00071520 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 | an error occurs| 00071530 20 69 74 20 69 73 20 72 65 70 6f 72 74 65 64 20 | it is reported | 00071540 62 79 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 |by the operating| 00071550 20 73 79 73 74 65 6d 20 61 6e 64 20 79 6f 75 72 | system and your| 00071560 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 68 61 | program will ha| 00071570 6c 74 20 65 78 65 63 75 74 69 6f 6e 2e 0a 0a 41 |lt execution...A| 00071580 20 6e 75 6d 62 65 72 20 6f 66 20 6d 61 63 72 6f | number of macro| 00071590 73 20 61 6c 6c 6f 77 69 6e 67 20 74 68 65 20 53 |s allowing the S| 000715a0 57 49 20 6e 75 6d 62 65 72 73 20 74 6f 20 62 65 |WI numbers to be| 000715b0 20 6d 61 64 65 20 6d 6f 72 65 20 72 65 61 64 61 | made more reada| 000715c0 62 6c 65 20 74 6f 20 68 75 6d 61 6e 73 20 61 72 |ble to humans ar| 000715d0 65 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 77 |e defined in <sw| 000715e0 69 73 2e 68 3d 3e 73 77 69 73 3e 20 28 45 61 73 |is.h=>swis> (Eas| 000715f0 79 20 43 29 2e 0a 0a 44 65 73 6b 74 6f 70 20 43 |y C)...Desktop C| 00071600 20 70 72 6f 76 69 64 65 73 20 3c 6f 74 68 65 72 | provides <other| 00071610 20 53 57 49 20 63 61 6c 6c 73 3d 3e 6f 73 5f 73 | SWI calls=>os_s| 00071620 77 69 5f 3e 2e 00 00 00 44 41 54 41 9c 02 00 00 |wi_>....DATA....| 00071630 44 65 73 6b 74 6f 70 20 43 20 6f 73 5f 73 77 69 |Desktop C os_swi| 00071640 28 29 20 43 61 6c 6c 73 0a 54 68 65 73 65 20 66 |() Calls.These f| 00071650 75 6e 63 74 69 6f 6e 73 20 61 6c 6c 20 70 65 72 |unctions all per| 00071660 66 6f 72 6d 20 53 57 49 73 2e 20 54 68 65 20 66 |form SWIs. The f| 00071670 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 6f 66 20 |unctions are of | 00071680 74 68 65 20 66 6f 72 6d 3a 0a 0a 3c 6f 73 5f 65 |the form:..<os_e| 00071690 72 72 6f 72 3e 20 2a 6f 73 5f 73 77 69 4e 5b 72 |rror> *os_swiN[r| 000716a0 5d 28 69 6e 74 20 6e 2c 20 5b 5c 7b 69 6e 74 7d |](int n, [\{int}| 000716b0 5d 2c 20 5b 5c 7b 69 6e 74 20 2a 7d 5d 29 3b 0a |], [\{int *}]);.| 000716c0 0a 57 68 65 72 65 20 2f 4e 2f 20 69 73 20 74 68 |.Where /N/ is th| 000716d0 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 67 69 |e number of regi| 000716e0 73 74 65 72 73 20 28 30 2d 34 2c 36 29 20 74 6f |sters (0-4,6) to| 000716f0 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 | be passed to th| 00071700 65 20 63 61 6c 6c 20 28 61 6e 64 20 72 65 74 75 |e call (and retu| 00071710 72 6e 65 64 29 2e 20 49 66 20 2f 72 2f 20 69 73 |rned). If /r/ is| 00071720 20 70 72 65 73 65 6e 74 20 74 68 65 6e 20 72 65 | present then re| 00071730 67 69 73 74 65 72 73 20 61 72 65 20 72 65 74 75 |gisters are retu| 00071740 72 6e 65 64 20 61 73 20 77 65 6c 6c 2e 0a 0a 54 |rned as well...T| 00071750 68 65 20 72 65 67 69 73 74 65 72 73 20 74 6f 20 |he registers to | 00071760 62 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 |be passed to the| 00071770 20 53 57 49 20 61 72 65 20 67 69 76 65 6e 20 61 | SWI are given a| 00071780 73 20 69 6e 74 65 67 65 72 20 61 72 67 75 6d 65 |s integer argume| 00071790 6e 74 73 2e 20 54 68 65 20 72 65 67 69 73 74 65 |nts. The registe| 000717a0 72 73 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 |rs to be passed | 000717b0 62 61 63 6b 20 61 72 65 20 67 69 76 65 6e 20 61 |back are given a| 000717c0 73 20 69 6e 74 65 67 65 72 20 70 6f 69 6e 74 65 |s integer pointe| 000717d0 72 73 2e 0a 0a 49 66 20 74 68 65 20 53 57 49 20 |rs...If the SWI | 000717e0 6e 75 6d 62 65 72 20 68 61 73 20 69 74 73 20 58 |number has its X| 000717f0 20 62 69 74 20 73 65 74 2c 20 74 68 65 6e 20 74 | bit set, then t| 00071800 68 65 20 58 20 66 6f 72 6d 20 6f 66 20 74 68 65 |he X form of the| 00071810 20 53 57 49 20 77 69 6c 6c 20 62 65 20 63 61 6c | SWI will be cal| 00071820 6c 65 64 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 |led and a pointe| 00071830 72 20 74 6f 20 61 6e 20 65 72 72 6f 72 20 72 65 |r to an error re| 00071840 74 75 72 6e 65 64 20 69 66 20 74 68 65 72 65 20 |turned if there | 00071850 69 73 20 6f 6e 65 2e 20 4f 74 68 65 72 77 69 73 |is one. Otherwis| 00071860 65 2c 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f |e, the normal fo| 00071870 72 6d 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 |rm will be calle| 00071880 64 20 61 6e 64 20 74 68 65 20 66 75 6e 63 74 69 |d and the functi| 00071890 6f 6e 20 72 65 74 75 72 6e 73 20 3c 4e 55 4c 4c |on returns <NULL| 000718a0 3e 2e 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c |>. You should al| 000718b0 77 61 79 73 20 75 73 65 20 74 68 65 20 58 20 66 |ways use the X f| 000718c0 6f 72 6d 2e 44 41 54 41 e6 01 00 00 6f 73 5f 73 |orm.DATA....os_s| 000718d0 77 69 78 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |wix.Syntax:.<os_| 000718e0 65 72 72 6f 72 3e 20 2a 6f 73 5f 73 77 69 78 20 |error> *os_swix | 000718f0 28 69 6e 74 20 6e 2c 20 3c 6f 73 5f 72 65 67 73 |(int n, <os_regs| 00071900 65 74 3e 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a |et> *r);.Header:| 00071910 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c |.<roslib.h=>rosl| 00071920 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |ib>..Returns:.Po| 00071930 69 6e 74 65 72 20 74 6f 20 61 6e 20 65 72 72 6f |inter to an erro| 00071940 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 00071950 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 00071960 74 69 6f 6e 20 63 61 6c 6c 73 20 61 20 3c 53 57 |tion calls a <SW| 00071970 49 3d 3e 53 57 49 3a 21 52 6f 6f 74 3e 2c 20 77 |I=>SWI:!Root>, w| 00071980 68 6f 73 65 20 6e 75 6d 62 65 72 20 69 73 20 67 |hose number is g| 00071990 69 76 65 6e 20 69 6e 20 2f 6e 2f 2e 20 54 68 65 |iven in /n/. The| 000719a0 20 72 65 67 69 73 74 65 72 73 20 52 30 2d 52 39 | registers R0-R9| 000719b0 20 61 72 65 20 73 65 74 20 74 6f 20 61 6e 64 20 | are set to and | 000719c0 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 |returned in the | 000719d0 76 61 6c 75 65 73 20 69 6e 20 2f 72 2f 2e 0a 0a |values in /r/...| 000719e0 49 66 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 |If an error occu| 000719f0 72 73 20 69 74 20 69 73 20 72 65 74 75 72 6e 65 |rs it is returne| 00071a00 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f |d by the functio| 00071a10 6e 20 61 6e 64 20 6e 6f 74 20 72 65 70 6f 72 74 |n and not report| 00071a20 65 64 20 62 79 20 74 68 65 20 6f 70 65 72 61 74 |ed by the operat| 00071a30 69 6e 67 20 73 79 73 74 65 6d 2e 0a 0a 41 20 6e |ing system...A n| 00071a40 75 6d 62 65 72 20 6f 66 20 6d 61 63 72 6f 73 20 |umber of macros | 00071a50 61 6c 6c 6f 77 69 6e 67 20 74 68 65 20 53 57 49 |allowing the SWI| 00071a60 20 6e 75 6d 62 65 72 73 20 74 6f 20 62 65 20 6d | numbers to be m| 00071a70 61 64 65 20 6d 6f 72 65 20 72 65 61 64 61 62 6c |ade more readabl| 00071a80 65 20 74 6f 20 68 75 6d 61 6e 73 20 61 72 65 20 |e to humans are | 00071a90 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 77 69 73 |defined in <swis| 00071aa0 2e 68 3d 3e 73 77 69 73 3e 2e 00 00 44 41 54 41 |.h=>swis>...DATA| 00071ab0 11 01 00 00 6f 73 5f 74 61 62 0a 53 79 6e 74 61 |....os_tab.Synta| 00071ac0 78 3a 09 76 6f 69 64 20 6f 73 5f 74 61 62 20 28 |x:.void os_tab (| 00071ad0 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 |int x, int y);.H| 00071ae0 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 |eader:.<roslib.h| 00071af0 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 |=>roslib>..This | 00071b00 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 73 20 74 |function moves t| 00071b10 68 65 20 74 65 78 74 20 63 75 72 73 6f 72 20 74 |he text cursor t| 00071b20 6f 20 70 6f 73 69 74 69 6f 6e 20 7b 2f 7d 28 78 |o position {/}(x| 00071b30 2c 79 29 7b 2f 7d 2e 20 49 66 20 2f 78 2f 20 6f |,y){/}. If /x/ o| 00071b40 72 20 2f 79 2f 20 61 72 65 20 6f 75 74 73 69 64 |r /y/ are outsid| 00071b50 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 65 |e the current te| 00071b60 78 74 20 77 69 6e 64 6f 77 2c 20 74 68 65 20 66 |xt window, the f| 00071b70 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 |unction does not| 00071b80 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 | move the cursor| 00071b90 2e 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 |. This is equiva| 00071ba0 6c 65 6e 74 20 74 6f 20 3c 56 44 55 20 33 31 2c |lent to <VDU 31,| 00071bb0 78 2c 79 3d 3e 56 44 55 3a 33 31 3e 2e 00 00 00 |x,y=>VDU:31>....| 00071bc0 44 41 54 41 3c 02 00 00 6f 73 5f 74 69 6e 74 0a |DATA<...os_tint.| 00071bd0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f 73 5f |Syntax:.void os_| 00071be0 74 69 6e 74 20 28 69 6e 74 20 63 2c 20 69 6e 74 |tint (int c, int| 00071bf0 20 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f | t);.Header:.<ro| 00071c00 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a |slib.h=>roslib>.| 00071c10 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 00071c20 65 74 73 20 74 68 65 20 74 69 6e 74 20 28 69 65 |ets the tint (ie| 00071c30 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 77 | the amount of w| 00071c40 68 69 74 65 20 61 64 64 65 64 29 20 66 6f 72 20 |hite added) for | 00071c50 61 20 63 6f 6c 6f 75 72 20 28 32 35 36 20 63 6f |a colour (256 co| 00071c60 6c 6f 75 72 20 6d 6f 64 65 73 20 6f 6e 6c 79 29 |lour modes only)| 00071c70 2e 20 54 68 65 20 63 6f 6c 6f 75 72 20 66 6f 72 |. The colour for| 00071c80 20 77 68 69 63 68 20 74 68 65 20 74 69 6e 74 20 | which the tint | 00071c90 69 73 20 73 65 74 20 69 73 20 73 70 65 63 69 66 |is set is specif| 00071ca0 69 65 64 20 62 79 20 63 2c 20 77 68 69 63 68 20 |ied by c, which | 00071cb0 6d 61 79 20 62 65 20 61 6e 79 20 6f 66 20 74 68 |may be any of th| 00071cc0 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 23 69 |e following:..#i| 00071cd0 6e 64 65 6e 74 20 34 3b 74 61 62 0a 30 09 54 65 |ndent 4;tab.0.Te| 00071ce0 78 74 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f |xt foreground co| 00071cf0 6c 6f 75 72 0a 31 09 54 65 78 74 20 62 61 63 6b |lour.1.Text back| 00071d00 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 0a 32 09 |ground colour.2.| 00071d10 47 72 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f |Graphics foregro| 00071d20 75 6e 64 20 63 6f 6c 6f 75 72 0a 33 09 47 72 61 |und colour.3.Gra| 00071d30 70 68 69 63 73 20 62 61 63 6b 67 72 6f 75 6e 64 |phics background| 00071d40 20 63 6f 6c 6f 75 72 2e 0a 23 69 6e 64 65 6e 74 | colour..#indent| 00071d50 0a 0a 54 68 65 20 74 69 6e 74 2c 20 67 69 76 65 |..The tint, give| 00071d60 6e 20 69 6e 20 2f 74 2f 2c 20 73 68 6f 75 6c 64 |n in /t/, should| 00071d70 20 62 65 20 65 69 74 68 65 72 20 30 78 30 30 2c | be either 0x00,| 00071d80 20 30 78 34 30 2c 20 30 78 38 30 20 6f 72 20 30 | 0x40, 0x80 or 0| 00071d90 78 43 30 2e 20 54 68 65 20 68 69 67 68 65 72 20 |xC0. The higher | 00071da0 69 74 20 69 73 2c 20 74 68 65 20 62 72 69 67 68 |it is, the brigh| 00071db0 74 65 72 20 74 68 65 20 63 6f 6c 6f 75 72 20 69 |ter the colour i| 00071dc0 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |s...This functio| 00071dd0 6e 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |n is equivalent | 00071de0 74 6f 20 3c 56 44 55 20 32 33 2c 31 37 3d 3e 56 |to <VDU 23,17=>V| 00071df0 44 55 3a 32 33 2c 31 37 2c 30 3e 2e 44 41 54 41 |DU:23,17,0>.DATA| 00071e00 0e 01 00 00 6f 73 5f 76 64 75 0a 53 79 6e 74 61 |....os_vdu.Synta| 00071e10 78 3a 09 76 6f 69 64 20 6f 73 5f 76 64 75 20 28 |x:.void os_vdu (| 00071e20 69 6e 74 20 3c 63 3d 3e 56 44 55 3a 21 52 6f 6f |int <c=>VDU:!Roo| 00071e30 74 3e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 6f |t>);.Header:.<ro| 00071e40 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c 69 62 3e 0a |slib.h=>roslib>.| 00071e50 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 00071e60 65 6e 64 73 20 74 68 65 20 73 69 6e 67 6c 65 20 |ends the single | 00071e70 63 68 61 72 61 63 74 65 72 20 73 70 65 63 69 66 |character specif| 00071e80 69 65 64 20 69 6e 20 2f 63 2f 20 74 6f 20 74 68 |ied in /c/ to th| 00071e90 65 20 56 44 55 20 64 72 69 76 65 72 73 20 28 61 |e VDU drivers (a| 00071ea0 73 20 69 66 20 3c 4f 53 5f 57 72 69 74 65 43 3d |s if <OS_WriteC=| 00071eb0 3e 53 57 49 3a 4f 53 5f 57 72 69 74 65 43 3e 20 |>SWI:OS_WriteC> | 00071ec0 68 61 64 20 62 65 65 6e 20 63 61 6c 6c 65 64 29 |had been called)| 00071ed0 2e 20 2f 63 2f 20 69 73 20 61 20 73 69 6e 67 6c |. /c/ is a singl| 00071ee0 65 20 62 79 74 65 2c 20 61 6c 74 68 6f 75 67 68 |e byte, although| 00071ef0 20 69 74 20 69 73 20 73 74 6f 72 65 64 20 69 6e | it is stored in| 00071f00 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 44 41 54 41 | an /int/...DATA| 00071f10 f3 00 00 00 6f 73 5f 76 64 75 71 0a 53 79 6e 74 |....os_vduq.Synt| 00071f20 61 78 3a 09 76 6f 69 64 20 6f 73 5f 76 64 75 71 |ax:.void os_vduq| 00071f30 20 28 69 6e 74 20 63 2c 20 2e 2e 2e 29 3b 0a 48 | (int c, ...);.H| 00071f40 65 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 |eader:.<roslib.h| 00071f50 3d 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 |=>roslib>..This | 00071f60 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 73 20 61 |function sends a| 00071f70 20 73 65 71 75 65 6e 63 65 20 6f 66 20 62 79 74 | sequence of byt| 00071f80 65 73 20 74 6f 20 74 68 65 20 56 44 55 20 64 72 |es to the VDU dr| 00071f90 69 76 65 72 73 2e 20 45 61 63 68 20 62 79 74 65 |ivers. Each byte| 00071fa0 20 74 61 6b 65 73 20 6f 6e 65 20 61 72 67 75 6d | takes one argum| 00071fb0 65 6e 74 2e 20 49 74 20 69 73 20 69 64 65 6e 74 |ent. It is ident| 00071fc0 69 63 61 6c 20 69 6e 20 6f 70 65 72 61 74 69 6f |ical in operatio| 00071fd0 6e 20 74 6f 20 3c 6f 73 5f 76 64 75 3e 2c 20 62 |n to <os_vdu>, b| 00071fe0 75 74 20 63 61 6e 20 73 65 6e 64 20 6d 6f 72 65 |ut can send more| 00071ff0 20 74 68 61 6e 20 6f 6e 65 20 62 79 74 65 2e 00 | than one byte..| 00072000 44 41 54 41 2d 01 00 00 6f 73 5f 76 64 75 77 0a |DATA-...os_vduw.| 00072010 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 6f 73 5f |Syntax:.void os_| 00072020 76 64 75 77 20 28 69 6e 74 20 6e 29 3b 0a 48 65 |vduw (int n);.He| 00072030 61 64 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d |ader:.<roslib.h=| 00072040 3e 72 6f 73 6c 69 62 3e 0a 0a 54 68 69 73 20 66 |>roslib>..This f| 00072050 75 6e 63 74 69 6f 6e 20 73 65 6e 64 20 74 68 65 |unction send the| 00072060 20 31 36 2d 62 69 74 20 76 61 6c 75 65 20 69 6e | 16-bit value in| 00072070 20 2f 6e 2f 20 74 6f 20 74 68 65 20 56 44 55 20 | /n/ to the VDU | 00072080 64 72 69 76 65 72 20 61 73 20 74 77 6f 20 62 79 |driver as two by| 00072090 74 65 73 2c 20 6c 6f 77 65 72 20 62 79 74 65 20 |tes, lower byte | 000720a0 66 69 72 73 74 20 28 6c 69 74 74 6c 65 20 65 6e |first (little en| 000720b0 64 69 61 6e 29 2e 20 49 74 20 77 6f 75 6c 64 20 |dian). It would | 000720c0 74 79 70 69 63 61 6c 6c 79 20 62 65 20 75 73 65 |typically be use| 000720d0 64 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 73 63 |d for sending sc| 000720e0 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 |reen coordinates| 000720f0 20 74 6f 20 74 68 65 20 56 44 55 20 64 72 69 76 | to the VDU driv| 00072100 65 72 73 2c 20 61 73 20 74 68 65 73 65 20 61 72 |ers, as these ar| 00072110 65 20 61 6c 77 61 79 73 20 74 77 6f 2d 62 79 74 |e always two-byt| 00072120 65 20 71 75 61 6e 74 69 74 69 65 73 2e 00 00 00 |e quantities....| 00072130 44 41 54 41 cd 00 00 00 6f 73 5f 76 70 6f 73 0a |DATA....os_vpos.| 00072140 53 79 6e 74 61 78 3a 09 69 6e 74 20 6f 73 5f 76 |Syntax:.int os_v| 00072150 70 6f 73 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 |pos (void);.Head| 00072160 65 72 3a 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 |er:.<roslib.h=>r| 00072170 6f 73 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a |oslib>..Returns:| 00072180 09 54 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 |.The cursor posi| 00072190 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |tion...This func| 000721a0 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 59 |tion reads the Y| 000721b0 20 63 6f 6f 72 64 69 6e 61 74 65 20 6f 66 20 74 | coordinate of t| 000721c0 68 65 20 74 65 78 74 20 63 75 72 73 6f 72 2c 20 |he text cursor, | 000721d0 66 72 6f 6d 20 74 68 65 20 74 6f 70 20 65 64 67 |from the top edg| 000721e0 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 |e of the current| 000721f0 20 74 65 78 74 20 77 69 6e 64 6f 77 2e 00 00 00 | text window....| 00072200 44 41 54 41 1a 02 00 00 6f 73 5f 77 6f 72 64 2f |DATA....os_word/| 00072210 4f 53 5f 57 6f 72 64 0a 53 79 6e 74 61 78 3a 09 |OS_Word.Syntax:.| 00072220 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 6f 73 5f 77 |<os_error> *os_w| 00072230 6f 72 64 20 28 69 6e 74 20 72 30 2c 20 76 6f 69 |ord (int r0, voi| 00072240 64 20 2a 72 31 29 3b 0a 48 65 61 64 65 72 73 3a |d *r1);.Headers:| 00072250 09 3c 72 6f 73 6c 69 62 2e 68 3d 3e 72 6f 73 6c |.<roslib.h=>rosl| 00072260 69 62 3e 09 28 45 61 73 79 20 43 29 0a 09 3c 6f |ib>.(Easy C)..<o| 00072270 73 2e 68 3d 3e 6f 73 3e 09 28 44 65 73 6b 74 6f |s.h=>os>.(Deskto| 00072280 70 20 43 29 0a 0a 53 79 6e 74 61 78 3a 09 3c 6f |p C)..Syntax:.<o| 00072290 73 5f 65 72 72 6f 72 3e 20 2a 4f 53 5f 57 6f 72 |s_error> *OS_Wor| 000722a0 64 20 28 3c 6f 73 77 6f 72 64 5f 6e 75 6d 62 65 |d (<osword_numbe| 000722b0 72 3e 20 72 30 2c 20 76 6f 69 64 20 2a 72 31 29 |r> r0, void *r1)| 000722c0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000722d0 69 62 3a 4b 65 72 6e 65 6c 53 57 49 73 2e 68 3d |ib:KernelSWIs.h=| 000722e0 3e 4b 65 72 6e 65 6c 53 57 49 73 3e 0a 0a 52 65 |>KernelSWIs>..Re| 000722f0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 00072300 6f 20 61 6e 20 65 72 72 6f 72 2c 20 6f 72 20 3c |o an error, or <| 00072310 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00072320 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 |This function ca| 00072330 6c 6c 73 20 74 68 65 20 3c 4f 53 5f 57 6f 72 64 |lls the <OS_Word| 00072340 3d 3e 53 57 49 3a 4f 53 5f 57 6f 72 64 3e 20 53 |=>SWI:OS_Word> S| 00072350 57 49 20 77 69 74 68 20 74 68 65 20 72 65 67 69 |WI with the regi| 00072360 73 74 65 72 20 52 30 20 73 65 74 20 74 6f 20 74 |ster R0 set to t| 00072370 68 65 20 76 61 6c 75 65 20 70 61 73 73 65 64 20 |he value passed | 00072380 69 6e 20 7b 2f 7d 72 30 7b 2f 7d 2c 20 61 6e 64 |in {/}r0{/}, and| 00072390 20 74 68 65 20 72 65 67 69 73 74 65 72 20 52 31 | the register R1| 000723a0 20 73 65 74 20 74 6f 20 74 68 65 20 70 6f 69 6e | set to the poin| 000723b0 74 65 72 20 7b 2f 7d 72 31 7b 2f 7d 2c 20 77 68 |ter {/}r1{/}, wh| 000723c0 69 63 68 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 |ich points to a | 000723d0 70 61 72 61 6d 65 74 65 72 20 62 6c 6f 63 6b 2e |parameter block.| 000723e0 20 56 61 6c 75 65 73 20 61 72 65 20 72 65 61 64 | Values are read| 000723f0 20 66 72 6f 6d 20 61 6e 64 20 72 65 74 75 72 6e | from and return| 00072400 65 64 20 69 6e 20 74 68 65 20 70 61 72 61 6d 65 |ed in the parame| 00072410 74 65 72 20 62 6c 6f 63 6b 2e 00 00 44 41 54 41 |ter block...DATA| 00072420 70 01 00 00 4f 53 5f 52 65 61 64 4d 6f 64 65 56 |p...OS_ReadModeV| 00072430 61 72 69 61 62 6c 65 0a 53 79 6e 74 61 78 3a 09 |ariable.Syntax:.| 00072440 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 4f 53 5f 52 |<os_error> *OS_R| 00072450 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 20 |eadModeVariable | 00072460 28 69 6e 74 20 6d 6f 64 65 2c 20 3c 6d 6f 64 65 |(int mode, <mode| 00072470 5f 76 61 72 69 61 62 6c 65 3e 20 76 61 72 2c 20 |_variable> var, | 00072480 69 6e 74 20 2a 76 61 6c 75 65 29 3b 0a 48 65 61 |int *value);.Hea| 00072490 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 4b 65 |der:.<DeskLib:Ke| 000724a0 72 6e 65 6c 53 57 49 73 2e 68 3d 3e 4b 65 72 6e |rnelSWIs.h=>Kern| 000724b0 65 6c 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 |elSWIs>..Returns| 000724c0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000724d0 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000724e0 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000724f0 63 74 69 6f 6e 20 72 65 61 64 73 20 61 20 3c 6d |ction reads a <m| 00072500 6f 64 65 20 76 61 72 69 61 62 6c 65 3d 3e 53 57 |ode variable=>SW| 00072510 49 3a 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 |I:OS_ReadModeVar| 00072520 69 61 62 6c 65 2e 76 61 72 69 61 62 6c 65 73 3e |iable.variables>| 00072530 20 66 6f 72 20 74 68 65 20 73 63 72 65 65 6e 20 | for the screen | 00072540 6d 6f 64 65 20 2f 6d 6f 64 65 2f 20 28 2d 31 20 |mode /mode/ (-1 | 00072550 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 |for the current | 00072560 6d 6f 64 65 29 20 61 6e 64 20 72 65 74 75 72 6e |mode) and return| 00072570 73 20 69 74 73 20 76 61 6c 75 65 20 69 6e 20 7b |s its value in {| 00072580 2f 7d 2a 76 61 6c 75 65 7b 2f 7d 2e 44 49 52 24 |/}*value{/}.DIR$| 00072590 2c 00 00 00 2c 00 00 00 b8 25 07 00 46 ff ff ff |,...,....%..F...| 000725a0 1b 5b 3e 25 e1 0d 00 00 13 00 00 00 00 00 00 00 |.[>%............| 000725b0 6e 75 6d 62 65 72 00 00 44 41 54 41 e1 0d 00 00 |number..DATA....| 000725c0 6f 73 62 79 74 65 5f 6e 75 6d 62 65 72 0a 54 68 |osbyte_number.Th| 000725d0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000725e0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 4b |ed in <DeskLib:K| 000725f0 65 72 6e 65 6c 53 57 49 73 3d 3e 4b 65 72 6e 65 |ernelSWIs=>Kerne| 00072600 6c 53 57 49 73 3e 2e 20 49 74 20 69 73 20 61 6e |lSWIs>. It is an| 00072610 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 | enumerated type| 00072620 20 67 69 76 69 6e 67 20 6e 61 6d 65 73 20 74 6f | giving names to| 00072630 20 6d 6f 73 74 20 3c 4f 53 5f 42 79 74 65 3d 3e | most <OS_Byte=>| 00072640 4f 53 5f 42 79 74 65 5f 3e 20 63 61 6c 6c 73 3a |OS_Byte_> calls:| 00072650 0a 0a 5c 7b 0a 20 20 6f 73 62 79 74 65 5f 44 49 |..\{. osbyte_DI| 00072660 53 50 4c 41 59 4f 53 56 45 52 53 49 4f 4e 20 3d |SPLAYOSVERSION =| 00072670 20 30 2c 0a 20 20 6f 73 62 79 74 65 5f 53 50 45 | 0,. osbyte_SPE| 00072680 43 49 46 59 49 4e 50 55 54 20 3d 20 32 2c 0a 20 |CIFYINPUT = 2,. | 00072690 20 6f 73 62 79 74 65 5f 53 50 45 43 49 46 59 4f | osbyte_SPECIFYO| 000726a0 55 54 50 55 54 2c 0a 20 20 6f 73 62 79 74 65 5f |UTPUT,. osbyte_| 000726b0 43 55 52 53 4f 52 4b 45 59 53 54 41 54 55 53 2c |CURSORKEYSTATUS,| 000726c0 0a 20 20 6f 73 62 79 74 65 5f 57 52 49 54 45 50 |. osbyte_WRITEP| 000726d0 52 49 4e 54 45 52 44 52 49 56 45 52 54 59 50 45 |RINTERDRIVERTYPE| 000726e0 2c 0a 20 20 6f 73 62 79 74 65 5f 57 52 49 54 45 |,. osbyte_WRITE| 000726f0 50 52 49 4e 54 45 52 49 47 4e 4f 52 45 43 48 41 |PRINTERIGNORECHA| 00072700 52 2c 0a 20 20 6f 73 62 79 74 65 5f 57 52 49 54 |R,. osbyte_WRIT| 00072710 45 52 53 34 32 33 52 58 52 41 54 45 2c 0a 20 20 |ERS423RXRATE,. | 00072720 6f 73 62 79 74 65 5f 57 52 49 54 45 52 53 34 32 |osbyte_WRITERS42| 00072730 33 54 58 52 41 54 45 2c 0a 20 20 6f 73 62 79 74 |3TXRATE,. osbyt| 00072740 65 5f 57 52 49 54 45 44 55 52 41 54 49 4f 4e 31 |e_WRITEDURATION1| 00072750 53 54 46 4c 41 53 48 43 4f 4c 4f 55 52 2c 0a 20 |STFLASHCOLOUR,. | 00072760 20 6f 73 62 79 74 65 5f 57 52 49 54 45 44 55 52 | osbyte_WRITEDUR| 00072770 41 54 49 4f 4e 32 4e 44 46 4c 41 53 48 43 4f 4c |ATION2NDFLASHCOL| 00072780 4f 55 52 2c 0a 20 20 6f 73 62 79 74 65 5f 57 52 |OUR,. osbyte_WR| 00072790 49 54 45 4b 45 59 52 45 50 45 41 54 44 45 4c 41 |ITEKEYREPEATDELA| 000727a0 59 2c 0a 20 20 6f 73 62 79 74 65 5f 57 52 49 54 |Y,. osbyte_WRIT| 000727b0 45 4b 45 59 52 45 50 45 41 54 52 41 54 45 2c 0a |EKEYREPEATRATE,.| 000727c0 20 20 6f 73 62 79 74 65 5f 44 49 53 41 42 4c 45 | osbyte_DISABLE| 000727d0 45 56 45 4e 54 2c 0a 20 20 6f 73 62 79 74 65 5f |EVENT,. osbyte_| 000727e0 45 4e 41 42 4c 45 45 56 45 4e 54 2c 0a 20 20 6f |ENABLEEVENT,. o| 000727f0 73 62 79 74 65 5f 46 4c 55 53 48 42 55 46 46 45 |sbyte_FLUSHBUFFE| 00072800 52 2c 0a 20 20 6f 73 62 79 74 65 5f 52 45 53 45 |R,. osbyte_RESE| 00072810 54 46 55 4e 43 54 49 4f 4e 4b 45 59 53 20 3d 20 |TFUNCTIONKEYS = | 00072820 31 38 2c 0a 20 20 6f 73 62 79 74 65 5f 57 41 49 |18,. osbyte_WAI| 00072830 54 46 4f 52 56 53 59 4e 43 2c 0a 20 20 6f 73 62 |TFORVSYNC,. osb| 00072840 79 74 65 5f 52 45 53 45 54 46 4f 4e 54 44 45 46 |yte_RESETFONTDEF| 00072850 49 4e 49 54 49 4f 4e 53 2c 0a 20 20 6f 73 62 79 |INITIONS,. osby| 00072860 74 65 5f 46 4c 55 53 48 53 45 4c 45 43 54 45 44 |te_FLUSHSELECTED| 00072870 42 55 46 46 45 52 2c 0a 20 20 6f 73 62 79 74 65 |BUFFER,. osbyte| 00072880 5f 52 45 53 45 54 47 52 4f 55 50 4f 46 46 4f 4e |_RESETGROUPOFFON| 00072890 54 44 45 46 49 4e 49 54 49 4f 4e 53 20 3d 20 32 |TDEFINITIONS = 2| 000728a0 35 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 43 |5,. osbyte_RW_C| 000728b0 4f 55 4e 54 52 59 4e 55 4d 42 45 52 20 3d 20 37 |OUNTRYNUMBER = 7| 000728c0 30 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 41 |0,. osbyte_RW_A| 000728d0 4c 50 48 41 42 45 54 20 3d 20 37 31 2c 0a 20 20 |LPHABET = 71,. | 000728e0 6f 73 62 79 74 65 5f 52 57 5f 4b 45 59 42 4f 41 |osbyte_RW_KEYBOA| 000728f0 52 44 20 3d 20 37 31 2c 0a 20 20 6f 73 62 79 74 |RD = 71,. osbyt| 00072900 65 5f 53 45 4c 45 43 54 50 4f 49 4e 54 45 52 20 |e_SELECTPOINTER | 00072910 3d 20 31 30 36 2c 0a 20 20 6f 73 62 79 74 65 5f |= 106,. osbyte_| 00072920 41 43 54 49 56 41 54 45 4d 4f 55 53 45 20 3d 20 |ACTIVATEMOUSE = | 00072930 31 30 36 2c 0a 20 20 6f 73 62 79 74 65 5f 57 52 |106,. osbyte_WR| 00072940 49 54 45 53 48 41 44 4f 57 53 54 41 54 45 2c 0a |ITESHADOWSTATE,.| 00072950 20 20 6f 73 62 79 74 65 5f 52 45 41 44 56 44 55 | osbyte_READVDU| 00072960 53 54 41 54 55 53 20 3d 20 31 31 37 2c 0a 20 20 |STATUS = 117,. | 00072970 6f 73 62 79 74 65 5f 52 45 46 4c 45 43 54 4b 45 |osbyte_REFLECTKE| 00072980 59 42 4f 41 52 44 53 54 41 54 55 53 49 4e 4c 45 |YBOARDSTATUSINLE| 00072990 44 53 2c 0a 20 20 6f 73 62 79 74 65 5f 4b 45 59 |DS,. osbyte_KEY| 000729a0 42 4f 41 52 44 53 43 41 4e 20 3d 20 31 32 31 2c |BOARDSCAN = 121,| 000729b0 0a 20 20 6f 73 62 79 74 65 5f 4b 45 59 42 4f 41 |. osbyte_KEYBOA| 000729c0 52 44 53 43 41 4e 4e 4f 53 48 49 46 54 2c 0a 20 |RDSCANNOSHIFT,. | 000729d0 20 6f 73 62 79 74 65 5f 43 4c 45 41 52 45 53 43 | osbyte_CLEARESC| 000729e0 41 50 45 43 4f 4e 44 49 54 49 4f 4e 20 3d 20 31 |APECONDITION = 1| 000729f0 32 34 2c 0a 20 20 6f 73 62 79 74 65 5f 53 45 54 |24,. osbyte_SET| 00072a00 45 53 43 41 50 45 43 4f 4e 44 49 54 49 4f 4e 2c |ESCAPECONDITION,| 00072a10 0a 20 20 6f 73 62 79 74 65 5f 41 43 4b 4e 4f 57 |. osbyte_ACKNOW| 00072a20 4c 45 44 47 45 45 53 43 41 50 45 43 4f 4e 44 49 |LEDGEESCAPECONDI| 00072a30 54 49 4f 4e 2c 0a 20 20 6f 73 62 79 74 65 5f 43 |TION,. osbyte_C| 00072a40 48 45 43 4b 46 4f 52 45 4f 46 2c 0a 20 20 6f 73 |HECKFOREOF,. os| 00072a50 62 79 74 65 5f 47 45 54 42 55 46 46 45 52 4f 52 |byte_GETBUFFEROR| 00072a60 4d 4f 55 53 45 53 54 41 54 55 53 2c 0a 20 20 6f |MOUSESTATUS,. o| 00072a70 73 62 79 74 65 5f 53 43 41 4e 46 4f 52 4b 45 59 |sbyte_SCANFORKEY| 00072a80 20 3d 20 31 32 39 2c 0a 20 20 6f 73 62 79 74 65 | = 129,. osbyte| 00072a90 5f 52 45 41 44 4f 53 49 44 45 4e 54 49 46 49 45 |_READOSIDENTIFIE| 00072aa0 52 20 3d 20 31 32 39 2c 0a 20 20 6f 73 62 79 74 |R = 129,. osbyt| 00072ab0 65 5f 52 45 41 44 54 45 58 54 43 55 52 53 4f 52 |e_READTEXTCURSOR| 00072ac0 50 4f 53 49 54 49 4f 4e 20 3d 20 31 33 34 2c 0a |POSITION = 134,.| 00072ad0 20 20 6f 73 62 79 74 65 5f 52 45 41 44 43 48 41 | osbyte_READCHA| 00072ae0 52 41 43 54 45 52 41 54 54 45 58 54 43 55 52 53 |RACTERATTEXTCURS| 00072af0 4f 52 20 3d 20 31 33 35 2c 0a 20 20 6f 73 62 79 |OR = 135,. osby| 00072b00 74 65 5f 52 45 41 44 53 43 52 45 45 4e 4d 4f 44 |te_READSCREENMOD| 00072b10 45 20 3d 20 31 33 35 2c 0a 20 20 6f 73 62 79 74 |E = 135,. osbyt| 00072b20 65 5f 49 4e 53 45 52 54 43 48 41 52 41 43 54 45 |e_INSERTCHARACTE| 00072b30 52 43 4f 44 45 49 4e 54 4f 42 55 46 46 45 52 20 |RCODEINTOBUFFER | 00072b40 3d 20 31 33 38 2c 0a 20 20 6f 73 62 79 74 65 5f |= 138,. osbyte_| 00072b50 57 52 49 54 45 46 53 4f 50 54 49 4f 4e 53 2c 0a |WRITEFSOPTIONS,.| 00072b60 20 20 6f 73 62 79 74 65 5f 49 53 53 55 45 4d 4f | osbyte_ISSUEMO| 00072b70 44 55 4c 45 53 45 52 56 49 43 45 43 41 4c 4c 20 |DULESERVICECALL | 00072b80 3d 20 31 34 33 2c 0a 20 20 6f 73 62 79 74 65 5f |= 143,. osbyte_| 00072b90 53 45 54 54 56 43 48 41 52 41 43 54 45 52 49 53 |SETTVCHARACTERIS| 00072ba0 54 49 43 53 2c 0a 20 20 6f 73 62 79 74 65 5f 47 |TICS,. osbyte_G| 00072bb0 45 54 43 48 41 52 41 43 54 45 52 46 52 4f 4d 42 |ETCHARACTERFROMB| 00072bc0 55 46 46 45 52 2c 0a 20 20 6f 73 62 79 74 65 5f |UFFER,. osbyte_| 00072bd0 45 58 41 4d 49 4e 45 42 55 46 46 45 52 53 54 41 |EXAMINEBUFFERSTA| 00072be0 54 55 53 20 3d 20 31 35 32 2c 0a 20 20 6f 73 62 |TUS = 152,. osb| 00072bf0 79 74 65 5f 49 4e 53 45 52 54 43 48 41 52 41 43 |yte_INSERTCHARAC| 00072c00 54 45 52 49 4e 54 4f 42 55 46 46 45 52 2c 0a 20 |TERINTOBUFFER,. | 00072c10 20 6f 73 62 79 74 65 5f 52 57 5f 41 53 59 4e 43 | osbyte_RW_ASYNC| 00072c20 43 4f 4d 4d 53 53 54 41 54 45 20 3d 20 31 35 36 |COMMSSTATE = 156| 00072c30 2c 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 44 56 |,. osbyte_READV| 00072c40 44 55 56 41 52 49 41 42 4c 45 20 3d 20 31 36 30 |DUVARIABLE = 160| 00072c50 2c 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 44 43 |,. osbyte_READC| 00072c60 4d 4f 53 52 41 4d 2c 0a 20 20 6f 73 62 79 74 65 |MOSRAM,. osbyte| 00072c70 5f 57 52 49 54 45 43 4d 4f 53 52 41 4d 2c 0a 20 |_WRITECMOSRAM,. | 00072c80 20 6f 73 62 79 74 65 5f 52 57 5f 47 45 4e 45 52 | osbyte_RW_GENER| 00072c90 41 4c 47 52 41 50 48 49 43 53 49 4e 46 4f 2c 0a |ALGRAPHICSINFO,.| 00072ca0 20 20 6f 73 62 79 74 65 5f 52 45 41 44 4f 55 54 | osbyte_READOUT| 00072cb0 50 55 54 43 55 52 53 4f 52 50 4f 53 49 54 49 4f |PUTCURSORPOSITIO| 00072cc0 4e 20 3d 20 31 36 35 2c 0a 20 20 6f 73 62 79 74 |N = 165,. osbyt| 00072cd0 65 5f 52 57 5f 35 30 48 5a 43 4f 55 4e 54 45 52 |e_RW_50HZCOUNTER| 00072ce0 20 3d 20 31 37 36 2c 0a 20 20 6f 73 62 79 74 65 | = 176,. osbyte| 00072cf0 5f 52 45 41 44 49 4e 50 55 54 53 4f 55 52 43 45 |_READINPUTSOURCE| 00072d00 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 52 53 |,. osbyte_RW_RS| 00072d10 34 32 33 49 4e 50 55 54 49 4e 54 45 52 50 54 52 |423INPUTINTERPTR| 00072d20 45 54 41 54 49 4f 4e 20 3d 20 31 38 31 2c 0a 20 |ETATION = 181,. | 00072d30 20 6f 73 62 79 74 65 5f 52 57 5f 4e 4f 49 47 4e | osbyte_RW_NOIGN| 00072d40 4f 52 45 53 54 41 54 45 2c 0a 20 20 6f 73 62 79 |ORESTATE,. osby| 00072d50 74 65 5f 52 57 5f 52 53 34 32 33 42 55 53 59 46 |te_RW_RS423BUSYF| 00072d60 4c 41 47 20 3d 20 31 39 31 2c 0a 20 20 6f 73 62 |LAG = 191,. osb| 00072d70 79 74 65 5f 52 45 41 44 52 53 34 32 33 43 4f 4e |yte_READRS423CON| 00072d80 54 52 4f 4c 42 59 54 45 2c 0a 20 20 6f 73 62 79 |TROLBYTE,. osby| 00072d90 74 65 5f 52 57 5f 46 4c 41 53 48 43 4f 55 4e 54 |te_RW_FLASHCOUNT| 00072da0 45 52 2c 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 |ER,. osbyte_REA| 00072db0 44 44 55 52 41 54 49 4f 4e 32 4e 44 46 4c 41 53 |DDURATION2NDFLAS| 00072dc0 48 43 4f 4c 4f 55 52 2c 0a 20 20 6f 73 62 79 74 |HCOLOUR,. osbyt| 00072dd0 65 5f 52 45 41 44 44 55 52 41 54 49 4f 4e 31 53 |e_READDURATION1S| 00072de0 54 46 4c 41 53 48 43 4f 4c 4f 55 52 2c 0a 20 20 |TFLASHCOLOUR,. | 00072df0 6f 73 62 79 74 65 5f 52 57 5f 4b 45 59 52 45 50 |osbyte_RW_KEYREP| 00072e00 45 41 54 44 45 4c 41 59 2c 0a 20 20 6f 73 62 79 |EATDELAY,. osby| 00072e10 74 65 5f 52 57 5f 4b 45 59 52 45 50 45 41 54 52 |te_RW_KEYREPEATR| 00072e20 41 54 45 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 |ATE,. osbyte_RW| 00072e30 5f 45 58 45 43 46 49 4c 45 48 41 4e 44 4c 45 2c |_EXECFILEHANDLE,| 00072e40 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 53 50 4f |. osbyte_RW_SPO| 00072e50 4f 4c 46 49 4c 45 48 41 4e 44 4c 45 2c 0a 20 20 |OLFILEHANDLE,. | 00072e60 6f 73 62 79 74 65 5f 52 57 5f 42 52 45 41 4b 45 |osbyte_RW_BREAKE| 00072e70 53 43 41 50 45 45 46 46 45 43 54 2c 0a 20 20 6f |SCAPEEFFECT,. o| 00072e80 73 62 79 74 65 5f 52 57 5f 4b 45 59 42 4f 41 52 |sbyte_RW_KEYBOAR| 00072e90 44 44 49 53 41 42 4c 45 46 4c 41 47 2c 0a 20 20 |DDISABLEFLAG,. | 00072ea0 6f 73 62 79 74 65 5f 52 57 5f 4b 45 59 42 4f 41 |osbyte_RW_KEYBOA| 00072eb0 52 44 53 54 41 54 55 53 42 59 54 45 2c 0a 20 20 |RDSTATUSBYTE,. | 00072ec0 6f 73 62 79 74 65 5f 52 57 5f 52 53 34 32 33 49 |osbyte_RW_RS423I| 00072ed0 4e 50 55 54 42 55 46 46 45 52 4d 49 4e 53 50 41 |NPUTBUFFERMINSPA| 00072ee0 43 45 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f |CE,. osbyte_RW_| 00072ef0 52 53 34 32 33 49 47 4e 4f 52 45 46 4c 41 47 2c |RS423IGNOREFLAG,| 00072f00 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 42 45 4c |. osbyte_RW_BEL| 00072f10 4c 43 48 41 4e 4e 45 4c 20 3d 20 32 31 31 2c 0a |LCHANNEL = 211,.| 00072f20 20 20 6f 73 62 79 74 65 5f 52 57 5f 42 45 4c 4c | osbyte_RW_BELL| 00072f30 56 4f 4c 55 4d 45 2c 0a 20 20 6f 73 62 79 74 65 |VOLUME,. osbyte| 00072f40 5f 52 57 5f 42 45 4c 4c 46 52 45 51 55 45 4e 43 |_RW_BELLFREQUENC| 00072f50 59 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 42 |Y,. osbyte_RW_B| 00072f60 45 4c 4c 44 55 52 41 54 49 4f 4e 2c 0a 20 20 6f |ELLDURATION,. o| 00072f70 73 62 79 74 65 5f 52 57 5f 46 55 4e 43 54 49 4f |sbyte_RW_FUNCTIO| 00072f80 4e 4b 45 59 53 54 52 49 4e 47 4c 45 4e 47 54 48 |NKEYSTRINGLENGTH| 00072f90 20 3d 20 32 31 36 2c 0a 20 20 6f 73 62 79 74 65 | = 216,. osbyte| 00072fa0 5f 52 57 5f 50 41 47 45 44 4d 4f 44 45 4c 49 4e |_RW_PAGEDMODELIN| 00072fb0 45 43 4f 55 4e 54 2c 0a 20 20 6f 73 62 79 74 65 |ECOUNT,. osbyte| 00072fc0 5f 52 57 5f 42 59 54 45 53 49 4e 56 44 55 51 55 |_RW_BYTESINVDUQU| 00072fd0 45 55 45 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 |EUE,. osbyte_RW| 00072fe0 5f 54 41 42 4b 45 59 43 4f 44 45 2c 0a 20 20 6f |_TABKEYCODE,. o| 00072ff0 73 62 79 74 65 5f 52 57 5f 45 53 43 41 50 45 43 |sbyte_RW_ESCAPEC| 00073000 48 41 52 41 43 54 45 52 2c 0a 20 20 6f 73 62 79 |HARACTER,. osby| 00073010 74 65 5f 52 57 5f 49 4e 54 45 52 50 52 45 54 41 |te_RW_INTERPRETA| 00073020 54 49 4f 4e 4f 46 42 55 46 46 45 52 43 4f 44 45 |TIONOFBUFFERCODE| 00073030 53 5f 43 30 5f 43 46 2c 0a 20 20 6f 73 62 79 74 |S_C0_CF,. osbyt| 00073040 65 5f 52 57 5f 49 4e 54 45 52 50 52 45 54 41 54 |e_RW_INTERPRETAT| 00073050 49 4f 4e 4f 46 42 55 46 46 45 52 43 4f 44 45 53 |IONOFBUFFERCODES| 00073060 5f 44 30 5f 44 46 2c 0a 20 20 6f 73 62 79 74 65 |_D0_DF,. osbyte| 00073070 5f 52 57 5f 49 4e 54 45 52 50 52 45 54 41 54 49 |_RW_INTERPRETATI| 00073080 4f 4e 4f 46 42 55 46 46 45 52 43 4f 44 45 53 5f |ONOFBUFFERCODES_| 00073090 45 30 5f 45 46 2c 0a 20 20 6f 73 62 79 74 65 5f |E0_EF,. osbyte_| 000730a0 52 57 5f 49 4e 54 45 52 50 52 45 54 41 54 49 4f |RW_INTERPRETATIO| 000730b0 4e 4f 46 42 55 46 46 45 52 43 4f 44 45 53 5f 46 |NOFBUFFERCODES_F| 000730c0 30 5f 46 46 2c 0a 20 20 6f 73 62 79 74 65 5f 52 |0_FF,. osbyte_R| 000730d0 57 5f 46 55 4e 43 54 49 4f 4e 4b 45 59 49 4e 54 |W_FUNCTIONKEYINT| 000730e0 45 52 50 52 45 54 41 54 49 4f 4e 2c 0a 20 20 6f |ERPRETATION,. o| 000730f0 73 62 79 74 65 5f 52 57 5f 53 48 49 46 54 46 55 |sbyte_RW_SHIFTFU| 00073100 4e 43 54 49 4f 4e 4b 45 59 49 4e 54 45 52 50 52 |NCTIONKEYINTERPR| 00073110 45 54 41 54 49 4f 4e 2c 0a 20 20 6f 73 62 79 74 |ETATION,. osbyt| 00073120 65 5f 52 57 5f 43 54 52 4c 46 55 4e 43 54 49 4f |e_RW_CTRLFUNCTIO| 00073130 4e 4b 45 59 49 4e 54 45 52 50 52 45 54 41 54 49 |NKEYINTERPRETATI| 00073140 4f 4e 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f |ON,. osbyte_RW_| 00073150 43 54 52 4c 53 48 49 46 54 46 55 4e 43 54 49 4f |CTRLSHIFTFUNCTIO| 00073160 4e 4b 45 59 49 4e 54 45 52 50 52 45 54 41 54 49 |NKEYINTERPRETATI| 00073170 4f 4e 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f |ON,. osbyte_RW_| 00073180 45 53 43 41 50 45 4b 45 59 53 54 41 54 55 53 2c |ESCAPEKEYSTATUS,| 00073190 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 45 53 43 |. osbyte_RW_ESC| 000731a0 41 50 45 45 46 46 45 43 54 53 2c 0a 20 20 6f 73 |APEEFFECTS,. os| 000731b0 62 79 74 65 5f 52 57 5f 43 48 41 52 41 43 54 45 |byte_RW_CHARACTE| 000731c0 52 44 45 53 54 49 4e 41 54 49 4f 4e 53 54 41 54 |RDESTINATIONSTAT| 000731d0 55 53 20 3d 20 32 33 36 2c 0a 20 20 6f 73 62 79 |US = 236,. osby| 000731e0 74 65 5f 52 57 5f 43 55 52 53 4f 52 4b 45 59 53 |te_RW_CURSORKEYS| 000731f0 54 41 54 55 53 2c 0a 20 20 6f 73 62 79 74 65 5f |TATUS,. osbyte_| 00073200 52 57 5f 4e 55 4d 45 52 49 43 4b 45 59 50 41 44 |RW_NUMERICKEYPAD| 00073210 49 4e 54 45 52 50 52 45 54 41 54 49 4f 4e 2c 0a |INTERPRETATION,.| 00073220 20 20 6f 73 62 79 74 65 5f 52 45 41 44 43 4f 55 | osbyte_READCOU| 00073230 4e 54 52 59 46 4c 41 47 20 3d 20 32 34 30 2c 0a |NTRYFLAG = 240,.| 00073240 20 20 6f 73 62 79 74 65 5f 52 45 41 44 52 53 34 | osbyte_READRS4| 00073250 32 33 42 41 55 44 52 41 54 45 53 20 3d 20 32 34 |23BAUDRATES = 24| 00073260 32 2c 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 44 |2,. osbyte_READ| 00073270 54 49 4d 45 52 53 57 49 54 43 48 53 54 41 54 45 |TIMERSWITCHSTATE| 00073280 2c 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 44 50 |,. osbyte_READP| 00073290 52 49 4e 54 45 52 44 52 49 56 45 52 54 59 50 45 |RINTERDRIVERTYPE| 000732a0 20 3d 20 32 34 35 2c 0a 20 20 6f 73 62 79 74 65 | = 245,. osbyte| 000732b0 5f 52 57 5f 50 52 49 4e 54 45 52 49 47 4e 4f 52 |_RW_PRINTERIGNOR| 000732c0 45 43 48 41 52 41 43 54 45 52 2c 0a 20 20 6f 73 |ECHARACTER,. os| 000732d0 62 79 74 65 5f 52 57 5f 42 52 45 41 4b 4b 45 59 |byte_RW_BREAKKEY| 000732e0 41 43 54 49 4f 4e 53 2c 0a 20 20 6f 73 62 79 74 |ACTIONS,. osbyt| 000732f0 65 5f 52 45 41 44 56 44 55 44 52 49 56 45 52 53 |e_READVDUDRIVERS| 00073300 43 52 45 45 4e 42 41 4e 4b 20 3d 20 32 35 30 2c |CREENBANK = 250,| 00073310 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 44 44 49 |. osbyte_READDI| 00073320 53 50 4c 41 59 53 43 52 45 45 4e 42 41 4e 4b 2c |SPLAYSCREENBANK,| 00073330 0a 20 20 6f 73 62 79 74 65 5f 52 45 41 44 4c 41 |. osbyte_READLA| 00073340 53 54 42 52 45 41 4b 54 59 50 45 20 3d 20 32 35 |STBREAKTYPE = 25| 00073350 33 2c 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 45 |3,. osbyte_RW_E| 00073360 46 46 45 43 54 4f 46 53 48 49 46 54 43 54 52 4c |FFECTOFSHIFTCTRL| 00073370 4f 4e 4e 55 4d 45 52 49 43 4b 45 59 50 41 44 2c |ONNUMERICKEYPAD,| 00073380 0a 20 20 6f 73 62 79 74 65 5f 52 57 5f 42 4f 4f |. osbyte_RW_BOO| 00073390 54 4f 50 54 49 4f 4e 0a 7d 00 00 00 44 41 54 41 |TOPTION.}...DATA| 000733a0 16 01 00 00 4f 53 43 4c 49 0a 54 68 69 73 20 6d |....OSCLI.This m| 000733b0 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 000733c0 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 43 6f 72 65 |in <TimsLib:Core| 000733d0 2e 68 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 6e 64 |.h=>Core_TL> and| 000733e0 20 3c 44 65 73 6b 4c 69 62 3a 43 6f 72 65 2e 68 | <DeskLib:Core.h| 000733f0 3d 3e 43 6f 72 65 3e 2e 20 49 74 20 69 73 20 61 |=>Core>. It is a| 00073400 20 68 61 6e 64 79 20 76 65 6e 65 65 72 20 74 6f | handy veneer to| 00073410 20 74 68 65 20 4f 53 5f 43 4c 49 20 53 57 49 2e | the OS_CLI SWI.| 00073420 0a 0a 4f 53 43 4c 49 28 63 6f 6d 6d 61 6e 64 29 |..OSCLI(command)| 00073430 20 63 61 6c 6c 73 20 4f 53 5f 43 4c 49 20 77 69 | calls OS_CLI wi| 00073440 74 68 20 52 30 3d 63 6f 6d 6d 61 6e 64 2e 0a 0a |th R0=command...| 00073450 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 |It is actually d| 00073460 65 66 69 6e 65 64 20 61 73 3a 7b 77 72 61 70 20 |efined as:{wrap | 00073470 6f 66 66 7d 0a 7b 66 43 6f 64 65 7d 3c 23 64 65 |off}.{fCode}<#de| 00073480 66 69 6e 65 3d 3e 64 65 66 69 6e 65 3e 20 4f 53 |fine=>define> OS| 00073490 43 4c 49 28 63 6d 64 29 20 28 3c 53 57 49 3e 28 |CLI(cmd) (<SWI>(| 000734a0 31 2c 30 2c 4f 53 5f 43 4c 49 2c 28 63 6d 64 29 |1,0,OS_CLI,(cmd)| 000734b0 29 29 00 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |))..DIR$,...,...| 000734c0 e0 34 07 00 46 ff ff ff 20 6f 3e 25 03 02 00 00 |.4..F... o>%....| 000734d0 13 00 00 00 00 00 00 00 6e 75 6d 62 65 72 00 00 |........number..| 000734e0 44 41 54 41 03 02 00 00 6f 73 77 6f 72 64 5f 6e |DATA....osword_n| 000734f0 75 6d 62 65 72 0a 54 68 69 73 20 74 79 70 65 20 |umber.This type | 00073500 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 00073510 65 73 6b 4c 69 62 3a 4b 65 72 6e 65 6c 53 57 49 |eskLib:KernelSWI| 00073520 73 3d 3e 4b 65 72 6e 65 6c 53 57 49 73 3e 2e 20 |s=>KernelSWIs>. | 00073530 49 74 0a 69 73 20 61 6e 20 65 6e 75 6d 65 72 61 |It.is an enumera| 00073540 74 65 64 20 74 79 70 65 20 67 69 76 69 6e 67 20 |ted type giving | 00073550 6e 61 6d 65 73 20 74 6f 20 6d 6f 73 74 0a 3c 4f |names to most.<O| 00073560 53 5f 57 6f 72 64 5f 3e 20 63 61 6c 6c 73 3a 0a |S_Word_> calls:.| 00073570 0a 5c 7b 0a 20 20 6f 73 77 6f 72 64 5f 52 45 41 |.\{. osword_REA| 00073580 44 4c 49 4e 45 20 3d 20 30 2c 0a 20 20 6f 73 77 |DLINE = 0,. osw| 00073590 6f 72 64 5f 52 45 41 44 53 59 53 43 4c 4f 43 4b |ord_READSYSCLOCK| 000735a0 2c 0a 20 20 6f 73 77 6f 72 64 5f 57 52 49 54 45 |,. osword_WRITE| 000735b0 53 59 53 43 4c 4f 43 4b 2c 0a 20 20 6f 73 77 6f |SYSCLOCK,. oswo| 000735c0 72 64 5f 52 45 41 44 49 4e 54 45 52 56 41 4c 54 |rd_READINTERVALT| 000735d0 49 4d 45 52 2c 0a 20 20 6f 73 77 6f 72 64 5f 57 |IMER,. osword_W| 000735e0 52 49 54 45 49 4e 54 45 52 56 41 4c 54 49 4d 45 |RITEINTERVALTIME| 000735f0 52 2c 0a 20 20 6f 73 77 6f 72 64 5f 52 45 41 44 |R,. osword_READ| 00073600 50 49 58 45 4c 43 4f 4c 4f 55 52 20 3d 20 39 2c |PIXELCOLOUR = 9,| 00073610 0a 20 20 6f 73 77 6f 72 64 5f 52 45 41 44 43 48 |. osword_READCH| 00073620 41 52 41 43 54 45 52 44 45 46 4e 2c 0a 20 20 6f |ARACTERDEFN,. o| 00073630 73 77 6f 72 64 5f 52 45 41 44 50 41 4c 45 54 54 |sword_READPALETT| 00073640 45 2c 0a 20 20 6f 73 77 6f 72 64 5f 57 52 49 54 |E,. osword_WRIT| 00073650 45 50 41 4c 45 54 54 45 2c 0a 20 20 6f 73 77 6f |EPALETTE,. oswo| 00073660 72 64 5f 52 45 41 44 47 46 58 43 55 52 53 4f 52 |rd_READGFXCURSOR| 00073670 53 2c 0a 20 20 6f 73 77 6f 72 64 5f 52 45 41 44 |S,. osword_READ| 00073680 43 4d 4f 53 43 4c 4f 43 4b 2c 0a 20 20 6f 73 77 |CMOSCLOCK,. osw| 00073690 6f 72 64 5f 57 52 49 54 45 43 4d 4f 53 43 4c 4f |ord_WRITECMOSCLO| 000736a0 43 4b 2c 0a 20 20 6f 73 77 6f 72 64 5f 44 45 46 |CK,. osword_DEF| 000736b0 49 4e 45 50 4f 49 4e 54 45 52 41 4e 44 4d 4f 55 |INEPOINTERANDMOU| 000736c0 53 45 20 3d 20 32 31 2c 0a 20 20 6f 73 77 6f 72 |SE = 21,. oswor| 000736d0 64 5f 57 52 49 54 45 53 43 52 45 45 4e 42 41 53 |d_WRITESCREENBAS| 000736e0 45 0a 7d 00 44 49 52 24 14 04 00 00 14 04 00 00 |E.}.DIR$........| 000736f0 f8 3a 07 00 46 fd ff ff 36 ba 84 2f b4 00 00 00 |.:..F...6../....| 00073700 13 01 00 00 00 00 00 00 70 61 63 6b 6d 61 73 6b |........packmask| 00073710 5f 00 00 00 5c 40 07 00 46 fd ff ff a5 ba 84 2f |_...\@..F....../| 00073720 b4 00 00 00 13 01 00 00 00 00 00 00 70 61 63 6b |............pack| 00073730 73 68 66 74 5f 00 00 00 38 45 07 00 46 fd ff ff |shft_...8E..F...| 00073740 0f bb 84 2f 4c 00 00 00 13 01 00 00 00 00 00 00 |.../L...........| 00073750 70 61 6c 65 74 74 65 5f 00 00 00 00 70 47 07 00 |palette_....pG..| 00073760 46 ff ff ff 09 5e 44 25 a6 03 00 00 13 00 00 00 |F....^D%........| 00073770 00 00 00 00 50 61 6e 65 00 00 00 00 18 4b 07 00 |....Pane.....K..| 00073780 46 fd ff ff 61 bb 84 2f 6c 01 00 00 13 01 00 00 |F...a../l.......| 00073790 00 00 00 00 50 61 6e 65 5f 00 00 00 b8 5c 07 00 |....Pane_....\..| 000737a0 46 fd ff ff 3e bc 84 2f d4 00 00 00 13 01 00 00 |F...>../........| 000737b0 00 00 00 00 50 61 74 68 5f 00 00 00 f4 63 07 00 |....Path_....c..| 000737c0 46 ff ff ff 18 a6 60 25 01 04 00 00 13 00 00 00 |F.....`%........| 000737d0 00 00 00 00 50 44 72 69 76 65 72 00 f8 67 07 00 |....PDriver..g..| 000737e0 46 fd ff ff d6 bc 84 2f 90 02 00 00 13 01 00 00 |F....../........| 000737f0 00 00 00 00 50 44 72 69 76 65 72 5f 00 00 00 00 |....PDriver_....| 00073800 cc 89 07 00 46 ff ff ff 01 61 c4 22 19 01 00 00 |....F....a."....| 00073810 13 00 00 00 00 00 00 00 70 65 72 72 6f 72 00 00 |........perror..| 00073820 e8 8a 07 00 46 fd ff ff 62 be 84 2f 2c 00 00 00 |....F...b../,...| 00073830 13 01 00 00 00 00 00 00 70 66 6f 72 6d 5f 00 00 |........pform_..| 00073840 58 8d 07 00 46 fd ff ff 8c be 84 2f a8 00 00 00 |X...F....../....| 00073850 13 01 00 00 00 00 00 00 70 66 5f 00 18 99 07 00 |........pf_.....| 00073860 46 ff ff ff 86 3f b4 24 d2 00 00 00 13 00 00 00 |F....?.$........| 00073870 00 00 00 00 70 6f 69 6e 74 65 72 00 ec 99 07 00 |....pointer.....| 00073880 46 fd ff ff 0c bf 84 2f 18 01 00 00 13 01 00 00 |F....../........| 00073890 00 00 00 00 70 6f 69 6e 74 65 72 5f 00 00 00 00 |....pointer_....| 000738a0 34 a3 07 00 46 fd ff ff ad bf 84 2f 2c 00 00 00 |4...F....../,...| 000738b0 13 01 00 00 00 00 00 00 70 6f 6c 6c 77 6f 72 64 |........pollword| 000738c0 5f 00 00 00 58 a4 07 00 46 ff ff ff 6c 0e 61 25 |_...X...F...l.a%| 000738d0 66 03 00 00 13 00 00 00 00 00 00 00 50 6f 70 55 |f...........PopU| 000738e0 70 00 00 00 c0 a7 07 00 46 fd ff ff ee bf 84 2f |p.......F....../| 000738f0 dc 00 00 00 13 01 00 00 00 00 00 00 70 6f 70 75 |............popu| 00073900 70 74 63 5f 00 00 00 00 cc ad 07 00 46 fd ff ff |ptc_........F...| 00073910 77 c0 84 2f 24 03 00 00 13 01 00 00 00 00 00 00 |w../$...........| 00073920 70 6f 70 75 70 5f 00 00 a0 cb 07 00 46 ff ff ff |popup_......F...| 00073930 b9 37 be 22 d9 00 00 00 13 00 00 00 00 00 00 00 |.7."............| 00073940 70 6f 77 00 7c cc 07 00 46 fd ff ff 5f c2 84 2f |pow.|...F..._../| 00073950 2c 00 00 00 13 01 00 00 00 00 00 00 70 70 64 69 |,...........ppdi| 00073960 72 5f 00 00 f4 cd 07 00 46 ff ff ff 66 b6 e5 22 |r_......F...f.."| 00073970 1d 01 00 00 13 00 00 00 00 00 00 00 70 72 61 67 |............prag| 00073980 6d 61 00 00 14 cf 07 00 46 fd ff ff 91 c2 84 2f |ma......F....../| 00073990 4c 00 00 00 13 01 00 00 00 00 00 00 70 72 61 67 |L...........prag| 000739a0 6d 61 5f 00 f8 d3 07 00 46 ff ff ff 1d 7b b4 24 |ma_.....F....{.$| 000739b0 73 02 00 00 13 00 00 00 00 00 00 00 70 72 69 6e |s...........prin| 000739c0 74 00 00 00 6c d6 07 00 46 fd ff ff de c2 84 2f |t...l...F....../| 000739d0 98 00 00 00 13 01 00 00 00 00 00 00 70 72 69 6e |............prin| 000739e0 74 64 72 69 76 65 72 5f 00 00 00 00 dc d9 07 00 |tdriver_........| 000739f0 46 fd ff ff 38 c3 84 2f 2c 00 00 00 13 01 00 00 |F...8../,.......| 00073a00 00 00 00 00 70 72 69 6e 74 65 72 5f 00 00 00 00 |....printer_....| 00073a10 24 dc 07 00 46 ff ff ff 5b e1 c2 22 31 01 00 00 |$...F...[.."1...| 00073a20 13 00 00 00 00 00 00 00 70 72 69 6e 74 66 00 00 |........printf..| 00073a30 58 dd 07 00 46 fd ff ff 79 c3 84 2f 48 01 00 00 |X...F...y../H...| 00073a40 13 01 00 00 00 00 00 00 70 72 69 6e 74 66 65 61 |........printfea| 00073a50 74 5f 00 00 a0 e6 07 00 46 fd ff ff 43 c4 84 2f |t_......F...C../| 00073a60 a8 03 00 00 13 01 00 00 00 00 00 00 70 72 69 6e |............prin| 00073a70 74 5f 00 00 68 11 08 00 46 fd ff ff 4f c6 84 2f |t_..h...F...O../| 00073a80 28 00 00 00 13 01 00 00 00 00 00 00 70 74 72 64 |(...........ptrd| 00073a90 69 66 66 5f 00 00 00 00 78 12 08 00 46 ff ff ff |iff_....x...F...| 00073aa0 e7 a7 c2 22 bd 01 00 00 13 00 00 00 00 00 00 00 |..."............| 00073ab0 70 75 74 63 00 00 00 00 38 14 08 00 46 ff ff ff |putc....8...F...| 00073ac0 a1 b1 c2 22 30 01 00 00 13 00 00 00 00 00 00 00 |..."0...........| 00073ad0 70 75 74 63 68 61 72 00 68 15 08 00 46 ff ff ff |putchar.h...F...| 00073ae0 8f b7 c2 22 e7 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00073af0 70 75 74 73 00 00 00 00 44 49 52 24 b4 00 00 00 |puts....DIR$....| 00073b00 b4 00 00 00 ac 3b 07 00 46 ff ff ff 2c 1e 27 23 |.....;..F...,.'#| 00073b10 f1 00 00 00 13 00 00 00 00 00 00 00 64 61 73 68 |............dash| 00073b20 65 64 00 00 a0 3c 07 00 46 ff ff ff ce 15 27 23 |ed...<..F.....'#| 00073b30 ed 00 00 00 13 00 00 00 00 00 00 00 65 6e 64 63 |............endc| 00073b40 61 70 00 00 90 3d 07 00 46 ff ff ff f1 12 27 23 |ap...=..F.....'#| 00073b50 e8 00 00 00 13 00 00 00 00 00 00 00 6a 6f 69 6e |............join| 00073b60 00 00 00 00 78 3e 07 00 46 ff ff ff a7 18 27 23 |....x>..F.....'#| 00073b70 f1 00 00 00 13 00 00 00 00 00 00 00 73 74 61 72 |............star| 00073b80 74 63 61 70 00 00 00 00 6c 3f 07 00 46 ff ff ff |tcap....l?..F...| 00073b90 7f 1b 27 23 ee 00 00 00 13 00 00 00 00 00 00 00 |..'#............| 00073ba0 77 69 6e 64 72 75 6c 65 00 00 00 00 44 41 54 41 |windrule....DATA| 00073bb0 f1 00 00 00 70 61 63 6b 6d 61 73 6b 5f 64 61 73 |....packmask_das| 00073bc0 68 65 64 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |hed.This macro i| 00073bd0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 00073be0 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 00073bf0 66 74 79 70 65 73 3e 2e 20 49 74 20 69 73 20 61 |ftypes>. It is a| 00073c00 20 76 61 6c 75 65 20 77 68 69 63 68 20 77 68 65 | value which whe| 00073c10 6e 20 6c 6f 67 69 63 61 6c 6c 79 20 41 4e 44 65 |n logically ANDe| 00073c20 64 20 77 69 74 68 20 61 20 70 61 74 68 20 73 74 |d with a path st| 00073c30 79 6c 65 20 64 65 73 63 69 70 74 69 6f 6e 20 77 |yle desciption w| 00073c40 6f 72 64 20 77 69 6c 6c 20 6d 61 73 6b 20 6f 75 |ord will mask ou| 00073c50 74 20 61 6c 6c 20 62 69 74 73 20 62 75 74 20 74 |t all bits but t| 00073c60 68 6f 73 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 |hose containing | 00073c70 74 68 65 20 64 61 73 68 20 70 61 74 74 65 72 6e |the dash pattern| 00073c80 20 66 6c 61 67 2e 20 49 74 20 69 73 20 64 65 66 | flag. It is def| 00073c90 69 6e 65 64 20 61 73 20 30 78 38 30 2e 00 00 00 |ined as 0x80....| 00073ca0 44 41 54 41 ed 00 00 00 70 61 63 6b 6d 61 73 6b |DATA....packmask| 00073cb0 5f 65 6e 64 63 61 70 0a 54 68 69 73 20 6d 61 63 |_endcap.This mac| 00073cc0 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 00073cd0 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e | <drawftypes.h=>| 00073ce0 64 72 61 77 66 74 79 70 65 73 3e 2e 20 49 74 20 |drawftypes>. It | 00073cf0 69 73 20 61 20 76 61 6c 75 65 20 77 68 69 63 68 |is a value which| 00073d00 20 77 68 65 6e 20 6c 6f 67 69 63 61 6c 6c 79 20 | when logically | 00073d10 41 4e 44 65 64 20 77 69 74 68 20 61 20 70 61 74 |ANDed with a pat| 00073d20 68 20 73 74 79 6c 65 20 64 65 73 63 69 70 74 69 |h style descipti| 00073d30 6f 6e 20 77 6f 72 64 20 77 69 6c 6c 20 6d 61 73 |on word will mas| 00073d40 6b 20 6f 75 74 20 61 6c 6c 20 62 69 74 73 20 62 |k out all bits b| 00073d50 75 74 20 74 68 6f 73 65 20 63 6f 6e 74 61 69 6e |ut those contain| 00073d60 69 6e 67 20 74 68 65 20 65 6e 64 20 63 61 70 20 |ing the end cap | 00073d70 73 74 79 6c 65 2e 20 49 74 20 69 73 20 64 65 66 |style. It is def| 00073d80 69 6e 65 64 20 61 73 20 30 78 30 43 2e 00 00 00 |ined as 0x0C....| 00073d90 44 41 54 41 e8 00 00 00 70 61 63 6b 6d 61 73 6b |DATA....packmask| 00073da0 5f 6a 6f 69 6e 0a 54 68 69 73 20 6d 61 63 72 6f |_join.This macro| 00073db0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00073dc0 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 |drawftypes.h=>dr| 00073dd0 61 77 66 74 79 70 65 73 3e 2e 20 49 74 20 69 73 |awftypes>. It is| 00073de0 20 61 20 76 61 6c 75 65 20 77 68 69 63 68 20 77 | a value which w| 00073df0 68 65 6e 20 6c 6f 67 69 63 61 6c 6c 79 20 41 4e |hen logically AN| 00073e00 44 65 64 20 77 69 74 68 20 61 20 70 61 74 68 20 |Ded with a path | 00073e10 73 74 79 6c 65 20 64 65 73 63 69 70 74 69 6f 6e |style desciption| 00073e20 20 77 6f 72 64 20 77 69 6c 6c 20 6d 61 73 6b 20 | word will mask | 00073e30 6f 75 74 20 61 6c 6c 20 62 69 74 73 20 62 75 74 |out all bits but| 00073e40 20 74 68 6f 73 65 20 63 6f 6e 74 61 69 6e 69 6e | those containin| 00073e50 67 20 74 68 65 20 6a 6f 69 6e 20 73 74 79 6c 65 |g the join style| 00073e60 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 00073e70 61 73 20 30 78 30 33 2e 44 41 54 41 f1 00 00 00 |as 0x03.DATA....| 00073e80 70 61 63 6b 6d 61 73 6b 5f 73 74 61 72 74 63 61 |packmask_startca| 00073e90 70 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 |p.This macro is | 00073ea0 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 |defined in <draw| 00073eb0 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 |ftypes.h=>drawft| 00073ec0 79 70 65 73 3e 2e 20 49 74 20 69 73 20 61 20 76 |ypes>. It is a v| 00073ed0 61 6c 75 65 20 77 68 69 63 68 20 77 68 65 6e 20 |alue which when | 00073ee0 6c 6f 67 69 63 61 6c 6c 79 20 41 4e 44 65 64 20 |logically ANDed | 00073ef0 77 69 74 68 20 61 20 70 61 74 68 20 73 74 79 6c |with a path styl| 00073f00 65 20 64 65 73 63 69 70 74 69 6f 6e 20 77 6f 72 |e desciption wor| 00073f10 64 20 77 69 6c 6c 20 6d 61 73 6b 20 6f 75 74 20 |d will mask out | 00073f20 61 6c 6c 20 62 69 74 73 20 62 75 74 20 74 68 6f |all bits but tho| 00073f30 73 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 |se containing th| 00073f40 65 20 73 74 61 72 74 20 63 61 70 20 73 74 79 6c |e start cap styl| 00073f50 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |e. It is defined| 00073f60 20 61 73 20 30 78 33 30 2e 00 00 00 44 41 54 41 | as 0x30....DATA| 00073f70 ee 00 00 00 70 61 63 6b 6d 61 73 6b 5f 77 69 6e |....packmask_win| 00073f80 64 72 75 6c 65 0a 54 68 69 73 20 6d 61 63 72 6f |drule.This macro| 00073f90 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00073fa0 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 |drawftypes.h=>dr| 00073fb0 61 77 66 74 79 70 65 73 3e 2e 20 49 74 20 69 73 |awftypes>. It is| 00073fc0 20 61 20 76 61 6c 75 65 20 77 68 69 63 68 20 77 | a value which w| 00073fd0 68 65 6e 20 6c 6f 67 69 63 61 6c 6c 79 20 41 4e |hen logically AN| 00073fe0 44 65 64 20 77 69 74 68 20 61 20 70 61 74 68 20 |Ded with a path | 00073ff0 73 74 79 6c 65 20 64 65 73 63 69 70 74 69 6f 6e |style desciption| 00074000 20 77 6f 72 64 20 77 69 6c 6c 20 6d 61 73 6b 20 | word will mask | 00074010 6f 75 74 20 61 6c 6c 20 62 69 74 73 20 62 75 74 |out all bits but| 00074020 20 74 68 6f 73 65 20 63 6f 6e 74 61 69 6e 69 6e | those containin| 00074030 67 20 74 68 65 20 77 69 6e 64 69 6e 67 20 72 75 |g the winding ru| 00074040 6c 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |le. It is define| 00074050 64 20 61 73 20 30 78 34 30 2e 00 00 44 49 52 24 |d as 0x40...DIR$| 00074060 b4 00 00 00 b4 00 00 00 10 41 07 00 46 ff ff ff |.........A..F...| 00074070 d2 2d 27 23 d7 00 00 00 13 00 00 00 00 00 00 00 |.-'#............| 00074080 64 61 73 68 65 64 00 00 e8 41 07 00 46 ff ff ff |dashed...A..F...| 00074090 1f 24 27 23 d3 00 00 00 13 00 00 00 00 00 00 00 |.$'#............| 000740a0 65 6e 64 63 61 70 00 00 bc 42 07 00 46 ff ff ff |endcap...B..F...| 000740b0 1a 21 27 23 ce 00 00 00 13 00 00 00 00 00 00 00 |.!'#............| 000740c0 6a 6f 69 6e 00 00 00 00 8c 43 07 00 46 ff ff ff |join.....C..F...| 000740d0 6f 27 27 23 d7 00 00 00 13 00 00 00 00 00 00 00 |o''#............| 000740e0 73 74 61 72 74 63 61 70 00 00 00 00 64 44 07 00 |startcap....dD..| 000740f0 46 ff ff ff 81 2a 27 23 d4 00 00 00 13 00 00 00 |F....*'#........| 00074100 00 00 00 00 77 69 6e 64 72 75 6c 65 00 00 00 00 |....windrule....| 00074110 44 41 54 41 d7 00 00 00 70 61 63 6b 73 68 66 74 |DATA....packshft| 00074120 5f 64 61 73 68 65 64 0a 54 68 69 73 20 6d 61 63 |_dashed.This mac| 00074130 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 00074140 20 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e | <drawftypes.h=>| 00074150 64 72 61 77 66 74 79 70 65 73 3e 2e 20 49 74 20 |drawftypes>. It | 00074160 69 73 20 61 20 76 61 6c 75 65 20 77 68 69 63 68 |is a value which| 00074170 20 69 73 20 74 68 65 20 6c 65 66 74 20 73 68 69 | is the left shi| 00074180 66 74 20 72 65 71 75 69 72 65 64 20 6f 6e 20 61 |ft required on a| 00074190 20 64 61 73 68 20 70 61 74 74 65 72 6e 20 66 6c | dash pattern fl| 000741a0 61 67 20 74 6f 20 6d 6f 76 65 20 69 74 20 69 6e |ag to move it in| 000741b0 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 62 |to the correct b| 000741c0 69 74 20 66 6f 72 20 74 68 65 20 70 61 74 68 20 |it for the path | 000741d0 73 74 79 6c 65 20 64 65 73 63 72 69 70 74 69 6f |style descriptio| 000741e0 6e 20 77 6f 72 64 2e 00 44 41 54 41 d3 00 00 00 |n word..DATA....| 000741f0 70 61 63 6b 73 68 66 74 5f 65 6e 64 63 61 70 0a |packshft_endcap.| 00074200 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 00074210 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 |fined in <drawft| 00074220 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 |ypes.h=>drawftyp| 00074230 65 73 3e 2e 20 49 74 20 69 73 20 61 20 76 61 6c |es>. It is a val| 00074240 75 65 20 77 68 69 63 68 20 69 73 20 74 68 65 20 |ue which is the | 00074250 6c 65 66 74 20 73 68 69 66 74 20 72 65 71 75 69 |left shift requi| 00074260 72 65 64 20 6f 6e 20 61 20 65 6e 64 20 63 61 70 |red on a end cap| 00074270 20 73 74 79 6c 65 20 74 6f 20 6d 6f 76 65 20 69 | style to move i| 00074280 74 20 69 6e 74 6f 20 74 68 65 20 63 6f 72 72 65 |t into the corre| 00074290 63 74 20 62 69 74 20 66 6f 72 20 74 68 65 20 70 |ct bit for the p| 000742a0 61 74 68 20 73 74 79 6c 65 20 64 65 73 63 72 69 |ath style descri| 000742b0 70 74 69 6f 6e 20 77 6f 72 64 2e 00 44 41 54 41 |ption word..DATA| 000742c0 ce 00 00 00 70 61 63 6b 73 68 66 74 5f 6a 6f 69 |....packshft_joi| 000742d0 6e 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 |n.This macro is | 000742e0 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 |defined in <draw| 000742f0 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 |ftypes.h=>drawft| 00074300 79 70 65 73 3e 2e 20 49 74 20 69 73 20 61 20 76 |ypes>. It is a v| 00074310 61 6c 75 65 20 77 68 69 63 68 20 69 73 20 74 68 |alue which is th| 00074320 65 20 6c 65 66 74 20 73 68 69 66 74 20 72 65 71 |e left shift req| 00074330 75 69 72 65 64 20 6f 6e 20 61 20 6a 6f 69 6e 20 |uired on a join | 00074340 73 74 79 6c 65 20 74 6f 20 6d 6f 76 65 20 69 74 |style to move it| 00074350 20 69 6e 74 6f 20 74 68 65 20 63 6f 72 72 65 63 | into the correc| 00074360 74 20 62 69 74 20 66 6f 72 20 74 68 65 20 70 61 |t bit for the pa| 00074370 74 68 20 73 74 79 6c 65 20 64 65 73 63 72 69 70 |th style descrip| 00074380 74 69 6f 6e 20 77 6f 72 64 2e 00 00 44 41 54 41 |tion word...DATA| 00074390 d7 00 00 00 70 61 63 6b 73 68 66 74 5f 73 74 61 |....packshft_sta| 000743a0 72 74 63 61 70 0a 54 68 69 73 20 6d 61 63 72 6f |rtcap.This macro| 000743b0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000743c0 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 |drawftypes.h=>dr| 000743d0 61 77 66 74 79 70 65 73 3e 2e 20 49 74 20 69 73 |awftypes>. It is| 000743e0 20 61 20 76 61 6c 75 65 20 77 68 69 63 68 20 69 | a value which i| 000743f0 73 20 74 68 65 20 6c 65 66 74 20 73 68 69 66 74 |s the left shift| 00074400 20 72 65 71 75 69 72 65 64 20 6f 6e 20 61 20 73 | required on a s| 00074410 74 61 72 74 20 63 61 70 20 73 74 79 6c 65 20 74 |tart cap style t| 00074420 6f 20 6d 6f 76 65 20 69 74 20 69 6e 74 6f 20 74 |o move it into t| 00074430 68 65 20 63 6f 72 72 65 63 74 20 62 69 74 20 66 |he correct bit f| 00074440 6f 72 20 74 68 65 20 70 61 74 68 20 73 74 79 6c |or the path styl| 00074450 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 77 6f |e description wo| 00074460 72 64 2e 00 44 41 54 41 d4 00 00 00 70 61 63 6b |rd..DATA....pack| 00074470 73 68 66 74 5f 77 69 6e 64 72 75 6c 65 0a 54 68 |shft_windrule.Th| 00074480 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 00074490 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 |ned in <drawftyp| 000744a0 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 |es.h=>drawftypes| 000744b0 3e 2e 20 49 74 20 69 73 20 61 20 76 61 6c 75 65 |>. It is a value| 000744c0 20 77 68 69 63 68 20 69 73 20 74 68 65 20 6c 65 | which is the le| 000744d0 66 74 20 73 68 69 66 74 20 72 65 71 75 69 72 65 |ft shift require| 000744e0 64 20 6f 6e 20 61 20 77 69 6e 64 69 6e 67 20 72 |d on a winding r| 000744f0 75 6c 65 20 74 6f 20 6d 6f 76 65 20 69 74 20 69 |ule to move it i| 00074500 6e 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 |nto the correct | 00074510 62 69 74 20 66 6f 72 20 74 68 65 20 70 61 74 68 |bit for the path| 00074520 20 73 74 79 6c 65 20 64 65 73 63 72 69 70 74 69 | style descripti| 00074530 6f 6e 20 77 6f 72 64 2e 44 49 52 24 4c 00 00 00 |on word.DIR$L...| 00074540 4c 00 00 00 84 45 07 00 46 ff ff ff 59 ab 37 26 |L....E..F...Y.7&| 00074550 f9 00 00 00 13 00 00 00 00 00 00 00 62 6c 6f 63 |............bloc| 00074560 6b 00 00 00 80 46 07 00 46 ff ff ff e7 94 37 26 |k....F..F.....7&| 00074570 ed 00 00 00 13 00 00 00 00 00 00 00 65 6e 74 72 |............entr| 00074580 79 00 00 00 44 41 54 41 f9 00 00 00 70 61 6c 65 |y...DATA....pale| 00074590 74 74 65 5f 62 6c 6f 63 6b 0a 54 68 69 73 20 69 |tte_block.This i| 000745a0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 000745b0 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 |skLib:Wimp.h=>Wi| 000745c0 6d 70 3e 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |mp> as the follo| 000745d0 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 000745e0 0a 20 20 20 5c 7b 0a 20 20 20 20 20 20 3c 70 61 |. \{. <pa| 000745f0 6c 65 74 74 65 5f 65 6e 74 72 79 3e 20 63 6f 6c |lette_entry> col| 00074600 6f 75 72 5b 31 36 5d 3b 0a 20 20 20 20 20 20 70 |our[16];. p| 00074610 61 6c 65 74 74 65 5f 65 6e 74 72 79 20 62 6f 72 |alette_entry bor| 00074620 64 65 72 3b 0a 20 20 20 20 20 20 70 61 6c 65 74 |der;. palet| 00074630 74 65 5f 65 6e 74 72 79 20 6d 6f 75 73 65 31 3b |te_entry mouse1;| 00074640 0a 20 20 20 20 20 20 70 61 6c 65 74 74 65 5f 65 |. palette_e| 00074650 6e 74 72 79 20 6d 6f 75 73 65 32 3b 0a 20 20 20 |ntry mouse2;. | 00074660 20 20 20 70 61 6c 65 74 74 65 5f 65 6e 74 72 79 | palette_entry| 00074670 20 6d 6f 75 73 65 33 3b 0a 20 20 20 7d 00 00 00 | mouse3;. }...| 00074680 44 41 54 41 ed 00 00 00 70 61 6c 65 74 74 65 5f |DATA....palette_| 00074690 65 6e 74 72 79 0a 54 68 69 73 20 74 79 70 65 20 |entry.This type | 000746a0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 000746b0 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 |eskLib:Wimp.h=>W| 000746c0 69 6d 70 3e 20 61 73 20 74 68 65 20 66 6f 6c 6c |imp> as the foll| 000746d0 6f 77 69 6e 67 20 75 6e 69 6f 6e 3a 0a 0a 20 20 |owing union:.. | 000746e0 20 5c 7b 0a 20 20 20 20 20 20 69 6e 74 20 76 61 | \{. int va| 000746f0 6c 75 65 3b 0a 20 20 20 20 20 20 73 74 72 75 63 |lue;. struc| 00074700 74 0a 20 20 20 20 20 20 5c 7b 0a 20 20 20 20 20 |t. \{. | 00074710 20 20 20 20 63 68 61 72 20 67 63 6f 6c 3b 0a 20 | char gcol;. | 00074720 20 20 20 20 20 20 20 20 63 68 61 72 20 72 65 64 | char red| 00074730 3b 0a 20 20 20 20 20 20 20 20 20 63 68 61 72 20 |;. char | 00074740 67 72 65 65 6e 3b 0a 20 20 20 20 20 20 20 20 20 |green;. | 00074750 63 68 61 72 20 62 6c 75 65 3b 0a 20 20 20 20 20 |char blue;. | 00074760 20 7d 20 64 61 74 61 3b 0a 20 20 20 7d 00 00 00 | } data;. }...| 00074770 44 41 54 41 a6 03 00 00 44 65 73 6b 4c 69 62 3a |DATA....DeskLib:| 00074780 50 61 6e 65 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 |Pane.h.Version: | 00074790 31 2e 31 31 20 28 33 30 74 68 20 4d 61 72 63 68 |1.11 (30th March| 000747a0 20 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 | 1994).#line.Thi| 000747b0 73 20 68 65 61 64 65 72 20 66 69 6c 65 20 70 72 |s header file pr| 000747c0 6f 76 69 64 65 73 20 66 61 63 69 6c 69 74 69 65 |ovides facilitie| 000747d0 73 20 66 6f 72 20 75 73 69 6e 67 20 6c 69 6e 6b |s for using link| 000747e0 65 64 20 77 69 6e 64 6f 77 73 20 69 65 20 77 68 |ed windows ie wh| 000747f0 65 6e 20 79 6f 75 20 6f 70 65 6e 20 6f 6e 65 20 |en you open one | 00074800 77 69 6e 64 6f 77 20 61 6e 6f 74 68 65 72 20 6f |window another o| 00074810 6e 65 20 6f 70 65 6e 73 20 61 73 20 77 65 6c 6c |ne opens as well| 00074820 20 65 67 20 74 68 65 20 73 74 61 74 75 73 20 62 | eg the status b| 00074830 61 72 20 6f 6e 20 53 74 72 6f 6e 67 45 44 2c 20 |ar on StrongED, | 00074840 74 68 65 20 74 6f 6f 6c 62 6f 78 20 6f 6e 20 44 |the toolbox on D| 00074850 72 61 77 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a |raw...Functions:| 00074860 0a 0a 23 49 6e 64 65 6e 74 20 36 0a 23 54 61 62 |..#Indent 6.#Tab| 00074870 6c 65 20 34 20 32 31 0a 3c 50 61 6e 65 5f 43 72 |le 4 21.<Pane_Cr| 00074880 65 61 74 65 41 6e 64 4c 69 6e 6b 3e 0a 3c 50 61 |eateAndLink>.<Pa| 00074890 6e 65 5f 44 65 6c 65 74 65 3e 0a 3c 50 61 6e 65 |ne_Delete>.<Pane| 000748a0 5f 47 65 74 53 79 73 48 61 6e 64 6c 65 3e 0a 3c |_GetSysHandle>.<| 000748b0 50 61 6e 65 5f 48 69 64 65 3e 0a 3c 50 61 6e 65 |Pane_Hide>.<Pane| 000748c0 5f 4c 69 6e 6b 3e 0a 3c 50 61 6e 65 5f 4f 70 65 |_Link>.<Pane_Ope| 000748d0 6e 45 76 65 6e 74 48 61 6e 64 6c 65 72 3e 0a 3c |nEventHandler>.<| 000748e0 50 61 6e 65 5f 53 65 74 46 6c 61 67 73 3e 0a 3c |Pane_SetFlags>.<| 000748f0 50 61 6e 65 5f 53 68 6f 77 3e 0a 23 45 6e 64 54 |Pane_Show>.#EndT| 00074900 61 62 6c 65 0a 23 49 6e 64 65 6e 74 20 30 0a 0a |able.#Indent 0..| 00074910 4d 61 63 72 6f 73 3a 0a 0a 23 49 6e 64 65 6e 74 |Macros:..#Indent| 00074920 20 31 33 0a 23 54 61 62 6c 65 20 33 20 32 31 0a | 13.#Table 3 21.| 00074930 3c 70 61 6e 65 5f 4f 50 45 4e 3d 3e 70 61 6e 65 |<pane_OPEN=>pane| 00074940 5f 66 6c 61 67 73 5f 3e 0a 3c 70 61 6e 65 5f 46 |_flags_>.<pane_F| 00074950 49 58 45 44 3d 3e 70 61 6e 65 5f 66 6c 61 67 73 |IXED=>pane_flags| 00074960 5f 3e 0a 3c 70 61 6e 65 5f 52 45 53 49 5a 45 3d |_>.<pane_RESIZE=| 00074970 3e 70 61 6e 65 5f 66 6c 61 67 73 5f 3e 0a 3c 70 |>pane_flags_>.<p| 00074980 61 6e 65 5f 48 4f 52 49 5a 3d 3e 70 61 6e 65 5f |ane_HORIZ=>pane_| 00074990 66 6c 61 67 73 5f 3e 0a 3c 70 61 6e 65 5f 56 45 |flags_>.<pane_VE| 000749a0 52 54 3d 3e 70 61 6e 65 5f 66 6c 61 67 73 5f 3e |RT=>pane_flags_>| 000749b0 0a 23 45 6e 64 54 61 62 6c 65 0a 23 49 6e 64 65 |.#EndTable.#Inde| 000749c0 6e 74 20 30 0a 0a 54 79 70 65 73 3a 0a 0a 7b 61 |nt 0..Types:..{a| 000749d0 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 70 61 6e |lign centre}<pan| 000749e0 65 5f 64 61 74 61 3e 7b 61 6c 69 67 6e 7d 0a 0a |e_data>{align}..| 000749f0 54 6f 20 75 73 65 20 77 69 6e 64 6f 77 73 20 77 |To use windows w| 00074a00 69 74 68 20 70 61 6e 65 73 2c 20 66 69 72 73 74 |ith panes, first| 00074a10 20 6c 69 6e 6b 20 74 77 6f 20 77 69 6e 64 6f 77 | link two window| 00074a20 73 20 75 73 69 6e 67 20 3c 50 61 6e 65 5f 4c 69 |s using <Pane_Li| 00074a30 6e 6b 3e 20 6f 72 20 3c 50 61 6e 65 5f 43 72 65 |nk> or <Pane_Cre| 00074a40 61 74 65 41 6e 64 4c 69 6e 6b 3e 2e 20 59 6f 75 |ateAndLink>. You| 00074a50 20 63 61 6e 20 74 68 65 6e 20 6f 70 65 6e 20 61 | can then open a| 00074a60 6e 64 20 63 6c 6f 73 65 20 74 68 65 6e 20 75 73 |nd close then us| 00074a70 69 6e 67 20 3c 50 61 6e 65 5f 53 68 6f 77 3e 20 |ing <Pane_Show> | 00074a80 61 6e 64 20 3c 50 61 6e 65 5f 48 69 64 65 3e 20 |and <Pane_Hide> | 00074a90 69 6e 73 74 65 61 64 20 6f 66 20 3c 57 69 6e 64 |instead of <Wind| 00074aa0 6f 77 5f 53 68 6f 77 3e 20 61 6e 64 20 3c 57 69 |ow_Show> and <Wi| 00074ab0 6e 64 6f 77 5f 48 69 64 65 3e 2e 20 49 74 20 69 |ndow_Hide>. It i| 00074ac0 73 20 62 65 73 74 20 74 6f 20 69 6e 73 74 61 6c |s best to instal| 00074ad0 6c 20 3c 50 61 6e 65 5f 4f 70 65 6e 45 76 65 6e |l <Pane_OpenEven| 00074ae0 74 48 61 6e 64 6c 65 72 3e 20 75 73 69 6e 67 20 |tHandler> using | 00074af0 3c 45 76 65 6e 74 5f 43 6c 61 69 6d 3e 20 66 6f |<Event_Claim> fo| 00074b00 72 20 65 61 73 79 20 77 69 6e 64 6f 77 20 6f 70 |r easy window op| 00074b10 65 6e 69 6e 67 2e 00 00 44 49 52 24 6c 01 00 00 |ening...DIR$l...| 00074b20 6c 01 00 00 84 4c 07 00 46 ff ff ff 26 75 44 25 |l....L..F...&uD%| 00074b30 35 02 00 00 13 00 00 00 00 00 00 00 43 72 65 61 |5...........Crea| 00074b40 74 65 41 6e 64 4c 69 6e 6b 00 00 00 bc 4e 07 00 |teAndLink....N..| 00074b50 46 ff ff ff 78 14 45 25 09 03 00 00 13 00 00 00 |F...x.E%........| 00074b60 00 00 00 00 64 61 74 61 00 00 00 00 c8 51 07 00 |....data.....Q..| 00074b70 46 ff ff ff 4c 7b 44 25 d9 00 00 00 13 00 00 00 |F...L{D%........| 00074b80 00 00 00 00 44 65 6c 65 74 65 00 00 a4 52 07 00 |....Delete...R..| 00074b90 46 fd ff ff 5f c7 44 25 96 02 00 00 13 00 00 00 |F..._.D%........| 00074ba0 00 00 00 00 66 6c 61 67 73 5f 00 00 3c 55 07 00 |....flags_..<U..| 00074bb0 46 ff ff ff 7e 80 44 25 22 01 00 00 13 00 00 00 |F...~.D%".......| 00074bc0 00 00 00 00 47 65 74 53 79 73 48 61 6e 64 6c 65 |....GetSysHandle| 00074bd0 00 00 00 00 60 56 07 00 46 ff ff ff 48 84 44 25 |....`V..F...H.D%| 00074be0 ae 00 00 00 13 00 00 00 00 00 00 00 48 69 64 65 |............Hide| 00074bf0 00 00 00 00 10 57 07 00 46 ff ff ff 1a 8d 44 25 |.....W..F.....D%| 00074c00 b1 01 00 00 13 00 00 00 00 00 00 00 4c 69 6e 6b |............Link| 00074c10 00 00 00 00 c4 58 07 00 46 ff ff ff 48 dc 44 25 |.....X..F...H.D%| 00074c20 79 01 00 00 13 00 00 00 00 00 00 00 4f 70 65 6e |y...........Open| 00074c30 45 76 65 6e 74 48 61 6e 64 6c 65 72 00 00 00 00 |EventHandler....| 00074c40 40 5a 07 00 46 ff ff ff 94 ec 44 25 9d 01 00 00 |@Z..F.....D%....| 00074c50 13 00 00 00 00 00 00 00 53 65 74 46 6c 61 67 73 |........SetFlags| 00074c60 00 00 00 00 e0 5b 07 00 46 ff ff ff 31 f1 44 25 |.....[..F...1.D%| 00074c70 d8 00 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |............Show| 00074c80 00 00 00 00 44 41 54 41 35 02 00 00 50 61 6e 65 |....DATA5...Pane| 00074c90 5f 43 72 65 61 74 65 41 6e 64 4c 69 6e 6b 0a 53 |_CreateAndLink.S| 00074ca0 79 6e 74 61 78 3a 09 3c 77 69 6e 64 6f 77 5f 68 |yntax:.<window_h| 00074cb0 61 6e 64 6c 65 3e 20 50 61 6e 65 5f 43 72 65 61 |andle> Pane_Crea| 00074cc0 74 65 41 6e 64 4c 69 6e 6b 20 28 63 68 61 72 20 |teAndLink (char | 00074cd0 2a 6d 61 73 74 6e 61 6d 65 2c 20 63 68 61 72 20 |*mastname, char | 00074ce0 2a 70 61 6e 65 6e 61 6d 65 2c 20 69 6e 74 20 6d |*panename, int m| 00074cf0 61 73 74 6d 61 78 73 69 7a 65 2c 20 69 6e 74 20 |astmaxsize, int | 00074d00 70 61 6e 65 6d 61 78 73 69 7a 65 2c 20 3c 77 69 |panemaxsize, <wi| 00074d10 6d 70 5f 70 6f 69 6e 74 3e 20 2a 6f 66 66 73 65 |mp_point> *offse| 00074d20 74 2c 20 77 69 6d 70 5f 70 6f 69 6e 74 20 2a 73 |t, wimp_point *s| 00074d30 69 7a 65 2c 20 69 6e 74 20 3c 66 6c 61 67 73 3d |ize, int <flags=| 00074d40 3e 70 61 6e 65 5f 66 6c 61 67 73 5f 3e 29 3b 0a |>pane_flags_>);.| 00074d50 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00074d60 3a 50 61 6e 65 2e 68 3d 3e 50 61 6e 65 3e 0a 0a |:Pane.h=>Pane>..| 00074d70 52 65 74 75 72 6e 73 3a 09 57 69 6e 64 6f 77 20 |Returns:.Window | 00074d80 68 61 6e 64 6c 65 20 6f 66 20 6d 61 73 74 65 72 |handle of master| 00074d90 20 77 69 6e 64 6f 77 2e 0a 0a 54 68 69 73 20 66 | window...This f| 00074da0 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 |unction creates | 00074db0 61 6e 64 20 6c 69 6e 6b 73 20 74 68 65 20 74 77 |and links the tw| 00074dc0 6f 20 77 69 6e 64 6f 77 73 20 67 69 76 65 6e 20 |o windows given | 00074dd0 69 6e 20 2f 6d 61 73 74 6e 61 6d 65 2f 20 61 6e |in /mastname/ an| 00074de0 64 20 2f 70 61 6e 65 6e 61 6d 65 2f 20 77 69 74 |d /panename/ wit| 00074df0 68 20 74 69 74 6c 65 20 73 69 7a 65 73 20 61 73 |h title sizes as| 00074e00 20 66 6f 72 20 3c 54 65 6d 70 6c 61 74 65 5f 43 | for <Template_C| 00074e10 6c 6f 6e 65 3e 2e 20 2f 6f 66 66 73 65 74 2f 20 |lone>. /offset/ | 00074e20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6f 66 66 |contains the off| 00074e30 73 65 74 20 66 72 6f 6d 20 74 68 65 20 6d 61 73 |set from the mas| 00074e40 74 65 72 20 77 69 6e 64 6f 77 20 74 6f 20 74 68 |ter window to th| 00074e50 65 20 70 61 6e 65 20 77 69 6e 64 6f 77 2e 20 49 |e pane window. I| 00074e60 66 20 2f 6f 66 66 73 65 74 2f 20 6f 72 20 2f 73 |f /offset/ or /s| 00074e70 69 7a 65 2f 20 61 72 65 20 3c 4e 55 4c 4c 3e 20 |ize/ are <NULL> | 00074e80 74 68 65 6e 20 74 68 65 20 6f 66 66 73 65 74 20 |then the offset | 00074e90 62 65 74 77 65 65 6e 20 74 68 65 20 74 65 6d 70 |between the temp| 00074ea0 6c 61 74 65 73 20 61 73 20 64 65 66 69 6e 65 64 |lates as defined| 00074eb0 20 69 73 20 75 73 65 64 2e 00 00 00 44 41 54 41 | is used....DATA| 00074ec0 09 03 00 00 70 61 6e 65 5f 64 61 74 61 0a 54 68 |....pane_data.Th| 00074ed0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00074ee0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 |ed in <DeskLib:P| 00074ef0 61 6e 65 2e 68 3d 3e 50 61 6e 65 3e 2e 20 49 74 |ane.h=>Pane>. It| 00074f00 20 63 6f 6e 74 61 69 6e 73 20 64 65 74 61 69 6c | contains detail| 00074f10 73 20 61 62 6f 75 74 20 61 20 6c 69 6e 6b 65 64 |s about a linked| 00074f20 20 77 69 6e 64 6f 77 20 70 61 69 72 20 69 6e 20 | window pair in | 00074f30 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 |the following st| 00074f40 72 75 63 74 75 72 65 3a 0a 0a 5c 7b 0a 20 3c 77 |ructure:..\{. <w| 00074f50 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 6d 61 |indow_handle>.ma| 00074f60 73 74 65 72 3b 0a 20 3c 77 69 6e 64 6f 77 5f 68 |ster;. <window_h| 00074f70 61 6e 64 6c 65 3e 09 70 61 6e 65 3b 0a 20 3c 77 |andle>.pane;. <w| 00074f80 69 6d 70 5f 70 6f 69 6e 74 3e 09 09 6f 66 66 73 |imp_point>..offs| 00074f90 65 74 3b 0a 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 |et;. <wimp_point| 00074fa0 3e 09 09 73 69 7a 65 3b 0a 20 75 6e 69 6f 6e 0a |>..size;. union.| 00074fb0 20 5c 7b 0a 20 20 69 6e 74 20 76 61 6c 75 65 3b | \{. int value;| 00074fc0 0a 20 20 73 74 72 75 63 74 0a 20 20 5c 7b 7b 74 |. struct. \{{t| 00074fd0 61 62 7d 0a 20 20 20 75 6e 73 69 67 6e 65 64 20 |ab}. unsigned | 00074fe0 69 73 6f 70 65 6e 09 3a 20 31 3b 09 2f 2a 20 43 |isopen.: 1;./* C| 00074ff0 75 72 72 65 6e 74 6c 79 20 6f 70 65 6e 20 2a 2f |urrently open */| 00075000 0a 20 20 20 75 6e 73 69 67 6e 65 64 20 66 69 78 |. unsigned fix| 00075010 65 64 09 3a 20 31 3b 09 2f 2a 20 50 61 6e 65 20 |ed.: 1;./* Pane | 00075020 73 74 61 79 73 20 69 6e 20 70 6c 61 63 65 20 2a |stays in place *| 00075030 2f 0a 20 20 20 75 6e 73 69 67 6e 65 64 20 72 65 |/. unsigned re| 00075040 73 69 7a 65 09 3a 20 31 3b 09 2f 2a 20 50 61 6e |size.: 1;./* Pan| 00075050 65 20 73 68 72 69 6e 6b 73 20 2a 2f 0a 20 20 20 |e shrinks */. | 00075060 75 6e 73 69 67 6e 65 64 20 68 6f 72 69 7a 09 3a |unsigned horiz.:| 00075070 20 31 3b 09 2f 2a 20 48 6f 72 69 7a 6f 6e 74 61 | 1;./* Horizonta| 00075080 6c 20 70 61 6e 65 20 2a 2f 0a 20 20 20 75 6e 73 |l pane */. uns| 00075090 69 67 6e 65 64 20 76 65 72 74 09 3a 20 31 3b 09 |igned vert.: 1;.| 000750a0 2f 2a 20 56 65 72 74 69 63 61 6c 20 70 61 6e 65 |/* Vertical pane| 000750b0 20 2a 2f 0a 20 20 20 75 6e 73 69 67 6e 65 64 20 | */. unsigned | 000750c0 64 75 6d 6d 79 09 3a 20 32 37 3b 0a 20 20 7d 20 |dummy.: 27;. } | 000750d0 64 61 74 61 3b 0a 20 7d 20 66 6c 61 67 73 3b 0a |data;. } flags;.| 000750e0 7d 0a 0a 2f 72 65 73 69 7a 65 2f 20 6d 65 61 6e |}../resize/ mean| 000750f0 73 20 74 68 61 74 20 74 68 65 20 70 61 6e 65 20 |s that the pane | 00075100 69 73 20 72 65 73 69 7a 65 64 20 77 69 74 68 20 |is resized with | 00075110 74 68 65 20 6d 61 69 6e 20 77 69 6e 64 6f 77 2e |the main window.| 00075120 20 48 6f 72 69 7a 6f 6e 74 61 6c 2f 56 65 72 74 | Horizontal/Vert| 00075130 69 63 61 6c 20 64 65 66 69 6e 65 73 20 74 68 65 |ical defines the| 00075140 20 77 61 79 20 74 68 65 20 70 61 6e 65 20 77 69 | way the pane wi| 00075150 6e 64 6f 77 20 73 68 72 69 6e 6b 73 20 28 6f 6e |ndow shrinks (on| 00075160 6c 79 20 69 66 20 2f 72 65 73 69 7a 65 2f 20 73 |ly if /resize/ s| 00075170 65 74 29 2e 20 2f 66 69 78 65 64 2f 20 6d 65 61 |et). /fixed/ mea| 00075180 6e 73 20 74 68 61 74 20 74 68 65 20 70 61 6e 65 |ns that the pane| 00075190 20 6b 65 65 70 73 20 74 68 65 20 73 61 6d 65 20 | keeps the same | 000751a0 72 65 6c 61 74 69 76 65 20 70 6f 73 69 74 69 6f |relative positio| 000751b0 6e 20 74 6f 20 74 68 65 20 6d 61 69 6e 20 77 69 |n to the main wi| 000751c0 6e 64 6f 77 2e 00 00 00 44 41 54 41 d9 00 00 00 |ndow....DATA....| 000751d0 50 61 6e 65 5f 44 65 6c 65 74 65 0a 53 79 6e 74 |Pane_Delete.Synt| 000751e0 61 78 3a 09 76 6f 69 64 20 50 61 6e 65 5f 44 65 |ax:.void Pane_De| 000751f0 6c 65 74 65 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |lete (<window_ha| 00075200 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a 48 65 61 64 |ndle> win);.Head| 00075210 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 61 6e |er:.<DeskLib:Pan| 00075220 65 2e 68 3d 3e 50 61 6e 65 3e 0a 0a 2f 77 69 6e |e.h=>Pane>../win| 00075230 2f 20 69 73 20 74 68 65 20 6d 61 73 74 65 72 20 |/ is the master | 00075240 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 2e 20 54 |window handle. T| 00075250 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6c |his function unl| 00075260 69 6e 6b 73 20 69 74 20 66 72 6f 6d 20 69 74 73 |inks it from its| 00075270 20 70 61 6e 65 20 61 6e 64 20 63 61 6c 6c 73 20 | pane and calls | 00075280 3c 57 69 6e 64 6f 77 5f 44 65 6c 65 74 65 3e 20 |<Window_Delete> | 00075290 66 6f 72 20 62 6f 74 68 20 77 69 6e 64 6f 77 73 |for both windows| 000752a0 2e 00 00 00 44 41 54 41 96 02 00 00 50 61 6e 65 |....DATA....Pane| 000752b0 20 66 6c 61 67 73 0a 54 68 65 73 65 20 64 65 74 | flags.These det| 000752c0 65 72 6d 69 6e 65 20 74 68 65 20 73 74 61 74 75 |ermine the statu| 000752d0 73 20 6f 66 20 74 68 65 20 6d 61 73 74 65 72 2f |s of the master/| 000752e0 70 61 6e 65 20 77 69 6e 64 6f 77 20 63 6f 6d 62 |pane window comb| 000752f0 69 6e 61 74 69 6f 6e 2e 20 54 68 65 20 69 6e 64 |ination. The ind| 00075300 69 76 69 64 75 61 6c 20 62 69 74 73 20 68 61 76 |ividual bits hav| 00075310 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 |e the following | 00075320 6d 65 61 6e 69 6e 67 3a 0a 0a 23 74 61 62 20 2c |meaning:..#tab ,| 00075330 61 6c 69 67 6e 20 63 65 6e 74 72 65 2c 61 6c 69 |align centre,ali| 00075340 67 6e 20 63 65 6e 74 72 65 2c 61 6c 69 67 6e 20 |gn centre,align | 00075350 6c 65 66 74 0a 20 09 42 69 74 09 56 61 6c 75 65 |left. .Bit.Value| 00075360 09 4d 61 63 72 6f 0a 20 09 30 09 31 09 70 61 6e |.Macro. .0.1.pan| 00075370 65 5f 4f 50 45 4e 0a 20 09 31 09 32 09 70 61 6e |e_OPEN. .1.2.pan| 00075380 65 5f 46 49 58 45 44 0a 20 09 32 09 34 09 70 61 |e_FIXED. .2.4.pa| 00075390 6e 65 5f 52 45 53 49 5a 45 0a 20 09 33 09 38 09 |ne_RESIZE. .3.8.| 000753a0 70 61 6e 65 5f 48 4f 52 49 5a 0a 20 09 34 09 31 |pane_HORIZ. .4.1| 000753b0 36 09 70 61 6e 65 5f 56 45 52 54 0a 0a 54 68 65 |6.pane_VERT..The| 000753c0 20 6d 61 63 72 6f 73 20 61 72 65 20 64 65 66 69 | macros are defi| 000753d0 6e 65 64 20 61 73 20 74 68 65 20 69 6e 64 69 76 |ned as the indiv| 000753e0 69 64 75 61 6c 20 62 69 74 20 76 61 6c 75 65 73 |idual bit values| 000753f0 2e 20 7b 2a 7d 70 61 6e 65 5f 4f 50 45 4e 7b 2a |. {*}pane_OPEN{*| 00075400 7d 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 |} indicates that| 00075410 20 74 68 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e | the combination| 00075420 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 70 | is currently op| 00075430 65 6e 2e 20 7b 2a 7d 70 61 6e 65 5f 46 49 58 45 |en. {*}pane_FIXE| 00075440 44 7b 2a 7d 20 69 6e 64 69 63 61 74 65 73 20 74 |D{*} indicates t| 00075450 68 61 74 20 74 68 65 20 70 61 6e 65 20 73 74 61 |hat the pane sta| 00075460 79 73 20 69 6e 20 70 6c 61 63 65 20 72 65 6c 61 |ys in place rela| 00075470 74 69 76 65 20 74 6f 20 74 68 65 20 74 6f 70 20 |tive to the top | 00075480 6c 65 66 74 20 6f 66 20 74 68 65 20 6d 61 69 6e |left of the main| 00075490 20 77 69 6e 64 6f 77 2e 20 7b 2a 7d 70 61 6e 65 | window. {*}pane| 000754a0 5f 52 45 53 49 5a 45 7b 2a 7d 20 69 6e 64 69 63 |_RESIZE{*} indic| 000754b0 61 74 65 73 20 74 68 61 74 20 74 68 65 20 70 61 |ates that the pa| 000754c0 6e 65 20 69 73 20 72 65 73 69 7a 65 64 20 77 69 |ne is resized wi| 000754d0 74 68 20 74 68 65 20 6d 61 69 6e 20 77 69 6e 64 |th the main wind| 000754e0 6f 77 2c 20 61 6e 64 20 7b 2a 7d 70 61 6e 65 5f |ow, and {*}pane_| 000754f0 48 4f 52 49 5a 7b 2a 7d 20 61 6e 64 20 7b 2a 7d |HORIZ{*} and {*}| 00075500 70 61 6e 65 5f 56 45 52 54 7b 2a 7d 20 69 6e 64 |pane_VERT{*} ind| 00075510 69 63 61 74 65 20 74 68 65 20 64 69 72 65 63 74 |icate the direct| 00075520 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 |ion in which the| 00075530 73 65 20 72 65 73 69 7a 65 2e 00 00 44 41 54 41 |se resize...DATA| 00075540 22 01 00 00 50 61 6e 65 5f 47 65 74 53 79 73 48 |"...Pane_GetSysH| 00075550 61 6e 64 6c 65 0a 53 79 6e 74 61 78 3a 09 3c 70 |andle.Syntax:.<p| 00075560 61 6e 65 5f 64 61 74 61 3e 20 2a 50 61 6e 65 5f |ane_data> *Pane_| 00075570 47 65 74 53 79 73 48 61 6e 64 6c 65 20 28 3c 77 |GetSysHandle (<w| 00075580 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 6d 61 |indow_handle> ma| 00075590 73 74 65 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c |ster);.Header:.<| 000755a0 44 65 73 6b 4c 69 62 3a 50 61 6e 65 2e 68 3d 3e |DeskLib:Pane.h=>| 000755b0 50 61 6e 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |Pane>..Returns:.| 000755c0 50 6f 69 6e 74 65 72 20 74 6f 20 73 74 72 75 63 |Pointer to struc| 000755d0 74 75 72 65 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 2e |ture, or <NULL>.| 000755e0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000755f0 67 65 74 73 20 61 20 70 6f 69 6e 74 65 72 20 74 |gets a pointer t| 00075600 6f 20 74 68 65 20 64 61 74 61 20 61 73 73 6f 63 |o the data assoc| 00075610 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 2f |iated with the /| 00075620 6d 61 73 74 65 72 2f 20 77 69 6e 64 6f 77 2e 20 |master/ window. | 00075630 49 74 20 72 65 74 75 72 6e 73 20 3c 4e 55 4c 4c |It returns <NULL| 00075640 3e 20 69 66 20 74 68 65 20 77 69 6e 64 6f 77 20 |> if the window | 00075650 69 73 20 6e 6f 74 20 6c 69 6e 6b 65 64 2e 00 00 |is not linked...| 00075660 44 41 54 41 ae 00 00 00 50 61 6e 65 5f 48 69 64 |DATA....Pane_Hid| 00075670 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 50 |e.Syntax:.void P| 00075680 61 6e 65 5f 48 69 64 65 28 3c 77 69 6e 64 6f 77 |ane_Hide(<window| 00075690 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 64 6f 77 29 |_handle> window)| 000756a0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000756b0 69 62 3a 50 61 6e 65 2e 68 3d 3e 50 61 6e 65 3e |ib:Pane.h=>Pane>| 000756c0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000756d0 63 61 6c 6c 73 20 3c 57 69 6e 64 6f 77 5f 48 69 |calls <Window_Hi| 000756e0 64 65 3e 20 62 6f 74 68 20 74 68 65 20 67 69 76 |de> both the giv| 000756f0 65 6e 20 6d 61 73 74 65 72 20 77 69 6e 64 6f 77 |en master window| 00075700 20 61 6e 64 20 69 74 73 20 70 61 6e 65 2e 00 00 | and its pane...| 00075710 44 41 54 41 b1 01 00 00 50 61 6e 65 5f 4c 69 6e |DATA....Pane_Lin| 00075720 6b 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 50 |k.Syntax:.void P| 00075730 61 6e 65 5f 4c 69 6e 6b 20 28 3c 77 69 6e 64 6f |ane_Link (<windo| 00075740 77 5f 68 61 6e 64 6c 65 3e 20 6d 61 73 74 2c 20 |w_handle> mast, | 00075750 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 20 70 61 |window_handle pa| 00075760 6e 65 2c 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e |ne, <wimp_point>| 00075770 20 2a 6f 66 66 73 65 74 2c 20 77 69 6d 70 5f 70 | *offset, wimp_p| 00075780 6f 69 6e 74 20 2a 73 69 7a 65 2c 20 69 6e 74 20 |oint *size, int | 00075790 3c 66 6c 61 67 73 3d 3e 70 61 6e 65 5f 66 6c 61 |<flags=>pane_fla| 000757a0 67 73 5f 3e 29 3b 0a 48 65 61 64 65 72 3a 09 3c |gs_>);.Header:.<| 000757b0 44 65 73 6b 4c 69 62 3a 50 61 6e 65 2e 68 3d 3e |DeskLib:Pane.h=>| 000757c0 50 61 6e 65 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |Pane>..This func| 000757d0 74 69 6f 6e 20 6c 69 6e 6b 73 20 74 68 65 20 6d |tion links the m| 000757e0 61 73 74 65 72 20 61 6e 64 20 70 61 6e 65 20 77 |aster and pane w| 000757f0 69 6e 64 6f 77 73 20 77 68 6f 73 65 20 77 69 6e |indows whose win| 00075800 64 6f 77 20 68 61 6e 64 6c 65 73 20 61 72 65 20 |dow handles are | 00075810 67 69 76 65 6e 2e 20 2f 6f 66 66 73 65 74 2f 20 |given. /offset/ | 00075820 73 70 65 63 69 66 69 65 73 20 74 68 65 20 6f 66 |specifies the of| 00075830 66 73 65 74 20 62 65 74 77 65 65 6e 20 74 68 65 |fset between the| 00075840 20 6d 61 73 74 65 72 20 61 6e 64 20 70 61 6e 65 | master and pane| 00075850 20 77 69 6e 64 6f 77 73 2e 20 49 66 20 2f 6f 66 | windows. If /of| 00075860 66 73 65 74 2f 20 6f 72 20 2f 73 69 7a 65 2f 20 |fset/ or /size/ | 00075870 61 72 65 20 3c 4e 55 4c 4c 3e 20 74 68 65 6e 20 |are <NULL> then | 00075880 74 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e |this information| 00075890 20 69 73 20 74 61 6b 65 6e 20 66 72 6f 6d 20 74 | is taken from t| 000758a0 68 65 20 77 69 6e 64 6f 77 20 64 65 66 69 6e 69 |he window defini| 000758b0 74 69 6f 6e 73 20 74 68 65 6d 73 65 6c 76 65 73 |tions themselves| 000758c0 2e 00 00 00 44 41 54 41 79 01 00 00 50 61 6e 65 |....DATAy...Pane| 000758d0 5f 4f 70 65 6e 45 76 65 6e 74 48 61 6e 64 6c 65 |_OpenEventHandle| 000758e0 72 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |r.Header:.<DeskL| 000758f0 69 62 3a 50 61 6e 65 2e 68 3d 3e 50 61 6e 65 3e |ib:Pane.h=>Pane>| 00075900 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00075910 63 61 6c 6c 73 20 3c 57 69 6d 70 5f 4f 70 65 6e |calls <Wimp_Open| 00075920 57 69 6e 64 6f 77 3e 20 6f 6e 20 62 6f 74 68 20 |Window> on both | 00075930 74 68 65 20 77 69 6e 64 6f 77 20 67 69 76 65 6e |the window given| 00075940 20 61 6e 64 20 69 74 73 20 61 73 73 6f 63 69 61 | and its associa| 00075950 74 65 64 20 70 61 6e 65 20 77 69 6e 64 6f 77 2e |ted pane window.| 00075960 20 41 74 74 61 63 68 20 74 6f 20 74 68 65 20 4f | Attach to the O| 00075970 70 65 6e 5f 57 69 6e 64 6f 77 5f 52 65 71 75 65 |pen_Window_Reque| 00075980 73 74 20 65 76 65 6e 74 20 66 6f 72 20 74 68 65 |st event for the| 00075990 20 6d 61 73 74 65 72 20 77 69 6e 64 6f 77 20 75 | master window u| 000759a0 73 69 6e 67 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c |sing:..{fCode;al| 000759b0 69 67 6e 20 63 65 6e 74 72 65 7d 3c 45 76 65 6e |ign centre}<Even| 000759c0 74 5f 43 6c 61 69 6d 3e 20 28 65 76 65 6e 74 5f |t_Claim> (event_| 000759d0 4f 50 45 4e 2c 5b 6d 61 73 74 65 72 5d 2c 65 76 |OPEN,[master],ev| 000759e0 65 6e 74 5f 41 4e 59 2c 20 50 61 6e 65 5f 4f 70 |ent_ANY, Pane_Op| 000759f0 65 6e 45 76 65 6e 74 48 61 6e 64 6c 65 72 2c 3c |enEventHandler,<| 00075a00 4e 55 4c 4c 3e 29 3b 7b 66 3b 61 6c 69 67 6e 7d |NULL>);{f;align}| 00075a10 0a 0a 77 68 65 72 65 20 5b 6d 61 73 74 65 72 5d |..where [master]| 00075a20 20 69 73 20 74 68 65 20 6d 61 73 74 65 72 20 77 | is the master w| 00075a30 69 6e 64 6f 77 20 68 61 6e 64 6c 65 2e 00 00 00 |indow handle....| 00075a40 44 41 54 41 9d 01 00 00 50 61 6e 65 5f 53 65 74 |DATA....Pane_Set| 00075a50 46 6c 61 67 73 0a 53 79 6e 74 61 78 3a 09 69 6e |Flags.Syntax:.in| 00075a60 74 20 50 61 6e 65 5f 53 65 74 46 6c 61 67 73 20 |t Pane_SetFlags | 00075a70 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |(<window_handle>| 00075a80 20 77 69 6e 2c 20 69 6e 74 20 3c 66 6c 61 67 73 | win, int <flags| 00075a90 3d 3e 70 61 6e 65 5f 66 6c 61 67 73 5f 3e 29 3b |=>pane_flags_>);| 00075aa0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00075ab0 62 3a 50 61 6e 65 2e 68 3d 3e 50 61 6e 65 3e 0a |b:Pane.h=>Pane>.| 00075ac0 0a 52 65 74 75 72 6e 73 3a 09 43 75 72 72 65 6e |.Returns:.Curren| 00075ad0 74 20 66 6c 61 67 73 20 6f 72 20 3c 4e 55 4c 4c |t flags or <NULL| 00075ae0 3e 20 6f 72 20 75 6e 64 65 66 69 6e 65 64 2e 0a |> or undefined..| 00075af0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 00075b00 65 74 73 20 74 68 65 20 66 6c 61 67 73 20 6f 66 |ets the flags of| 00075b10 20 74 68 65 20 6c 69 6e 6b 65 64 20 77 69 6e 64 | the linked wind| 00075b20 6f 77 73 2e 20 54 68 65 20 6d 61 73 74 65 72 20 |ows. The master | 00075b30 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 69 73 |window handle is| 00075b40 20 67 69 76 65 6e 20 69 6e 20 2f 77 69 6e 2f 20 | given in /win/ | 00075b50 61 6e 64 20 74 68 65 20 66 6c 61 67 73 20 69 6e |and the flags in| 00075b60 20 2f 66 6c 61 67 73 2f 2e 20 49 66 20 7b 2f 7d | /flags/. If {/}| 00075b70 66 6c 61 67 73 3d 3d 2d 31 7b 2f 7d 20 74 68 65 |flags==-1{/} the| 00075b80 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 6c |n the current fl| 00075b90 61 67 73 20 61 72 65 20 72 65 74 75 72 6e 65 64 |ags are returned| 00075ba0 2e 20 49 66 20 74 68 65 20 6d 61 73 74 65 72 20 |. If the master | 00075bb0 77 69 6e 64 6f 77 20 69 73 20 6e 6f 74 20 6c 69 |window is not li| 00075bc0 6e 6b 65 64 20 74 68 65 6e 20 2a 4e 55 4c 4c 2a |nked then *NULL*| 00075bd0 20 69 73 20 72 65 74 75 72 6e 65 64 2e 00 00 00 | is returned....| 00075be0 44 41 54 41 d8 00 00 00 50 61 6e 65 5f 53 68 6f |DATA....Pane_Sho| 00075bf0 77 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 50 |w.Syntax:.void P| 00075c00 61 6e 65 5f 53 68 6f 77 20 28 3c 77 69 6e 64 6f |ane_Show (<windo| 00075c10 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 64 6f 77 |w_handle> window| 00075c20 2c 20 3c 77 69 6e 64 6f 77 5f 6f 70 65 6e 70 6f |, <window_openpo| 00075c30 73 3e 20 6f 70 65 6e 70 6f 73 29 3b 0a 48 65 61 |s> openpos);.Hea| 00075c40 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 61 |der:.<DeskLib:Pa| 00075c50 6e 65 2e 68 3d 3e 50 61 6e 65 3e 0a 0a 54 68 69 |ne.h=>Pane>..Thi| 00075c60 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 |s function calls| 00075c70 20 3c 57 69 6e 64 6f 77 5f 53 68 6f 77 3e 20 66 | <Window_Show> f| 00075c80 6f 72 20 62 6f 74 68 20 74 68 65 20 67 69 76 65 |or both the give| 00075c90 6e 20 6d 61 73 74 65 72 20 77 69 6e 64 6f 77 20 |n master window | 00075ca0 61 6e 64 20 69 74 73 20 61 73 73 6f 63 69 61 74 |and its associat| 00075cb0 65 64 20 70 61 6e 65 2e 44 49 52 24 d4 00 00 00 |ed pane.DIR$....| 00075cc0 d4 00 00 00 8c 5d 07 00 46 ff ff ff 34 90 28 23 |.....]..F...4.(#| 00075cd0 ec 00 00 00 13 00 00 00 00 00 00 00 63 6c 6f 73 |............clos| 00075ce0 65 73 74 72 00 00 00 00 78 5e 07 00 46 ff ff ff |estr....x^..F...| 00075cf0 9d 80 28 23 49 01 00 00 13 00 00 00 00 00 00 00 |..(#I...........| 00075d00 63 75 72 76 65 73 74 72 00 00 00 00 c4 5f 07 00 |curvestr....._..| 00075d10 46 ff ff ff 4b ae 28 23 51 01 00 00 13 00 00 00 |F...K.(#Q.......| 00075d20 00 00 00 00 65 6c 65 70 74 72 00 00 18 61 07 00 |....eleptr...a..| 00075d30 46 ff ff ff d2 6c 28 23 f8 00 00 00 13 00 00 00 |F....l(#........| 00075d40 00 00 00 00 6c 69 6e 65 73 74 72 00 10 62 07 00 |....linestr..b..| 00075d50 46 ff ff ff 95 58 28 23 ee 00 00 00 13 00 00 00 |F....X(#........| 00075d60 00 00 00 00 6d 6f 76 65 73 74 72 00 00 63 07 00 |....movestr..c..| 00075d70 46 ff ff ff a6 97 28 23 f2 00 00 00 13 00 00 00 |F.....(#........| 00075d80 00 00 00 00 74 65 72 6d 73 74 72 00 44 41 54 41 |....termstr.DATA| 00075d90 ec 00 00 00 50 61 74 68 5f 63 6c 6f 73 65 73 74 |....Path_closest| 00075da0 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |r.This type is d| 00075db0 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 61 77 66 |efined in <drawf| 00075dc0 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 66 74 79 |types.h=>drawfty| 00075dd0 70 65 73 3e 20 61 73 20 61 20 74 79 70 65 20 63 |pes> as a type c| 00075de0 6f 6e 74 61 69 6e 69 6e 67 20 64 61 74 61 20 66 |ontaining data f| 00075df0 6f 72 20 61 20 63 6c 6f 73 65 20 63 6f 6d 70 6f |or a close compo| 00075e00 6e 65 6e 74 20 6f 66 20 61 20 70 61 74 68 2e 20 |nent of a path. | 00075e10 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00075e20 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 00075e30 74 72 75 63 74 75 72 65 3a 0a 7b 77 72 61 70 20 |tructure:.{wrap | 00075e40 6f 66 66 7d 0a 20 09 5c 7b 0a 20 09 20 09 64 72 |off}. .\{. . .dr| 00075e50 61 77 5f 70 61 74 68 5f 74 61 67 74 79 70 65 20 |aw_path_tagtype | 00075e60 74 61 67 3b 20 20 2f 2a 20 74 61 67 20 3d 3d 20 |tag; /* tag == | 00075e70 35 20 2a 2f 0a 20 09 7d 44 41 54 41 49 01 00 00 |5 */. .}DATAI...| 00075e80 50 61 74 68 5f 63 75 72 76 65 73 74 72 0a 54 68 |Path_curvestr.Th| 00075e90 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00075ea0 65 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 |ed in <drawftype| 00075eb0 73 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e |s.h=>drawftypes>| 00075ec0 20 61 73 20 61 20 74 79 70 65 20 63 6f 6e 74 61 | as a type conta| 00075ed0 69 6e 69 6e 67 20 64 61 74 61 20 66 6f 72 20 61 |ining data for a| 00075ee0 20 62 65 7a 69 65 72 20 63 75 72 76 65 20 63 6f | bezier curve co| 00075ef0 6d 70 6f 6e 65 6e 74 20 6f 66 20 61 20 70 61 74 |mponent of a pat| 00075f00 68 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |h. It is defined| 00075f10 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | as the followin| 00075f20 67 20 73 74 72 75 63 74 75 72 65 3a 0a 7b 77 72 |g structure:.{wr| 00075f30 61 70 20 6f 66 66 7d 0a 20 09 5c 7b 0a 20 09 20 |ap off}. .\{. . | 00075f40 09 3c 64 72 61 77 5f 70 61 74 68 5f 74 61 67 74 |.<draw_path_tagt| 00075f50 79 70 65 3e 09 74 61 67 3b 09 2f 2a 20 74 61 67 |ype>.tag;./* tag| 00075f60 20 3d 3d 20 36 20 2a 2f 0a 20 09 20 09 69 6e 74 | == 6 */. . .int| 00075f70 09 78 31 2c 79 31 3b 09 2f 2a 20 63 6f 6e 74 72 |.x1,y1;./* contr| 00075f80 6f 6c 20 70 6f 69 6e 74 20 2a 2f 0a 20 09 20 09 |ol point */. . .| 00075f90 69 6e 74 09 78 32 2c 79 32 3b 09 2f 2a 20 63 6f |int.x2,y2;./* co| 00075fa0 6e 74 72 6f 6c 20 70 6f 69 6e 74 20 2a 2f 0a 20 |ntrol point */. | 00075fb0 09 20 09 69 6e 74 09 78 33 2c 79 33 3b 0a 20 09 |. .int.x3,y3;. .| 00075fc0 7d 00 00 00 44 41 54 41 51 01 00 00 50 61 74 68 |}...DATAQ...Path| 00075fd0 5f 65 6c 65 70 74 72 0a 54 68 69 73 20 74 79 70 |_eleptr.This typ| 00075fe0 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 00075ff0 3c 64 72 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 |<drawftypes.h=>d| 00076000 72 61 77 66 74 79 70 65 73 3e 20 61 73 20 61 20 |rawftypes> as a | 00076010 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 |type containing | 00076020 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 70 |a pointer to a p| 00076030 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 2e 20 49 |ath component. I| 00076040 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 |t is defined as | 00076050 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 75 6e |the following un| 00076060 69 6f 6e 3a 0a 0a 20 09 5c 7b 0a 20 09 20 09 3c |ion:.. .\{. . .<| 00076070 50 61 74 68 5f 6d 6f 76 65 73 74 72 3e 09 2a 6d |Path_movestr>.*m| 00076080 6f 76 65 3b 0a 20 09 20 09 3c 50 61 74 68 5f 6c |ove;. . .<Path_l| 00076090 69 6e 65 73 74 72 3e 09 2a 6c 69 6e 65 3b 0a 20 |inestr>.*line;. | 000760a0 09 20 09 3c 50 61 74 68 5f 63 75 72 76 65 73 74 |. .<Path_curvest| 000760b0 72 3e 09 2a 63 75 72 76 65 3b 0a 20 09 20 09 3c |r>.*curve;. . .<| 000760c0 50 61 74 68 5f 63 6c 6f 73 65 73 74 72 3e 09 2a |Path_closestr>.*| 000760d0 63 6c 6f 73 65 3b 0a 20 09 20 09 3c 50 61 74 68 |close;. . .<Path| 000760e0 5f 74 65 72 6d 73 74 72 3e 09 2a 74 65 72 6d 3b |_termstr>.*term;| 000760f0 0a 20 09 20 09 63 68 61 72 09 2a 62 79 74 65 70 |. . .char.*bytep| 00076100 3b 0a 20 09 20 09 69 6e 74 09 2a 77 6f 72 64 70 |;. . .int.*wordp| 00076110 3b 0a 20 09 7d 00 00 00 44 41 54 41 f8 00 00 00 |;. .}...DATA....| 00076120 50 61 74 68 5f 6c 69 6e 65 73 74 72 0a 54 68 69 |Path_linestr.Thi| 00076130 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 00076140 64 20 69 6e 20 3c 64 72 61 77 66 74 79 70 65 73 |d in <drawftypes| 00076150 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 20 |.h=>drawftypes> | 00076160 61 73 20 61 20 74 79 70 65 20 63 6f 6e 74 61 69 |as a type contai| 00076170 6e 69 6e 67 20 64 61 74 61 20 66 6f 72 20 61 20 |ning data for a | 00076180 6c 69 6e 65 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f |line component o| 00076190 66 20 61 20 70 61 74 68 2e 20 49 74 20 69 73 20 |f a path. It is | 000761a0 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 |defined as the f| 000761b0 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 |ollowing structu| 000761c0 72 65 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 20 |re:.{wrap off}. | 000761d0 09 5c 7b 0a 20 09 20 09 3c 64 72 61 77 5f 70 61 |.\{. . .<draw_pa| 000761e0 74 68 5f 74 61 67 74 79 70 65 3e 09 74 61 67 3b |th_tagtype>.tag;| 000761f0 09 2f 2a 20 74 61 67 20 3d 3d 20 38 20 2a 2f 0a |./* tag == 8 */.| 00076200 20 09 20 09 69 6e 74 09 78 2c 79 3b 0a 20 09 7d | . .int.x,y;. .}| 00076210 44 41 54 41 ee 00 00 00 50 61 74 68 5f 6d 6f 76 |DATA....Path_mov| 00076220 65 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |estr.This type i| 00076230 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 00076240 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 00076250 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 00076260 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 64 61 74 |e containing dat| 00076270 61 20 66 6f 72 20 61 20 6d 6f 76 65 20 63 6f 6d |a for a move com| 00076280 70 6f 6e 65 6e 74 20 6f 66 20 61 20 70 61 74 68 |ponent of a path| 00076290 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 000762a0 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |as the following| 000762b0 20 73 74 72 75 63 74 75 72 65 3a 0a 0a 20 09 5c | structure:.. .\| 000762c0 7b 0a 20 09 20 09 3c 64 72 61 77 5f 70 61 74 68 |{. . .<draw_path| 000762d0 5f 74 61 67 74 79 70 65 3e 09 74 61 67 3b 09 2f |_tagtype>.tag;./| 000762e0 2a 20 74 61 67 20 3d 3d 20 32 20 2a 2f 0a 20 09 |* tag == 2 */. .| 000762f0 20 09 69 6e 74 09 78 2c 79 3b 0a 20 09 7d 00 00 | .int.x,y;. .}..| 00076300 44 41 54 41 f2 00 00 00 50 61 74 68 5f 74 65 72 |DATA....Path_ter| 00076310 6d 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |mstr.This type i| 00076320 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 64 72 |s defined in <dr| 00076330 61 77 66 74 79 70 65 73 2e 68 3d 3e 64 72 61 77 |awftypes.h=>draw| 00076340 66 74 79 70 65 73 3e 20 61 73 20 61 20 74 79 70 |ftypes> as a typ| 00076350 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 64 61 74 |e containing dat| 00076360 61 20 66 6f 72 20 61 6e 20 65 6e 64 2d 6f 66 2d |a for an end-of-| 00076370 70 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f |path component o| 00076380 66 20 61 20 70 61 74 68 2e 20 49 74 20 69 73 20 |f a path. It is | 00076390 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 |defined as the f| 000763a0 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 |ollowing structu| 000763b0 72 65 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 20 |re:.{wrap off}. | 000763c0 20 5c 7b 0a 20 20 20 20 64 72 61 77 5f 70 61 74 | \{. draw_pat| 000763d0 68 5f 74 61 67 74 79 70 65 20 74 61 67 3b 20 20 |h_tagtype tag; | 000763e0 2f 2a 20 74 61 67 20 3d 3d 20 30 20 2a 2f 0a 20 |/* tag == 0 */. | 000763f0 20 7d 00 00 44 41 54 41 01 04 00 00 44 65 73 6b | }..DATA....Desk| 00076400 4c 69 62 3a 50 44 72 69 76 65 72 2e 68 0a 56 65 |Lib:PDriver.h.Ve| 00076410 72 73 69 6f 6e 3a 20 31 2e 31 31 20 28 32 36 20 |rsion: 1.11 (26 | 00076420 4f 63 74 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a |Oct 1993).#line.| 00076430 54 68 69 73 20 68 65 61 64 65 72 20 70 72 6f 76 |This header prov| 00076440 69 64 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 |ides functions a| 00076450 6e 64 20 74 79 70 65 73 20 66 6f 72 20 61 63 63 |nd types for acc| 00076460 65 73 73 69 6e 67 20 52 49 53 43 20 4f 53 20 70 |essing RISC OS p| 00076470 72 69 6e 74 65 72 20 64 72 69 76 65 72 20 53 57 |rinter driver SW| 00076480 49 73 20 66 72 6f 6d 20 43 2e 0a 0a 46 75 6e 63 |Is from C...Func| 00076490 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 |tions:..#indent | 000764a0 32 0a 23 54 61 62 6c 65 20 39 20 32 33 0a 3c 50 |2.#Table 9 23.<P| 000764b0 44 72 69 76 65 72 5f 49 6e 66 6f 3e 0a 3c 50 44 |Driver_Info>.<PD| 000764c0 72 69 76 65 72 5f 50 72 69 6e 74 65 72 4e 61 6d |river_PrinterNam| 000764d0 65 3e 0a 3c 50 44 72 69 76 65 72 5f 43 68 65 63 |e>.<PDriver_Chec| 000764e0 6b 46 65 61 74 75 72 65 73 3e 0a 3c 50 44 72 69 |kFeatures>.<PDri| 000764f0 76 65 72 5f 50 61 67 65 53 69 7a 65 3e 0a 3c 50 |ver_PageSize>.<P| 00076500 44 72 69 76 65 72 5f 53 65 6c 65 63 74 4a 6f 62 |Driver_SelectJob| 00076510 3e 0a 3c 50 44 72 69 76 65 72 5f 43 75 72 72 65 |>.<PDriver_Curre| 00076520 6e 74 4a 6f 62 3e 0a 3c 50 44 72 69 76 65 72 5f |ntJob>.<PDriver_| 00076530 45 6e 64 4a 6f 62 3e 0a 3c 50 44 72 69 76 65 72 |EndJob>.<PDriver| 00076540 5f 41 62 6f 72 74 4a 6f 62 3e 0a 3c 50 44 72 69 |_AbortJob>.<PDri| 00076550 76 65 72 5f 47 69 76 65 52 65 63 74 61 6e 67 6c |ver_GiveRectangl| 00076560 65 3e 0a 3c 50 44 72 69 76 65 72 5f 44 72 61 77 |e>.<PDriver_Draw| 00076570 50 61 67 65 3e 0a 3c 50 44 72 69 76 65 72 5f 47 |Page>.<PDriver_G| 00076580 65 74 52 65 63 74 61 6e 67 6c 65 3e 0a 3c 50 44 |etRectangle>.<PD| 00076590 72 69 76 65 72 5f 43 61 6e 63 65 6c 4a 6f 62 3e |river_CancelJob>| 000765a0 0a 3c 50 44 72 69 76 65 72 5f 53 63 72 65 65 6e |.<PDriver_Screen| 000765b0 44 75 6d 70 3e 0a 3c 50 44 72 69 76 65 72 5f 45 |Dump>.<PDriver_E| 000765c0 6e 75 6d 65 72 61 74 65 4a 6f 62 73 3e 0a 3c 50 |numerateJobs>.<P| 000765d0 44 72 69 76 65 72 5f 43 61 6e 63 65 6c 4a 6f 62 |Driver_CancelJob| 000765e0 57 69 74 68 45 72 72 6f 72 3e 0a 3c 50 44 72 69 |WithError>.<PDri| 000765f0 76 65 72 5f 53 65 6c 65 63 74 49 6c 6c 75 73 74 |ver_SelectIllust| 00076600 72 61 74 69 6f 6e 3e 0a 3c 50 44 72 69 76 65 72 |ration>.<PDriver| 00076610 5f 49 6e 73 65 72 74 49 6c 6c 75 73 74 72 61 74 |_InsertIllustrat| 00076620 69 6f 6e 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 |ion>.#EndTable.#| 00076630 69 6e 64 65 6e 74 0a 0a 4d 61 63 72 6f 73 3a 0a |indent..Macros:.| 00076640 0a 23 69 6e 64 65 6e 74 20 31 0a 23 54 61 62 6c |.#indent 1.#Tabl| 00076650 65 20 37 20 32 33 0a 3c 70 72 69 6e 74 64 72 69 |e 7 23.<printdri| 00076660 76 65 72 5f 50 4f 53 54 53 43 52 49 50 54 3e 0a |ver_POSTSCRIPT>.| 00076670 3c 70 72 69 6e 74 64 72 69 76 65 72 5f 46 58 38 |<printdriver_FX8| 00076680 30 3e 0a 3c 70 72 69 6e 74 64 72 69 76 65 72 5f |0>.<printdriver_| 00076690 4c 41 53 45 52 4a 45 54 3e 0a 3c 70 72 69 6e 74 |LASERJET>.<print| 000766a0 64 72 69 76 65 72 5f 49 4e 54 45 47 52 45 58 3e |driver_INTEGREX>| 000766b0 0a 3c 70 72 69 6e 74 66 65 61 74 5f 43 4f 4c 4f |.<printfeat_COLO| 000766c0 55 52 3e 0a 3c 70 72 69 6e 74 66 65 61 74 5f 4c |UR>.<printfeat_L| 000766d0 49 4d 49 54 45 44 3e 0a 3c 70 72 69 6e 74 66 65 |IMITED>.<printfe| 000766e0 61 74 5f 44 49 53 43 52 45 54 45 3e 0a 3c 70 72 |at_DISCRETE>.<pr| 000766f0 69 6e 74 66 65 61 74 5f 4e 4f 46 49 4c 4c 3e 0a |intfeat_NOFILL>.| 00076700 3c 70 72 69 6e 74 66 65 61 74 5f 4e 4f 54 48 49 |<printfeat_NOTHI| 00076710 43 4b 4e 45 53 53 3e 0a 3c 70 72 69 6e 74 66 65 |CKNESS>.<printfe| 00076720 61 74 5f 4e 4f 4f 56 45 52 57 52 49 54 45 3e 0a |at_NOOVERWRITE>.| 00076730 3c 70 72 69 6e 74 66 65 61 74 5f 53 43 52 45 45 |<printfeat_SCREE| 00076740 4e 44 55 4d 50 3e 0a 3c 70 72 69 6e 74 66 65 61 |NDUMP>.<printfea| 00076750 74 5f 54 52 41 4e 53 46 4f 52 4d 53 3e 0a 3c 70 |t_TRANSFORMS>.<p| 00076760 72 69 6e 74 66 65 61 74 5f 49 4c 4c 55 53 54 52 |rintfeat_ILLUSTR| 00076770 41 54 49 4f 4e 53 3e 0a 23 45 6e 64 54 61 62 6c |ATIONS>.#EndTabl| 00076780 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 73 |e.#indent..Types| 00076790 3a 0a 0a 23 69 6e 64 65 6e 74 20 38 0a 23 54 61 |:..#indent 8.#Ta| 000767a0 62 6c 65 20 32 20 32 33 0a 3c 70 72 69 6e 74 5f |ble 2 23.<print_| 000767b0 6a 6f 62 3e 0a 3c 70 72 69 6e 74 5f 74 72 61 6e |job>.<print_tran| 000767c0 73 66 6f 72 6d 61 74 69 6f 6e 3e 0a 3c 70 72 69 |sformation>.<pri| 000767d0 6e 74 5f 66 65 61 74 75 72 65 73 3e 0a 3c 70 72 |nt_features>.<pr| 000767e0 69 6e 74 65 72 5f 69 6e 66 6f 3e 0a 23 45 6e 64 |inter_info>.#End| 000767f0 54 61 62 6c 65 00 00 00 44 49 52 24 90 02 00 00 |Table...DIR$....| 00076800 90 02 00 00 88 6a 07 00 46 ff ff ff c5 a5 5f 25 |.....j..F....._%| 00076810 64 01 00 00 13 00 00 00 00 00 00 00 41 62 6f 72 |d...........Abor| 00076820 74 4a 6f 62 00 00 00 00 ec 6b 07 00 46 ff ff ff |tJob.....k..F...| 00076830 07 f4 5f 25 79 01 00 00 13 00 00 00 00 00 00 00 |.._%y...........| 00076840 43 61 6e 63 65 6c 4a 6f 62 00 00 00 68 6d 07 00 |CancelJob...hm..| 00076850 46 ff ff ff 91 0a 60 25 79 01 00 00 13 00 00 00 |F.....`%y.......| 00076860 00 00 00 00 43 61 6e 63 65 6c 4a 6f 62 57 69 74 |....CancelJobWit| 00076870 68 45 72 72 6f 72 00 00 e4 6e 07 00 46 ff ff ff |hError...n..F...| 00076880 97 58 5f 25 01 02 00 00 13 00 00 00 00 00 00 00 |.X_%............| 00076890 43 68 65 63 6b 46 65 61 74 75 72 65 73 00 00 00 |CheckFeatures...| 000768a0 e8 70 07 00 46 ff ff ff b7 99 5f 25 44 01 00 00 |.p..F....._%D...| 000768b0 13 00 00 00 00 00 00 00 43 75 72 72 65 6e 74 4a |........CurrentJ| 000768c0 6f 62 00 00 2c 72 07 00 46 ff ff ff bf d8 5f 25 |ob..,r..F....._%| 000768d0 60 03 00 00 13 00 00 00 00 00 00 00 44 72 61 77 |`...........Draw| 000768e0 50 61 67 65 00 00 00 00 8c 75 07 00 46 ff ff ff |Page.....u..F...| 000768f0 e6 9f 5f 25 25 01 00 00 13 00 00 00 00 00 00 00 |.._%%...........| 00076900 45 6e 64 4a 6f 62 00 00 b4 76 07 00 46 ff ff ff |EndJob...v..F...| 00076910 8a 04 60 25 a1 01 00 00 13 00 00 00 00 00 00 00 |..`%............| 00076920 45 6e 75 6d 65 72 61 74 65 4a 6f 62 73 00 00 00 |EnumerateJobs...| 00076930 58 78 07 00 46 ff ff ff b5 ed 5f 25 25 02 00 00 |Xx..F....._%%...| 00076940 13 00 00 00 00 00 00 00 47 65 74 52 65 63 74 61 |........GetRecta| 00076950 6e 67 6c 65 00 00 00 00 80 7a 07 00 46 ff ff ff |ngle.....z..F...| 00076960 e7 ba 5f 25 ef 02 00 00 13 00 00 00 00 00 00 00 |.._%............| 00076970 47 69 76 65 52 65 63 74 61 6e 67 6c 65 00 00 00 |GiveRectangle...| 00076980 70 7d 07 00 46 ff ff ff 5c d9 5e 25 72 01 00 00 |p}..F...\.^%r...| 00076990 13 00 00 00 00 00 00 00 49 6e 66 6f 00 00 00 00 |........Info....| 000769a0 e4 7e 07 00 46 ff ff ff a3 35 60 25 54 02 00 00 |.~..F....5`%T...| 000769b0 13 00 00 00 00 00 00 00 49 6e 73 65 72 74 49 6c |........InsertIl| 000769c0 6c 75 73 74 72 61 74 69 6f 6e 00 00 38 81 07 00 |lustration..8...| 000769d0 46 ff ff ff 30 6b 5f 25 91 01 00 00 13 00 00 00 |F...0k_%........| 000769e0 00 00 00 00 50 61 67 65 53 69 7a 65 00 00 00 00 |....PageSize....| 000769f0 cc 82 07 00 46 ff ff ff e7 47 5f 25 6f 01 00 00 |....F....G_%o...| 00076a00 13 00 00 00 00 00 00 00 50 72 69 6e 74 65 72 4e |........PrinterN| 00076a10 61 6d 65 00 3c 84 07 00 46 ff ff ff f2 f8 5f 25 |ame.<...F....._%| 00076a20 84 01 00 00 13 00 00 00 00 00 00 00 53 63 72 65 |............Scre| 00076a30 65 6e 44 75 6d 70 00 00 c0 85 07 00 46 ff ff ff |enDump......F...| 00076a40 30 13 60 25 9f 01 00 00 13 00 00 00 00 00 00 00 |0.`%............| 00076a50 53 65 6c 65 63 74 49 6c 6c 75 73 74 72 61 74 69 |SelectIllustrati| 00076a60 6f 6e 00 00 60 87 07 00 46 ff ff ff 62 7d 5f 25 |on..`...F...b}_%| 00076a70 6c 02 00 00 13 00 00 00 00 00 00 00 53 65 6c 65 |l...........Sele| 00076a80 63 74 4a 6f 62 00 00 00 44 41 54 41 64 01 00 00 |ctJob...DATAd...| 00076a90 50 44 72 69 76 65 72 5f 41 62 6f 72 74 4a 6f 62 |PDriver_AbortJob| 00076aa0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00076ab0 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 41 62 6f |or> *PDriver_Abo| 00076ac0 72 74 4a 6f 62 20 28 3c 70 72 69 6e 74 5f 6a 6f |rtJob (<print_jo| 00076ad0 62 3e 20 6a 6f 62 29 3b 0a 48 65 61 64 65 72 3a |b> job);.Header:| 00076ae0 09 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 |.<DeskLib:PDrive| 00076af0 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 0a 0a 52 |r.h=>PDriver>..R| 00076b00 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00076b10 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00076b20 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00076b30 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 6e 64 73 |is function ends| 00076b40 20 61 20 70 72 69 6e 74 20 6a 6f 62 20 61 62 6e | a print job abn| 00076b50 6f 72 6d 61 6c 6c 79 2e 20 49 74 20 73 68 6f 75 |ormally. It shou| 00076b60 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 69 6d 6d |ld be called imm| 00076b70 65 64 69 61 74 65 6c 79 20 79 6f 75 20 67 65 74 |ediately you get| 00076b80 20 61 6e 20 65 72 72 6f 72 20 77 68 69 6c 65 20 | an error while | 00076b90 70 72 69 6e 74 69 6e 67 20 28 65 76 65 6e 20 62 |printing (even b| 00076ba0 65 66 6f 72 65 20 73 68 6f 77 69 6e 67 20 61 6e |efore showing an| 00076bb0 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 29 2e | error message).| 00076bc0 20 4e 6f 20 66 75 72 74 68 65 72 20 70 72 69 6e | No further prin| 00076bd0 74 65 72 20 6f 75 74 70 75 74 20 77 69 6c 6c 20 |ter output will | 00076be0 62 65 20 70 72 6f 64 75 63 65 64 2e 44 41 54 41 |be produced.DATA| 00076bf0 79 01 00 00 50 44 72 69 76 65 72 5f 43 61 6e 63 |y...PDriver_Canc| 00076c00 65 6c 4a 6f 62 0a 53 79 6e 74 61 78 3a 09 3c 6f |elJob.Syntax:.<o| 00076c10 73 5f 65 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 |s_error> *PDrive| 00076c20 72 5f 43 61 6e 63 65 6c 4a 6f 62 20 28 3c 70 72 |r_CancelJob (<pr| 00076c30 69 6e 74 5f 6a 6f 62 3e 20 6a 6f 62 29 3b 0a 48 |int_job> job);.H| 00076c40 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00076c50 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 |PDriver.h=>PDriv| 00076c60 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |er>..Returns:.Po| 00076c70 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00076c80 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00076c90 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00076ca0 6e 20 63 61 75 73 65 73 20 73 75 62 73 65 71 75 |n causes subsequ| 00076cb0 65 6e 74 20 61 74 74 65 6d 70 74 73 20 74 6f 20 |ent attempts to | 00076cc0 6f 75 74 70 75 74 20 74 6f 20 74 68 65 20 70 72 |output to the pr| 00076cd0 69 6e 74 20 6a 6f 62 20 67 69 76 65 6e 20 74 6f |int job given to| 00076ce0 20 64 6f 20 6e 6f 74 68 69 6e 67 20 6f 74 68 65 | do nothing othe| 00076cf0 72 20 74 68 61 6e 20 67 65 6e 65 72 61 74 65 20 |r than generate | 00076d00 74 68 65 20 65 72 72 6f 72 20 27 50 72 69 6e 74 |the error 'Print| 00076d10 20 63 61 6e 63 65 6c 6c 65 64 27 2e 20 41 6e 20 | cancelled'. An | 00076d20 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 65 |application is e| 00076d30 78 70 65 63 74 65 64 20 74 6f 20 72 65 73 70 6f |xpected to respo| 00076d40 6e 64 20 74 6f 20 74 68 69 73 20 62 79 20 61 62 |nd to this by ab| 00076d50 6f 72 74 69 6e 67 20 74 68 65 20 70 72 69 6e 74 |orting the print| 00076d60 20 6a 6f 62 2e 00 00 00 44 41 54 41 79 01 00 00 | job....DATAy...| 00076d70 50 44 72 69 76 65 72 5f 43 61 6e 63 65 6c 4a 6f |PDriver_CancelJo| 00076d80 62 57 69 74 68 45 72 72 6f 72 0a 53 79 6e 74 61 |bWithError.Synta| 00076d90 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 |x:.<os_error> *P| 00076da0 44 72 69 76 65 72 5f 43 61 6e 63 65 6c 4a 6f 62 |Driver_CancelJob| 00076db0 57 69 74 68 45 72 72 6f 72 20 28 3c 70 72 69 6e |WithError (<prin| 00076dc0 74 5f 6a 6f 62 3e 20 6a 6f 62 2c 20 6f 73 5f 65 |t_job> job, os_e| 00076dd0 72 72 6f 72 20 2a 65 72 72 6f 72 29 3b 0a 48 65 |rror *error);.He| 00076de0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 |ader:.<DeskLib:P| 00076df0 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 65 |Driver.h=>PDrive| 00076e00 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |r>..Returns:.Poi| 00076e10 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00076e20 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00076e30 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00076e40 20 63 61 6e 63 65 6c 73 20 61 20 70 72 69 6e 74 | cancels a print| 00076e50 20 6a 6f 62 20 73 6f 20 74 68 61 74 20 61 6e 79 | job so that any| 00076e60 20 61 74 74 65 6d 70 74 20 74 6f 20 6f 75 74 70 | attempt to outp| 00076e70 75 74 20 74 6f 20 69 74 20 77 69 6c 6c 20 64 6f |ut to it will do| 00076e80 20 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 | nothing other t| 00076e90 68 61 6e 20 67 65 6e 65 72 61 74 65 20 74 68 65 |han generate the| 00076ea0 20 65 72 72 6f 72 20 67 69 76 65 6e 20 69 6e 20 | error given in | 00076eb0 2f 65 72 72 6f 72 2f 2e 0a 0a 54 68 69 73 20 66 |/error/...This f| 00076ec0 75 6e 63 74 69 6f 6e 20 69 73 20 52 49 53 43 20 |unction is RISC | 00076ed0 4f 53 20 33 20 6f 6e 6c 79 2c 20 66 6f 6c 6b 73 |OS 3 only, folks| 00076ee0 21 00 00 00 44 41 54 41 01 02 00 00 50 44 72 69 |!...DATA....PDri| 00076ef0 76 65 72 5f 43 68 65 63 6b 46 65 61 74 75 72 65 |ver_CheckFeature| 00076f00 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |s.Syntax:.<os_er| 00076f10 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 43 68 |ror> *PDriver_Ch| 00076f20 65 63 6b 46 65 61 74 75 72 65 73 20 28 3c 70 72 |eckFeatures (<pr| 00076f30 69 6e 74 5f 66 65 61 74 75 72 65 73 3e 20 6d 2c |int_features> m,| 00076f40 20 70 72 69 6e 74 5f 66 65 61 74 75 72 65 73 20 | print_features | 00076f50 76 61 6c 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |val);.Header:.<D| 00076f60 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 72 2e 68 |eskLib:PDriver.h| 00076f70 3d 3e 50 44 72 69 76 65 72 3e 0a 0a 52 65 74 75 |=>PDriver>..Retu| 00076f80 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00076f90 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00076fa0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00076fb0 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 20 |function checks | 00076fc0 74 68 65 20 66 65 61 74 75 72 65 73 20 6f 66 20 |the features of | 00076fd0 61 20 70 72 69 6e 74 65 72 2e 20 49 66 20 74 68 |a printer. If th| 00076fe0 6f 73 65 20 62 69 74 73 20 77 68 69 63 68 20 61 |ose bits which a| 00076ff0 72 65 20 73 65 74 20 69 6e 20 2f 6d 2f 20 68 61 |re set in /m/ ha| 00077000 76 65 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 |ve the same valu| 00077010 65 73 20 69 6e 20 62 6f 74 68 20 74 68 65 20 63 |es in both the c| 00077020 75 72 72 65 6e 74 20 70 72 69 6e 74 65 72 27 73 |urrent printer's| 00077030 20 66 65 61 74 75 72 65 73 20 61 6e 64 20 69 6e | features and in| 00077040 20 2f 76 61 6c 2f 20 74 68 65 6e 20 6e 6f 20 65 | /val/ then no e| 00077050 72 72 6f 72 20 69 73 20 67 65 6e 65 72 61 74 65 |rror is generate| 00077060 64 2e 20 69 65 20 69 66 20 74 68 65 20 63 75 72 |d. ie if the cur| 00077070 72 65 6e 74 20 70 72 69 6e 74 65 72 20 64 72 69 |rent printer dri| 00077080 76 65 72 27 73 20 66 65 61 74 75 72 65 73 20 61 |ver's features a| 00077090 72 65 20 63 61 6c 6c 65 64 20 2f 66 65 61 74 2f |re called /feat/| 000770a0 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |, this function | 000770b0 63 68 65 63 6b 73 20 74 68 61 74 3a 0a 0a 7b 66 |checks that:..{f| 000770c0 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 000770d0 65 7d 66 65 61 74 20 26 20 6d 20 3d 3d 20 76 61 |e}feat & m == va| 000770e0 6c 20 26 20 6d 00 00 00 44 41 54 41 44 01 00 00 |l & m...DATAD...| 000770f0 50 44 72 69 76 65 72 5f 43 75 72 72 65 6e 74 4a |PDriver_CurrentJ| 00077100 6f 62 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ob.Syntax:.<os_e| 00077110 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 43 |rror> *PDriver_C| 00077120 75 72 72 65 6e 74 4a 6f 62 20 3c 70 72 69 6e 74 |urrentJob <print| 00077130 5f 6a 6f 62 3e 20 2a 63 75 72 72 65 6e 74 29 3b |_job> *current);| 00077140 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00077150 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 |b:PDriver.h=>PDr| 00077160 69 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |iver>..Returns:.| 00077170 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00077180 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00077190 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000771a0 69 6f 6e 20 67 65 74 73 20 74 68 65 20 66 69 6c |ion gets the fil| 000771b0 65 20 68 61 6e 64 6c 65 20 6f 66 20 74 68 65 20 |e handle of the | 000771c0 63 75 72 72 65 6e 74 20 6a 6f 62 20 61 6e 64 20 |current job and | 000771d0 73 74 6f 72 65 73 20 69 74 20 69 6e 20 74 68 65 |stores it in the| 000771e0 20 76 61 72 69 61 62 6c 65 20 70 6f 69 6e 74 65 | variable pointe| 000771f0 64 20 74 6f 20 62 79 20 2f 63 75 72 72 65 6e 74 |d to by /current| 00077200 2f 2e 20 5a 65 72 6f 20 69 73 20 73 74 6f 72 65 |/. Zero is store| 00077210 64 20 69 66 20 6e 6f 20 70 72 69 6e 74 20 6a 6f |d if no print jo| 00077220 62 20 69 73 20 61 63 74 69 76 65 2e 44 41 54 41 |b is active.DATA| 00077230 60 03 00 00 50 44 72 69 76 65 72 5f 44 72 61 77 |`...PDriver_Draw| 00077240 50 61 67 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |Page.Syntax:.<os| 00077250 5f 65 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 |_error> *PDriver| 00077260 5f 44 72 61 77 50 61 67 65 20 28 69 6e 74 20 63 |_DrawPage (int c| 00077270 6f 70 69 65 73 2c 20 3c 77 69 6d 70 5f 72 65 63 |opies, <wimp_rec| 00077280 74 3e 20 2a 72 65 63 74 2c 20 69 6e 74 20 73 65 |t> *rect, int se| 00077290 71 2c 20 63 68 61 72 20 2a 70 61 67 65 2c 20 69 |q, char *page, i| 000772a0 6e 74 20 2a 66 69 6e 69 73 68 2c 20 69 6e 74 20 |nt *finish, int | 000772b0 2a 72 65 63 74 5f 69 64 29 3b 0a 48 65 61 64 65 |*rect_id);.Heade| 000772c0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 |r:.<DeskLib:PDri| 000772d0 76 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 0a |ver.h=>PDriver>.| 000772e0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000772f0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00077300 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00077310 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 |This function sh| 00077320 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 61 |ould be called a| 00077330 66 74 65 72 20 61 6c 6c 20 72 65 63 74 61 6e 67 |fter all rectang| 00077340 6c 65 73 20 68 61 76 65 20 62 65 65 6e 20 73 70 |les have been sp| 00077350 65 63 69 66 69 65 64 20 75 73 69 6e 67 20 3c 50 |ecified using <P| 00077360 44 72 69 76 65 72 5f 47 69 76 65 52 65 63 74 61 |Driver_GiveRecta| 00077370 6e 67 6c 65 3e 2e 20 2f 63 6f 70 69 65 73 2f 20 |ngle>. /copies/ | 00077380 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6e 75 6d |contains the num| 00077390 62 65 72 20 6f 66 20 63 6f 70 69 65 73 20 74 6f |ber of copies to| 000773a0 20 70 72 69 6e 74 2c 20 2f 73 65 71 2f 20 73 68 | print, /seq/ sh| 000773b0 6f 75 6c 64 20 62 65 20 7a 65 72 6f 2c 20 6f 72 |ould be zero, or| 000773c0 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 70 61 67 | contain the pag| 000773d0 65 20 6e 75 6d 62 65 72 2c 20 2f 70 61 67 65 2f |e number, /page/| 000773e0 20 73 68 6f 75 6c 64 20 62 65 20 3c 4e 55 4c 4c | should be <NULL| 000773f0 3e 20 6f 72 20 67 69 76 65 20 74 68 65 20 70 61 |> or give the pa| 00077400 67 65 20 6e 75 6d 62 65 72 20 69 6e 20 74 65 78 |ge number in tex| 00077410 74 20 66 6f 72 6d 2e 0a 0a 4f 6e 20 72 65 74 75 |t form...On retu| 00077420 72 6e 2c 20 2f 72 65 63 74 2f 20 63 6f 6e 74 61 |rn, /rect/ conta| 00077430 69 6e 73 20 74 68 65 20 72 65 63 74 61 6e 67 6c |ins the rectangl| 00077440 65 20 74 6f 20 62 65 20 70 72 69 6e 74 65 64 20 |e to be printed | 00077450 28 69 6e 20 4f 53 20 75 6e 69 74 73 29 20 5f 77 |(in OS units) _w| 00077460 69 74 68 69 6e 5f 20 74 68 65 20 72 65 63 74 61 |ithin_ the recta| 00077470 6e 67 6c 65 20 77 68 6f 73 65 20 69 64 20 69 73 |ngle whose id is| 00077480 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b 2f 7d | returned in {/}| 00077490 72 65 63 74 5f 69 64 7b 2f 7d 2e 20 2f 66 69 6e |rect_id{/}. /fin| 000774a0 69 73 68 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 |ish/ contains th| 000774b0 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 70 69 |e number of copi| 000774c0 65 73 20 73 74 69 6c 6c 20 74 6f 20 62 65 20 70 |es still to be p| 000774d0 72 69 6e 74 65 64 20 68 65 6e 63 65 20 69 74 20 |rinted hence it | 000774e0 69 73 20 7a 65 72 6f 20 77 68 65 6e 20 74 68 65 |is zero when the| 000774f0 20 6a 6f 62 20 69 73 20 66 69 6e 69 73 68 65 64 | job is finished| 00077500 2e 0a 0a 41 66 74 65 72 20 70 6c 6f 74 74 69 6e |...After plottin| 00077510 67 20 74 68 65 20 70 61 67 65 20 75 73 69 6e 67 |g the page using| 00077520 20 6e 6f 72 6d 61 6c 20 70 6c 6f 74 74 69 6e 67 | normal plotting| 00077530 20 72 6f 75 74 69 6e 65 73 20 28 77 68 69 63 68 | routines (which| 00077540 20 74 68 65 20 70 72 69 6e 74 65 72 20 64 72 69 | the printer dri| 00077550 76 65 72 20 77 69 6c 6c 20 69 6e 74 65 72 63 65 |ver will interce| 00077560 70 74 29 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 |pt), you should | 00077570 63 61 6c 6c 20 3c 50 44 72 69 76 65 72 5f 47 65 |call <PDriver_Ge| 00077580 74 52 65 63 74 61 6e 67 6c 65 3e 2e 44 41 54 41 |tRectangle>.DATA| 00077590 25 01 00 00 50 44 72 69 76 65 72 5f 45 6e 64 4a |%...PDriver_EndJ| 000775a0 6f 62 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ob.Syntax:.<os_e| 000775b0 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 45 |rror> *PDriver_E| 000775c0 6e 64 4a 6f 62 20 28 3c 70 72 69 6e 74 5f 6a 6f |ndJob (<print_jo| 000775d0 62 3e 20 6a 6f 62 29 3b 0a 48 65 61 64 65 72 3a |b> job);.Header:| 000775e0 09 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 |.<DeskLib:PDrive| 000775f0 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 0a 0a 52 |r.h=>PDriver>..R| 00077600 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00077610 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00077620 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00077630 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 6e 64 73 |is function ends| 00077640 20 61 20 70 72 69 6e 74 20 6a 6f 62 20 6e 6f 72 | a print job nor| 00077650 6d 61 6c 6c 79 2e 20 54 68 69 73 20 6d 61 79 20 |mally. This may | 00077660 72 65 73 75 6c 74 20 69 6e 20 66 75 72 74 68 65 |result in furthe| 00077670 72 20 70 72 69 6e 74 65 72 20 6f 75 74 70 75 74 |r printer output| 00077680 20 28 61 20 50 6f 73 74 53 63 72 69 70 74 20 70 | (a PostScript p| 00077690 72 69 6e 74 65 72 20 64 72 69 76 65 72 20 6f 75 |rinter driver ou| 000776a0 74 70 75 74 73 20 61 20 74 72 61 69 6c 65 72 29 |tputs a trailer)| 000776b0 2e 00 00 00 44 41 54 41 a1 01 00 00 50 44 72 69 |....DATA....PDri| 000776c0 76 65 72 5f 45 6e 75 6d 65 72 61 74 65 4a 6f 62 |ver_EnumerateJob| 000776d0 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |s.Syntax:.<os_er| 000776e0 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 45 6e |ror> *PDriver_En| 000776f0 75 6d 65 72 61 74 65 4a 6f 62 73 20 28 3c 70 72 |umerateJobs (<pr| 00077700 69 6e 74 5f 6a 6f 62 3e 20 2a 6a 6f 62 29 3b 0a |int_job> *job);.| 00077710 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00077720 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 |:PDriver.h=>PDri| 00077730 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ver>..Returns:.P| 00077740 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00077750 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00077760 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00077770 6f 6e 20 65 6e 75 6d 65 72 61 74 65 73 20 61 6c |on enumerates al| 00077780 6c 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 70 |l the existing p| 00077790 72 69 6e 74 20 6a 6f 62 73 2e 20 59 6f 75 20 67 |rint jobs. You g| 000777a0 65 74 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 |et the complete | 000777b0 6c 69 73 74 20 79 6f 75 20 73 68 6f 75 6c 64 20 |list you should | 000777c0 63 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f |call the functio| 000777d0 6e 20 77 69 74 68 20 7b 2f 7d 2a 6a 6f 62 7b 2f |n with {/}*job{/| 000777e0 7d 3d 30 2c 20 7b 2f 7d 2a 6a 6f 62 7b 2f 7d 20 |}=0, {/}*job{/} | 000777f0 77 69 6c 6c 20 62 65 20 75 70 64 61 74 65 64 20 |will be updated | 00077800 74 6f 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 6e |to contain the n| 00077810 65 78 74 20 68 61 6e 64 6c 65 2c 20 79 6f 75 20 |ext handle, you | 00077820 73 68 6f 75 6c 64 20 74 68 65 6e 20 63 61 6c 6c |should then call| 00077830 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 67 | the function ag| 00077840 61 69 6e 20 77 69 74 68 20 74 68 61 74 20 68 61 |ain with that ha| 00077850 6e 64 6c 65 2e 00 00 00 44 41 54 41 25 02 00 00 |ndle....DATA%...| 00077860 50 44 72 69 76 65 72 5f 47 65 74 52 65 63 74 61 |PDriver_GetRecta| 00077870 6e 67 6c 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |ngle.Syntax:.<os| 00077880 5f 65 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 |_error> *PDriver| 00077890 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 20 28 3c |_GetRectangle (<| 000778a0 77 69 6d 70 5f 72 65 63 74 3e 20 2a 72 65 63 74 |wimp_rect> *rect| 000778b0 2c 20 69 6e 74 20 2a 66 69 6e 69 73 68 2c 20 69 |, int *finish, i| 000778c0 6e 74 20 2a 72 65 63 74 5f 69 64 29 3b 0a 48 65 |nt *rect_id);.He| 000778d0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 |ader:.<DeskLib:P| 000778e0 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 65 |Driver.h=>PDrive| 000778f0 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |r>..Returns:.Poi| 00077900 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00077910 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00077920 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00077930 20 73 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 | should be calle| 00077940 64 20 61 66 74 65 72 20 3c 50 44 72 69 76 65 72 |d after <PDriver| 00077950 5f 44 72 61 77 50 61 67 65 3e 2c 20 61 6e 64 20 |_DrawPage>, and | 00077960 74 68 65 6e 20 63 61 6c 6c 65 64 20 72 65 70 65 |then called repe| 00077970 61 74 65 64 6c 79 20 75 6e 74 69 6c 20 2f 66 69 |atedly until /fi| 00077980 6e 69 73 68 2f 20 72 65 74 75 72 6e 73 20 7a 65 |nish/ returns ze| 00077990 72 6f 2e 0a 0a 4f 6e 20 72 65 74 75 72 6e 2c 20 |ro...On return, | 000779a0 2f 72 65 63 74 2f 20 63 6f 6e 74 61 69 6e 73 20 |/rect/ contains | 000779b0 74 68 65 20 72 65 63 74 61 6e 67 6c 65 20 74 6f |the rectangle to| 000779c0 20 62 65 20 70 72 69 6e 74 65 64 20 28 69 6e 20 | be printed (in | 000779d0 4f 53 20 75 6e 69 74 73 29 20 5f 77 69 74 68 69 |OS units) _withi| 000779e0 6e 5f 20 74 68 65 20 72 65 63 74 61 6e 67 6c 65 |n_ the rectangle| 000779f0 20 77 68 6f 73 65 20 69 64 20 69 73 20 72 65 74 | whose id is ret| 00077a00 75 72 6e 65 64 20 69 6e 20 7b 2f 7d 72 65 63 74 |urned in {/}rect| 00077a10 5f 69 64 7b 2f 7d 2e 20 2f 66 69 6e 69 73 68 2f |_id{/}. /finish/| 00077a20 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6e 75 | contains the nu| 00077a30 6d 62 65 72 20 6f 66 20 63 6f 70 69 65 73 20 73 |mber of copies s| 00077a40 74 69 6c 6c 20 74 6f 20 62 65 20 70 72 69 6e 74 |till to be print| 00077a50 65 64 20 68 65 6e 63 65 20 69 74 20 69 73 20 7a |ed hence it is z| 00077a60 65 72 6f 20 77 68 65 6e 20 74 68 65 20 6a 6f 62 |ero when the job| 00077a70 20 69 73 20 66 69 6e 69 73 68 65 64 2e 00 00 00 | is finished....| 00077a80 44 41 54 41 ef 02 00 00 50 44 72 69 76 65 72 5f |DATA....PDriver_| 00077a90 47 69 76 65 52 65 63 74 61 6e 67 6c 65 0a 53 79 |GiveRectangle.Sy| 00077aa0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00077ab0 20 2a 50 44 72 69 76 65 72 5f 47 69 76 65 52 65 | *PDriver_GiveRe| 00077ac0 63 74 61 6e 67 6c 65 20 28 69 6e 74 20 72 65 63 |ctangle (int rec| 00077ad0 74 5f 69 64 2c 20 3c 77 69 6d 70 5f 72 65 63 74 |t_id, <wimp_rect| 00077ae0 3e 20 2a 72 65 63 74 2c 20 3c 70 72 69 6e 74 5f |> *rect, <print_| 00077af0 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 3e 20 |transformation> | 00077b00 2a 6d 61 74 72 69 78 2c 20 3c 77 69 6d 70 5f 70 |*matrix, <wimp_p| 00077b10 6f 69 6e 74 3e 20 2a 70 6f 73 2c 20 69 6e 74 20 |oint> *pos, int | 00077b20 62 61 63 6b 63 6f 6c 29 3b 0a 48 65 61 64 65 72 |backcol);.Header| 00077b30 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 |:.<DeskLib:PDriv| 00077b40 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 0a 0a |er.h=>PDriver>..| 00077b50 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00077b60 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00077b70 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00077b80 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c |his function all| 00077b90 6f 77 73 20 61 6e 20 61 70 70 6c 69 63 61 74 69 |ows an applicati| 00077ba0 6f 6e 20 74 6f 20 74 65 6c 6c 20 74 68 65 20 70 |on to tell the p| 00077bb0 72 69 6e 74 65 72 20 64 72 69 76 65 72 20 77 68 |rinter driver wh| 00077bc0 61 74 20 69 74 20 77 61 6e 74 73 20 74 6f 20 70 |at it wants to p| 00077bd0 72 69 6e 74 2e 0a 0a 7b 2f 7d 72 65 63 74 5f 69 |rint...{/}rect_i| 00077be0 64 7b 2f 7d 09 69 73 20 61 20 75 73 65 72 2d 64 |d{/}.is a user-d| 00077bf0 65 66 69 6e 65 64 20 76 61 6c 75 65 20 74 6f 20 |efined value to | 00077c00 69 64 65 6e 74 69 66 79 20 65 61 63 68 20 72 65 |identify each re| 00077c10 63 74 61 6e 67 6c 65 20 79 6f 75 20 73 65 6e 64 |ctangle you send| 00077c20 2e 0a 2f 72 65 63 74 2f 09 09 64 65 66 69 6e 65 |../rect/..define| 00077c30 73 20 74 68 65 20 72 65 63 74 61 6e 67 6c 65 20 |s the rectangle | 00077c40 74 6f 20 62 65 20 70 72 69 6e 74 65 64 20 69 6e |to be printed in| 00077c50 20 4f 53 20 75 6e 69 74 73 2e 0a 2f 6d 61 74 72 | OS units../matr| 00077c60 69 78 2f 09 69 73 20 74 68 65 20 74 72 61 6e 73 |ix/.is the trans| 00077c70 66 6f 72 6d 61 74 69 6f 6e 20 6d 61 74 72 69 78 |formation matrix| 00077c80 2e 0a 2f 70 6f 73 2f 09 09 69 73 20 74 68 65 20 |../pos/..is the | 00077c90 70 6f 73 69 74 69 6f 6e 20 6f 6e 20 74 68 65 20 |position on the | 00077ca0 70 61 67 65 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 |page in millipoi| 00077cb0 6e 74 73 20 28 6f 66 20 74 68 65 20 62 6f 74 74 |nts (of the bott| 00077cc0 6f 6d 20 6c 65 66 74 29 2e 0a 2f 62 61 63 6b 63 |om left)../backc| 00077cd0 6f 6c 2f 09 73 70 65 63 69 66 69 65 73 20 74 68 |ol/.specifies th| 00077ce0 65 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c |e background col| 00077cf0 6f 75 72 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d |our, in the form| 00077d00 20 30 78 42 42 47 47 52 52 30 30 2e 0a 0a 41 6e | 0xBBGGRR00...An| 00077d10 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 73 68 6f | application sho| 00077d20 75 6c 64 20 6d 61 6b 65 20 6f 6e 65 20 6f 72 20 |uld make one or | 00077d30 6d 6f 72 65 20 63 61 6c 6c 73 20 74 6f 20 74 68 |more calls to th| 00077d40 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 62 65 66 |is function, bef| 00077d50 6f 72 65 20 63 61 6c 6c 69 6e 67 20 3c 50 44 72 |ore calling <PDr| 00077d60 69 76 65 72 5f 44 72 61 77 50 61 67 65 3e 2e 00 |iver_DrawPage>..| 00077d70 44 41 54 41 72 01 00 00 50 44 72 69 76 65 72 5f |DATAr...PDriver_| 00077d80 49 6e 66 6f 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |Info.Syntax:.<os| 00077d90 5f 65 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 |_error> *PDriver| 00077da0 5f 49 6e 66 6f 20 28 3c 70 72 69 6e 74 65 72 5f |_Info (<printer_| 00077db0 69 6e 66 6f 3e 20 2a 62 6c 6f 63 6b 29 3b 0a 48 |info> *block);.H| 00077dc0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00077dd0 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 |PDriver.h=>PDriv| 00077de0 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |er>..Returns:.Po| 00077df0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00077e00 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00077e10 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00077e20 6e 20 67 65 74 73 20 69 6e 66 6f 72 6d 61 74 69 |n gets informati| 00077e30 6f 6e 20 6f 6e 20 74 68 65 20 70 72 69 6e 74 65 |on on the printe| 00077e40 72 20 64 72 69 76 65 72 2e 20 49 74 20 61 6c 6c |r driver. It all| 00077e50 6f 77 73 20 74 68 65 20 61 70 70 6c 69 63 61 74 |ows the applicat| 00077e60 69 6f 6e 20 74 6f 20 63 68 61 6e 67 65 20 74 68 |ion to change th| 00077e70 65 20 77 61 79 20 69 74 20 6f 75 74 70 75 74 73 |e way it outputs| 00077e80 20 69 74 73 20 64 61 74 61 20 74 6f 20 73 75 69 | its data to sui| 00077e90 74 20 74 68 65 20 70 72 69 6e 74 65 72 2e 20 54 |t the printer. T| 00077ea0 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 |he information i| 00077eb0 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 |s returned in th| 00077ec0 65 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e |e structure poin| 00077ed0 74 65 64 20 74 6f 20 62 79 20 2f 62 6c 6f 63 6b |ted to by /block| 00077ee0 2f 2e 00 00 44 41 54 41 54 02 00 00 50 44 72 69 |/...DATAT...PDri| 00077ef0 76 65 72 5f 49 6e 73 65 72 74 49 6c 6c 75 73 74 |ver_InsertIllust| 00077f00 72 61 74 69 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c |ration.Syntax:.<| 00077f10 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 44 72 69 76 |os_error> *PDriv| 00077f20 65 72 5f 49 6e 73 65 72 74 49 6c 6c 75 73 74 72 |er_InsertIllustr| 00077f30 61 74 69 6f 6e 20 28 69 6e 74 20 68 61 6e 64 6c |ation (int handl| 00077f40 65 2c 20 76 6f 69 64 20 2a 64 72 61 77 70 61 74 |e, void *drawpat| 00077f50 68 2c 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 20 |h, <wimp_point> | 00077f60 2a 62 6f 74 5f 6c 65 66 74 2c 20 77 69 6d 70 5f |*bot_left, wimp_| 00077f70 70 6f 69 6e 74 20 2a 62 6f 74 5f 72 69 67 68 74 |point *bot_right| 00077f80 2c 20 77 69 6d 70 5f 70 6f 69 6e 74 20 2a 74 6f |, wimp_point *to| 00077f90 70 5f 6c 65 66 74 29 3b 0a 48 65 61 64 65 72 3a |p_left);.Header:| 00077fa0 09 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 |.<DeskLib:PDrive| 00077fb0 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 0a 0a 52 |r.h=>PDriver>..R| 00077fc0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00077fd0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00077fe0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 49 66 |LL> if none...If| 00077ff0 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 | the function is| 00078000 20 73 75 70 70 6f 72 74 65 64 20 28 63 68 65 63 | supported (chec| 00078010 6b 20 74 68 65 20 3c 50 44 72 69 76 65 72 5f 49 |k the <PDriver_I| 00078020 6e 66 6f 3e 29 2c 20 69 74 20 69 6e 73 65 72 74 |nfo>), it insert| 00078030 73 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 66 69 |s an external fi| 00078040 6c 65 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 |le into the curr| 00078050 65 6e 74 20 6a 6f 62 27 73 20 6f 75 74 70 75 74 |ent job's output| 00078060 2e 0a 0a 2f 68 61 6e 64 6c 65 2f 09 69 73 20 74 |.../handle/.is t| 00078070 68 65 20 66 69 6c 65 20 68 61 6e 64 6c 65 20 6f |he file handle o| 00078080 66 20 74 68 65 20 69 6c 6c 75 73 74 72 61 74 69 |f the illustrati| 00078090 6f 6e 2e 0a 2f 64 72 61 77 70 61 74 68 2f 09 69 |on../drawpath/.i| 000780a0 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 |s a pointer to a| 000780b0 20 63 6c 69 70 70 69 6e 67 20 70 61 74 68 2c 20 | clipping path, | 000780c0 6f 72 20 30 2e 0a 7b 2f 7d 62 6f 74 5f 6c 65 66 |or 0..{/}bot_lef| 000780d0 74 7b 2f 7d 2c 0a 7b 2f 7d 62 6f 74 5f 72 69 67 |t{/},.{/}bot_rig| 000780e0 68 74 7b 2f 7d 2c 0a 7b 2f 7d 74 6f 70 5f 6c 65 |ht{/},.{/}top_le| 000780f0 66 74 7b 2f 7d 09 64 65 66 69 6e 65 20 74 68 65 |ft{/}.define the| 00078100 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 | position of the| 00078110 20 69 6c 6c 75 73 74 72 61 74 69 6f 6e 20 69 6e | illustration in| 00078120 20 31 2f 32 35 36 74 68 73 20 6f 66 20 61 6e 20 | 1/256ths of an | 00078130 4f 53 20 75 6e 69 74 2e 44 41 54 41 91 01 00 00 |OS unit.DATA....| 00078140 50 44 72 69 76 65 72 5f 50 61 67 65 53 69 7a 65 |PDriver_PageSize| 00078150 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00078160 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 50 61 67 |or> *PDriver_Pag| 00078170 65 53 69 7a 65 20 28 3c 77 69 6d 70 5f 70 6f 69 |eSize (<wimp_poi| 00078180 6e 74 3e 20 2a 73 69 7a 65 2c 20 3c 77 69 6d 70 |nt> *size, <wimp| 00078190 5f 72 65 63 74 3e 20 2a 70 72 69 6e 74 29 3b 0a |_rect> *print);.| 000781a0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000781b0 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 |:PDriver.h=>PDri| 000781c0 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ver>..Returns:.P| 000781d0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000781e0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000781f0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00078200 6f 6e 20 66 69 6e 64 73 20 68 6f 77 20 6c 61 72 |on finds how lar| 00078210 67 65 20 74 68 65 20 70 61 70 65 72 20 61 6e 64 |ge the paper and| 00078220 20 70 72 69 6e 74 20 61 72 65 61 20 69 73 2e 20 | print area is. | 00078230 4f 6e 20 65 78 69 74 2c 20 2f 73 69 7a 65 2f 20 |On exit, /size/ | 00078240 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 70 61 70 |contains the pap| 00078250 65 72 20 73 69 7a 65 20 69 6e 20 6d 69 6c 6c 69 |er size in milli| 00078260 70 6f 69 6e 74 73 2c 20 61 6e 64 20 2f 70 72 69 |points, and /pri| 00078270 6e 74 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |nt/ contains the| 00078280 20 70 72 69 6e 74 61 62 6c 65 20 72 65 63 74 61 | printable recta| 00078290 6e 67 6c 65 20 28 6f 72 69 67 69 6e 20 61 74 20 |ngle (origin at | 000782a0 62 6f 74 74 6f 6d 20 6c 65 66 74 2c 20 63 6f 6f |bottom left, coo| 000782b0 72 64 69 6e 61 74 65 73 20 69 6e 20 6d 69 6c 6c |rdinates in mill| 000782c0 69 70 6f 69 6e 74 73 29 2e 00 00 00 44 41 54 41 |ipoints)....DATA| 000782d0 6f 01 00 00 50 44 72 69 76 65 72 5f 50 72 69 6e |o...PDriver_Prin| 000782e0 74 65 72 4e 61 6d 65 0a 53 79 6e 74 61 78 3a 09 |terName.Syntax:.| 000782f0 63 68 61 72 20 2a 50 44 72 69 76 65 72 5f 50 72 |char *PDriver_Pr| 00078300 69 6e 74 65 72 4e 61 6d 65 20 28 76 6f 69 64 29 |interName (void)| 00078310 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00078320 69 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 |ib:PDriver.h=>PD| 00078330 72 69 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a |river>..Returns:| 00078340 09 50 6f 69 6e 74 65 72 20 74 6f 20 6e 61 6d 65 |.Pointer to name| 00078350 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00078360 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 61 6d | returns the nam| 00078370 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 |e of the current| 00078380 20 70 72 69 6e 74 65 72 2e 20 49 66 20 69 74 20 | printer. If it | 00078390 69 73 20 74 6f 20 62 65 20 75 73 65 64 2c 20 61 |is to be used, a| 000783a0 20 63 6f 70 79 20 6f 66 20 69 74 20 73 68 6f 75 | copy of it shou| 000783b0 6c 64 20 62 65 20 74 61 6b 65 6e 20 73 69 6e 63 |ld be taken sinc| 000783c0 65 20 69 74 20 63 61 6e 20 63 68 61 6e 67 65 20 |e it can change | 000783d0 69 6e 20 61 20 6d 75 6c 74 69 70 6c 65 20 70 72 |in a multiple pr| 000783e0 69 6e 74 65 72 20 64 72 69 76 65 72 20 73 79 73 |inter driver sys| 000783f0 74 65 6d 20 28 7b 2a 7d 21 50 72 69 6e 74 65 72 |tem ({*}!Printer| 00078400 73 7b 2a 7d 29 2e 20 5f 49 74 20 6d 75 73 74 20 |s{*}). _It must | 00078410 6e 6f 74 20 75 6e 64 65 72 20 61 6e 79 20 63 69 |not under any ci| 00078420 72 63 75 6d 73 74 61 6e 63 65 73 20 62 65 20 77 |rcumstances be w| 00078430 72 69 74 74 65 6e 20 74 6f 5f 2e 00 44 41 54 41 |ritten to_..DATA| 00078440 84 01 00 00 50 44 72 69 76 65 72 5f 53 63 72 65 |....PDriver_Scre| 00078450 65 6e 44 75 6d 70 0a 53 79 6e 74 61 78 3a 09 3c |enDump.Syntax:.<| 00078460 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 44 72 69 76 |os_error> *PDriv| 00078470 65 72 5f 53 63 72 65 65 6e 44 75 6d 70 20 28 3c |er_ScreenDump (<| 00078480 70 72 69 6e 74 5f 6a 6f 62 3e 20 6a 6f 62 29 3b |print_job> job);| 00078490 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000784a0 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 |b:PDriver.h=>PDr| 000784b0 69 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |iver>..Returns:.| 000784c0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000784d0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000784e0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000784f0 69 6f 6e 20 6d 61 6b 65 73 20 74 68 65 20 70 72 |ion makes the pr| 00078500 69 6e 74 65 72 20 64 72 69 76 65 72 20 6f 75 74 |inter driver out| 00078510 70 75 74 20 61 20 73 63 72 65 65 6e 20 64 75 6d |put a screen dum| 00078520 70 20 74 6f 20 74 68 65 20 6a 6f 62 20 67 69 76 |p to the job giv| 00078530 65 6e 2e 20 4e 6f 74 65 20 74 68 61 74 20 6e 6f |en. Note that no| 00078540 6e 65 20 6f 66 20 74 68 65 20 73 74 61 6e 64 61 |ne of the standa| 00078550 72 64 20 41 63 6f 72 6e 20 64 72 69 76 65 72 20 |rd Acorn driver | 00078560 73 75 70 70 6f 72 74 20 74 68 69 73 20 66 65 61 |support this fea| 00078570 74 75 72 65 20 28 63 68 65 63 6b 20 74 68 65 20 |ture (check the | 00078580 66 65 61 74 75 72 65 73 20 66 69 72 73 74 20 75 |features first u| 00078590 73 69 6e 67 20 3c 50 44 72 69 76 65 72 5f 43 68 |sing <PDriver_Ch| 000785a0 65 63 6b 46 65 61 74 75 72 65 73 3e 20 6f 72 20 |eckFeatures> or | 000785b0 3c 50 44 72 69 76 65 72 5f 49 6e 66 6f 3e 29 2e |<PDriver_Info>).| 000785c0 44 41 54 41 9f 01 00 00 50 44 72 69 76 65 72 5f |DATA....PDriver_| 000785d0 53 65 6c 65 63 74 49 6c 6c 75 73 74 72 61 74 69 |SelectIllustrati| 000785e0 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |on.Syntax:.<os_e| 000785f0 72 72 6f 72 3e 20 2a 50 44 72 69 76 65 72 5f 53 |rror> *PDriver_S| 00078600 65 6c 65 63 74 49 6c 6c 75 73 74 72 61 74 69 6f |electIllustratio| 00078610 6e 20 28 3c 70 72 69 6e 74 5f 6a 6f 62 3e 20 6e |n (<print_job> n| 00078620 65 77 2c 20 63 68 61 72 20 2a 74 69 74 6c 65 2c |ew, char *title,| 00078630 20 70 72 69 6e 74 5f 6a 6f 62 20 2a 6f 6c 64 29 | print_job *old)| 00078640 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00078650 69 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 |ib:PDriver.h=>PD| 00078660 72 69 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a |river>..Returns:| 00078670 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 00078680 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 00078690 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000786a0 74 69 6f 6e 20 64 6f 65 73 20 74 68 65 20 73 61 |tion does the sa| 000786b0 6d 65 20 61 73 20 3c 50 44 72 69 76 65 72 5f 53 |me as <PDriver_S| 000786c0 65 6c 65 63 74 4a 6f 62 3e 2c 20 65 78 63 65 70 |electJob>, excep| 000786d0 74 20 74 68 61 74 20 69 66 20 61 20 6e 65 77 20 |t that if a new | 000786e0 70 72 69 6e 74 20 6a 6f 62 20 69 73 20 73 74 61 |print job is sta| 000786f0 72 74 65 64 3a 0a 7b 74 61 62 7d 0a 8f 09 49 74 |rted:.{tab}...It| 00078700 20 6d 75 73 74 20 62 65 20 6f 6e 6c 79 20 6f 6e | must be only on| 00078710 65 20 70 61 67 65 20 6c 6f 6e 67 2e 0a 8f 09 4f |e page long....O| 00078720 75 74 70 75 74 20 6d 61 79 20 64 69 66 66 65 72 |utput may differ| 00078730 20 65 67 20 45 50 53 20 69 6e 73 74 65 61 64 20 | eg EPS instead | 00078740 6f 66 20 50 6f 73 74 53 63 72 69 70 74 2e 0a 0a |of PostScript...| 00078750 52 49 53 43 20 4f 53 20 33 20 6f 6e 6c 79 2e 00 |RISC OS 3 only..| 00078760 44 41 54 41 6c 02 00 00 50 44 72 69 76 65 72 5f |DATAl...PDriver_| 00078770 53 65 6c 65 63 74 4a 6f 62 0a 53 79 6e 74 61 78 |SelectJob.Syntax| 00078780 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 44 |:.<os_error> *PD| 00078790 72 69 76 65 72 5f 53 65 6c 65 63 74 4a 6f 62 20 |river_SelectJob | 000787a0 28 3c 70 72 69 6e 74 5f 6a 6f 62 3e 20 6e 65 77 |(<print_job> new| 000787b0 2c 20 63 68 61 72 20 2a 74 69 74 6c 65 2c 20 70 |, char *title, p| 000787c0 72 69 6e 74 5f 6a 6f 62 20 2a 6f 6c 64 29 3b 0a |rint_job *old);.| 000787d0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000787e0 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 |:PDriver.h=>PDri| 000787f0 76 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ver>..Returns:.P| 00078800 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00078810 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00078820 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00078830 6f 6e 20 6d 61 6b 65 73 20 61 20 67 69 76 65 6e |on makes a given| 00078840 20 70 72 69 6e 74 20 6a 6f 62 20 74 68 65 20 63 | print job the c| 00078850 75 72 72 65 6e 74 20 6f 6e 65 2e 20 54 68 65 20 |urrent one. The | 00078860 6a 6f 62 20 69 73 20 69 64 65 6e 74 69 66 69 65 |job is identifie| 00078870 64 20 62 79 20 2f 6e 65 77 2f 20 77 68 69 63 68 |d by /new/ which| 00078880 20 6d 75 73 74 20 62 65 20 61 20 66 69 6c 65 20 | must be a file | 00078890 28 65 67 20 7b 2f 7d 70 72 69 6e 74 65 72 3a 7b |(eg {/}printer:{| 000788a0 2f 7d 29 20 70 72 65 76 69 6f 75 73 6c 79 20 6f |/}) previously o| 000788b0 70 65 6e 65 64 20 66 6f 72 20 6f 75 74 70 75 74 |pened for output| 000788c0 20 28 65 67 20 62 79 20 3c 46 69 6c 65 5f 4f 70 | (eg by <File_Op| 000788d0 65 6e 3e 29 2e 20 2f 74 69 74 6c 65 2f 20 67 69 |en>). /title/ gi| 000788e0 76 65 73 20 61 20 68 75 6d 61 6e 2d 72 65 61 64 |ves a human-read| 000788f0 61 62 6c 65 20 6e 61 6d 65 20 66 6f 72 20 74 68 |able name for th| 00078900 65 20 6a 6f 62 2e 0a 0a 54 68 65 20 63 75 72 72 |e job...The curr| 00078910 65 6e 74 20 70 72 69 6e 74 20 6a 6f 62 20 69 73 |ent print job is| 00078920 20 73 75 73 70 65 6e 64 65 64 20 61 6e 64 20 74 | suspended and t| 00078930 68 65 20 6e 65 77 20 6a 6f 62 20 28 72 65 29 73 |he new job (re)s| 00078940 74 61 72 74 65 64 2e 20 54 68 65 20 6f 6c 64 20 |tarted. The old | 00078950 6a 6f 62 20 68 61 6e 64 6c 65 20 28 69 66 20 61 |job handle (if a| 00078960 6e 79 29 20 69 73 20 72 65 74 75 72 6e 65 64 20 |ny) is returned | 00078970 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 |in the variable | 00078980 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 6f |pointed to by /o| 00078990 6c 64 2f 2e 0a 0a 4e 42 20 49 66 20 2f 6e 65 77 |ld/...NB If /new| 000789a0 2f 20 69 73 20 7a 65 72 6f 20 74 68 65 6e 20 74 |/ is zero then t| 000789b0 68 65 20 63 75 72 72 65 6e 74 20 6a 6f 62 20 69 |he current job i| 000789c0 73 20 73 75 73 70 65 6e 64 65 64 2e 44 41 54 41 |s suspended.DATA| 000789d0 19 01 00 00 70 65 72 72 6f 72 0a 53 79 6e 74 61 |....perror.Synta| 000789e0 78 3a 09 76 6f 69 64 20 70 65 72 72 6f 72 20 28 |x:.void perror (| 000789f0 63 68 61 72 20 2a 73 74 72 29 3b 0a 48 65 61 64 |char *str);.Head| 00078a00 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 |er:.<stdio.h=>st| 00078a10 64 69 6f 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |dio>..This funct| 00078a20 69 6f 6e 20 77 72 69 74 65 73 20 61 20 64 65 73 |ion writes a des| 00078a30 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 |cription of the | 00078a40 65 72 72 6f 72 20 69 6e 20 3c 65 72 72 6e 6f 3e |error in <errno>| 00078a50 20 74 6f 20 74 68 65 20 73 74 72 65 61 6d 20 3c | to the stream <| 00078a60 73 74 64 65 72 72 3e 2e 20 49 66 20 2f 73 74 72 |stderr>. If /str| 00078a70 2f 20 69 73 20 6e 6f 74 20 61 20 6e 75 6c 6c 20 |/ is not a null | 00078a80 70 6f 69 6e 74 65 72 20 74 68 65 6e 20 69 74 20 |pointer then it | 00078a90 70 72 65 66 69 78 65 73 20 74 68 65 20 65 72 72 |prefixes the err| 00078aa0 6f 72 20 64 65 73 63 72 69 70 74 69 6f 6e 20 77 |or description w| 00078ab0 69 74 68 20 74 68 65 20 73 74 72 69 6e 67 20 70 |ith the string p| 00078ac0 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 74 |ointed to by /st| 00078ad0 72 2f 20 61 6e 64 20 61 20 63 6f 6c 6f 6e 20 28 |r/ and a colon (| 00078ae0 27 3a 27 29 2e 00 00 00 44 49 52 24 2c 00 00 00 |':')....DIR$,...| 00078af0 2c 00 00 00 14 8b 07 00 46 fd ff ff 2b 06 c3 22 |,.......F...+.."| 00078b00 43 02 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |C...........!Roo| 00078b10 74 00 00 00 44 41 54 41 43 02 00 00 70 72 69 6e |t...DATAC...prin| 00078b20 74 66 28 29 20 46 6f 72 6d 61 74 20 53 74 72 69 |tf() Format Stri| 00078b30 6e 67 0a 54 68 65 20 66 6f 72 6d 61 74 20 73 74 |ng.The format st| 00078b40 72 69 6e 67 20 69 73 20 63 6f 6d 70 6f 73 65 64 |ring is composed| 00078b50 20 6f 66 20 61 20 73 65 71 75 65 6e 63 65 20 6f | of a sequence o| 00078b60 66 20 63 68 61 72 61 63 74 65 72 73 2e 20 41 6c |f characters. Al| 00078b70 6c 20 63 68 61 72 61 63 74 65 72 73 20 65 78 63 |l characters exc| 00078b80 65 70 74 20 27 25 27 20 61 72 65 20 63 6f 70 69 |ept '%' are copi| 00078b90 65 64 20 64 69 72 65 63 74 6c 79 20 74 6f 20 74 |ed directly to t| 00078ba0 68 65 20 6f 75 74 70 75 74 2e 20 27 25 27 20 6d |he output. '%' m| 00078bb0 61 72 6b 73 20 74 68 65 20 62 65 67 69 6e 6e 69 |arks the beginni| 00078bc0 6e 67 20 6f 66 20 61 20 63 6f 6e 76 65 72 73 69 |ng of a conversi| 00078bd0 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e |on specification| 00078be0 2e 20 49 66 20 61 20 6c 69 74 65 72 61 6c 20 70 |. If a literal p| 00078bf0 65 72 63 65 6e 74 20 69 73 20 72 65 71 75 69 72 |ercent is requir| 00078c00 65 64 2c 20 74 68 65 6e 20 22 25 25 22 20 73 68 |ed, then "%%" sh| 00078c10 6f 75 6c 64 20 62 65 20 75 73 65 64 2e 0a 0a 41 |ould be used...A| 00078c20 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 63 | conversion spec| 00078c30 69 66 69 63 61 74 69 6f 6e 20 72 65 73 75 6c 74 |ification result| 00078c40 73 20 69 6e 20 6f 6e 65 20 61 72 67 75 6d 65 6e |s in one argumen| 00078c50 74 20 66 72 6f 6d 20 74 68 65 20 61 72 67 75 6d |t from the argum| 00078c60 65 6e 74 20 6c 69 73 74 20 62 65 69 6e 67 20 70 |ent list being p| 00078c70 72 69 6e 74 65 64 20 61 63 63 6f 72 64 69 6e 67 |rinted according| 00078c80 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 63 | to the specific| 00078c90 61 74 69 6f 6e 2e 20 54 68 65 20 73 74 72 75 63 |ation. The struc| 00078ca0 74 75 72 65 20 6f 66 20 61 20 63 6f 6e 76 65 72 |ture of a conver| 00078cb0 73 69 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 |sion specificati| 00078cc0 6f 6e 20 69 73 20 73 68 6f 77 6e 20 62 65 6c 6f |on is shown belo| 00078cd0 77 3a 0a 0a 23 77 72 61 70 20 6f 66 66 0a 25 5b |w:..#wrap off.%[| 00078ce0 3c 66 6c 61 67 73 3d 3e 70 66 5f 66 6c 61 67 73 |<flags=>pf_flags| 00078cf0 5f 3e 5d 5b 3c 66 69 65 6c 64 20 77 69 64 74 68 |_>][<field width| 00078d00 3d 3e 70 66 5f 66 77 5f 3e 5d 5b 3c 2e 70 72 65 |=>pf_fw_>][<.pre| 00078d10 63 69 73 69 6f 6e 3d 3e 70 66 5f 70 72 65 63 5f |cision=>pf_prec_| 00078d20 3e 5d 5b 3c 6d 6f 64 69 66 69 65 72 3d 3e 70 66 |>][<modifier=>pf| 00078d30 5f 6d 6f 64 5f 3e 5d 5c 3c 3c 63 6f 6e 76 65 72 |_mod_>]\<<conver| 00078d40 73 69 6f 6e 20 63 68 61 72 3d 3e 70 66 5f 63 6f |sion char=>pf_co| 00078d50 6e 76 5f 3e 5c 3e 20 00 44 49 52 24 a8 00 00 00 |nv_>\> .DIR$....| 00078d60 a8 00 00 00 00 8e 07 00 46 fd ff ff 4e 61 c3 22 |........F...Na."| 00078d70 b9 03 00 00 13 00 00 00 00 00 00 00 63 6f 6e 76 |............conv| 00078d80 5f 00 00 00 bc 91 07 00 46 fd ff ff 29 1f c3 22 |_.......F...).."| 00078d90 d1 02 00 00 13 00 00 00 00 00 00 00 66 6c 61 67 |............flag| 00078da0 73 5f 00 00 90 94 07 00 46 fd ff ff 4f 27 c3 22 |s_......F...O'."| 00078db0 dd 00 00 00 13 00 00 00 00 00 00 00 66 77 5f 00 |............fw_.| 00078dc0 70 95 07 00 46 fd ff ff c1 3a c3 22 aa 01 00 00 |p...F....:."....| 00078dd0 13 00 00 00 00 00 00 00 6d 6f 64 5f 00 00 00 00 |........mod_....| 00078de0 1c 97 07 00 46 fd ff ff 6e 2b c3 22 fa 01 00 00 |....F...n+."....| 00078df0 13 00 00 00 00 00 00 00 70 72 65 63 5f 00 00 00 |........prec_...| 00078e00 44 41 54 41 b9 03 00 00 46 6f 72 6d 61 74 20 53 |DATA....Format S| 00078e10 74 72 69 6e 67 20 43 6f 6e 76 65 72 73 69 6f 6e |tring Conversion| 00078e20 20 43 68 61 72 61 63 74 65 72 0a 4f 6e 65 20 6f | Character.One o| 00078e30 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a |f the following:| 00078e40 0a 0a 64 2c 69 09 54 68 65 20 69 6e 74 20 61 72 |..d,i.The int ar| 00078e50 67 75 6d 65 6e 74 20 69 73 20 6f 75 74 70 75 74 |gument is output| 00078e60 20 61 73 20 61 20 73 69 67 6e 65 64 20 64 65 63 | as a signed dec| 00078e70 69 6d 61 6c 2e 0a 0a 6f 2c 75 2c 78 2c 58 09 54 |imal...o,u,x,X.T| 00078e80 68 65 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 |he unsigned int | 00078e90 61 72 67 75 6d 65 6e 74 20 69 73 20 6f 75 74 70 |argument is outp| 00078ea0 75 74 20 61 73 20 6f 63 74 61 6c 20 28 6f 29 2c |ut as octal (o),| 00078eb0 20 75 6e 73 69 67 6e 65 64 20 64 65 63 69 6d 61 | unsigned decima| 00078ec0 6c 20 28 75 29 2c 20 6f 72 20 75 6e 73 69 67 6e |l (u), or unsign| 00078ed0 65 64 20 68 65 78 61 64 65 63 69 6d 61 6c 20 28 |ed hexadecimal (| 00078ee0 78 20 6f 72 20 58 29 2e 20 78 20 63 61 75 73 65 |x or X). x cause| 00078ef0 73 20 68 65 78 61 64 65 63 69 6d 61 6c 20 74 6f |s hexadecimal to| 00078f00 20 62 65 20 6f 75 74 70 75 74 20 69 6e 20 6c 6f | be output in lo| 00078f10 77 65 72 20 63 61 73 65 2c 20 61 6e 64 20 58 20 |wer case, and X | 00078f20 69 6e 20 75 70 70 65 72 20 63 61 73 65 2e 0a 0a |in upper case...| 00078f30 66 09 54 68 65 20 64 6f 75 62 6c 65 20 61 72 67 |f.The double arg| 00078f40 75 6d 65 6e 74 20 69 73 20 6f 75 74 70 75 74 20 |ument is output | 00078f50 61 73 20 61 20 73 69 67 6e 65 64 20 64 65 63 69 |as a signed deci| 00078f60 6d 61 6c 2e 20 49 66 20 6e 6f 20 3c 70 72 65 63 |mal. If no <prec| 00078f70 69 73 69 6f 6e 3d 3e 70 66 5f 70 72 65 63 5f 3e |ision=>pf_prec_>| 00078f80 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 | is specified it| 00078f90 20 64 65 66 61 75 6c 74 73 20 74 6f 20 36 2e 0a | defaults to 6..| 00078fa0 0a 65 2c 45 09 54 68 65 20 64 6f 75 62 6c 65 20 |.e,E.The double | 00078fb0 61 72 67 75 6d 65 6e 74 20 69 73 20 6f 75 74 70 |argument is outp| 00078fc0 75 74 20 69 6e 20 73 74 61 6e 64 61 72 64 20 66 |ut in standard f| 00078fd0 6f 72 6d 20 6e 6f 74 61 74 69 6f 6e 20 28 73 63 |orm notation (sc| 00078fe0 69 65 6e 74 69 66 69 63 29 2e 20 49 66 20 6e 6f |ientific). If no| 00078ff0 20 70 72 65 63 69 73 69 6f 6e 20 69 73 20 73 70 | precision is sp| 00079000 65 63 69 66 69 65 64 20 69 74 20 64 65 66 61 75 |ecified it defau| 00079010 6c 74 73 20 74 6f 20 36 2e 0a 0a 67 2c 47 09 54 |lts to 6...g,G.T| 00079020 68 65 20 64 6f 75 62 6c 65 20 61 72 67 75 6d 65 |he double argume| 00079030 6e 74 20 69 73 20 6f 75 74 70 75 74 20 69 6e 20 |nt is output in | 00079040 73 74 79 6c 65 20 66 20 6f 72 20 65 2f 45 2e 20 |style f or e/E. | 00079050 54 68 65 20 73 74 79 6c 65 20 75 73 65 64 20 69 |The style used i| 00079060 73 20 74 68 65 20 6f 6e 65 20 77 68 69 63 68 20 |s the one which | 00079070 70 72 6f 64 75 63 65 73 20 74 68 65 20 6e 65 61 |produces the nea| 00079080 74 65 73 74 20 6f 75 74 70 75 74 2e 0a 0a 63 09 |test output...c.| 00079090 54 68 65 20 69 6e 74 20 61 72 67 75 6d 65 6e 74 |The int argument| 000790a0 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 74 6f | is converted to| 000790b0 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 63 68 61 | an unsigned cha| 000790c0 72 20 61 6e 64 20 6f 75 74 70 75 74 2e 0a 0a 73 |r and output...s| 000790d0 09 54 68 65 20 63 68 61 72 2a 20 61 72 67 75 6d |.The char* argum| 000790e0 65 6e 74 20 69 73 20 6f 75 74 70 75 74 20 61 73 |ent is output as| 000790f0 20 61 20 73 74 72 69 6e 67 2e 0a 0a 70 09 54 68 | a string...p.Th| 00079100 65 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 |e argument is a | 00079110 76 6f 69 64 2a 20 70 6f 69 6e 74 65 72 2c 20 74 |void* pointer, t| 00079120 68 65 20 76 61 6c 75 65 20 6f 66 20 77 68 69 63 |he value of whic| 00079130 68 20 28 6e 6f 74 20 74 68 65 20 76 61 6c 75 65 |h (not the value| 00079140 20 69 74 20 70 6f 69 6e 74 73 20 74 6f 29 20 69 | it points to) i| 00079150 73 20 70 72 69 6e 74 65 64 2e 0a 0a 6e 09 54 68 |s printed...n.Th| 00079160 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 |e number of char| 00079170 61 63 74 65 72 73 20 77 72 69 74 74 65 6e 20 73 |acters written s| 00079180 6f 20 66 61 72 20 69 73 20 77 72 69 74 74 65 6e |o far is written| 00079190 20 69 6e 74 6f 20 74 68 65 20 69 6e 74 20 70 6f | into the int po| 000791a0 69 6e 74 65 64 20 74 6f 20 62 79 20 74 68 65 20 |inted to by the | 000791b0 61 72 67 75 6d 65 6e 74 2e 00 00 00 44 41 54 41 |argument....DATA| 000791c0 d1 02 00 00 46 6f 72 6d 61 74 20 53 74 72 69 6e |....Format Strin| 000791d0 67 20 46 6c 61 67 73 0a 54 68 65 20 66 6f 6c 6c |g Flags.The foll| 000791e0 6f 77 69 6e 67 20 66 6c 61 67 73 20 6d 61 79 20 |owing flags may | 000791f0 62 65 20 75 73 65 64 3a 0a 0a 2d 09 4c 65 66 74 |be used:..-.Left| 00079200 2d 6a 75 73 74 69 66 79 20 74 68 65 20 72 65 73 |-justify the res| 00079210 75 6c 74 2e 0a 2b 09 42 65 67 69 6e 20 73 69 67 |ult..+.Begin sig| 00079220 6e 65 64 20 72 65 73 75 6c 74 73 20 77 69 74 68 |ned results with| 00079230 20 65 69 74 68 65 72 20 2b 20 6f 72 20 2d 2e 0a | either + or -..| 00079240 28 73 70 61 63 65 29 09 49 66 20 6e 6f 20 73 69 |(space).If no si| 00079250 67 6e 20 69 73 20 75 73 65 64 2c 20 75 73 65 20 |gn is used, use | 00079260 61 20 73 70 61 63 65 20 69 6e 73 74 65 61 64 2e |a space instead.| 00079270 0a 23 09 41 6c 74 65 72 73 20 74 68 65 20 6f 75 |.#.Alters the ou| 00079280 74 70 75 74 20 64 65 70 65 6e 64 69 6e 67 20 6f |tput depending o| 00079290 6e 20 74 68 65 20 3c 63 6f 6e 76 65 72 73 69 6f |n the <conversio| 000792a0 6e 20 63 68 61 72 61 63 74 65 72 3d 3e 70 66 5f |n character=>pf_| 000792b0 63 6f 6e 76 5f 3e 2e 20 46 6f 72 20 6f 20 63 6f |conv_>. For o co| 000792c0 6e 76 65 72 73 69 6f 6e 20 69 74 20 61 64 64 73 |nversion it adds| 000792d0 20 61 20 6c 65 61 64 69 6e 67 20 30 2e 20 46 6f | a leading 0. Fo| 000792e0 72 20 78 20 63 6f 6e 76 65 72 73 69 6f 6e 20 69 |r x conversion i| 000792f0 74 20 61 64 64 73 20 61 20 6c 65 61 64 69 6e 67 |t adds a leading| 00079300 20 27 30 78 27 2e 20 46 6f 72 20 65 2c 20 45 2c | '0x'. For e, E,| 00079310 20 66 2c 20 67 2c 20 61 6e 64 20 47 20 63 6f 6e | f, g, and G con| 00079320 76 65 72 73 69 6f 6e 20 74 68 65 20 72 65 73 75 |version the resu| 00079330 6c 74 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 63 |lt will always c| 00079340 6f 6e 74 61 69 6e 20 61 20 64 65 63 69 6d 61 6c |ontain a decimal| 00079350 20 70 6f 69 6e 74 2e 20 46 6f 72 20 47 20 61 6e | point. For G an| 00079360 64 20 67 2c 20 74 72 61 69 6c 69 6e 67 20 7a 65 |d g, trailing ze| 00079370 72 6f 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 |ros will not be | 00079380 72 65 6d 6f 76 65 64 2e 0a 30 09 46 6f 72 20 64 |removed..0.For d| 00079390 2c 20 69 2c 20 6f 2c 20 75 2c 20 78 2c 20 58 2c |, i, o, u, x, X,| 000793a0 20 65 2c 20 45 2c 20 66 2c 20 67 2c 20 61 6e 64 | e, E, f, g, and| 000793b0 20 47 20 63 6f 6e 76 65 72 73 69 6f 6e 73 2c 20 | G conversions, | 000793c0 6c 65 61 64 69 6e 67 20 7a 65 72 6f 73 20 77 69 |leading zeros wi| 000793d0 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 70 61 |ll be used as pa| 000793e0 64 64 69 6e 67 20 69 6e 73 74 65 61 64 20 6f 66 |dding instead of| 000793f0 20 73 70 61 63 65 73 2e 20 54 68 69 73 20 77 69 | spaces. This wi| 00079400 6c 6c 20 68 61 76 65 20 6e 6f 20 65 66 66 65 63 |ll have no effec| 00079410 74 20 69 66 20 74 68 65 20 27 2d 27 20 66 6c 61 |t if the '-' fla| 00079420 67 20 69 73 20 75 73 65 64 2c 20 6e 65 69 74 68 |g is used, neith| 00079430 65 72 20 77 69 6c 6c 20 69 74 20 68 61 76 65 20 |er will it have | 00079440 61 6e 79 20 65 66 66 65 63 74 20 69 66 20 61 20 |any effect if a | 00079450 70 72 65 63 69 73 69 6f 6e 20 69 73 20 73 70 65 |precision is spe| 00079460 63 69 66 69 65 64 20 66 6f 72 20 64 2c 20 69 2c |cified for d, i,| 00079470 20 6f 2c 20 75 2c 20 78 2c 20 61 6e 64 20 58 20 | o, u, x, and X | 00079480 63 6f 6e 76 65 72 73 69 6f 6e 73 2e 2e 00 00 00 |conversions.....| 00079490 44 41 54 41 dd 00 00 00 46 6f 72 6d 61 74 20 53 |DATA....Format S| 000794a0 74 72 69 6e 67 20 46 69 65 6c 64 20 57 69 64 74 |tring Field Widt| 000794b0 68 0a 54 68 69 73 20 69 73 20 61 6e 20 75 6e 73 |h.This is an uns| 000794c0 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 76 61 |igned integer va| 000794d0 6c 75 65 2e 20 49 66 20 74 68 65 20 63 6f 6e 76 |lue. If the conv| 000794e0 65 72 74 65 64 20 76 61 6c 75 65 20 68 61 73 20 |erted value has | 000794f0 66 65 77 65 72 20 63 68 61 72 61 63 74 65 72 73 |fewer characters| 00079500 20 74 68 61 6e 20 74 68 65 20 66 69 65 6c 64 20 | than the field | 00079510 77 69 64 74 68 2c 20 69 74 20 77 69 6c 6c 20 62 |width, it will b| 00079520 65 20 70 61 64 64 65 64 20 62 79 20 73 70 61 63 |e padded by spac| 00079530 65 73 20 28 6f 6e 20 74 68 65 20 6c 65 66 74 20 |es (on the left | 00079540 75 6e 6c 65 73 73 20 74 68 65 20 3c 27 2d 27 20 |unless the <'-' | 00079550 66 6c 61 67 3d 3e 70 66 5f 66 6c 61 67 73 5f 3e |flag=>pf_flags_>| 00079560 20 69 73 20 70 72 65 73 65 6e 74 29 2e 00 00 00 | is present)....| 00079570 44 41 54 41 aa 01 00 00 46 6f 72 6d 61 74 20 53 |DATA....Format S| 00079580 74 72 69 6e 67 20 4c 65 6e 67 74 68 20 4d 6f 64 |tring Length Mod| 00079590 69 66 69 65 72 0a 4f 6e 65 20 6f 66 20 74 68 65 |ifier.One of the| 000795a0 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 68 09 46 | following:..h.F| 000795b0 6f 72 20 64 2c 20 69 2c 20 6f 2c 20 75 2c 20 78 |or d, i, o, u, x| 000795c0 20 6f 72 20 58 20 63 6f 6e 76 65 72 73 69 6f 6e | or X conversion| 000795d0 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 | specifies that | 000795e0 74 68 65 20 61 72 67 75 6d 65 6e 74 20 69 73 20 |the argument is | 000795f0 61 20 73 68 6f 72 74 20 69 6e 74 2e 20 46 6f 72 |a short int. For| 00079600 20 6e 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 | n conversion sp| 00079610 65 63 69 66 69 65 73 20 74 68 61 74 20 74 68 65 |ecifies that the| 00079620 20 70 6f 69 6e 74 65 72 20 69 73 20 74 6f 20 61 | pointer is to a| 00079630 20 73 68 6f 72 74 20 69 6e 74 2e 0a 0a 6c 09 46 | short int...l.F| 00079640 6f 72 20 64 2c 20 69 2c 20 6f 2c 20 75 2c 20 78 |or d, i, o, u, x| 00079650 2c 20 6f 72 20 58 20 63 6f 6e 76 65 72 73 69 6f |, or X conversio| 00079660 6e 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 |n specifies that| 00079670 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 69 73 | the argument is| 00079680 20 61 20 6c 6f 6e 67 20 69 6e 74 2e 20 46 6f 72 | a long int. For| 00079690 20 6e 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 | n conversion sp| 000796a0 65 63 69 66 69 65 73 20 74 68 61 74 20 74 68 65 |ecifies that the| 000796b0 20 70 6f 69 6e 74 65 72 20 69 73 20 74 6f 20 61 | pointer is to a| 000796c0 20 6c 6f 6e 67 20 69 6e 74 2e 0a 0a 4c 09 46 6f | long int...L.Fo| 000796d0 72 20 65 2c 20 45 2c 20 66 2c 20 67 20 6f 72 20 |r e, E, f, g or | 000796e0 47 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 |G conversion spe| 000796f0 63 69 66 69 65 73 20 74 68 61 74 20 74 68 65 20 |cifies that the | 00079700 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 6c 6f |argument is a lo| 00079710 6e 67 20 64 6f 75 62 6c 65 2e 00 00 44 41 54 41 |ng double...DATA| 00079720 fa 01 00 00 46 6f 72 6d 61 74 20 53 74 72 69 6e |....Format Strin| 00079730 67 20 50 72 65 63 69 73 69 6f 6e 0a 54 68 69 73 |g Precision.This| 00079740 20 69 73 20 61 20 70 65 72 69 6f 64 20 28 27 2e | is a period ('.| 00079750 27 29 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 |') followed by a| 00079760 6e 20 69 6e 74 65 67 65 72 2e 20 54 68 65 20 76 |n integer. The v| 00079770 61 6c 75 65 20 68 61 73 20 61 6e 20 65 66 66 65 |alue has an effe| 00079780 63 74 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 |ct depending on | 00079790 74 68 65 20 3c 63 6f 6e 76 65 72 73 69 6f 6e 20 |the <conversion | 000797a0 63 68 61 72 61 63 74 65 72 3d 3e 70 66 5f 63 6f |character=>pf_co| 000797b0 6e 76 5f 3e 20 61 73 20 66 6f 6c 6c 6f 77 73 3a |nv_> as follows:| 000797c0 0a 0a 65 2c 20 45 2c 20 66 3a 0a 20 20 20 54 68 |..e, E, f:. Th| 000797d0 65 20 70 72 65 63 69 73 69 6f 6e 20 69 73 20 74 |e precision is t| 000797e0 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 69 67 |he number of dig| 000797f0 69 74 73 20 74 6f 0a 20 20 20 61 70 70 65 61 72 |its to. appear| 00079800 20 61 66 74 65 72 20 74 68 65 20 64 65 63 69 6d | after the decim| 00079810 61 6c 20 70 6f 69 6e 74 2e 0a 0a 67 2c 20 47 3a |al point...g, G:| 00079820 0a 20 20 20 54 68 65 20 70 72 65 63 69 73 69 6f |. The precisio| 00079830 6e 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |n is the number | 00079840 6f 66 20 73 69 67 6e 69 66 69 63 61 6e 74 0a 20 |of significant. | 00079850 20 20 64 69 67 69 74 73 20 74 6f 20 62 65 20 6f | digits to be o| 00079860 75 74 70 75 74 2e 0a 0a 73 3a 0a 20 20 20 54 68 |utput...s:. Th| 00079870 65 20 70 72 65 63 69 73 69 6f 6e 20 69 73 20 74 |e precision is t| 00079880 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 |he maximum numbe| 00079890 72 20 6f 66 0a 20 20 20 63 68 61 72 61 63 74 65 |r of. characte| 000798a0 72 73 20 74 6f 20 62 65 20 6f 75 74 70 75 74 20 |rs to be output | 000798b0 66 72 6f 6d 20 74 68 65 20 73 74 72 69 6e 67 2e |from the string.| 000798c0 0a 0a 64 2c 20 69 2c 20 6f 2c 20 75 2c 20 78 2c |..d, i, o, u, x,| 000798d0 20 61 6e 64 20 58 3a 0a 20 20 20 54 68 65 20 70 | and X:. The p| 000798e0 72 65 63 69 73 69 6f 6e 20 69 73 20 74 68 65 20 |recision is the | 000798f0 6d 69 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f |minimum number o| 00079900 66 0a 20 20 20 64 69 67 69 74 73 20 74 6f 20 61 |f. digits to a| 00079910 70 70 65 61 72 2e 00 00 44 41 54 41 d2 00 00 00 |ppear...DATA....| 00079920 70 6f 69 6e 74 65 72 2e 68 0a 54 68 69 73 20 68 |pointer.h.This h| 00079930 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 |eader declares f| 00079940 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 73 65 74 |unctions for set| 00079950 74 69 6e 67 20 74 68 65 20 70 6f 69 6e 74 65 72 |ting the pointer| 00079960 20 73 68 61 70 65 2e 0a 0a 46 75 6e 63 74 69 6f | shape...Functio| 00079970 6e 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 0a 23 |ns:..#indent 1.#| 00079980 74 61 62 6c 65 20 6c 69 6e 65 73 20 31 0a 3c 70 |table lines 1.<p| 00079990 6f 69 6e 74 65 72 5f 73 65 74 5f 73 68 61 70 65 |ointer_set_shape| 000799a0 3e 0a 3c 70 6f 69 6e 74 65 72 5f 72 65 73 65 74 |>.<pointer_reset| 000799b0 5f 73 68 61 70 65 3e 0a 23 65 6e 64 74 61 62 6c |_shape>.#endtabl| 000799c0 65 0a 0a 4d 61 63 72 6f 3a 0a 7b 61 6c 69 67 6e |e..Macro:.{align| 000799d0 20 63 65 6e 74 72 65 7d 0a 3c 77 69 6d 70 5f 73 | centre}.<wimp_s| 000799e0 70 72 69 74 65 61 72 65 61 3e 00 00 44 49 52 24 |pritearea>..DIR$| 000799f0 18 01 00 00 18 01 00 00 04 9b 07 00 46 ff ff ff |............F...| 00079a00 21 4b b4 24 a8 00 00 00 13 00 00 00 00 00 00 00 |!K.$............| 00079a10 72 65 73 65 74 5f 73 68 61 70 65 00 ac 9b 07 00 |reset_shape.....| 00079a20 46 ff ff ff 54 46 b4 24 50 01 00 00 13 00 00 00 |F...TF.$P.......| 00079a30 00 00 00 00 73 65 74 5f 73 68 61 70 65 00 00 00 |....set_shape...| 00079a40 fc 9c 07 00 46 ff ff ff 6e 1e 42 26 00 02 00 00 |....F...n.B&....| 00079a50 13 00 00 00 00 00 00 00 73 68 61 70 65 62 6c 6f |........shapeblo| 00079a60 63 6b 00 00 fc 9e 07 00 46 ff ff ff a0 aa 52 26 |ck......F.....R&| 00079a70 19 01 00 00 13 00 00 00 00 00 00 00 52 65 73 74 |............Rest| 00079a80 72 69 63 74 54 6f 57 69 6e 64 6f 77 00 00 00 00 |rictToWindow....| 00079a90 18 a0 07 00 46 ff ff ff dc be 52 26 3f 01 00 00 |....F.....R&?...| 00079aa0 13 00 00 00 00 00 00 00 52 65 73 74 72 69 63 74 |........Restrict| 00079ab0 54 6f 49 63 6f 6e 00 00 58 a1 07 00 46 ff ff ff |ToIcon..X...F...| 00079ac0 93 cf 52 26 04 01 00 00 13 00 00 00 00 00 00 00 |..R&............| 00079ad0 52 65 73 74 72 69 63 74 54 6f 52 65 63 74 00 00 |RestrictToRect..| 00079ae0 5c a2 07 00 46 ff ff ff b1 dc 52 26 d7 00 00 00 |\...F.....R&....| 00079af0 13 00 00 00 00 00 00 00 55 6e 72 65 73 74 72 69 |........Unrestri| 00079b00 63 74 00 00 44 41 54 41 a8 00 00 00 70 6f 69 6e |ct..DATA....poin| 00079b10 74 65 72 5f 72 65 73 65 74 5f 73 68 61 70 65 0a |ter_reset_shape.| 00079b20 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 70 6f 69 |Syntax:.void poi| 00079b30 6e 74 65 72 5f 72 65 73 65 74 5f 73 68 61 70 65 |nter_reset_shape| 00079b40 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 00079b50 09 3c 70 6f 69 6e 74 65 72 2e 68 3d 3e 70 6f 69 |.<pointer.h=>poi| 00079b60 6e 74 65 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |nter>..This func| 00079b70 74 69 6f 6e 20 72 65 73 65 74 73 20 74 68 65 20 |tion resets the | 00079b80 70 6f 69 6e 74 65 72 20 74 6f 20 62 65 20 73 68 |pointer to be sh| 00079b90 61 70 65 20 31 20 28 74 68 65 20 64 65 66 61 75 |ape 1 (the defau| 00079ba0 6c 74 20 70 6f 69 6e 74 65 72 29 2e 44 41 54 41 |lt pointer).DATA| 00079bb0 50 01 00 00 70 6f 69 6e 74 65 72 5f 73 65 74 5f |P...pointer_set_| 00079bc0 73 68 61 70 65 0a 53 79 6e 74 61 78 3a 09 3c 6f |shape.Syntax:.<o| 00079bd0 73 5f 65 72 72 6f 72 3e 20 2a 70 6f 69 6e 74 65 |s_error> *pointe| 00079be0 72 5f 73 65 74 5f 73 68 61 70 65 20 28 3c 73 70 |r_set_shape (<sp| 00079bf0 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 |rite_area> *area| 00079c00 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 |, <sprite_id> *s| 00079c10 70 72 2c 20 69 6e 74 20 61 63 74 69 76 65 5f 78 |pr, int active_x| 00079c20 2c 20 69 6e 74 20 61 63 74 69 76 65 5f 79 29 3b |, int active_y);| 00079c30 0a 48 65 61 64 65 72 3a 09 3c 70 6f 69 6e 74 65 |.Header:.<pointe| 00079c40 72 2e 68 3d 3e 70 6f 69 6e 74 65 72 3e 0a 0a 52 |r.h=>pointer>..R| 00079c50 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00079c60 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00079c70 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00079c80 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 00079c90 20 74 68 65 20 70 6f 69 6e 74 65 72 20 28 75 73 | the pointer (us| 00079ca0 69 6e 67 20 70 6f 69 6e 74 65 72 20 32 29 20 74 |ing pointer 2) t| 00079cb0 6f 20 62 65 20 74 68 65 20 73 70 72 69 74 65 20 |o be the sprite | 00079cc0 73 70 65 63 69 66 69 65 64 2e 20 54 68 65 20 61 |specified. The a| 00079cd0 63 74 69 76 65 20 70 6f 69 6e 74 20 69 73 20 67 |ctive point is g| 00079ce0 69 76 65 6e 20 69 6e 20 28 61 63 74 69 76 65 5f |iven in (active_| 00079cf0 78 2c 61 63 74 69 76 65 5f 79 29 2e 44 41 54 41 |x,active_y).DATA| 00079d00 00 02 00 00 70 6f 69 6e 74 65 72 5f 73 68 61 70 |....pointer_shap| 00079d10 65 62 6c 6f 63 6b 0a 54 68 69 73 20 69 73 20 64 |eblock.This is d| 00079d20 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c |efined in <DeskL| 00079d30 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e |ib:Wimp.h=>Wimp>| 00079d40 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 |. It is a struct| 00079d50 75 72 65 20 75 73 65 64 20 62 79 20 3c 57 69 6d |ure used by <Wim| 00079d60 70 5f 53 65 74 50 6f 69 6e 74 65 72 53 68 61 70 |p_SetPointerShap| 00079d70 65 3e 20 77 68 69 63 68 20 64 65 66 69 6e 65 73 |e> which defines| 00079d80 20 74 68 65 20 73 68 61 70 65 20 61 6e 64 20 73 | the shape and s| 00079d90 69 7a 65 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 |ize of the point| 00079da0 65 72 2e 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 |er... \{. | 00079db0 20 20 69 6e 74 09 09 73 68 61 70 65 6e 75 6d 62 | int..shapenumb| 00079dc0 65 72 3b 0a 20 20 20 20 20 20 63 68 61 72 09 09 |er;. char..| 00079dd0 2a 73 68 61 70 65 64 61 74 61 3b 0a 20 20 20 20 |*shapedata;. | 00079de0 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 09 77 | unsigned int.w| 00079df0 69 64 74 68 3b 0a 20 20 20 20 20 20 75 6e 73 69 |idth;. unsi| 00079e00 67 6e 65 64 20 69 6e 74 09 68 65 69 67 68 74 3b |gned int.height;| 00079e10 0a 20 20 20 20 20 20 3c 77 69 6d 70 5f 70 6f 69 |. <wimp_poi| 00079e20 6e 74 3e 09 61 63 74 69 76 65 3b 0a 20 20 20 20 |nt>.active;. | 00079e30 7d 0a 0a 2f 73 68 61 70 65 6e 75 6d 62 65 72 2f |}../shapenumber/| 00079e40 20 73 68 6f 75 6c 64 20 62 65 20 30 20 74 6f 20 | should be 0 to | 00079e50 73 77 69 74 63 68 20 74 68 65 20 70 6f 69 6e 74 |switch the point| 00079e60 65 72 20 6f 66 66 2c 20 6f 72 20 32 20 74 6f 20 |er off, or 2 to | 00079e70 64 65 66 69 6e 65 20 79 6f 75 72 20 6f 77 6e 20 |define your own | 00079e80 70 6f 69 6e 74 65 72 2e 20 2f 61 63 74 69 76 65 |pointer. /active| 00079e90 2f 20 64 65 66 69 6e 65 73 20 74 68 65 20 6f 66 |/ defines the of| 00079ea0 66 73 65 74 20 28 69 6e 20 70 69 78 65 6c 73 20 |fset (in pixels | 00079eb0 66 72 6f 6d 20 74 68 65 20 74 6f 70 2d 6c 65 66 |from the top-lef| 00079ec0 74 29 20 6f 66 20 74 68 65 20 61 63 74 69 76 65 |t) of the active| 00079ed0 20 70 6f 69 6e 74 2e 20 2f 73 68 61 70 65 64 61 | point. /shapeda| 00079ee0 74 61 2f 20 63 61 6e 20 62 65 20 2d 31 20 66 6f |ta/ can be -1 fo| 00079ef0 72 20 6e 6f 20 63 68 61 6e 67 65 2e 44 41 54 41 |r no change.DATA| 00079f00 19 01 00 00 50 6f 69 6e 74 65 72 5f 52 65 73 74 |....Pointer_Rest| 00079f10 72 69 63 74 54 6f 57 69 6e 64 6f 77 0a 53 79 6e |rictToWindow.Syn| 00079f20 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00079f30 2a 50 6f 69 6e 74 65 72 5f 52 65 73 74 72 69 63 |*Pointer_Restric| 00079f40 74 54 6f 57 69 6e 64 6f 77 20 28 3c 77 69 6e 64 |tToWindow (<wind| 00079f50 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 29 3b |ow_handle> win);| 00079f60 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00079f70 62 3a 50 6f 69 6e 74 65 72 2e 68 3d 3e 44 4c 5f |b:Pointer.h=>DL_| 00079f80 50 6f 69 6e 74 65 72 3e 0a 0a 52 65 74 75 72 6e |Pointer>..Return| 00079f90 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00079fa0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00079fb0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00079fc0 6e 63 74 69 6f 6e 20 72 65 73 74 72 69 63 74 73 |nction restricts| 00079fd0 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 | the pointer to | 00079fe0 74 68 65 20 72 65 63 74 61 6e 67 6c 65 20 77 68 |the rectangle wh| 00079ff0 69 63 68 20 69 73 20 74 68 65 20 77 69 6e 64 6f |ich is the windo| 0007a000 77 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 2f |w specified in /| 0007a010 77 69 6e 2f 2e 00 00 00 44 41 54 41 3f 01 00 00 |win/....DATA?...| 0007a020 50 6f 69 6e 74 65 72 5f 52 65 73 74 72 69 63 74 |Pointer_Restrict| 0007a030 54 6f 49 63 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c |ToIcon.Syntax:.<| 0007a040 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 6f 69 6e 74 |os_error> *Point| 0007a050 65 72 5f 52 65 73 74 72 69 63 74 54 6f 49 63 6f |er_RestrictToIco| 0007a060 6e 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |n (<window_handl| 0007a070 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 |e> win, <icon_ha| 0007a080 6e 64 6c 65 3e 20 69 63 6f 6e 29 3b 0a 48 65 61 |ndle> icon);.Hea| 0007a090 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 6f |der:.<DeskLib:Po| 0007a0a0 69 6e 74 65 72 2e 68 3d 3e 44 4c 5f 50 6f 69 6e |inter.h=>DL_Poin| 0007a0b0 74 65 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ter>..Returns:.P| 0007a0c0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 0007a0d0 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 0007a0e0 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 0007a0f0 6f 6e 20 72 65 73 74 72 69 63 74 73 20 74 68 65 |on restricts the| 0007a100 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 | pointer to the | 0007a110 72 65 63 74 61 6e 67 6c 65 20 77 68 69 63 68 20 |rectangle which | 0007a120 69 73 20 74 68 65 20 62 6f 75 6e 64 69 6e 67 20 |is the bounding | 0007a130 62 6f 78 20 6f 66 20 74 68 65 20 69 63 6f 6e 20 |box of the icon | 0007a140 2f 69 63 6f 6e 2f 20 69 6e 20 77 69 6e 64 6f 77 |/icon/ in window| 0007a150 20 2f 77 69 6e 2f 2e 00 44 41 54 41 04 01 00 00 | /win/..DATA....| 0007a160 50 6f 69 6e 74 65 72 5f 52 65 73 74 72 69 63 74 |Pointer_Restrict| 0007a170 54 6f 52 65 63 74 0a 53 79 6e 74 61 78 3a 09 3c |ToRect.Syntax:.<| 0007a180 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 6f 69 6e 74 |os_error> *Point| 0007a190 65 72 5f 52 65 73 74 72 69 63 74 54 6f 52 65 63 |er_RestrictToRec| 0007a1a0 74 20 28 3c 77 69 6d 70 5f 72 65 63 74 3e 20 72 |t (<wimp_rect> r| 0007a1b0 65 63 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ect);.Header:.<D| 0007a1c0 65 73 6b 4c 69 62 3a 50 6f 69 6e 74 65 72 2e 68 |eskLib:Pointer.h| 0007a1d0 3d 3e 44 4c 5f 50 6f 69 6e 74 65 72 3e 0a 0a 52 |=>DL_Pointer>..R| 0007a1e0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0007a1f0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0007a200 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0007a210 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 74 |is function rest| 0007a220 72 69 63 74 73 20 74 68 65 20 70 6f 69 6e 74 65 |ricts the pointe| 0007a230 72 20 74 6f 20 74 68 65 20 72 65 63 74 61 6e 67 |r to the rectang| 0007a240 6c 65 20 77 68 69 63 68 20 69 73 20 67 69 76 65 |le which is give| 0007a250 6e 20 69 6e 20 2f 72 65 63 74 2f 2e 44 41 54 41 |n in /rect/.DATA| 0007a260 d7 00 00 00 50 6f 69 6e 74 65 72 5f 55 6e 72 65 |....Pointer_Unre| 0007a270 73 74 72 69 63 74 0a 53 79 6e 74 61 78 3a 09 3c |strict.Syntax:.<| 0007a280 6f 73 5f 65 72 72 6f 72 3e 20 2a 50 6f 69 6e 74 |os_error> *Point| 0007a290 65 72 5f 55 6e 72 65 73 74 72 69 63 74 20 28 76 |er_Unrestrict (v| 0007a2a0 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |oid);.Header:.<D| 0007a2b0 65 73 6b 4c 69 62 3a 50 6f 69 6e 74 65 72 2e 68 |eskLib:Pointer.h| 0007a2c0 3d 3e 44 4c 5f 50 6f 69 6e 74 65 72 3e 0a 0a 52 |=>DL_Pointer>..R| 0007a2d0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 0007a2e0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 0007a2f0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 0007a300 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f |is function remo| 0007a310 76 65 73 20 61 6e 79 20 72 65 73 74 72 69 63 74 |ves any restrict| 0007a320 69 6f 6e 20 6f 6e 20 74 68 65 20 70 6f 69 6e 74 |ion on the point| 0007a330 65 72 2e 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |er..DIR$,...,...| 0007a340 60 a3 07 00 46 ff ff ff f1 59 46 26 f8 00 00 00 |`...F....YF&....| 0007a350 13 00 00 00 00 00 00 00 62 6c 6f 63 6b 00 00 00 |........block...| 0007a360 44 41 54 41 f8 00 00 00 70 6f 6c 6c 77 6f 72 64 |DATA....pollword| 0007a370 5f 62 6c 6f 63 6b 0a 54 68 69 73 20 69 73 20 61 |_block.This is a| 0007a380 20 74 79 70 65 20 64 65 66 69 6e 65 64 20 62 79 | type defined by| 0007a390 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 | <DeskLib:Wimp.h| 0007a3a0 3d 3e 57 69 6d 70 3e 20 77 68 69 63 68 20 63 6f |=>Wimp> which co| 0007a3b0 6e 74 61 69 6e 73 20 74 68 65 20 64 61 74 61 20 |ntains the data | 0007a3c0 72 65 74 75 72 6e 65 64 20 62 79 20 61 20 50 6f |returned by a Po| 0007a3d0 6c 6c 57 6f 72 64 5f 4e 6f 6e 5a 65 72 6f 20 65 |llWord_NonZero e| 0007a3e0 76 65 6e 74 2e 0a 7b 77 72 61 70 20 6f 66 66 7d |vent..{wrap off}| 0007a3f0 0a 20 20 20 5c 7b 0a 20 20 20 20 20 69 6e 74 20 |. \{. int | 0007a400 61 64 64 72 65 73 73 3b 09 2f 2a 20 41 64 64 72 |address;./* Addr| 0007a410 65 73 73 20 6f 66 20 70 6f 6c 6c 20 77 6f 72 64 |ess of poll word| 0007a420 20 20 2a 2f 0a 20 20 20 20 20 69 6e 74 20 63 6f | */. int co| 0007a430 6e 74 65 6e 74 73 3b 09 2f 2a 20 43 6f 6e 74 65 |ntents;./* Conte| 0007a440 6e 74 73 20 6f 66 20 70 6f 6c 6c 20 77 6f 72 64 |nts of poll word| 0007a450 20 2a 2f 0a 20 20 20 7d 44 41 54 41 66 03 00 00 | */. }DATAf...| 0007a460 44 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 0a |DeskLib:PopUp.h.| 0007a470 56 65 72 73 69 6f 6e 3a 20 31 2e 30 30 20 28 32 |Version: 1.00 (2| 0007a480 30 20 4d 61 79 20 31 39 39 33 29 0a 23 6c 69 6e |0 May 1993).#lin| 0007a490 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 70 72 |e.This header pr| 0007a4a0 6f 76 69 64 65 73 20 66 75 6e 63 74 69 6f 6e 73 |ovides functions| 0007a4b0 20 61 6e 64 20 74 79 70 65 73 20 72 65 6c 61 74 | and types relat| 0007a4c0 69 6e 67 20 74 6f 20 4a 61 73 6f 6e 20 57 69 6c |ing to Jason Wil| 0007a4d0 6c 69 61 6d 73 27 20 50 6f 70 55 70 20 73 79 73 |liams' PopUp sys| 0007a4e0 74 65 6d 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a |tem...Functions:| 0007a4f0 0a 0a 23 69 6e 64 65 6e 74 20 35 0a 23 54 61 62 |..#indent 5.#Tab| 0007a500 6c 65 20 33 20 32 31 0a 3c 50 6f 70 55 70 5f 4f |le 3 21.<PopUp_O| 0007a510 70 65 6e 3e 0a 3c 50 6f 70 55 70 5f 43 6c 6f 73 |pen>.<PopUp_Clos| 0007a520 65 3e 0a 3c 50 6f 70 55 70 5f 53 68 6f 77 4d 65 |e>.<PopUp_ShowMe| 0007a530 6e 75 4c 65 61 66 3e 0a 3c 50 6f 70 55 70 5f 53 |nuLeaf>.<PopUp_S| 0007a540 68 6f 77 50 74 72 3e 0a 3c 50 6f 70 55 70 5f 53 |howPtr>.<PopUp_S| 0007a550 68 6f 77 53 74 61 6e 64 61 6c 6f 6e 65 3e 0a 3c |howStandalone>.<| 0007a560 50 6f 70 55 70 5f 53 68 6f 77 53 74 61 74 69 63 |PopUp_ShowStatic| 0007a570 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 69 6e 64 |>.#EndTable.#ind| 0007a580 65 6e 74 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 23 69 |ent..Macros:..#i| 0007a590 6e 64 65 6e 74 20 33 0a 23 54 61 62 6c 65 20 36 |ndent 3.#Table 6| 0007a5a0 20 32 31 0a 3c 70 6f 70 75 70 5f 49 53 4c 45 41 | 21.<popup_ISLEA| 0007a5b0 46 3e 0a 3c 70 6f 70 75 70 5f 49 53 53 54 41 54 |F>.<popup_ISSTAT| 0007a5c0 49 43 3e 0a 3c 70 6f 70 75 70 5f 53 54 41 4e 44 |IC>.<popup_STAND| 0007a5d0 41 4c 4f 4e 45 3e 0a 3c 70 6f 70 75 70 5f 4d 45 |ALONE>.<popup_ME| 0007a5e0 4e 55 4c 45 41 46 3e 0a 3c 70 6f 70 75 70 5f 53 |NULEAF>.<popup_S| 0007a5f0 54 41 54 49 43 3e 0a 3c 70 6f 70 75 70 74 63 5f |TATIC>.<popuptc_| 0007a600 52 47 42 3e 0a 3c 70 6f 70 75 70 74 63 5f 48 53 |RGB>.<popuptc_HS| 0007a610 56 3e 0a 3c 70 6f 70 75 70 74 63 5f 43 4d 59 4b |V>.<popuptc_CMYK| 0007a620 3e 0a 3c 70 6f 70 75 70 74 63 5f 54 52 41 4e 53 |>.<popuptc_TRANS| 0007a630 50 41 52 45 4e 54 30 3e 0a 3c 70 6f 70 75 70 74 |PARENT0>.<popupt| 0007a640 63 5f 54 52 41 4e 53 50 41 52 45 4e 54 31 3e 0a |c_TRANSPARENT1>.| 0007a650 3c 70 6f 70 75 70 74 63 5f 54 52 41 4e 53 50 41 |<popuptc_TRANSPA| 0007a660 52 45 4e 54 32 35 36 3e 0a 23 45 6e 64 54 61 62 |RENT256>.#EndTab| 0007a670 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 |le.#indent..Type| 0007a680 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 37 0a 23 54 |s:..#indent 7.#T| 0007a690 61 62 6c 65 20 39 20 32 31 0a 3c 70 6f 70 75 70 |able 9 21.<popup| 0007a6a0 5f 68 61 6e 64 6c 65 3e 0a 3c 70 6f 70 75 70 5f |_handle>.<popup_| 0007a6b0 6d 61 67 6e 69 66 79 3e 0a 3c 70 6f 70 75 70 5f |magnify>.<popup_| 0007a6c0 70 72 6f 67 69 6e 66 6f 3e 0a 3c 70 6f 70 75 70 |proginfo>.<popup| 0007a6d0 5f 72 65 70 6f 72 74 3e 0a 3c 70 6f 70 75 70 5f |_report>.<popup_| 0007a6e0 73 61 76 65 61 73 3e 0a 3c 70 6f 70 75 70 5f 73 |saveas>.<popup_s| 0007a6f0 61 76 65 61 73 72 65 74 75 72 6e 3e 0a 3c 70 6f |aveasreturn>.<po| 0007a700 70 75 70 5f 77 69 6d 70 63 6f 6c 6f 75 72 3e 0a |pup_wimpcolour>.| 0007a710 3c 63 6f 6c 6f 75 72 5f 72 67 62 3e 0a 3c 63 6f |<colour_rgb>.<co| 0007a720 6c 6f 75 72 5f 68 73 76 3e 0a 3c 63 6f 6c 6f 75 |lour_hsv>.<colou| 0007a730 72 5f 63 6d 79 6b 20 3e 0a 3c 70 6f 70 75 70 5f |r_cmyk >.<popup_| 0007a740 74 72 75 65 63 6f 6c 6f 75 72 3e 0a 3c 70 6f 70 |truecolour>.<pop| 0007a750 75 70 5f 68 65 61 64 65 72 3e 0a 3c 70 6f 70 75 |up_header>.<popu| 0007a760 70 5f 64 61 74 61 3e 0a 3c 70 6f 70 75 70 5f 72 |p_data>.<popup_r| 0007a770 65 74 75 72 6e 64 61 74 61 3e 0a 3c 6d 65 73 73 |eturndata>.<mess| 0007a780 61 67 65 5f 70 6f 70 75 70 72 65 71 75 65 73 74 |age_popuprequest| 0007a790 3e 0a 3c 6d 65 73 73 61 67 65 5f 70 6f 70 75 70 |>.<message_popup| 0007a7a0 73 74 61 74 65 3e 0a 3c 70 6f 70 75 70 5f 62 6c |state>.<popup_bl| 0007a7b0 6f 63 6b 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 |ock>.#EndTable..| 0007a7c0 44 49 52 24 dc 00 00 00 dc 00 00 00 9c a8 07 00 |DIR$............| 0007a7d0 46 ff ff ff a3 5e 61 25 a3 00 00 00 13 00 00 00 |F....^a%........| 0007a7e0 00 00 00 00 43 4d 59 4b 00 00 00 00 40 a9 07 00 |....CMYK....@...| 0007a7f0 46 ff ff ff 6e 5b 61 25 a1 00 00 00 13 00 00 00 |F...n[a%........| 0007a800 00 00 00 00 48 53 56 00 e4 a9 07 00 46 ff ff ff |....HSV.....F...| 0007a810 0e 58 61 25 a1 00 00 00 13 00 00 00 00 00 00 00 |.Xa%............| 0007a820 52 47 42 00 88 aa 07 00 46 ff ff ff 84 61 61 25 |RGB.....F....aa%| 0007a830 be 00 00 00 13 00 00 00 00 00 00 00 54 52 41 4e |............TRAN| 0007a840 53 50 41 52 45 4e 54 30 00 00 00 00 48 ab 07 00 |SPARENT0....H...| 0007a850 46 ff ff ff 30 6b 61 25 3b 01 00 00 13 00 00 00 |F...0ka%;.......| 0007a860 00 00 00 00 54 52 41 4e 53 50 41 52 45 4e 54 31 |....TRANSPARENT1| 0007a870 00 00 00 00 84 ac 07 00 46 ff ff ff 32 73 61 25 |........F...2sa%| 0007a880 48 01 00 00 13 00 00 00 00 00 00 00 54 52 41 4e |H...........TRAN| 0007a890 53 50 41 52 45 4e 54 32 35 36 00 00 44 41 54 41 |SPARENT256..DATA| 0007a8a0 a3 00 00 00 70 6f 70 75 70 74 63 5f 43 4d 59 4b |....popuptc_CMYK| 0007a8b0 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 0007a8c0 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c |efined in <DeskL| 0007a8d0 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 |ib:PopUp.h=>PopU| 0007a8e0 70 3e 2e 20 49 74 20 69 73 20 74 68 65 20 76 61 |p>. It is the va| 0007a8f0 6c 75 65 20 6f 66 20 74 68 65 20 63 6f 6c 6f 75 |lue of the colou| 0007a900 72 20 6d 6f 64 65 6c 20 6e 75 6d 62 65 72 20 72 |r model number r| 0007a910 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 |epresenting the | 0007a920 43 4d 59 4b 20 6d 6f 64 65 6c 2e 20 49 74 20 69 |CMYK model. It i| 0007a930 73 20 64 65 66 69 6e 65 64 20 61 73 20 32 2e 00 |s defined as 2..| 0007a940 44 41 54 41 a1 00 00 00 70 6f 70 75 70 74 63 5f |DATA....popuptc_| 0007a950 48 53 56 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |HSV.This macro i| 0007a960 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 0007a970 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 |skLib:PopUp.h=>P| 0007a980 6f 70 55 70 3e 2e 20 49 74 20 69 73 20 74 68 65 |opUp>. It is the| 0007a990 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 6f | value of the co| 0007a9a0 6c 6f 75 72 20 6d 6f 64 65 6c 20 6e 75 6d 62 65 |lour model numbe| 0007a9b0 72 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 |r representing t| 0007a9c0 68 65 20 48 53 56 20 6d 6f 64 65 6c 2e 20 49 74 |he HSV model. It| 0007a9d0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 31 | is defined as 1| 0007a9e0 2e 00 00 00 44 41 54 41 a1 00 00 00 70 6f 70 75 |....DATA....popu| 0007a9f0 70 74 63 5f 52 47 42 0a 54 68 69 73 20 6d 61 63 |ptc_RGB.This mac| 0007aa00 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 0007aa10 20 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e | <DeskLib:PopUp.| 0007aa20 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 74 20 69 73 |h=>PopUp>. It is| 0007aa30 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 | the value of th| 0007aa40 65 20 63 6f 6c 6f 75 72 20 6d 6f 64 65 6c 20 6e |e colour model n| 0007aa50 75 6d 62 65 72 20 72 65 70 72 65 73 65 6e 74 69 |umber representi| 0007aa60 6e 67 20 74 68 65 20 52 47 42 20 6d 6f 64 65 6c |ng the RGB model| 0007aa70 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 0007aa80 61 73 20 30 2e 00 00 00 44 41 54 41 be 00 00 00 |as 0....DATA....| 0007aa90 70 6f 70 75 70 74 63 5f 54 52 41 4e 53 50 41 52 |popuptc_TRANSPAR| 0007aaa0 45 4e 54 30 0a 54 68 69 73 20 6d 61 63 72 6f 20 |ENT0.This macro | 0007aab0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 0007aac0 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e |eskLib:PopUp.h=>| 0007aad0 50 6f 70 55 70 3e 2e 20 49 74 20 69 73 20 74 68 |PopUp>. It is th| 0007aae0 65 20 76 61 6c 75 65 20 74 6f 20 4f 52 20 69 6e |e value to OR in| 0007aaf0 74 6f 20 74 68 65 20 63 6f 6c 6f 75 72 20 6d 6f |to the colour mo| 0007ab00 64 65 6c 20 6e 75 6d 62 65 72 20 77 68 69 63 68 |del number which| 0007ab10 20 72 65 70 72 65 73 65 6e 74 73 20 6e 6f 20 74 | represents no t| 0007ab20 72 61 6e 73 70 61 72 65 6e 63 79 2e 20 49 74 20 |ransparency. It | 0007ab30 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 30 78 |is defined as 0x| 0007ab40 30 30 30 30 30 2e 00 00 44 41 54 41 3b 01 00 00 |00000...DATA;...| 0007ab50 70 6f 70 75 70 74 63 5f 54 52 41 4e 53 50 41 52 |popuptc_TRANSPAR| 0007ab60 45 4e 54 31 0a 54 68 69 73 20 6d 61 63 72 6f 20 |ENT1.This macro | 0007ab70 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 0007ab80 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e |eskLib:PopUp.h=>| 0007ab90 50 6f 70 55 70 3e 2e 20 49 74 20 69 73 20 74 68 |PopUp>. It is th| 0007aba0 65 20 76 61 6c 75 65 20 74 6f 20 4f 52 20 69 6e |e value to OR in| 0007abb0 74 6f 20 74 68 65 20 63 6f 6c 6f 75 72 20 6d 6f |to the colour mo| 0007abc0 64 65 6c 20 6e 75 6d 62 65 72 20 77 68 69 63 68 |del number which| 0007abd0 20 72 65 70 72 65 73 65 6e 74 73 20 6f 6e 65 20 | represents one | 0007abe0 74 72 61 6e 73 70 61 72 65 6e 63 79 2e 20 49 74 |transparency. It| 0007abf0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 30 | is defined as 0| 0007ac00 78 31 30 30 30 30 2e 0a 0a 46 6f 72 20 65 78 61 |x10000...For exa| 0007ac10 6d 70 6c 65 2c 20 61 20 27 21 44 72 61 77 27 20 |mple, a '!Draw' | 0007ac20 73 74 79 6c 65 20 63 6f 6c 6f 75 72 20 77 6f 75 |style colour wou| 0007ac30 6c 64 20 62 65 20 67 69 76 65 6e 20 62 79 3a 0a |ld be given by:.| 0007ac40 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 |{wrap off}.{fCod| 0007ac50 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c |e;align centre}<| 0007ac60 70 6f 70 75 70 74 63 5f 52 47 42 3e 20 7c 20 70 |popuptc_RGB> | p| 0007ac70 6f 70 75 70 74 63 5f 54 52 41 4e 53 50 41 52 45 |opuptc_TRANSPARE| 0007ac80 4e 54 31 00 44 41 54 41 48 01 00 00 70 6f 70 75 |NT1.DATAH...popu| 0007ac90 70 74 63 5f 54 52 41 4e 53 50 41 52 45 4e 54 32 |ptc_TRANSPARENT2| 0007aca0 35 36 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |56.This macro is| 0007acb0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 0007acc0 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f |kLib:PopUp.h=>Po| 0007acd0 70 55 70 3e 2e 20 49 74 20 69 73 20 74 68 65 20 |pUp>. It is the | 0007ace0 76 61 6c 75 65 20 74 6f 20 4f 52 20 69 6e 74 6f |value to OR into| 0007acf0 20 74 68 65 20 63 6f 6c 6f 75 72 20 6d 6f 64 65 | the colour mode| 0007ad00 6c 20 6e 75 6d 62 65 72 20 77 68 69 63 68 20 72 |l number which r| 0007ad10 65 70 72 65 73 65 6e 74 73 20 66 75 6c 6c 20 74 |epresents full t| 0007ad20 72 61 6e 73 70 61 72 65 6e 63 79 2e 20 49 74 20 |ransparency. It | 0007ad30 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 30 78 |is defined as 0x| 0007ad40 32 30 30 30 30 2e 0a 0a 46 6f 72 20 65 78 61 6d |20000...For exam| 0007ad50 70 6c 65 2c 20 61 20 66 75 6c 6c 20 74 72 61 6e |ple, a full tran| 0007ad60 73 70 61 72 65 6e 63 79 20 48 53 56 20 63 6f 6c |sparency HSV col| 0007ad70 6f 75 72 20 77 6f 75 6c 64 20 62 65 20 67 69 76 |our would be giv| 0007ad80 65 6e 20 62 79 3a 0a 7b 77 72 61 70 20 6f 66 66 |en by:.{wrap off| 0007ad90 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 |}.{fCode;align c| 0007ada0 65 6e 74 72 65 7d 3c 70 6f 70 75 70 74 63 5f 48 |entre}<popuptc_H| 0007adb0 53 56 3e 20 7c 20 70 6f 70 75 70 74 63 5f 54 52 |SV> | popuptc_TR| 0007adc0 41 4e 53 50 41 52 45 4e 54 32 35 36 44 49 52 24 |ANSPARENT256DIR$| 0007add0 24 03 00 00 24 03 00 00 f0 b0 07 00 46 ff ff ff |$...$.......F...| 0007ade0 7d f5 61 25 16 01 00 00 13 00 00 00 00 00 00 00 |}.a%............| 0007adf0 62 6c 6f 63 6b 00 00 00 08 b2 07 00 46 ff ff ff |block.......F...| 0007ae00 95 20 61 25 f8 00 00 00 13 00 00 00 00 00 00 00 |. a%............| 0007ae10 43 6c 6f 73 65 00 00 00 00 b3 07 00 46 ff ff ff |Close.......F...| 0007ae20 dd c3 61 25 6b 01 00 00 13 00 00 00 00 00 00 00 |..a%k...........| 0007ae30 64 61 74 61 00 00 00 00 6c b4 07 00 46 ff ff ff |data....l...F...| 0007ae40 e2 78 61 25 ac 00 00 00 13 00 00 00 00 00 00 00 |.xa%............| 0007ae50 68 61 6e 64 6c 65 00 00 18 b5 07 00 46 ff ff ff |handle......F...| 0007ae60 8b bb 61 25 3a 01 00 00 13 00 00 00 00 00 00 00 |..a%:...........| 0007ae70 68 65 61 64 65 72 00 00 54 b6 07 00 46 ff ff ff |header..T...F...| 0007ae80 fd 45 61 25 e1 00 00 00 13 00 00 00 00 00 00 00 |.Ea%............| 0007ae90 49 53 4c 45 41 46 00 00 38 b7 07 00 46 ff ff ff |ISLEAF..8...F...| 0007aea0 66 4a 61 25 de 00 00 00 13 00 00 00 00 00 00 00 |fJa%............| 0007aeb0 49 53 53 54 41 54 49 43 00 00 00 00 18 b8 07 00 |ISSTATIC........| 0007aec0 46 ff ff ff 09 7c 61 25 0f 01 00 00 13 00 00 00 |F....|a%........| 0007aed0 00 00 00 00 6d 61 67 6e 69 66 79 00 28 b9 07 00 |....magnify.(...| 0007aee0 46 ff ff ff 1c 52 61 25 a8 00 00 00 13 00 00 00 |F....Ra%........| 0007aef0 00 00 00 00 4d 45 4e 55 4c 45 41 46 00 00 00 00 |....MENULEAF....| 0007af00 d0 b9 07 00 46 ff ff ff 19 1d 61 25 47 01 00 00 |....F.....a%G...| 0007af10 13 00 00 00 00 00 00 00 4f 70 65 6e 00 00 00 00 |........Open....| 0007af20 18 bb 07 00 46 ff ff ff c5 7f 61 25 29 01 00 00 |....F.....a%)...| 0007af30 13 00 00 00 00 00 00 00 70 72 6f 67 69 6e 66 6f |........proginfo| 0007af40 00 00 00 00 44 bc 07 00 46 ff ff ff 19 89 61 25 |....D...F.....a%| 0007af50 c8 01 00 00 13 00 00 00 00 00 00 00 72 65 70 6f |............repo| 0007af60 72 74 00 00 0c be 07 00 46 ff ff ff 8e e0 61 25 |rt......F.....a%| 0007af70 ed 01 00 00 13 00 00 00 00 00 00 00 72 65 74 75 |............retu| 0007af80 72 6e 64 61 74 61 00 00 fc bf 07 00 46 ff ff ff |rndata......F...| 0007af90 3a 90 61 25 2b 01 00 00 13 00 00 00 00 00 00 00 |:.a%+...........| 0007afa0 73 61 76 65 61 73 00 00 28 c1 07 00 46 ff ff ff |saveas..(...F...| 0007afb0 f8 96 61 25 8c 01 00 00 13 00 00 00 00 00 00 00 |..a%............| 0007afc0 73 61 76 65 61 73 72 65 74 75 72 6e 00 00 00 00 |saveasreturn....| 0007afd0 b4 c2 07 00 46 ff ff ff 1c 2e 61 25 6d 01 00 00 |....F.....a%m...| 0007afe0 13 00 00 00 00 00 00 00 53 68 6f 77 4d 65 6e 75 |........ShowMenu| 0007aff0 4c 65 61 66 00 00 00 00 24 c4 07 00 46 ff ff ff |Leaf....$...F...| 0007b000 49 38 61 25 b6 01 00 00 13 00 00 00 00 00 00 00 |I8a%............| 0007b010 53 68 6f 77 50 74 72 00 dc c5 07 00 46 ff ff ff |ShowPtr.....F...| 0007b020 09 3e 61 25 05 01 00 00 13 00 00 00 00 00 00 00 |.>a%............| 0007b030 53 68 6f 77 53 74 61 6e 64 61 6c 6f 6e 65 00 00 |ShowStandalone..| 0007b040 e4 c6 07 00 46 ff ff ff 9a 42 61 25 fc 00 00 00 |....F....Ba%....| 0007b050 13 00 00 00 00 00 00 00 53 68 6f 77 53 74 61 74 |........ShowStat| 0007b060 69 63 00 00 e0 c7 07 00 46 ff ff ff f1 4e 61 25 |ic......F....Na%| 0007b070 a7 00 00 00 13 00 00 00 00 00 00 00 53 54 41 4e |............STAN| 0007b080 44 41 4c 4f 4e 45 00 00 88 c8 07 00 46 ff ff ff |DALONE......F...| 0007b090 20 55 61 25 b0 00 00 00 13 00 00 00 00 00 00 00 | Ua%............| 0007b0a0 53 54 41 54 49 43 00 00 38 c9 07 00 46 ff ff ff |STATIC..8...F...| 0007b0b0 89 b7 61 25 6a 01 00 00 13 00 00 00 00 00 00 00 |..a%j...........| 0007b0c0 74 72 75 65 63 6f 6c 6f 75 72 00 00 a4 ca 07 00 |truecolour......| 0007b0d0 46 ff ff ff 22 9b 61 25 fc 00 00 00 13 00 00 00 |F...".a%........| 0007b0e0 00 00 00 00 77 69 6d 70 63 6f 6c 6f 75 72 00 00 |....wimpcolour..| 0007b0f0 44 41 54 41 16 01 00 00 70 6f 70 75 70 5f 62 6c |DATA....popup_bl| 0007b100 6f 63 6b 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ock.This type is| 0007b110 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 0007b120 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f |kLib:PopUp.h=>Po| 0007b130 70 55 70 3e 2e 20 49 74 20 69 73 20 61 20 73 74 |pUp>. It is a st| 0007b140 72 75 63 74 75 72 65 20 75 73 65 64 20 74 6f 20 |ructure used to | 0007b150 63 6f 6e 74 61 69 6e 20 63 6f 6d 70 6c 65 74 65 |contain complete| 0007b160 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f | information abo| 0007b170 75 74 20 61 20 50 6f 70 55 70 20 72 65 71 75 65 |ut a PopUp reque| 0007b180 73 74 20 61 73 20 73 65 6e 74 20 74 6f 20 3c 50 |st as sent to <P| 0007b190 6f 70 55 70 5f 4f 70 65 6e 3e 2e 0a 0a 20 20 5c |opUp_Open>... \| 0007b1a0 7b 0a 20 20 20 20 3c 70 6f 70 75 70 5f 68 65 61 |{. <popup_hea| 0007b1b0 64 65 72 3e 09 68 65 61 64 65 72 3b 0a 20 20 20 |der>.header;. | 0007b1c0 20 3c 70 6f 70 75 70 5f 64 61 74 61 3e 09 64 61 | <popup_data>.da| 0007b1d0 74 61 3b 0a 20 20 7d 0a 0a 53 65 65 20 74 68 65 |ta;. }..See the| 0007b1e0 20 50 6f 70 55 70 20 64 6f 63 75 6d 65 6e 74 61 | PopUp documenta| 0007b1f0 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 65 |tion for more de| 0007b200 74 61 69 6c 73 2e 00 00 44 41 54 41 f8 00 00 00 |tails...DATA....| 0007b210 50 6f 70 55 70 5f 43 6c 6f 73 65 0a 53 79 6e 74 |PopUp_Close.Synt| 0007b220 61 78 3a 09 76 6f 69 64 20 50 6f 70 55 70 5f 43 |ax:.void PopUp_C| 0007b230 6c 6f 73 65 20 28 3c 70 6f 70 75 70 5f 68 61 6e |lose (<popup_han| 0007b240 64 6c 65 3e 20 68 61 6e 64 6c 65 29 3b 0a 48 65 |dle> handle);.He| 0007b250 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 |ader:.<DeskLib:P| 0007b260 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 0a 0a |opUp.h=>PopUp>..| 0007b270 54 68 69 73 20 73 69 6d 70 6c 79 20 63 61 6c 6c |This simply call| 0007b280 73 20 74 68 65 20 53 57 49 20 50 6f 70 55 70 5f |s the SWI PopUp_| 0007b290 43 6c 6f 73 65 2e 20 49 74 20 63 6c 6f 73 65 73 |Close. It closes| 0007b2a0 20 61 6e 79 20 50 6f 70 55 70 20 67 69 76 65 6e | any PopUp given| 0007b2b0 20 74 68 61 74 20 50 6f 70 55 70 27 73 20 68 61 | that PopUp's ha| 0007b2c0 6e 64 6c 65 2e 20 54 68 69 73 20 66 75 6e 63 74 |ndle. This funct| 0007b2d0 69 6f 6e 73 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 |ions should only| 0007b2e0 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 66 6f | be necessary fo| 0007b2f0 72 20 53 54 41 54 49 43 20 50 6f 70 55 70 73 2e |r STATIC PopUps.| 0007b300 44 41 54 41 6b 01 00 00 70 6f 70 75 70 5f 64 61 |DATAk...popup_da| 0007b310 74 61 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |ta.This type is | 0007b320 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 0007b330 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 |Lib:PopUp.h=>Pop| 0007b340 55 70 3e 2e 20 49 74 20 69 73 20 61 20 75 6e 69 |Up>. It is a uni| 0007b350 6f 6e 20 75 73 65 64 20 74 6f 20 73 65 6e 64 20 |on used to send | 0007b360 64 61 74 61 20 74 6f 20 74 68 65 20 50 6f 70 55 |data to the PopU| 0007b370 70 20 6d 61 6e 61 67 65 72 2e 0a 0a 20 20 5c 7b |p manager... \{| 0007b380 0a 20 20 20 20 3c 70 6f 70 75 70 5f 6d 61 67 6e |. <popup_magn| 0007b390 69 66 79 3e 09 6d 61 67 6e 69 66 79 3b 0a 20 20 |ify>.magnify;. | 0007b3a0 20 20 3c 70 6f 70 75 70 5f 70 72 6f 67 69 6e 66 | <popup_proginf| 0007b3b0 6f 3e 09 70 72 6f 67 69 6e 66 6f 3b 0a 20 20 20 |o>.proginfo;. | 0007b3c0 20 3c 70 6f 70 75 70 5f 72 65 70 6f 72 74 3e 09 | <popup_report>.| 0007b3d0 72 65 70 6f 72 74 3b 0a 20 20 20 20 3c 70 6f 70 |report;. <pop| 0007b3e0 75 70 5f 73 61 76 65 61 73 3e 09 73 61 76 65 61 |up_saveas>.savea| 0007b3f0 73 3b 0a 20 20 20 20 3c 70 6f 70 75 70 5f 77 69 |s;. <popup_wi| 0007b400 6d 70 63 6f 6c 6f 75 72 3e 09 77 69 6d 70 63 6f |mpcolour>.wimpco| 0007b410 6c 6f 75 72 3b 0a 20 20 20 20 3c 70 6f 70 75 70 |lour;. <popup| 0007b420 5f 74 72 75 65 63 6f 6c 6f 75 72 3e 09 74 72 75 |_truecolour>.tru| 0007b430 65 63 6f 6c 6f 75 72 3b 0a 20 20 7d 0a 0a 53 65 |ecolour;. }..Se| 0007b440 65 20 74 68 65 20 50 6f 70 55 70 20 64 6f 63 75 |e the PopUp docu| 0007b450 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f |mentation for mo| 0007b460 72 65 20 64 65 74 61 69 6c 73 2e 00 44 41 54 41 |re details..DATA| 0007b470 ac 00 00 00 70 6f 70 75 70 5f 68 61 6e 64 6c 65 |....popup_handle| 0007b480 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0007b490 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 0007b4a0 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 |b:PopUp.h=>PopUp| 0007b4b0 3e 2e 20 49 74 20 69 73 20 61 20 74 79 70 65 20 |>. It is a type | 0007b4c0 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 |capable of holdi| 0007b4d0 6e 67 20 61 20 75 6e 69 71 75 65 20 69 64 65 6e |ng a unique iden| 0007b4e0 74 69 66 69 65 72 20 66 6f 72 20 65 61 63 68 20 |tifier for each | 0007b4f0 50 6f 70 55 70 20 6f 70 65 6e 65 64 2e 20 49 74 |PopUp opened. It| 0007b500 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 | is defined as a| 0007b510 6e 20 2f 69 6e 74 2f 2e 44 41 54 41 3a 01 00 00 |n /int/.DATA:...| 0007b520 70 6f 70 75 70 5f 68 65 61 64 65 72 0a 54 68 69 |popup_header.Thi| 0007b530 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 0007b540 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f |d in <DeskLib:Po| 0007b550 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 |pUp.h=>PopUp>. I| 0007b560 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 0007b570 20 75 73 65 64 20 74 6f 20 70 61 73 73 20 73 74 | used to pass st| 0007b580 61 6e 64 61 72 64 20 76 69 74 61 6c 20 69 6e 66 |andard vital inf| 0007b590 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 50 6f 70 55 |ormation to PopU| 0007b5a0 70 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 |p... \{. cha| 0007b5b0 72 20 6e 61 6d 65 5b 31 32 5d 3b 20 20 2f 2a 20 |r name[12]; /* | 0007b5c0 50 6f 70 55 70 20 6e 61 6d 65 20 2a 2f 0a 20 20 |PopUp name */. | 0007b5d0 20 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 20 6f | <wimp_point> o| 0007b5e0 70 65 6e 70 6f 73 3b 0a 20 20 20 20 63 68 61 72 |penpos;. char| 0007b5f0 20 66 6c 61 67 73 3b 0a 20 20 20 20 63 68 61 72 | flags;. char| 0007b600 20 72 65 73 65 72 76 65 64 31 2c 72 65 73 65 72 | reserved1,reser| 0007b610 76 65 64 32 2c 72 65 73 65 72 76 65 64 33 3b 0a |ved2,reserved3;.| 0007b620 20 20 7d 0a 0a 53 65 65 20 74 68 65 20 50 6f 70 | }..See the Pop| 0007b630 55 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e |Up documentation| 0007b640 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c | for more detail| 0007b650 73 2e 00 00 44 41 54 41 e1 00 00 00 70 6f 70 75 |s...DATA....popu| 0007b660 70 5f 49 53 4c 45 41 46 0a 54 68 69 73 20 6d 61 |p_ISLEAF.This ma| 0007b670 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0007b680 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 55 70 |n <DeskLib:PopUp| 0007b690 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 74 20 69 |.h=>PopUp>. It i| 0007b6a0 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 |s the value of t| 0007b6b0 68 65 20 66 6c 61 67 20 62 69 74 20 69 6e 64 69 |he flag bit indi| 0007b6c0 63 61 74 69 6e 67 20 74 68 61 74 20 61 20 50 6f |cating that a Po| 0007b6d0 70 55 70 20 73 68 6f 75 6c 64 20 62 65 20 6f 70 |pUp should be op| 0007b6e0 65 6e 65 64 20 61 73 20 61 20 6d 65 6e 75 20 6c |ened as a menu l| 0007b6f0 65 61 66 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |eaf dialogue box| 0007b700 2e 20 49 74 20 69 73 20 70 72 65 66 65 72 61 62 |. It is preferab| 0007b710 6c 65 20 74 6f 20 75 73 65 20 74 68 65 20 6d 61 |le to use the ma| 0007b720 63 72 6f 20 3c 70 6f 70 75 70 5f 4d 45 4e 55 4c |cro <popup_MENUL| 0007b730 45 41 46 3e 2e 00 00 00 44 41 54 41 de 00 00 00 |EAF>....DATA....| 0007b740 70 6f 70 75 70 5f 49 53 53 54 41 54 49 43 0a 54 |popup_ISSTATIC.T| 0007b750 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 0007b760 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 0007b770 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e |:PopUp.h=>PopUp>| 0007b780 2e 20 49 74 20 69 73 20 74 68 65 20 76 61 6c 75 |. It is the valu| 0007b790 65 20 6f 66 20 74 68 65 20 66 6c 61 67 20 62 69 |e of the flag bi| 0007b7a0 74 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 61 |t indicating tha| 0007b7b0 74 20 61 20 50 6f 70 55 70 20 73 68 6f 75 6c 64 |t a PopUp should| 0007b7c0 20 62 65 20 6f 70 65 6e 65 64 20 61 73 20 61 20 | be opened as a | 0007b7d0 73 74 61 74 69 63 20 64 69 61 6c 6f 67 75 65 20 |static dialogue | 0007b7e0 62 6f 78 2e 20 49 74 20 69 73 20 70 72 65 66 65 |box. It is prefe| 0007b7f0 72 61 62 6c 65 20 74 6f 20 75 73 65 20 74 68 65 |rable to use the| 0007b800 20 6d 61 63 72 6f 20 3c 70 6f 70 75 70 5f 53 54 | macro <popup_ST| 0007b810 41 54 49 43 3e 2e 00 00 44 41 54 41 0f 01 00 00 |ATIC>...DATA....| 0007b820 70 6f 70 75 70 5f 6d 61 67 6e 69 66 79 0a 54 68 |popup_magnify.Th| 0007b830 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 0007b840 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 |ed in <DeskLib:P| 0007b850 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 |opUp.h=>PopUp>. | 0007b860 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 |It is a structur| 0007b870 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 69 |e used to hold i| 0007b880 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 74 |nformation for t| 0007b890 68 65 20 22 4d 61 67 6e 69 66 79 22 20 70 6f 70 |he "Magnify" pop| 0007b8a0 75 70 2c 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a |up, as follows:.| 0007b8b0 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 20 6d 75 |. \{. int mu| 0007b8c0 6c 2c 64 69 76 3b 0a 20 20 20 20 69 6e 74 20 6d |l,div;. int m| 0007b8d0 69 6e 6d 75 6c 2c 6d 61 78 6d 75 6c 3b 0a 20 20 |inmul,maxmul;. | 0007b8e0 20 20 69 6e 74 20 6d 69 6e 64 69 76 2c 6d 61 78 | int mindiv,max| 0007b8f0 64 69 76 3b 0a 20 20 7d 0a 0a 53 65 65 20 74 68 |div;. }..See th| 0007b900 65 20 50 6f 70 55 70 20 64 6f 63 75 6d 65 6e 74 |e PopUp document| 0007b910 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 |ation for more d| 0007b920 65 74 61 69 6c 73 2e 00 44 41 54 41 a8 00 00 00 |etails..DATA....| 0007b930 70 6f 70 75 70 5f 4d 45 4e 55 4c 45 41 46 0a 54 |popup_MENULEAF.T| 0007b940 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 0007b950 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 0007b960 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e |:PopUp.h=>PopUp>| 0007b970 2e 20 49 74 20 69 73 20 74 68 65 20 76 61 6c 75 |. It is the valu| 0007b980 65 20 6f 66 20 74 68 65 20 66 6c 61 67 20 62 79 |e of the flag by| 0007b990 74 65 20 6e 65 65 64 65 64 20 74 6f 20 6f 70 65 |te needed to ope| 0007b9a0 6e 20 61 20 50 6f 70 55 70 20 61 73 20 61 20 6d |n a PopUp as a m| 0007b9b0 65 6e 75 20 6c 65 61 66 2e 20 49 74 20 69 73 20 |enu leaf. It is | 0007b9c0 64 65 66 69 6e 65 64 20 61 73 20 30 78 30 31 2e |defined as 0x01.| 0007b9d0 44 41 54 41 47 01 00 00 50 6f 70 55 70 5f 4f 70 |DATAG...PopUp_Op| 0007b9e0 65 6e 0a 53 79 6e 74 61 78 3a 09 3c 70 6f 70 75 |en.Syntax:.<popu| 0007b9f0 70 5f 68 61 6e 64 6c 65 3e 20 50 6f 70 55 70 5f |p_handle> PopUp_| 0007ba00 4f 70 65 6e 20 28 3c 70 6f 70 75 70 5f 62 6c 6f |Open (<popup_blo| 0007ba10 63 6b 3e 20 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 |ck> *blk);.Heade| 0007ba20 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 55 |r:.<DeskLib:PopU| 0007ba30 70 2e 68 3d 3e 50 6f 70 55 70 3e 0a 0a 52 65 74 |p.h=>PopUp>..Ret| 0007ba40 75 72 6e 73 3a 09 48 61 6e 64 6c 65 20 6f 66 20 |urns:.Handle of | 0007ba50 63 72 65 61 74 65 64 20 50 6f 70 55 70 2e 0a 0a |created PopUp...| 0007ba60 54 68 69 73 20 73 69 6d 70 6c 79 20 63 61 6c 6c |This simply call| 0007ba70 73 20 74 68 65 20 53 57 49 20 50 6f 70 55 70 5f |s the SWI PopUp_| 0007ba80 4f 70 65 6e 2e 20 59 6f 75 20 73 68 6f 75 64 20 |Open. You shoud | 0007ba90 75 73 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 50 |use one of the P| 0007baa0 6f 70 55 70 53 68 6f 77 20 66 75 6e 63 74 69 6f |opUpShow functio| 0007bab0 6e 73 20 69 6e 73 74 65 61 64 2e 0a 0a 53 65 65 |ns instead...See| 0007bac0 20 3c 50 6f 70 55 70 5f 53 68 6f 77 4d 65 6e 75 | <PopUp_ShowMenu| 0007bad0 4c 65 61 66 3e 2c 20 3c 50 6f 70 55 70 5f 53 68 |Leaf>, <PopUp_Sh| 0007bae0 6f 77 50 74 72 3e 2c 20 3c 50 6f 70 55 70 5f 53 |owPtr>, <PopUp_S| 0007baf0 68 6f 77 53 74 61 6e 64 61 6c 6f 6e 65 3e 2c 20 |howStandalone>, | 0007bb00 61 6e 64 20 3c 50 6f 70 55 70 5f 53 68 6f 77 53 |and <PopUp_ShowS| 0007bb10 74 61 74 69 63 3e 2e 00 44 41 54 41 29 01 00 00 |tatic>..DATA)...| 0007bb20 70 6f 70 75 70 5f 70 72 6f 67 69 6e 66 6f 0a 54 |popup_proginfo.T| 0007bb30 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 0007bb40 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 0007bb50 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e |PopUp.h=>PopUp>.| 0007bb60 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 | It is a structu| 0007bb70 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 |re used to hold | 0007bb80 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 |information for | 0007bb90 74 68 65 20 22 50 72 6f 67 49 6e 66 6f 22 20 70 |the "ProgInfo" p| 0007bba0 6f 70 75 70 2c 20 61 73 20 66 6f 6c 6c 6f 77 73 |opup, as follows| 0007bbb0 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 |:.. \{. char| 0007bbc0 20 61 70 70 6e 61 6d 65 5b 33 32 5d 3b 0a 20 20 | appname[32];. | 0007bbd0 20 20 63 68 61 72 20 70 75 72 70 6f 73 65 5b 33 | char purpose[3| 0007bbe0 32 5d 3b 0a 20 20 20 20 63 68 61 72 20 61 75 74 |2];. char aut| 0007bbf0 68 6f 72 5b 33 32 5d 3b 0a 20 20 20 20 63 68 61 |hor[32];. cha| 0007bc00 72 20 76 65 72 73 69 6f 6e 5b 33 32 5d 3b 0a 20 |r version[32];. | 0007bc10 20 7d 0a 0a 53 65 65 20 74 68 65 20 50 6f 70 55 | }..See the PopU| 0007bc20 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 |p documentation | 0007bc30 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 |for more details| 0007bc40 2e 00 00 00 44 41 54 41 c8 01 00 00 70 6f 70 75 |....DATA....popu| 0007bc50 70 5f 72 65 70 6f 72 74 0a 54 68 69 73 20 74 79 |p_report.This ty| 0007bc60 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 0007bc70 20 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e | <DeskLib:PopUp.| 0007bc80 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 74 20 69 73 |h=>PopUp>. It is| 0007bc90 20 61 20 73 74 72 75 63 74 75 72 65 20 75 73 65 | a structure use| 0007bca0 64 20 74 6f 20 68 6f 6c 64 20 69 6e 66 6f 72 6d |d to hold inform| 0007bcb0 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 22 52 |ation for the "R| 0007bcc0 65 70 6f 72 74 22 20 70 6f 70 75 70 2c 20 61 73 |eport" popup, as| 0007bcd0 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 20 5c 7b 0a | follows:.. \{.| 0007bce0 20 20 20 20 73 74 72 75 63 74 0a 20 20 20 20 5c | struct. \| 0007bcf0 7b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |{. unsigned| 0007bd00 20 69 6e 74 20 63 61 6e 63 65 6c 09 3a 20 31 3b | int cancel.: 1;| 0007bd10 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 0007bd20 69 6e 74 20 6f 6b 09 09 3a 20 31 3b 0a 20 20 20 |int ok..: 1;. | 0007bd30 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 0007bd40 72 65 73 65 72 76 65 64 09 3a 20 36 3b 0a 20 20 |reserved.: 6;. | 0007bd50 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 0007bd60 20 75 73 65 72 68 61 6e 64 6c 65 09 3a 20 32 34 | userhandle.: 24| 0007bd70 3b 0a 20 20 20 20 7d 20 66 6c 61 67 73 3b 0a 20 |;. } flags;. | 0007bd80 20 20 20 63 68 61 72 20 6f 6b 74 65 78 74 5b 31 | char oktext[1| 0007bd90 32 5d 3b 0a 20 20 20 20 63 68 61 72 20 63 61 6e |2];. char can| 0007bda0 63 65 6c 74 65 78 74 5b 31 32 5d 3b 0a 20 20 20 |celtext[12];. | 0007bdb0 20 63 68 61 72 20 61 70 70 6e 61 6d 65 5b 31 32 | char appname[12| 0007bdc0 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 65 73 73 |];. char mess| 0007bdd0 61 67 65 5b 31 38 38 5d 3b 0a 20 20 7d 0a 0a 53 |age[188];. }..S| 0007bde0 65 65 20 74 68 65 20 50 6f 70 55 70 20 64 6f 63 |ee the PopUp doc| 0007bdf0 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d |umentation for m| 0007be00 6f 72 65 20 64 65 74 61 69 6c 73 2e 44 41 54 41 |ore details.DATA| 0007be10 ed 01 00 00 70 6f 70 75 70 5f 72 65 74 75 72 6e |....popup_return| 0007be20 64 61 74 61 0a 54 68 69 73 20 74 79 70 65 20 69 |data.This type i| 0007be30 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 0007be40 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 |skLib:PopUp.h=>P| 0007be50 6f 70 55 70 3e 2e 20 49 74 20 69 73 20 61 20 73 |opUp>. It is a s| 0007be60 74 72 75 63 74 75 72 65 20 75 73 65 64 20 77 68 |tructure used wh| 0007be70 65 6e 20 72 65 63 65 69 76 69 6e 67 20 64 61 74 |en receiving dat| 0007be80 61 20 66 72 6f 6d 20 74 68 65 20 50 6f 70 55 70 |a from the PopUp| 0007be90 20 6d 61 6e 61 67 65 72 2e 0a 0a 20 20 5c 7b 0a | manager... \{.| 0007bea0 20 20 20 20 3c 70 6f 70 75 70 5f 6d 61 67 6e 69 | <popup_magni| 0007beb0 66 79 3e 09 6d 61 67 6e 69 66 79 3b 0a 20 20 20 |fy>.magnify;. | 0007bec0 20 3c 70 6f 70 75 70 5f 72 65 70 6f 72 74 3e 09 | <popup_report>.| 0007bed0 72 65 70 6f 72 74 3b 0a 20 20 20 20 3c 70 6f 70 |report;. <pop| 0007bee0 75 70 5f 73 61 76 65 61 73 3e 09 73 61 76 65 61 |up_saveas>.savea| 0007bef0 73 72 65 74 75 72 6e 3b 0a 20 20 20 20 3c 70 6f |sreturn;. <po| 0007bf00 70 75 70 5f 77 69 6d 70 63 6f 6c 6f 75 72 3e 09 |pup_wimpcolour>.| 0007bf10 77 69 6d 70 63 6f 6c 6f 75 72 3b 0a 20 20 20 20 |wimpcolour;. | 0007bf20 3c 70 6f 70 75 70 5f 74 72 75 65 63 6f 6c 6f 75 |<popup_truecolou| 0007bf30 72 3e 09 74 72 75 65 63 6f 6c 6f 75 72 3b 0a 20 |r>.truecolour;. | 0007bf40 20 7d 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 | }..Note that th| 0007bf50 69 73 20 73 74 72 75 63 74 75 72 65 20 69 73 20 |is structure is | 0007bf60 61 63 74 75 61 6c 6c 79 20 77 72 6f 6e 67 2e 20 |actually wrong. | 0007bf70 54 68 65 20 74 68 69 72 64 20 6c 69 6e 65 20 73 |The third line s| 0007bf80 68 6f 75 6c 64 20 62 65 20 61 20 3c 70 6f 70 75 |hould be a <popu| 0007bf90 70 5f 73 61 76 65 61 73 72 65 74 75 72 6e 3e 2e |p_saveasreturn>.| 0007bfa0 20 41 6e 64 20 69 74 20 73 68 6f 75 6c 64 20 62 | And it should b| 0007bfb0 65 20 61 20 75 6e 69 6f 6e 20 6e 6f 74 20 61 20 |e a union not a | 0007bfc0 73 74 72 75 63 74 75 72 65 2e 0a 0a 53 65 65 20 |structure...See | 0007bfd0 74 68 65 20 50 6f 70 55 70 20 64 6f 63 75 6d 65 |the PopUp docume| 0007bfe0 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 |ntation for more| 0007bff0 20 64 65 74 61 69 6c 73 2e 00 00 00 44 41 54 41 | details....DATA| 0007c000 2b 01 00 00 70 6f 70 75 70 5f 73 61 76 65 61 73 |+...popup_saveas| 0007c010 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0007c020 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 0007c030 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 |b:PopUp.h=>PopUp| 0007c040 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 0007c050 74 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c |ture used to hol| 0007c060 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f |d information fo| 0007c070 72 20 74 68 65 20 22 53 61 76 65 41 73 22 20 70 |r the "SaveAs" p| 0007c080 6f 70 75 70 2c 20 61 73 20 66 6f 6c 6c 6f 77 73 |opup, as follows| 0007c090 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 |:.. \{. char| 0007c0a0 20 69 63 6f 6e 73 70 72 69 74 65 5b 31 32 5d 3b | iconsprite[12];| 0007c0b0 0a 20 20 20 20 63 68 61 72 20 66 69 6c 65 6e 61 |. char filena| 0007c0c0 6d 65 5b 32 31 32 5d 3b 0a 20 20 7d 0a 0a 54 68 |me[212];. }..Th| 0007c0d0 69 73 20 50 6f 70 55 70 20 72 65 74 75 72 6e 73 |is PopUp returns| 0007c0e0 20 61 20 3c 70 6f 70 75 70 5f 73 61 76 65 61 73 | a <popup_saveas| 0007c0f0 72 65 74 75 72 6e 3e 2e 0a 0a 53 65 65 20 74 68 |return>...See th| 0007c100 65 20 50 6f 70 55 70 20 64 6f 63 75 6d 65 6e 74 |e PopUp document| 0007c110 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 |ation for more d| 0007c120 65 74 61 69 6c 73 2e 00 44 41 54 41 8c 01 00 00 |etails..DATA....| 0007c130 70 6f 70 75 70 5f 73 61 76 65 61 73 72 65 74 75 |popup_saveasretu| 0007c140 72 6e 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |rn.This type is | 0007c150 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 0007c160 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 |Lib:PopUp.h=>Pop| 0007c170 55 70 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 |Up>. It is a str| 0007c180 75 63 74 75 72 65 20 75 73 65 64 20 74 6f 20 68 |ucture used to h| 0007c190 6f 6c 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |old information | 0007c1a0 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 |returned by the | 0007c1b0 22 53 61 76 65 41 73 22 20 70 6f 70 75 70 2c 20 |"SaveAs" popup, | 0007c1c0 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 20 5c |as follows:.. \| 0007c1d0 7b 0a 20 20 20 20 73 74 72 75 63 74 0a 20 20 20 |{. struct. | 0007c1e0 20 5c 7b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e | \{. unsign| 0007c1f0 65 64 20 69 6e 74 20 77 61 73 64 72 61 67 67 65 |ed int wasdragge| 0007c200 64 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 |d.: 1;. uns| 0007c210 69 67 6e 65 64 20 69 6e 74 20 73 68 69 66 74 64 |igned int shiftd| 0007c220 6f 77 6e 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |own.: 1;. u| 0007c230 6e 73 69 67 6e 65 64 20 69 6e 74 20 72 65 73 65 |nsigned int rese| 0007c240 72 76 65 64 09 3a 20 33 30 3b 0a 20 20 20 20 7d |rved.: 30;. }| 0007c250 20 66 6c 61 67 73 3b 0a 20 20 20 20 69 6e 74 20 | flags;. int | 0007c260 72 65 73 65 72 76 65 64 3b 0a 20 20 20 20 63 68 |reserved;. ch| 0007c270 61 72 20 66 69 6c 65 6e 61 6d 65 5b 32 31 32 5d |ar filename[212]| 0007c280 3b 0a 20 20 7d 0a 0a 53 65 65 20 74 68 65 20 50 |;. }..See the P| 0007c290 6f 70 55 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 |opUp documentati| 0007c2a0 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 |on for more deta| 0007c2b0 69 6c 73 2e 44 41 54 41 6d 01 00 00 50 6f 70 55 |ils.DATAm...PopU| 0007c2c0 70 5f 53 68 6f 77 4d 65 6e 75 4c 65 61 66 0a 53 |p_ShowMenuLeaf.S| 0007c2d0 79 6e 74 61 78 3a 09 3c 70 6f 70 75 70 5f 68 61 |yntax:.<popup_ha| 0007c2e0 6e 64 6c 65 3e 20 50 6f 70 55 70 5f 53 68 6f 77 |ndle> PopUp_Show| 0007c2f0 4d 65 6e 75 4c 65 61 66 20 28 63 68 61 72 20 2a |MenuLeaf (char *| 0007c300 6e 61 6d 65 2c 20 3c 70 6f 70 75 70 5f 64 61 74 |name, <popup_dat| 0007c310 61 3e 20 2a 64 65 66 2c 20 3c 6d 65 73 73 61 67 |a> *def, <messag| 0007c320 65 5f 6d 65 6e 75 77 61 72 6e 3e 20 2a 6d 73 67 |e_menuwarn> *msg| 0007c330 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 0007c340 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 |Lib:PopUp.h=>Pop| 0007c350 55 70 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 48 61 |Up>..Returns:.Ha| 0007c360 6e 64 6c 65 20 6f 66 20 50 6f 70 55 70 2e 0a 0a |ndle of PopUp...| 0007c370 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 73 |This functions s| 0007c380 68 6f 77 73 20 61 20 4d 45 4e 55 2d 4c 45 41 46 |hows a MENU-LEAF| 0007c390 20 50 6f 70 55 70 2e 20 2f 6e 61 6d 65 2f 20 69 | PopUp. /name/ i| 0007c3a0 73 20 74 68 65 20 50 6f 70 55 70 20 6e 61 6d 65 |s the PopUp name| 0007c3b0 2c 20 2f 64 65 66 2f 20 69 73 20 74 68 65 20 64 |, /def/ is the d| 0007c3c0 61 74 61 20 66 6f 72 20 74 68 65 20 50 6f 70 55 |ata for the PopU| 0007c3d0 70 20 61 6e 64 20 2f 6d 73 67 2f 20 63 6f 6e 74 |p and /msg/ cont| 0007c3e0 61 69 6e 73 20 74 68 65 20 6d 65 73 73 61 67 65 |ains the message| 0007c3f0 5f 4d 45 4e 55 57 41 52 4e 20 77 68 69 63 68 20 |_MENUWARN which | 0007c400 63 61 75 73 65 64 20 79 6f 75 20 74 6f 20 63 61 |caused you to ca| 0007c410 6c 6c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |ll this function| 0007c420 2e 00 00 00 44 41 54 41 b6 01 00 00 50 6f 70 55 |....DATA....PopU| 0007c430 70 5f 53 68 6f 77 50 74 72 0a 53 79 6e 74 61 78 |p_ShowPtr.Syntax| 0007c440 3a 09 3c 70 6f 70 75 70 5f 68 61 6e 64 6c 65 3e |:.<popup_handle>| 0007c450 20 50 6f 70 55 70 5f 53 68 6f 77 50 74 72 20 28 | PopUp_ShowPtr (| 0007c460 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 42 4f 4f |char *name, <BOO| 0007c470 4c 3e 20 73 74 61 74 69 63 2c 20 3c 70 6f 70 75 |L> static, <popu| 0007c480 70 5f 64 61 74 61 3e 20 2a 64 65 66 29 3b 0a 48 |p_data> *def);.H| 0007c490 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0007c4a0 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 0a |PopUp.h=>PopUp>.| 0007c4b0 0a 52 65 74 75 72 6e 73 3a 09 48 61 6e 64 6c 65 |.Returns:.Handle| 0007c4c0 20 6f 66 20 50 6f 70 55 70 2e 0a 0a 54 68 69 73 | of PopUp...This| 0007c4d0 20 66 75 6e 63 74 69 6f 6e 73 20 73 68 6f 77 73 | functions shows| 0007c4e0 20 65 69 74 68 65 72 20 61 20 73 74 61 6e 64 61 | either a standa| 0007c4f0 6c 6f 6e 65 20 74 72 61 6e 73 69 65 6e 74 20 28 |lone transient (| 0007c500 4d 65 6e 75 29 20 50 6f 70 55 70 20 6f 72 20 61 |Menu) PopUp or a| 0007c510 20 73 74 61 74 69 63 20 50 6f 70 55 70 2e 20 2f | static PopUp. /| 0007c520 6e 61 6d 65 2f 20 69 73 20 74 68 65 20 50 6f 70 |name/ is the Pop| 0007c530 55 70 20 6e 61 6d 65 2c 20 2f 64 65 66 2f 20 69 |Up name, /def/ i| 0007c540 73 20 74 68 65 20 64 61 74 61 20 66 6f 72 20 74 |s the data for t| 0007c550 68 65 20 50 6f 70 55 70 20 61 6e 64 20 2f 73 74 |he PopUp and /st| 0007c560 61 74 69 63 2f 20 63 6f 6e 74 61 69 6e 73 20 3c |atic/ contains <| 0007c570 54 52 55 45 3e 20 69 66 20 74 68 65 20 50 6f 70 |TRUE> if the Pop| 0007c580 55 70 20 73 68 6f 75 6c 64 20 62 65 20 73 74 61 |Up should be sta| 0007c590 74 69 63 2e 0a 0a 59 6f 75 20 73 68 6f 75 6c 64 |tic...You should| 0007c5a0 20 75 73 65 20 3c 50 6f 70 55 70 5f 53 68 6f 77 | use <PopUp_Show| 0007c5b0 73 74 61 6e 64 61 6c 6f 6e 65 3e 20 6f 72 20 3c |standalone> or <| 0007c5c0 50 6f 70 55 70 5f 53 68 6f 77 53 74 61 74 69 63 |PopUp_ShowStatic| 0007c5d0 3e 20 69 6e 73 74 65 61 64 2e 00 00 44 41 54 41 |> instead...DATA| 0007c5e0 05 01 00 00 50 6f 70 55 70 5f 53 68 6f 77 53 74 |....PopUp_ShowSt| 0007c5f0 61 6e 64 61 6c 6f 6e 65 0a 53 79 6e 74 61 78 3a |andalone.Syntax:| 0007c600 09 3c 70 6f 70 75 70 5f 68 61 6e 64 6c 65 3e 20 |.<popup_handle> | 0007c610 50 6f 70 55 70 5f 53 68 6f 77 53 74 61 6e 64 61 |PopUp_ShowStanda| 0007c620 6c 6f 6e 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 |lone (char *name| 0007c630 2c 20 3c 70 6f 70 75 70 5f 64 61 74 61 3e 20 2a |, <popup_data> *| 0007c640 64 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |def);.Header:.<D| 0007c650 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e |eskLib:PopUp.h=>| 0007c660 50 6f 70 55 70 3e 0a 0a 52 65 74 75 72 6e 73 3a |PopUp>..Returns:| 0007c670 09 48 61 6e 64 6c 65 20 6f 66 20 50 6f 70 55 70 |.Handle of PopUp| 0007c680 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 66 75 6e |...This is a fun| 0007c690 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f |ction-like macro| 0007c6a0 20 77 68 69 63 68 20 73 69 6d 70 6c 79 20 63 61 | which simply ca| 0007c6b0 6c 6c 73 20 3c 50 6f 70 55 70 5f 53 68 6f 77 50 |lls <PopUp_ShowP| 0007c6c0 74 72 3e 20 77 69 74 68 20 2f 73 74 61 74 69 63 |tr> with /static| 0007c6d0 2f 20 73 65 74 20 74 6f 20 3c 46 41 4c 53 45 3e |/ set to <FALSE>| 0007c6e0 2e 00 00 00 44 41 54 41 fc 00 00 00 50 6f 70 55 |....DATA....PopU| 0007c6f0 70 5f 53 68 6f 77 53 74 61 74 69 63 0a 53 79 6e |p_ShowStatic.Syn| 0007c700 74 61 78 3a 09 3c 70 6f 70 75 70 5f 68 61 6e 64 |tax:.<popup_hand| 0007c710 6c 65 3e 20 50 6f 70 55 70 5f 53 68 6f 77 53 74 |le> PopUp_ShowSt| 0007c720 61 74 69 63 20 28 63 68 61 72 20 2a 6e 61 6d 65 |atic (char *name| 0007c730 2c 20 3c 70 6f 70 75 70 5f 64 61 74 61 3e 20 2a |, <popup_data> *| 0007c740 64 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |def);.Header:.<D| 0007c750 65 73 6b 4c 69 62 3a 50 6f 70 55 70 2e 68 3d 3e |eskLib:PopUp.h=>| 0007c760 50 6f 70 55 70 3e 0a 0a 52 65 74 75 72 6e 73 3a |PopUp>..Returns:| 0007c770 09 48 61 6e 64 6c 65 20 6f 66 20 50 6f 70 55 70 |.Handle of PopUp| 0007c780 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 66 75 6e |...This is a fun| 0007c790 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f |ction-like macro| 0007c7a0 20 77 68 69 63 68 20 73 69 6d 70 6c 79 20 63 61 | which simply ca| 0007c7b0 6c 6c 73 20 3c 50 6f 70 55 70 5f 53 68 6f 77 50 |lls <PopUp_ShowP| 0007c7c0 74 72 3e 20 77 69 74 68 20 2f 73 74 61 74 69 63 |tr> with /static| 0007c7d0 2f 20 73 65 74 20 74 6f 20 3c 54 52 55 45 3e 2e |/ set to <TRUE>.| 0007c7e0 44 41 54 41 a7 00 00 00 70 6f 70 75 70 5f 53 54 |DATA....popup_ST| 0007c7f0 41 4e 44 41 4c 4f 4e 45 0a 54 68 69 73 20 6d 61 |ANDALONE.This ma| 0007c800 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 |cro is defined i| 0007c810 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f 70 55 70 |n <DeskLib:PopUp| 0007c820 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 74 20 69 |.h=>PopUp>. It i| 0007c830 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 |s the value of t| 0007c840 68 65 20 66 6c 61 67 20 62 79 74 65 20 6e 65 65 |he flag byte nee| 0007c850 64 65 64 20 74 6f 20 6f 70 65 6e 20 61 20 73 74 |ded to open a st| 0007c860 61 6e 64 2d 61 6c 6f 6e 65 20 50 6f 70 55 70 2e |and-alone PopUp.| 0007c870 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | It is defined a| 0007c880 73 20 30 78 30 30 2e 00 44 41 54 41 b0 00 00 00 |s 0x00..DATA....| 0007c890 70 6f 70 75 70 5f 53 54 41 54 49 43 0a 54 68 69 |popup_STATIC.Thi| 0007c8a0 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 0007c8b0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 |ed in <DeskLib:P| 0007c8c0 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 |opUp.h=>PopUp>. | 0007c8d0 49 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 |It is the value | 0007c8e0 6f 66 20 74 68 65 20 66 6c 61 67 20 62 79 74 65 |of the flag byte| 0007c8f0 20 6e 65 65 64 65 64 20 74 6f 20 6f 70 65 6e 20 | needed to open | 0007c900 61 20 50 6f 70 55 70 20 61 73 20 61 20 73 74 61 |a PopUp as a sta| 0007c910 74 69 63 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |tic dialogue box| 0007c920 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 0007c930 61 73 20 30 78 30 32 2e 44 41 54 41 6a 01 00 00 |as 0x02.DATAj...| 0007c940 70 6f 70 75 70 5f 74 72 75 65 63 6f 6c 6f 75 72 |popup_truecolour| 0007c950 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0007c960 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 0007c970 62 3a 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 |b:PopUp.h=>PopUp| 0007c980 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 0007c990 74 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c |ture used to hol| 0007c9a0 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f |d information fo| 0007c9b0 72 20 74 68 65 20 22 54 72 75 65 43 6f 6c 6f 75 |r the "TrueColou| 0007c9c0 72 22 20 70 6f 70 75 70 2c 20 61 73 20 66 6f 6c |r" popup, as fol| 0007c9d0 6c 6f 77 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 |lows:.. \{. | 0007c9e0 69 6e 74 20 63 6f 6c 6f 75 72 6d 6f 64 65 6c 3b |int colourmodel;| 0007c9f0 0a 20 20 20 20 75 6e 69 6f 6e 0a 20 20 20 20 5c |. union. \| 0007ca00 7b 0a 20 20 20 20 20 20 3c 63 6f 6c 6f 75 72 5f |{. <colour_| 0007ca10 72 67 62 3e 09 72 67 62 3b 0a 20 20 20 20 20 20 |rgb>.rgb;. | 0007ca20 3c 63 6f 6c 6f 75 72 5f 68 73 76 3e 09 68 73 76 |<colour_hsv>.hsv| 0007ca30 3b 0a 20 20 20 20 20 20 3c 63 6f 6c 6f 75 72 5f |;. <colour_| 0007ca40 63 6d 79 6b 3e 09 63 6d 79 6b 3b 0a 20 20 20 20 |cmyk>.cmyk;. | 0007ca50 7d 20 63 6f 6c 6f 75 72 3b 0a 20 20 20 20 69 6e |} colour;. in| 0007ca60 74 20 74 72 61 6e 73 70 61 72 65 6e 63 79 3b 0a |t transparency;.| 0007ca70 20 20 7d 0a 0a 53 65 65 20 74 68 65 20 50 6f 70 | }..See the Pop| 0007ca80 55 70 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e |Up documentation| 0007ca90 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c | for more detail| 0007caa0 73 2e 00 00 44 41 54 41 fc 00 00 00 70 6f 70 75 |s...DATA....popu| 0007cab0 70 5f 77 69 6d 70 63 6f 6c 6f 75 72 0a 54 68 69 |p_wimpcolour.Thi| 0007cac0 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 0007cad0 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 6f |d in <DeskLib:Po| 0007cae0 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e 2e 20 49 |pUp.h=>PopUp>. I| 0007caf0 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 0007cb00 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 69 6e | used to hold in| 0007cb10 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 22 57 |formation for "W| 0007cb20 69 6d 70 43 6f 6c 6f 75 72 22 20 70 6f 70 75 70 |impColour" popup| 0007cb30 2c 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 |, as follows:.. | 0007cb40 20 5c 7b 0a 20 20 20 20 63 68 61 72 20 63 6f 6c | \{. char col| 0007cb50 6f 75 72 3b 20 20 20 2f 2a 20 57 69 6d 70 20 63 |our; /* Wimp c| 0007cb60 6f 6c 6f 75 72 20 30 2d 31 35 20 2a 2f 0a 20 20 |olour 0-15 */. | 0007cb70 7d 0a 0a 53 65 65 20 74 68 65 20 50 6f 70 55 70 |}..See the PopUp| 0007cb80 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 | documentation f| 0007cb90 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e |or more details.| 0007cba0 44 41 54 41 d9 00 00 00 70 6f 77 0a 53 79 6e 74 |DATA....pow.Synt| 0007cbb0 61 78 3a 09 64 6f 75 62 6c 65 20 70 6f 77 20 28 |ax:.double pow (| 0007cbc0 64 6f 75 62 6c 65 20 78 2c 20 64 6f 75 62 6c 65 |double x, double| 0007cbd0 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | y);.Header:.<ma| 0007cbe0 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 0007cbf0 75 72 6e 73 3a 09 54 68 65 20 76 61 6c 75 65 20 |urns:.The value | 0007cc00 6f 66 20 78 20 72 61 69 73 65 64 20 74 6f 20 74 |of x raised to t| 0007cc10 68 65 20 70 6f 77 65 72 20 79 2e 0a 0a 54 68 69 |he power y...Thi| 0007cc20 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 |s function calcu| 0007cc30 6c 61 74 65 73 20 78 20 74 6f 20 74 68 65 20 70 |lates x to the p| 0007cc40 6f 77 65 72 20 6f 66 20 79 2e 20 49 66 20 78 20 |ower of y. If x | 0007cc50 69 73 20 6e 65 67 61 74 69 76 65 2c 20 74 68 65 |is negative, the| 0007cc60 6e 20 79 20 6d 75 73 74 20 62 65 20 61 6e 20 69 |n y must be an i| 0007cc70 6e 74 65 67 65 72 2e 20 20 00 00 00 44 49 52 24 |nteger. ...DIR$| 0007cc80 2c 00 00 00 2c 00 00 00 a8 cc 07 00 46 fd ff ff |,...,.......F...| 0007cc90 51 07 e5 22 4c 01 00 00 13 00 00 00 00 00 00 00 |Q.."L...........| 0007cca0 21 52 6f 6f 74 00 00 00 44 41 54 41 4c 01 00 00 |!Root...DATAL...| 0007ccb0 50 72 65 70 72 6f 63 65 73 73 6f 72 20 44 69 72 |Preprocessor Dir| 0007ccc0 65 63 74 69 76 65 73 0a 54 68 65 73 65 20 64 69 |ectives.These di| 0007ccd0 72 65 63 74 69 76 65 73 20 61 72 65 20 77 69 74 |rectives are wit| 0007cce0 68 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 63 |hin the source c| 0007ccf0 6f 64 65 0a 69 74 73 65 6c 66 2c 20 74 68 65 79 |ode.itself, they| 0007cd00 20 61 72 65 20 61 6c 6c 20 73 74 61 72 74 20 77 | are all start w| 0007cd10 69 74 68 20 22 23 22 2e 20 54 68 65 0a 64 69 72 |ith "#". The.dir| 0007cd20 65 63 74 69 76 65 73 20 61 72 65 3a 0a 0a 23 49 |ectives are:..#I| 0007cd30 6e 64 65 6e 74 20 31 30 0a 23 54 61 62 6c 65 20 |ndent 10.#Table | 0007cd40 35 20 31 35 0a 3c 23 64 65 66 69 6e 65 3d 3e 64 |5 15.<#define=>d| 0007cd50 65 66 69 6e 65 3e 0a 3c 23 69 6e 63 6c 75 64 65 |efine>.<#include| 0007cd60 3d 3e 69 6e 63 6c 75 64 65 3e 0a 3c 23 69 66 3d |=>include>.<#if=| 0007cd70 3e 69 66 5f 3e 0a 3c 23 69 66 64 65 66 3d 3e 69 |>if_>.<#ifdef=>i| 0007cd80 66 64 65 66 3e 0a 3c 23 69 66 6e 64 65 66 3d 3e |fdef>.<#ifndef=>| 0007cd90 69 66 6e 64 65 66 3e 0a 3c 23 65 6c 73 65 3d 3e |ifndef>.<#else=>| 0007cda0 65 6c 73 65 5f 3e 0a 3c 23 65 6c 73 65 69 66 3d |else_>.<#elseif=| 0007cdb0 3e 65 6c 73 65 69 66 3e 0a 3c 23 65 6e 64 69 66 |>elseif>.<#endif| 0007cdc0 3d 3e 65 6e 64 69 66 3e 0a 3c 23 75 6e 64 65 66 |=>endif>.<#undef| 0007cdd0 3d 3e 75 6e 64 65 66 3e 0a 3c 23 70 72 61 67 6d |=>undef>.<#pragm| 0007cde0 61 3d 3e 70 72 61 67 6d 61 3e 0a 23 45 6e 64 54 |a=>pragma>.#EndT| 0007cdf0 61 62 6c 65 44 41 54 41 1d 01 00 00 23 70 72 61 |ableDATA....#pra| 0007ce00 67 6d 61 0a 54 68 69 73 20 69 73 20 61 6e 20 61 |gma.This is an a| 0007ce10 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 6f |ddition to the o| 0007ce20 72 69 67 6e 61 6c 20 43 20 73 74 61 6e 64 61 72 |rignal C standar| 0007ce30 64 2e 0a 49 74 20 64 6f 65 73 20 64 69 66 66 65 |d..It does diffe| 0007ce40 72 65 6e 74 20 74 68 69 6e 67 73 20 69 6e 20 64 |rent things in d| 0007ce50 69 66 66 65 72 65 6e 74 0a 63 6f 6d 70 69 6c 65 |ifferent.compile| 0007ce60 72 73 2e 20 54 68 65 20 67 65 6e 65 72 61 6c 20 |rs. The general | 0007ce70 66 6f 72 6d 20 69 73 3a 0a 0a 7b 66 43 6f 64 65 |form is:..{fCode| 0007ce80 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 23 70 |;align centre}#p| 0007ce90 72 61 67 6d 61 20 5c 3c 63 6f 6d 6d 61 6e 64 3e |ragma \<command>| 0007cea0 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 54 68 65 20 63 |{f;align}..The c| 0007ceb0 6f 6d 6d 61 6e 64 73 20 69 6e 20 45 61 73 79 20 |ommands in Easy | 0007cec0 43 20 61 72 65 3a 0a 0a 23 61 6c 69 67 6e 20 63 |C are:..#align c| 0007ced0 65 6e 74 72 65 0a 3c 23 70 72 61 67 6d 61 20 61 |entre.<#pragma a| 0007cee0 73 6d 3d 3e 70 72 61 67 6d 61 5f 61 73 6d 5f 3e |sm=>pragma_asm_>| 0007cef0 0a 3c 23 70 72 61 67 6d 61 20 65 6e 64 61 73 6d |.<#pragma endasm| 0007cf00 3d 3e 70 72 61 67 6d 61 5f 65 6e 64 61 73 6d 5f |=>pragma_endasm_| 0007cf10 3e 00 00 00 44 49 52 24 4c 00 00 00 4c 00 00 00 |>...DIR$L...L...| 0007cf20 60 cf 07 00 46 fd ff ff 06 89 e6 22 49 04 00 00 |`...F......"I...| 0007cf30 13 00 00 00 00 00 00 00 61 73 6d 5f 00 00 00 00 |........asm_....| 0007cf40 ac d3 07 00 46 fd ff ff 8e 91 e6 22 4c 00 00 00 |....F......"L...| 0007cf50 13 00 00 00 00 00 00 00 65 6e 64 61 73 6d 5f 00 |........endasm_.| 0007cf60 44 41 54 41 49 04 00 00 23 70 72 61 67 6d 61 20 |DATAI...#pragma | 0007cf70 61 73 6d 0a 55 6e 6c 69 6b 65 20 44 65 73 6b 74 |asm.Unlike Deskt| 0007cf80 6f 70 20 43 2c 20 45 61 73 79 20 43 20 63 6f 6e |op C, Easy C con| 0007cf90 74 61 69 6e 73 20 61 6e 20 69 6e 74 65 67 72 61 |tains an integra| 0007cfa0 74 65 64 20 41 52 4d 20 61 73 73 65 6d 62 6c 65 |ted ARM assemble| 0007cfb0 72 2e 20 7b 66 43 6f 64 65 7d 23 70 72 61 67 6d |r. {fCode}#pragm| 0007cfc0 61 20 61 73 6d 7b 66 7d 20 6d 61 72 6b 73 20 74 |a asm{f} marks t| 0007cfd0 68 65 20 73 74 61 72 74 20 6f 66 20 61 20 73 65 |he start of a se| 0007cfe0 63 74 69 6f 6e 20 6f 66 20 61 73 73 65 6d 62 6c |ction of assembl| 0007cff0 79 20 6c 61 6e 67 75 61 67 65 2e 20 49 74 20 6d |y language. It m| 0007d000 61 79 20 62 65 20 70 6c 61 63 65 64 20 61 74 20 |ay be placed at | 0007d010 61 6e 79 20 70 6f 73 69 74 69 6f 6e 20 77 68 65 |any position whe| 0007d020 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65 |re a function de| 0007d030 66 69 6e 69 74 69 6f 6e 20 6d 61 79 20 62 65 20 |finition may be | 0007d040 70 6c 61 63 65 64 2e 20 52 65 67 69 73 74 65 72 |placed. Register| 0007d050 73 20 63 61 6e 20 74 61 6b 65 20 6e 6f 72 6d 61 |s can take norma| 0007d060 6c 20 6e 61 6d 65 73 20 28 7b 2f 7d 52 30 2d 52 |l names ({/}R0-R| 0007d070 31 35 7b 2f 7d 29 20 6f 72 20 74 68 65 20 41 50 |15{/}) or the AP| 0007d080 43 53 20 73 74 61 6e 64 61 72 64 20 6e 61 6d 65 |CS standard name| 0007d090 73 20 28 7b 2f 7d 61 31 7b 2f 7d 20 65 74 63 2c |s ({/}a1{/} etc,| 0007d0a0 20 7b 2f 7d 66 31 7b 2f 7d 20 65 74 63 2c 20 7b | {/}f1{/} etc, {| 0007d0b0 2f 7d 73 70 7b 2f 7d 2c 20 7b 2f 7d 6c 6b 7b 2f |/}sp{/}, {/}lk{/| 0007d0c0 7d 20 61 6e 64 20 7b 2f 7d 70 63 7b 2f 7d 29 2e |} and {/}pc{/}).| 0007d0d0 0a 0a 45 78 70 72 65 73 73 69 6f 6e 73 20 61 72 |..Expressions ar| 0007d0e0 65 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 |e in the normal | 0007d0f0 43 20 66 6f 72 6d 61 74 20 61 6e 64 20 61 6c 6c |C format and all| 0007d100 20 70 72 65 2d 70 72 6f 63 65 73 73 69 6e 67 20 | pre-processing | 0007d110 61 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 61 |applies to the a| 0007d120 73 73 65 6d 62 6c 79 20 6c 61 6e 67 75 61 67 65 |ssembly language| 0007d130 20 73 65 63 74 69 6f 6e 20 61 73 20 77 65 6c 6c | section as well| 0007d140 2e 0a 0a 4c 61 62 65 6c 73 20 61 72 65 20 70 72 |...Labels are pr| 0007d150 65 66 69 78 65 64 20 62 79 20 61 20 66 75 6c 6c |efixed by a full| 0007d160 20 73 74 6f 70 20 61 6e 64 20 74 68 65 79 20 6d | stop and they m| 0007d170 61 79 20 62 65 20 72 65 66 65 72 72 65 64 20 74 |ay be referred t| 0007d180 6f 20 6f 75 74 73 69 64 65 20 6f 66 20 74 68 65 |o outside of the| 0007d190 20 41 73 73 65 6d 62 6c 79 20 6c 61 6e 67 75 61 | Assembly langua| 0007d1a0 67 65 20 73 65 63 74 69 6f 6e 20 61 73 20 61 20 |ge section as a | 0007d1b0 66 75 6e 63 74 69 6f 6e 2c 20 75 6e 6c 65 73 73 |function, unless| 0007d1c0 20 74 68 65 79 20 66 69 6e 69 73 68 20 69 6e 20 | they finish in | 0007d1d0 61 20 27 24 27 20 63 68 61 72 61 63 74 65 72 2e |a '$' character.| 0007d1e0 20 54 6f 20 6d 61 6b 65 20 74 68 65 6d 20 61 76 | To make them av| 0007d1f0 61 69 6c 61 62 6c 65 20 65 78 74 65 72 6e 61 6c |ailable external| 0007d200 6c 79 2c 20 75 73 65 20 3c 45 58 50 4f 52 54 3e |ly, use <EXPORT>| 0007d210 20 5c 3c 6c 61 62 65 6c 6e 61 6d 65 3e 2e 0a 0a | \<labelname>...| 0007d220 53 57 49 73 20 63 61 6e 20 62 65 20 63 61 6c 6c |SWIs can be call| 0007d230 65 64 20 62 79 20 6e 61 6d 65 20 6f 72 20 6e 75 |ed by name or nu| 0007d240 6d 62 65 72 2c 20 77 69 74 68 6f 75 74 20 75 73 |mber, without us| 0007d250 69 6e 67 20 71 75 6f 74 65 73 20 65 67 20 7b 66 |ing quotes eg {f| 0007d260 43 6f 64 65 7d 53 57 49 20 3c 4f 53 5f 57 72 69 |Code}SWI <OS_Wri| 0007d270 74 65 53 3d 3e 53 57 49 3a 4f 53 5f 57 72 69 74 |teS=>SWI:OS_Writ| 0007d280 65 53 3e 7b 66 7d 2c 20 7b 66 43 6f 64 65 7d 53 |eS>{f}, {fCode}S| 0007d290 57 49 20 30 78 31 32 33 34 34 7b 66 7d 2e 0a 0a |WI 0x12344{f}...| 0007d2a0 4e 6f 74 65 20 74 68 61 74 20 74 6f 20 73 74 6f |Note that to sto| 0007d2b0 72 65 20 64 61 74 61 2c 20 76 61 72 69 61 62 6c |re data, variabl| 0007d2c0 65 73 20 6d 75 73 74 20 62 65 20 75 73 65 64 20 |es must be used | 0007d2d0 2d 20 74 68 65 20 61 73 73 65 6d 62 6c 65 64 20 |- the assembled | 0007d2e0 63 6f 64 65 20 69 73 20 72 65 61 64 2d 6f 6e 6c |code is read-onl| 0007d2f0 79 2e 20 54 68 69 73 20 69 73 20 6e 6f 74 20 72 |y. This is not r| 0007d300 65 61 6c 6c 79 20 61 20 70 72 6f 62 6c 65 6d 2e |eally a problem.| 0007d310 2e 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e |....The followin| 0007d320 67 20 70 73 65 75 64 6f 2d 69 6e 73 74 72 75 63 |g pseudo-instruc| 0007d330 74 69 6f 6e 73 20 61 72 65 20 61 76 61 69 6c 61 |tions are availa| 0007d340 62 6c 65 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 30 |ble:..#indent 10| 0007d350 0a 23 54 61 62 6c 65 20 32 20 39 0a 3c 49 4d 50 |.#Table 2 9.<IMP| 0007d360 4f 52 54 3e 0a 3c 45 58 50 4f 52 54 3e 0a 3c 41 |ORT>.<EXPORT>.<A| 0007d370 4c 49 47 4e 3e 0a 3c 44 43 42 3e 0a 3c 44 43 44 |LIGN>.<DCB>.<DCD| 0007d380 3e 0a 3c 41 44 52 3e 0a 3c 4c 44 52 3e 0a 3c 53 |>.<ADR>.<LDR>.<S| 0007d390 54 52 3e 0a 3c 4c 44 46 3e 0a 3c 53 54 46 3e 0a |TR>.<LDF>.<STF>.| 0007d3a0 23 45 6e 64 54 61 62 6c 65 00 00 00 44 41 54 41 |#EndTable...DATA| 0007d3b0 4c 00 00 00 23 70 72 61 67 6d 61 20 65 6e 64 61 |L...#pragma enda| 0007d3c0 73 6d 0a 54 68 69 73 20 6d 61 72 6b 73 20 74 68 |sm.This marks th| 0007d3d0 65 20 65 6e 64 20 6f 66 20 61 20 73 65 63 74 69 |e end of a secti| 0007d3e0 6f 6e 20 6f 66 20 61 73 73 65 6d 62 6c 79 20 6c |on of assembly l| 0007d3f0 61 6e 67 75 61 67 65 2e 44 41 54 41 73 02 00 00 |anguage.DATAs...| 0007d400 70 72 69 6e 74 2e 68 0a 54 68 69 73 20 68 65 61 |print.h.This hea| 0007d410 64 65 72 20 66 69 6c 65 20 64 65 63 6c 61 72 65 |der file declare| 0007d420 73 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 |s function and t| 0007d430 79 70 65 73 20 66 6f 72 20 61 63 63 65 73 73 69 |ypes for accessi| 0007d440 6e 67 20 52 49 53 43 20 4f 53 20 70 72 69 6e 74 |ng RISC OS print| 0007d450 65 72 20 64 72 69 76 65 72 73 20 66 72 6f 6d 20 |er drivers from | 0007d460 43 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |C...Functions:..| 0007d470 23 69 6e 64 65 6e 74 20 38 0a 23 54 61 62 6c 65 |#indent 8.#Table| 0007d480 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 70 72 69 6e | columns 2.<prin| 0007d490 74 5f 69 6e 66 6f 3e 0a 3c 70 72 69 6e 74 5f 73 |t_info>.<print_s| 0007d4a0 65 74 69 6e 66 6f 3e 0a 3c 70 72 69 6e 74 5f 63 |etinfo>.<print_c| 0007d4b0 68 65 63 6b 66 65 61 74 75 72 65 73 3e 0a 3c 70 |heckfeatures>.<p| 0007d4c0 72 69 6e 74 5f 70 61 67 65 73 69 7a 65 3e 0a 3c |rint_pagesize>.<| 0007d4d0 70 72 69 6e 74 5f 73 65 74 70 61 67 65 73 69 7a |print_setpagesiz| 0007d4e0 65 3e 0a 3c 70 72 69 6e 74 5f 73 65 6c 65 63 74 |e>.<print_select| 0007d4f0 6a 6f 62 3e 0a 3c 70 72 69 6e 74 5f 63 75 72 72 |job>.<print_curr| 0007d500 65 6e 74 6a 6f 62 3e 0a 3c 70 72 69 6e 74 5f 65 |entjob>.<print_e| 0007d510 6e 64 6a 6f 62 3e 0a 3c 70 72 69 6e 74 5f 61 62 |ndjob>.<print_ab| 0007d520 6f 72 74 6a 6f 62 3e 0a 3c 70 72 69 6e 74 5f 63 |ortjob>.<print_c| 0007d530 61 6e 63 65 6c 6a 6f 62 3e 0a 3c 70 72 69 6e 74 |anceljob>.<print| 0007d540 5f 72 65 73 65 74 3e 0a 3c 70 72 69 6e 74 5f 73 |_reset>.<print_s| 0007d550 65 6c 65 63 74 69 6c 6c 75 73 74 72 61 74 69 6f |electillustratio| 0007d560 6e 3e 0a 3c 70 72 69 6e 74 5f 67 69 76 65 72 65 |n>.<print_givere| 0007d570 63 74 61 6e 67 6c 65 3e 0a 3c 70 72 69 6e 74 5f |ctangle>.<print_| 0007d580 64 72 61 77 70 61 67 65 3e 0a 3c 70 72 69 6e 74 |drawpage>.<print| 0007d590 5f 67 65 74 72 65 63 74 61 6e 67 6c 65 3e 0a 3c |_getrectangle>.<| 0007d5a0 70 72 69 6e 74 5f 73 63 72 65 65 6e 64 75 6d 70 |print_screendump| 0007d5b0 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 69 6e 64 |>.#EndTable.#ind| 0007d5c0 65 6e 74 0a 0a 54 79 70 65 73 3a 0a 0a 23 69 6e |ent..Types:..#in| 0007d5d0 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 63 6f |dent 5.#Table co| 0007d5e0 6c 75 6d 6e 73 20 33 0a 3c 70 72 69 6e 74 5f 69 |lumns 3.<print_i| 0007d5f0 64 65 6e 74 69 74 79 3e 0a 3c 70 72 69 6e 74 5f |dentity>.<print_| 0007d600 66 65 61 74 75 72 65 73 3e 0a 3c 70 72 69 6e 74 |features>.<print| 0007d610 5f 69 6e 66 6f 73 74 72 3e 0a 3c 70 72 69 6e 74 |_infostr>.<print| 0007d620 5f 62 6f 78 3e 0a 3c 70 72 69 6e 74 5f 70 61 67 |_box>.<print_pag| 0007d630 65 73 69 7a 65 73 74 72 3e 0a 3c 70 72 69 6e 74 |esizestr>.<print| 0007d640 5f 74 72 61 6e 73 6d 61 74 73 74 72 3e 0a 3c 70 |_transmatstr>.<p| 0007d650 72 69 6e 74 5f 70 6f 73 69 74 69 6f 6e 73 74 72 |rint_positionstr| 0007d660 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 49 52 24 |>.#EndTable.DIR$| 0007d670 98 00 00 00 98 00 00 00 04 d7 07 00 46 ff ff ff |............F...| 0007d680 d0 45 60 25 ab 00 00 00 13 00 00 00 00 00 00 00 |.E`%............| 0007d690 46 58 38 30 00 00 00 00 b0 d7 07 00 46 ff ff ff |FX80........F...| 0007d6a0 af 53 60 25 b6 00 00 00 13 00 00 00 00 00 00 00 |.S`%............| 0007d6b0 49 4e 54 45 47 52 45 58 00 00 00 00 68 d8 07 00 |INTEGREX....h...| 0007d6c0 46 ff ff ff ea 4d 60 25 b5 00 00 00 13 00 00 00 |F....M`%........| 0007d6d0 00 00 00 00 4c 41 53 45 52 4a 45 54 00 00 00 00 |....LASERJET....| 0007d6e0 20 d9 07 00 46 ff ff ff d9 40 60 25 bb 00 00 00 | ...F....@`%....| 0007d6f0 13 00 00 00 00 00 00 00 50 4f 53 54 53 43 52 49 |........POSTSCRI| 0007d700 50 54 00 00 44 41 54 41 ab 00 00 00 70 72 69 6e |PT..DATA....prin| 0007d710 74 64 72 69 76 65 72 5f 46 58 38 30 0a 54 68 65 |tdriver_FX80.The| 0007d720 20 6d 61 63 72 6f 20 7b 2a 7d 70 72 69 6e 74 64 | macro {*}printd| 0007d730 72 69 76 65 72 5f 46 58 38 30 7b 2a 7d 20 69 73 |river_FX80{*} is| 0007d740 20 64 65 66 69 6e 65 64 20 62 79 20 3c 44 65 73 | defined by <Des| 0007d750 6b 4c 69 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e |kLib:PDriver.h=>| 0007d760 50 44 72 69 76 65 72 3e 2e 20 49 74 20 69 73 20 |PDriver>. It is | 0007d770 74 68 65 20 64 72 69 76 65 72 74 79 70 65 20 6f |the drivertype o| 0007d780 66 20 3c 70 72 69 6e 74 65 72 5f 69 6e 66 6f 3e |f <printer_info>| 0007d790 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 6e | representing an| 0007d7a0 20 45 70 73 6f 6e 20 70 72 69 6e 74 65 72 2e 00 | Epson printer..| 0007d7b0 44 41 54 41 b6 00 00 00 70 72 69 6e 74 64 72 69 |DATA....printdri| 0007d7c0 76 65 72 5f 49 4e 54 45 47 52 45 58 0a 54 68 65 |ver_INTEGREX.The| 0007d7d0 20 6d 61 63 72 6f 20 7b 2a 7d 70 72 69 6e 74 64 | macro {*}printd| 0007d7e0 72 69 76 65 72 5f 49 4e 54 45 47 52 45 58 7b 2a |river_INTEGREX{*| 0007d7f0 7d 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 |} is defined by | 0007d800 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 72 |<DeskLib:PDriver| 0007d810 2e 68 3d 3e 50 44 72 69 76 65 72 3e 2e 20 49 74 |.h=>PDriver>. It| 0007d820 20 69 73 20 74 68 65 20 64 72 69 76 65 72 74 79 | is the driverty| 0007d830 70 65 20 6f 66 20 3c 70 72 69 6e 74 65 72 5f 69 |pe of <printer_i| 0007d840 6e 66 6f 3e 20 72 65 70 72 65 73 65 6e 74 69 6e |nfo> representin| 0007d850 67 20 61 20 43 6f 6c 6f 75 72 4a 65 74 20 70 72 |g a ColourJet pr| 0007d860 69 6e 74 65 72 2e 00 00 44 41 54 41 b5 00 00 00 |inter...DATA....| 0007d870 70 72 69 6e 74 64 72 69 76 65 72 5f 4c 41 53 45 |printdriver_LASE| 0007d880 52 4a 45 54 0a 54 68 65 20 6d 61 63 72 6f 20 7b |RJET.The macro {| 0007d890 2a 7d 70 72 69 6e 74 64 72 69 76 65 72 5f 4c 41 |*}printdriver_LA| 0007d8a0 53 45 52 4a 45 54 7b 2a 7d 20 69 73 20 64 65 66 |SERJET{*} is def| 0007d8b0 69 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c 69 62 |ined by <DeskLib| 0007d8c0 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 |:PDriver.h=>PDri| 0007d8d0 76 65 72 3e 2e 20 49 74 20 69 73 20 74 68 65 20 |ver>. It is the | 0007d8e0 64 72 69 76 65 72 74 79 70 65 20 6f 66 20 3c 70 |drivertype of <p| 0007d8f0 72 69 6e 74 65 72 5f 69 6e 66 6f 3e 20 72 65 70 |rinter_info> rep| 0007d900 72 65 73 65 6e 74 69 6e 67 20 61 20 4c 61 73 65 |resenting a Lase| 0007d910 72 4a 65 74 20 70 72 69 6e 74 65 72 2e 00 00 00 |rJet printer....| 0007d920 44 41 54 41 bb 00 00 00 70 72 69 6e 74 64 72 69 |DATA....printdri| 0007d930 76 65 72 5f 50 4f 53 54 53 43 52 49 50 54 0a 54 |ver_POSTSCRIPT.T| 0007d940 68 65 20 6d 61 63 72 6f 20 7b 2a 7d 70 72 69 6e |he macro {*}prin| 0007d950 74 64 72 69 76 65 72 5f 50 4f 53 54 53 43 52 49 |tdriver_POSTSCRI| 0007d960 50 54 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 64 |PT{*} is defined| 0007d970 20 62 79 20 3c 44 65 73 6b 4c 69 62 3a 50 44 72 | by <DeskLib:PDr| 0007d980 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e |iver.h=>PDriver>| 0007d990 2e 20 49 74 20 69 73 20 74 68 65 20 64 72 69 76 |. It is the driv| 0007d9a0 65 72 74 79 70 65 20 6f 66 20 3c 70 72 69 6e 74 |ertype of <print| 0007d9b0 65 72 5f 69 6e 66 6f 3e 20 72 65 70 72 65 73 65 |er_info> represe| 0007d9c0 6e 74 69 6e 67 20 61 20 50 6f 73 74 53 63 72 69 |nting a PostScri| 0007d9d0 70 74 20 70 72 69 6e 74 65 72 2e 00 44 49 52 24 |pt printer..DIR$| 0007d9e0 2c 00 00 00 2c 00 00 00 08 da 07 00 46 ff ff ff |,...,.......F...| 0007d9f0 d4 8f 60 25 1a 02 00 00 13 00 00 00 00 00 00 00 |..`%............| 0007da00 69 6e 66 6f 00 00 00 00 44 41 54 41 1a 02 00 00 |info....DATA....| 0007da10 70 72 69 6e 74 65 72 5f 69 6e 66 6f 0a 54 68 69 |printer_info.Thi| 0007da20 73 20 73 74 72 75 63 74 75 72 65 20 69 73 20 64 |s structure is d| 0007da30 65 66 69 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c |efined by <DeskL| 0007da40 69 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 |ib:PDriver.h=>PD| 0007da50 72 69 76 65 72 3e 20 61 73 20 61 20 73 74 72 75 |river> as a stru| 0007da60 63 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 |cture containing| 0007da70 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e | the information| 0007da80 20 72 65 74 75 72 6e 65 64 20 62 79 20 3c 50 44 | returned by <PD| 0007da90 72 69 76 65 72 5f 49 6e 66 6f 3e 2e 0a 0a 20 20 |river_Info>... | 0007daa0 20 20 5c 7b 0a 20 20 20 20 20 20 20 20 75 6e 73 | \{. uns| 0007dab0 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f |igned int versio| 0007dac0 6e 20 3a 20 31 36 3b 0a 20 20 20 20 20 20 20 20 |n : 16;. | 0007dad0 69 6e 74 20 64 72 69 76 65 72 74 79 70 65 20 3a |int drivertype :| 0007dae0 20 31 36 3b 0a 20 20 20 20 20 20 20 20 3c 77 69 | 16;. <wi| 0007daf0 6d 70 5f 70 6f 69 6e 74 3e 20 72 65 73 6f 6c 75 |mp_point> resolu| 0007db00 74 69 6f 6e 3b 0a 20 20 20 20 20 20 20 20 3c 70 |tion;. <p| 0007db10 72 69 6e 74 5f 66 65 61 74 75 72 65 73 3e 20 66 |rint_features> f| 0007db20 65 61 74 75 72 65 73 3b 0a 20 20 20 20 20 20 20 |eatures;. | 0007db30 20 63 68 61 72 20 2a 64 65 73 63 72 69 70 74 69 | char *descripti| 0007db40 6f 6e 3b 0a 20 20 20 20 20 20 20 20 77 69 6d 70 |on;. wimp| 0007db50 5f 70 6f 69 6e 74 20 68 61 6c 66 74 6f 6e 65 5f |_point halftone_| 0007db60 72 65 73 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 |res;. int| 0007db70 20 69 64 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 | id_number;. | 0007db80 7d 0a 0a 2f 76 65 72 73 69 6f 6e 2f 20 69 73 20 |}../version/ is | 0007db90 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 |the version numb| 0007dba0 65 72 20 2a 20 31 30 30 2e 0a 2f 72 65 73 6f 6c |er * 100../resol| 0007dbb0 75 74 69 6f 6e 2f 20 67 69 76 65 73 20 78 20 61 |ution/ gives x a| 0007dbc0 6e 64 20 79 20 72 65 73 20 69 6e 20 64 70 69 2e |nd y res in dpi.| 0007dbd0 0a 7b 2f 7d 68 61 6c 66 74 6f 6e 65 5f 72 65 73 |.{/}halftone_res| 0007dbe0 7b 2f 7d 20 69 6e 20 72 65 70 65 61 74 73 20 70 |{/} in repeats p| 0007dbf0 65 72 20 69 6e 63 68 2e 0a 7b 2f 7d 69 64 5f 6e |er inch..{/}id_n| 0007dc00 75 6d 62 65 72 7b 2f 7d 20 69 73 20 66 6f 72 20 |umber{/} is for | 0007dc10 69 6e 74 65 72 6e 61 6c 20 75 73 65 20 6f 6e 6c |internal use onl| 0007dc20 79 2e 00 00 44 41 54 41 31 01 00 00 70 72 69 6e |y...DATA1...prin| 0007dc30 74 66 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 70 |tf.Syntax:.int p| 0007dc40 72 69 6e 74 66 20 28 63 68 61 72 20 2a 66 6f 72 |rintf (char *for| 0007dc50 6d 61 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 64 65 |mat, ...);.Heade| 0007dc60 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 |r:.<stdio.h=>std| 0007dc70 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |io>..Returns:.Th| 0007dc80 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 |e number of char| 0007dc90 61 63 74 65 72 73 20 77 72 69 74 74 65 6e 2c 20 |acters written, | 0007dca0 6f 72 20 61 20 6e 65 67 61 74 69 76 65 20 76 61 |or a negative va| 0007dcb0 6c 75 65 20 69 66 20 74 68 65 72 65 20 77 61 73 |lue if there was| 0007dcc0 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 | an error...This| 0007dcd0 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 73 | function writes| 0007dce0 20 6f 75 74 70 75 74 20 74 6f 20 3c 73 74 64 6f | output to <stdo| 0007dcf0 75 74 3e 20 75 6e 64 65 72 20 63 6f 6e 74 72 6f |ut> under contro| 0007dd00 6c 20 6f 66 20 74 68 65 20 3c 66 6f 72 6d 61 74 |l of the <format| 0007dd10 20 73 74 72 69 6e 67 3d 3e 70 66 6f 72 6d 5f 3e | string=>pform_>| 0007dd20 2e 0a 0a 49 74 20 69 73 20 69 64 65 6e 74 69 63 |...It is identic| 0007dd30 61 6c 20 74 6f 20 3c 66 70 72 69 6e 74 66 3e 28 |al to <fprintf>(| 0007dd40 73 74 64 6f 75 74 2c 20 66 6f 72 6d 61 74 2c 20 |stdout, format, | 0007dd50 2e 2e 2e 29 3b 00 00 00 44 49 52 24 48 01 00 00 |...);...DIR$H...| 0007dd60 48 01 00 00 a0 de 07 00 46 ff ff ff c0 57 60 25 |H.......F....W`%| 0007dd70 c4 00 00 00 13 00 00 00 00 00 00 00 43 4f 4c 4f |............COLO| 0007dd80 55 52 00 00 64 df 07 00 46 ff ff ff 2d 5d 60 25 |UR..d...F...-]`%| 0007dd90 db 00 00 00 13 00 00 00 00 00 00 00 44 49 53 43 |............DISC| 0007dda0 52 45 54 45 00 00 00 00 40 e0 07 00 46 ff ff ff |RETE....@...F...| 0007ddb0 65 73 60 25 dd 00 00 00 13 00 00 00 00 00 00 00 |es`%............| 0007ddc0 49 4c 4c 55 53 54 52 41 54 49 4f 4e 53 00 00 00 |ILLUSTRATIONS...| 0007ddd0 20 e1 07 00 46 ff ff ff 74 5a 60 25 d9 00 00 00 | ...F...tZ`%....| 0007dde0 13 00 00 00 00 00 00 00 4c 49 4d 49 54 45 44 00 |........LIMITED.| 0007ddf0 fc e1 07 00 46 ff ff ff 2e 60 60 25 d4 00 00 00 |....F....``%....| 0007de00 13 00 00 00 00 00 00 00 4e 4f 46 49 4c 4c 00 00 |........NOFILL..| 0007de10 d0 e2 07 00 46 ff ff ff 5a 66 60 25 f0 00 00 00 |....F...Zf`%....| 0007de20 13 00 00 00 00 00 00 00 4e 4f 4f 56 45 52 57 52 |........NOOVERWR| 0007de30 49 54 45 00 c0 e3 07 00 46 ff ff ff 7c 63 60 25 |ITE.....F...|c`%| 0007de40 d7 00 00 00 13 00 00 00 00 00 00 00 4e 4f 54 48 |............NOTH| 0007de50 49 43 4b 4e 45 53 53 00 98 e4 07 00 46 ff ff ff |ICKNESS.....F...| 0007de60 28 6a 60 25 e4 00 00 00 13 00 00 00 00 00 00 00 |(j`%............| 0007de70 53 43 52 45 45 4e 44 55 4d 50 00 00 7c e5 07 00 |SCREENDUMP..|...| 0007de80 46 ff ff ff a7 6e 60 25 22 01 00 00 13 00 00 00 |F....n`%".......| 0007de90 00 00 00 00 54 52 41 4e 53 46 4f 52 4d 53 00 00 |....TRANSFORMS..| 0007dea0 44 41 54 41 c4 00 00 00 70 72 69 6e 74 66 65 61 |DATA....printfea| 0007deb0 74 5f 43 4f 4c 4f 55 52 0a 54 68 69 73 20 6d 61 |t_COLOUR.This ma| 0007dec0 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 62 |cro is defined b| 0007ded0 79 20 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 |y <DeskLib:PDriv| 0007dee0 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 20 61 |er.h=>PDriver> a| 0007def0 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 73 |s a value repres| 0007df00 65 6e 74 69 6e 67 20 61 20 62 69 74 20 69 6e 20 |enting a bit in | 0007df10 74 68 65 20 66 65 61 74 75 72 65 73 20 77 6f 72 |the features wor| 0007df20 64 2e 20 49 66 20 73 65 74 2c 20 69 74 20 69 6e |d. If set, it in| 0007df30 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 65 |dicates that the| 0007df40 20 70 72 69 6e 74 65 72 20 64 72 69 76 65 72 20 | printer driver | 0007df50 63 61 6e 20 70 72 69 6e 74 20 69 6e 20 63 6f 6c |can print in col| 0007df60 6f 75 72 2e 44 41 54 41 db 00 00 00 70 72 69 6e |our.DATA....prin| 0007df70 74 66 65 61 74 5f 44 49 53 43 52 45 54 45 0a 54 |tfeat_DISCRETE.T| 0007df80 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 0007df90 69 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c 69 62 |ined by <DeskLib| 0007dfa0 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 |:PDriver.h=>PDri| 0007dfb0 76 65 72 3e 20 61 73 20 61 20 76 61 6c 75 65 20 |ver> as a value | 0007dfc0 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 62 |representing a b| 0007dfd0 69 74 20 69 6e 20 74 68 65 20 66 65 61 74 75 72 |it in the featur| 0007dfe0 65 73 20 77 6f 72 64 2e 20 49 66 20 73 65 74 2c |es word. If set,| 0007dff0 20 69 74 20 69 6e 64 69 63 61 74 65 73 20 74 68 | it indicates th| 0007e000 61 74 20 74 68 65 20 70 72 69 6e 74 65 72 20 64 |at the printer d| 0007e010 72 69 76 65 72 20 63 61 6e 20 6f 6e 6c 79 20 70 |river can only p| 0007e020 72 69 6e 74 20 61 20 64 69 73 63 72 65 74 65 20 |rint a discrete | 0007e030 73 65 74 20 6f 66 20 63 6f 6c 6f 75 72 73 2e 00 |set of colours..| 0007e040 44 41 54 41 dd 00 00 00 70 72 69 6e 74 66 65 61 |DATA....printfea| 0007e050 74 5f 49 4c 4c 55 53 54 52 41 54 49 4f 4e 53 0a |t_ILLUSTRATIONS.| 0007e060 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0007e070 66 69 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c 69 |fined by <DeskLi| 0007e080 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 |b:PDriver.h=>PDr| 0007e090 69 76 65 72 3e 20 61 73 20 61 20 76 61 6c 75 65 |iver> as a value| 0007e0a0 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 | representing a | 0007e0b0 62 69 74 20 69 6e 20 74 68 65 20 66 65 61 74 75 |bit in the featu| 0007e0c0 72 65 73 20 77 6f 72 64 2e 20 49 66 20 73 65 74 |res word. If set| 0007e0d0 2c 20 69 74 20 69 6e 64 69 63 61 74 65 73 20 74 |, it indicates t| 0007e0e0 68 61 74 20 74 68 65 20 70 72 69 6e 74 65 72 20 |hat the printer | 0007e0f0 64 72 69 76 65 72 20 73 75 70 70 6f 72 74 73 20 |driver supports | 0007e100 3c 50 44 72 69 76 65 72 5f 49 6e 73 65 72 74 49 |<PDriver_InsertI| 0007e110 6c 6c 75 73 74 72 61 74 69 6f 6e 3e 2e 00 00 00 |llustration>....| 0007e120 44 41 54 41 d9 00 00 00 70 72 69 6e 74 66 65 61 |DATA....printfea| 0007e130 74 5f 4c 49 4d 49 54 45 44 0a 54 68 69 73 20 6d |t_LIMITED.This m| 0007e140 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 0007e150 62 79 20 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 |by <DeskLib:PDri| 0007e160 76 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 20 |ver.h=>PDriver> | 0007e170 61 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 |as a value repre| 0007e180 73 65 6e 74 69 6e 67 20 61 20 62 69 74 20 69 6e |senting a bit in| 0007e190 20 74 68 65 20 66 65 61 74 75 72 65 73 20 77 6f | the features wo| 0007e1a0 72 64 2e 20 49 66 20 73 65 74 2c 20 69 74 20 69 |rd. If set, it i| 0007e1b0 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68 |ndicates that th| 0007e1c0 65 20 70 72 69 6e 74 65 72 20 64 72 69 76 65 72 |e printer driver| 0007e1d0 20 63 61 6e 20 6f 6e 6c 79 20 70 72 69 6e 74 20 | can only print | 0007e1e0 61 20 6c 69 6d 69 74 65 64 20 73 65 74 20 6f 66 |a limited set of| 0007e1f0 20 63 6f 6c 6f 75 72 73 2e 00 00 00 44 41 54 41 | colours....DATA| 0007e200 d4 00 00 00 70 72 69 6e 74 66 65 61 74 5f 4e 4f |....printfeat_NO| 0007e210 46 49 4c 4c 0a 54 68 69 73 20 6d 61 63 72 6f 20 |FILL.This macro | 0007e220 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 3c 44 |is defined by <D| 0007e230 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 72 2e 68 |eskLib:PDriver.h| 0007e240 3d 3e 50 44 72 69 76 65 72 3e 20 61 73 20 61 20 |=>PDriver> as a | 0007e250 76 61 6c 75 65 20 72 65 70 72 65 73 65 6e 74 69 |value representi| 0007e260 6e 67 20 61 20 62 69 74 20 69 6e 20 74 68 65 20 |ng a bit in the | 0007e270 66 65 61 74 75 72 65 73 20 77 6f 72 64 2e 20 49 |features word. I| 0007e280 66 20 73 65 74 2c 20 69 74 20 69 6e 64 69 63 61 |f set, it indica| 0007e290 74 65 73 20 74 68 61 74 20 74 68 65 20 70 72 69 |tes that the pri| 0007e2a0 6e 74 65 72 20 64 72 69 76 65 72 20 63 61 6e 27 |nter driver can'| 0007e2b0 74 20 68 61 6e 64 6c 65 20 66 69 6c 6c 65 64 20 |t handle filled | 0007e2c0 73 68 61 70 65 73 20 70 72 6f 70 65 72 6c 79 2e |shapes properly.| 0007e2d0 44 41 54 41 f0 00 00 00 70 72 69 6e 74 66 65 61 |DATA....printfea| 0007e2e0 74 5f 4e 4f 4f 56 45 52 57 52 49 54 45 0a 54 68 |t_NOOVERWRITE.Th| 0007e2f0 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 0007e300 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c 69 62 3a |ned by <DeskLib:| 0007e310 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 |PDriver.h=>PDriv| 0007e320 65 72 3e 20 61 73 20 61 20 76 61 6c 75 65 20 72 |er> as a value r| 0007e330 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 62 69 |epresenting a bi| 0007e340 74 20 69 6e 20 74 68 65 20 66 65 61 74 75 72 65 |t in the feature| 0007e350 73 20 77 6f 72 64 2e 20 49 66 20 73 65 74 2c 20 |s word. If set, | 0007e360 69 74 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 |it indicates tha| 0007e370 74 20 74 68 65 20 70 72 69 6e 74 65 72 20 64 72 |t the printer dr| 0007e380 69 76 65 72 20 63 61 6e 27 74 20 68 61 6e 64 6c |iver can't handl| 0007e390 65 20 6f 76 65 72 77 72 69 74 69 6e 67 20 6f 66 |e overwriting of| 0007e3a0 20 6f 6e 65 20 63 6f 6c 6f 75 72 20 62 79 20 61 | one colour by a| 0007e3b0 6e 6f 74 68 65 72 20 70 72 6f 70 65 72 6c 79 2e |nother properly.| 0007e3c0 44 41 54 41 d7 00 00 00 70 72 69 6e 74 66 65 61 |DATA....printfea| 0007e3d0 74 5f 4e 4f 54 48 49 43 4b 4e 45 53 53 0a 54 68 |t_NOTHICKNESS.Th| 0007e3e0 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 0007e3f0 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c 69 62 3a |ned by <DeskLib:| 0007e400 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 |PDriver.h=>PDriv| 0007e410 65 72 3e 20 61 73 20 61 20 76 61 6c 75 65 20 72 |er> as a value r| 0007e420 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 62 69 |epresenting a bi| 0007e430 74 20 69 6e 20 74 68 65 20 66 65 61 74 75 72 65 |t in the feature| 0007e440 73 20 77 6f 72 64 2e 20 49 66 20 73 65 74 2c 20 |s word. If set, | 0007e450 69 74 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 |it indicates tha| 0007e460 74 20 74 68 65 20 70 72 69 6e 74 65 72 20 64 72 |t the printer dr| 0007e470 69 76 65 72 20 63 61 6e 27 74 20 68 61 6e 64 6c |iver can't handl| 0007e480 65 20 74 68 69 63 6b 20 6c 69 6e 65 73 20 70 72 |e thick lines pr| 0007e490 6f 70 65 72 6c 79 2e 00 44 41 54 41 e4 00 00 00 |operly..DATA....| 0007e4a0 70 72 69 6e 74 66 65 61 74 5f 53 43 52 45 45 4e |printfeat_SCREEN| 0007e4b0 44 55 4d 50 0a 54 68 69 73 20 6d 61 63 72 6f 20 |DUMP.This macro | 0007e4c0 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 3c 44 |is defined by <D| 0007e4d0 65 73 6b 4c 69 62 3a 50 44 72 69 76 65 72 2e 68 |eskLib:PDriver.h| 0007e4e0 3d 3e 50 44 72 69 76 65 72 3e 20 61 73 20 61 20 |=>PDriver> as a | 0007e4f0 76 61 6c 75 65 20 72 65 70 72 65 73 65 6e 74 69 |value representi| 0007e500 6e 67 20 61 20 62 69 74 20 69 6e 20 74 68 65 20 |ng a bit in the | 0007e510 66 65 61 74 75 72 65 73 20 77 6f 72 64 2e 20 49 |features word. I| 0007e520 66 20 73 65 74 2c 20 69 74 20 69 6e 64 69 63 61 |f set, it indica| 0007e530 74 65 73 20 74 68 61 74 20 74 68 65 20 70 72 69 |tes that the pri| 0007e540 6e 74 65 72 20 64 72 69 76 65 72 20 73 75 70 70 |nter driver supp| 0007e550 6f 72 74 73 20 73 63 72 65 65 6e 20 64 75 6d 70 |orts screen dump| 0007e560 73 20 77 69 74 68 20 3c 50 44 72 69 76 65 72 5f |s with <PDriver_| 0007e570 53 63 72 65 65 6e 44 75 6d 70 3e 2e 44 41 54 41 |ScreenDump>.DATA| 0007e580 22 01 00 00 70 72 69 6e 74 66 65 61 74 5f 54 52 |"...printfeat_TR| 0007e590 41 4e 53 46 4f 52 4d 53 0a 54 68 69 73 20 6d 61 |ANSFORMS.This ma| 0007e5a0 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 62 |cro is defined b| 0007e5b0 79 20 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 |y <DeskLib:PDriv| 0007e5c0 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 20 61 |er.h=>PDriver> a| 0007e5d0 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 73 |s a value repres| 0007e5e0 65 6e 74 69 6e 67 20 61 20 62 69 74 20 69 6e 20 |enting a bit in | 0007e5f0 74 68 65 20 66 65 61 74 75 72 65 73 20 77 6f 72 |the features wor| 0007e600 64 2e 20 49 66 20 63 6c 65 61 72 2c 20 69 74 20 |d. If clear, it | 0007e610 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 |indicates that t| 0007e620 68 65 20 70 72 69 6e 74 65 72 20 64 72 69 76 65 |he printer drive| 0007e630 72 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f |r does not suppo| 0007e640 72 74 20 61 6e 79 20 74 72 61 6e 73 66 6f 72 6d |rt any transform| 0007e650 61 74 69 6f 6e 73 20 65 78 63 65 70 74 20 73 63 |ations except sc| 0007e660 61 6c 69 6e 67 73 2c 20 74 72 61 6e 73 6c 61 74 |alings, translat| 0007e670 69 6f 6e 73 20 61 6e 64 20 72 6f 74 61 74 69 6f |ions and rotatio| 0007e680 6e 73 20 62 79 20 6d 75 6c 74 69 70 6c 65 73 20 |ns by multiples | 0007e690 6f 66 20 39 30 20 64 65 67 72 65 65 73 2e 00 00 |of 90 degrees...| 0007e6a0 44 49 52 24 a8 03 00 00 a8 03 00 00 48 ea 07 00 |DIR$........H...| 0007e6b0 46 ff ff ff 54 e7 b4 24 4c 01 00 00 13 00 00 00 |F...T..$L.......| 0007e6c0 00 00 00 00 61 62 6f 72 74 6a 6f 62 00 00 00 00 |....abortjob....| 0007e6d0 94 eb 07 00 46 ff ff ff 23 89 b5 24 91 00 00 00 |....F...#..$....| 0007e6e0 13 00 00 00 00 00 00 00 62 6f 78 00 28 ec 07 00 |........box.(...| 0007e6f0 46 ff ff ff 95 ed b4 24 61 01 00 00 13 00 00 00 |F......$a.......| 0007e700 00 00 00 00 63 61 6e 63 65 6c 6a 6f 62 00 00 00 |....canceljob...| 0007e710 8c ed 07 00 46 ff ff ff 81 a8 b4 24 e5 01 00 00 |....F......$....| 0007e720 13 00 00 00 00 00 00 00 63 68 65 63 6b 66 65 61 |........checkfea| 0007e730 74 75 72 65 73 00 00 00 74 ef 07 00 46 ff ff ff |tures...t...F...| 0007e740 29 dc b4 24 2d 01 00 00 13 00 00 00 00 00 00 00 |)..$-...........| 0007e750 63 75 72 72 65 6e 74 6a 6f 62 00 00 a4 f0 07 00 |currentjob......| 0007e760 46 ff ff ff c1 2d b5 24 4c 03 00 00 13 00 00 00 |F....-.$L.......| 0007e770 00 00 00 00 64 72 61 77 70 61 67 65 00 00 00 00 |....drawpage....| 0007e780 f0 f3 07 00 46 ff ff ff ed e1 b4 24 0d 01 00 00 |....F......$....| 0007e790 13 00 00 00 00 00 00 00 65 6e 64 6a 6f 62 00 00 |........endjob..| 0007e7a0 00 f5 07 00 46 ff ff ff eb 65 b5 24 40 03 00 00 |....F....e.$@...| 0007e7b0 13 00 00 00 00 00 00 00 66 65 61 74 75 72 65 73 |........features| 0007e7c0 00 00 00 00 40 f8 07 00 46 fd ff ff f8 77 b5 24 |....@...F....w.$| 0007e7d0 1e 01 00 00 13 00 00 00 00 00 00 00 66 65 61 74 |............feat| 0007e7e0 75 72 65 73 5f 00 00 00 60 f9 07 00 46 ff ff ff |ures_...`...F...| 0007e7f0 23 46 b5 24 13 02 00 00 13 00 00 00 00 00 00 00 |#F.$............| 0007e800 67 65 74 72 65 63 74 61 6e 67 6c 65 00 00 00 00 |getrectangle....| 0007e810 74 fb 07 00 46 ff ff ff 60 14 b5 24 df 02 00 00 |t...F...`..$....| 0007e820 13 00 00 00 00 00 00 00 67 69 76 65 72 65 63 74 |........giverect| 0007e830 61 6e 67 6c 65 00 00 00 54 fe 07 00 46 ff ff ff |angle...T...F...| 0007e840 9a 54 b5 24 e7 00 00 00 13 00 00 00 00 00 00 00 |.T.$............| 0007e850 69 64 65 6e 74 69 74 79 00 00 00 00 3c ff 07 00 |identity....<...| 0007e860 46 ff ff ff ae 92 b4 24 63 01 00 00 13 00 00 00 |F......$c.......| 0007e870 00 00 00 00 69 6e 66 6f 00 00 00 00 a0 00 08 00 |....info........| 0007e880 46 ff ff ff e2 82 b5 24 e9 01 00 00 13 00 00 00 |F......$........| 0007e890 00 00 00 00 69 6e 66 6f 73 74 72 00 8c 02 08 00 |....infostr.....| 0007e8a0 46 ff ff ff 6d 79 60 25 aa 00 00 00 13 00 00 00 |F...my`%........| 0007e8b0 00 00 00 00 6a 6f 62 00 38 03 08 00 46 ff ff ff |....job.8...F...| 0007e8c0 50 b2 b4 24 63 01 00 00 13 00 00 00 00 00 00 00 |P..$c...........| 0007e8d0 70 61 67 65 73 69 7a 65 00 00 00 00 9c 04 08 00 |pagesize........| 0007e8e0 46 ff ff ff 61 90 b5 24 09 01 00 00 13 00 00 00 |F...a..$........| 0007e8f0 00 00 00 00 70 61 67 65 73 69 7a 65 73 74 72 00 |....pagesizestr.| 0007e900 a8 05 08 00 46 ff ff ff 81 a2 b5 24 92 00 00 00 |....F......$....| 0007e910 13 00 00 00 00 00 00 00 70 6f 73 69 74 69 6f 6e |........position| 0007e920 73 74 72 00 3c 06 08 00 46 ff ff ff f3 f0 b4 24 |str.<...F......$| 0007e930 a9 00 00 00 13 00 00 00 00 00 00 00 72 65 73 65 |............rese| 0007e940 74 00 00 00 e8 06 08 00 46 ff ff ff 89 4e b5 24 |t.......F....N.$| 0007e950 69 01 00 00 13 00 00 00 00 00 00 00 73 63 72 65 |i...........scre| 0007e960 65 6e 64 75 6d 70 00 00 54 08 08 00 46 ff ff ff |endump..T...F...| 0007e970 f9 f8 b4 24 7f 01 00 00 13 00 00 00 00 00 00 00 |...$............| 0007e980 73 65 6c 65 63 74 69 6c 6c 75 73 74 72 61 74 69 |selectillustrati| 0007e990 6f 6e 00 00 d4 09 08 00 46 ff ff ff 3d cf b4 24 |on......F...=..$| 0007e9a0 3a 02 00 00 13 00 00 00 00 00 00 00 73 65 6c 65 |:...........sele| 0007e9b0 63 74 6a 6f 62 00 00 00 10 0c 08 00 46 ff ff ff |ctjob.......F...| 0007e9c0 3b 99 b4 24 52 01 00 00 13 00 00 00 00 00 00 00 |;..$R...........| 0007e9d0 73 65 74 69 6e 66 6f 00 64 0d 08 00 46 ff ff ff |setinfo.d...F...| 0007e9e0 9d bb b4 24 5f 01 00 00 13 00 00 00 00 00 00 00 |...$_...........| 0007e9f0 73 65 74 70 61 67 65 73 69 7a 65 00 c4 0e 08 00 |setpagesize.....| 0007ea00 46 ff ff ff 99 81 60 25 4b 01 00 00 13 00 00 00 |F.....`%K.......| 0007ea10 00 00 00 00 74 72 61 6e 73 66 6f 72 6d 61 74 69 |....transformati| 0007ea20 6f 6e 00 00 10 10 08 00 46 ff ff ff 8d 9e b5 24 |on......F......$| 0007ea30 58 01 00 00 13 00 00 00 00 00 00 00 74 72 61 6e |X...........tran| 0007ea40 73 6d 61 74 73 74 72 00 44 41 54 41 4c 01 00 00 |smatstr.DATAL...| 0007ea50 70 72 69 6e 74 5f 61 62 6f 72 74 6a 6f 62 0a 53 |print_abortjob.S| 0007ea60 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 0007ea70 3e 20 2a 70 72 69 6e 74 5f 61 62 6f 72 74 6a 6f |> *print_abortjo| 0007ea80 62 20 28 69 6e 74 20 6a 6f 62 29 3b 0a 48 65 61 |b (int job);.Hea| 0007ea90 64 65 72 3a 09 3c 70 72 69 6e 74 2e 68 3d 3e 70 |der:.<print.h=>p| 0007eaa0 72 69 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |rint>..Returns:.| 0007eab0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 0007eac0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 0007ead0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 0007eae0 69 6f 6e 20 65 6e 64 73 20 61 20 70 72 69 6e 74 |ion ends a print| 0007eaf0 20 6a 6f 62 20 61 62 6e 6f 72 6d 61 6c 6c 79 2e | job abnormally.| 0007eb00 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 63 61 | It should be ca| 0007eb10 6c 6c 65 64 20 69 6d 6d 65 64 69 61 74 65 6c 79 |lled immediately| 0007eb20 20 79 6f 75 20 67 65 74 20 61 6e 20 65 72 72 6f | you get an erro| 0007eb30 72 20 77 68 69 6c 65 20 70 72 69 6e 74 69 6e 67 |r while printing| 0007eb40 20 28 65 76 65 6e 20 62 65 66 6f 72 65 20 73 68 | (even before sh| 0007eb50 6f 77 69 6e 67 20 61 6e 20 65 72 72 6f 72 20 6d |owing an error m| 0007eb60 65 73 73 61 67 65 29 2e 20 4e 6f 20 66 75 72 74 |essage). No furt| 0007eb70 68 65 72 20 70 72 69 6e 74 65 72 20 6f 75 74 70 |her printer outp| 0007eb80 75 74 20 77 69 6c 6c 20 62 65 20 70 72 6f 64 75 |ut will be produ| 0007eb90 63 65 64 2e 44 41 54 41 91 00 00 00 70 72 69 6e |ced.DATA....prin| 0007eba0 74 5f 62 6f 78 0a 54 68 69 73 20 74 79 70 65 20 |t_box.This type | 0007ebb0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 70 |is defined in <p| 0007ebc0 72 69 6e 74 2e 68 3d 3e 70 72 69 6e 74 3e 2e 20 |rint.h=>print>. | 0007ebd0 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 |It is a structur| 0007ebe0 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 |e containing an | 0007ebf0 61 62 69 74 72 61 72 79 20 72 65 63 74 61 6e 67 |abitrary rectang| 0007ec00 6c 65 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 6e |le... \{. in| 0007ec10 74 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 31 |t x0, y0, x1, y1| 0007ec20 3b 0a 20 20 7d 00 00 00 44 41 54 41 61 01 00 00 |;. }...DATAa...| 0007ec30 70 72 69 6e 74 5f 63 61 6e 63 65 6c 6a 6f 62 0a |print_canceljob.| 0007ec40 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0007ec50 72 3e 20 2a 70 72 69 6e 74 5f 63 61 6e 63 65 6c |r> *print_cancel| 0007ec60 6a 6f 62 20 28 69 6e 74 20 6a 6f 62 29 3b 0a 48 |job (int job);.H| 0007ec70 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e 68 3d |eader:.<print.h=| 0007ec80 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 |>print>..Returns| 0007ec90 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 0007eca0 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 0007ecb0 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 0007ecc0 63 74 69 6f 6e 20 63 61 75 73 65 73 20 73 75 62 |ction causes sub| 0007ecd0 73 65 71 75 65 6e 74 20 61 74 74 65 6d 70 74 73 |sequent attempts| 0007ece0 20 74 6f 20 6f 75 74 70 75 74 20 74 6f 20 74 68 | to output to th| 0007ecf0 65 20 70 72 69 6e 74 20 6a 6f 62 20 67 69 76 65 |e print job give| 0007ed00 6e 20 74 6f 20 64 6f 20 6e 6f 74 68 69 6e 67 20 |n to do nothing | 0007ed10 6f 74 68 65 72 20 74 68 61 6e 20 67 65 6e 65 72 |other than gener| 0007ed20 61 74 65 20 74 68 65 20 65 72 72 6f 72 20 27 50 |ate the error 'P| 0007ed30 72 69 6e 74 20 63 61 6e 63 65 6c 6c 65 64 27 2e |rint cancelled'.| 0007ed40 20 41 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 | An application | 0007ed50 69 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 72 |is expected to r| 0007ed60 65 73 70 6f 6e 64 20 74 6f 20 74 68 69 73 20 62 |espond to this b| 0007ed70 79 20 61 62 6f 72 74 69 6e 67 20 74 68 65 20 70 |y aborting the p| 0007ed80 72 69 6e 74 20 6a 6f 62 2e 00 00 00 44 41 54 41 |rint job....DATA| 0007ed90 e5 01 00 00 70 72 69 6e 74 5f 63 68 65 63 6b 66 |....print_checkf| 0007eda0 65 61 74 75 72 65 73 0a 53 79 6e 74 61 78 3a 09 |eatures.Syntax:.| 0007edb0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 70 72 69 6e |<os_error> *prin| 0007edc0 74 5f 63 68 65 63 6b 66 65 61 74 75 72 65 73 20 |t_checkfeatures | 0007edd0 28 69 6e 74 20 6d 61 73 6b 2c 20 69 6e 74 20 76 |(int mask, int v| 0007ede0 61 6c 75 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |alue);.Header:.<| 0007edf0 70 72 69 6e 74 2e 68 3d 3e 70 72 69 6e 74 3e 0a |print.h=>print>.| 0007ee00 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 0007ee10 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 0007ee20 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 0007ee30 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 |This function ch| 0007ee40 65 63 6b 73 20 74 68 65 20 66 65 61 74 75 72 65 |ecks the feature| 0007ee50 73 20 6f 66 20 61 20 70 72 69 6e 74 65 72 2e 20 |s of a printer. | 0007ee60 49 66 20 74 68 6f 73 65 20 62 69 74 73 20 77 68 |If those bits wh| 0007ee70 69 63 68 20 61 72 65 20 73 65 74 20 69 6e 20 2f |ich are set in /| 0007ee80 6d 61 73 6b 2f 20 68 61 76 65 20 74 68 65 20 73 |mask/ have the s| 0007ee90 61 6d 65 20 76 61 6c 75 65 73 20 69 6e 20 62 6f |ame values in bo| 0007eea0 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 |th the current p| 0007eeb0 72 69 6e 74 65 72 27 73 20 66 65 61 74 75 72 65 |rinter's feature| 0007eec0 73 20 61 6e 64 20 69 6e 20 2f 76 61 6c 75 65 2f |s and in /value/| 0007eed0 20 74 68 65 6e 20 6e 6f 20 65 72 72 6f 72 20 69 | then no error i| 0007eee0 73 20 67 65 6e 65 72 61 74 65 64 2e 20 69 65 20 |s generated. ie | 0007eef0 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 |if the current p| 0007ef00 72 69 6e 74 65 72 20 64 72 69 76 65 72 27 73 20 |rinter driver's | 0007ef10 66 65 61 74 75 72 65 73 20 61 72 65 20 63 61 6c |features are cal| 0007ef20 6c 65 64 20 2f 66 65 61 74 2f 2c 20 74 68 69 73 |led /feat/, this| 0007ef30 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 | function checks| 0007ef40 20 74 68 61 74 3a 0a 0a 7b 61 6c 69 67 6e 20 63 | that:..{align c| 0007ef50 65 6e 74 72 65 7d 66 65 61 74 20 26 20 6d 61 73 |entre}feat & mas| 0007ef60 6b 20 3d 3d 20 76 61 6c 75 65 20 26 20 6d 61 73 |k == value & mas| 0007ef70 6b 00 00 00 44 41 54 41 2d 01 00 00 70 72 69 6e |k...DATA-...prin| 0007ef80 74 5f 63 75 72 72 65 6e 74 6a 6f 62 0a 53 79 6e |t_currentjob.Syn| 0007ef90 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0007efa0 2a 70 72 69 6e 74 5f 63 75 72 72 65 6e 74 6a 6f |*print_currentjo| 0007efb0 62 20 28 69 6e 74 20 2a 63 75 72 72 65 6e 74 29 |b (int *current)| 0007efc0 3b 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 |;.Header:.<print| 0007efd0 2e 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 |.h=>print>..Retu| 0007efe0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0007eff0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0007f000 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0007f010 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 74 68 |function gets th| 0007f020 65 20 66 69 6c 65 20 68 61 6e 64 6c 65 20 6f 66 |e file handle of| 0007f030 20 74 68 65 20 63 75 72 72 65 6e 74 20 6a 6f 62 | the current job| 0007f040 20 61 6e 64 20 73 74 6f 72 65 73 20 69 74 20 69 | and stores it i| 0007f050 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 70 |n the variable p| 0007f060 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 63 75 |ointed to by /cu| 0007f070 72 72 65 6e 74 2f 2e 20 5a 65 72 6f 20 69 73 20 |rrent/. Zero is | 0007f080 73 74 6f 72 65 64 20 69 66 20 6e 6f 20 70 72 69 |stored if no pri| 0007f090 6e 74 20 6a 6f 62 20 69 73 20 61 63 74 69 76 65 |nt job is active| 0007f0a0 2e 00 00 00 44 41 54 41 4c 03 00 00 70 72 69 6e |....DATAL...prin| 0007f0b0 74 5f 64 72 61 77 70 61 67 65 0a 53 79 6e 74 61 |t_drawpage.Synta| 0007f0c0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 70 |x:.<os_error> *p| 0007f0d0 72 69 6e 74 5f 64 72 61 77 70 61 67 65 20 28 69 |rint_drawpage (i| 0007f0e0 6e 74 20 63 6f 70 69 65 73 2c 20 69 6e 74 20 73 |nt copies, int s| 0007f0f0 65 71 2c 20 63 68 61 72 20 2a 70 61 67 65 2c 20 |eq, char *page, | 0007f100 3c 70 72 69 6e 74 5f 62 6f 78 3e 20 2a 72 65 63 |<print_box> *rec| 0007f110 74 2c 20 69 6e 74 20 2a 66 69 6e 69 73 68 2c 20 |t, int *finish, | 0007f120 69 6e 74 20 2a 72 65 63 74 5f 69 64 29 3b 0a 48 |int *rect_id);.H| 0007f130 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e 68 3d |eader:.<print.h=| 0007f140 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 |>print>..Returns| 0007f150 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 0007f160 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 0007f170 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 0007f180 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 |ction should be | 0007f190 63 61 6c 6c 65 64 20 61 66 74 65 72 20 61 6c 6c |called after all| 0007f1a0 20 72 65 63 74 61 6e 67 6c 65 73 20 68 61 76 65 | rectangles have| 0007f1b0 20 62 65 65 6e 20 73 70 65 63 69 66 69 65 64 20 | been specified | 0007f1c0 75 73 69 6e 67 20 3c 70 72 69 6e 74 5f 67 69 76 |using <print_giv| 0007f1d0 65 72 65 63 74 61 6e 67 6c 65 3e 2e 20 2f 63 6f |erectangle>. /co| 0007f1e0 70 69 65 73 2f 20 63 6f 6e 74 61 69 6e 73 20 74 |pies/ contains t| 0007f1f0 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 70 |he number of cop| 0007f200 69 65 73 20 74 6f 20 70 72 69 6e 74 2c 20 2f 73 |ies to print, /s| 0007f210 65 71 2f 20 73 68 6f 75 6c 64 20 62 65 20 7a 65 |eq/ should be ze| 0007f220 72 6f 2c 20 6f 72 20 63 6f 6e 74 61 69 6e 20 74 |ro, or contain t| 0007f230 68 65 20 70 61 67 65 20 6e 75 6d 62 65 72 2c 20 |he page number, | 0007f240 2f 70 61 67 65 2f 20 73 68 6f 75 6c 64 20 62 65 |/page/ should be| 0007f250 20 3c 4e 55 4c 4c 3e 20 6f 72 20 67 69 76 65 20 | <NULL> or give | 0007f260 74 68 65 20 70 61 67 65 20 6e 75 6d 62 65 72 20 |the page number | 0007f270 69 6e 20 74 65 78 74 20 66 6f 72 6d 2e 0a 0a 4f |in text form...O| 0007f280 6e 20 72 65 74 75 72 6e 2c 20 2f 72 65 63 74 2f |n return, /rect/| 0007f290 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 72 65 | contains the re| 0007f2a0 63 74 61 6e 67 6c 65 20 74 6f 20 62 65 20 70 72 |ctangle to be pr| 0007f2b0 69 6e 74 65 64 20 28 69 6e 20 4f 53 20 75 6e 69 |inted (in OS uni| 0007f2c0 74 73 29 20 5f 77 69 74 68 69 6e 5f 20 74 68 65 |ts) _within_ the| 0007f2d0 20 72 65 63 74 61 6e 67 6c 65 20 77 68 6f 73 65 | rectangle whose| 0007f2e0 20 69 64 20 69 73 20 72 65 74 75 72 6e 65 64 20 | id is returned | 0007f2f0 69 6e 20 7b 2f 7d 72 65 63 74 5f 69 64 7b 2f 7d |in {/}rect_id{/}| 0007f300 2e 20 2f 66 69 6e 69 73 68 2f 20 63 6f 6e 74 61 |. /finish/ conta| 0007f310 69 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f |ins the number o| 0007f320 66 20 63 6f 70 69 65 73 20 73 74 69 6c 6c 20 74 |f copies still t| 0007f330 6f 20 62 65 20 70 72 69 6e 74 65 64 20 68 65 6e |o be printed hen| 0007f340 63 65 20 69 74 20 69 73 20 7a 65 72 6f 20 77 68 |ce it is zero wh| 0007f350 65 6e 20 74 68 65 20 6a 6f 62 20 69 73 20 66 69 |en the job is fi| 0007f360 6e 69 73 68 65 64 2e 0a 0a 41 66 74 65 72 20 70 |nished...After p| 0007f370 6c 6f 74 74 69 6e 67 20 74 68 65 20 70 61 67 65 |lotting the page| 0007f380 20 75 73 69 6e 67 20 6e 6f 72 6d 61 6c 20 70 6c | using normal pl| 0007f390 6f 74 74 69 6e 67 20 72 6f 75 74 69 6e 65 73 20 |otting routines | 0007f3a0 28 77 68 69 63 68 20 74 68 65 20 70 72 69 6e 74 |(which the print| 0007f3b0 65 72 20 64 72 69 76 65 72 20 77 69 6c 6c 20 69 |er driver will i| 0007f3c0 6e 74 65 72 63 65 70 74 29 2c 20 79 6f 75 20 73 |ntercept), you s| 0007f3d0 68 6f 75 6c 64 20 63 61 6c 6c 20 3c 70 72 69 6e |hould call <prin| 0007f3e0 74 5f 67 65 74 72 65 63 74 61 6e 67 6c 65 3e 2e |t_getrectangle>.| 0007f3f0 44 41 54 41 0d 01 00 00 70 72 69 6e 74 5f 65 6e |DATA....print_en| 0007f400 64 6a 6f 62 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |djob.Syntax:.<os| 0007f410 5f 65 72 72 6f 72 3e 20 2a 70 72 69 6e 74 5f 65 |_error> *print_e| 0007f420 6e 64 6a 6f 62 20 28 69 6e 74 20 6a 6f 62 29 3b |ndjob (int job);| 0007f430 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e |.Header:.<print.| 0007f440 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 |h=>print>..Retur| 0007f450 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 0007f460 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 0007f470 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 0007f480 75 6e 63 74 69 6f 6e 20 65 6e 64 73 20 61 20 70 |unction ends a p| 0007f490 72 69 6e 74 20 6a 6f 62 20 6e 6f 72 6d 61 6c 6c |rint job normall| 0007f4a0 79 2e 20 54 68 69 73 20 6d 61 79 20 72 65 73 75 |y. This may resu| 0007f4b0 6c 74 20 69 6e 20 66 75 72 74 68 65 72 20 70 72 |lt in further pr| 0007f4c0 69 6e 74 65 72 20 6f 75 74 70 75 74 20 28 61 20 |inter output (a | 0007f4d0 50 6f 73 74 53 63 72 69 70 74 20 70 72 69 6e 74 |PostScript print| 0007f4e0 65 72 20 64 72 69 76 65 72 20 6f 75 74 70 75 74 |er driver output| 0007f4f0 73 20 61 20 74 72 61 69 6c 65 72 29 2e 00 00 00 |s a trailer)....| 0007f500 44 41 54 41 40 03 00 00 70 72 69 6e 74 5f 66 65 |DATA@...print_fe| 0007f510 61 74 75 72 65 73 0a 54 68 69 73 20 69 73 20 61 |atures.This is a| 0007f520 20 75 6e 69 6f 6e 20 64 65 66 69 6e 65 64 20 62 | union defined b| 0007f530 79 20 3c 44 65 73 6b 4c 69 62 3a 50 44 72 69 76 |y <DeskLib:PDriv| 0007f540 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 3e 20 74 |er.h=>PDriver> t| 0007f550 6f 20 63 6f 6e 74 61 69 6e 20 70 72 69 6e 74 65 |o contain printe| 0007f560 72 20 64 72 69 76 65 72 20 66 65 61 74 75 72 65 |r driver feature| 0007f570 73 2c 20 62 6f 74 68 20 61 73 20 61 20 76 61 6c |s, both as a val| 0007f580 75 65 20 61 6e 64 20 61 73 20 69 6e 64 69 76 69 |ue and as indivi| 0007f590 64 75 61 6c 20 62 69 74 73 2e 20 49 74 20 69 73 |dual bits. It is| 0007f5a0 20 61 6c 73 6f 20 61 6e 20 3c 65 6e 75 6d 65 72 | also an <enumer| 0007f5b0 61 74 65 64 20 74 79 70 65 3d 3e 70 72 69 6e 74 |ated type=>print| 0007f5c0 5f 66 65 61 74 75 72 65 73 5f 3e 20 64 65 66 69 |_features_> defi| 0007f5d0 6e 65 64 20 62 79 20 3c 70 72 69 6e 74 2e 68 3d |ned by <print.h=| 0007f5e0 3e 70 72 69 6e 74 3e 20 28 44 65 73 6b 74 6f 70 |>print> (Desktop| 0007f5f0 20 43 29 2e 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 | C)... \{. | 0007f600 20 20 20 20 20 69 6e 74 20 76 61 6c 75 65 3b 0a | int value;.| 0007f610 20 20 20 20 20 20 20 20 73 74 72 75 63 74 0a 20 | struct. | 0007f620 20 20 20 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 | \{. | 0007f630 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 0007f640 6e 74 20 63 6f 6c 6f 75 72 09 3a 20 31 3b 0a 20 |nt colour.: 1;. | 0007f650 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 69 67 | unsig| 0007f660 6e 65 64 20 69 6e 74 20 6c 69 6d 69 74 65 64 09 |ned int limited.| 0007f670 3a 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 |: 1;. | 0007f680 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 69 | unsigned int di| 0007f690 73 63 72 65 74 65 09 3a 20 31 3b 0a 20 20 20 20 |screte.: 1;. | 0007f6a0 20 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 | unsigned| 0007f6b0 20 69 6e 74 20 66 69 6c 6c 65 72 31 09 3a 20 35 | int filler1.: 5| 0007f6c0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e |;. un| 0007f6d0 73 69 67 6e 65 64 20 69 6e 74 20 6e 6f 66 69 6c |signed int nofil| 0007f6e0 6c 09 3a 20 31 3b 0a 20 20 20 20 20 20 20 20 20 |l.: 1;. | 0007f6f0 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 0007f700 6e 6f 74 68 69 63 6b 6e 65 73 73 09 3a 20 31 3b |nothickness.: 1;| 0007f710 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 |. uns| 0007f720 69 67 6e 65 64 20 69 6e 74 20 6e 6f 6f 76 65 72 |igned int noover| 0007f730 77 72 69 74 65 09 3a 20 31 3b 0a 20 20 20 20 20 |write.: 1;. | 0007f740 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 | unsigned | 0007f750 69 6e 74 20 66 69 6c 6c 65 72 32 09 3a 20 35 3b |int filler2.: 5;| 0007f760 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 |. uns| 0007f770 69 67 6e 65 64 20 69 6e 74 20 66 69 6c 6c 65 72 |igned int filler| 0007f780 33 09 3a 20 38 3b 0a 20 20 20 20 20 20 20 20 20 |3.: 8;. | 0007f790 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 0007f7a0 73 63 72 65 65 6e 64 75 6d 70 09 3a 20 31 3b 0a |screendump.: 1;.| 0007f7b0 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 69 | unsi| 0007f7c0 67 6e 65 64 20 69 6e 74 20 74 72 61 6e 73 66 6f |gned int transfo| 0007f7d0 72 6d 73 09 3a 20 31 3b 0a 20 20 20 20 20 20 20 |rms.: 1;. | 0007f7e0 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e | unsigned in| 0007f7f0 74 20 69 6c 6c 75 73 74 72 61 74 69 6f 6e 73 09 |t illustrations.| 0007f800 3a 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 |: 1;. | 0007f810 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 69 | unsigned int fi| 0007f820 6c 6c 65 72 34 09 3a 20 35 3b 0a 20 20 20 20 20 |ller4.: 5;. | 0007f830 20 20 20 7d 20 64 61 74 61 3b 0a 20 20 20 20 7d | } data;. }| 0007f840 44 41 54 41 1e 01 00 00 70 72 69 6e 74 5f 66 65 |DATA....print_fe| 0007f850 61 74 75 72 65 73 0a 5c 7b 0a 20 20 20 20 70 72 |atures.\{. pr| 0007f860 69 6e 74 5f 63 6f 6c 6f 75 72 09 3d 20 30 78 30 |int_colour.= 0x0| 0007f870 30 30 30 30 30 31 2c 0a 20 20 20 20 70 72 69 6e |000001,. prin| 0007f880 74 5f 6c 69 6d 69 74 65 64 09 3d 20 30 78 30 30 |t_limited.= 0x00| 0007f890 30 30 30 30 32 2c 0a 20 20 20 20 70 72 69 6e 74 |00002,. print| 0007f8a0 5f 64 69 73 63 72 65 74 65 09 3d 20 30 78 30 30 |_discrete.= 0x00| 0007f8b0 30 30 30 30 34 2c 0a 20 20 20 20 70 72 69 6e 74 |00004,. print| 0007f8c0 5f 4e 4f 46 49 4c 4c 09 3d 20 30 78 30 30 30 30 |_NOFILL.= 0x0000| 0007f8d0 31 30 30 2c 0a 20 20 20 20 70 72 69 6e 74 5f 4e |100,. print_N| 0007f8e0 4f 54 48 49 43 4b 4e 45 53 53 09 3d 20 30 78 30 |OTHICKNESS.= 0x0| 0007f8f0 30 30 30 32 30 30 2c 0a 20 20 20 20 70 72 69 6e |000200,. prin| 0007f900 74 5f 4e 4f 4f 56 45 52 57 52 49 54 45 09 3d 20 |t_NOOVERWRITE.= | 0007f910 30 78 30 30 30 30 34 30 30 2c 0a 20 20 20 20 70 |0x0000400,. p| 0007f920 72 69 6e 74 5f 53 43 52 45 45 4e 44 55 4d 50 09 |rint_SCREENDUMP.| 0007f930 3d 20 30 78 31 30 30 30 30 30 30 2c 0a 20 20 20 |= 0x1000000,. | 0007f940 20 70 72 69 6e 74 5f 54 52 41 4e 53 46 4f 52 4d | print_TRANSFORM| 0007f950 09 3d 20 30 78 32 30 30 30 30 30 30 0a 7d 00 00 |.= 0x2000000.}..| 0007f960 44 41 54 41 13 02 00 00 70 72 69 6e 74 5f 67 65 |DATA....print_ge| 0007f970 74 72 65 63 74 61 6e 67 6c 65 0a 53 79 6e 74 61 |trectangle.Synta| 0007f980 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 70 |x:.<os_error> *p| 0007f990 72 69 6e 74 5f 67 65 74 72 65 63 74 61 6e 67 6c |rint_getrectangl| 0007f9a0 65 20 28 3c 70 72 69 6e 74 5f 62 6f 78 3e 20 2a |e (<print_box> *| 0007f9b0 72 65 63 74 2c 20 69 6e 74 20 2a 66 69 6e 69 73 |rect, int *finis| 0007f9c0 68 2c 20 69 6e 74 20 2a 72 65 63 74 5f 69 64 29 |h, int *rect_id)| 0007f9d0 3b 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 |;.Header:.<print| 0007f9e0 2e 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 |.h=>print>..Retu| 0007f9f0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0007fa00 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0007fa10 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0007fa20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 |function should | 0007fa30 62 65 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 |be called after | 0007fa40 3c 70 72 69 6e 74 5f 64 72 61 77 70 61 67 65 3e |<print_drawpage>| 0007fa50 2c 20 61 6e 64 20 74 68 65 6e 20 63 61 6c 6c 65 |, and then calle| 0007fa60 64 20 72 65 70 65 61 74 65 64 6c 79 20 75 6e 74 |d repeatedly unt| 0007fa70 69 6c 20 2f 66 69 6e 69 73 68 2f 20 72 65 74 75 |il /finish/ retu| 0007fa80 72 6e 73 20 7a 65 72 6f 2e 0a 0a 4f 6e 20 72 65 |rns zero...On re| 0007fa90 74 75 72 6e 2c 20 2f 72 65 63 74 2f 20 63 6f 6e |turn, /rect/ con| 0007faa0 74 61 69 6e 73 20 74 68 65 20 72 65 63 74 61 6e |tains the rectan| 0007fab0 67 6c 65 20 74 6f 20 62 65 20 70 72 69 6e 74 65 |gle to be printe| 0007fac0 64 20 28 69 6e 20 4f 53 20 75 6e 69 74 73 29 20 |d (in OS units) | 0007fad0 5f 77 69 74 68 69 6e 5f 20 74 68 65 20 72 65 63 |_within_ the rec| 0007fae0 74 61 6e 67 6c 65 20 77 68 6f 73 65 20 69 64 20 |tangle whose id | 0007faf0 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b |is returned in {| 0007fb00 2f 7d 72 65 63 74 5f 69 64 7b 2f 7d 2e 20 2f 66 |/}rect_id{/}. /f| 0007fb10 69 6e 69 73 68 2f 20 63 6f 6e 74 61 69 6e 73 20 |inish/ contains | 0007fb20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f |the number of co| 0007fb30 70 69 65 73 20 73 74 69 6c 6c 20 74 6f 20 62 65 |pies still to be| 0007fb40 20 70 72 69 6e 74 65 64 20 68 65 6e 63 65 20 69 | printed hence i| 0007fb50 74 20 69 73 20 7a 65 72 6f 20 77 68 65 6e 20 74 |t is zero when t| 0007fb60 68 65 20 6a 6f 62 20 69 73 20 66 69 6e 69 73 68 |he job is finish| 0007fb70 65 64 2e 00 44 41 54 41 df 02 00 00 70 72 69 6e |ed..DATA....prin| 0007fb80 74 5f 67 69 76 65 72 65 63 74 61 6e 67 6c 65 0a |t_giverectangle.| 0007fb90 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0007fba0 72 3e 20 2a 70 72 69 6e 74 5f 67 69 76 65 72 65 |r> *print_givere| 0007fbb0 63 74 61 6e 67 6c 65 20 28 69 6e 74 20 72 65 63 |ctangle (int rec| 0007fbc0 74 5f 69 64 2c 20 3c 70 72 69 6e 74 5f 62 6f 78 |t_id, <print_box| 0007fbd0 3e 20 2a 72 65 63 74 2c 20 3c 70 72 69 6e 74 5f |> *rect, <print_| 0007fbe0 74 72 61 6e 73 6d 61 74 73 74 72 3e 20 2a 6d 61 |transmatstr> *ma| 0007fbf0 74 72 69 78 2c 20 3c 70 72 69 6e 74 5f 70 6f 73 |trix, <print_pos| 0007fc00 69 74 69 6f 6e 73 74 72 3e 20 2a 70 6f 73 2c 20 |itionstr> *pos, | 0007fc10 69 6e 74 20 62 61 63 6b 63 6f 6c 29 3b 0a 48 65 |int backcol);.He| 0007fc20 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e 68 3d 3e |ader:.<print.h=>| 0007fc30 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 3a |print>..Returns:| 0007fc40 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0007fc50 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0007fc60 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0007fc70 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 61 6e 20 61 |tion allows an a| 0007fc80 70 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 74 65 |pplication to te| 0007fc90 6c 6c 20 74 68 65 20 70 72 69 6e 74 65 72 20 64 |ll the printer d| 0007fca0 72 69 76 65 72 20 77 68 61 74 20 69 74 20 77 61 |river what it wa| 0007fcb0 6e 74 73 20 74 6f 20 70 72 69 6e 74 2e 0a 0a 7b |nts to print...{| 0007fcc0 2f 7d 72 65 63 74 5f 69 64 7b 2f 7d 09 69 73 20 |/}rect_id{/}.is | 0007fcd0 61 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 76 |a user-defined v| 0007fce0 61 6c 75 65 20 74 6f 20 69 64 65 6e 74 69 66 79 |alue to identify| 0007fcf0 20 65 61 63 68 20 72 65 63 74 61 6e 67 6c 65 20 | each rectangle | 0007fd00 79 6f 75 20 73 65 6e 64 2e 0a 2f 72 65 63 74 2f |you send../rect/| 0007fd10 09 64 65 66 69 6e 65 73 20 74 68 65 20 72 65 63 |.defines the rec| 0007fd20 74 61 6e 67 6c 65 20 74 6f 20 62 65 20 70 72 69 |tangle to be pri| 0007fd30 6e 74 65 64 20 69 6e 20 4f 53 20 75 6e 69 74 73 |nted in OS units| 0007fd40 2e 0a 2f 6d 61 74 72 69 78 2f 09 69 73 20 74 68 |../matrix/.is th| 0007fd50 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e |e transformation| 0007fd60 20 6d 61 74 72 69 78 2e 0a 2f 70 6f 73 2f 09 69 | matrix../pos/.i| 0007fd70 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f |s the position o| 0007fd80 6e 20 74 68 65 20 70 61 67 65 20 69 6e 20 6d 69 |n the page in mi| 0007fd90 6c 6c 69 70 6f 69 6e 74 73 20 28 6f 66 20 74 68 |llipoints (of th| 0007fda0 65 20 62 6f 74 74 6f 6d 20 6c 65 66 74 29 2e 0a |e bottom left)..| 0007fdb0 2f 62 61 63 6b 63 6f 6c 2f 09 73 70 65 63 69 66 |/backcol/.specif| 0007fdc0 69 65 73 20 74 68 65 20 62 61 63 6b 67 72 6f 75 |ies the backgrou| 0007fdd0 6e 64 20 63 6f 6c 6f 75 72 2c 20 69 6e 20 74 68 |nd colour, in th| 0007fde0 65 20 66 6f 72 6d 20 30 78 42 42 47 47 52 52 30 |e form 0xBBGGRR0| 0007fdf0 30 2e 0a 0a 41 6e 20 61 70 70 6c 69 63 61 74 69 |0...An applicati| 0007fe00 6f 6e 20 73 68 6f 75 6c 64 20 6d 61 6b 65 20 6f |on should make o| 0007fe10 6e 65 20 6f 72 20 6d 6f 72 65 20 63 61 6c 6c 73 |ne or more calls| 0007fe20 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f | to this functio| 0007fe30 6e 2c 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e |n, before callin| 0007fe40 67 20 3c 70 72 69 6e 74 5f 64 72 61 77 70 61 67 |g <print_drawpag| 0007fe50 65 3e 2e 00 44 41 54 41 e7 00 00 00 70 72 69 6e |e>..DATA....prin| 0007fe60 74 5f 69 64 65 6e 74 69 74 79 0a 54 68 69 73 20 |t_identity.This | 0007fe70 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 0007fe80 69 6e 20 3c 70 72 69 6e 74 2e 68 3d 3e 70 72 69 |in <print.h=>pri| 0007fe90 6e 74 3e 2e 20 49 74 20 69 73 20 61 6e 20 65 6e |nt>. It is an en| 0007fea0 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 6c 69 |umerated type li| 0007feb0 73 74 69 6e 67 20 74 68 65 20 64 69 66 66 65 72 |sting the differ| 0007fec0 65 6e 74 20 70 72 69 6e 74 65 72 20 74 79 70 65 |ent printer type| 0007fed0 73 20 61 76 61 69 6c 61 62 6c 65 2e 20 49 74 20 |s available. It | 0007fee0 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 66 6f |is defined as fo| 0007fef0 6c 6c 6f 77 73 3a 0a 0a 20 20 20 5c 7b 0a 20 20 |llows:.. \{. | 0007ff00 20 20 20 70 72 69 6e 74 5f 50 6f 73 74 53 63 72 | print_PostScr| 0007ff10 69 70 74 09 3d 20 30 2c 0a 20 20 20 20 20 70 72 |ipt.= 0,. pr| 0007ff20 69 6e 74 5f 46 58 38 30 63 6f 6d 70 61 74 69 62 |int_FX80compatib| 0007ff30 6c 65 09 3d 20 31 0a 20 20 20 7d 00 44 41 54 41 |le.= 1. }.DATA| 0007ff40 63 01 00 00 70 72 69 6e 74 5f 69 6e 66 6f 0a 53 |c...print_info.S| 0007ff50 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 0007ff60 3e 20 2a 70 72 69 6e 74 5f 69 6e 66 6f 20 28 3c |> *print_info (<| 0007ff70 70 72 69 6e 74 5f 69 6e 66 6f 73 74 72 3e 20 2a |print_infostr> *| 0007ff80 62 6c 6f 63 6b 29 3b 0a 48 65 61 64 65 72 3a 09 |block);.Header:.| 0007ff90 3c 70 72 69 6e 74 2e 68 3d 3e 70 72 69 6e 74 3e |<print.h=>print>| 0007ffa0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 0007ffb0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 0007ffc0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 0007ffd0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 |.This function g| 0007ffe0 65 74 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 |ets information | 0007fff0 6f 6e 20 74 68 65 20 70 72 69 6e 74 65 72 20 64 |on the printer d| 00080000 72 69 76 65 72 2e 20 49 74 20 61 6c 6c 6f 77 73 |river. It allows| 00080010 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 00080020 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 77 | to change the w| 00080030 61 79 20 69 74 20 6f 75 74 70 75 74 73 20 69 74 |ay it outputs it| 00080040 73 20 64 61 74 61 20 74 6f 20 73 75 69 74 20 74 |s data to suit t| 00080050 68 65 20 70 72 69 6e 74 65 72 2e 20 54 68 65 20 |he printer. The | 00080060 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 72 |information is r| 00080070 65 74 75 72 6e 65 64 20 69 6e 20 74 68 65 20 73 |eturned in the s| 00080080 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65 64 |tructure pointed| 00080090 20 74 6f 20 62 79 20 2f 62 6c 6f 63 6b 2f 2e 00 | to by /block/..| 000800a0 44 41 54 41 e9 01 00 00 70 72 69 6e 74 5f 69 6e |DATA....print_in| 000800b0 66 6f 73 74 72 0a 54 68 69 73 20 73 74 72 75 63 |fostr.This struc| 000800c0 74 75 72 65 20 69 73 20 64 65 66 69 6e 65 64 20 |ture is defined | 000800d0 62 79 20 3c 70 72 69 6e 74 65 72 2e 68 3d 3e 70 |by <printer.h=>p| 000800e0 72 69 6e 74 65 72 3e 20 61 73 20 61 20 73 74 72 |rinter> as a str| 000800f0 75 63 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e |ucture containin| 00080100 67 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f |g the informatio| 00080110 6e 20 72 65 74 75 72 6e 65 64 20 62 79 20 3c 70 |n returned by <p| 00080120 72 69 6e 74 65 72 5f 69 6e 66 6f 3e 2e 0a 0a 20 |rinter_info>... | 00080130 20 20 20 5c 7b 0a 20 20 20 20 20 20 20 20 73 68 | \{. sh| 00080140 6f 72 74 20 69 6e 74 20 76 65 72 73 69 6f 6e 3b |ort int version;| 00080150 0a 20 20 20 20 20 20 20 20 73 68 6f 72 74 20 69 |. short i| 00080160 6e 74 20 69 64 65 6e 74 69 74 79 3b 0a 20 20 20 |nt identity;. | 00080170 20 20 20 20 20 69 6e 74 20 78 72 65 73 2c 79 72 | int xres,yr| 00080180 65 73 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 |es;. int | 00080190 66 65 61 74 75 72 65 73 3b 0a 20 20 20 20 20 20 |features;. | 000801a0 20 20 63 68 61 72 20 2a 64 65 73 63 72 69 70 74 | char *descript| 000801b0 69 6f 6e 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 |ion;. int| 000801c0 20 78 68 61 6c 66 2c 20 79 68 61 6c 66 3b 0a 20 | xhalf, yhalf;. | 000801d0 20 20 20 20 20 20 20 69 6e 74 20 6e 75 6d 62 65 | int numbe| 000801e0 72 3b 0a 20 20 20 20 7d 0a 0a 2f 76 65 72 73 69 |r;. }../versi| 000801f0 6f 6e 2f 20 69 73 20 74 68 65 20 76 65 72 73 69 |on/ is the versi| 00080200 6f 6e 20 6e 75 6d 62 65 72 20 2a 20 31 30 30 2e |on number * 100.| 00080210 0a 28 78 72 65 73 2c 79 72 65 73 29 20 67 69 76 |.(xres,yres) giv| 00080220 65 73 20 78 20 61 6e 64 20 79 20 72 65 73 20 69 |es x and y res i| 00080230 6e 20 64 70 69 2e 0a 28 78 68 61 6c 66 2c 79 68 |n dpi..(xhalf,yh| 00080240 61 6c 66 29 20 68 61 6c 66 74 6f 6e 65 20 72 65 |alf) halftone re| 00080250 73 20 69 6e 20 72 65 70 65 61 74 73 20 70 65 72 |s in repeats per| 00080260 20 69 6e 63 68 2e 0a 2f 6e 75 6d 62 65 72 2f 20 | inch../number/ | 00080270 69 73 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 |is for internal | 00080280 75 73 65 20 6f 6e 6c 79 2e 00 00 00 44 41 54 41 |use only....DATA| 00080290 aa 00 00 00 70 72 69 6e 74 5f 6a 6f 62 0a 54 68 |....print_job.Th| 000802a0 65 20 74 79 70 65 20 7b 2a 7d 70 72 69 6e 74 5f |e type {*}print_| 000802b0 6a 6f 62 7b 2a 7d 20 69 73 20 64 65 66 69 6e 65 |job{*} is define| 000802c0 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 50 44 |d in <DeskLib:PD| 000802d0 72 69 76 65 72 2e 68 3d 3e 50 44 72 69 76 65 72 |river.h=>PDriver| 000802e0 3e 20 61 73 20 61 20 74 79 70 65 20 63 61 70 61 |> as a type capa| 000802f0 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 |ble of holding a| 00080300 20 70 72 69 6e 74 20 6a 6f 62 20 68 61 6e 64 6c | print job handl| 00080310 65 2e 20 49 74 20 69 73 20 61 63 74 75 61 6c 6c |e. It is actuall| 00080320 79 20 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 |y defined as an | 00080330 2f 69 6e 74 2f 2e 00 00 44 41 54 41 63 01 00 00 |/int/...DATAc...| 00080340 70 72 69 6e 74 5f 70 61 67 65 73 69 7a 65 0a 53 |print_pagesize.S| 00080350 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 00080360 3e 20 2a 70 72 69 6e 74 5f 70 61 67 65 73 69 7a |> *print_pagesiz| 00080370 65 20 28 3c 70 72 69 6e 74 5f 70 61 67 65 73 69 |e (<print_pagesi| 00080380 7a 65 73 74 72 3e 20 2a 73 69 7a 65 29 3b 0a 48 |zestr> *size);.H| 00080390 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e 68 3d |eader:.<print.h=| 000803a0 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 6e 73 |>print>..Returns| 000803b0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000803c0 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000803d0 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000803e0 63 74 69 6f 6e 20 66 69 6e 64 73 20 68 6f 77 20 |ction finds how | 000803f0 6c 61 72 67 65 20 74 68 65 20 70 61 70 65 72 20 |large the paper | 00080400 61 6e 64 20 70 72 69 6e 74 20 61 72 65 61 20 69 |and print area i| 00080410 73 2e 20 4f 6e 20 65 78 69 74 2c 20 2f 73 69 7a |s. On exit, /siz| 00080420 65 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 |e/ contains the | 00080430 70 61 70 65 72 20 73 69 7a 65 20 69 6e 20 6d 69 |paper size in mi| 00080440 6c 6c 69 70 6f 69 6e 74 73 2c 20 61 6e 64 20 74 |llipoints, and t| 00080450 68 65 20 70 72 69 6e 74 61 62 6c 65 20 72 65 63 |he printable rec| 00080460 74 61 6e 67 6c 65 20 28 6f 72 69 67 69 6e 20 61 |tangle (origin a| 00080470 74 20 62 6f 74 74 6f 6d 20 6c 65 66 74 2c 20 63 |t bottom left, c| 00080480 6f 6f 72 64 69 6e 61 74 65 73 20 69 6e 20 6d 69 |oordinates in mi| 00080490 6c 6c 69 70 6f 69 6e 74 73 29 2e 00 44 41 54 41 |llipoints)..DATA| 000804a0 09 01 00 00 70 72 69 6e 74 5f 70 61 67 65 73 69 |....print_pagesi| 000804b0 7a 65 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 |zestr.This type | 000804c0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 70 |is defined in <p| 000804d0 72 69 6e 74 2e 68 3d 3e 70 72 69 6e 74 3e 2e 20 |rint.h=>print>. | 000804e0 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 |It is a structur| 000804f0 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 70 |e containing a p| 00080500 61 67 65 20 61 6e 64 20 69 74 73 20 6d 61 72 67 |age and its marg| 00080510 69 6e 73 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 |ins... \{. i| 00080520 6e 74 20 78 73 69 7a 65 2c 20 79 73 69 7a 65 3b |nt xsize, ysize;| 00080530 0a 20 20 20 20 3c 70 72 69 6e 74 5f 62 6f 78 3e |. <print_box>| 00080540 20 62 62 6f 78 3b 0a 20 20 7d 0a 0a 7b 2f 7d 28 | bbox;. }..{/}(| 00080550 78 73 69 7a 65 2c 79 73 69 7a 65 29 7b 2f 7d 20 |xsize,ysize){/} | 00080560 69 73 20 74 68 65 20 70 61 67 65 20 73 69 7a 65 |is the page size| 00080570 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 6e 74 73 2e | in millipoints.| 00080580 0a 2f 62 62 6f 78 2f 20 69 73 20 74 68 65 20 61 |./bbox/ is the a| 00080590 63 74 75 61 6c 20 70 72 69 6e 74 61 62 6c 65 20 |ctual printable | 000805a0 61 72 65 61 2e 00 00 00 44 41 54 41 92 00 00 00 |area....DATA....| 000805b0 70 72 69 6e 74 5f 70 6f 73 69 74 69 6f 6e 73 74 |print_positionst| 000805c0 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |r.This type is d| 000805d0 65 66 69 6e 65 64 20 69 6e 20 3c 70 72 69 6e 74 |efined in <print| 000805e0 65 72 2e 68 3d 3e 70 72 69 6e 74 65 72 3e 2e 20 |er.h=>printer>. | 000805f0 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 |It is a structur| 00080600 65 20 67 69 76 69 6e 67 20 61 6e 20 61 62 69 74 |e giving an abit| 00080610 72 61 72 79 20 63 6f 6f 72 64 69 6e 61 74 65 3a |rary coordinate:| 00080620 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 20 64 |.. \{. int d| 00080630 78 2c 20 64 79 3b 0a 20 20 7d 00 00 44 41 54 41 |x, dy;. }..DATA| 00080640 a9 00 00 00 70 72 69 6e 74 5f 72 65 73 65 74 0a |....print_reset.| 00080650 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00080660 72 3e 20 2a 70 72 69 6e 74 5f 72 65 73 65 74 20 |r> *print_reset | 00080670 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 00080680 3c 70 72 69 6e 74 2e 68 3d 3e 70 72 69 6e 74 3e |<print.h=>print>| 00080690 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000806a0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000806b0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 000806c0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 |.This function a| 000806d0 62 6f 72 74 73 20 61 6c 6c 20 70 72 69 6e 74 20 |borts all print | 000806e0 6a 6f 62 73 2e 00 00 00 44 41 54 41 69 01 00 00 |jobs....DATAi...| 000806f0 70 72 69 6e 74 5f 73 63 72 65 65 6e 64 75 6d 70 |print_screendump| 00080700 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00080710 6f 72 3e 20 2a 70 72 69 6e 74 5f 73 63 72 65 65 |or> *print_scree| 00080720 6e 64 75 6d 70 20 28 69 6e 74 20 6a 6f 62 29 3b |ndump (int job);| 00080730 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e |.Header:.<print.| 00080740 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 |h=>print>..Retur| 00080750 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00080760 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00080770 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00080780 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 73 20 74 68 |unction makes th| 00080790 65 20 70 72 69 6e 74 65 72 20 64 72 69 76 65 72 |e printer driver| 000807a0 20 6f 75 74 70 75 74 20 61 20 73 63 72 65 65 6e | output a screen| 000807b0 20 64 75 6d 70 20 74 6f 20 74 68 65 20 6a 6f 62 | dump to the job| 000807c0 20 67 69 76 65 6e 2e 20 4e 6f 74 65 20 74 68 61 | given. Note tha| 000807d0 74 20 6e 6f 6e 65 20 6f 66 20 74 68 65 20 73 74 |t none of the st| 000807e0 61 6e 64 61 72 64 20 41 63 6f 72 6e 20 64 72 69 |andard Acorn dri| 000807f0 76 65 72 73 20 73 75 70 70 6f 72 74 20 74 68 69 |vers support thi| 00080800 73 20 66 65 61 74 75 72 65 20 28 63 68 65 63 6b |s feature (check| 00080810 20 74 68 65 20 66 65 61 74 75 72 65 73 20 66 69 | the features fi| 00080820 72 73 74 20 75 73 69 6e 67 20 3c 70 72 69 6e 74 |rst using <print| 00080830 5f 63 68 65 63 6b 66 65 61 74 75 72 65 73 3e 20 |_checkfeatures> | 00080840 6f 72 20 3c 70 72 69 6e 74 5f 69 6e 66 6f 3e 29 |or <print_info>)| 00080850 2e 00 00 00 44 41 54 41 7f 01 00 00 70 72 69 6e |....DATA....prin| 00080860 74 5f 73 65 6c 65 63 74 69 6c 6c 75 73 74 72 61 |t_selectillustra| 00080870 74 69 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |tion.Syntax:.<os| 00080880 5f 65 72 72 6f 72 3e 20 2a 70 72 69 6e 74 5f 73 |_error> *print_s| 00080890 65 6c 65 63 74 69 6c 6c 75 73 74 72 61 74 69 6f |electillustratio| 000808a0 6e 20 28 69 6e 74 20 6e 65 77 2c 20 63 68 61 72 |n (int new, char| 000808b0 20 2a 74 69 74 6c 65 2c 20 69 6e 74 20 2a 6f 6c | *title, int *ol| 000808c0 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 |d);.Header:.<pri| 000808d0 6e 74 2e 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 |nt.h=>print>..Re| 000808e0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000808f0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 00080900 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 00080910 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 |s function does | 00080920 74 68 65 20 73 61 6d 65 20 61 73 20 3c 70 72 69 |the same as <pri| 00080930 6e 74 5f 73 65 6c 65 63 74 6a 6f 62 3e 2c 20 65 |nt_selectjob>, e| 00080940 78 63 65 70 74 20 74 68 61 74 20 69 66 20 61 20 |xcept that if a | 00080950 6e 65 77 20 70 72 69 6e 74 20 6a 6f 62 20 69 73 |new print job is| 00080960 20 73 74 61 72 74 65 64 3a 0a 7b 74 61 62 7d 0a | started:.{tab}.| 00080970 8f 09 49 74 20 6d 75 73 74 20 62 65 20 6f 6e 6c |..It must be onl| 00080980 79 20 6f 6e 65 20 70 61 67 65 20 6c 6f 6e 67 2e |y one page long.| 00080990 0a 8f 09 4f 75 74 70 75 74 20 6d 61 79 20 64 69 |...Output may di| 000809a0 66 66 65 72 20 65 67 20 45 50 53 20 69 6e 73 74 |ffer eg EPS inst| 000809b0 65 61 64 20 6f 66 20 50 6f 73 74 53 63 72 69 70 |ead of PostScrip| 000809c0 74 2e 0a 0a 52 49 53 43 20 4f 53 20 33 20 6f 6e |t...RISC OS 3 on| 000809d0 6c 79 2e 00 44 41 54 41 3a 02 00 00 70 72 69 6e |ly..DATA:...prin| 000809e0 74 5f 73 65 6c 65 63 74 6a 6f 62 0a 53 79 6e 74 |t_selectjob.Synt| 000809f0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00080a00 70 72 69 6e 74 5f 73 65 6c 65 63 74 6a 6f 62 20 |print_selectjob | 00080a10 28 69 6e 74 20 6e 65 77 2c 20 63 68 61 72 20 2a |(int new, char *| 00080a20 74 69 74 6c 65 2c 20 69 6e 74 20 2a 6f 6c 64 29 |title, int *old)| 00080a30 3b 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 |;.Header:.<print| 00080a40 2e 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 |.h=>print>..Retu| 00080a50 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00080a60 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00080a70 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00080a80 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 73 20 61 |function makes a| 00080a90 20 67 69 76 65 6e 20 70 72 69 6e 74 20 6a 6f 62 | given print job| 00080aa0 20 74 68 65 20 63 75 72 72 65 6e 74 20 6f 6e 65 | the current one| 00080ab0 2e 20 54 68 65 20 6a 6f 62 20 69 73 20 69 64 65 |. The job is ide| 00080ac0 6e 74 69 66 69 65 64 20 62 79 20 2f 6e 65 77 2f |ntified by /new/| 00080ad0 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 61 | which must be a| 00080ae0 20 66 69 6c 65 20 28 65 67 20 7b 2a 7d 70 72 69 | file (eg {*}pri| 00080af0 6e 74 65 72 3a 7b 2a 7d 29 20 70 72 65 76 69 6f |nter:{*}) previo| 00080b00 75 73 6c 79 20 6f 70 65 6e 65 64 20 66 6f 72 20 |usly opened for | 00080b10 6f 75 74 70 75 74 2e 20 2f 74 69 74 6c 65 2f 20 |output. /title/ | 00080b20 67 69 76 65 73 20 61 20 68 75 6d 61 6e 2d 72 65 |gives a human-re| 00080b30 61 64 61 62 6c 65 20 6e 61 6d 65 20 66 6f 72 20 |adable name for | 00080b40 74 68 65 20 6a 6f 62 2e 0a 0a 54 68 65 20 63 75 |the job...The cu| 00080b50 72 72 65 6e 74 20 70 72 69 6e 74 20 6a 6f 62 20 |rrent print job | 00080b60 69 73 20 73 75 73 70 65 6e 64 65 64 20 61 6e 64 |is suspended and| 00080b70 20 74 68 65 20 6e 65 77 20 6a 6f 62 20 28 72 65 | the new job (re| 00080b80 29 73 74 61 72 74 65 64 2e 20 54 68 65 20 6f 6c |)started. The ol| 00080b90 64 20 6a 6f 62 20 68 61 6e 64 6c 65 20 28 69 66 |d job handle (if| 00080ba0 20 61 6e 79 29 20 69 73 20 72 65 74 75 72 6e 65 | any) is returne| 00080bb0 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c |d in the variabl| 00080bc0 65 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |e pointed to by | 00080bd0 2f 6f 6c 64 2f 2e 0a 0a 4e 42 20 49 66 20 2f 6e |/old/...NB If /n| 00080be0 65 77 2f 20 69 73 20 7a 65 72 6f 20 74 68 65 6e |ew/ is zero then| 00080bf0 20 74 68 65 20 63 75 72 72 65 6e 74 20 6a 6f 62 | the current job| 00080c00 20 69 73 20 73 75 73 70 65 6e 64 65 64 2e 00 00 | is suspended...| 00080c10 44 41 54 41 52 01 00 00 70 72 69 6e 74 5f 73 65 |DATAR...print_se| 00080c20 74 69 6e 66 6f 0a 53 79 6e 74 61 78 3a 09 3c 6f |tinfo.Syntax:.<o| 00080c30 73 5f 65 72 72 6f 72 3e 20 2a 70 72 69 6e 74 5f |s_error> *print_| 00080c40 73 65 74 69 6e 66 6f 20 28 3c 70 72 69 6e 74 5f |setinfo (<print_| 00080c50 69 6e 66 6f 73 74 72 3e 20 2a 62 6c 6f 63 6b 29 |infostr> *block)| 00080c60 3b 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 |;.Header:.<print| 00080c70 2e 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 |.h=>print>..Retu| 00080c80 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00080c90 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00080ca0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00080cb0 66 75 6e 63 74 69 6f 6e 20 72 65 63 6f 6e 66 69 |function reconfi| 00080cc0 67 75 72 65 73 20 74 68 65 20 70 72 69 6e 74 65 |gures the printe| 00080cd0 72 20 64 72 69 76 65 72 2e 20 54 68 65 20 76 65 |r driver. The ve| 00080ce0 72 73 69 6f 6e 2c 20 69 64 65 6e 74 69 74 79 20 |rsion, identity | 00080cf0 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 20 |and description | 00080d00 66 69 65 6c 64 73 20 61 72 65 20 6e 6f 74 20 75 |fields are not u| 00080d10 73 65 64 2e 20 4c 65 61 76 65 20 62 69 74 20 30 |sed. Leave bit 0| 00080d20 20 63 6c 65 61 72 20 69 6e 20 74 68 65 20 66 65 | clear in the fe| 00080d30 61 74 75 72 65 73 20 66 69 65 6c 64 20 66 6f 72 |atures field for| 00080d40 20 6d 6f 6e 6f 63 68 72 6f 6d 65 2c 20 73 65 74 | monochrome, set| 00080d50 20 62 69 74 20 30 20 66 6f 72 20 63 6f 6c 6f 75 | bit 0 for colou| 00080d60 72 2e 00 00 44 41 54 41 5f 01 00 00 70 72 69 6e |r...DATA_...prin| 00080d70 74 5f 73 65 74 70 61 67 65 73 69 7a 65 0a 53 79 |t_setpagesize.Sy| 00080d80 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00080d90 20 2a 70 72 69 6e 74 5f 73 65 74 70 61 67 65 73 | *print_setpages| 00080da0 69 7a 65 20 28 3c 70 72 69 6e 74 5f 70 61 67 65 |ize (<print_page| 00080db0 73 69 7a 65 73 74 72 3e 20 2a 73 69 7a 65 29 3b |sizestr> *size);| 00080dc0 0a 48 65 61 64 65 72 3a 09 3c 70 72 69 6e 74 2e |.Header:.<print.| 00080dd0 68 3d 3e 70 72 69 6e 74 3e 0a 0a 52 65 74 75 72 |h=>print>..Retur| 00080de0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00080df0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00080e00 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00080e10 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 68 6f 77 |unction sets how| 00080e20 20 6c 61 72 67 65 20 74 68 65 20 70 61 70 65 72 | large the paper| 00080e30 20 61 6e 64 20 70 72 69 6e 74 20 61 72 65 61 20 | and print area | 00080e40 69 73 2e 20 2f 73 69 7a 65 2f 20 63 6f 6e 74 61 |is. /size/ conta| 00080e50 69 6e 73 20 74 68 65 20 70 61 70 65 72 20 73 69 |ins the paper si| 00080e60 7a 65 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 6e 74 |ze in millipoint| 00080e70 73 2c 20 61 6e 64 20 74 68 65 20 70 72 69 6e 74 |s, and the print| 00080e80 61 62 6c 65 20 72 65 63 74 61 6e 67 6c 65 20 28 |able rectangle (| 00080e90 6f 72 69 67 69 6e 20 61 74 20 62 6f 74 74 6f 6d |origin at bottom| 00080ea0 20 6c 65 66 74 2c 20 63 6f 6f 72 64 69 6e 61 74 | left, coordinat| 00080eb0 65 73 20 69 6e 20 6d 69 6c 6c 69 70 6f 69 6e 74 |es in millipoint| 00080ec0 73 29 2e 00 44 41 54 41 4b 01 00 00 70 72 69 6e |s)..DATAK...prin| 00080ed0 74 5f 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e |t_transformation| 00080ee0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 00080ef0 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 00080f00 62 3a 50 44 72 69 76 65 72 2e 68 3d 3e 50 44 72 |b:PDriver.h=>PDr| 00080f10 69 76 65 72 3e 20 61 73 20 61 20 74 79 70 65 20 |iver> as a type | 00080f20 63 61 70 61 62 6c 65 20 6f 66 20 73 70 65 63 69 |capable of speci| 00080f30 66 79 69 6e 67 20 61 6e 20 61 72 62 69 74 72 61 |fying an arbitra| 00080f40 72 79 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f |ry transformatio| 00080f50 6e 2e 20 49 74 20 69 73 20 74 68 65 20 73 74 72 |n. It is the str| 00080f60 75 63 74 75 72 65 3a 0a 0a 20 20 20 20 5c 7b 0a |ucture:.. \{.| 00080f70 20 20 20 20 20 20 20 20 69 6e 74 20 78 78 3b 0a | int xx;.| 00080f80 20 20 20 20 20 20 20 20 69 6e 74 20 78 79 3b 0a | int xy;.| 00080f90 20 20 20 20 20 20 20 20 69 6e 74 20 79 78 3b 0a | int yx;.| 00080fa0 20 20 20 20 20 20 20 20 69 6e 74 20 79 79 3b 0a | int yy;.| 00080fb0 20 20 20 20 7d 0a 0a 54 68 65 20 63 6f 6f 72 64 | }..The coord| 00080fc0 69 6e 61 74 65 73 20 28 78 2c 79 29 20 61 72 65 |inates (x,y) are| 00080fd0 20 6d 61 70 70 65 64 20 74 6f 3a 0a 0a 28 28 78 | mapped to:..((x| 00080fe0 2a 78 78 2b 79 2a 79 78 29 20 2f 20 28 31 5c 3c |*xx+y*yx) / (1\<| 00080ff0 5c 3c 31 36 29 20 2c 28 78 2a 78 79 2b 79 2a 79 |\<16) ,(x*xy+y*y| 00081000 79 29 20 2f 20 28 31 5c 3c 5c 3c 31 36 29 29 00 |y) / (1\<\<16)).| 00081010 44 41 54 41 58 01 00 00 70 72 69 6e 74 5f 74 72 |DATAX...print_tr| 00081020 61 6e 73 6d 61 74 73 74 72 0a 54 68 69 73 20 74 |ansmatstr.This t| 00081030 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 00081040 6e 20 3c 70 72 69 6e 74 65 72 2e 68 3d 3e 70 72 |n <printer.h=>pr| 00081050 69 6e 74 65 72 3e 20 61 73 20 61 20 74 79 70 65 |inter> as a type| 00081060 20 63 61 70 61 62 6c 65 20 6f 66 20 73 70 65 63 | capable of spec| 00081070 69 66 79 69 6e 67 20 61 6e 20 61 72 62 69 74 72 |ifying an arbitr| 00081080 61 72 79 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 |ary transformati| 00081090 6f 6e 2e 20 49 74 20 69 73 20 74 68 65 20 73 74 |on. It is the st| 000810a0 72 75 63 74 75 72 65 3a 0a 0a 20 20 20 20 5c 7b |ructure:.. \{| 000810b0 0a 20 20 20 20 20 20 20 20 69 6e 74 20 78 78 3b |. int xx;| 000810c0 0a 20 20 20 20 20 20 20 20 69 6e 74 20 78 79 3b |. int xy;| 000810d0 0a 20 20 20 20 20 20 20 20 69 6e 74 20 79 78 3b |. int yx;| 000810e0 0a 20 20 20 20 20 20 20 20 69 6e 74 20 79 79 3b |. int yy;| 000810f0 0a 20 20 20 20 7d 0a 0a 54 68 65 20 63 6f 6f 72 |. }..The coor| 00081100 64 69 6e 61 74 65 73 20 28 78 2c 79 29 20 61 72 |dinates (x,y) ar| 00081110 65 20 6d 61 70 70 65 64 20 74 6f 3a 0a 7b 77 72 |e mapped to:.{wr| 00081120 61 70 20 6f 66 66 7d 0a 7b 61 6c 69 67 6e 20 63 |ap off}.{align c| 00081130 65 6e 74 72 65 7d 28 28 78 2a 78 78 2b 79 2a 79 |entre}((x*xx+y*y| 00081140 78 29 20 2f 20 28 31 5c 3c 5c 3c 31 36 29 20 2c |x) / (1\<\<16) ,| 00081150 28 78 2a 78 79 2b 79 2a 79 79 29 20 2f 20 28 31 |(x*xy+y*yy) / (1| 00081160 5c 3c 5c 3c 31 36 29 29 44 49 52 24 28 00 00 00 |\<\<16))DIR$(...| 00081170 28 00 00 00 90 11 08 00 46 ff ff ff ae 7e c0 22 |(.......F....~."| 00081180 e6 00 00 00 13 00 00 00 00 00 00 00 74 00 00 00 |............t...| 00081190 44 41 54 41 e6 00 00 00 70 74 72 64 69 66 66 5f |DATA....ptrdiff_| 000811a0 74 0a 54 68 65 20 74 79 70 65 20 7b 2f 7d 70 74 |t.The type {/}pt| 000811b0 72 64 69 66 66 5f 74 7b 2f 7d 20 69 73 20 64 65 |rdiff_t{/} is de| 000811c0 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 64 65 66 |fined in <stddef| 000811d0 2e 68 3d 3e 73 74 64 64 65 66 3e 20 61 73 20 61 |.h=>stddef> as a| 000811e0 6e 20 6f 62 6a 65 63 74 20 63 61 70 61 62 6c 65 |n object capable| 000811f0 20 6f 66 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 | of holding the | 00081200 72 65 73 75 6c 74 20 6f 66 20 73 75 62 74 72 61 |result of subtra| 00081210 63 74 69 6e 67 20 6f 6e 65 20 70 6f 69 6e 74 65 |cting one pointe| 00081220 72 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 2e 20 |r from another. | 00081230 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 |It is actually d| 00081240 65 66 69 6e 65 64 20 69 6e 20 62 6f 74 68 20 44 |efined in both D| 00081250 65 73 6b 74 6f 70 20 43 20 61 6e 64 20 45 61 73 |esktop C and Eas| 00081260 79 20 43 20 61 73 20 61 20 2f 73 69 67 6e 65 64 |y C as a /signed| 00081270 20 69 6e 74 2f 2e 00 00 44 41 54 41 bd 01 00 00 | int/...DATA....| 00081280 70 75 74 63 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |putc.Syntax:.int| 00081290 20 70 75 74 63 20 28 69 6e 74 20 63 2c 20 3c 46 | putc (int c, <F| 000812a0 49 4c 45 3e 20 2a 73 74 72 65 61 6d 29 3b 0a 48 |ILE> *stream);.H| 000812b0 65 61 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d |eader:.<stdio.h=| 000812c0 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 |>stdio>..Returns| 000812d0 3a 09 63 2c 20 6f 72 20 3c 45 4f 46 3e 20 69 66 |:.c, or <EOF> if| 000812e0 20 74 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 | there is an err| 000812f0 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |or...This functi| 00081300 6f 6e 20 77 72 69 74 65 73 20 74 68 65 20 63 68 |on writes the ch| 00081310 61 72 61 63 74 65 72 20 69 6e 20 2f 63 2f 20 74 |aracter in /c/ t| 00081320 6f 20 74 68 65 20 73 74 72 65 61 6d 20 73 70 65 |o the stream spe| 00081330 63 69 66 69 65 64 2e 20 49 74 20 69 73 20 76 69 |cified. It is vi| 00081340 72 74 75 61 6c 6c 79 20 69 64 65 6e 74 69 63 61 |rtually identica| 00081350 6c 20 74 6f 20 3c 66 70 75 74 63 3e 2e 20 54 68 |l to <fputc>. Th| 00081360 65 20 6f 6e 6c 79 20 64 69 66 66 65 72 65 6e 63 |e only differenc| 00081370 65 20 69 73 20 74 68 61 74 20 74 68 65 20 66 75 |e is that the fu| 00081380 6e 63 74 69 6f 6e 20 6d 69 67 68 74 20 62 65 20 |nction might be | 00081390 61 20 6d 61 63 72 6f 20 61 6e 64 20 74 68 65 20 |a macro and the | 000813a0 61 72 67 75 6d 65 6e 74 20 6d 61 79 20 62 65 20 |argument may be | 000813b0 65 76 61 6c 75 61 74 65 64 20 6d 6f 72 65 20 74 |evaluated more t| 000813c0 68 61 6e 20 6f 6e 63 65 20 73 6f 20 79 6f 75 20 |han once so you | 000813d0 63 61 6e 27 74 20 75 73 65 20 61 6e 20 65 78 70 |can't use an exp| 000813e0 72 65 73 73 69 6f 6e 20 77 69 74 68 20 73 69 64 |ression with sid| 000813f0 65 20 65 66 66 65 63 74 73 2e 20 46 6f 72 20 65 |e effects. For e| 00081400 78 61 6d 70 6c 65 20 70 75 74 63 28 69 2b 2b 29 |xample putc(i++)| 00081410 20 6d 61 79 20 63 61 75 73 65 20 69 20 74 6f 20 | may cause i to | 00081420 62 65 20 69 6e 63 72 65 6d 65 6e 74 65 64 20 74 |be incremented t| 00081430 77 69 63 65 2e 00 00 00 44 41 54 41 30 01 00 00 |wice....DATA0...| 00081440 70 75 74 63 68 61 72 0a 53 79 6e 74 61 78 3a 09 |putchar.Syntax:.| 00081450 69 6e 74 20 70 75 74 63 68 61 72 20 28 69 6e 74 |int putchar (int| 00081460 20 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 | c);.Header:.<st| 00081470 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 |dio.h=>stdio>..R| 00081480 65 74 75 72 6e 73 3a 09 63 2c 20 6f 72 20 3c 45 |eturns:.c, or <E| 00081490 4f 46 3e 20 69 66 20 74 68 65 72 65 20 69 73 20 |OF> if there is | 000814a0 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 |an error...This | 000814b0 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 73 20 |function writes | 000814c0 74 68 65 20 63 68 61 72 61 63 74 65 72 20 69 6e |the character in| 000814d0 20 2f 63 2f 20 74 6f 20 3c 73 74 64 6f 75 74 3e | /c/ to <stdout>| 000814e0 2e 20 49 74 20 69 73 20 69 64 65 6e 74 69 63 61 |. It is identica| 000814f0 6c 20 74 6f 20 3c 70 75 74 63 3e 28 63 2c 73 74 |l to <putc>(c,st| 00081500 64 6f 75 74 29 2e 20 49 74 20 6d 61 79 20 62 65 |dout). It may be| 00081510 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 20 | implemented as | 00081520 61 20 6d 61 63 72 6f 20 73 6f 20 62 65 20 63 61 |a macro so be ca| 00081530 72 65 66 75 6c 20 6f 66 20 75 73 69 6e 67 20 65 |reful of using e| 00081540 78 70 72 65 73 73 69 6f 6e 73 20 77 68 69 63 68 |xpressions which| 00081550 20 6d 6f 64 69 66 79 20 6f 74 68 65 72 20 76 61 | modify other va| 00081560 72 69 61 62 6c 65 73 2e 44 41 54 41 e7 00 00 00 |riables.DATA....| 00081570 70 75 74 73 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |puts.Syntax:.int| 00081580 20 70 75 74 73 20 28 63 68 61 72 20 2a 73 74 72 | puts (char *str| 00081590 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 |);.Header:.<stdi| 000815a0 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 |o.h=>stdio>..Ret| 000815b0 75 72 6e 73 3a 09 3c 45 4f 46 3e 20 69 66 20 74 |urns:.<EOF> if t| 000815c0 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f 72 |here is an error| 000815d0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000815e0 20 77 72 69 74 65 73 20 74 68 65 20 73 74 72 69 | writes the stri| 000815f0 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |ng pointed to by| 00081600 20 2f 73 74 72 2f 2c 20 66 6f 6c 6c 6f 77 65 64 | /str/, followed| 00081610 20 62 79 20 61 20 6e 65 77 6c 69 6e 65 2c 20 74 | by a newline, t| 00081620 6f 20 3c 73 74 64 6f 75 74 3e 2e 20 54 68 65 20 |o <stdout>. The | 00081630 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 20 |null terminator | 00081640 69 73 20 6e 6f 74 20 77 72 69 74 74 65 6e 2e 00 |is not written..| 00081650 44 49 52 24 8c 02 00 00 8c 02 00 00 dc 18 08 00 |DIR$............| 00081660 46 ff ff ff a6 18 de 22 f5 01 00 00 13 00 00 00 |F......"........| 00081670 00 00 00 00 71 73 6f 72 74 00 00 00 d4 1a 08 00 |....qsort.......| 00081680 46 ff ff ff 75 3c bf 22 a2 00 00 00 13 00 00 00 |F...u<."........| 00081690 00 00 00 00 72 61 69 73 65 00 00 00 78 1b 08 00 |....raise...x...| 000816a0 46 ff ff ff cd 48 c5 22 b5 00 00 00 13 00 00 00 |F....H."........| 000816b0 00 00 00 00 72 61 6e 64 00 00 00 00 30 1c 08 00 |....rand....0...| 000816c0 46 fd ff ff 10 c7 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 000816d0 00 00 00 00 52 41 4e 44 5f 00 00 00 00 1d 08 00 |....RAND_.......| 000816e0 46 ff ff ff eb 4c 55 26 64 02 00 00 13 00 00 00 |F....LU&d.......| 000816f0 00 00 00 00 52 65 61 64 45 6e 74 72 69 65 73 00 |....ReadEntries.| 00081700 64 1f 08 00 46 ff ff ff 3b 5c dd 22 84 04 00 00 |d...F...;\."....| 00081710 13 00 00 00 00 00 00 00 72 65 61 6c 6c 6f 63 00 |........realloc.| 00081720 e8 23 08 00 46 ff ff ff 63 bd c0 22 4d 01 00 00 |.#..F...c.."M...| 00081730 13 00 00 00 00 00 00 00 72 65 6d 6f 76 65 00 00 |........remove..| 00081740 38 25 08 00 46 ff ff ff d9 cc c0 22 97 01 00 00 |8%..F......"....| 00081750 13 00 00 00 00 00 00 00 72 65 6e 61 6d 65 00 00 |........rename..| 00081760 d0 26 08 00 46 ff ff ff 8e ac b5 24 cb 00 00 00 |.&..F......$....| 00081770 13 00 00 00 00 00 00 00 72 65 73 00 9c 27 08 00 |........res..'..| 00081780 46 ff ff ff 75 49 62 25 7b 01 00 00 13 00 00 00 |F...uIb%{.......| 00081790 00 00 00 00 52 65 73 6f 75 72 63 65 00 00 00 00 |....Resource....| 000817a0 18 29 08 00 46 fd ff ff 9d c7 84 2f c0 00 00 00 |.)..F....../....| 000817b0 13 01 00 00 00 00 00 00 52 65 73 6f 75 72 63 65 |........Resource| 000817c0 5f 00 00 00 14 2f 08 00 46 ff ff ff 4c 3b da 24 |_..../..F...L;.$| 000817d0 9b 00 00 00 13 00 00 00 00 00 00 00 72 65 73 73 |............ress| 000817e0 70 72 00 00 b0 2f 08 00 46 fd ff ff 23 c8 84 2f |pr.../..F...#../| 000817f0 4c 00 00 00 13 01 00 00 00 00 00 00 72 65 73 73 |L...........ress| 00081800 70 72 5f 00 a8 31 08 00 46 fd ff ff 5b c8 84 2f |pr_..1..F...[../| 00081810 74 00 00 00 13 01 00 00 00 00 00 00 72 65 73 5f |t...........res_| 00081820 00 00 00 00 70 35 08 00 46 ff ff ff f2 b4 e4 22 |....p5..F......"| 00081830 10 02 00 00 13 00 00 00 00 00 00 00 72 65 74 75 |............retu| 00081840 72 6e 00 00 80 37 08 00 46 ff ff ff d8 50 c2 22 |rn...7..F....P."| 00081850 d3 00 00 00 13 00 00 00 00 00 00 00 72 65 77 69 |............rewi| 00081860 6e 64 00 00 54 38 08 00 46 fd ff ff cc c8 84 2f |nd..T8..F....../| 00081870 2c 00 00 00 13 01 00 00 00 00 00 00 72 69 73 63 |,...........risc| 00081880 6f 73 5f 00 08 3a 08 00 46 fd ff ff f7 c8 84 2f |os_..:..F....../| 00081890 88 00 00 00 13 01 00 00 00 00 00 00 72 6c 5f 00 |............rl_.| 000818a0 fc 3d 08 00 46 ff ff ff 9e 13 ed 24 25 02 00 00 |.=..F......$%...| 000818b0 13 00 00 00 00 00 00 00 72 6f 73 6c 69 62 00 00 |........roslib..| 000818c0 24 40 08 00 46 fd ff ff 61 c9 84 2f 8c 00 00 00 |$@..F...a../....| 000818d0 13 01 00 00 00 00 00 00 72 6f 5f 00 44 41 54 41 |........ro_.DATA| 000818e0 f5 01 00 00 71 73 6f 72 74 0a 53 79 6e 74 61 78 |....qsort.Syntax| 000818f0 3a 09 76 6f 69 64 20 71 73 6f 72 74 20 28 76 6f |:.void qsort (vo| 00081900 69 64 20 2a 62 61 73 65 2c 20 3c 73 69 7a 65 5f |id *base, <size_| 00081910 74 3e 20 6e 75 6d 2c 20 73 69 7a 65 5f 74 20 73 |t> num, size_t s| 00081920 69 7a 65 2c 20 69 6e 74 20 28 2a 66 75 6e 63 29 |ize, int (*func)| 00081930 20 28 76 6f 69 64 20 2a 2c 20 76 6f 69 64 20 2a | (void *, void *| 00081940 29 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |));.Header:.<std| 00081950 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a |lib.h=>stdlib>..| 00081960 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 6f |This function so| 00081970 72 74 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 |rts an array of | 00081980 2f 6e 75 6d 2f 20 6f 62 6a 65 63 74 73 2c 20 65 |/num/ objects, e| 00081990 61 63 68 20 6f 66 20 77 68 69 63 68 20 69 73 20 |ach of which is | 000819a0 2f 73 69 7a 65 2f 20 62 79 74 65 73 20 6c 6f 6e |/size/ bytes lon| 000819b0 67 2c 20 61 6e 64 20 77 68 6f 73 65 20 66 69 72 |g, and whose fir| 000819c0 73 74 20 6f 62 6a 65 63 74 20 69 73 20 70 6f 69 |st object is poi| 000819d0 6e 74 65 64 20 74 6f 20 62 79 20 2f 62 61 73 65 |nted to by /base| 000819e0 2f 20 69 6e 74 6f 20 61 73 63 65 6e 64 69 6e 67 |/ into ascending| 000819f0 20 6f 72 64 65 72 2e 0a 0a 54 68 65 20 66 75 6e | order...The fun| 00081a00 63 74 69 6f 6e 20 77 68 69 63 68 20 6d 75 73 74 |ction which must| 00081a10 20 62 65 20 64 65 66 69 6e 65 64 20 62 79 20 79 | be defined by y| 00081a20 6f 75 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 |ou is called wit| 00081a30 68 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 6f 62 |h pointers to ob| 00081a40 6a 65 63 74 73 2e 20 49 66 20 74 68 65 20 66 69 |jects. If the fi| 00081a50 72 73 74 20 69 73 20 6c 65 73 73 20 74 68 61 6e |rst is less than| 00081a60 2c 20 65 71 75 61 6c 20 74 6f 2c 20 6f 72 20 67 |, equal to, or g| 00081a70 72 65 61 74 65 72 20 74 68 61 6e 20 74 68 65 20 |reater than the | 00081a80 73 65 63 6f 6e 64 20 74 68 65 6e 20 74 68 65 20 |second then the | 00081a90 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 |function should | 00081aa0 72 65 74 75 72 6e 20 6c 65 73 73 20 74 68 61 6e |return less than| 00081ab0 2c 20 65 71 75 61 6c 20 74 6f 2c 20 6f 72 20 67 |, equal to, or g| 00081ac0 72 65 61 74 65 72 20 74 68 61 6e 20 7a 65 72 6f |reater than zero| 00081ad0 2e 00 00 00 44 41 54 41 a2 00 00 00 72 61 69 73 |....DATA....rais| 00081ae0 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 72 61 |e.Syntax:.int ra| 00081af0 69 73 65 20 28 69 6e 74 20 73 69 67 29 3b 0a 48 |ise (int sig);.H| 00081b00 65 61 64 65 72 3a 09 3c 73 69 67 6e 61 6c 2e 68 |eader:.<signal.h| 00081b10 3d 3e 73 69 67 6e 61 6c 3e 0a 0a 52 65 74 75 72 |=>signal>..Retur| 00081b20 6e 73 3a 09 5a 65 72 6f 20 69 66 20 73 75 63 63 |ns:.Zero if succ| 00081b30 65 73 73 66 75 6c 0a 0a 54 68 69 73 20 66 75 6e |essful..This fun| 00081b40 63 74 69 6f 6e 20 73 65 6e 64 73 20 74 68 65 20 |ction sends the | 00081b50 73 69 67 6e 61 6c 20 2f 73 69 67 2f 20 74 6f 20 |signal /sig/ to | 00081b60 74 68 65 20 65 78 65 63 75 74 69 6e 67 20 70 72 |the executing pr| 00081b70 6f 67 72 61 6d 2e 00 00 44 41 54 41 b5 00 00 00 |ogram...DATA....| 00081b80 72 61 6e 64 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |rand.Syntax:.int| 00081b90 20 72 61 6e 64 20 28 76 6f 69 64 29 3b 0a 48 65 | rand (void);.He| 00081ba0 61 64 65 72 3a 09 3c 73 74 64 6c 69 62 2e 68 3d |ader:.<stdlib.h=| 00081bb0 3e 73 74 64 6c 69 62 3e 0a 0a 52 65 74 75 72 6e |>stdlib>..Return| 00081bc0 73 3a 09 41 20 70 73 75 65 64 6f 2d 72 61 6e 64 |s:.A psuedo-rand| 00081bd0 6f 6d 20 6e 75 6d 62 65 72 2e 0a 0a 54 68 69 73 |om number...This| 00081be0 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 | function genera| 00081bf0 74 65 73 20 61 20 70 73 75 65 64 6f 2d 72 61 6e |tes a psuedo-ran| 00081c00 64 6f 6d 20 6e 75 6d 62 65 72 20 69 6e 20 74 68 |dom number in th| 00081c10 65 20 72 61 6e 67 65 20 66 72 6f 6d 20 30 20 74 |e range from 0 t| 00081c20 6f 20 3c 52 41 4e 44 5f 4d 41 58 3e 2e 00 00 00 |o <RAND_MAX>....| 00081c30 44 49 52 24 28 00 00 00 28 00 00 00 58 1c 08 00 |DIR$(...(...X...| 00081c40 46 ff ff ff 5a 8d df 22 a7 00 00 00 13 00 00 00 |F...Z.."........| 00081c50 00 00 00 00 4d 41 58 00 44 41 54 41 a7 00 00 00 |....MAX.DATA....| 00081c60 52 41 4e 44 5f 4d 41 58 20 54 68 65 20 6d 61 63 |RAND_MAX The mac| 00081c70 72 6f 20 7b 2f 7d 52 41 4e 44 5f 4d 41 58 7b 2f |ro {/}RAND_MAX{/| 00081c80 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |} is defined in | 00081c90 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 |<stdlib.h=>stdli| 00081ca0 62 3e 20 61 73 20 74 68 65 20 6d 61 78 69 6d 75 |b> as the maximu| 00081cb0 6d 20 76 61 6c 75 65 20 72 65 74 75 72 6e 65 64 |m value returned| 00081cc0 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | by the function| 00081cd0 20 3c 72 61 6e 64 3e 2e 20 49 6e 20 45 61 73 79 | <rand>. In Easy| 00081ce0 20 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 | C it is defined| 00081cf0 20 61 73 20 30 78 37 66 66 66 66 66 66 66 2e 00 | as 0x7fffffff..| 00081d00 44 41 54 41 64 02 00 00 52 65 61 64 45 6e 74 72 |DATAd...ReadEntr| 00081d10 69 65 73 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |ies.Syntax:.int | 00081d20 52 65 61 64 45 6e 74 72 69 65 73 20 28 63 68 61 |ReadEntries (cha| 00081d30 72 20 2a 70 61 74 68 6e 61 6d 65 2c 20 3c 6f 62 |r *pathname, <ob| 00081d40 6a 65 63 74 5f 69 6e 66 6f 3e 20 2a 62 75 66 2c |ject_info> *buf,| 00081d50 20 69 6e 74 20 6e 75 6d 2c 20 69 6e 74 20 2a 6f | int num, int *o| 00081d60 66 66 2c 20 69 6e 74 20 62 75 66 5f 73 69 7a 65 |ff, int buf_size| 00081d70 2c 20 63 68 61 72 20 2a 66 73 70 65 63 29 3b 0a |, char *fspec);.| 00081d80 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 |Header:.<TimsLib| 00081d90 3a 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 54 4c |:File.h=>File_TL| 00081da0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 4e 75 6d 62 |>..Returns:.Numb| 00081db0 65 72 20 6f 66 20 6f 62 6a 65 63 74 73 20 72 65 |er of objects re| 00081dc0 61 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ad...This functi| 00081dd0 6f 6e 20 72 65 61 64 73 20 65 6e 74 72 69 65 73 |on reads entries| 00081de0 20 66 72 6f 6d 20 61 20 64 69 72 65 63 74 6f 72 | from a director| 00081df0 79 2e 20 2f 70 61 74 68 6e 61 6d 65 2f 20 63 6f |y. /pathname/ co| 00081e00 6e 74 61 69 6e 73 20 74 68 65 20 64 69 72 65 63 |ntains the direc| 00081e10 74 6f 72 79 20 6e 61 6d 65 2c 20 2f 62 75 66 2f |tory name, /buf/| 00081e20 20 69 73 20 61 20 73 74 6f 72 65 20 6f 66 20 73 | is a store of s| 00081e30 69 7a 65 20 7b 2f 7d 62 75 66 5f 73 69 7a 65 7b |ize {/}buf_size{| 00081e40 2f 7d 20 66 6f 72 20 74 68 65 20 6f 62 6a 65 63 |/} for the objec| 00081e50 74 20 69 6e 66 6f 20 72 65 61 64 2e 20 2f 6e 75 |t info read. /nu| 00081e60 6d 2f 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 |m/ is the number| 00081e70 20 6f 66 20 6f 62 6a 65 63 74 73 20 74 6f 20 72 | of objects to r| 00081e80 65 61 64 20 61 6e 64 20 7b 2f 7d 2a 6f 66 66 7b |ead and {/}*off{| 00081e90 2f 7d 20 69 73 20 74 68 65 20 6f 66 66 73 65 74 |/} is the offset| 00081ea0 20 74 6f 20 73 74 61 72 74 20 66 72 6f 6d 2e 20 | to start from. | 00081eb0 2f 66 70 73 65 63 2f 20 64 65 74 65 72 6d 69 6e |/fpsec/ determin| 00081ec0 65 73 20 74 68 65 20 6c 65 61 66 20 6e 61 6d 65 |es the leaf name| 00081ed0 73 20 74 6f 20 6d 61 74 63 68 20 2d 20 69 66 20 |s to match - if | 00081ee0 69 74 20 69 73 20 3c 4e 55 4c 4c 3e 20 74 68 65 |it is <NULL> the| 00081ef0 6e 20 22 2a 22 20 69 73 20 75 73 65 64 2e 0a 0a |n "*" is used...| 00081f00 7b 2f 7d 2a 6f 66 66 7b 2f 7d 20 69 73 20 61 75 |{/}*off{/} is au| 00081f10 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 70 64 61 |tomatically upda| 00081f20 74 65 64 20 61 66 74 65 72 20 65 61 63 68 20 63 |ted after each c| 00081f30 61 6c 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |all...This funct| 00081f40 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 6e |ion is equivalen| 00081f50 74 20 74 6f 20 53 57 49 20 4f 53 5f 47 42 50 42 |t to SWI OS_GBPB| 00081f60 20 31 30 2e 44 41 54 41 84 04 00 00 72 65 61 6c | 10.DATA....real| 00081f70 6c 6f 63 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |loc.Syntax:.void| 00081f80 20 2a 72 65 61 6c 6c 6f 63 20 28 76 6f 69 64 20 | *realloc (void | 00081f90 2a 70 74 72 2c 20 73 69 7a 65 5f 74 20 73 69 7a |*ptr, size_t siz| 00081fa0 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |e);.Header:.<std| 00081fb0 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a |lib.h=>stdlib>..| 00081fc0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00081fd0 20 74 6f 20 73 70 61 63 65 2c 20 6f 72 20 3c 4e | to space, or <N| 00081fe0 55 4c 4c 3e 20 69 66 20 66 61 69 6c 65 64 2e 0a |ULL> if failed..| 00081ff0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 00082000 68 61 6e 67 65 73 20 74 68 65 20 73 69 7a 65 20 |hanges the size | 00082010 6f 66 20 61 20 73 70 61 63 65 20 69 6e 69 74 69 |of a space initi| 00082020 61 6c 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20 77 |ally allocated w| 00082030 69 74 68 20 3c 63 61 6c 6c 6f 63 3e 2c 20 3c 6d |ith <calloc>, <m| 00082040 61 6c 6c 6f 63 3e 2c 20 6f 72 20 72 65 61 6c 6c |alloc>, or reall| 00082050 6f 63 2e 20 49 74 20 74 61 6b 65 73 20 61 20 70 |oc. It takes a p| 00082060 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 73 70 |ointer to the sp| 00082070 61 63 65 20 69 6e 20 2f 70 74 72 2f 2c 20 61 6e |ace in /ptr/, an| 00082080 64 20 61 20 6e 65 77 20 73 69 7a 65 20 69 6e 20 |d a new size in | 00082090 2f 73 69 7a 65 2f 2e 20 54 68 65 20 63 6f 6e 74 |/size/. The cont| 000820a0 65 6e 74 73 20 6f 66 20 74 68 65 20 73 70 61 63 |ents of the spac| 000820b0 65 20 61 72 65 20 75 6e 61 6c 74 65 72 65 64 20 |e are unaltered | 000820c0 28 61 6c 74 68 6f 75 67 68 20 74 68 65 79 20 6d |(although they m| 000820d0 61 79 20 62 65 20 63 68 6f 70 70 65 64 20 6f 66 |ay be chopped of| 000820e0 66 20 74 68 65 20 6e 65 77 20 73 69 7a 65 20 69 |f the new size i| 000820f0 73 20 73 6d 61 6c 6c 65 72 29 2e 20 41 6e 79 20 |s smaller). Any | 00082100 6e 65 77 20 62 79 74 65 73 20 61 6c 6c 6f 63 61 |new bytes alloca| 00082110 74 65 64 20 68 61 76 65 20 75 6e 64 65 66 69 6e |ted have undefin| 00082120 65 64 20 76 61 6c 75 65 73 2e 20 54 68 65 20 73 |ed values. The s| 00082130 70 61 63 65 20 6d 61 79 20 62 65 20 6d 6f 76 65 |pace may be move| 00082140 64 20 72 61 74 68 65 72 20 74 68 61 6e 20 6a 75 |d rather than ju| 00082150 73 74 20 65 78 74 65 6e 64 65 64 20 61 6e 64 20 |st extended and | 00082160 73 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |so this function| 00082170 20 72 65 74 75 72 6e 73 20 61 20 6e 65 77 20 70 | returns a new p| 00082180 6f 69 6e 74 65 72 2e 0a 0a 49 66 20 2f 70 74 72 |ointer...If /ptr| 00082190 2f 20 69 73 20 3c 4e 55 4c 4c 3e 20 74 68 65 6e |/ is <NULL> then| 000821a0 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 62 | this function b| 000821b0 65 68 61 76 65 73 20 61 73 20 3c 6d 61 6c 6c 6f |ehaves as <mallo| 000821c0 63 3e 2c 20 65 6c 73 65 20 69 66 20 2f 73 69 7a |c>, else if /siz| 000821d0 65 2f 20 69 73 20 7a 65 72 6f 20 74 68 65 6e 20 |e/ is zero then | 000821e0 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 62 65 |this function be| 000821f0 68 61 76 65 73 20 61 73 20 3c 66 72 65 65 3e 2e |haves as <free>.| 00082200 20 49 66 20 74 68 65 20 73 70 61 63 65 20 63 61 | If the space ca| 00082210 6e 6e 6f 74 20 62 65 20 72 65 61 6c 6c 6f 63 61 |nnot be realloca| 00082220 74 65 64 20 74 68 65 6e 20 74 68 65 20 63 6f 6e |ted then the con| 00082230 74 65 6e 74 73 20 61 72 65 20 75 6e 63 68 61 6e |tents are unchan| 00082240 67 65 64 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 |ged. However, th| 00082250 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 |e function will | 00082260 72 65 74 75 72 6e 20 4e 55 4c 4c 20 73 6f 20 79 |return NULL so y| 00082270 6f 75 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 |ou will not be a| 00082280 62 6c 65 20 74 6f 20 61 63 63 65 73 73 20 74 68 |ble to access th| 00082290 65 20 6d 65 6d 6f 72 79 20 75 73 69 6e 67 20 74 |e memory using t| 000822a0 68 65 20 6f 72 69 67 69 6e 61 6c 20 70 6f 69 6e |he original poin| 000822b0 74 65 72 2e 20 54 68 65 72 65 66 6f 72 65 2c 20 |ter. Therefore, | 000822c0 64 6f 20 6e 6f 74 20 75 73 65 20 74 68 65 20 66 |do not use the f| 000822d0 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 3a 0a 0a |ollowing code:..| 000822e0 7b 66 43 6f 64 65 7d 64 6f 20 5c 7b 0a 09 7b 66 |{fCode}do \{..{f| 000822f0 43 6f 64 65 7d 73 69 7a 65 20 2d 3d 20 31 30 32 |Code}size -= 102| 00082300 34 3b 0a 09 7b 66 43 6f 64 65 7d 73 70 61 63 65 |4;..{fCode}space| 00082310 20 3d 20 28 63 68 61 72 20 2a 29 20 72 65 61 6c | = (char *) real| 00082320 6c 6f 63 20 28 73 70 61 63 65 2c 73 69 7a 65 29 |loc (space,size)| 00082330 3b 0a 7b 66 43 6f 64 65 7d 7d 20 77 68 69 6c 65 |;.{fCode}} while| 00082340 20 28 73 70 61 63 65 3d 3d 4e 55 4c 4c 29 3b 7b | (space==NULL);{| 00082350 66 7d 0a 0a 55 73 65 20 69 6e 73 74 65 61 64 3a |f}..Use instead:| 00082360 0a 0a 7b 66 43 6f 64 65 7d 64 6f 20 5c 7b 0a 09 |..{fCode}do \{..| 00082370 7b 66 43 6f 64 65 7d 73 69 7a 65 20 2d 3d 20 31 |{fCode}size -= 1| 00082380 30 32 34 3b 0a 09 7b 66 43 6f 64 65 7d 6e 65 77 |024;..{fCode}new| 00082390 73 70 61 63 65 20 3d 20 28 63 68 61 72 20 2a 29 |space = (char *)| 000823a0 20 72 65 61 6c 6c 6f 63 20 28 73 70 61 63 65 2c | realloc (space,| 000823b0 20 73 69 7a 65 29 3b 0a 7b 66 43 6f 64 65 7d 7d | size);.{fCode}}| 000823c0 20 77 68 69 6c 65 20 28 6e 65 77 73 70 61 63 65 | while (newspace| 000823d0 3d 3d 4e 55 4c 4c 29 3b 0a 73 70 61 63 65 3d 6e |==NULL);.space=n| 000823e0 65 77 73 70 61 63 65 3b 44 41 54 41 4d 01 00 00 |ewspace;DATAM...| 000823f0 72 65 6d 6f 76 65 0a 53 79 6e 74 61 78 3a 09 69 |remove.Syntax:.i| 00082400 6e 74 20 72 65 6d 6f 76 65 20 28 63 68 61 72 20 |nt remove (char | 00082410 2a 66 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 |*filename);.Head| 00082420 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 |er:.<stdio.h=>st| 00082430 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 5a |dio>..Returns:.Z| 00082440 65 72 6f 20 69 66 20 74 68 65 20 66 69 6c 65 20 |ero if the file | 00082450 69 73 20 72 65 6d 6f 76 65 64 2e 0a 0a 54 68 69 |is removed...Thi| 00082460 73 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 65 6d |s function attem| 00082470 70 74 73 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 |pts to remove th| 00082480 65 20 66 69 6c 65 20 77 68 6f 73 65 20 6e 61 6d |e file whose nam| 00082490 65 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 |e is contained i| 000824a0 6e 20 66 69 6c 65 6e 61 6d 65 2e 20 54 68 69 73 |n filename. This| 000824b0 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 | is equivalent t| 000824c0 6f 20 3c 2a 44 65 6c 65 74 65 3d 3e 2a 48 65 6c |o <*Delete=>*Hel| 000824d0 70 20 44 65 6c 65 74 65 3e 20 6f 72 20 3c 4f 53 |p Delete> or <OS| 000824e0 5f 46 69 6c 65 20 36 3d 3e 53 57 49 3a 6f 73 5f |_File 6=>SWI:os_| 000824f0 66 69 6c 65 36 3e 2e 20 49 66 20 74 68 65 20 66 |file6>. If the f| 00082500 69 6c 65 20 69 73 20 6f 70 65 6e 2c 20 74 68 65 |ile is open, the| 00082510 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 61 | function will a| 00082520 6c 6d 6f 73 74 20 63 65 72 74 61 69 6e 6c 79 20 |lmost certainly | 00082530 66 61 69 6c 2e 00 00 00 44 41 54 41 97 01 00 00 |fail....DATA....| 00082540 72 65 6e 61 6d 65 0a 53 79 6e 74 61 78 3a 09 69 |rename.Syntax:.i| 00082550 6e 74 20 72 65 6e 61 6d 65 20 28 63 68 61 72 20 |nt rename (char | 00082560 2a 6f 6c 64 2c 20 63 68 61 72 20 2a 6e 65 77 29 |*old, char *new)| 00082570 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f |;.Header:.<stdio| 00082580 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 |.h=>stdio>..Retu| 00082590 72 6e 73 3a 09 5a 65 72 6f 20 69 66 20 74 68 65 |rns:.Zero if the| 000825a0 20 66 69 6c 65 20 69 73 20 72 65 6e 61 6d 65 64 | file is renamed| 000825b0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000825c0 20 72 65 6e 61 6d 65 73 20 74 68 65 20 66 69 6c | renames the fil| 000825d0 65 20 77 68 6f 73 65 20 6e 61 6d 65 20 69 73 20 |e whose name is | 000825e0 69 6e 20 6f 6c 64 2c 20 74 6f 20 74 68 65 20 6e |in old, to the n| 000825f0 61 6d 65 20 69 6e 20 6e 65 77 2e 20 54 68 69 73 |ame in new. This| 00082600 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 | is equivalent t| 00082610 6f 20 3c 2a 52 65 6e 61 6d 65 3d 3e 2a 48 65 6c |o <*Rename=>*Hel| 00082620 70 20 52 65 6e 61 6d 65 3e 20 6f 72 20 3c 4f 53 |p Rename> or <OS| 00082630 5f 46 53 43 6f 6e 74 72 6f 6c 20 32 35 3d 3e 53 |_FSControl 25=>S| 00082640 57 49 3a 4f 53 5f 46 53 43 6f 6e 74 72 6f 6c 3e |WI:OS_FSControl>| 00082650 2e 20 49 66 20 74 68 65 20 66 69 6c 65 20 69 6e |. If the file in| 00082660 20 6e 65 77 20 61 6c 72 65 61 64 79 20 65 78 69 | new already exi| 00082670 73 74 73 20 74 68 65 20 61 74 74 65 6d 70 74 20 |sts the attempt | 00082680 77 69 6c 6c 20 66 61 69 6c 2e 20 49 66 20 74 68 |will fail. If th| 00082690 65 20 61 74 74 65 6d 70 74 20 66 61 69 6c 73 2c |e attempt fails,| 000826a0 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 73 | the file will s| 000826b0 74 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 62 |till be called b| 000826c0 79 20 69 74 73 20 6f 6c 64 20 6e 61 6d 65 2e 00 |y its old name..| 000826d0 44 41 54 41 cb 00 00 00 72 65 73 2e 68 0a 54 68 |DATA....res.h.Th| 000826e0 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |is header declar| 000826f0 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 |es functions for| 00082700 20 68 61 6e 64 6c 69 6e 67 20 72 65 73 6f 75 72 | handling resour| 00082710 63 65 20 66 69 6c 65 73 20 28 69 65 20 66 69 6c |ce files (ie fil| 00082720 65 73 20 77 69 74 68 69 6e 20 74 68 65 20 61 70 |es within the ap| 00082730 70 6c 69 63 61 74 69 6f 6e 20 64 69 72 65 63 74 |plication direct| 00082740 6f 72 79 29 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 |ory)...Functions| 00082750 3a 0a 0a 23 49 6e 64 65 6e 74 20 34 0a 23 54 61 |:..#Indent 4.#Ta| 00082760 62 6c 65 20 32 20 32 31 0a 3c 72 65 73 5f 69 6e |ble 2 21.<res_in| 00082770 69 74 3e 0a 3c 72 65 73 5f 66 69 6e 64 6e 61 6d |it>.<res_findnam| 00082780 65 3e 0a 3c 72 65 73 5f 6f 70 65 6e 66 69 6c 65 |e>.<res_openfile| 00082790 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 000827a0 7b 01 00 00 44 65 73 6b 4c 69 62 3a 52 65 73 6f |{...DeskLib:Reso| 000827b0 75 72 63 65 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 |urce.h.Version: | 000827c0 31 2e 30 32 20 28 44 65 63 20 31 39 39 34 29 0a |1.02 (Dec 1994).| 000827d0 23 6c 69 6e 65 0a 54 68 69 73 20 68 65 61 64 65 |#line.This heade| 000827e0 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 |r declares funct| 000827f0 69 6f 6e 73 20 66 6f 72 20 68 61 6e 64 6c 69 6e |ions for handlin| 00082800 67 20 72 65 73 6f 75 72 63 65 20 66 69 6c 65 73 |g resource files| 00082810 20 28 69 65 20 66 69 6c 65 73 20 77 69 74 68 69 | (ie files withi| 00082820 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f |n the applicatio| 00082830 6e 20 64 69 72 65 63 74 6f 72 79 29 2e 0a 0a 46 |n directory)...F| 00082840 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 |unctions:..#inde| 00082850 6e 74 20 33 0a 23 54 61 62 6c 65 20 63 6f 6c 75 |nt 3.#Table colu| 00082860 6d 6e 73 20 32 0a 3c 52 65 73 6f 75 72 63 65 5f |mns 2.<Resource_| 00082870 49 6e 69 74 69 61 6c 69 73 65 3e 0a 3c 52 65 73 |Initialise>.<Res| 00082880 6f 75 72 63 65 5f 49 6e 69 74 69 61 6c 69 73 65 |ource_Initialise| 00082890 50 61 74 68 3e 0a 3c 52 65 73 6f 75 72 63 65 5f |Path>.<Resource_| 000828a0 4c 6f 61 64 53 70 72 69 74 65 73 3e 0a 23 45 6e |LoadSprites>.#En| 000828b0 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 20 |dTable..#Indent | 000828c0 30 0a 56 61 72 69 61 62 6c 65 73 3a 0a 0a 23 69 |0.Variables:..#i| 000828d0 6e 64 65 6e 74 20 36 0a 23 74 61 62 6c 65 20 6c |ndent 6.#table l| 000828e0 69 6e 65 73 20 31 0a 3c 72 65 73 6f 75 72 63 65 |ines 1.<resource| 000828f0 5f 70 61 74 68 6e 61 6d 65 3e 0a 3c 72 65 73 6f |_pathname>.<reso| 00082900 75 72 63 65 5f 73 70 72 69 74 65 73 3e 0a 23 65 |urce_sprites>.#e| 00082910 6e 64 74 61 62 6c 65 00 44 49 52 24 c0 00 00 00 |ndtable.DIR$....| 00082920 c0 00 00 00 d8 29 08 00 46 ff ff ff 61 25 62 25 |.....)..F...a%b%| 00082930 b8 00 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |............Init| 00082940 69 61 6c 69 73 65 00 00 90 2a 08 00 46 ff ff ff |ialise...*..F...| 00082950 38 2d 62 25 ba 00 00 00 13 00 00 00 00 00 00 00 |8-b%............| 00082960 49 6e 69 74 69 61 6c 69 73 65 50 61 74 68 00 00 |InitialisePath..| 00082970 4c 2b 08 00 46 ff ff ff 58 1c 62 25 57 01 00 00 |L+..F...X.b%W...| 00082980 13 00 00 00 00 00 00 00 70 61 74 68 6e 61 6d 65 |........pathname| 00082990 00 00 00 00 a4 2c 08 00 46 ff ff ff 32 66 62 25 |.....,..F...2fb%| 000829a0 fb 00 00 00 13 00 00 00 00 00 00 00 73 70 72 69 |............spri| 000829b0 74 65 73 00 a0 2d 08 00 46 ff ff ff 1c 91 62 25 |tes..-..F.....b%| 000829c0 74 01 00 00 13 00 00 00 00 00 00 00 4c 6f 61 64 |t...........Load| 000829d0 53 70 72 69 74 65 73 00 44 41 54 41 b8 00 00 00 |Sprites.DATA....| 000829e0 52 65 73 6f 75 72 63 65 5f 49 6e 69 74 69 61 6c |Resource_Initial| 000829f0 69 73 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ise.Syntax:.void| 00082a00 20 52 65 73 6f 75 72 63 65 5f 49 6e 69 74 69 61 | Resource_Initia| 00082a10 6c 69 73 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 |lise (char *name| 00082a20 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00082a30 4c 69 62 3a 52 65 73 6f 75 72 63 65 2e 68 3d 3e |Lib:Resource.h=>| 00082a40 52 65 73 6f 75 72 63 65 3e 0a 0a 54 68 69 73 20 |Resource>..This | 00082a50 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 00082a60 65 20 76 61 72 69 61 62 6c 65 20 3c 72 65 73 6f |e variable <reso| 00082a70 75 72 63 65 5f 70 61 74 68 6e 61 6d 65 3e 20 74 |urce_pathname> t| 00082a80 6f 20 22 5c 3c 4e 61 6d 65 24 44 69 72 3e 2e 22 |o "\<Name$Dir>."| 00082a90 44 41 54 41 ba 00 00 00 52 65 73 6f 75 72 63 65 |DATA....Resource| 00082aa0 5f 49 6e 69 74 69 61 6c 69 73 65 50 61 74 68 0a |_InitialisePath.| 00082ab0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 52 65 73 |Syntax:.void Res| 00082ac0 6f 75 72 63 65 5f 49 6e 69 74 69 61 6c 69 73 65 |ource_Initialise| 00082ad0 50 61 74 68 20 28 63 68 61 72 20 2a 6e 61 6d 65 |Path (char *name| 00082ae0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00082af0 4c 69 62 3a 52 65 73 6f 75 72 63 65 2e 68 3d 3e |Lib:Resource.h=>| 00082b00 52 65 73 6f 75 72 63 65 3e 0a 0a 54 68 69 73 20 |Resource>..This | 00082b10 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 00082b20 65 20 76 61 72 69 61 62 6c 65 20 3c 72 65 73 6f |e variable <reso| 00082b30 75 72 63 65 5f 70 61 74 68 6e 61 6d 65 3e 20 74 |urce_pathname> t| 00082b40 6f 20 22 4e 61 6d 65 3a 22 2e 00 00 44 41 54 41 |o "Name:"...DATA| 00082b50 57 01 00 00 72 65 73 6f 75 72 63 65 5f 70 61 74 |W...resource_pat| 00082b60 68 6e 61 6d 65 0a 54 68 65 20 76 61 72 69 61 62 |hname.The variab| 00082b70 6c 65 20 7b 2f 7d 72 65 73 6f 75 72 63 65 5f 70 |le {/}resource_p| 00082b80 61 74 68 6e 61 6d 65 7b 2f 7d 20 69 73 20 64 65 |athname{/} is de| 00082b90 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 00082ba0 62 3a 52 65 73 6f 75 72 63 65 2e 68 3d 3e 52 65 |b:Resource.h=>Re| 00082bb0 73 6f 75 72 63 65 3e 2e 20 49 74 20 69 73 20 61 |source>. It is a| 00082bc0 20 73 74 72 69 6e 67 20 28 7b 2f 7d 63 68 61 72 | string ({/}char| 00082bd0 20 2a 7b 2f 7d 29 20 77 68 69 63 68 20 69 73 20 | *{/}) which is | 00082be0 75 73 65 64 20 61 73 20 61 20 70 72 65 66 69 78 |used as a prefix| 00082bf0 20 66 6f 72 20 61 6c 6c 20 70 61 74 68 6e 61 6d | for all pathnam| 00082c00 65 73 20 75 73 65 64 20 62 79 20 44 65 73 6b 4c |es used by DeskL| 00082c10 69 62 20 66 6f 72 20 6c 6f 61 64 69 6e 67 20 72 |ib for loading r| 00082c20 65 73 6f 75 72 63 65 20 66 69 6c 65 73 2e 20 49 |esource files. I| 00082c30 74 20 69 73 20 73 65 74 20 74 6f 20 62 65 20 65 |t is set to be e| 00082c40 69 74 68 65 72 20 22 5c 3c 4e 61 6d 65 24 44 69 |ither "\<Name$Di| 00082c50 72 3e 2e 22 20 6f 72 20 22 4e 61 6d 65 3a 22 20 |r>." or "Name:" | 00082c60 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 |by the function | 00082c70 3c 52 65 73 6f 75 72 63 65 5f 49 6e 69 74 69 61 |<Resource_Initia| 00082c80 6c 69 73 65 3e 20 6f 72 20 3c 52 65 73 6f 75 72 |lise> or <Resour| 00082c90 63 65 5f 49 6e 69 74 69 61 6c 69 73 65 50 61 74 |ce_InitialisePat| 00082ca0 68 3e 2e 00 44 41 54 41 fb 00 00 00 72 65 73 6f |h>..DATA....reso| 00082cb0 75 72 63 65 5f 73 70 72 69 74 65 73 0a 54 68 65 |urce_sprites.The| 00082cc0 20 76 61 72 69 61 62 6c 65 20 7b 2a 7d 72 65 73 | variable {*}res| 00082cd0 6f 75 72 63 65 5f 73 70 72 69 74 65 73 7b 2a 7d |ource_sprites{*}| 00082ce0 20 69 6e 64 69 63 61 74 65 73 20 61 20 73 70 72 | indicates a spr| 00082cf0 69 74 65 20 61 72 65 61 20 63 6f 6e 74 61 69 6e |ite area contain| 00082d00 69 6e 67 20 73 70 72 69 74 65 73 20 62 65 6c 6f |ing sprites belo| 00082d10 6e 67 69 6e 67 20 74 6f 20 79 6f 75 72 20 74 61 |nging to your ta| 00082d20 73 6b 2e 20 49 66 20 79 6f 75 20 68 61 76 65 20 |sk. If you have | 00082d30 6e 6f 74 20 6c 6f 61 64 65 64 20 61 6e 79 20 77 |not loaded any w| 00082d40 69 74 68 20 3c 52 65 73 6f 75 72 63 65 5f 4c 6f |ith <Resource_Lo| 00082d50 61 64 53 70 72 69 74 65 73 3e 2c 20 69 74 20 77 |adSprites>, it w| 00082d60 69 6c 6c 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 |ill point to the| 00082d70 20 77 69 6d 70 20 73 70 72 69 74 65 20 61 72 65 | wimp sprite are| 00082d80 61 2e 20 49 74 20 69 73 20 6f 66 20 74 79 70 65 |a. It is of type| 00082d90 20 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 2e 00 | <sprite_area>..| 00082da0 44 41 54 41 74 01 00 00 52 65 73 6f 75 72 63 65 |DATAt...Resource| 00082db0 5f 4c 6f 61 64 53 70 72 69 74 65 73 0a 53 79 6e |_LoadSprites.Syn| 00082dc0 74 61 78 3a 09 76 6f 69 64 20 52 65 73 6f 75 72 |tax:.void Resour| 00082dd0 63 65 5f 4c 6f 61 64 53 70 72 69 74 65 73 20 28 |ce_LoadSprites (| 00082de0 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |void);.Header:.<| 00082df0 44 65 73 6b 4c 69 62 3a 52 65 73 6f 75 72 63 65 |DeskLib:Resource| 00082e00 2e 68 3d 3e 52 65 73 6f 75 72 63 65 3e 0a 0a 54 |.h=>Resource>..T| 00082e10 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 |his function loa| 00082e20 64 73 20 74 68 65 20 27 53 70 72 69 74 65 73 27 |ds the 'Sprites'| 00082e30 20 66 69 6c 65 20 61 6e 64 20 73 65 74 73 20 75 | file and sets u| 00082e40 70 20 3c 72 65 73 6f 75 72 63 65 5f 73 70 72 69 |p <resource_spri| 00082e50 74 65 73 3e 20 74 6f 20 70 6f 69 6e 74 20 74 6f |tes> to point to| 00082e60 20 69 74 2e 20 59 6f 75 20 6d 75 73 74 20 68 61 | it. You must ha| 00082e70 76 65 20 61 6c 72 65 61 64 79 20 63 61 6c 6c 65 |ve already calle| 00082e80 64 20 3c 52 65 73 6f 75 72 63 65 5f 49 6e 69 74 |d <Resource_Init| 00082e90 69 61 6c 69 73 65 3e 20 6f 72 20 3c 52 65 73 6f |ialise> or <Reso| 00082ea0 75 72 63 65 5f 49 6e 69 74 69 61 6c 69 73 65 50 |urce_InitialiseP| 00082eb0 61 74 68 3e 2e 20 54 6f 20 75 73 65 20 74 68 65 |ath>. To use the| 00082ec0 20 73 70 72 69 74 65 73 20 69 6e 20 79 6f 75 72 | sprites in your| 00082ed0 20 77 69 6e 64 6f 77 73 2c 20 63 61 6c 6c 20 7b | windows, call {| 00082ee0 66 43 6f 64 65 7d 3c 54 65 6d 70 6c 61 74 65 5f |fCode}<Template_| 00082ef0 55 73 65 53 70 72 69 74 65 41 72 65 61 3e 28 72 |UseSpriteArea>(r| 00082f00 65 73 6f 75 72 63 65 5f 73 70 72 69 74 65 73 29 |esource_sprites)| 00082f10 3b 7b 66 7d 44 41 54 41 9b 00 00 00 72 65 73 73 |;{f}DATA....ress| 00082f20 70 72 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |pr.This header d| 00082f30 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 00082f40 73 20 66 6f 72 20 61 63 63 65 73 73 69 6e 67 20 |s for accessing | 00082f50 73 70 72 69 74 65 20 72 65 73 6f 75 72 63 65 73 |sprite resources| 00082f60 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 00082f70 69 6e 64 65 6e 74 20 31 0a 23 74 61 62 6c 65 20 |indent 1.#table | 00082f80 63 6f 6c 75 6d 6e 73 20 32 0a 3c 72 65 73 73 70 |columns 2.<ressp| 00082f90 72 5f 69 6e 69 74 3e 0a 3c 72 65 73 73 70 72 5f |r_init>.<resspr_| 00082fa0 61 72 65 61 3e 0a 23 65 6e 64 74 61 62 6c 65 00 |area>.#endtable.| 00082fb0 44 49 52 24 4c 00 00 00 4c 00 00 00 fc 2f 08 00 |DIR$L...L..../..| 00082fc0 46 ff ff ff 22 42 da 24 b2 00 00 00 13 00 00 00 |F..."B.$........| 00082fd0 00 00 00 00 61 72 65 61 00 00 00 00 b0 30 08 00 |....area.....0..| 00082fe0 46 ff ff ff d7 24 da 24 f8 00 00 00 13 00 00 00 |F....$.$........| 00082ff0 00 00 00 00 69 6e 69 74 00 00 00 00 44 41 54 41 |....init....DATA| 00083000 b2 00 00 00 72 65 73 73 70 72 5f 61 72 65 61 0a |....resspr_area.| 00083010 53 79 6e 74 61 78 3a 09 3c 73 70 72 69 74 65 5f |Syntax:.<sprite_| 00083020 61 72 65 61 3e 20 2a 72 65 73 73 70 72 5f 61 72 |area> *resspr_ar| 00083030 65 61 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |ea (void);.Heade| 00083040 72 3a 09 3c 72 65 73 73 70 72 2e 68 3d 3e 72 65 |r:.<resspr.h=>re| 00083050 73 73 70 72 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |sspr>..This func| 00083060 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 70 |tion returns a p| 00083070 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 73 70 |ointer to the sp| 00083080 72 69 74 65 20 61 72 65 61 20 69 6e 74 6f 20 77 |rite area into w| 00083090 68 69 63 68 20 79 6f 75 72 20 73 70 72 69 74 65 |hich your sprite| 000830a0 73 20 77 65 72 65 20 6c 6f 61 64 65 64 2e 00 00 |s were loaded...| 000830b0 44 41 54 41 f8 00 00 00 72 65 73 73 70 72 5f 69 |DATA....resspr_i| 000830c0 6e 69 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |nit.Syntax:.void| 000830d0 20 72 65 73 73 70 72 5f 69 6e 69 74 20 28 76 6f | resspr_init (vo| 000830e0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 65 |id);.Header:.<re| 000830f0 73 73 70 72 2e 68 3d 3e 72 65 73 73 70 72 3e 0a |sspr.h=>resspr>.| 00083100 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d |.This function m| 00083110 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 62 65 |ust be called be| 00083120 66 6f 72 65 20 61 6e 79 20 6f 74 68 65 72 20 2a |fore any other *| 00083130 72 65 73 73 70 72 2a 20 66 75 6e 63 74 69 6f 6e |resspr* function| 00083140 73 20 61 6e 64 20 62 65 66 6f 72 65 20 75 73 69 |s and before usi| 00083150 6e 67 20 3c 74 65 6d 70 6c 61 74 65 5f 69 6e 69 |ng <template_ini| 00083160 74 3e 2e 20 49 74 20 72 65 61 64 73 20 69 6e 20 |t>. It reads in | 00083170 79 6f 75 72 20 73 70 72 69 74 65 73 20 28 49 20 |your sprites (I | 00083180 61 73 73 75 6d 65 20 3c 72 65 73 5f 69 6e 69 74 |assume <res_init| 00083190 3e 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 |> must be called| 000831a0 20 66 69 72 73 74 29 2e 44 49 52 24 74 00 00 00 | first).DIR$t...| 000831b0 74 00 00 00 1c 32 08 00 46 ff ff ff c9 b9 b5 24 |t....2..F......$| 000831c0 f0 00 00 00 13 00 00 00 00 00 00 00 66 69 6e 64 |............find| 000831d0 6e 61 6d 65 00 00 00 00 0c 33 08 00 46 ff ff ff |name.....3..F...| 000831e0 70 b2 b5 24 42 01 00 00 13 00 00 00 00 00 00 00 |p..$B...........| 000831f0 69 6e 69 74 00 00 00 00 50 34 08 00 46 ff ff ff |init....P4..F...| 00083200 e8 be b5 24 1e 01 00 00 13 00 00 00 00 00 00 00 |...$............| 00083210 6f 70 65 6e 66 69 6c 65 00 00 00 00 44 41 54 41 |openfile....DATA| 00083220 f0 00 00 00 72 65 73 5f 66 69 6e 64 6e 61 6d 65 |....res_findname| 00083230 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 72 65 73 |.Syntax:.int res| 00083240 5f 66 69 6e 64 6e 61 6d 65 20 28 63 68 61 72 20 |_findname (char | 00083250 2a 6c 65 61 66 2c 20 63 68 61 72 20 2a 62 75 66 |*leaf, char *buf| 00083260 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 65 73 2e |);.Header:.<res.| 00083270 68 3d 3e 72 65 73 3e 0a 0a 52 65 74 75 72 6e 73 |h=>res>..Returns| 00083280 3a 09 3c 54 52 55 45 3e 20 28 61 6c 77 61 79 73 |:.<TRUE> (always| 00083290 21 29 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |!)...This functi| 000832a0 6f 6e 20 61 64 64 73 20 74 68 65 20 70 72 65 66 |on adds the pref| 000832b0 69 78 20 73 70 65 63 69 66 69 65 64 20 77 68 65 |ix specified whe| 000832c0 6e 20 63 61 6c 6c 69 6e 67 20 3c 72 65 73 5f 69 |n calling <res_i| 000832d0 6e 69 74 3e 2c 20 74 6f 20 74 68 65 20 6c 65 61 |nit>, to the lea| 000832e0 66 20 6e 61 6d 65 20 67 69 76 65 6e 20 61 6e 64 |f name given and| 000832f0 20 70 6c 61 63 65 73 20 74 68 65 20 72 65 73 75 | places the resu| 00083300 6c 74 20 69 6e 20 2f 62 75 66 2f 2e 44 41 54 41 |lt in /buf/.DATA| 00083310 42 01 00 00 72 65 73 5f 69 6e 69 74 0a 53 79 6e |B...res_init.Syn| 00083320 74 61 78 3a 09 76 6f 69 64 20 72 65 73 5f 69 6e |tax:.void res_in| 00083330 69 74 20 28 63 68 61 72 20 2a 70 72 6f 67 6e 61 |it (char *progna| 00083340 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 72 65 |me);.Header:.<re| 00083350 73 2e 68 3d 3e 72 65 73 3e 0a 0a 54 68 69 73 20 |s.h=>res>..This | 00083360 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c |function initial| 00083370 69 73 65 73 20 74 68 65 20 52 65 73 6f 75 72 63 |ises the Resourc| 00083380 65 20 73 79 73 74 65 6d 2e 20 59 6f 75 20 73 68 |e system. You sh| 00083390 6f 75 6c 64 20 63 61 6c 6c 20 69 74 20 77 69 74 |ould call it wit| 000833a0 68 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 79 6f |h the name of yo| 000833b0 75 72 20 70 72 6f 67 72 61 6d 2e 20 49 74 20 77 |ur program. It w| 000833c0 69 6c 6c 20 75 73 65 20 22 5c 3c 4d 79 50 72 6f |ill use "\<MyPro| 000833d0 67 24 44 69 72 3e 2e 22 20 74 6f 20 70 72 65 66 |g$Dir>." to pref| 000833e0 69 78 20 72 65 73 6f 75 72 63 65 20 66 69 6c 65 |ix resource file| 000833f0 73 2c 20 69 66 20 79 6f 75 20 70 61 73 73 20 22 |s, if you pass "| 00083400 4d 79 50 72 6f 67 22 20 74 6f 20 69 74 20 28 73 |MyProg" to it (s| 00083410 6f 20 79 6f 75 20 6d 75 73 74 20 68 61 76 65 20 |o you must have | 00083420 64 65 66 69 6e 65 64 20 74 68 65 20 73 79 73 74 |defined the syst| 00083430 65 6d 20 76 61 72 69 61 62 6c 65 20 69 6e 20 79 |em variable in y| 00083440 6f 75 72 20 21 52 75 6e 20 66 69 6c 65 2e 00 00 |our !Run file...| 00083450 44 41 54 41 1e 01 00 00 72 65 73 5f 6f 70 65 6e |DATA....res_open| 00083460 66 69 6c 65 0a 53 79 6e 74 61 78 3a 09 3c 46 49 |file.Syntax:.<FI| 00083470 4c 45 3e 20 2a 72 65 73 5f 6f 70 65 6e 66 69 6c |LE> *res_openfil| 00083480 65 20 28 63 68 61 72 20 2a 6c 65 61 66 2c 20 63 |e (char *leaf, c| 00083490 68 61 72 20 2a 6d 6f 64 65 29 3b 0a 48 65 61 64 |har *mode);.Head| 000834a0 65 72 3a 09 3c 72 65 73 2e 68 3d 3e 72 65 73 3e |er:.<res.h=>res>| 000834b0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000834c0 65 72 20 74 6f 20 74 68 65 20 66 69 6c 65 2c 20 |er to the file, | 000834d0 6f 72 20 3c 4e 55 4c 4c 3e 2e 0a 0a 54 68 69 73 |or <NULL>...This| 000834e0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 | function calls | 000834f0 3c 72 65 73 5f 66 69 6e 64 6e 61 6d 65 3e 20 6f |<res_findname> o| 00083500 6e 20 74 68 65 20 67 69 76 65 6e 20 6c 65 61 66 |n the given leaf| 00083510 20 6e 61 6d 65 2c 20 61 6e 64 20 74 68 65 6e 20 | name, and then | 00083520 63 61 6c 6c 73 20 3c 66 6f 70 65 6e 3e 20 74 6f |calls <fopen> to| 00083530 20 61 74 74 65 6d 70 74 20 74 6f 20 6f 70 65 6e | attempt to open| 00083540 20 74 68 65 20 66 69 6c 65 20 61 63 63 6f 72 64 | the file accord| 00083550 69 6e 67 20 74 6f 20 74 68 65 20 3c 6d 6f 64 65 |ing to the <mode| 00083560 3d 3e 66 69 6c 65 5f 6d 6f 64 65 5f 3e 2e 00 00 |=>file_mode_>...| 00083570 44 41 54 41 10 02 00 00 72 65 74 75 72 6e 0a 54 |DATA....return.T| 00083580 68 69 73 20 6b 65 79 77 6f 72 64 20 69 6d 6d 65 |his keyword imme| 00083590 64 69 61 74 65 6c 79 20 6a 75 6d 70 73 20 6f 75 |diately jumps ou| 000835a0 74 20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 |t of a function | 000835b0 62 61 63 6b 20 74 6f 20 74 68 65 20 70 6f 69 6e |back to the poin| 000835c0 74 20 61 74 20 77 68 69 63 68 20 69 74 20 77 61 |t at which it wa| 000835d0 73 20 63 61 6c 6c 65 64 2e 20 49 74 20 6d 61 79 |s called. It may| 000835e0 20 62 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 | be followed by | 000835f0 61 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 |a value for the | 00083600 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 |function to retu| 00083610 72 6e 2c 20 69 66 20 74 68 65 20 66 75 6e 63 74 |rn, if the funct| 00083620 69 6f 6e 20 69 73 20 64 65 66 69 6e 65 64 20 61 |ion is defined a| 00083630 73 20 6f 6e 65 20 72 65 74 75 72 6e 69 6e 67 20 |s one returning | 00083640 76 61 6c 75 65 73 2e 0a 0a 65 67 0a 23 66 43 6f |values...eg.#fCo| 00083650 64 65 0a 20 20 20 20 20 76 6f 69 64 20 74 65 73 |de. void tes| 00083660 74 31 20 28 69 6e 74 20 61 2c 20 69 6e 74 20 2a |t1 (int a, int *| 00083670 62 29 0a 20 20 20 20 20 5c 7b 0a 20 20 20 20 20 |b). \{. | 00083680 20 20 20 69 66 20 28 61 3d 3d 32 29 20 72 65 74 | if (a==2) ret| 00083690 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 62 5b 30 |urn;. b[0| 000836a0 5d 3d 61 3b 0a 20 20 20 20 20 7d 0a 23 66 0a 0a |]=a;. }.#f..| 000836b0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 |This function se| 000836c0 74 73 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 |ts the first ele| 000836d0 6d 65 6e 74 20 69 6e 20 74 68 65 20 61 72 72 61 |ment in the arra| 000836e0 79 20 2f 62 2f 20 74 6f 20 74 68 65 20 76 61 6c |y /b/ to the val| 000836f0 75 65 20 6f 66 20 2f 61 2f 2c 20 73 6f 20 6c 6f |ue of /a/, so lo| 00083700 6e 67 20 61 73 20 2f 61 2f 20 69 73 20 6e 6f 74 |ng as /a/ is not| 00083710 20 32 2e 0a 0a 23 66 43 6f 64 65 0a 20 20 20 20 | 2...#fCode. | 00083720 69 6e 74 20 73 71 75 61 72 65 20 28 69 6e 74 20 |int square (int | 00083730 61 29 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 |a). \{. | 00083740 20 20 72 65 74 75 72 6e 20 61 2a 61 3b 0a 20 20 | return a*a;. | 00083750 20 20 7d 0a 23 66 0a 0a 54 68 69 73 20 66 75 6e | }.#f..This fun| 00083760 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 |ction returns th| 00083770 65 20 73 71 75 61 72 65 20 6f 66 20 2f 61 2f 2e |e square of /a/.| 00083780 44 41 54 41 d3 00 00 00 72 65 77 69 6e 64 0a 53 |DATA....rewind.S| 00083790 79 6e 74 61 78 3a 09 76 6f 69 64 20 72 65 77 69 |yntax:.void rewi| 000837a0 6e 64 20 28 3c 46 49 4c 45 3e 20 2a 73 74 72 65 |nd (<FILE> *stre| 000837b0 61 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 |am);.Header:.<st| 000837c0 64 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 54 |dio.h=>stdio>..T| 000837d0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 000837e0 73 20 74 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 |s the file point| 000837f0 65 72 20 66 6f 72 20 74 68 65 20 73 74 72 65 61 |er for the strea| 00083800 6d 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 |m to the beginni| 00083810 6e 67 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 20 |ng of the file. | 00083820 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 |It is equivalent| 00083830 20 74 6f 20 3c 66 73 65 65 6b 3e 28 73 74 72 65 | to <fseek>(stre| 00083840 61 6d 2c 20 30 2c 20 3c 53 45 45 4b 5f 53 45 54 |am, 0, <SEEK_SET| 00083850 3e 29 3b 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |>);.DIR$,...,...| 00083860 80 38 08 00 46 fd ff ff 34 7b 5a 26 87 01 00 00 |.8..F...4{Z&....| 00083870 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 00083880 44 41 54 41 87 01 00 00 52 49 53 43 20 4f 53 20 |DATA....RISC OS | 00083890 46 75 6e 63 74 69 6f 6e 73 0a 52 49 53 43 20 4f |Functions.RISC O| 000838a0 53 20 46 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 |S Functions are | 000838b0 70 72 6f 76 69 64 65 64 20 62 79 20 65 61 63 68 |provided by each| 000838c0 20 6f 66 20 74 68 65 20 41 72 63 68 69 6d 65 64 | of the Archimed| 000838d0 65 73 20 43 20 63 6f 6d 70 69 6c 65 72 73 2c 20 |es C compilers, | 000838e0 61 6e 64 20 61 6c 73 6f 20 62 79 20 74 68 65 20 |and also by the | 000838f0 66 72 65 65 77 61 72 65 20 6c 69 62 72 61 72 69 |freeware librari| 00083900 65 73 20 22 44 65 73 6b 4c 69 62 22 20 61 6e 64 |es "DeskLib" and| 00083910 20 22 54 69 6d 73 4c 69 62 22 2e 0a 0a 23 53 70 | "TimsLib"...#Sp| 00083920 72 69 74 65 20 32 30 38 2c 31 32 38 20 21 61 6e |rite 208,128 !an| 00083930 73 69 63 3b 69 6e 64 65 6e 74 20 32 32 0a 3c 44 |sic;indent 22.<D| 00083940 65 73 6b 74 6f 70 20 43 20 28 41 63 6f 72 6e 29 |esktop C (Acorn)| 00083950 3d 3e 72 6f 5f 61 6e 73 69 63 5f 3e 0a 0a 0a 23 |=>ro_ansic_>...#| 00083960 53 70 72 69 74 65 20 32 30 38 2c 32 33 36 20 21 |Sprite 208,236 !| 00083970 65 61 73 79 63 0a 3c 45 61 73 79 20 43 20 28 42 |easyc.<Easy C (B| 00083980 65 65 62 75 67 29 3d 3e 72 6f 5f 65 61 73 79 63 |eebug)=>ro_easyc| 00083990 5f 3e 0a 0a 0a 23 53 70 72 69 74 65 20 32 30 38 |_>...#Sprite 208| 000839a0 2c 33 34 34 20 21 64 65 73 6b 6c 69 62 0a 3c 44 |,344 !desklib.<D| 000839b0 65 73 6b 4c 69 62 20 28 46 72 65 65 77 61 72 65 |eskLib (Freeware| 000839c0 29 3d 3e 72 6f 5f 64 6c 69 62 5f 3e 0a 0a 0a 23 |)=>ro_dlib_>...#| 000839d0 53 70 72 69 74 65 20 32 30 38 2c 34 35 32 20 21 |Sprite 208,452 !| 000839e0 74 69 6d 73 6c 69 62 0a 3c 54 69 6d 73 4c 69 62 |timslib.<TimsLib| 000839f0 20 28 46 72 65 65 77 61 72 65 29 3d 3e 72 6f 5f | (Freeware)=>ro_| 00083a00 74 6c 69 62 5f 3e 0a 00 44 49 52 24 88 00 00 00 |tlib_>..DIR$....| 00083a10 88 00 00 00 90 3a 08 00 46 fd ff ff 0e b6 ee 24 |.....:..F......$| 00083a20 9e 00 00 00 13 00 00 00 00 00 00 00 66 69 6c 65 |............file| 00083a30 5f 00 00 00 30 3b 08 00 46 fd ff ff 1b 2c ed 24 |_...0;..F....,.$| 00083a40 ab 01 00 00 13 00 00 00 00 00 00 00 67 72 61 70 |............grap| 00083a50 68 5f 00 00 dc 3c 08 00 46 fd ff ff 78 be ee 24 |h_...<..F...x..$| 00083a60 90 00 00 00 13 00 00 00 00 00 00 00 69 6f 5f 00 |............io_.| 00083a70 6c 3d 08 00 46 fd ff ff 1e 0f ef 24 8d 00 00 00 |l=..F......$....| 00083a80 13 00 00 00 00 00 00 00 6d 69 73 63 5f 00 00 00 |........misc_...| 00083a90 44 41 54 41 9e 00 00 00 46 69 6c 65 20 48 61 6e |DATA....File Han| 00083aa0 64 6c 69 6e 67 20 46 75 6e 63 74 69 6f 6e 73 0a |dling Functions.| 00083ab0 23 50 61 72 65 6e 74 20 72 6f 73 6c 69 62 0a 54 |#Parent roslib.T| 00083ac0 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 |hese functions a| 00083ad0 6c 6c 20 61 63 74 20 6f 6e 20 66 69 6c 65 73 20 |ll act on files | 00083ae0 69 6e 20 73 6f 6d 65 20 77 61 79 2e 0a 0a 23 54 |in some way...#T| 00083af0 61 62 6c 65 20 6c 69 6e 65 73 20 31 0a 3c 6f 73 |able lines 1.<os| 00083b00 5f 61 72 67 73 3e 0a 3c 6f 73 5f 66 69 6c 65 3e |_args>.<os_file>| 00083b10 0a 3c 6f 73 5f 66 69 6e 64 3e 0a 3c 6f 73 5f 67 |.<os_find>.<os_g| 00083b20 62 70 62 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 |bpb>.#EndTable..| 00083b30 44 41 54 41 ab 01 00 00 47 72 61 70 68 69 63 73 |DATA....Graphics| 00083b40 20 46 75 6e 63 74 69 6f 6e 73 0a 23 50 61 72 65 | Functions.#Pare| 00083b50 6e 74 20 72 6f 73 6c 69 62 0a 54 68 65 73 65 20 |nt roslib.These | 00083b60 66 75 6e 63 74 69 6f 6e 73 20 61 6c 6c 20 61 66 |functions all af| 00083b70 66 65 63 74 20 74 68 65 20 73 63 72 65 65 6e 20 |fect the screen | 00083b80 64 69 73 70 6c 61 79 20 69 6e 20 73 6f 6d 65 20 |display in some | 00083b90 77 61 79 2e 0a 0a 23 69 6e 64 65 6e 74 20 35 0a |way...#indent 5.| 00083ba0 23 54 61 62 6c 65 20 39 20 31 36 0a 3c 6f 73 5f |#Table 9 16.<os_| 00083bb0 63 69 72 63 6c 65 3e 0a 3c 6f 73 5f 63 69 72 63 |circle>.<os_circ| 00083bc0 6c 65 66 69 6c 6c 3e 0a 3c 6f 73 5f 63 6c 67 3e |lefill>.<os_clg>| 00083bd0 0a 3c 6f 73 5f 63 6c 73 3e 0a 3c 6f 73 5f 63 6f |.<os_cls>.<os_co| 00083be0 6c 6f 75 72 3e 0a 3c 6f 73 5f 63 75 72 73 6f 72 |lour>.<os_cursor| 00083bf0 3e 0a 3c 6f 73 5f 64 72 61 77 3e 0a 3c 6f 73 5f |>.<os_draw>.<os_| 00083c00 64 72 61 77 62 79 3e 0a 3c 6f 73 5f 66 69 6c 6c |drawby>.<os_fill| 00083c10 3e 0a 3c 6f 73 5f 67 63 6f 6c 3e 0a 3c 6f 73 5f |>.<os_gcol>.<os_| 00083c20 6d 6f 64 65 3e 0a 3c 6f 73 5f 6d 6f 76 65 3e 0a |mode>.<os_move>.| 00083c30 3c 6f 73 5f 6d 6f 76 65 62 79 3e 0a 3c 6f 73 5f |<os_moveby>.<os_| 00083c40 6f 72 69 67 69 6e 3e 0a 3c 6f 73 5f 70 61 6c 65 |origin>.<os_pale| 00083c50 74 74 65 3e 0a 3c 6f 73 5f 70 6c 6f 74 3e 0a 3c |tte>.<os_plot>.<| 00083c60 6f 73 5f 70 6f 69 6e 74 3e 0a 3c 6f 73 5f 70 6f |os_point>.<os_po| 00083c70 73 3e 0a 3c 6f 73 5f 72 65 63 74 61 6e 67 6c 65 |s>.<os_rectangle| 00083c80 3e 20 20 20 0a 3c 6f 73 5f 72 65 63 74 61 6e 67 |> .<os_rectang| 00083c90 6c 65 66 69 6c 6c 3e 0a 3c 6f 73 5f 74 61 62 3e |lefill>.<os_tab>| 00083ca0 0a 3c 6f 73 5f 74 69 6e 74 3e 0a 3c 6f 73 5f 76 |.<os_tint>.<os_v| 00083cb0 64 75 3e 0a 3c 6f 73 5f 76 64 75 71 3e 0a 3c 6f |du>.<os_vduq>.<o| 00083cc0 73 5f 76 64 75 77 3e 0a 3c 6f 73 5f 76 70 6f 73 |s_vduw>.<os_vpos| 00083cd0 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 00083ce0 90 00 00 00 49 6e 70 75 74 2f 4f 75 74 70 75 74 |....Input/Output| 00083cf0 20 46 75 6e 63 74 69 6f 6e 73 0a 54 68 65 73 65 | Functions.These| 00083d00 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 61 | functions are a| 00083d10 6c 6c 20 63 6f 6e 63 65 72 6e 65 64 20 77 69 74 |ll concerned wit| 00083d20 68 20 69 6e 70 75 74 20 61 6e 64 2f 6f 72 20 6f |h input and/or o| 00083d30 75 74 70 75 74 2e 0a 0a 23 54 61 62 6c 65 20 31 |utput...#Table 1| 00083d40 20 31 36 0a 3c 6f 73 5f 61 64 76 61 6c 3e 0a 3c | 16.<os_adval>.<| 00083d50 6f 73 5f 67 65 74 3e 0a 3c 6f 73 5f 69 6e 6b 65 |os_get>.<os_inke| 00083d60 79 3e 0a 23 45 6e 64 54 61 62 6c 65 44 41 54 41 |y>.#EndTableDATA| 00083d70 8d 00 00 00 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 |....Miscellaneou| 00083d80 73 20 46 75 6e 63 74 69 6f 6e 73 0a 23 50 61 72 |s Functions.#Par| 00083d90 65 6e 74 20 72 6f 73 6c 69 62 0a 23 54 61 62 6c |ent roslib.#Tabl| 00083da0 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 6f 73 5f |e columns 3.<os_| 00083db0 62 79 74 65 3e 0a 3c 6f 73 5f 63 6c 69 3e 0a 3c |byte>.<os_cli>.<| 00083dc0 6f 73 5f 72 6e 64 3e 0a 3c 6f 73 5f 73 6f 75 6e |os_rnd>.<os_soun| 00083dd0 64 3e 0a 3c 6f 73 5f 73 77 69 3e 0a 3c 6f 73 5f |d>.<os_swi>.<os_| 00083de0 73 77 69 78 3e 0a 3c 6f 73 5f 77 6f 72 64 3e 0a |swix>.<os_word>.| 00083df0 23 45 6e 64 54 61 62 6c 65 00 00 00 44 41 54 41 |#EndTable...DATA| 00083e00 25 02 00 00 72 6f 73 6c 69 62 2e 68 0a 23 50 61 |%...roslib.h.#Pa| 00083e10 72 65 6e 74 20 72 6f 5f 65 61 73 79 63 5f 0a 54 |rent ro_easyc_.T| 00083e20 68 65 20 5c 3c 72 6f 73 6c 69 62 2e 68 5c 3e 20 |he \<roslib.h\> | 00083e30 68 65 61 64 65 72 20 64 65 66 69 6e 65 73 20 71 |header defines q| 00083e40 75 69 74 65 20 61 20 66 65 77 20 66 75 6e 63 74 |uite a few funct| 00083e50 69 6f 6e 73 20 77 68 69 63 68 20 61 63 63 65 73 |ions which acces| 00083e60 73 20 74 68 65 20 62 75 69 6c 74 20 69 6e 20 66 |s the built in f| 00083e70 65 61 74 75 72 65 73 20 69 6e 20 52 49 53 43 20 |eatures in RISC | 00083e80 4f 53 2e 20 4f 62 76 69 6f 75 73 6c 79 2c 20 70 |OS. Obviously, p| 00083e90 72 6f 67 72 61 6d 73 20 75 73 69 6e 67 20 74 68 |rograms using th| 00083ea0 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 |ese functions wi| 00083eb0 6c 6c 20 6e 6f 74 20 62 65 20 70 6f 72 74 61 62 |ll not be portab| 00083ec0 6c 65 20 62 65 74 77 65 65 6e 20 64 69 66 66 65 |le between diffe| 00083ed0 72 65 6e 74 20 63 6f 6d 70 75 74 65 72 73 20 75 |rent computers u| 00083ee0 6e 6c 65 73 73 20 74 68 65 20 73 61 6d 65 20 66 |nless the same f| 00083ef0 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 61 76 61 |unctions are ava| 00083f00 69 6c 61 62 6c 65 20 6f 6e 20 62 6f 74 68 2e 20 |ilable on both. | 00083f10 49 74 20 61 6c 73 6f 20 64 65 66 69 6e 65 73 20 |It also defines | 00083f20 66 6f 75 72 20 74 79 70 65 73 2e 0a 0a 46 75 6e |four types...Fun| 00083f30 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 |ctions:..#Indent| 00083f40 20 31 32 0a 23 54 61 62 6c 65 20 32 20 32 33 0a | 12.#Table 2 23.| 00083f50 3c 47 72 61 70 68 69 63 73 3d 3e 72 6c 5f 67 72 |<Graphics=>rl_gr| 00083f60 61 70 68 5f 3e 0a 3c 46 69 6c 65 20 68 61 6e 64 |aph_>.<File hand| 00083f70 6c 69 6e 67 3d 3e 72 6c 5f 66 69 6c 65 5f 3e 0a |ling=>rl_file_>.| 00083f80 3c 49 6e 70 75 74 2f 4f 75 74 70 75 74 3d 3e 72 |<Input/Output=>r| 00083f90 6c 5f 69 6f 5f 3e 0a 3c 4d 69 73 63 65 6c 6c 61 |l_io_>.<Miscella| 00083fa0 6e 65 6f 75 73 3d 3e 72 6c 5f 6d 69 73 63 5f 3e |neous=>rl_misc_>| 00083fb0 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 |.#EndTable..#Ind| 00083fc0 65 6e 74 20 30 0a 54 79 70 65 73 3a 0a 0a 23 49 |ent 0.Types:..#I| 00083fd0 6e 64 65 6e 74 20 36 0a 23 54 61 62 6c 65 20 6c |ndent 6.#Table l| 00083fe0 69 6e 65 73 20 31 0a 3c 6f 73 5f 65 72 72 6f 72 |ines 1.<os_error| 00083ff0 3e 0a 3c 6f 73 5f 66 69 6c 65 73 74 72 3e 0a 3c |>.<os_filestr>.<| 00084000 6f 73 5f 67 62 70 62 73 74 72 3e 0a 3c 6f 73 5f |os_gbpbstr>.<os_| 00084010 72 65 67 73 65 74 3e 0a 23 45 6e 64 54 61 62 6c |regset>.#EndTabl| 00084020 65 00 00 00 44 49 52 24 8c 00 00 00 8c 00 00 00 |e...DIR$........| 00084030 b0 40 08 00 46 fd ff ff 5b 89 5a 26 ce 04 00 00 |.@..F...[.Z&....| 00084040 13 00 00 00 00 00 00 00 61 6e 73 69 63 5f 00 00 |........ansic_..| 00084050 80 45 08 00 46 fd ff ff ac a3 5a 26 62 05 00 00 |.E..F.....Z&b...| 00084060 13 00 00 00 00 00 00 00 64 6c 69 62 5f 00 00 00 |........dlib_...| 00084070 e4 4a 08 00 46 fd ff ff 97 7d 5a 26 1c 01 00 00 |.J..F....}Z&....| 00084080 13 00 00 00 00 00 00 00 65 61 73 79 63 5f 00 00 |........easyc_..| 00084090 00 4c 08 00 46 fd ff ff 7b 8e 5a 26 b2 05 00 00 |.L..F...{.Z&....| 000840a0 13 00 00 00 00 00 00 00 74 6c 69 62 5f 00 00 00 |........tlib_...| 000840b0 44 41 54 41 ce 04 00 00 44 65 73 6b 74 6f 70 20 |DATA....Desktop | 000840c0 43 20 52 49 53 43 20 4f 53 20 46 75 6e 63 74 69 |C RISC OS Functi| 000840d0 6f 6e 73 0a 23 50 61 72 65 6e 74 20 72 69 73 63 |ons.#Parent risc| 000840e0 6f 73 5f 0a 23 49 6e 64 65 6e 74 20 36 0a 23 53 |os_.#Indent 6.#S| 000840f0 70 72 69 74 65 20 30 2c 30 20 21 61 6e 73 69 63 |prite 0,0 !ansic| 00084100 0a 44 65 73 6b 74 6f 70 20 43 20 66 75 6e 63 74 |.Desktop C funct| 00084110 69 6f 6e 73 20 61 72 65 20 67 72 6f 75 70 65 64 |ions are grouped| 00084120 20 69 6e 74 6f 20 35 30 20 68 65 61 64 65 72 20 | into 50 header | 00084130 66 69 6c 65 73 2e 20 41 6c 6c 20 74 68 65 20 72 |files. All the r| 00084140 6f 75 74 69 6e 65 73 20 61 72 65 20 63 6f 6e 74 |outines are cont| 00084150 61 69 6e 65 64 20 69 6e 20 74 68 65 20 7b 2a 7d |ained in the {*}| 00084160 52 49 53 43 4f 53 5f 4c 69 62 7b 2a 7d 20 6c 69 |RISCOS_Lib{*} li| 00084170 62 72 61 72 79 2e 0a 0a 23 49 6e 64 65 6e 74 20 |brary...#Indent | 00084180 37 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 |7.#Table columns| 00084190 20 34 0a 3c 61 6b 62 64 2e 68 3d 3e 61 6b 62 64 | 4.<akbd.h=>akbd| 000841a0 3e 0a 3c 61 6c 61 72 6d 2e 68 3d 3e 61 6c 61 72 |>.<alarm.h=>alar| 000841b0 6d 3e 0a 3c 62 61 72 69 63 6f 6e 2e 68 3d 3e 62 |m>.<baricon.h=>b| 000841c0 61 72 69 63 6f 6e 5f 68 3e 0a 3c 62 62 63 2e 68 |aricon_h>.<bbc.h| 000841d0 3d 3e 62 62 63 3e 0a 3c 63 6f 6c 6f 75 72 6d 65 |=>bbc>.<colourme| 000841e0 6e 75 2e 68 3d 3e 63 6f 6c 6f 75 72 6d 65 6e 75 |nu.h=>colourmenu| 000841f0 3e 0a 3c 63 6f 6c 6f 75 72 74 72 61 6e 2e 68 3d |>.<colourtran.h=| 00084200 3e 63 6f 6c 6f 75 72 74 72 61 6e 5f 68 3e 0a 3c |>colourtran_h>.<| 00084210 63 6f 6f 72 64 73 2e 68 3d 3e 63 6f 6f 72 64 73 |coords.h=>coords| 00084220 3e 0a 3c 64 62 6f 78 2e 68 3d 3e 64 62 6f 78 5f |>.<dbox.h=>dbox_| 00084230 68 3e 0a 3c 64 62 6f 78 66 69 6c 65 2e 68 3d 3e |h>.<dboxfile.h=>| 00084240 64 62 6f 78 66 69 6c 65 3e 0a 3c 64 62 6f 78 71 |dboxfile>.<dboxq| 00084250 75 65 72 79 2e 68 3d 3e 64 62 6f 78 71 75 65 72 |uery.h=>dboxquer| 00084260 79 3e 0a 3c 64 62 6f 78 74 63 6f 6c 2e 68 3d 3e |y>.<dboxtcol.h=>| 00084270 64 62 6f 78 74 63 6f 6c 3e 0a 3c 64 72 61 77 66 |dboxtcol>.<drawf| 00084280 64 69 61 67 2e 68 3d 3e 64 72 61 77 66 64 69 61 |diag.h=>drawfdia| 00084290 67 3e 0a 3c 64 72 61 77 66 65 72 72 6f 72 2e 68 |g>.<drawferror.h| 000842a0 3d 3e 64 72 61 77 66 65 72 72 6f 72 3e 0a 3c 64 |=>drawferror>.<d| 000842b0 72 61 77 66 6f 62 6a 2e 68 3d 3e 64 72 61 77 66 |rawfobj.h=>drawf| 000842c0 6f 62 6a 3e 0a 3c 64 72 61 77 66 74 79 70 65 73 |obj>.<drawftypes| 000842d0 2e 68 3d 3e 64 72 61 77 66 74 79 70 65 73 3e 0a |.h=>drawftypes>.| 000842e0 3c 64 72 61 77 6d 6f 64 2e 68 3d 3e 64 72 61 77 |<drawmod.h=>draw| 000842f0 6d 6f 64 3e 0a 3c 65 76 65 6e 74 2e 68 3d 3e 65 |mod>.<event.h=>e| 00084300 76 65 6e 74 5f 68 3e 0a 3c 66 69 6c 65 69 63 6f |vent_h>.<fileico| 00084310 6e 2e 68 3d 3e 66 69 6c 65 69 63 6f 6e 3e 0a 3c |n.h=>fileicon>.<| 00084320 66 6c 65 78 2e 68 3d 3e 66 6c 65 78 3e 0a 3c 66 |flex.h=>flex>.<f| 00084330 6f 6e 74 2e 68 3d 3e 66 6f 6e 74 5f 68 3e 0a 3c |ont.h=>font_h>.<| 00084340 66 6f 6e 74 6c 69 73 74 2e 68 3d 3e 66 6f 6e 74 |fontlist.h=>font| 00084350 6c 69 73 74 3e 0a 3c 66 6f 6e 74 73 65 6c 65 63 |list>.<fontselec| 00084360 74 2e 68 3d 3e 66 6f 6e 74 73 65 6c 65 63 74 3e |t.h=>fontselect>| 00084370 0a 3c 68 65 61 70 2e 68 3d 3e 68 65 61 70 3e 0a |.<heap.h=>heap>.| 00084380 3c 68 65 6c 70 2e 68 3d 3e 68 65 6c 70 3e 0a 3c |<help.h=>help>.<| 00084390 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 6e 65 6c |kernel.h=>kernel| 000843a0 3e 0a 3c 6d 61 67 6e 69 66 79 2e 68 3d 3e 6d 61 |>.<magnify.h=>ma| 000843b0 67 6e 69 66 79 3e 0a 3c 6d 65 6e 75 2e 68 3d 3e |gnify>.<menu.h=>| 000843c0 6d 65 6e 75 5f 68 3e 0a 3c 6d 73 67 73 2e 68 3d |menu_h>.<msgs.h=| 000843d0 3e 6d 73 67 73 5f 68 3e 0a 3c 6f 73 2e 68 3d 3e |>msgs_h>.<os.h=>| 000843e0 6f 73 3e 0a 3c 70 6f 69 6e 74 65 72 2e 68 3d 3e |os>.<pointer.h=>| 000843f0 70 6f 69 6e 74 65 72 3e 0a 3c 70 72 69 6e 74 2e |pointer>.<print.| 00084400 68 3d 3e 70 72 69 6e 74 3e 0a 3c 72 65 73 2e 68 |h=>print>.<res.h| 00084410 3d 3e 72 65 73 3e 0a 3c 72 65 73 73 70 72 2e 68 |=>res>.<resspr.h| 00084420 3d 3e 72 65 73 73 70 72 3e 0a 3c 73 61 76 65 61 |=>resspr>.<savea| 00084430 73 2e 68 3d 3e 73 61 76 65 61 73 3e 0a 3c 73 70 |s.h=>saveas>.<sp| 00084440 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 |rite.h=>sprite_h| 00084450 3e 0a 3c 74 65 6d 70 6c 61 74 65 2e 68 3d 3e 74 |>.<template.h=>t| 00084460 65 6d 70 6c 61 74 65 5f 68 3e 0a 3c 74 72 61 63 |emplate_h>.<trac| 00084470 65 2e 68 3d 3e 74 72 61 63 65 3e 0a 3c 74 78 74 |e.h=>trace>.<txt| 00084480 2e 68 3d 3e 74 78 74 5f 68 3e 0a 3c 74 78 74 65 |.h=>txt_h>.<txte| 00084490 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a |dit.h=>txtedit>.| 000844a0 3c 74 78 74 6f 70 74 2e 68 3d 3e 74 78 74 6f 70 |<txtopt.h=>txtop| 000844b0 74 3e 0a 3c 74 78 74 73 63 72 61 70 2e 68 3d 3e |t>.<txtscrap.h=>| 000844c0 74 78 74 73 63 72 61 70 3e 0a 3c 74 78 74 77 69 |txtscrap>.<txtwi| 000844d0 6e 2e 68 3d 3e 74 78 74 77 69 6e 3e 0a 3c 74 79 |n.h=>txtwin>.<ty| 000844e0 70 64 61 74 2e 68 3d 3e 74 79 70 64 61 74 3e 0a |pdat.h=>typdat>.| 000844f0 3c 76 69 73 64 65 6c 61 79 2e 68 3d 3e 76 69 73 |<visdelay.h=>vis| 00084500 64 65 6c 61 79 3e 0a 3c 77 65 72 72 2e 68 3d 3e |delay>.<werr.h=>| 00084510 77 65 72 72 3e 0a 3c 77 69 6d 70 2e 68 3d 3e 77 |werr>.<wimp.h=>w| 00084520 69 6d 70 5f 68 3e 0a 3c 77 69 6d 70 74 2e 68 3d |imp_h>.<wimpt.h=| 00084530 3e 77 69 6d 70 74 3e 0a 3c 77 69 6e 2e 68 3d 3e |>wimpt>.<win.h=>| 00084540 77 69 6e 3e 0a 3c 78 66 65 72 72 65 63 76 2e 68 |win>.<xferrecv.h| 00084550 3d 3e 78 66 65 72 72 65 63 76 3e 0a 3c 78 66 65 |=>xferrecv>.<xfe| 00084560 72 73 65 6e 64 2e 68 3d 3e 78 66 65 72 73 65 6e |rsend.h=>xfersen| 00084570 64 3e 0a 0a 0a 23 45 6e 64 54 61 62 6c 65 00 00 |d>...#EndTable..| 00084580 44 41 54 41 62 05 00 00 44 65 73 6b 4c 69 62 20 |DATAb...DeskLib | 00084590 52 49 53 43 20 4f 53 20 46 75 6e 63 74 69 6f 6e |RISC OS Function| 000845a0 73 0a 23 50 61 72 65 6e 74 20 72 69 73 63 6f 73 |s.#Parent riscos| 000845b0 5f 0a 23 49 6e 64 65 6e 74 20 36 0a 23 53 70 72 |_.#Indent 6.#Spr| 000845c0 69 74 65 20 30 2c 30 20 21 64 65 73 6b 6c 69 62 |ite 0,0 !desklib| 000845d0 0a 56 65 72 73 69 6f 6e 3a 20 32 2e 31 36 0a 44 |.Version: 2.16.D| 000845e0 65 73 6b 4c 69 62 20 66 75 6e 63 74 69 6f 6e 73 |eskLib functions| 000845f0 20 61 72 65 20 67 72 6f 75 70 65 64 20 69 6e 74 | are grouped int| 00084600 6f 20 34 39 20 68 65 61 64 65 72 20 66 69 6c 65 |o 49 header file| 00084610 73 2e 20 41 6c 6c 20 74 68 65 20 72 6f 75 74 69 |s. All the routi| 00084620 6e 65 73 20 61 72 65 20 63 6f 6e 74 61 69 6e 65 |nes are containe| 00084630 64 20 69 6e 20 74 68 65 20 44 65 73 6b 4c 69 62 |d in the DeskLib| 00084640 20 6c 69 62 72 61 72 79 2e 0a 0a 23 69 6e 64 65 | library...#inde| 00084650 6e 74 20 33 0a 23 54 61 62 6c 65 20 63 6f 6c 75 |nt 3.#Table colu| 00084660 6d 6e 73 20 34 0a 3c 43 6c 65 61 72 2e 68 3d 3e |mns 4.<Clear.h=>| 00084670 43 6c 65 61 72 3e 0a 3c 43 6f 6c 6f 75 72 4d 65 |Clear>.<ColourMe| 00084680 6e 75 2e 68 3d 3e 43 6f 6c 6f 75 72 4d 65 6e 75 |nu.h=>ColourMenu| 00084690 5f 44 4c 3e 0a 3c 43 6f 6c 6f 75 72 54 72 61 6e |_DL>.<ColourTran| 000846a0 2e 68 3d 3e 43 6f 6c 6f 75 72 54 72 61 6e 3e 0a |.h=>ColourTran>.| 000846b0 3c 43 6f 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 3e |<Coord.h=>Coord>| 000846c0 0a 3c 43 6f 72 65 2e 68 3d 3e 43 6f 72 65 3e 0a |.<Core.h=>Core>.| 000846d0 3c 44 69 61 6c 6f 67 2e 68 3d 3e 44 69 61 6c 6f |<Dialog.h=>Dialo| 000846e0 67 5f 68 3e 0a 3c 44 69 73 70 61 74 63 68 2e 68 |g_h>.<Dispatch.h| 000846f0 3d 3e 44 69 73 70 61 74 63 68 5f 68 3e 0a 3c 44 |=>Dispatch_h>.<D| 00084700 72 61 67 2e 68 3d 3e 44 72 61 67 3e 0a 3c 44 72 |rag.h=>Drag>.<Dr| 00084710 61 67 41 53 70 72 2e 68 3d 3e 44 72 61 67 41 53 |agASpr.h=>DragAS| 00084720 70 72 3e 0a 3c 45 72 72 6f 72 2e 68 3d 3e 45 72 |pr>.<Error.h=>Er| 00084730 72 6f 72 5f 68 3e 0a 3c 45 76 65 6e 74 2e 68 3d |ror_h>.<Event.h=| 00084740 3e 45 76 65 6e 74 3e 0a 3c 45 76 65 6e 74 4d 73 |>Event>.<EventMs| 00084750 67 2e 68 3d 3e 45 76 65 6e 74 4d 73 67 3e 0a 3c |g.h=>EventMsg>.<| 00084760 46 69 6c 65 2e 68 3d 3e 46 69 6c 65 5f 68 3e 0a |File.h=>File_h>.| 00084770 3c 46 69 6c 74 65 72 2e 68 3d 3e 46 69 6c 74 65 |<Filter.h=>Filte| 00084780 72 3e 0a 3c 46 6f 6e 74 2e 68 3d 3e 46 6f 6e 74 |r>.<Font.h=>Font| 00084790 3e 0a 3c 47 46 58 2e 68 3d 3e 47 46 58 3e 0a 3c |>.<GFX.h=>GFX>.<| 000847a0 48 61 6e 64 6c 65 72 2e 68 3d 3e 48 61 6e 64 6c |Handler.h=>Handl| 000847b0 65 72 3e 0a 3c 48 6f 75 72 67 6c 61 73 73 2e 68 |er>.<Hourglass.h| 000847c0 20 3d 3e 48 6f 75 72 67 6c 61 73 73 3e 0a 3c 49 | =>Hourglass>.<I| 000847d0 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 0a 3c 4b 62 |con.h=>Icon>.<Kb| 000847e0 64 2e 68 3d 3e 4b 62 64 3e 0a 3c 4b 65 72 6e 65 |d.h=>Kbd>.<Kerne| 000847f0 6c 53 57 49 73 2e 68 3d 3e 4b 65 72 6e 65 6c 53 |lSWIs.h=>KernelS| 00084800 57 49 73 3e 0a 3c 4b 65 79 43 6f 64 65 73 2e 68 |WIs>.<KeyCodes.h| 00084810 3d 3e 4b 65 79 43 6f 64 65 73 3e 0a 3c 4c 69 6e |=>KeyCodes>.<Lin| 00084820 6b 4c 69 73 74 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 |kList.h=>LinkLis| 00084830 74 3e 0a 3c 4d 65 6d 2e 68 3d 3e 4d 65 6d 3e 0a |t>.<Mem.h=>Mem>.| 00084840 3c 4d 65 6e 75 2e 68 3d 3e 44 4c 5f 4d 65 6e 75 |<Menu.h=>DL_Menu| 00084850 3e 0a 3c 4d 6f 64 75 6c 65 2e 68 3d 3e 4d 6f 64 |>.<Module.h=>Mod| 00084860 75 6c 65 3e 0a 3c 4d 73 67 73 2e 68 3d 3e 4d 73 |ule>.<Msgs.h=>Ms| 00084870 67 73 3e 0a 3c 50 61 6e 65 2e 68 3d 3e 50 61 6e |gs>.<Pane.h=>Pan| 00084880 65 3e 0a 3c 50 44 72 69 76 65 72 2e 68 3d 3e 50 |e>.<PDriver.h=>P| 00084890 44 72 69 76 65 72 3e 0a 3c 50 6f 69 6e 74 65 72 |Driver>.<Pointer| 000848a0 2e 68 3d 3e 44 4c 5f 50 6f 69 6e 74 65 72 3e 0a |.h=>DL_Pointer>.| 000848b0 3c 50 6f 70 55 70 2e 68 3d 3e 50 6f 70 55 70 3e |<PopUp.h=>PopUp>| 000848c0 0a 3c 52 65 73 6f 75 72 63 65 2e 68 3d 3e 52 65 |.<Resource.h=>Re| 000848d0 73 6f 75 72 63 65 3e 0a 3c 53 61 76 65 2e 68 3d |source>.<Save.h=| 000848e0 3e 53 61 76 65 3e 0a 3c 53 63 72 65 65 6e 2e 68 |>Save>.<Screen.h| 000848f0 3d 3e 53 63 72 65 65 6e 3e 0a 3c 53 65 72 69 61 |=>Screen>.<Seria| 00084900 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e 0a 3c 53 6c |l.h=>Serial>.<Sl| 00084910 69 64 65 72 2e 68 3d 3e 53 6c 69 64 65 72 3e 0a |ider.h=>Slider>.| 00084920 3c 53 6f 75 6e 64 2e 68 3d 3e 53 6f 75 6e 64 3e |<Sound.h=>Sound>| 00084930 0a 3c 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 |.<Sprite.h=>Spri| 00084940 74 65 5f 44 4c 3e 0a 3c 53 74 72 2e 68 3d 3e 53 |te_DL>.<Str.h=>S| 00084950 74 72 5f 44 4c 3e 0a 3c 53 74 72 69 6e 67 43 52 |tr_DL>.<StringCR| 00084960 2e 68 3d 3e 53 74 72 69 6e 67 43 52 3e 0a 3c 53 |.h=>StringCR>.<S| 00084970 57 49 2e 68 3d 3e 53 57 49 3e 0a 3c 54 65 6d 70 |WI.h=>SWI>.<Temp| 00084980 6c 61 74 65 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 |late.h=>Template| 00084990 3e 0a 3c 54 65 78 74 46 69 6c 65 2e 68 3d 3e 54 |>.<TextFile.h=>T| 000849a0 65 78 74 46 69 6c 65 3e 0a 3c 54 69 6d 65 2e 68 |extFile>.<Time.h| 000849b0 3d 3e 44 4c 5f 54 69 6d 65 3e 0a 3c 56 61 6c 69 |=>DL_Time>.<Vali| 000849c0 64 61 74 69 6f 6e 2e 68 3d 3e 56 61 6c 69 64 61 |dation.h=>Valida| 000849d0 74 69 6f 6e 3e 0a 3c 57 41 73 73 65 72 74 2e 68 |tion>.<WAssert.h| 000849e0 3d 3e 57 41 73 73 65 72 74 3e 0a 3c 57 69 6d 70 |=>WAssert>.<Wimp| 000849f0 2e 68 3d 3e 57 69 6d 70 3e 0a 3c 57 69 6d 70 53 |.h=>Wimp>.<WimpS| 00084a00 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e |WIs.h=>WimpSWIs>| 00084a10 0a 3c 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 |.<Window.h=>Wind| 00084a20 6f 77 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 |ow>.#EndTable..#| 00084a30 69 6e 64 65 6e 74 20 30 0a 54 6f 20 69 6e 63 6c |indent 0.To incl| 00084a40 75 64 65 20 6f 6e 65 20 6f 66 20 74 68 65 20 44 |ude one of the D| 00084a50 65 73 6b 4c 69 62 20 68 65 61 64 65 72 20 66 69 |eskLib header fi| 00084a60 6c 65 73 20 75 73 65 3a 7b 77 72 61 70 20 6f 66 |les use:{wrap of| 00084a70 66 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |f}.{fCode;align | 00084a80 63 65 6e 74 72 65 7d 3c 23 69 6e 63 6c 75 64 65 |centre}<#include| 00084a90 3d 3e 69 6e 63 6c 75 64 65 3e 20 22 44 65 73 6b |=>include> "Desk| 00084aa0 4c 69 62 3a 58 58 58 2e 68 22 7b 66 3b 61 6c 69 |Lib:XXX.h"{f;ali| 00084ab0 67 6e 3b 77 72 61 70 7d 0a 77 68 65 72 65 20 58 |gn;wrap}.where X| 00084ac0 58 58 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f |XX is the name o| 00084ad0 66 20 74 68 65 20 68 65 61 64 65 72 20 66 69 6c |f the header fil| 00084ae0 65 2e 00 00 44 41 54 41 1c 01 00 00 45 61 73 79 |e...DATA....Easy| 00084af0 20 43 20 52 49 53 43 20 4f 53 20 46 75 6e 63 74 | C RISC OS Funct| 00084b00 69 6f 6e 73 0a 23 69 6e 64 65 6e 74 20 36 0a 23 |ions.#indent 6.#| 00084b10 53 70 72 69 74 65 20 30 2c 30 20 21 65 61 73 79 |Sprite 0,0 !easy| 00084b20 63 0a 52 49 53 43 20 4f 53 20 66 75 6e 63 74 69 |c.RISC OS functi| 00084b30 6f 6e 73 20 61 72 65 20 67 72 6f 75 70 65 64 20 |ons are grouped | 00084b40 69 6e 74 6f 20 74 68 72 65 65 20 68 65 61 64 65 |into three heade| 00084b50 72 20 66 69 6c 65 73 2e 20 6b 65 72 6e 65 6c 2e |r files. kernel.| 00084b60 68 20 61 63 63 65 73 73 65 73 20 72 6f 75 74 69 |h accesses routi| 00084b70 6e 65 73 20 69 6e 20 74 68 65 20 3c 53 68 61 72 |nes in the <Shar| 00084b80 65 64 a0 43 20 4c 69 62 72 61 72 79 3d 3e 53 57 |ed.C Library=>SW| 00084b90 49 3a 53 68 61 72 65 64 43 4c 69 62 72 61 72 79 |I:SharedCLibrary| 00084ba0 5f 3e 20 6d 6f 64 75 6c 65 2e 0a 0a 23 49 6e 64 |_> module...#Ind| 00084bb0 65 6e 74 20 37 0a 23 54 61 62 6c 65 20 32 20 31 |ent 7.#Table 2 1| 00084bc0 37 0a 3c 6b 65 72 6e 65 6c 2e 68 3d 3e 6b 65 72 |7.<kernel.h=>ker| 00084bd0 6e 65 6c 3e 0a 3c 72 6f 73 6c 69 62 2e 68 3d 3e |nel>.<roslib.h=>| 00084be0 72 6f 73 6c 69 62 3e 0a 3c 73 77 69 73 2e 68 3d |roslib>.<swis.h=| 00084bf0 3e 73 77 69 73 3e 0a 23 45 6e 64 54 61 62 6c 65 |>swis>.#EndTable| 00084c00 44 41 54 41 b2 05 00 00 54 69 6d 73 4c 69 62 20 |DATA....TimsLib | 00084c10 52 49 53 43 20 4f 53 20 46 75 6e 63 74 69 6f 6e |RISC OS Function| 00084c20 73 0a 23 50 61 72 65 6e 74 20 72 69 73 63 6f 73 |s.#Parent riscos| 00084c30 5f 0a 23 49 6e 64 65 6e 74 20 36 0a 23 53 70 72 |_.#Indent 6.#Spr| 00084c40 69 74 65 20 30 2c 30 20 21 74 69 6d 73 6c 69 62 |ite 0,0 !timslib| 00084c50 0a 54 69 6d 73 4c 69 62 20 66 75 6e 63 74 69 6f |.TimsLib functio| 00084c60 6e 73 20 61 72 65 20 67 72 6f 75 70 65 64 20 69 |ns are grouped i| 00084c70 6e 74 6f 20 32 38 20 68 65 61 64 65 72 20 66 69 |nto 28 header fi| 00084c80 6c 65 73 2e 20 54 69 6d 73 4c 69 62 20 69 73 20 |les. TimsLib is | 00084c90 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 |intended to be u| 00084ca0 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 |sed in conjuncti| 00084cb0 6f 6e 20 77 69 74 68 20 3c 44 65 73 6b 4c 69 62 |on with <DeskLib| 00084cc0 3d 3e 72 6f 5f 64 6c 69 62 5f 3e 2e 0a 0a 23 69 |=>ro_dlib_>...#i| 00084cd0 6e 64 65 6e 74 20 30 0a 4d 75 63 68 20 6f 66 20 |ndent 0.Much of | 00084ce0 54 69 6d 73 4c 69 62 20 69 73 20 69 6e 74 65 6e |TimsLib is inten| 00084cf0 64 65 64 20 66 6f 72 20 75 73 65 20 77 69 74 68 |ded for use with| 00084d00 20 44 65 73 6b 4c 69 62 20 76 65 72 73 69 6f 6e | DeskLib version| 00084d10 20 32 2e 30 34 20 61 6e 64 20 69 73 20 6e 6f 77 | 2.04 and is now| 00084d20 20 72 65 64 75 6e 64 61 6e 74 20 77 69 74 68 20 | redundant with | 00084d30 44 65 73 6b 4c 69 62 20 76 65 72 73 69 6f 6e 20 |DeskLib version | 00084d40 32 2e 31 36 2e 0a 0a 23 49 6e 64 65 6e 74 20 34 |2.16...#Indent 4| 00084d50 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 |.#Table columns | 00084d60 34 0a 3c 41 73 6b 55 73 65 72 2e 68 3d 3e 41 73 |4.<AskUser.h=>As| 00084d70 6b 55 73 65 72 5f 68 3e 0a 3c 43 68 65 63 6b 2e |kUser_h>.<Check.| 00084d80 68 3d 3e 43 68 65 63 6b 3e 0a 7b 2f 7d 3c 43 6f |h=>Check>.{/}<Co| 00084d90 6f 72 64 2e 68 3d 3e 43 6f 6f 72 64 5f 54 4c 3e |ord.h=>Coord_TL>| 00084da0 7b 2f 7d 0a 3c 43 6f 72 65 2e 68 3d 3e 43 6f 72 |{/}.<Core.h=>Cor| 00084db0 65 5f 54 4c 3e 0a 7b 2f 7d 3c 44 69 61 6c 6f 67 |e_TL>.{/}<Dialog| 00084dc0 2e 68 3d 3e 44 69 61 6c 6f 67 5f 54 4c 3e 7b 2f |.h=>Dialog_TL>{/| 00084dd0 7d 0a 3c 45 6e 61 62 6c 65 44 62 75 67 2e 68 3d |}.<EnableDbug.h=| 00084de0 3e 45 6e 61 62 6c 65 44 62 75 67 3e 0a 3c 45 6e |>EnableDbug>.<En| 00084df0 76 2e 68 3d 3e 45 6e 76 3e 0a 3c 45 72 72 2e 68 |v.h=>Env>.<Err.h| 00084e00 3d 3e 45 72 72 3e 0a 7b 2f 7d 3c 46 69 6c 65 2e |=>Err>.{/}<File.| 00084e10 68 3d 3e 46 69 6c 65 5f 54 4c 3e 7b 2f 7d 0a 3c |h=>File_TL>{/}.<| 00084e20 46 69 6c 65 49 63 6f 6e 2e 68 3d 3e 46 69 6c 65 |FileIcon.h=>File| 00084e30 49 63 6f 6e 5f 68 3e 0a 7b 2f 7d 3c 46 6f 6e 74 |Icon_h>.{/}<Font| 00084e40 2e 68 3d 3e 46 6f 6e 74 5f 54 4c 3e 7b 2f 7d 0a |.h=>Font_TL>{/}.| 00084e50 7b 2f 7d 3c 47 46 58 2e 68 3d 3e 47 46 58 5f 54 |{/}<GFX.h=>GFX_T| 00084e60 4c 3e 7b 2f 7d 0a 7b 2f 7d 3c 49 63 6f 6e 2e 68 |L>{/}.{/}<Icon.h| 00084e70 3d 3e 49 63 6f 6e 5f 54 4c 3e 7b 2f 7d 0a 3c 49 |=>Icon_TL>{/}.<I| 00084e80 6e 74 65 72 66 61 63 65 2e 68 3d 3e 49 6e 74 65 |nterface.h=>Inte| 00084e90 72 66 61 63 65 3e 0a 3c 4b 62 64 2e 68 3d 3e 4b |rface>.<Kbd.h=>K| 00084ea0 62 64 5f 54 4c 3e 0a 3c 4c 69 62 2e 68 3d 3e 4c |bd_TL>.<Lib.h=>L| 00084eb0 69 62 3e 0a 7b 2f 7d 3c 4c 69 6e 6b 4c 69 73 74 |ib>.{/}<LinkList| 00084ec0 2e 68 3d 3e 4c 69 6e 6b 4c 69 73 74 5f 54 4c 3e |.h=>LinkList_TL>| 00084ed0 7b 2f 7d 0a 3c 4d 61 6c 6c 6f 63 44 62 75 67 2e |{/}.<MallocDbug.| 00084ee0 68 3d 3e 4d 61 6c 6c 6f 63 44 62 75 67 3e 0a 3c |h=>MallocDbug>.<| 00084ef0 4d 65 6e 75 2e 68 3d 3e 4d 65 6e 75 5f 54 4c 3e |Menu.h=>Menu_TL>| 00084f00 0a 7b 2f 7d 3c 4d 73 67 73 2e 68 3d 3e 4d 73 67 |.{/}<Msgs.h=>Msg| 00084f10 73 5f 54 4c 3e 7b 2f 7d 0a 3c 53 61 76 65 41 73 |s_TL>{/}.<SaveAs| 00084f20 2e 68 3d 3e 53 61 76 65 41 73 5f 54 4c 3e 0a 3c |.h=>SaveAs_TL>.<| 00084f30 53 57 49 73 2e 68 3d 3e 53 57 49 73 5f 54 4c 3e |SWIs.h=>SWIs_TL>| 00084f40 0a 3c 54 69 6d 65 2e 68 3d 3e 54 69 6d 65 5f 54 |.<Time.h=>Time_T| 00084f50 4c 3e 0a 3c 54 72 61 63 65 2e 68 3d 3e 54 72 61 |L>.<Trace.h=>Tra| 00084f60 63 65 5f 54 4c 3e 0a 3c 57 69 6d 70 45 78 74 2e |ce_TL>.<WimpExt.| 00084f70 68 3d 3e 57 69 6d 70 45 78 74 3e 0a 7b 2f 7d 3c |h=>WimpExt>.{/}<| 00084f80 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f 77 |Window.h=>Window| 00084f90 5f 54 4c 3e 7b 2f 7d 0a 3c 58 66 65 72 52 65 63 |_TL>{/}.<XferRec| 00084fa0 76 2e 68 3d 3e 58 66 65 72 52 65 63 76 5f 54 4c |v.h=>XferRecv_TL| 00084fb0 3e 0a 3c 58 66 65 72 53 65 6e 64 2e 68 3d 3e 58 |>.<XferSend.h=>X| 00084fc0 66 65 72 53 65 6e 64 5f 54 4c 3e 0a 23 45 6e 64 |ferSend_TL>.#End| 00084fd0 54 61 62 6c 65 0a 0a 23 69 6e 64 65 6e 74 20 30 |Table..#indent 0| 00084fe0 0a 54 6f 20 69 6e 63 6c 75 64 65 20 6f 6e 65 20 |.To include one | 00084ff0 6f 66 20 74 68 65 20 54 69 6d 73 4c 69 62 20 68 |of the TimsLib h| 00085000 65 61 64 65 72 20 66 69 6c 65 73 20 75 73 65 3a |eader files use:| 00085010 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 00085020 6e 74 72 65 7d 3c 23 69 6e 63 6c 75 64 65 3d 3e |ntre}<#include=>| 00085030 69 6e 63 6c 75 64 65 3e 20 22 54 69 6d 73 4c 69 |include> "TimsLi| 00085040 62 3a 58 58 58 2e 68 22 7b 66 3b 61 6c 69 67 6e |b:XXX.h"{f;align| 00085050 7d 0a 77 68 65 72 65 20 58 58 58 20 69 73 20 74 |}.where XXX is t| 00085060 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 68 |he name of the h| 00085070 65 61 64 65 72 20 66 69 6c 65 2e 0a 0a 53 6f 6d |eader file...Som| 00085080 65 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 73 |e of the headers| 00085090 20 61 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 | are extensions | 000850a0 74 6f 20 44 65 73 6b 4c 69 62 2c 20 69 65 20 74 |to DeskLib, ie t| 000850b0 68 65 79 20 74 68 65 6d 73 65 6c 76 65 73 20 69 |hey themselves i| 000850c0 6e 63 6c 75 64 65 20 74 68 65 20 44 65 73 6b 4c |nclude the DeskL| 000850d0 69 62 20 68 65 61 64 65 72 20 74 68 65 6e 20 61 |ib header then a| 000850e0 64 64 20 6d 6f 72 65 20 66 75 6e 63 74 69 6f 6e |dd more function| 000850f0 73 2e 20 54 68 65 73 65 20 61 72 65 20 73 68 6f |s. These are sho| 00085100 77 6e 20 69 6e 20 2f 69 74 61 6c 69 63 73 2f 2e |wn in /italics/.| 00085110 20 4d 61 6e 79 20 6f 66 20 74 68 65 20 66 75 6e | Many of the fun| 00085120 63 74 69 6f 6e 73 20 68 61 76 65 20 64 69 66 66 |ctions have diff| 00085130 65 72 65 6e 74 20 65 66 66 65 63 74 73 20 64 65 |erent effects de| 00085140 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6d |pending on the m| 00085150 61 63 72 6f 20 7b 2a 7d 5f 44 45 42 55 47 7b 2a |acro {*}_DEBUG{*| 00085160 7d 2e 20 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 |}. More informat| 00085170 69 6f 6e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 |ion can be found| 00085180 20 69 6e 20 74 68 65 20 22 21 48 65 6c 70 22 20 | in the "!Help" | 00085190 61 6e 64 20 22 52 65 61 64 4d 65 22 20 66 69 6c |and "ReadMe" fil| 000851a0 65 73 20 77 69 74 68 69 6e 20 54 69 6d 73 4c 69 |es within TimsLi| 000851b0 62 2e 00 00 44 49 52 24 64 0d 00 00 64 0d 00 00 |b...DIR$d...d...| 000851c0 18 5f 08 00 46 ff ff ff 59 4f 64 25 b4 01 00 00 |._..F...YOd%....| 000851d0 13 00 00 00 00 00 00 00 53 61 76 65 00 00 00 00 |........Save....| 000851e0 cc 60 08 00 46 ff ff ff fa 62 da 24 24 03 00 00 |.`..F....b.$$...| 000851f0 13 00 00 00 00 00 00 00 73 61 76 65 61 73 00 00 |........saveas..| 00085200 f0 63 08 00 46 fd ff ff 3c ca 84 2f b0 00 00 00 |.c..F...<../....| 00085210 13 01 00 00 00 00 00 00 53 61 76 65 41 73 5f 00 |........SaveAs_.| 00085220 88 6b 08 00 46 fd ff ff ba ca 84 2f 40 01 00 00 |.k..F....../@...| 00085230 13 01 00 00 00 00 00 00 73 61 76 65 5f 00 00 00 |........save_...| 00085240 00 7f 08 00 46 fd ff ff 73 cb 84 2f 2c 00 00 00 |....F...s../,...| 00085250 13 01 00 00 00 00 00 00 73 63 61 6c 65 5f 00 00 |........scale_..| 00085260 d8 7f 08 00 46 ff ff ff 9e 91 c3 22 23 01 00 00 |....F......"#...| 00085270 13 00 00 00 00 00 00 00 73 63 61 6e 66 00 00 00 |........scanf...| 00085280 fc 80 08 00 46 fd ff ff aa cb 84 2f 44 00 00 00 |....F....../D...| 00085290 13 01 00 00 00 00 00 00 53 43 48 41 52 5f 00 00 |........SCHAR_..| 000852a0 88 82 08 00 46 ff ff ff c2 65 64 25 19 01 00 00 |....F....ed%....| 000852b0 13 00 00 00 00 00 00 00 53 63 72 65 65 6e 00 00 |........Screen..| 000852c0 a4 83 08 00 46 fd ff ff f0 cb 84 2f cc 00 00 00 |....F....../....| 000852d0 13 01 00 00 00 00 00 00 73 63 72 65 65 6e 5f 00 |........screen_.| 000852e0 54 89 08 00 46 fd ff ff 6b cc 84 2f 48 00 00 00 |T...F...k../H...| 000852f0 13 01 00 00 00 00 00 00 73 63 72 6f 6c 6c 5f 00 |........scroll_.| 00085300 90 8b 08 00 46 ff ff ff 06 3d e2 24 3b 00 00 00 |....F....=.$;...| 00085310 13 00 00 00 00 00 00 00 53 43 72 6f 75 63 68 00 |........SCrouch.| 00085320 cc 8b 08 00 46 fd ff ff b3 cc 84 2f 60 00 00 00 |....F....../`...| 00085330 13 01 00 00 00 00 00 00 53 45 45 4b 5f 00 00 00 |........SEEK_...| 00085340 c8 8e 08 00 46 ff ff ff 28 22 65 25 36 02 00 00 |....F...("e%6...| 00085350 13 00 00 00 00 00 00 00 53 65 72 69 61 6c 00 00 |........Serial..| 00085360 00 91 08 00 46 fd ff ff 1f cd 84 2f 6c 02 00 00 |....F....../l...| 00085370 13 01 00 00 00 00 00 00 53 65 72 69 61 6c 5f 00 |........Serial_.| 00085380 b0 a6 08 00 46 ff ff ff 96 e7 c1 22 f7 01 00 00 |....F......"....| 00085390 13 00 00 00 00 00 00 00 73 65 74 62 75 66 00 00 |........setbuf..| 000853a0 a8 a8 08 00 46 ff ff ff 95 e8 be 22 af 00 00 00 |....F......"....| 000853b0 13 00 00 00 00 00 00 00 73 65 74 6a 6d 70 00 00 |........setjmp..| 000853c0 58 a9 08 00 46 fd ff ff a0 ce 84 2f 28 00 00 00 |X...F....../(...| 000853d0 13 01 00 00 00 00 00 00 73 65 74 6a 6d 70 5f 00 |........setjmp_.| 000853e0 84 aa 08 00 46 ff ff ff eb 2a bd 22 9a 01 00 00 |....F....*."....| 000853f0 13 00 00 00 00 00 00 00 73 65 74 6c 6f 63 61 6c |........setlocal| 00085400 65 00 00 00 20 ac 08 00 46 ff ff ff b1 fd c1 22 |e... ...F......"| 00085410 b4 01 00 00 13 00 00 00 00 00 00 00 73 65 74 76 |............setv| 00085420 62 75 66 00 d4 ad 08 00 46 fd ff ff f0 ce 84 2f |buf.....F....../| 00085430 2c 00 00 00 13 01 00 00 00 00 00 00 73 66 6f 72 |,...........sfor| 00085440 6d 5f 00 00 54 b0 08 00 46 fd ff ff 15 cf 84 2f |m_..T...F....../| 00085450 88 00 00 00 13 01 00 00 00 00 00 00 73 66 5f 00 |............sf_.| 00085460 78 ba 08 00 46 fd ff ff 79 cf 84 2f 44 00 00 00 |x...F...y../D...| 00085470 13 01 00 00 00 00 00 00 53 48 52 54 5f 00 00 00 |........SHRT_...| 00085480 1c bc 08 00 46 ff ff ff 6b 68 bf 22 5a 00 00 00 |....F...kh."Z...| 00085490 13 00 00 00 00 00 00 00 53 49 47 41 42 52 54 00 |........SIGABRT.| 000854a0 78 bc 08 00 46 ff ff ff c6 6b bf 22 59 00 00 00 |x...F....k."Y...| 000854b0 13 00 00 00 00 00 00 00 53 49 47 46 50 45 00 00 |........SIGFPE..| 000854c0 d4 bc 08 00 46 ff ff ff b7 6e bf 22 59 00 00 00 |....F....n."Y...| 000854d0 13 00 00 00 00 00 00 00 53 49 47 49 4c 4c 00 00 |........SIGILL..| 000854e0 30 bd 08 00 46 ff ff ff f0 72 bf 22 59 00 00 00 |0...F....r."Y...| 000854f0 13 00 00 00 00 00 00 00 53 49 47 49 4e 54 00 00 |........SIGINT..| 00085500 8c bd 08 00 46 ff ff ff b8 07 bc 22 ac 01 00 00 |....F......"....| 00085510 13 00 00 00 00 00 00 00 73 69 67 6e 61 6c 00 00 |........signal..| 00085520 38 bf 08 00 46 fd ff ff f5 cf 84 2f 2c 00 00 00 |8...F....../,...| 00085530 13 01 00 00 00 00 00 00 73 69 67 6e 61 6c 5f 00 |........signal_.| 00085540 54 c0 08 00 46 ff ff ff 33 76 bf 22 5a 00 00 00 |T...F...3v."Z...| 00085550 13 00 00 00 00 00 00 00 53 49 47 53 45 47 56 00 |........SIGSEGV.| 00085560 b0 c0 08 00 46 ff ff ff ed 7b bf 22 5a 00 00 00 |....F....{."Z...| 00085570 13 00 00 00 00 00 00 00 53 49 47 53 54 41 4b 00 |........SIGSTAK.| 00085580 0c c1 08 00 46 ff ff ff 24 79 bf 22 5a 00 00 00 |....F...$y."Z...| 00085590 13 00 00 00 00 00 00 00 53 49 47 54 45 52 4d 00 |........SIGTERM.| 000855a0 68 c1 08 00 46 fd ff ff 4e d0 84 2f 84 00 00 00 |h...F...N../....| 000855b0 13 01 00 00 00 00 00 00 73 69 67 5f 00 00 00 00 |........sig_....| 000855c0 2c c4 08 00 46 ff ff ff bb b8 bd 22 a5 00 00 00 |,...F......"....| 000855d0 13 00 00 00 00 00 00 00 73 69 6e 00 d4 c4 08 00 |........sin.....| 000855e0 46 ff ff ff 61 cd bd 22 c7 00 00 00 13 00 00 00 |F...a.."........| 000855f0 00 00 00 00 73 69 6e 68 00 00 00 00 9c c5 08 00 |....sinh........| 00085600 46 ff ff ff 32 ac e3 22 0a 01 00 00 13 00 00 00 |F...2.."........| 00085610 00 00 00 00 73 69 7a 65 6f 66 00 00 a8 c6 08 00 |....sizeof......| 00085620 46 fd ff ff d8 d0 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 00085630 00 00 00 00 73 69 7a 65 5f 00 00 00 c4 c7 08 00 |....size_.......| 00085640 46 ff ff ff ce 03 b4 25 12 02 00 00 13 00 00 00 |F......%........| 00085650 00 00 00 00 53 6c 69 64 65 72 00 00 d8 c9 08 00 |....Slider......| 00085660 46 fd ff ff 0c d1 84 2f b4 00 00 00 13 01 00 00 |F....../........| 00085670 00 00 00 00 53 6c 69 64 65 72 5f 00 8c d7 08 00 |....Slider_.....| 00085680 46 fd ff ff 93 d1 84 2f 10 01 00 00 13 01 00 00 |F....../........| 00085690 00 00 00 00 73 6c 5f 00 f4 df 08 00 46 ff ff ff |....sl_.....F...| 000856a0 79 c1 65 25 80 00 00 00 13 00 00 00 00 00 00 00 |y.e%............| 000856b0 53 6f 75 6e 64 00 00 00 74 e0 08 00 46 fd ff ff |Sound...t...F...| 000856c0 45 d2 84 2f 4c 00 00 00 13 01 00 00 00 00 00 00 |E../L...........| 000856d0 73 6f 75 6e 64 5f 00 00 04 e6 08 00 46 ff ff ff |sound_......F...| 000856e0 93 6d 56 26 48 01 00 00 13 00 00 00 00 00 00 00 |.mV&H...........| 000856f0 53 70 6c 69 74 50 61 74 68 6e 61 6d 65 00 00 00 |SplitPathname...| 00085700 4c e7 08 00 46 ff ff ff 7c 89 c3 22 8e 01 00 00 |L...F...|.."....| 00085710 13 00 00 00 00 00 00 00 73 70 72 69 6e 74 66 00 |........sprintf.| 00085720 dc e8 08 00 46 ff ff ff 6d 49 d5 25 84 00 00 00 |....F...mI.%....| 00085730 13 00 00 00 00 00 00 00 73 70 72 69 74 65 00 00 |........sprite..| 00085740 60 e9 08 00 46 ff ff ff c3 b4 d5 25 d3 01 00 00 |`...F......%....| 00085750 13 00 00 00 00 00 00 00 73 70 72 69 74 65 6d 65 |........spriteme| 00085760 6d 5f 66 6c 61 67 73 00 34 eb 08 00 46 fd ff ff |m_flags.4...F...| 00085770 d3 d2 84 2f 4c 00 00 00 13 01 00 00 00 00 00 00 |.../L...........| 00085780 73 70 72 69 74 65 70 6f 6f 6c 5f 00 0c ed 08 00 |spritepool_.....| 00085790 46 fd ff ff 52 d3 84 2f c0 10 00 00 13 01 00 00 |F...R../........| 000857a0 00 00 00 00 73 70 72 69 74 65 5f 00 64 b6 09 00 |....sprite_.d...| 000857b0 46 fd ff ff 2e dd 84 2f 2c 00 00 00 13 01 00 00 |F....../,.......| 000857c0 00 00 00 00 53 50 52 5f 00 00 00 00 48 b7 09 00 |....SPR_....H...| 000857d0 46 ff ff ff 77 3c be 22 ab 00 00 00 13 00 00 00 |F...w<."........| 000857e0 00 00 00 00 73 71 72 74 00 00 00 00 f4 b7 09 00 |....sqrt........| 000857f0 46 ff ff ff 8c 53 c5 22 86 01 00 00 13 00 00 00 |F....S."........| 00085800 00 00 00 00 73 72 61 6e 64 00 00 00 7c b9 09 00 |....srand...|...| 00085810 46 ff ff ff fc 0e c4 22 a4 01 00 00 13 00 00 00 |F......"........| 00085820 00 00 00 00 73 73 63 61 6e 66 00 00 20 bb 09 00 |....sscanf.. ...| 00085830 46 ff ff ff 25 0f bc 22 ed 00 00 00 13 00 00 00 |F...%.."........| 00085840 00 00 00 00 73 74 64 61 72 67 00 00 10 bc 09 00 |....stdarg......| 00085850 46 ff ff ff 9e 14 bc 22 da 00 00 00 13 00 00 00 |F......"........| 00085860 00 00 00 00 73 74 64 64 65 66 00 00 ec bc 09 00 |....stddef......| 00085870 46 ff ff ff 5c a0 c4 22 af 00 00 00 13 00 00 00 |F...\.."........| 00085880 00 00 00 00 73 74 64 65 72 72 00 00 9c bd 09 00 |....stderr......| 00085890 46 ff ff ff 1b 96 c4 22 c9 00 00 00 13 00 00 00 |F......"........| 000858a0 00 00 00 00 73 74 64 69 6e 00 00 00 68 be 09 00 |....stdin...h...| 000858b0 46 ff ff ff f5 2f bc 22 8c 02 00 00 13 00 00 00 |F..../."........| 000858c0 00 00 00 00 73 74 64 69 6f 00 00 00 f4 c0 09 00 |....stdio.......| 000858d0 46 ff ff ff bd 95 df 22 68 02 00 00 13 00 00 00 |F......"h.......| 000858e0 00 00 00 00 73 74 64 6c 69 62 00 00 5c c3 09 00 |....stdlib..\...| 000858f0 46 ff ff ff 32 9b c4 22 cb 00 00 00 13 00 00 00 |F...2.."........| 00085900 00 00 00 00 73 74 64 6f 75 74 00 00 28 c4 09 00 |....stdout..(...| 00085910 46 ff ff ff ff 80 e6 22 6a 00 00 00 13 00 00 00 |F......"j.......| 00085920 00 00 00 00 53 54 46 00 94 c4 09 00 46 ff ff ff |....STF.....F...| 00085930 53 75 e6 22 4d 01 00 00 13 00 00 00 00 00 00 00 |Su."M...........| 00085940 53 54 52 00 e4 c5 09 00 46 ff ff ff 71 fa df 22 |STR.....F...q.."| 00085950 fb 00 00 00 13 00 00 00 00 00 00 00 73 74 72 63 |............strc| 00085960 61 74 00 00 e0 c6 09 00 46 ff ff ff ba 2e d6 25 |at......F......%| 00085970 2b 01 00 00 13 00 00 00 00 00 00 00 73 74 72 63 |+...........strc| 00085980 61 74 63 72 00 00 00 00 0c c8 09 00 46 ff ff ff |atcr........F...| 00085990 28 93 e0 22 21 01 00 00 13 00 00 00 00 00 00 00 |(.."!...........| 000859a0 73 74 72 63 68 72 00 00 30 c9 09 00 46 ff ff ff |strchr..0...F...| 000859b0 7e 2d e0 22 51 01 00 00 13 00 00 00 00 00 00 00 |~-."Q...........| 000859c0 73 74 72 63 6d 70 00 00 84 ca 09 00 46 ff ff ff |strcmp......F...| 000859d0 3e 03 d6 25 04 01 00 00 13 00 00 00 00 00 00 00 |>..%............| 000859e0 73 74 72 63 6d 70 63 72 00 00 00 00 88 cb 09 00 |strcmpcr........| 000859f0 46 ff ff ff 40 3c e0 22 88 01 00 00 13 00 00 00 |F...@<."........| 00085a00 00 00 00 00 73 74 72 63 6f 6c 6c 00 10 cd 09 00 |....strcoll.....| 00085a10 46 ff ff ff 4e d7 df 22 d2 00 00 00 13 00 00 00 |F...N.."........| 00085a20 00 00 00 00 73 74 72 63 70 79 00 00 e4 cd 09 00 |....strcpy......| 00085a30 46 ff ff ff 89 39 d6 25 05 01 00 00 13 00 00 00 |F....9.%........| 00085a40 00 00 00 00 73 74 72 63 70 79 63 72 00 00 00 00 |....strcpycr....| 00085a50 ec ce 09 00 46 ff ff ff 35 9a e0 22 ef 00 00 00 |....F...5.."....| 00085a60 13 00 00 00 00 00 00 00 73 74 72 63 73 70 6e 00 |........strcspn.| 00085a70 dc cf 09 00 46 ff ff ff f7 54 d6 25 1a 01 00 00 |....F....T.%....| 00085a80 13 00 00 00 00 00 00 00 73 74 72 64 75 70 00 00 |........strdup..| 00085a90 f8 d0 09 00 46 fd ff ff ee de 84 2f 2c 00 00 00 |....F....../,...| 00085aa0 13 01 00 00 00 00 00 00 73 74 72 65 61 6d 69 6f |........streamio| 00085ab0 5f 00 00 00 cc d1 09 00 46 ff ff ff a9 97 e1 22 |_.......F......"| 00085ac0 e9 00 00 00 13 00 00 00 00 00 00 00 73 74 72 65 |............stre| 00085ad0 72 72 6f 72 00 00 00 00 b8 d2 09 00 46 ff ff ff |rror........F...| 00085ae0 c0 07 e2 22 6c 01 00 00 13 00 00 00 00 00 00 00 |..."l...........| 00085af0 73 74 72 66 74 69 6d 65 00 00 00 00 24 d4 09 00 |strftime....$...| 00085b00 46 ff ff ff 5d 09 d6 25 8c 01 00 00 13 00 00 00 |F...]..%........| 00085b10 00 00 00 00 73 74 72 69 63 6d 70 00 b0 d5 09 00 |....stricmp.....| 00085b20 46 ff ff ff 45 11 d6 25 5d 01 00 00 13 00 00 00 |F...E..%].......| 00085b30 00 00 00 00 73 74 72 69 63 6d 70 63 72 00 00 00 |....stricmpcr...| 00085b40 10 d7 09 00 46 ff ff ff dc 44 bc 22 97 01 00 00 |....F....D."....| 00085b50 13 00 00 00 00 00 00 00 73 74 72 69 6e 67 00 00 |........string..| 00085b60 a8 d8 09 00 46 ff ff ff d8 7b d6 25 91 00 00 00 |....F....{.%....| 00085b70 13 00 00 00 00 00 00 00 53 74 72 69 6e 67 43 52 |........StringCR| 00085b80 00 00 00 00 3c d9 09 00 46 ff ff ff 2b 9f e1 22 |....<...F...+.."| 00085b90 ee 00 00 00 13 00 00 00 00 00 00 00 73 74 72 6c |............strl| 00085ba0 65 6e 00 00 2c da 09 00 46 ff ff ff 34 fc d5 25 |en..,...F...4..%| 00085bb0 e9 00 00 00 13 00 00 00 00 00 00 00 73 74 72 6c |............strl| 00085bc0 65 6e 63 72 00 00 00 00 18 db 09 00 46 ff ff ff |encr........F...| 00085bd0 4f 05 e0 22 15 01 00 00 13 00 00 00 00 00 00 00 |O.."............| 00085be0 73 74 72 6e 63 61 74 00 30 dc 09 00 46 ff ff ff |strncat.0...F...| 00085bf0 ac 51 e0 22 95 01 00 00 13 00 00 00 00 00 00 00 |.Q."............| 00085c00 73 74 72 6e 63 6d 70 00 c8 dd 09 00 46 ff ff ff |strncmp.....F...| 00085c10 2f e9 df 22 3d 01 00 00 13 00 00 00 00 00 00 00 |/.."=...........| 00085c20 73 74 72 6e 63 70 79 00 08 df 09 00 46 ff ff ff |strncpy.....F...| 00085c30 56 44 d6 25 3c 01 00 00 13 00 00 00 00 00 00 00 |VD.%<...........| 00085c40 73 74 72 6e 63 70 79 63 72 00 00 00 44 e0 09 00 |strncpycr...D...| 00085c50 46 ff ff ff 3d 1c d6 25 a0 01 00 00 13 00 00 00 |F...=..%........| 00085c60 00 00 00 00 73 74 72 6e 69 63 6d 70 00 00 00 00 |....strnicmp....| 00085c70 e4 e1 09 00 46 ff ff ff 9c 26 d6 25 6c 01 00 00 |....F....&.%l...| 00085c80 13 00 00 00 00 00 00 00 73 74 72 6e 69 63 6d 70 |........strnicmp| 00085c90 63 72 00 00 50 e3 09 00 46 ff ff ff 25 b9 e0 22 |cr..P...F...%.."| 00085ca0 ff 00 00 00 13 00 00 00 00 00 00 00 73 74 72 70 |............strp| 00085cb0 62 72 6b 00 50 e4 09 00 46 ff ff ff 21 cd e0 22 |brk.P...F...!.."| 00085cc0 2c 01 00 00 13 00 00 00 00 00 00 00 73 74 72 72 |,...........strr| 00085cd0 63 68 72 00 7c e5 09 00 46 ff ff ff ba 34 56 26 |chr.|...F....4V&| 00085ce0 5c 01 00 00 13 00 00 00 00 00 00 00 53 74 72 53 |\...........StrS| 00085cf0 61 76 65 00 d8 e6 09 00 46 ff ff ff 8b 3f 56 26 |ave.....F....?V&| 00085d00 b2 01 00 00 13 00 00 00 00 00 00 00 53 74 72 53 |............StrS| 00085d10 61 76 65 44 62 75 67 00 8c e8 09 00 46 ff ff ff |aveDbug.....F...| 00085d20 fb d5 e0 22 02 01 00 00 13 00 00 00 00 00 00 00 |..."............| 00085d30 73 74 72 73 70 6e 00 00 90 e9 09 00 46 ff ff ff |strspn......F...| 00085d40 ed ec e0 22 4a 01 00 00 13 00 00 00 00 00 00 00 |..."J...........| 00085d50 73 74 72 73 74 72 00 00 dc ea 09 00 46 ff ff ff |strstr......F...| 00085d60 6a 0b c5 22 ce 02 00 00 13 00 00 00 00 00 00 00 |j.."............| 00085d70 73 74 72 74 6f 64 00 00 ac ed 09 00 46 ff ff ff |strtod......F...| 00085d80 74 31 e1 22 64 03 00 00 13 00 00 00 00 00 00 00 |t1."d...........| 00085d90 73 74 72 74 6f 6b 00 00 10 f1 09 00 46 ff ff ff |strtok......F...| 00085da0 6c 1f c5 22 28 03 00 00 13 00 00 00 00 00 00 00 |l.."(...........| 00085db0 73 74 72 74 6f 6c 00 00 38 f4 09 00 46 ff ff ff |strtol..8...F...| 00085dc0 54 3b c5 22 30 03 00 00 13 00 00 00 00 00 00 00 |T;."0...........| 00085dd0 73 74 72 74 6f 75 6c 00 68 f7 09 00 46 ff ff ff |strtoul.h...F...| 00085de0 1a cb e3 22 7d 03 00 00 13 00 00 00 00 00 00 00 |..."}...........| 00085df0 73 74 72 75 63 74 00 00 e8 fa 09 00 46 ff ff ff |struct......F...| 00085e00 ab 5e e2 22 e1 01 00 00 13 00 00 00 00 00 00 00 |.^."............| 00085e10 73 74 72 75 63 74 a0 74 6d 00 00 00 cc fc 09 00 |struct.tm.......| 00085e20 46 ff ff ff 20 66 e0 22 1e 02 00 00 13 00 00 00 |F... f."........| 00085e30 00 00 00 00 73 74 72 78 66 72 6d 00 ec fe 09 00 |....strxfrm.....| 00085e40 46 fd ff ff 37 e1 84 2f 50 01 00 00 13 01 00 00 |F...7../P.......| 00085e50 00 00 00 00 73 74 72 5f 00 00 00 00 24 0a 0a 00 |....str_....$...| 00085e60 46 ff ff ff 15 a0 d6 25 7a 03 00 00 13 00 00 00 |F......%z.......| 00085e70 00 00 00 00 53 57 49 00 a0 0d 0a 00 46 ff ff ff |....SWI.....F...| 00085e80 af 91 ef 24 4a 04 00 00 13 00 00 00 00 00 00 00 |...$J...........| 00085e90 73 77 69 73 00 00 00 00 ec 11 0a 00 46 fd ff ff |swis........F...| 00085ea0 39 e2 84 2f 28 00 00 00 13 01 00 00 00 00 00 00 |9../(...........| 00085eb0 53 57 49 73 5f 00 00 00 c0 12 0a 00 46 ff ff ff |SWIs_.......F...| 00085ec0 de f1 e4 22 12 03 00 00 13 00 00 00 00 00 00 00 |..."............| 00085ed0 73 77 69 74 63 68 00 00 d4 15 0a 00 46 fd ff ff |switch......F...| 00085ee0 7a e2 84 2f 2c 00 00 00 13 01 00 00 00 00 00 00 |z../,...........| 00085ef0 53 57 49 5f 00 00 00 00 3c 38 0a 00 46 ff ff ff |SWI_....<8..F...| 00085f00 1d e6 dd 22 83 02 00 00 13 00 00 00 00 00 00 00 |..."............| 00085f10 73 79 73 74 65 6d 00 00 44 41 54 41 b4 01 00 00 |system..DATA....| 00085f20 44 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 0a 56 |DeskLib:Save.h.V| 00085f30 65 72 73 69 6f 6e 3a 20 31 2e 30 32 20 28 31 38 |ersion: 1.02 (18| 00085f40 20 4a 75 6e 20 31 39 39 34 29 0a 23 6c 69 6e 65 | Jun 1994).#line| 00085f50 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 63 |.This header dec| 00085f60 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 |lares functions | 00085f70 61 6e 64 20 74 79 70 65 73 20 66 6f 72 20 61 75 |and types for au| 00085f80 74 6f 6d 61 74 69 63 20 68 61 6e 64 6c 69 6e 67 |tomatic handling| 00085f90 20 6f 66 20 64 61 74 61 20 65 78 70 6f 72 74 20 | of data export | 00085fa0 62 79 20 69 63 6f 6e 20 64 72 61 67 20 69 65 20 |by icon drag ie | 00085fb0 22 53 61 76 65 20 61 73 22 20 77 69 6e 64 6f 77 |"Save as" window| 00085fc0 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |s...Functions:..| 00085fd0 23 69 6e 64 65 6e 74 20 36 0a 23 74 61 62 6c 65 |#indent 6.#table| 00085fe0 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 53 61 76 65 | columns 2.<Save| 00085ff0 5f 49 6e 69 74 53 61 76 65 57 69 6e 64 6f 77 48 |_InitSaveWindowH| 00086000 61 6e 64 6c 65 72 3e 0a 3c 53 61 76 65 5f 52 65 |andler>.<Save_Re| 00086010 6c 65 61 73 65 53 61 76 65 48 61 6e 64 6c 65 72 |leaseSaveHandler| 00086020 73 3e 0a 3c 53 61 76 65 5f 53 65 74 46 69 6c 65 |s>.<Save_SetFile| 00086030 74 79 70 65 3e 0a 23 65 6e 64 74 61 62 6c 65 0a |type>.#endtable.| 00086040 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 73 3a 0a |#indent..Types:.| 00086050 0a 23 69 6e 64 65 6e 74 20 35 0a 23 54 61 62 6c |.#indent 5.#Tabl| 00086060 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 73 61 76 |e columns 3.<sav| 00086070 65 5f 66 69 6c 65 73 61 76 65 72 3e 0a 3c 73 61 |e_filesaver>.<sa| 00086080 76 65 5f 72 61 6d 73 61 76 65 72 3e 0a 3c 73 61 |ve_ramsaver>.<sa| 00086090 76 65 5f 72 65 73 75 6c 74 3e 0a 3c 73 61 76 65 |ve_result>.<save| 000860a0 5f 72 65 73 75 6c 74 68 61 6e 64 6c 65 72 3e 0a |_resulthandler>.| 000860b0 3c 73 61 76 65 5f 73 61 76 65 62 6c 6f 63 6b 3e |<save_saveblock>| 000860c0 0a 0a 23 45 6e 64 54 61 62 6c 65 0a 44 41 54 41 |..#EndTable.DATA| 000860d0 24 03 00 00 73 61 76 65 61 73 0a 53 79 6e 74 61 |$...saveas.Synta| 000860e0 78 3a 09 3c 42 4f 4f 4c 3e 20 73 61 76 65 61 73 |x:.<BOOL> saveas| 000860f0 20 28 69 6e 74 20 74 79 70 65 2c 20 63 68 61 72 | (int type, char| 00086100 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 73 69 7a 65 | *name, int size| 00086110 2c 20 3c 78 66 65 72 73 65 6e 64 5f 73 61 76 65 |, <xfersend_save| 00086120 70 72 6f 63 3e 20 73 61 76 65 2c 20 3c 78 66 65 |proc> save, <xfe| 00086130 72 73 65 6e 64 5f 73 65 6e 64 70 72 6f 63 3e 20 |rsend_sendproc> | 00086140 73 65 6e 64 2c 20 3c 78 66 65 72 73 65 6e 64 5f |send, <xfersend_| 00086150 70 72 69 6e 74 70 72 6f 63 3e 20 70 72 69 6e 74 |printproc> print| 00086160 2c 20 76 6f 69 64 20 2a 68 6e 64 29 3b 0a 48 65 |, void *hnd);.He| 00086170 61 64 65 72 3a 09 3c 73 61 76 65 61 73 2e 68 3d |ader:.<saveas.h=| 00086180 3e 73 61 76 65 61 73 5f 68 3e 0a 0a 52 65 74 75 |>saveas_h>..Retu| 00086190 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 73 |rns:.<TRUE> if s| 000861a0 75 63 63 65 73 73 66 75 6c 2e 0a 0a 53 65 65 20 |uccessful...See | 000861b0 61 6c 73 6f 20 74 68 65 20 54 69 6d 73 4c 69 62 |also the TimsLib| 000861c0 20 66 75 6e 63 74 69 6f 6e 2c 20 3c 53 61 76 65 | function, <Save| 000861d0 41 73 3d 3e 53 61 76 65 41 73 5f 3e 2e 0a 0a 54 |As=>SaveAs_>...T| 000861e0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6f 70 65 |his function ope| 000861f0 6e 73 20 61 20 64 69 61 6c 6f 67 75 65 20 62 6f |ns a dialogue bo| 00086200 78 20 28 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 |x (must be calle| 00086210 64 20 22 78 66 65 72 5f 73 65 6e 64 22 20 61 6e |d "xfer_send" an| 00086220 64 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 6f |d similar to tho| 00086230 73 65 20 69 6e 20 44 72 61 77 2c 20 45 64 69 74 |se in Draw, Edit| 00086240 20 61 6e 64 20 50 61 69 6e 74 29 2e 20 2f 74 79 | and Paint). /ty| 00086250 70 65 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |pe/ contains the| 00086260 20 66 69 6c 65 20 74 79 70 65 2c 20 2f 6e 61 6d | file type, /nam| 00086270 65 2f 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 |e/ the file name| 00086280 2c 20 2f 73 69 7a 65 2f 20 74 68 65 20 65 73 74 |, /size/ the est| 00086290 69 6d 61 74 65 64 20 66 69 6c 65 20 73 69 7a 65 |imated file size| 000862a0 2c 20 2f 73 61 76 65 2f 20 69 73 20 74 68 65 20 |, /save/ is the | 000862b0 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 66 6f |function used fo| 000862c0 72 20 73 61 76 69 6e 67 20 74 6f 20 61 20 66 69 |r saving to a fi| 000862d0 6c 65 2c 20 2f 73 65 6e 64 2f 20 69 73 20 74 68 |le, /send/ is th| 000862e0 65 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 |e function used | 000862f0 66 6f 72 20 52 41 4d 20 74 72 61 6e 73 66 65 72 |for RAM transfer| 00086300 2c 20 2f 70 72 69 6e 74 2f 20 69 73 20 74 68 65 |, /print/ is the| 00086310 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 66 | function used f| 00086320 6f 72 20 70 72 69 6e 74 69 6e 67 2c 20 61 6e 64 |or printing, and| 00086330 20 2f 68 6e 64 2f 20 69 73 20 70 61 73 73 65 64 | /hnd/ is passed| 00086340 20 73 74 72 61 69 67 68 74 20 74 6f 20 74 68 6f | straight to tho| 00086350 73 65 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 54 |se functions...T| 00086360 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6c 73 |his function als| 00086370 6f 20 64 65 61 6c 73 20 77 69 74 68 20 61 6c 6c |o deals with all| 00086380 20 74 68 65 20 6d 65 73 73 61 67 65 73 20 6e 65 | the messages ne| 00086390 65 64 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 |eded to perform | 000863a0 74 68 65 20 64 61 74 61 20 74 72 61 6e 73 66 65 |the data transfe| 000863b0 72 2e 20 2f 73 65 6e 64 2f 20 6f 72 20 2f 70 72 |r. /send/ or /pr| 000863c0 69 6e 74 2f 20 63 61 6e 20 62 65 20 30 20 74 6f |int/ can be 0 to| 000863d0 20 75 73 65 20 74 68 65 20 2f 73 61 76 65 2f 20 | use the /save/ | 000863e0 72 6f 75 74 69 6e 65 20 69 6e 73 74 65 61 64 2e |routine instead.| 000863f0 44 49 52 24 b0 00 00 00 b0 00 00 00 a0 64 08 00 |DIR$.........d..| 00086400 46 fd ff ff ea 31 58 26 ed 02 00 00 13 00 00 00 |F....1X&........| 00086410 00 00 00 00 21 52 6f 6f 74 00 00 00 90 67 08 00 |....!Root....g..| 00086420 46 fd ff ff 81 07 b6 22 11 01 00 00 13 00 00 00 |F......"........| 00086430 00 00 00 00 68 00 00 00 a4 68 08 00 46 ff ff ff |....h....h..F...| 00086440 88 07 b6 22 1e 01 00 00 13 00 00 00 00 00 00 00 |..."............| 00086450 72 65 61 64 5f 6c 65 61 66 00 00 00 c4 69 08 00 |read_leaf....i..| 00086460 46 ff ff ff 74 3d 58 26 03 01 00 00 13 00 00 00 |F...t=X&........| 00086470 00 00 00 00 52 65 61 64 4c 65 61 66 6e 61 6d 65 |....ReadLeafname| 00086480 00 00 00 00 c8 6a 08 00 46 fd ff ff db 13 58 26 |.....j..F.....X&| 00086490 bf 00 00 00 13 00 00 00 00 00 00 00 54 4c 00 00 |............TL..| 000864a0 44 41 54 41 ed 02 00 00 53 61 76 65 41 73 0a 53 |DATA....SaveAs.S| 000864b0 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 53 61 |yntax:.<BOOL> Sa| 000864c0 76 65 41 73 20 28 69 6e 74 20 74 79 70 65 2c 20 |veAs (int type, | 000864d0 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 |char *name, int | 000864e0 73 69 7a 65 2c 20 3c 78 66 65 72 73 65 6e 64 5f |size, <xfersend_| 000864f0 73 61 76 65 70 72 6f 63 3e 20 73 61 76 65 2c 20 |saveproc> save, | 00086500 76 6f 69 64 20 2a 68 6e 64 29 3b 0a 48 65 61 64 |void *hnd);.Head| 00086510 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 53 61 76 |er:.<TimsLib:Sav| 00086520 65 41 73 2e 68 3d 3e 53 61 76 65 41 73 5f 54 4c |eAs.h=>SaveAs_TL| 00086530 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 |>..Returns:.<TRU| 00086540 45 3e 20 69 66 20 66 69 6c 65 20 69 73 20 73 75 |E> if file is su| 00086550 63 63 65 73 73 66 75 6c 6c 79 20 73 61 76 65 64 |ccessfully saved| 00086560 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00086570 20 6f 70 65 6e 73 20 61 20 22 53 61 76 65 20 61 | opens a "Save a| 00086580 73 3a 22 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |s:" dialogue box| 00086590 20 61 6e 64 20 68 61 6e 64 6c 65 73 20 61 6c 6c | and handles all| 000865a0 20 74 68 65 20 64 72 61 67 67 69 6e 67 20 61 6e | the dragging an| 000865b0 64 20 6d 65 73 73 61 67 65 73 20 6e 65 65 64 65 |d messages neede| 000865c0 64 20 74 6f 20 73 61 76 65 20 74 68 65 20 66 69 |d to save the fi| 000865d0 6c 65 2e 20 2f 74 79 70 65 2f 20 63 6f 6e 74 61 |le. /type/ conta| 000865e0 69 6e 73 20 74 68 65 20 66 69 6c 65 20 74 79 70 |ins the file typ| 000865f0 65 2c 20 2f 6e 61 6d 65 2f 20 74 68 65 20 66 69 |e, /name/ the fi| 00086600 6c 65 20 6e 61 6d 65 2c 20 2f 73 69 7a 65 2f 20 |le name, /size/ | 00086610 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 66 69 |the estimated fi| 00086620 6c 65 20 73 69 7a 65 2c 20 2f 73 61 76 65 2f 20 |le size, /save/ | 00086630 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 |is the function | 00086640 75 73 65 64 20 66 6f 72 20 73 61 76 69 6e 67 20 |used for saving | 00086650 61 6e 64 20 2f 68 6e 64 2f 20 69 73 20 70 61 73 |and /hnd/ is pas| 00086660 73 65 64 20 73 74 72 61 69 67 68 74 20 74 6f 20 |sed straight to | 00086670 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 2e 20 54 |that function. T| 00086680 68 65 20 74 65 6d 70 6c 61 74 65 20 22 78 66 65 |he template "xfe| 00086690 72 5f 73 65 6e 64 22 20 6d 75 73 74 20 62 65 20 |r_send" must be | 000866a0 6c 6f 61 64 65 64 20 77 69 74 68 20 3c 54 65 6d |loaded with <Tem| 000866b0 70 6c 61 74 65 5f 4c 6f 61 64 46 69 6c 65 3e 20 |plate_LoadFile> | 000866c0 61 6e 64 20 73 68 6f 75 6c 64 20 68 61 76 65 20 |and should have | 000866d0 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 63 |the following ic| 000866e0 6f 6e 73 3a 0a 0a 30 09 27 4f 4b 27 20 69 63 6f |ons:..0.'OK' ico| 000866f0 6e 2e 20 42 75 74 74 6f 6e 20 74 79 70 65 20 27 |n. Button type '| 00086700 43 6c 69 63 6b 27 2e 0a 32 09 46 69 6c 65 6e 61 |Click'..2.Filena| 00086710 6d 65 20 69 63 6f 6e 2e 20 49 6e 64 69 72 65 63 |me icon. Indirec| 00086720 74 65 64 20 74 65 78 74 2c 20 73 69 7a 65 20 32 |ted text, size 2| 00086730 35 36 2e 20 42 75 74 74 6f 6e 20 74 79 70 65 20 |56. Button type | 00086740 27 57 72 69 74 65 61 62 6c 65 27 2e 0a 33 09 46 |'Writeable'..3.F| 00086750 69 6c 65 20 69 63 6f 6e 2e 20 49 6e 64 69 72 65 |ile icon. Indire| 00086760 63 74 65 64 20 74 65 78 74 2c 20 73 69 7a 65 20 |cted text, size | 00086770 31 36 2e 20 42 75 74 74 6f 6e 20 74 79 70 65 20 |16. Button type | 00086780 27 43 6c 69 63 6b 2f 44 72 61 67 27 2e 00 00 00 |'Click/Drag'....| 00086790 44 41 54 41 11 01 00 00 73 61 76 65 61 73 2e 68 |DATA....saveas.h| 000867a0 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 63 |.This header dec| 000867b0 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 |lares functions | 000867c0 66 6f 72 20 6d 61 6e 69 70 75 6c 61 74 69 6e 67 |for manipulating| 000867d0 0a 73 61 76 65 20 64 69 61 6c 6f 67 75 65 20 62 |.save dialogue b| 000867e0 6f 78 65 73 20 28 6f 72 20 61 73 20 41 63 6f 72 |oxes (or as Acor| 000867f0 6e 20 70 75 74 20 69 74 2c 0a 22 65 78 70 6f 72 |n put it,."expor| 00086800 74 20 6f 66 20 64 61 74 61 20 62 79 20 64 72 61 |t of data by dra| 00086810 67 67 69 6e 67 20 69 63 6f 6e 20 66 72 6f 6d 20 |gging icon from | 00086820 64 69 61 6c 6f 67 75 65 0a 62 6f 78 22 2e 0a 0a |dialogue.box"...| 00086830 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 |Functions:.. | 00086840 20 20 20 3c 73 61 76 65 61 73 20 20 20 20 20 20 | <saveas | 00086850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00086860 20 20 20 20 3e 0a 20 20 20 20 20 20 20 3c 73 61 | >. <sa| 00086870 76 65 61 73 5f 72 65 61 64 5f 6c 65 61 66 6e 61 |veas_read_leafna| 00086880 6d 65 5f 64 75 72 69 6e 67 5f 73 65 6e 64 3d 3e |me_during_send=>| 00086890 73 61 76 65 61 73 5f 72 65 61 64 5f 6c 65 61 66 |saveas_read_leaf| 000868a0 3e 00 00 00 44 41 54 41 1e 01 00 00 73 61 76 65 |>...DATA....save| 000868b0 61 73 5f 72 65 61 64 5f 6c 65 61 66 6e 61 6d 65 |as_read_leafname| 000868c0 5f 64 75 72 69 6e 67 5f 73 65 6e 64 0a 53 79 6e |_during_send.Syn| 000868d0 74 61 78 3a 20 20 76 6f 69 64 20 73 61 76 65 61 |tax: void savea| 000868e0 73 5f 72 65 61 64 5f 6c 65 61 66 6e 61 6d 65 5f |s_read_leafname_| 000868f0 64 75 72 69 6e 67 5f 73 65 6e 64 0a 20 20 20 20 |during_send. | 00086900 20 20 20 20 20 28 63 68 61 72 20 2a 6e 61 6d 65 | (char *name| 00086910 2c 20 69 6e 74 20 6c 65 6e 67 74 68 29 3b 0a 48 |, int length);.H| 00086920 65 61 64 65 72 3a 20 20 3c 73 61 76 65 61 73 2e |eader: <saveas.| 00086930 68 3d 3e 73 61 76 65 61 73 5f 68 3e 0a 0a 54 68 |h=>saveas_h>..Th| 00086940 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 |is function read| 00086950 73 20 74 68 65 20 6c 65 61 66 20 6e 61 6d 65 20 |s the leaf name | 00086960 6f 66 20 74 68 65 20 66 69 6c 65 0a 6e 61 6d 65 |of the file.name| 00086970 20 69 6e 20 74 68 65 20 22 78 66 65 72 5f 73 65 | in the "xfer_se| 00086980 6e 64 22 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 |nd" dialogue box| 00086990 2e 20 27 6c 65 6e 67 74 68 27 0a 63 6f 6e 74 61 |. 'length'.conta| 000869a0 69 6e 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f |ins the length o| 000869b0 66 20 74 68 65 20 6e 61 6d 65 20 62 75 66 66 65 |f the name buffe| 000869c0 72 2e 00 00 44 41 54 41 03 01 00 00 53 61 76 65 |r...DATA....Save| 000869d0 41 73 5f 52 65 61 64 4c 65 61 66 6e 61 6d 65 0a |As_ReadLeafname.| 000869e0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 53 61 76 |Syntax:.void Sav| 000869f0 65 41 73 5f 52 65 61 64 4c 65 61 66 6e 61 6d 65 |eAs_ReadLeafname| 00086a00 20 28 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e | (char *name, in| 00086a10 74 20 6c 65 6e 67 74 68 29 3b 0a 48 65 61 64 65 |t length);.Heade| 00086a20 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 53 61 76 65 |r:.<TimsLib:Save| 00086a30 41 73 2e 68 3d 3e 53 61 76 65 41 73 5f 54 4c 3e |As.h=>SaveAs_TL>| 00086a40 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00086a50 72 65 61 64 73 20 74 68 65 20 6c 65 61 66 6e 61 |reads the leafna| 00086a60 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 73 |me of the file s| 00086a70 61 76 65 64 20 75 73 69 6e 67 20 3c 53 61 76 65 |aved using <Save| 00086a80 41 73 3d 3e 53 61 76 65 41 73 5f 3e 2e 0a 0a 54 |As=>SaveAs_>...T| 00086a90 68 65 20 6e 61 6d 65 20 69 73 20 73 74 6f 72 65 |he name is store| 00086aa0 64 20 69 6e 20 6e 61 6d 65 2c 20 61 6e 20 61 72 |d in name, an ar| 00086ab0 72 61 79 20 6f 66 20 6c 65 6e 67 74 68 20 2f 6c |ray of length /l| 00086ac0 65 6e 67 74 68 2f 2e 00 44 41 54 41 bf 00 00 00 |ength/..DATA....| 00086ad0 54 69 6d 73 4c 69 62 3a 53 61 76 65 41 73 2e 68 |TimsLib:SaveAs.h| 00086ae0 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 65 63 |.This header dec| 00086af0 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 |lares functions | 00086b00 66 6f 72 20 65 61 73 79 20 68 61 6e 64 6c 69 6e |for easy handlin| 00086b10 67 20 6f 66 20 73 74 61 6e 64 61 72 64 20 22 73 |g of standard "s| 00086b20 61 76 65 20 61 73 22 20 64 69 61 6c 6f 67 75 65 |ave as" dialogue| 00086b30 20 62 6f 78 65 73 2e 0a 0a 46 75 6e 63 74 69 6f | boxes...Functio| 00086b40 6e 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 |ns:..#table colu| 00086b50 6d 6e 73 20 32 0a 3c 53 61 76 65 41 73 3d 3e 53 |mns 2.<SaveAs=>S| 00086b60 61 76 65 41 73 5f 3e 0a 3c 53 61 76 65 41 73 5f |aveAs_>.<SaveAs_| 00086b70 52 65 61 64 4c 65 61 66 6e 61 6d 65 3e 0a 23 65 |ReadLeafname>.#e| 00086b80 6e 64 74 61 62 6c 65 00 44 49 52 24 40 01 00 00 |ndtable.DIR$@...| 00086b90 40 01 00 00 c8 6c 08 00 46 ff ff ff 45 10 63 25 |@....l..F...E.c%| 00086ba0 7b 01 00 00 13 00 00 00 00 00 00 00 66 69 6c 65 |{...........file| 00086bb0 73 61 76 65 72 00 00 00 44 6e 08 00 46 ff ff ff |saver...Dn..F...| 00086bc0 42 d7 1e 30 3c 05 00 00 13 00 00 00 00 00 00 00 |B..0<...........| 00086bd0 49 6e 69 74 53 61 76 65 57 69 6e 64 6f 77 48 61 |InitSaveWindowHa| 00086be0 6e 64 6c 65 72 00 00 00 34 d4 0c 00 46 ff ff ff |ndler...4...F...| 00086bf0 a4 32 1c 30 5d 02 00 00 13 00 00 00 00 00 00 00 |.2.0]...........| 00086c00 72 61 6d 73 61 76 65 72 00 00 00 00 e0 75 08 00 |ramsaver.....u..| 00086c10 46 ff ff ff 10 f8 63 25 92 01 00 00 13 00 00 00 |F.....c%........| 00086c20 00 00 00 00 52 65 6c 65 61 73 65 53 61 76 65 48 |....ReleaseSaveH| 00086c30 61 6e 64 6c 65 72 73 00 74 77 08 00 46 ff ff ff |andlers.tw..F...| 00086c40 54 43 63 25 08 01 00 00 13 00 00 00 00 00 00 00 |TCc%............| 00086c50 72 65 73 75 6c 74 00 00 7c 78 08 00 46 ff ff ff |result..|x..F...| 00086c60 43 51 63 25 62 01 00 00 13 00 00 00 00 00 00 00 |CQc%b...........| 00086c70 72 65 73 75 6c 74 68 61 6e 64 6c 65 72 00 00 00 |resulthandler...| 00086c80 e0 79 08 00 46 ff ff ff e9 8d 63 25 a9 03 00 00 |.y..F.....c%....| 00086c90 13 00 00 00 00 00 00 00 73 61 76 65 62 6c 6f 63 |........savebloc| 00086ca0 6b 00 00 00 8c 7d 08 00 46 ff ff ff de 33 64 25 |k....}..F....3d%| 00086cb0 71 01 00 00 13 00 00 00 00 00 00 00 53 65 74 46 |q...........SetF| 00086cc0 69 6c 65 74 79 70 65 00 44 41 54 41 7b 01 00 00 |iletype.DATA{...| 00086cd0 73 61 76 65 5f 66 69 6c 65 73 61 76 65 72 0a 54 |save_filesaver.T| 00086ce0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00086cf0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 00086d00 53 61 76 65 2e 68 3d 3e 53 61 76 65 3e 2e 20 49 |Save.h=>Save>. I| 00086d10 74 20 64 65 66 69 6e 65 73 20 61 20 66 75 6e 63 |t defines a func| 00086d20 74 69 6f 6e 20 74 79 70 65 20 75 73 65 64 20 66 |tion type used f| 00086d30 6f 72 20 73 61 76 69 6e 67 20 64 61 74 61 2e 20 |or saving data. | 00086d40 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |The function is | 00086d50 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 7b 77 72 |of the form:.{wr| 00086d60 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 3b 61 |ap off}.{fCode;a| 00086d70 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 42 4f 4f |lign centre}<BOO| 00086d80 4c 3e 20 6d 79 66 75 6e 63 20 28 63 68 61 72 20 |L> myfunc (char | 00086d90 2a 66 2c 20 76 6f 69 64 20 2a 72 65 66 29 3b 7b |*f, void *ref);{| 00086da0 66 3b 61 6c 69 67 6e 3b 77 72 61 70 7d 0a 0a 54 |f;align;wrap}..T| 00086db0 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 |he function shou| 00086dc0 6c 64 20 73 61 76 65 20 64 61 74 61 20 74 6f 20 |ld save data to | 00086dd0 66 69 6c 65 20 2f 66 2f 2c 20 2f 72 65 66 2f 20 |file /f/, /ref/ | 00086de0 69 73 20 70 61 73 73 65 64 20 73 74 72 61 69 67 |is passed straig| 00086df0 68 74 20 66 72 6f 6d 20 3c 53 61 76 65 5f 49 6e |ht from <Save_In| 00086e00 69 74 53 61 76 65 57 69 6e 64 6f 77 48 61 6e 64 |itSaveWindowHand| 00086e10 6c 65 72 3e 2e 20 49 74 20 73 68 6f 75 6c 64 20 |ler>. It should | 00086e20 72 65 74 75 72 6e 20 3c 54 52 55 45 3e 20 69 66 |return <TRUE> if| 00086e30 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 | an error occurr| 00086e40 65 64 2e 00 44 41 54 41 3c 05 00 00 53 61 76 65 |ed..DATA<...Save| 00086e50 5f 49 6e 69 74 53 61 76 65 57 69 6e 64 6f 77 48 |_InitSaveWindowH| 00086e60 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 3c |andler.Syntax:.<| 00086e70 73 61 76 65 5f 73 61 76 65 62 6c 6f 63 6b 3e 20 |save_saveblock> | 00086e80 2a 53 61 76 65 5f 49 6e 69 74 53 61 76 65 57 69 |*Save_InitSaveWi| 00086e90 6e 64 6f 77 48 61 6e 64 6c 65 72 20 28 3c 77 69 |ndowHandler (<wi| 00086ea0 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 2c 20 |ndow_handle> w, | 00086eb0 3c 42 4f 4f 4c 3e 20 69 73 5f 6d 65 6e 75 2c 20 |<BOOL> is_menu, | 00086ec0 42 4f 4f 4c 20 69 73 5f 77 69 6e 2c 20 42 4f 4f |BOOL is_win, BOO| 00086ed0 4c 20 72 65 6c 65 61 73 65 2c 20 3c 69 63 6f 6e |L release, <icon| 00086ee0 5f 68 61 6e 64 6c 65 3e 20 64 72 61 67 2c 20 69 |_handle> drag, i| 00086ef0 63 6f 6e 5f 68 61 6e 64 6c 65 20 6f 6b 2c 20 69 |con_handle ok, i| 00086f00 63 6f 6e 5f 68 61 6e 64 6c 65 20 63 61 6e 63 65 |con_handle cance| 00086f10 6c 2c 20 69 63 6f 6e 5f 68 61 6e 64 6c 65 20 6e |l, icon_handle n| 00086f20 61 6d 65 2c 20 3c 73 61 76 65 5f 66 69 6c 65 73 |ame, <save_files| 00086f30 61 76 65 72 3e 20 66 69 6c 65 73 61 76 65 2c 20 |aver> filesave, | 00086f40 3c 73 61 76 65 5f 72 61 6d 73 61 76 65 72 3e 20 |<save_ramsaver> | 00086f50 72 61 6d 73 61 76 65 2c 20 3c 73 61 76 65 5f 72 |ramsave, <save_r| 00086f60 65 73 75 6c 74 68 61 6e 64 6c 65 72 3e 20 72 65 |esulthandler> re| 00086f70 73 5f 68 61 6e 64 6c 65 2c 20 3c 73 69 7a 65 5f |s_handle, <size_| 00086f80 74 3e 20 65 73 74 73 69 7a 65 2c 20 69 6e 74 20 |t> estsize, int | 00086f90 66 69 6c 65 74 79 70 65 2c 20 76 6f 69 64 20 2a |filetype, void *| 00086fa0 72 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ref);.Header:.<D| 00086fb0 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d 3e 53 |eskLib:Save.h=>S| 00086fc0 61 76 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ave>..Returns:.P| 00086fd0 6f 69 6e 74 65 72 20 74 6f 20 73 61 76 65 20 62 |ointer to save b| 00086fe0 6c 6f 63 6b 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |lock...This func| 00086ff0 74 69 6f 6e 20 68 61 6e 64 6c 65 73 20 65 76 65 |tion handles eve| 00087000 72 79 74 68 69 6e 67 20 74 6f 20 64 6f 20 77 69 |rything to do wi| 00087010 74 68 20 73 61 76 69 6e 67 2e 20 4f 6e 63 65 20 |th saving. Once | 00087020 79 6f 75 72 20 73 61 76 65 0a 77 69 6e 64 6f 77 |your save.window| 00087030 20 69 73 20 63 72 65 61 74 65 64 20 61 6c 6c 20 | is created all | 00087040 79 6f 75 20 6e 65 65 64 20 74 6f 20 64 6f 20 69 |you need to do i| 00087050 73 20 63 61 6c 6c 20 74 68 69 73 20 77 69 74 68 |s call this with| 00087060 3a 0a 7b 74 61 62 7d 0a 8f 09 54 68 65 20 77 69 |:.{tab}...The wi| 00087070 6e 64 6f 77 20 68 61 6e 64 6c 65 20 6f 66 20 74 |ndow handle of t| 00087080 68 65 20 73 61 76 65 20 77 69 6e 64 6f 77 0a 8f |he save window..| 00087090 09 49 66 20 74 68 65 20 73 61 76 65 20 77 69 6e |.If the save win| 000870a0 64 6f 77 20 69 73 20 6f 6e 20 61 20 6d 65 6e 75 |dow is on a menu| 000870b0 20 6f 72 20 6a 75 73 74 20 61 20 77 69 6e 64 6f | or just a windo| 000870c0 77 0a 8f 09 49 66 20 74 68 65 20 73 61 76 65 20 |w...If the save | 000870d0 68 61 6e 64 6c 65 72 73 20 73 68 6f 75 6c 64 20 |handlers should | 000870e0 62 65 20 72 65 6c 65 61 73 65 64 20 61 66 74 65 |be released afte| 000870f0 72 77 61 72 64 73 0a 8f 09 54 68 65 20 69 63 6f |rwards...The ico| 00087100 6e 20 68 61 6e 64 6c 65 73 20 6f 66 20 74 68 65 |n handles of the| 00087110 20 64 72 61 67 67 61 62 6c 65 20 69 63 6f 6e 2c | draggable icon,| 00087120 20 4f 4b 2c 20 43 61 6e 63 65 6c 20 61 6e 64 20 | OK, Cancel and | 00087130 66 69 6c 65 6e 61 6d 65 0a 8f 09 54 68 65 20 68 |filename...The h| 00087140 61 6e 64 6c 65 72 73 20 66 6f 72 20 73 61 76 69 |andlers for savi| 00087150 6e 67 20 74 6f 20 66 69 6c 65 2c 20 52 41 4d 20 |ng to file, RAM | 00087160 74 72 61 6e 73 66 65 72 2c 20 61 6e 64 20 61 66 |transfer, and af| 00087170 74 65 72 77 61 72 64 73 0a 8f 09 54 68 65 20 65 |terwards...The e| 00087180 73 74 69 6d 61 74 65 64 20 66 69 6c 65 20 73 69 |stimated file si| 00087190 7a 65 20 28 70 72 65 74 74 79 20 75 73 65 6c 65 |ze (pretty usele| 000871a0 73 73 20 72 65 61 6c 6c 79 29 0a 8f 09 41 20 75 |ss really)...A u| 000871b0 73 65 72 20 76 61 6c 75 65 20 28 7b 2f 7d 72 65 |ser value ({/}re| 000871c0 66 7b 2f 7d 29 20 77 68 69 63 68 20 69 73 20 70 |f{/}) which is p| 000871d0 61 73 73 65 64 20 64 69 72 65 63 74 6c 79 20 74 |assed directly t| 000871e0 6f 20 74 68 65 20 68 61 6e 64 6c 65 72 73 2e 0a |o the handlers..| 000871f0 0a 50 6f 69 6e 74 73 20 74 6f 20 6e 6f 74 65 3a |.Points to note:| 00087200 0a 0a 8f 09 54 68 65 20 66 69 6c 65 6e 61 6d 65 |....The filename| 00087210 20 6d 75 73 74 20 62 65 20 69 6e 64 69 72 65 63 | must be indirec| 00087220 74 65 64 20 74 65 78 74 20 61 6e 64 20 73 68 6f |ted text and sho| 00087230 75 6c 64 20 63 6f 6e 74 61 69 6e 20 61 20 64 65 |uld contain a de| 00087240 66 61 75 6c 74 20 6e 61 6d 65 2e 0a 8f 09 2f 72 |fault name..../r| 00087250 61 6d 73 61 76 65 2f 20 61 6e 64 20 7b 2f 7d 72 |amsave/ and {/}r| 00087260 65 73 5f 68 61 6e 64 6c 65 7b 2f 7d 20 61 72 65 |es_handle{/} are| 00087270 20 6f 70 74 69 6f 6e 61 6c 20 28 3c 4e 55 4c 4c | optional (<NULL| 00087280 3e 20 69 66 20 6e 6f 74 20 72 65 71 75 69 72 65 |> if not require| 00087290 64 29 2e 0a 8f 09 2f 72 65 6c 65 61 73 65 2f 20 |d)..../release/ | 000872a0 63 61 6e 20 62 65 20 3c 46 41 4c 53 45 3e 20 69 |can be <FALSE> i| 000872b0 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6f 6e |f you want to on| 000872c0 6c 79 20 63 61 6c 6c 20 74 68 69 73 20 66 75 6e |ly call this fun| 000872d0 63 74 69 6f 6e 20 6f 6e 63 65 20 77 68 65 6e 20 |ction once when | 000872e0 74 68 65 20 77 69 6e 64 6f 77 20 69 73 20 63 72 |the window is cr| 000872f0 65 61 74 65 64 2e 20 49 6e 20 74 68 69 73 20 63 |eated. In this c| 00087300 61 73 65 20 79 6f 75 20 6d 61 79 20 6e 65 65 64 |ase you may need| 00087310 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 72 | to access the r| 00087320 65 74 75 72 6e 65 64 20 73 74 72 75 63 74 75 72 |eturned structur| 00087330 65 20 79 6f 75 72 73 65 6c 66 2e 0a 8f 09 54 68 |e yourself....Th| 00087340 65 20 73 61 76 65 20 77 69 6e 64 6f 77 20 63 61 |e save window ca| 00087350 6e 20 68 61 76 65 20 61 20 63 6c 6f 73 65 20 69 |n have a close i| 00087360 63 6f 6e 2c 20 62 75 74 20 74 68 69 73 20 69 73 |con, but this is| 00087370 20 6e 6f 74 20 67 6f 6f 64 20 73 74 79 6c 65 2e | not good style.| 00087380 46 52 45 45 5d 02 00 00 ff ff ff ff 5f 72 61 6d |FREE]......._ram| 00087390 73 61 76 65 72 0a 54 68 69 73 20 74 79 70 65 20 |saver.This type | 000873a0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 000873b0 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d 3e 53 |eskLib:Save.h=>S| 000873c0 61 76 65 3e 2e 20 49 74 20 64 65 66 69 6e 65 73 |ave>. It defines| 000873d0 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 | a function type| 000873e0 20 75 73 65 64 20 66 6f 72 20 73 61 76 69 6e 67 | used for saving| 000873f0 20 64 61 74 61 2e 20 54 68 65 20 66 75 6e 63 74 | data. The funct| 00087400 69 6f 6e 20 69 73 20 6f 66 20 74 68 65 20 66 6f |ion is of the fo| 00087410 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 |rm:..{fCode;alig| 00087420 6e 20 63 65 6e 74 72 65 7d 69 6e 74 20 6d 79 66 |n centre}int myf| 00087430 75 6e 63 20 28 3c 74 61 73 6b 5f 68 61 6e 64 6c |unc (<task_handl| 00087440 65 3e 20 73 6f 75 72 63 65 2c 20 76 6f 69 64 20 |e> source, void | 00087450 2a 72 65 66 2c 20 74 61 73 6b 5f 68 61 6e 64 6c |*ref, task_handl| 00087460 65 20 64 65 73 74 69 6e 2c 20 76 6f 69 64 20 2a |e destin, void *| 00087470 62 75 66 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e |buf, unsigned in| 00087480 74 20 73 69 7a 65 2c 20 69 6e 74 20 63 6f 75 6e |t size, int coun| 00087490 74 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 54 68 |t);{f;align}..Th| 000874a0 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c |e function shoul| 000874b0 64 20 75 73 65 20 3c 57 69 6d 70 5f 54 72 61 6e |d use <Wimp_Tran| 000874c0 73 66 65 72 42 6c 6f 63 6b 3e 20 74 6f 20 74 72 |sferBlock> to tr| 000874d0 61 6e 73 66 65 72 20 64 61 74 61 20 74 6f 20 2f |ansfer data to /| 000874e0 62 75 66 2f 20 69 6e 20 74 68 65 20 74 61 73 6b |buf/ in the task| 000874f0 20 2f 64 65 73 74 69 6e 2f 2e 20 2f 73 69 7a 65 | /destin/. /size| 00087500 2f 20 67 69 76 65 73 20 74 68 65 20 73 69 7a 65 |/ gives the size| 00087510 20 6f 66 20 2f 62 75 66 2f 20 69 65 20 74 68 65 | of /buf/ ie the| 00087520 20 61 6d 6f 75 6e 74 20 74 6f 20 74 72 61 6e 73 | amount to trans| 00087530 66 65 72 20 61 6e 64 20 2f 63 6f 75 6e 74 2f 20 |fer and /count/ | 00087540 69 73 20 74 68 65 20 61 6d 6f 75 6e 74 20 74 72 |is the amount tr| 00087550 61 6e 73 66 65 72 72 65 64 20 74 6f 20 66 61 72 |ansferred to far| 00087560 2e 20 2f 73 6f 75 72 63 65 2f 20 69 73 20 79 6f |. /source/ is yo| 00087570 75 72 20 74 61 73 6b 20 68 61 6e 64 6c 65 2e 20 |ur task handle. | 00087580 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f |The function sho| 00087590 75 6c 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e |uld return the n| 000875a0 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 |umber of bytes t| 000875b0 72 61 6e 73 66 65 72 72 65 64 2c 20 6f 72 20 6e |ransferred, or n| 000875c0 65 67 61 74 69 76 65 20 69 66 20 61 6e 20 65 72 |egative if an er| 000875d0 72 6f 72 20 6f 63 63 75 72 72 65 64 2e 00 00 00 |ror occurred....| 000875e0 44 41 54 41 92 01 00 00 53 61 76 65 5f 52 65 6c |DATA....Save_Rel| 000875f0 65 61 73 65 53 61 76 65 48 61 6e 64 6c 65 72 73 |easeSaveHandlers| 00087600 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 53 61 |.Syntax:.void Sa| 00087610 76 65 5f 52 65 6c 65 61 73 65 53 61 76 65 48 61 |ve_ReleaseSaveHa| 00087620 6e 64 6c 65 72 73 20 28 3c 73 61 76 65 5f 73 61 |ndlers (<save_sa| 00087630 76 65 62 6c 6f 63 6b 3e 20 2a 73 61 76 65 62 6c |veblock> *savebl| 00087640 6f 63 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ock);.Header:.<D| 00087650 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d 3e 53 |eskLib:Save.h=>S| 00087660 61 76 65 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ave>..This funct| 00087670 69 6f 6e 20 72 65 6c 65 61 73 65 73 20 74 68 65 |ion releases the| 00087680 20 73 61 76 65 20 68 61 6e 64 6c 65 72 73 2e 20 | save handlers. | 00087690 59 6f 75 20 77 69 6c 6c 20 6f 6e 6c 79 20 6e 65 |You will only ne| 000876a0 65 64 20 74 6f 20 63 61 6c 6c 20 74 68 69 73 20 |ed to call this | 000876b0 69 66 20 66 6f 72 20 73 6f 6d 65 20 72 65 61 73 |if for some reas| 000876c0 6f 6e 20 74 68 65 20 53 61 76 65 20 6d 6f 64 75 |on the Save modu| 000876d0 6c 65 20 63 61 6e 6e 6f 74 20 64 65 74 65 63 74 |le cannot detect| 000876e0 20 74 68 65 20 6d 65 6e 75 20 63 6c 6f 73 69 6e | the menu closin| 000876f0 67 20 6f 72 20 74 68 65 20 77 69 6e 64 6f 77 20 |g or the window | 00087700 63 6c 6f 73 69 6e 67 2e 20 46 6f 72 20 69 6e 73 |closing. For ins| 00087710 74 61 6e 63 65 2c 20 75 6e 64 65 72 20 52 49 53 |tance, under RIS| 00087720 43 20 4f 53 20 32 20 6d 65 6e 75 20 63 6c 6f 73 |C OS 2 menu clos| 00087730 69 6e 67 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 |ing cannot be de| 00087740 74 65 63 74 65 64 20 61 6e 64 20 73 6f 20 79 6f |tected and so yo| 00087750 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 |u will have to c| 00087760 61 6c 6c 20 74 68 69 73 20 73 6f 6d 65 74 69 6d |all this sometim| 00087770 65 2e 00 00 44 41 54 41 08 01 00 00 73 61 76 65 |e...DATA....save| 00087780 5f 72 65 73 75 6c 74 0a 54 68 69 73 20 74 79 70 |_result.This typ| 00087790 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000877a0 3c 44 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d |<DeskLib:Save.h=| 000877b0 3e 53 61 76 65 3e 2e 20 49 74 20 69 73 20 61 6e |>Save>. It is an| 000877c0 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 | enumerated type| 000877d0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 | containing the | 000877e0 70 6f 73 73 69 62 6c 65 20 72 65 73 75 6c 74 73 |possible results| 000877f0 20 6f 66 20 61 20 73 61 76 65 20 61 74 74 65 6d | of a save attem| 00087800 70 74 2e 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 |pt... \{. | 00087810 20 20 73 61 76 65 5f 53 41 56 45 4f 4b 09 3d 20 | save_SAVEOK.= | 00087820 30 2c 0a 20 20 20 20 20 20 73 61 76 65 5f 52 45 |0,. save_RE| 00087830 43 45 49 56 45 52 46 41 49 4c 45 44 2c 09 0a 20 |CEIVERFAILED,.. | 00087840 20 20 20 20 20 73 61 76 65 5f 46 49 4c 45 53 41 | save_FILESA| 00087850 56 45 52 46 41 49 4c 45 44 2c 09 0a 20 20 20 20 |VERFAILED,.. | 00087860 20 20 73 61 76 65 5f 52 41 4d 53 41 56 45 52 46 | save_RAMSAVERF| 00087870 41 49 4c 45 44 09 0a 20 20 20 20 7d 44 41 54 41 |AILED.. }DATA| 00087880 62 01 00 00 73 61 76 65 5f 72 65 73 75 6c 74 68 |b...save_resulth| 00087890 61 6e 64 6c 65 72 0a 54 68 69 73 20 74 79 70 65 |andler.This type| 000878a0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000878b0 44 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d 3e |DeskLib:Save.h=>| 000878c0 53 61 76 65 3e 2e 20 49 74 20 64 65 66 69 6e 65 |Save>. It define| 000878d0 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 |s a function typ| 000878e0 65 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 73 |e called after s| 000878f0 61 76 69 6e 67 2e 20 54 68 65 20 66 75 6e 63 74 |aving. The funct| 00087900 69 6f 6e 20 69 73 20 6f 66 20 74 68 65 20 66 6f |ion is of the fo| 00087910 72 6d 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b |rm:.{wrap off}.{| 00087920 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 |fCode;align cent| 00087930 72 65 7d 76 6f 69 64 20 6d 79 66 75 6e 63 20 28 |re}void myfunc (| 00087940 3c 73 61 76 65 5f 72 65 73 75 6c 74 3e 20 72 65 |<save_result> re| 00087950 73 75 6c 74 2c 20 76 6f 69 64 20 2a 72 65 66 29 |sult, void *ref)| 00087960 3b 7b 66 3b 61 6c 69 67 6e 3b 77 72 61 70 7d 0a |;{f;align;wrap}.| 00087970 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 |.The function sh| 00087980 6f 75 6c 64 20 61 63 74 20 6f 6e 20 74 68 65 20 |ould act on the | 00087990 72 65 73 75 6c 74 20 63 6f 64 65 20 67 69 76 65 |result code give| 000879a0 6e 2c 20 2f 72 65 66 2f 20 69 73 20 70 61 73 73 |n, /ref/ is pass| 000879b0 65 64 20 73 74 72 61 69 67 68 74 20 66 72 6f 6d |ed straight from| 000879c0 20 3c 53 61 76 65 5f 49 6e 69 74 53 61 76 65 57 | <Save_InitSaveW| 000879d0 69 6e 64 6f 77 48 61 6e 64 6c 65 72 3e 2e 00 00 |indowHandler>...| 000879e0 44 41 54 41 a9 03 00 00 73 61 76 65 5f 73 61 76 |DATA....save_sav| 000879f0 65 62 6c 6f 63 6b 0a 54 68 69 73 20 74 79 70 65 |eblock.This type| 00087a00 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00087a10 44 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d 3e |DeskLib:Save.h=>| 00087a20 53 61 76 65 3e 2e 20 49 74 20 69 73 20 61 20 72 |Save>. It is a r| 00087a30 61 74 68 65 72 20 6c 61 72 67 65 20 73 74 72 75 |ather large stru| 00087a40 63 74 75 72 65 20 77 68 69 63 68 20 63 6f 6e 74 |cture which cont| 00087a50 61 69 6e 73 20 61 6c 6c 20 74 68 65 20 69 6e 66 |ains all the inf| 00087a60 6f 72 6d 61 74 69 6f 6e 20 6e 65 65 64 65 64 20 |ormation needed | 00087a70 74 6f 20 68 61 6e 64 6c 65 20 61 20 73 61 76 65 |to handle a save| 00087a80 20 6f 70 65 72 61 74 69 6f 6e 2e 20 59 6f 75 20 | operation. You | 00087a90 77 69 6c 6c 20 6e 6f 74 20 67 65 6e 65 72 61 6c |will not general| 00087aa0 6c 79 20 6e 65 65 64 20 74 6f 20 61 63 63 65 73 |ly need to acces| 00087ab0 73 20 74 68 69 73 20 73 74 72 75 63 74 75 72 65 |s this structure| 00087ac0 20 69 6e 74 65 72 6e 61 6c 6c 79 2c 20 62 75 74 | internally, but| 00087ad0 20 66 6f 72 20 74 68 65 20 69 6e 74 65 72 65 73 | for the interes| 00087ae0 74 65 64 20 69 74 20 69 73 3a 0a 0a 5c 7b 0a 20 |ted it is:..\{. | 00087af0 20 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e | <window_handle>| 00087b00 20 77 69 6e 64 6f 77 3b 0a 0a 20 20 75 6e 69 6f | window;.. unio| 00087b10 6e 0a 20 20 5c 7b 0a 20 20 20 20 75 6e 73 69 67 |n. \{. unsig| 00087b20 6e 65 64 20 69 6e 74 20 76 61 6c 75 65 3b 0a 20 |ned int value;. | 00087b30 20 20 20 73 74 72 75 63 74 0a 20 20 20 20 5c 7b | struct. \{| 00087b40 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00087b50 69 6e 74 20 69 73 5f 6d 65 6e 75 09 09 3a 20 31 |int is_menu..: 1| 00087b60 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 00087b70 20 69 6e 74 20 69 73 5f 73 61 76 65 5f 77 69 6e | int is_save_win| 00087b80 64 6f 77 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |dow.: 1;. u| 00087b90 6e 73 69 67 6e 65 64 20 69 6e 74 20 77 65 5f 61 |nsigned int we_a| 00087ba0 72 65 5f 64 72 61 67 67 69 6e 67 09 3a 20 31 3b |re_dragging.: 1;| 00087bb0 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 00087bc0 69 6e 74 20 71 75 69 74 5f 61 66 74 65 72 5f 73 |int quit_after_s| 00087bd0 61 76 65 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |ave.: 1;. u| 00087be0 6e 73 69 67 6e 65 64 20 69 6e 74 20 72 65 6c 65 |nsigned int rele| 00087bf0 61 73 65 5f 61 66 74 65 72 09 3a 20 31 3b 0a 0a |ase_after.: 1;..| 00087c00 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 00087c10 6e 74 20 70 61 64 64 69 6e 67 09 09 3a 20 32 37 |nt padding..: 27| 00087c20 3b 0a 20 20 20 20 7d 20 64 61 74 61 3b 0a 20 20 |;. } data;. | 00087c30 7d 20 66 6c 61 67 73 3b 0a 7b 74 61 62 7d 0a 20 |} flags;.{tab}. | 00087c40 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 09 09 | <icon_handle>..| 00087c50 64 72 61 67 73 70 72 69 74 65 3b 0a 20 20 3c 69 |dragsprite;. <i| 00087c60 63 6f 6e 5f 68 61 6e 64 6c 65 3e 09 09 6f 6b 62 |con_handle>..okb| 00087c70 75 74 74 6f 6e 3b 0a 20 20 3c 69 63 6f 6e 5f 68 |utton;. <icon_h| 00087c80 61 6e 64 6c 65 3e 09 09 63 61 6e 63 65 6c 62 75 |andle>..cancelbu| 00087c90 74 74 6f 6e 3b 0a 20 20 3c 69 63 6f 6e 5f 68 61 |tton;. <icon_ha| 00087ca0 6e 64 6c 65 3e 09 09 66 69 6c 65 6e 61 6d 65 69 |ndle>..filenamei| 00087cb0 63 6f 6e 3b 0a 20 20 3c 73 61 76 65 5f 66 69 6c |con;. <save_fil| 00087cc0 65 73 61 76 65 72 3e 09 66 69 6c 65 73 61 76 65 |esaver>.filesave| 00087cd0 72 3b 0a 20 20 3c 73 61 76 65 5f 72 61 6d 73 61 |r;. <save_ramsa| 00087ce0 76 65 72 3e 09 72 61 6d 73 61 76 65 72 3b 0a 20 |ver>.ramsaver;. | 00087cf0 20 3c 73 61 76 65 5f 72 65 73 75 6c 74 68 61 6e | <save_resulthan| 00087d00 64 6c 65 72 3e 09 72 65 73 75 6c 74 68 61 6e 64 |dler>.resulthand| 00087d10 6c 65 72 3b 0a 20 20 3c 73 69 7a 65 5f 74 3e 09 |ler;. <size_t>.| 00087d20 09 65 73 74 69 6d 61 74 65 64 73 69 7a 65 3b 0a |.estimatedsize;.| 00087d30 20 20 69 6e 74 09 09 09 66 69 6c 65 74 79 70 65 | int...filetype| 00087d40 0a 20 20 76 6f 69 64 09 09 09 2a 72 65 66 3b 0a |. void...*ref;.| 00087d50 20 20 69 6e 74 09 09 09 72 61 6d 5f 70 72 6f 67 | int...ram_prog| 00087d60 72 65 73 73 3b 0a 20 20 75 6e 73 69 67 6e 65 64 |ress;. unsigned| 00087d70 20 69 6e 74 09 09 6c 61 73 74 5f 6d 65 73 73 61 | int..last_messa| 00087d80 67 65 5f 72 65 66 3b 0a 7d 00 00 00 44 41 54 41 |ge_ref;.}...DATA| 00087d90 71 01 00 00 53 61 76 65 5f 53 65 74 46 69 6c 65 |q...Save_SetFile| 00087da0 74 79 70 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |type.Syntax:.voi| 00087db0 64 20 53 61 76 65 5f 53 65 74 46 69 6c 65 74 79 |d Save_SetFilety| 00087dc0 70 65 20 28 3c 73 61 76 65 5f 73 61 76 65 62 6c |pe (<save_savebl| 00087dd0 6f 63 6b 3e 20 2a 62 6c 6f 63 6b 2c 20 69 6e 74 |ock> *block, int| 00087de0 20 66 69 6c 65 74 79 70 65 29 3b 0a 48 65 61 64 | filetype);.Head| 00087df0 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 61 76 |er:.<DeskLib:Sav| 00087e00 65 2e 68 3d 3e 53 61 76 65 3e 0a 0a 54 68 69 73 |e.h=>Save>..This| 00087e10 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 | function sets t| 00087e20 68 65 20 73 70 72 69 74 65 20 69 6e 20 74 68 65 |he sprite in the| 00087e30 20 73 61 76 65 20 77 69 6e 64 6f 77 20 74 6f 20 | save window to | 00087e40 62 65 20 22 66 69 6c 65 5f 2e 2e 2e 22 20 69 65 |be "file_..." ie| 00087e50 20 74 68 65 20 63 6f 72 72 65 63 74 20 66 69 6c | the correct fil| 00087e60 65 20 69 63 6f 6e 20 66 6f 72 20 74 68 65 20 66 |e icon for the f| 00087e70 69 6c 65 74 79 70 65 2c 20 61 6e 64 20 61 6c 73 |iletype, and als| 00087e80 6f 20 61 6c 74 65 72 73 20 74 68 65 20 73 61 76 |o alters the sav| 00087e90 65 62 6c 6f 63 6b 20 73 6f 20 74 68 61 74 20 74 |eblock so that t| 00087ea0 68 65 20 66 69 6c 65 74 79 70 65 20 69 73 20 75 |he filetype is u| 00087eb0 73 65 64 2e 0a 0a 4e 42 20 54 68 65 20 64 72 61 |sed...NB The dra| 00087ec0 67 20 69 63 6f 6e 20 69 73 20 73 65 74 20 74 6f |g icon is set to| 00087ed0 20 6e 6f 6e 2d 69 6e 64 69 72 65 63 74 65 64 20 | non-indirected | 00087ee0 73 70 72 69 74 65 2d 6f 6e 6c 79 20 62 79 20 74 |sprite-only by t| 00087ef0 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 00 00 00 |his function....| 00087f00 44 49 52 24 2c 00 00 00 2c 00 00 00 2c 7f 08 00 |DIR$,...,...,...| 00087f10 46 ff ff ff 5c a4 48 26 ab 00 00 00 13 00 00 00 |F...\.H&........| 00087f20 00 00 00 00 62 6c 6f 63 6b 00 00 00 44 41 54 41 |....block...DATA| 00087f30 ab 00 00 00 73 63 61 6c 65 5f 62 6c 6f 63 6b 0a |....scale_block.| 00087f40 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00087f50 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 00087f60 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 |:Wimp.h=>Wimp> a| 00087f70 73 20 61 20 74 79 70 65 20 68 6f 6c 64 69 6e 67 |s a type holding| 00087f80 20 64 61 74 61 20 66 6f 72 20 75 73 65 20 62 79 | data for use by| 00087f90 20 3c 57 69 6d 70 5f 52 65 61 64 50 69 78 54 72 | <Wimp_ReadPixTr| 00087fa0 61 6e 73 3e 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 |ans>... \{. | 00087fb0 77 69 6d 70 5f 70 6f 69 6e 74 20 6d 75 6c 3b 0a |wimp_point mul;.| 00087fc0 20 20 20 20 77 69 6d 70 5f 70 6f 69 6e 74 20 64 | wimp_point d| 00087fd0 69 76 3b 0a 20 20 7d 00 44 41 54 41 23 01 00 00 |iv;. }.DATA#...| 00087fe0 73 63 61 6e 66 0a 53 79 6e 74 61 78 3a 09 69 6e |scanf.Syntax:.in| 00087ff0 74 20 73 63 61 6e 66 20 28 63 68 61 72 20 2a 66 |t scanf (char *f| 00088000 6f 72 6d 61 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 |ormat, ...);.Hea| 00088010 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 00088020 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tdio>..Returns:.| 00088030 4e 75 6d 62 65 72 20 6f 66 20 73 75 63 63 65 73 |Number of succes| 00088040 73 66 75 6c 20 69 6e 70 75 74 73 2c 20 6f 72 20 |sful inputs, or | 00088050 3c 45 4f 46 3e 20 69 66 20 74 68 65 72 65 20 77 |<EOF> if there w| 00088060 61 73 20 61 6e 20 69 6e 70 75 74 20 65 72 72 6f |as an input erro| 00088070 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 00088080 6e 20 72 65 61 64 73 20 69 6e 70 75 74 20 66 72 |n reads input fr| 00088090 6f 6d 20 3c 73 74 64 69 6e 3e 20 75 6e 64 65 72 |om <stdin> under| 000880a0 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 74 68 65 20 | control of the | 000880b0 3c 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3d 3e |<format string=>| 000880c0 73 66 6f 72 6d 5f 3e 2e 0a 0a 49 74 20 69 73 20 |sform_>...It is | 000880d0 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 3c 66 73 |identical to <fs| 000880e0 63 61 6e 66 3e 28 73 74 64 69 6e 2c 20 66 6f 72 |canf>(stdin, for| 000880f0 6d 61 74 2c 20 2e 2e 2e 29 3b 20 00 44 49 52 24 |mat, ...); .DIR$| 00088100 44 00 00 00 44 00 00 00 40 81 08 00 46 ff ff ff |D...D...@...F...| 00088110 99 e6 bc 22 a3 00 00 00 13 00 00 00 00 00 00 00 |..."............| 00088120 4d 41 58 00 e4 81 08 00 46 ff ff ff a9 e3 bc 22 |MAX.....F......"| 00088130 a3 00 00 00 13 00 00 00 00 00 00 00 4d 49 4e 00 |............MIN.| 00088140 44 41 54 41 a3 00 00 00 53 43 48 41 52 5f 4d 41 |DATA....SCHAR_MA| 00088150 58 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 |X.This macro is | 00088160 64 65 66 69 6e 65 64 20 69 6e 20 3c 6c 69 6d 69 |defined in <limi| 00088170 74 73 2e 68 3e 20 61 6e 64 20 72 65 70 72 65 73 |ts.h> and repres| 00088180 65 6e 74 73 20 74 68 65 20 6d 61 78 69 6d 75 6d |ents the maximum| 00088190 20 76 61 6c 75 65 20 77 68 69 63 68 20 63 61 6e | value which can| 000881a0 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 20 | be stored in a | 000881b0 73 69 67 6e 65 64 20 63 68 61 72 2e 20 49 6e 20 |signed char. In | 000881c0 45 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 |Easy C it is def| 000881d0 69 6e 65 64 20 61 73 20 30 78 37 66 20 28 31 32 |ined as 0x7f (12| 000881e0 37 29 2e 00 44 41 54 41 a3 00 00 00 53 43 48 41 |7)..DATA....SCHA| 000881f0 52 5f 4d 49 4e 0a 54 68 69 73 20 6d 61 63 72 6f |R_MIN.This macro| 00088200 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00088210 6c 69 6d 69 74 73 2e 68 3e 20 61 6e 64 20 72 65 |limits.h> and re| 00088220 70 72 65 73 65 6e 74 73 20 74 68 65 20 6d 69 6e |presents the min| 00088230 69 6d 75 6d 20 76 61 6c 75 65 20 74 68 61 74 20 |imum value that | 00088240 63 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 6e |can be stored in| 00088250 20 61 20 73 69 67 6e 65 64 20 63 68 61 72 2e 20 | a signed char. | 00088260 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 20 |In Easy C it is | 00088270 64 65 66 69 6e 65 64 20 61 73 20 30 78 38 30 20 |defined as 0x80 | 00088280 28 2d 31 32 38 29 2e 00 44 41 54 41 19 01 00 00 |(-128)..DATA....| 00088290 44 65 73 6b 4c 69 62 3a 53 63 72 65 65 6e 2e 68 |DeskLib:Screen.h| 000882a0 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 30 30 20 28 |.Version: 1.00 (| 000882b0 32 33 20 4d 61 72 20 31 39 39 32 29 0a 23 6c 69 |23 Mar 1992).#li| 000882c0 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |ne.This header d| 000882d0 65 63 6c 61 72 65 73 20 6f 6e 65 20 66 75 6e 63 |eclares one func| 000882e0 74 69 6f 6e 2c 20 77 68 69 63 68 20 72 65 61 64 |tion, which read| 000882f0 73 20 73 65 76 65 72 61 6c 20 6d 6f 64 65 20 76 |s several mode v| 00088300 61 72 69 61 62 6c 65 73 2e 0a 0a 46 75 6e 63 74 |ariables...Funct| 00088310 69 6f 6e 3a 20 3c 53 63 72 65 65 6e 5f 43 61 63 |ion: <Screen_Cac| 00088320 68 65 4d 6f 64 65 49 6e 66 6f 3e 0a 0a 56 61 72 |heModeInfo>..Var| 00088330 69 61 62 6c 65 73 3a 0a 0a 23 69 6e 64 65 6e 74 |iables:..#indent| 00088340 20 32 0a 23 54 61 62 6c 65 20 6c 69 6e 65 73 20 | 2.#Table lines | 00088350 32 0a 3c 73 63 72 65 65 6e 5f 6d 6f 64 65 3e 0a |2.<screen_mode>.| 00088360 3c 73 63 72 65 65 6e 5f 73 69 7a 65 3e 0a 3c 73 |<screen_size>.<s| 00088370 63 72 65 65 6e 5f 65 69 67 3e 0a 3c 73 63 72 65 |creen_eig>.<scre| 00088380 65 6e 5f 64 65 6c 74 61 3e 0a 3c 73 63 72 65 65 |en_delta>.<scree| 00088390 6e 5f 62 70 70 3e 0a 0a 23 45 6e 64 54 61 62 6c |n_bpp>..#EndTabl| 000883a0 65 00 00 00 44 49 52 24 cc 00 00 00 cc 00 00 00 |e...DIR$........| 000883b0 70 84 08 00 46 ff ff ff bd 87 64 25 a7 00 00 00 |p...F.....d%....| 000883c0 13 00 00 00 00 00 00 00 62 70 70 00 18 85 08 00 |........bpp.....| 000883d0 46 ff ff ff ee 6d 64 25 9b 01 00 00 13 00 00 00 |F....md%........| 000883e0 00 00 00 00 43 61 63 68 65 4d 6f 64 65 49 6e 66 |....CacheModeInf| 000883f0 6f 00 00 00 b4 86 08 00 46 ff ff ff cd 80 64 25 |o.......F.....d%| 00088400 c3 00 00 00 13 00 00 00 00 00 00 00 64 65 6c 74 |............delt| 00088410 61 00 00 00 78 87 08 00 46 ff ff ff a9 7a 64 25 |a...x...F....zd%| 00088420 c4 00 00 00 13 00 00 00 00 00 00 00 65 69 67 00 |............eig.| 00088430 3c 88 08 00 46 ff ff ff 71 71 64 25 7e 00 00 00 |<...F...qqd%~...| 00088440 13 00 00 00 00 00 00 00 6d 6f 64 65 00 00 00 00 |........mode....| 00088450 bc 88 08 00 46 ff ff ff 25 74 64 25 97 00 00 00 |....F...%td%....| 00088460 13 00 00 00 00 00 00 00 73 69 7a 65 00 00 00 00 |........size....| 00088470 44 41 54 41 a7 00 00 00 73 63 72 65 65 6e 5f 62 |DATA....screen_b| 00088480 70 70 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 |pp.This variable| 00088490 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000884a0 44 65 73 6b 4c 69 62 3a 53 63 72 65 65 6e 2e 68 |DeskLib:Screen.h| 000884b0 3d 3e 53 63 72 65 65 6e 3e 2e 20 49 74 20 69 73 |=>Screen>. It is| 000884c0 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 | used to hold th| 000884d0 65 20 63 75 72 72 65 6e 74 20 6e 75 6d 62 65 72 |e current number| 000884e0 20 6f 66 20 62 69 74 73 20 70 65 72 20 70 69 78 | of bits per pix| 000884f0 65 6c 2e 0a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 |el...{align cent| 00088500 72 65 7d 43 6f 6c 6f 75 72 73 20 3d 20 31 20 5c |re}Colours = 1 \| 00088510 3c 5c 3c 20 42 50 50 00 44 41 54 41 9b 01 00 00 |<\< BPP.DATA....| 00088520 53 63 72 65 65 6e 5f 43 61 63 68 65 4d 6f 64 65 |Screen_CacheMode| 00088530 49 6e 66 6f 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |Info.Syntax:.<BO| 00088540 4f 4c 3e 20 53 63 72 65 65 6e 5f 43 61 63 68 65 |OL> Screen_Cache| 00088550 4d 6f 64 65 49 6e 66 6f 20 28 76 6f 69 64 29 3b |ModeInfo (void);| 00088560 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00088570 62 3a 53 63 72 65 65 6e 2e 68 3d 3e 53 63 72 65 |b:Screen.h=>Scre| 00088580 65 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 |en>..Returns:.<T| 00088590 52 55 45 3e 20 28 61 6c 77 61 79 73 21 29 0a 0a |RUE> (always!)..| 000885a0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 |This function se| 000885b0 74 73 20 75 70 20 74 68 65 20 76 61 72 69 61 62 |ts up the variab| 000885c0 6c 65 73 20 3c 73 63 72 65 65 6e 5f 6d 6f 64 65 |les <screen_mode| 000885d0 3e 2c 20 3c 73 63 72 65 65 6e 5f 65 69 67 3e 2c |>, <screen_eig>,| 000885e0 20 3c 73 63 72 65 65 6e 5f 62 70 70 3e 2c 20 3c | <screen_bpp>, <| 000885f0 73 63 72 65 65 6e 5f 73 69 7a 65 3e 20 61 6e 64 |screen_size> and| 00088600 20 3c 73 63 72 65 65 6e 5f 64 65 6c 74 61 3e 2e | <screen_delta>.| 00088610 0a 0a 49 74 20 73 68 6f 75 6c 64 20 62 65 20 63 |..It should be c| 00088620 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 79 6f 75 |alled before you| 00088630 20 74 72 79 20 74 6f 20 75 73 65 20 61 6e 79 20 | try to use any | 00088640 6f 66 20 74 68 65 73 65 20 76 61 72 69 61 62 6c |of these variabl| 00088650 65 73 20 61 6e 64 20 65 76 65 72 79 20 74 69 6d |es and every tim| 00088660 65 20 74 68 65 20 6d 6f 64 65 20 63 68 61 6e 67 |e the mode chang| 00088670 65 73 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e |es. The function| 00088680 20 3c 48 61 6e 64 6c 65 72 5f 4d 6f 64 65 43 68 | <Handler_ModeCh| 00088690 61 6e 67 65 3e 20 69 73 20 70 72 6f 76 69 64 65 |ange> is provide| 000886a0 64 20 66 6f 72 20 74 68 69 73 20 70 75 72 70 6f |d for this purpo| 000886b0 73 65 2e 00 44 41 54 41 c3 00 00 00 73 63 72 65 |se..DATA....scre| 000886c0 65 6e 5f 64 65 6c 74 61 0a 54 68 69 73 20 76 61 |en_delta.This va| 000886d0 72 69 61 62 6c 65 20 69 73 20 64 65 66 69 6e 65 |riable is define| 000886e0 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 53 63 |d in <DeskLib:Sc| 000886f0 72 65 65 6e 2e 68 3d 3e 53 63 72 65 65 6e 3e 2e |reen.h=>Screen>.| 00088700 20 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 68 | It is used to h| 00088710 6f 6c 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 |old the current | 00088720 73 63 72 65 65 6e 20 64 65 6c 74 61 20 76 61 6c |screen delta val| 00088730 75 65 73 20 28 61 73 20 61 20 3c 77 69 6d 70 5f |ues (as a <wimp_| 00088740 70 6f 69 6e 74 3e 29 2e 0a 0a 7b 61 6c 69 67 6e |point>)...{align| 00088750 20 63 65 6e 74 72 65 7d 4f 53 20 75 6e 69 74 73 | centre}OS units| 00088760 20 3d 20 50 69 78 65 6c 73 20 2a 20 44 65 6c 74 | = Pixels * Delt| 00088770 61 20 76 61 6c 75 65 00 44 41 54 41 c4 00 00 00 |a value.DATA....| 00088780 73 63 72 65 65 6e 5f 65 69 67 0a 54 68 69 73 20 |screen_eig.This | 00088790 76 61 72 69 61 62 6c 65 20 69 73 20 64 65 66 69 |variable is defi| 000887a0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000887b0 53 63 72 65 65 6e 2e 68 3d 3e 53 63 72 65 65 6e |Screen.h=>Screen| 000887c0 3e 2e 20 49 74 20 69 73 20 75 73 65 64 20 74 6f |>. It is used to| 000887d0 20 68 6f 6c 64 20 74 68 65 20 63 75 72 72 65 6e | hold the curren| 000887e0 74 20 73 63 72 65 65 6e 20 65 69 67 65 6e 20 76 |t screen eigen v| 000887f0 61 6c 75 65 73 20 28 61 73 20 61 20 3c 77 69 6d |alues (as a <wim| 00088800 70 5f 70 6f 69 6e 74 3e 29 2e 0a 0a 7b 61 6c 69 |p_point>)...{ali| 00088810 67 6e 20 63 65 6e 74 72 65 7d 4f 53 20 55 6e 69 |gn centre}OS Uni| 00088820 74 73 20 3d 20 50 69 78 65 6c 73 20 5c 3c 5c 3c |ts = Pixels \<\<| 00088830 20 45 69 67 65 6e 20 76 61 6c 75 65 44 41 54 41 | Eigen valueDATA| 00088840 7e 00 00 00 73 63 72 65 65 6e 5f 6d 6f 64 65 0a |~...screen_mode.| 00088850 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 |This variable is| 00088860 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 00088870 6b 4c 69 62 3a 53 63 72 65 65 6e 2e 68 3d 3e 53 |kLib:Screen.h=>S| 00088880 63 72 65 65 6e 3e 2e 20 49 74 20 69 73 20 75 73 |creen>. It is us| 00088890 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 63 |ed to hold the c| 000888a0 75 72 72 65 6e 74 20 73 63 72 65 65 6e 20 6d 6f |urrent screen mo| 000888b0 64 65 20 6e 75 6d 62 65 72 2e 00 00 44 41 54 41 |de number...DATA| 000888c0 97 00 00 00 73 63 72 65 65 6e 5f 73 69 7a 65 0a |....screen_size.| 000888d0 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 |This variable is| 000888e0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 000888f0 6b 4c 69 62 3a 53 63 72 65 65 6e 2e 68 3d 3e 53 |kLib:Screen.h=>S| 00088900 63 72 65 65 6e 3e 2e 20 49 74 20 69 73 20 75 73 |creen>. It is us| 00088910 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 63 |ed to hold the c| 00088920 75 72 72 65 6e 74 20 73 63 72 65 65 6e 20 73 69 |urrent screen si| 00088930 7a 65 20 28 61 73 20 61 20 3c 77 69 6d 70 5f 70 |ze (as a <wimp_p| 00088940 6f 69 6e 74 3e 29 20 69 6e 20 4f 53 20 75 6e 69 |oint>) in OS uni| 00088950 74 73 2e 00 44 49 52 24 48 00 00 00 48 00 00 00 |ts..DIR$H...H...| 00088960 9c 89 08 00 46 ff ff ff 79 6f 48 26 d3 00 00 00 |....F...yoH&....| 00088970 13 00 00 00 00 00 00 00 72 71 00 00 70 8a 08 00 |........rq..p...| 00088980 46 ff ff ff 59 a6 58 26 1f 01 00 00 13 00 00 00 |F...Y.X&........| 00088990 00 00 00 00 74 79 70 65 00 00 00 00 44 41 54 41 |....type....DATA| 000889a0 d3 00 00 00 73 63 72 6f 6c 6c 5f 72 71 0a 54 68 |....scroll_rq.Th| 000889b0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000889c0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 |ed in <DeskLib:W| 000889d0 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 |imp.h=>Wimp>. It| 000889e0 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 000889f0 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 64 |containing the d| 00088a00 61 74 61 20 72 65 74 75 72 6e 65 64 20 62 79 20 |ata returned by | 00088a10 61 20 53 63 72 6f 6c 6c 5f 52 65 71 75 65 73 74 |a Scroll_Request| 00088a20 20 65 76 65 6e 74 2e 0a 0a 20 20 5c 7b 0a 20 20 | event... \{. | 00088a30 20 20 3c 77 69 6e 64 6f 77 5f 6f 70 65 6e 62 6c | <window_openbl| 00088a40 6f 63 6b 3e 09 6f 70 65 6e 62 6c 6f 63 6b 3b 0a |ock>.openblock;.| 00088a50 20 20 20 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e | <wimp_point>| 00088a60 09 64 69 72 65 63 74 69 6f 6e 3b 0a 20 20 7d 00 |.direction;. }.| 00088a70 44 41 54 41 1f 01 00 00 73 63 72 6f 6c 6c 5f 74 |DATA....scroll_t| 00088a80 79 70 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ype.This type is| 00088a90 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d | defined in <Tim| 00088aa0 73 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 |sLib:Window.h=>W| 00088ab0 69 6e 64 6f 77 5f 54 4c 3e 2e 20 49 74 20 69 73 |indow_TL>. It is| 00088ac0 20 61 6e 20 65 6e 75 6d 65 72 61 74 65 64 20 74 | an enumerated t| 00088ad0 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 |ype containing t| 00088ae0 68 65 20 74 68 72 65 65 20 77 61 79 73 20 61 20 |he three ways a | 00088af0 77 69 6e 64 6f 77 20 63 61 6e 20 73 63 72 6f 6c |window can scrol| 00088b00 6c 2e 0a 0a 20 20 20 5c 7b 0a 20 20 20 20 20 73 |l... \{. s| 00088b10 63 72 6f 6c 6c 5f 58 09 3d 20 33 2c 0a 20 20 20 |croll_X.= 3,. | 00088b20 20 20 73 63 72 6f 6c 6c 5f 59 09 3d 20 34 2c 0a | scroll_Y.= 4,.| 00088b30 20 20 20 20 20 73 63 72 6f 6c 6c 5f 32 44 09 3d | scroll_2D.=| 00088b40 20 31 32 0a 20 20 20 7d 0a 0a 54 68 65 20 6c 61 | 12. }..The la| 00088b50 73 74 20 6f 6e 65 20 69 73 20 61 20 73 63 72 6f |st one is a scro| 00088b60 6c 6c 20 69 6e 20 62 6f 74 68 20 64 69 72 65 63 |ll in both direc| 00088b70 74 69 6f 6e 73 20 61 74 20 6f 6e 63 65 20 28 52 |tions at once (R| 00088b80 49 53 43 20 4f 53 20 33 20 6f 6e 6c 79 29 2e 00 |ISC OS 3 only)..| 00088b90 44 41 54 41 3b 00 00 00 53 74 65 70 68 65 6e 20 |DATA;...Stephen | 00088ba0 43 72 6f 75 63 68 0a 49 6e 74 65 72 6e 65 74 20 |Crouch.Internet | 00088bb0 65 6d 61 69 6c 3a 20 73 63 39 33 40 65 63 73 2e |email: sc93@ecs.| 00088bc0 73 6f 74 6f 6e 2e 61 63 2e 75 6b 00 44 49 52 24 |soton.ac.uk.DIR$| 00088bd0 60 00 00 00 60 00 00 00 2c 8c 08 00 46 ff ff ff |`...`...,...F...| 00088be0 94 38 c2 22 dd 00 00 00 13 00 00 00 00 00 00 00 |.8."............| 00088bf0 43 55 52 00 0c 8d 08 00 46 ff ff ff 79 3b c2 22 |CUR.....F...y;."| 00088c00 dc 00 00 00 13 00 00 00 00 00 00 00 45 4e 44 00 |............END.| 00088c10 e8 8d 08 00 46 ff ff ff 05 35 c2 22 de 00 00 00 |....F....5."....| 00088c20 13 00 00 00 00 00 00 00 53 45 54 00 44 41 54 41 |........SET.DATA| 00088c30 dd 00 00 00 53 45 45 4b 5f 43 55 52 0a 23 50 61 |....SEEK_CUR.#Pa| 00088c40 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 65 20 6d |rent stdio.The m| 00088c50 61 63 72 6f 20 53 45 45 4b 5f 43 55 52 20 69 73 |acro SEEK_CUR is| 00088c60 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 | defined in <std| 00088c70 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 6e 64 |io.h=>stdio> and| 00088c80 20 69 73 20 61 20 76 61 6c 75 65 20 75 73 65 64 | is a value used| 00088c90 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 | as an argument | 00088ca0 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |for the function| 00088cb0 20 3c 66 73 65 65 6b 3e 2e 20 49 74 20 63 61 75 | <fseek>. It cau| 00088cc0 73 65 73 20 74 68 65 20 66 69 6c 65 20 70 6f 69 |ses the file poi| 00088cd0 6e 74 65 72 20 74 6f 20 62 65 20 72 65 70 6f 73 |nter to be repos| 00088ce0 69 74 69 6f 6e 65 64 20 72 65 6c 61 74 69 76 65 |itioned relative| 00088cf0 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 | to the current | 00088d00 70 6f 73 69 74 69 6f 6e 2e 00 00 00 44 41 54 41 |position....DATA| 00088d10 dc 00 00 00 53 45 45 4b 5f 45 4e 44 0a 23 50 61 |....SEEK_END.#Pa| 00088d20 72 65 6e 74 20 73 74 64 69 6f 0a 54 68 65 20 6d |rent stdio.The m| 00088d30 61 63 72 6f 20 53 45 45 4b 5f 45 4e 44 20 69 73 |acro SEEK_END is| 00088d40 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 | defined in <std| 00088d50 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 6e 64 |io.h=>stdio> and| 00088d60 20 69 73 20 61 20 76 61 6c 75 65 20 75 73 65 64 | is a value used| 00088d70 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 | as an argument | 00088d80 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |for the function| 00088d90 20 3c 66 73 65 65 6b 3e 2e 20 49 74 20 63 61 75 | <fseek>. It cau| 00088da0 73 65 73 20 74 68 65 20 66 69 6c 65 20 70 6f 69 |ses the file poi| 00088db0 6e 74 65 72 20 74 6f 20 62 65 20 72 65 70 6f 73 |nter to be repos| 00088dc0 69 74 69 6f 6e 65 64 20 72 65 6c 61 74 69 76 65 |itioned relative| 00088dd0 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 | to the end of t| 00088de0 68 65 20 66 69 6c 65 2e 44 41 54 41 de 00 00 00 |he file.DATA....| 00088df0 53 45 45 4b 5f 53 45 54 0a 23 50 61 72 65 6e 74 |SEEK_SET.#Parent| 00088e00 20 73 74 64 69 6f 0a 54 68 65 20 6d 61 63 72 6f | stdio.The macro| 00088e10 20 53 45 45 4b 5f 53 45 54 20 69 73 20 64 65 66 | SEEK_SET is def| 00088e20 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 |ined in <stdio.h| 00088e30 3d 3e 73 74 64 69 6f 3e 20 61 6e 64 20 69 73 20 |=>stdio> and is | 00088e40 61 20 76 61 6c 75 65 20 75 73 65 64 20 61 73 20 |a value used as | 00088e50 61 6e 20 61 72 67 75 6d 65 6e 74 20 66 6f 72 20 |an argument for | 00088e60 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 66 73 |the function <fs| 00088e70 65 65 6b 3e 2e 20 49 74 20 63 61 75 73 65 73 20 |eek>. It causes | 00088e80 74 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 72 |the file pointer| 00088e90 20 74 6f 20 62 65 20 72 65 70 6f 73 69 74 69 6f | to be repositio| 00088ea0 6e 65 64 20 72 65 6c 61 74 69 76 65 20 74 6f 20 |ned relative to | 00088eb0 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 |the start of the| 00088ec0 20 66 69 6c 65 2e 00 00 44 41 54 41 36 02 00 00 | file...DATA6...| 00088ed0 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 6c 2e 68 |DeskLib:Serial.h| 00088ee0 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 31 30 20 28 |.Version: 1.10 (| 00088ef0 31 32 20 44 65 63 20 31 39 39 33 29 0a 23 6c 69 |12 Dec 1993).#li| 00088f00 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |ne.This header d| 00088f10 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 00088f20 73 20 66 6f 72 20 73 65 72 69 61 6c 20 49 2f 4f |s for serial I/O| 00088f30 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 00088f40 54 61 62 6c 65 20 37 20 32 30 0a 3c 53 65 72 69 |Table 7 20.<Seri| 00088f50 61 6c 5f 41 63 74 69 76 61 74 65 3e 0a 3c 53 65 |al_Activate>.<Se| 00088f60 72 69 61 6c 5f 44 65 61 63 74 69 76 61 74 65 3e |rial_Deactivate>| 00088f70 0a 3c 53 65 72 69 61 6c 5f 47 65 74 53 74 61 74 |.<Serial_GetStat| 00088f80 75 73 3e 0a 3c 53 65 72 69 61 6c 5f 53 65 74 53 |us>.<Serial_SetS| 00088f90 74 61 74 75 73 3e 0a 3c 53 65 72 69 61 6c 5f 47 |tatus>.<Serial_G| 00088fa0 65 74 46 6f 72 6d 61 74 3e 0a 3c 53 65 72 69 61 |etFormat>.<Seria| 00088fb0 6c 5f 53 65 74 46 6f 72 6d 61 74 3e 0a 3c 53 65 |l_SetFormat>.<Se| 00088fc0 72 69 61 6c 5f 47 65 74 54 78 52 61 74 65 3e 0a |rial_GetTxRate>.| 00088fd0 3c 53 65 72 69 61 6c 5f 47 65 74 52 78 52 61 74 |<Serial_GetRxRat| 00088fe0 65 3e 0a 3c 53 65 72 69 61 6c 5f 53 65 74 54 78 |e>.<Serial_SetTx| 00088ff0 52 61 74 65 3e 0a 3c 53 65 72 69 61 6c 5f 53 65 |Rate>.<Serial_Se| 00089000 74 52 78 52 61 74 65 3e 0a 3c 53 65 72 69 61 6c |tRxRate>.<Serial| 00089010 5f 47 65 74 42 79 74 65 3e 0a 3c 53 65 72 69 61 |_GetByte>.<Seria| 00089020 6c 5f 50 75 74 42 79 74 65 3e 0a 3c 53 65 72 69 |l_PutByte>.<Seri| 00089030 61 6c 5f 53 65 6e 64 42 72 65 61 6b 3e 0a 3c 53 |al_SendBreak>.<S| 00089040 65 72 69 61 6c 5f 4e 6f 6e 5a 65 72 6f 50 6f 6c |erial_NonZeroPol| 00089050 6c 57 6f 72 64 4f 6e 52 65 63 65 69 76 65 3e 0a |lWordOnReceive>.| 00089060 23 45 6e 64 54 61 62 6c 65 0a 0a 4d 61 63 72 6f |#EndTable..Macro| 00089070 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 31 32 0a 23 |s:..#indent 12.#| 00089080 54 61 62 6c 65 20 31 20 32 30 0a 3c 53 74 61 74 |Table 1 20.<Stat| 00089090 75 73 20 62 69 74 73 3d 3e 53 65 72 69 61 6c 5f |us bits=>Serial_| 000890a0 73 74 61 74 5f 3e 0a 3c 44 61 74 61 20 66 6f 72 |stat_>.<Data for| 000890b0 6d 61 74 20 62 69 74 73 3d 3e 53 65 72 69 61 6c |mat bits=>Serial| 000890c0 5f 64 61 74 61 5f 3e 0a 23 45 6e 64 54 61 62 6c |_data_>.#EndTabl| 000890d0 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 73 |e.#indent..Types| 000890e0 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |:..{align centre| 000890f0 7d 3c 73 65 72 69 61 6c 5f 72 61 74 65 3e 00 00 |}<serial_rate>..| 00089100 44 49 52 24 6c 02 00 00 6c 02 00 00 6c 93 08 00 |DIR$l...l...l...| 00089110 46 ff ff ff b6 a9 64 25 f6 00 00 00 13 00 00 00 |F.....d%........| 00089120 00 00 00 00 41 63 74 69 76 61 74 65 00 00 00 00 |....Activate....| 00089130 64 94 08 00 46 fd ff ff 2e 19 65 25 0c 02 00 00 |d...F.....e%....| 00089140 13 00 00 00 00 00 00 00 64 61 74 61 5f 00 00 00 |........data_...| 00089150 70 96 08 00 46 ff ff ff 10 af 64 25 fc 00 00 00 |p...F.....d%....| 00089160 13 00 00 00 00 00 00 00 44 65 61 63 74 69 76 61 |........Deactiva| 00089170 74 65 00 00 6c 97 08 00 46 ff ff ff c8 df 64 25 |te..l...F.....d%| 00089180 de 00 00 00 13 00 00 00 00 00 00 00 47 65 74 42 |............GetB| 00089190 79 74 65 00 4c 98 08 00 46 ff ff ff 07 c8 64 25 |yte.L...F.....d%| 000891a0 d0 00 00 00 13 00 00 00 00 00 00 00 47 65 74 46 |............GetF| 000891b0 6f 72 6d 61 74 00 00 00 1c 99 08 00 46 ff ff ff |ormat.......F...| 000891c0 be d2 64 25 d3 00 00 00 13 00 00 00 00 00 00 00 |..d%............| 000891d0 47 65 74 52 78 52 61 74 65 00 00 00 f0 99 08 00 |GetRxRate.......| 000891e0 46 ff ff ff 2a b4 64 25 d8 00 00 00 13 00 00 00 |F...*.d%........| 000891f0 00 00 00 00 47 65 74 53 74 61 74 75 73 00 00 00 |....GetStatus...| 00089200 c8 9a 08 00 46 ff ff ff 2d cf 64 25 d4 00 00 00 |....F...-.d%....| 00089210 13 00 00 00 00 00 00 00 47 65 74 54 78 52 61 74 |........GetTxRat| 00089220 65 00 00 00 9c 9b 08 00 46 ff ff ff c6 e3 64 25 |e.......F.....d%| 00089230 cd 00 00 00 13 00 00 00 00 00 00 00 50 75 74 42 |............PutB| 00089240 79 74 65 00 6c 9c 08 00 46 ff ff ff 98 29 65 25 |yte.l...F....)e%| 00089250 e2 01 00 00 13 00 00 00 00 00 00 00 72 61 74 65 |............rate| 00089260 00 00 00 00 50 9e 08 00 46 ff ff ff b3 e7 64 25 |....P...F.....d%| 00089270 d4 00 00 00 13 00 00 00 00 00 00 00 53 65 6e 64 |............Send| 00089280 42 72 65 61 6b 00 00 00 24 9f 08 00 46 ff ff ff |Break...$...F...| 00089290 78 cb 64 25 ea 00 00 00 13 00 00 00 00 00 00 00 |x.d%............| 000892a0 53 65 74 46 6f 72 6d 61 74 00 00 00 10 a0 08 00 |SetFormat.......| 000892b0 46 ff ff ff c7 db 64 25 dc 00 00 00 13 00 00 00 |F.....d%........| 000892c0 00 00 00 00 53 65 74 52 78 52 61 74 65 00 00 00 |....SetRxRate...| 000892d0 ec a0 08 00 46 ff ff ff 25 c2 64 25 17 01 00 00 |....F...%.d%....| 000892e0 13 00 00 00 00 00 00 00 53 65 74 53 74 61 74 75 |........SetStatu| 000892f0 73 00 00 00 04 a2 08 00 46 ff ff ff bb d6 64 25 |s.......F.....d%| 00089300 dd 00 00 00 13 00 00 00 00 00 00 00 53 65 74 54 |............SetT| 00089310 78 52 61 74 65 00 00 00 e4 a2 08 00 46 fd ff ff |xRate.......F...| 00089320 94 0b 65 25 b6 02 00 00 13 00 00 00 00 00 00 00 |..e%............| 00089330 73 74 61 74 5f 00 00 00 9c a5 08 00 46 ff ff ff |stat_.......F...| 00089340 ab f8 64 25 12 01 00 00 13 00 00 00 00 00 00 00 |..d%............| 00089350 4e 6f 6e 5a 65 72 6f 50 6f 6c 6c 57 6f 72 64 4f |NonZeroPollWordO| 00089360 6e 52 65 63 65 69 76 65 00 00 00 00 44 41 54 41 |nReceive....DATA| 00089370 f6 00 00 00 53 65 72 69 61 6c 5f 41 63 74 69 76 |....Serial_Activ| 00089380 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ate.Syntax:.<os_| 00089390 65 72 72 6f 72 3e 20 2a 53 65 72 69 61 6c 5f 41 |error> *Serial_A| 000893a0 63 74 69 76 61 74 65 20 28 76 6f 69 64 29 3b 0a |ctivate (void);.| 000893b0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000893c0 3a 53 65 72 69 61 6c 2e 68 3d 3e 53 65 72 69 61 |:Serial.h=>Seria| 000893d0 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |l>..Returns:.Poi| 000893e0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000893f0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00089400 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00089410 20 61 63 74 69 76 61 74 65 73 20 74 68 65 20 73 | activates the s| 00089420 65 72 69 61 6c 20 64 72 69 76 65 72 73 2e 20 49 |erial drivers. I| 00089430 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |t is equivalent | 00089440 74 6f 20 53 57 49 20 3c 4f 53 5f 42 79 74 65 3d |to SWI <OS_Byte=| 00089450 3e 53 57 49 3a 4f 53 5f 42 79 74 65 3e 20 32 2c |>SWI:OS_Byte> 2,| 00089460 32 2e 00 00 44 41 54 41 0c 02 00 00 44 61 74 61 |2...DATA....Data| 00089470 20 66 6f 72 6d 61 74 20 62 69 74 73 0a 54 68 65 | format bits.The| 00089480 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f | following macro| 00089490 73 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e |s are defined in| 000894a0 20 3c 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 6c | <DeskLib:Serial| 000894b0 2e 68 3d 3e 53 65 72 69 61 6c 3e 20 66 6f 72 20 |.h=>Serial> for | 000894c0 75 73 65 20 77 68 65 6e 20 72 65 61 64 69 6e 67 |use when reading| 000894d0 2f 77 72 69 74 69 6e 67 20 74 68 65 20 64 61 74 |/writing the dat| 000894e0 61 20 66 6f 72 6d 61 74 2e 20 54 68 65 20 6d 61 |a format. The ma| 000894f0 63 72 6f 73 20 66 6f 72 20 74 68 65 20 72 65 71 |cros for the req| 00089500 75 69 72 65 64 20 62 69 74 73 20 73 68 6f 75 6c |uired bits shoul| 00089510 64 20 62 65 20 61 64 64 65 64 20 74 6f 67 65 74 |d be added toget| 00089520 68 65 72 2e 0a 0a 73 65 72 69 61 6c 5f 38 42 49 |her...serial_8BI| 00089530 54 57 4f 52 44 09 30 78 30 30 30 30 30 30 30 30 |TWORD.0x00000000| 00089540 0a 73 65 72 69 61 6c 5f 37 42 49 54 57 4f 52 44 |.serial_7BITWORD| 00089550 09 30 78 30 30 30 30 30 30 30 31 0a 73 65 72 69 |.0x00000001.seri| 00089560 61 6c 5f 36 42 49 54 57 4f 52 44 09 30 78 30 30 |al_6BITWORD.0x00| 00089570 30 30 30 30 30 32 0a 73 65 72 69 61 6c 5f 35 42 |000002.serial_5B| 00089580 49 54 57 4f 52 44 09 30 78 30 30 30 30 30 30 30 |ITWORD.0x0000000| 00089590 33 0a 73 65 72 69 61 6c 5f 31 53 54 4f 50 42 49 |3.serial_1STOPBI| 000895a0 54 09 30 78 30 30 30 30 30 30 30 30 0a 73 65 72 |T.0x00000000.ser| 000895b0 69 61 6c 5f 32 53 54 4f 50 42 49 54 53 09 30 78 |ial_2STOPBITS.0x| 000895c0 30 30 30 30 30 30 30 34 0a 73 65 72 69 61 6c 5f |00000004.serial_| 000895d0 4e 4f 50 41 52 49 54 59 09 30 78 30 30 30 30 30 |NOPARITY.0x00000| 000895e0 30 30 30 0a 73 65 72 69 61 6c 5f 50 41 52 49 54 |000.serial_PARIT| 000895f0 59 09 30 78 30 30 30 30 30 30 30 38 0a 73 65 72 |Y.0x00000008.ser| 00089600 69 61 6c 5f 4f 44 44 50 41 52 49 54 59 09 30 78 |ial_ODDPARITY.0x| 00089610 30 30 30 30 30 30 30 30 0a 73 65 72 69 61 6c 5f |00000000.serial_| 00089620 45 56 45 4e 50 41 52 49 54 59 09 30 78 30 30 30 |EVENPARITY.0x000| 00089630 30 30 30 31 30 0a 73 65 72 69 61 6c 5f 4d 41 52 |00010.serial_MAR| 00089640 4b 50 41 52 49 54 59 09 30 78 30 30 30 30 30 30 |KPARITY.0x000000| 00089650 32 30 0a 73 65 72 69 61 6c 5f 53 50 41 43 45 50 |20.serial_SPACEP| 00089660 41 52 49 54 59 09 30 78 30 30 30 30 30 30 33 30 |ARITY.0x00000030| 00089670 44 41 54 41 fc 00 00 00 53 65 72 69 61 6c 5f 44 |DATA....Serial_D| 00089680 65 61 63 74 69 76 61 74 65 0a 53 79 6e 74 61 78 |eactivate.Syntax| 00089690 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 65 |:.<os_error> *Se| 000896a0 72 69 61 6c 5f 44 65 61 63 74 69 76 61 74 65 20 |rial_Deactivate | 000896b0 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 |(void);.Header:.| 000896c0 3c 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 6c 2e |<DeskLib:Serial.| 000896d0 68 3d 3e 53 65 72 69 61 6c 3e 0a 0a 52 65 74 75 |h=>Serial>..Retu| 000896e0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000896f0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00089700 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00089710 66 75 6e 63 74 69 6f 6e 20 64 65 61 63 74 69 76 |function deactiv| 00089720 61 74 65 73 20 74 68 65 20 73 65 72 69 61 6c 20 |ates the serial | 00089730 64 72 69 76 65 72 73 2e 20 49 74 20 69 73 20 65 |drivers. It is e| 00089740 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 53 57 49 |quivalent to SWI| 00089750 20 3c 4f 53 5f 42 79 74 65 3d 3e 53 57 49 3a 4f | <OS_Byte=>SWI:O| 00089760 53 5f 42 79 74 65 3e 20 32 2c 30 2e 44 41 54 41 |S_Byte> 2,0.DATA| 00089770 de 00 00 00 53 65 72 69 61 6c 5f 47 65 74 42 79 |....Serial_GetBy| 00089780 74 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 53 |te.Syntax:.int S| 00089790 65 72 69 61 6c 5f 47 65 74 42 79 74 65 20 28 76 |erial_GetByte (v| 000897a0 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |oid);.Header:.<D| 000897b0 65 73 6b 4c 69 62 3a 53 65 72 69 61 6c 2e 68 3d |eskLib:Serial.h=| 000897c0 3e 53 65 72 69 61 6c 3e 0a 0a 52 65 74 75 72 6e |>Serial>..Return| 000897d0 73 3a 09 42 79 74 65 20 72 65 61 64 2c 20 6f 72 |s:.Byte read, or| 000897e0 20 2d 31 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 | -1...This funct| 000897f0 69 6f 6e 20 72 65 61 64 73 20 61 20 73 69 6e 67 |ion reads a sing| 00089800 6c 65 20 62 79 74 65 20 66 72 6f 6d 20 74 68 65 |le byte from the| 00089810 20 73 65 72 69 61 6c 20 69 6e 70 75 74 20 62 75 | serial input bu| 00089820 66 66 65 72 2e 20 49 66 20 6e 6f 6e 65 20 61 72 |ffer. If none ar| 00089830 65 20 61 76 61 69 6c 61 62 6c 65 20 69 74 20 72 |e available it r| 00089840 65 74 75 72 6e 73 20 2d 31 2e 00 00 44 41 54 41 |eturns -1...DATA| 00089850 d0 00 00 00 53 65 72 69 61 6c 5f 47 65 74 46 6f |....Serial_GetFo| 00089860 72 6d 61 74 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |rmat.Syntax:.int| 00089870 20 53 65 72 69 61 6c 5f 47 65 74 46 6f 72 6d 61 | Serial_GetForma| 00089880 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |t (void);.Header| 00089890 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 |:.<DeskLib:Seria| 000898a0 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e 0a 0a 52 65 |l.h=>Serial>..Re| 000898b0 74 75 72 6e 73 3a 09 43 75 72 72 65 6e 74 20 64 |turns:.Current d| 000898c0 61 74 61 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 69 |ata format...Thi| 000898d0 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 |s function gets | 000898e0 74 68 65 20 63 75 72 72 65 6e 74 20 3c 64 61 74 |the current <dat| 000898f0 61 20 66 6f 72 6d 61 74 3d 3e 53 65 72 69 61 6c |a format=>Serial| 00089900 5f 64 61 74 61 5f 3e 20 75 73 65 64 20 66 6f 72 |_data_> used for| 00089910 20 73 65 72 69 61 6c 20 49 2f 4f 2e 44 41 54 41 | serial I/O.DATA| 00089920 d3 00 00 00 53 65 72 69 61 6c 5f 47 65 74 52 78 |....Serial_GetRx| 00089930 52 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c 73 65 |Rate.Syntax:.<se| 00089940 72 69 61 6c 5f 72 61 74 65 3e 20 53 65 72 69 61 |rial_rate> Seria| 00089950 6c 5f 47 65 74 52 78 52 61 74 65 20 28 76 6f 69 |l_GetRxRate (voi| 00089960 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |d);.Header:.<Des| 00089970 6b 4c 69 62 3a 53 65 72 69 61 6c 2e 68 3d 3e 53 |kLib:Serial.h=>S| 00089980 65 72 69 61 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a |erial>..Returns:| 00089990 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000899a0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000899b0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000899c0 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 |tion returns the| 000899d0 20 63 75 72 72 65 6e 74 20 73 70 65 65 64 20 6f | current speed o| 000899e0 66 20 73 65 72 69 61 6c 20 69 6e 70 75 74 2e 00 |f serial input..| 000899f0 44 41 54 41 d8 00 00 00 53 65 72 69 61 6c 5f 47 |DATA....Serial_G| 00089a00 65 74 53 74 61 74 75 73 0a 53 79 6e 74 61 78 3a |etStatus.Syntax:| 00089a10 09 69 6e 74 20 53 65 72 69 61 6c 5f 47 65 74 53 |.int Serial_GetS| 00089a20 74 61 74 75 73 20 28 76 6f 69 64 29 3b 0a 48 65 |tatus (void);.He| 00089a30 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 00089a40 65 72 69 61 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e |erial.h=>Serial>| 00089a50 0a 0a 52 65 74 75 72 6e 73 3a 09 43 75 72 72 65 |..Returns:.Curre| 00089a60 6e 74 20 73 74 61 74 75 73 2e 0a 0a 54 68 69 73 |nt status...This| 00089a70 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 74 | function gets t| 00089a80 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 75 |he current statu| 00089a90 73 20 6f 66 20 74 68 65 20 73 65 72 69 61 6c 20 |s of the serial | 00089aa0 70 6f 72 74 2e 20 49 74 20 69 73 20 65 71 75 69 |port. It is equi| 00089ab0 76 61 6c 65 6e 74 20 74 6f 20 4f 53 5f 53 65 72 |valent to OS_Ser| 00089ac0 69 61 6c 4f 70 20 30 2e 44 41 54 41 d4 00 00 00 |ialOp 0.DATA....| 00089ad0 53 65 72 69 61 6c 5f 47 65 74 54 78 52 61 74 65 |Serial_GetTxRate| 00089ae0 0a 53 79 6e 74 61 78 3a 09 3c 73 65 72 69 61 6c |.Syntax:.<serial| 00089af0 5f 72 61 74 65 3e 20 53 65 72 69 61 6c 5f 47 65 |_rate> Serial_Ge| 00089b00 74 54 78 52 61 74 65 20 28 76 6f 69 64 29 3b 0a |tTxRate (void);.| 00089b10 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00089b20 3a 53 65 72 69 61 6c 2e 68 3d 3e 53 65 72 69 61 |:Serial.h=>Seria| 00089b30 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |l>..Returns:.Poi| 00089b40 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00089b50 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00089b60 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00089b70 20 72 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 | returns the cur| 00089b80 72 65 6e 74 20 73 70 65 65 64 20 6f 66 20 73 65 |rent speed of se| 00089b90 72 69 61 6c 20 6f 75 74 70 75 74 2e 44 41 54 41 |rial output.DATA| 00089ba0 cd 00 00 00 53 65 72 69 61 6c 5f 50 75 74 42 79 |....Serial_PutBy| 00089bb0 74 65 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c |te.Syntax:.<BOOL| 00089bc0 3e 20 53 65 72 69 61 6c 5f 50 75 74 42 79 74 65 |> Serial_PutByte| 00089bd0 20 28 69 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 | (int c);.Header| 00089be0 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 |:.<DeskLib:Seria| 00089bf0 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e 0a 0a 52 65 |l.h=>Serial>..Re| 00089c00 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 |turns:.<TRUE> if| 00089c10 20 75 6e 61 62 6c 65 20 74 6f 20 73 65 6e 64 20 | unable to send | 00089c20 62 79 74 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |byte...This func| 00089c30 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 61 20 73 |tion inserts a s| 00089c40 69 6e 67 6c 65 20 62 79 74 65 20 69 6e 74 6f 20 |ingle byte into | 00089c50 74 68 65 20 73 65 72 69 61 6c 20 6f 75 74 70 75 |the serial outpu| 00089c60 74 20 62 75 66 66 65 72 2e 00 00 00 44 41 54 41 |t buffer....DATA| 00089c70 e2 01 00 00 73 65 72 69 61 6c 5f 72 61 74 65 0a |....serial_rate.| 00089c80 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00089c90 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 00089ca0 3a 53 65 72 69 61 6c 2e 68 3d 3e 53 65 72 69 61 |:Serial.h=>Seria| 00089cb0 6c 3e 2e 20 49 74 20 69 73 20 61 6e 20 65 6e 75 |l>. It is an enu| 00089cc0 6d 65 72 61 74 65 64 20 74 79 70 65 20 63 6f 6e |merated type con| 00089cd0 74 61 69 6e 69 6e 67 20 74 68 65 20 76 61 6c 75 |taining the valu| 00089ce0 65 73 20 75 73 65 64 20 77 68 65 6e 20 73 65 74 |es used when set| 00089cf0 74 69 6e 67 2f 72 65 61 64 69 6e 67 20 62 61 75 |ting/reading bau| 00089d00 64 20 72 61 74 65 73 3a 0a 0a 20 20 5c 7b 0a 20 |d rates:.. \{. | 00089d10 20 20 20 73 65 72 69 61 6c 5f 39 36 30 30 42 41 | serial_9600BA| 00089d20 55 44 20 3d 20 30 2c 0a 20 20 20 20 73 65 72 69 |UD = 0,. seri| 00089d30 61 6c 5f 37 35 42 41 55 44 2c 0a 20 20 20 20 73 |al_75BAUD,. s| 00089d40 65 72 69 61 6c 5f 31 35 30 42 41 55 44 2c 0a 20 |erial_150BAUD,. | 00089d50 20 20 20 73 65 72 69 61 6c 5f 33 30 30 42 41 55 | serial_300BAU| 00089d60 44 2c 0a 20 20 20 20 73 65 72 69 61 6c 5f 31 32 |D,. serial_12| 00089d70 30 30 42 41 55 44 2c 0a 20 20 20 20 73 65 72 69 |00BAUD,. seri| 00089d80 61 6c 5f 32 34 30 30 42 41 55 44 2c 0a 20 20 20 |al_2400BAUD,. | 00089d90 20 73 65 72 69 61 6c 5f 34 38 30 30 42 41 55 44 | serial_4800BAUD| 00089da0 2c 0a 20 20 20 20 73 65 72 69 61 6c 5f 31 39 32 |,. serial_192| 00089db0 30 30 42 41 55 44 20 3d 20 38 2c 0a 20 20 20 20 |00BAUD = 8,. | 00089dc0 73 65 72 69 61 6c 5f 35 30 42 41 55 44 2c 0a 20 |serial_50BAUD,. | 00089dd0 20 20 20 73 65 72 69 61 6c 5f 31 31 30 42 41 55 | serial_110BAU| 00089de0 44 2c 0a 20 20 20 20 73 65 72 69 61 6c 5f 31 33 |D,. serial_13| 00089df0 34 5f 35 42 41 55 44 2c 0a 20 20 20 20 73 65 72 |4_5BAUD,. ser| 00089e00 69 61 6c 5f 36 30 30 42 41 55 44 2c 0a 20 20 20 |ial_600BAUD,. | 00089e10 20 73 65 72 69 61 6c 5f 31 38 30 30 42 41 55 44 | serial_1800BAUD| 00089e20 2c 0a 20 20 20 20 73 65 72 69 61 6c 5f 33 36 30 |,. serial_360| 00089e30 30 42 41 55 44 2c 0a 20 20 20 20 73 65 72 69 61 |0BAUD,. seria| 00089e40 6c 5f 37 32 30 30 42 41 55 44 0a 20 20 7d 00 00 |l_7200BAUD. }..| 00089e50 44 41 54 41 d4 00 00 00 53 65 72 69 61 6c 5f 53 |DATA....Serial_S| 00089e60 65 6e 64 42 72 65 61 6b 0a 53 79 6e 74 61 78 3a |endBreak.Syntax:| 00089e70 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 65 72 |.<os_error> *Ser| 00089e80 69 61 6c 5f 53 65 6e 64 42 72 65 61 6b 20 28 69 |ial_SendBreak (i| 00089e90 6e 74 20 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a |nt len);.Header:| 00089ea0 09 3c 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 6c |.<DeskLib:Serial| 00089eb0 2e 68 3d 3e 53 65 72 69 61 6c 3e 0a 0a 52 65 74 |.h=>Serial>..Ret| 00089ec0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00089ed0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00089ee0 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00089ef0 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e 73 6d | function transm| 00089f00 69 74 73 20 61 20 62 72 65 61 6b 20 6f 66 20 74 |its a break of t| 00089f10 68 65 20 73 70 65 63 69 66 69 65 64 20 6c 65 6e |he specified len| 00089f20 67 74 68 2e 44 41 54 41 ea 00 00 00 53 65 72 69 |gth.DATA....Seri| 00089f30 61 6c 5f 53 65 74 46 6f 72 6d 61 74 0a 53 79 6e |al_SetFormat.Syn| 00089f40 74 61 78 3a 09 6f 73 5f 65 72 72 6f 72 20 2a 53 |tax:.os_error *S| 00089f50 65 72 69 61 6c 5f 53 65 74 46 6f 72 6d 61 74 20 |erial_SetFormat | 00089f60 28 69 6e 74 20 66 6f 72 6d 29 3b 0a 48 65 61 64 |(int form);.Head| 00089f70 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 65 72 |er:.<DeskLib:Ser| 00089f80 69 61 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e 0a 0a |ial.h=>Serial>..| 00089f90 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00089fa0 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00089fb0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00089fc0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 00089fd0 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 3c 64 |s the current <d| 00089fe0 61 74 61 20 66 6f 72 6d 61 74 3d 3e 53 65 72 69 |ata format=>Seri| 00089ff0 61 6c 5f 64 61 74 61 5f 3e 20 75 73 65 64 20 66 |al_data_> used f| 0008a000 6f 72 20 73 65 72 69 61 6c 20 49 2f 4f 2e 00 00 |or serial I/O...| 0008a010 44 41 54 41 dc 00 00 00 53 65 72 69 61 6c 5f 53 |DATA....Serial_S| 0008a020 65 74 52 78 52 61 74 65 0a 53 79 6e 74 61 78 3a |etRxRate.Syntax:| 0008a030 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 65 72 |.<os_error> *Ser| 0008a040 69 61 6c 5f 53 65 74 52 78 52 61 74 65 20 28 3c |ial_SetRxRate (<| 0008a050 73 65 72 69 61 6c 5f 72 61 74 65 3e 20 72 61 74 |serial_rate> rat| 0008a060 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 0008a070 6b 4c 69 62 3a 53 65 72 69 61 6c 2e 68 3d 3e 53 |kLib:Serial.h=>S| 0008a080 65 72 69 61 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a |erial>..Returns:| 0008a090 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0008a0a0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0008a0b0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0008a0c0 74 69 6f 6e 20 73 65 74 73 20 74 68 65 20 63 75 |tion sets the cu| 0008a0d0 72 72 65 6e 74 20 73 70 65 65 64 20 6f 66 20 73 |rrent speed of s| 0008a0e0 65 72 69 61 6c 20 69 6e 70 75 74 2e 44 41 54 41 |erial input.DATA| 0008a0f0 17 01 00 00 53 65 72 69 61 6c 5f 53 65 74 53 74 |....Serial_SetSt| 0008a100 61 74 75 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |atus.Syntax:.<os| 0008a110 5f 65 72 72 6f 72 3e 20 2a 53 65 72 69 61 6c 5f |_error> *Serial_| 0008a120 53 65 74 53 74 61 74 75 73 20 28 69 6e 74 20 65 |SetStatus (int e| 0008a130 6f 72 2c 20 69 6e 74 20 61 6e 64 29 3b 0a 48 65 |or, int and);.He| 0008a140 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 0008a150 65 72 69 61 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e |erial.h=>Serial>| 0008a160 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 0008a170 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 0008a180 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 0008a190 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 0008a1a0 65 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 |ets the current | 0008a1b0 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 73 65 |status of the se| 0008a1c0 72 69 61 6c 20 70 6f 72 74 2e 0a 0a 7b 61 6c 69 |rial port...{ali| 0008a1d0 67 6e 20 63 65 6e 74 72 65 7d 4e 45 57 5f 53 54 |gn centre}NEW_ST| 0008a1e0 41 54 55 53 20 3d 20 28 4f 4c 44 5f 53 54 41 54 |ATUS = (OLD_STAT| 0008a1f0 55 53 20 41 4e 44 20 61 6e 64 29 20 45 4f 52 20 |US AND and) EOR | 0008a200 65 6f 72 00 44 41 54 41 dd 00 00 00 53 65 72 69 |eor.DATA....Seri| 0008a210 61 6c 5f 53 65 74 54 78 52 61 74 65 0a 53 79 6e |al_SetTxRate.Syn| 0008a220 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0008a230 2a 53 65 72 69 61 6c 5f 53 65 74 54 78 52 61 74 |*Serial_SetTxRat| 0008a240 65 20 28 3c 73 65 72 69 61 6c 5f 72 61 74 65 3e |e (<serial_rate>| 0008a250 20 72 61 74 65 29 3b 0a 48 65 61 64 65 72 3a 09 | rate);.Header:.| 0008a260 3c 44 65 73 6b 4c 69 62 3a 53 65 72 69 61 6c 2e |<DeskLib:Serial.| 0008a270 68 3d 3e 53 65 72 69 61 6c 3e 0a 0a 52 65 74 75 |h=>Serial>..Retu| 0008a280 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0008a290 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0008a2a0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0008a2b0 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 0008a2c0 65 20 63 75 72 72 65 6e 74 20 73 70 65 65 64 20 |e current speed | 0008a2d0 6f 66 20 73 65 72 69 61 6c 20 6f 75 74 70 75 74 |of serial output| 0008a2e0 2e 00 00 00 44 41 54 41 b6 02 00 00 53 74 61 74 |....DATA....Stat| 0008a2f0 75 73 20 62 69 74 73 0a 54 68 65 20 66 6f 6c 6c |us bits.The foll| 0008a300 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20 61 72 65 |owing macros are| 0008a310 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 0008a320 6b 4c 69 62 3a 53 65 72 69 61 6c 2e 68 3d 3e 53 |kLib:Serial.h=>S| 0008a330 65 72 69 61 6c 3e 20 66 6f 72 20 75 73 65 20 77 |erial> for use w| 0008a340 68 65 6e 20 72 65 61 64 69 6e 67 2f 77 72 69 74 |hen reading/writ| 0008a350 69 6e 67 20 74 68 65 20 73 74 61 74 75 73 2e 20 |ing the status. | 0008a360 54 68 65 20 6d 61 63 72 6f 73 20 66 6f 72 20 74 |The macros for t| 0008a370 68 65 20 72 65 71 75 69 72 65 64 20 62 69 74 73 |he required bits| 0008a380 20 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 | should be added| 0008a390 20 74 6f 67 65 74 68 65 72 2e 0a 0a 73 65 72 69 | together...seri| 0008a3a0 61 6c 5f 55 53 45 58 4f 4e 58 4f 46 46 09 30 78 |al_USEXONXOFF.0x| 0008a3b0 30 30 30 30 30 30 30 31 20 20 20 0a 73 65 72 69 |00000001 .seri| 0008a3c0 61 6c 5f 49 47 4e 4f 52 45 44 43 44 42 49 54 09 |al_IGNOREDCDBIT.| 0008a3d0 30 78 30 30 30 30 30 30 30 32 0a 73 65 72 69 61 |0x00000002.seria| 0008a3e0 6c 5f 49 47 4e 4f 52 45 44 53 52 42 49 54 09 30 |l_IGNOREDSRBIT.0| 0008a3f0 78 30 30 30 30 30 30 30 34 0a 73 65 72 69 61 6c |x00000004.serial| 0008a400 5f 44 54 52 4f 46 46 09 30 78 30 30 30 30 30 30 |_DTROFF.0x000000| 0008a410 30 38 0a 73 65 72 69 61 6c 5f 49 47 4e 4f 52 45 |08.serial_IGNORE| 0008a420 43 54 53 42 49 54 09 30 78 30 30 30 30 30 30 31 |CTSBIT.0x0000001| 0008a430 30 0a 73 65 72 69 61 6c 5f 44 4f 4e 54 55 53 45 |0.serial_DONTUSE| 0008a440 52 54 53 46 4c 4f 57 43 4f 4e 54 52 4f 4c 09 30 |RTSFLOWCONTROL.0| 0008a450 78 30 30 30 30 30 30 32 30 0a 73 65 72 69 61 6c |x00000020.serial| 0008a460 5f 53 55 50 50 52 45 53 53 49 4e 50 55 54 09 30 |_SUPPRESSINPUT.0| 0008a470 78 30 30 30 30 30 30 34 30 0a 73 65 72 69 61 6c |x00000040.serial| 0008a480 5f 52 54 53 48 49 47 48 09 30 78 30 30 30 30 30 |_RTSHIGH.0x00000| 0008a490 30 38 30 0a 73 65 72 69 61 6c 5f 58 4f 46 46 52 |080.serial_XOFFR| 0008a4a0 45 43 45 49 56 45 44 09 30 78 30 30 30 31 30 30 |ECEIVED.0x000100| 0008a4b0 30 30 0a 73 65 72 69 61 6c 5f 58 4f 46 46 53 45 |00.serial_XOFFSE| 0008a4c0 4e 54 09 30 78 30 30 30 32 30 30 30 30 0a 73 65 |NT.0x00020000.se| 0008a4d0 72 69 61 6c 5f 44 43 44 48 49 47 48 09 30 78 30 |rial_DCDHIGH.0x0| 0008a4e0 30 30 34 30 30 30 30 0a 73 65 72 69 61 6c 5f 4e |0040000.serial_N| 0008a4f0 4f 43 41 52 52 49 45 52 09 30 78 30 30 30 34 30 |OCARRIER.0x00040| 0008a500 30 30 30 0a 73 65 72 69 61 6c 5f 44 53 52 48 49 |000.serial_DSRHI| 0008a510 47 48 09 30 78 30 30 30 38 30 30 30 30 0a 73 65 |GH.0x00080000.se| 0008a520 72 69 61 6c 5f 52 49 48 49 47 48 09 30 78 30 30 |rial_RIHIGH.0x00| 0008a530 31 30 30 30 30 30 0a 73 65 72 69 61 6c 5f 43 54 |100000.serial_CT| 0008a540 53 48 49 47 48 09 30 78 30 30 32 30 30 30 30 30 |SHIGH.0x00200000| 0008a550 0a 73 65 72 69 61 6c 5f 58 4f 46 46 53 45 4e 54 |.serial_XOFFSENT| 0008a560 4d 41 4e 55 41 4c 4c 59 09 30 78 30 30 34 30 30 |MANUALLY.0x00400| 0008a570 30 30 30 0a 73 65 72 69 61 6c 5f 53 50 41 43 45 |000.serial_SPACE| 0008a580 49 4e 52 45 43 45 49 56 45 42 55 46 46 45 52 09 |INRECEIVEBUFFER.| 0008a590 30 78 30 30 38 30 30 30 30 30 00 00 44 41 54 41 |0x00800000..DATA| 0008a5a0 12 01 00 00 53 65 72 69 61 6c 5f 4e 6f 6e 5a 65 |....Serial_NonZe| 0008a5b0 72 6f 50 6f 6c 6c 57 6f 72 64 4f 6e 52 65 63 65 |roPollWordOnRece| 0008a5c0 69 76 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |ive.Syntax:.void| 0008a5d0 20 53 65 72 69 61 6c 5f 4e 6f 6e 5a 65 72 6f 50 | Serial_NonZeroP| 0008a5e0 6f 6c 6c 57 6f 72 64 4f 6e 52 65 63 65 69 76 65 |ollWordOnReceive| 0008a5f0 20 28 69 6e 74 20 76 61 6c 75 65 2c 20 76 6f 69 | (int value, voi| 0008a600 64 20 2a 70 6f 6c 6c 77 6f 72 64 29 3b 0a 48 65 |d *pollword);.He| 0008a610 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 0008a620 65 72 69 61 6c 2e 68 3d 3e 53 65 72 69 61 6c 3e |erial.h=>Serial>| 0008a630 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0008a640 61 6c 74 65 72 73 20 74 68 65 20 77 6f 72 64 20 |alters the word | 0008a650 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 70 |pointed to by /p| 0008a660 6f 6c 6c 77 6f 72 64 2f 20 74 6f 20 2f 76 61 6c |ollword/ to /val| 0008a670 75 65 2f 20 77 68 65 6e 65 76 65 72 20 61 6e 20 |ue/ whenever an | 0008a680 69 6e 73 65 72 74 69 6f 6e 20 69 6e 74 6f 20 74 |insertion into t| 0008a690 68 65 20 73 65 72 69 61 6c 20 69 6e 70 75 74 20 |he serial input | 0008a6a0 62 75 66 66 65 72 20 6f 63 63 75 72 73 2e 00 00 |buffer occurs...| 0008a6b0 44 41 54 41 f7 01 00 00 73 65 74 62 75 66 0a 53 |DATA....setbuf.S| 0008a6c0 79 6e 74 61 78 3a 09 76 6f 69 64 20 73 65 74 62 |yntax:.void setb| 0008a6d0 75 66 20 28 3c 46 49 4c 45 3e 20 2a 73 74 72 65 |uf (<FILE> *stre| 0008a6e0 61 6d 2c 20 63 68 61 72 20 2a 62 75 66 29 3b 0a |am, char *buf);.| 0008a6f0 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 |Header:.<stdio.h| 0008a700 3d 3e 73 74 64 69 6f 3e 0a 0a 54 68 69 73 20 66 |=>stdio>..This f| 0008a710 75 6e 63 74 69 6f 6e 20 63 61 75 73 65 73 20 74 |unction causes t| 0008a720 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 64 20 |he file pointed | 0008a730 74 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f 20 74 |to by /stream/ t| 0008a740 6f 20 62 65 20 66 75 6c 6c 79 20 62 75 66 66 65 |o be fully buffe| 0008a750 72 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 |red in the buffe| 0008a760 72 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |r pointed to by | 0008a770 2f 62 75 66 2f 2c 20 77 68 69 63 68 20 69 73 20 |/buf/, which is | 0008a780 61 20 63 68 61 72 61 63 74 65 72 20 61 72 72 61 |a character arra| 0008a790 79 20 6f 66 20 73 69 7a 65 20 3c 42 55 46 53 49 |y of size <BUFSI| 0008a7a0 5a 3e 2e 20 49 66 20 2f 62 75 66 2f 20 69 73 20 |Z>. If /buf/ is | 0008a7b0 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 20 74 |a null pointer t| 0008a7c0 68 65 6e 20 74 68 65 20 66 69 6c 65 20 69 73 20 |hen the file is | 0008a7d0 75 6e 62 75 66 66 65 72 65 64 2e 20 54 68 69 73 |unbuffered. This| 0008a7e0 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 | function is equ| 0008a7f0 69 76 61 6c 65 6e 74 20 74 6f 3a 0a 7b 61 6c 69 |ivalent to:.{ali| 0008a800 67 6e 20 63 65 6e 74 72 65 7d 3c 73 65 74 76 62 |gn centre}<setvb| 0008a810 75 66 3e 20 28 46 49 4c 45 20 2a 73 74 72 65 61 |uf> (FILE *strea| 0008a820 6d 2c 20 63 68 61 72 20 2a 62 75 66 2c 20 3c 5f |m, char *buf, <_| 0008a830 49 4f 46 42 46 3e 2c 20 42 55 46 53 49 5a 29 3b |IOFBF>, BUFSIZ);| 0008a840 7b 61 6c 69 67 6e 7d 0a 6f 72 3a 0a 7b 61 6c 69 |{align}.or:.{ali| 0008a850 67 6e 20 63 65 6e 74 72 65 7d 73 65 74 76 62 75 |gn centre}setvbu| 0008a860 66 20 28 46 49 4c 45 20 2a 73 74 72 65 61 6d 2c |f (FILE *stream,| 0008a870 20 4e 55 4c 4c 2c 20 3c 5f 49 4f 4e 42 46 3e 2c | NULL, <_IONBF>,| 0008a880 20 30 29 3b 7b 61 6c 69 67 6e 7d 0a 69 66 20 2f | 0);{align}.if /| 0008a890 62 75 66 2f 20 69 73 20 61 20 6e 75 6c 6c 20 70 |buf/ is a null p| 0008a8a0 6f 69 6e 74 65 72 2e 00 44 41 54 41 af 00 00 00 |ointer..DATA....| 0008a8b0 73 65 74 6a 6d 70 0a 53 79 6e 74 61 78 3a 09 69 |setjmp.Syntax:.i| 0008a8c0 6e 74 20 73 65 74 6a 6d 70 20 28 3c 6a 6d 70 5f |nt setjmp (<jmp_| 0008a8d0 62 75 66 3e 20 65 6e 76 29 3b 0a 48 65 61 64 65 |buf> env);.Heade| 0008a8e0 72 3a 09 3c 73 65 74 6a 6d 70 2e 68 3d 3e 73 65 |r:.<setjmp.h=>se| 0008a8f0 74 6a 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |tjmp_h>..Returns| 0008a900 3a 09 5a 65 72 6f 20 77 68 65 6e 20 63 61 6c 6c |:.Zero when call| 0008a910 65 64 20 64 69 72 65 63 74 6c 79 2e 0a 0a 54 68 |ed directly...Th| 0008a920 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b |is function mark| 0008a930 73 20 61 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 |s a position to | 0008a940 6a 75 6d 70 20 74 6f 20 77 69 74 68 20 3c 6c 6f |jump to with <lo| 0008a950 6e 67 6a 6d 70 3e 2e 00 44 49 52 24 28 00 00 00 |ngjmp>..DIR$(...| 0008a960 28 00 00 00 80 a9 08 00 46 ff ff ff f1 ee bb 22 |(.......F......"| 0008a970 03 01 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |............h...| 0008a980 44 41 54 41 03 01 00 00 73 65 74 6a 6d 70 2e 68 |DATA....setjmp.h| 0008a990 0a 54 68 65 20 5c 3c 73 65 74 6a 6d 70 2e 68 3e |.The \<setjmp.h>| 0008a9a0 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 0008a9b0 20 74 77 6f 20 66 75 6e 63 74 69 6f 6e 73 20 61 | two functions a| 0008a9c0 6e 64 20 6f 6e 65 20 74 79 70 65 20 75 73 65 64 |nd one type used| 0008a9d0 20 66 6f 72 20 6d 61 6b 69 6e 67 20 6e 6f 6e 2d | for making non-| 0008a9e0 6c 6f 63 61 6c 20 6a 75 6d 70 73 20 28 69 65 20 |local jumps (ie | 0008a9f0 6a 75 6d 70 73 20 6f 75 74 20 6f 66 20 74 68 65 |jumps out of the| 0008aa00 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 6d 65 | current stateme| 0008aa10 6e 74 20 62 6c 6f 63 6b 29 2e 0a 0a 46 75 6e 63 |nt block)...Func| 0008aa20 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 |tions:..#Indent | 0008aa30 31 31 0a 23 54 61 62 6c 65 20 31 20 31 35 0a 3c |11.#Table 1 15.<| 0008aa40 73 65 74 6a 6d 70 3e 0a 3c 6c 6f 6e 67 6a 6d 70 |setjmp>.<longjmp| 0008aa50 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e |>.#EndTable..#In| 0008aa60 64 65 6e 74 20 30 0a 54 79 70 65 73 3a 0a 0a 23 |dent 0.Types:..#| 0008aa70 49 6e 64 65 6e 74 20 31 31 0a 3c 6a 6d 70 5f 62 |Indent 11.<jmp_b| 0008aa80 75 66 3e 00 44 41 54 41 9a 01 00 00 73 65 74 6c |uf>.DATA....setl| 0008aa90 6f 63 61 6c 65 0a 53 79 6e 74 61 78 3a 09 63 68 |ocale.Syntax:.ch| 0008aaa0 61 72 20 2a 73 65 74 6c 6f 63 61 6c 65 20 28 69 |ar *setlocale (i| 0008aab0 6e 74 20 63 61 74 2c 20 63 68 61 72 20 2a 6c 6f |nt cat, char *lo| 0008aac0 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6c 6f 63 |c);.Header:.<loc| 0008aad0 61 6c 65 2e 68 3d 3e 6c 6f 63 61 6c 65 3e 0a 0a |ale.h=>locale>..| 0008aae0 52 65 74 75 72 6e 73 3a 09 4f 6c 64 20 73 65 74 |Returns:.Old set| 0008aaf0 74 69 6e 67 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |ting...This func| 0008ab00 74 69 6f 6e 20 73 65 74 73 20 61 20 70 61 72 74 |tion sets a part| 0008ab10 69 63 75 6c 61 72 20 63 61 74 65 67 6f 72 79 20 |icular category | 0008ab20 27 63 61 74 27 20 6f 66 20 74 68 65 20 6c 6f 63 |'cat' of the loc| 0008ab30 61 6c 65 20 74 6f 20 74 68 65 20 73 74 72 69 6e |ale to the strin| 0008ab40 67 20 70 6f 69 6e 74 65 72 20 74 6f 20 62 79 20 |g pointer to by | 0008ab50 27 6c 6f 63 27 2e 20 46 6f 72 20 69 6e 73 74 61 |'loc'. For insta| 0008ab60 6e 63 65 2c 20 74 6f 20 73 65 74 20 74 68 65 20 |nce, to set the | 0008ab70 6d 6f 6e 65 74 61 72 79 20 69 6e 66 6f 72 6d 61 |monetary informa| 0008ab80 74 69 6f 6e 20 74 6f 20 74 68 61 74 20 73 75 69 |tion to that sui| 0008ab90 74 61 62 6c 65 20 66 6f 72 20 74 68 65 20 55 4b |table for the UK| 0008aba0 2c 20 6f 6e 65 20 77 6f 75 6c 64 20 75 73 65 3a |, one would use:| 0008abb0 0a 0a 23 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a |..#align centre.| 0008abc0 73 65 74 6c 6f 63 61 6c 65 28 3c 4c 43 5f 4d 4f |setlocale(<LC_MO| 0008abd0 4e 45 54 41 52 59 3e 2c 22 75 6b 22 29 3b 0a 23 |NETARY>,"uk");.#| 0008abe0 61 6c 69 67 6e 0a 0a 54 68 65 20 6f 6c 64 20 73 |align..The old s| 0008abf0 65 74 74 69 6e 67 20 63 61 6e 20 62 65 20 72 65 |etting can be re| 0008ac00 61 64 20 62 79 20 73 65 74 74 69 6e 67 20 27 6c |ad by setting 'l| 0008ac10 6f 63 27 20 74 6f 20 3c 4e 55 4c 4c 3e 2e 00 00 |oc' to <NULL>...| 0008ac20 44 41 54 41 b4 01 00 00 73 65 74 76 62 75 66 0a |DATA....setvbuf.| 0008ac30 53 79 6e 74 61 78 3a 09 69 6e 74 20 73 65 74 76 |Syntax:.int setv| 0008ac40 62 75 66 20 28 3c 46 49 4c 45 3e 20 2a 73 74 72 |buf (<FILE> *str| 0008ac50 65 61 6d 2c 20 63 68 61 72 20 2a 62 75 66 2c 20 |eam, char *buf, | 0008ac60 69 6e 74 20 6d 6f 64 65 2c 20 3c 73 69 7a 65 5f |int mode, <size_| 0008ac70 74 3e 20 73 69 7a 65 29 3b 0a 48 65 61 64 65 72 |t> size);.Header| 0008ac80 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 |:.<stdio.h=>stdi| 0008ac90 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 5a 65 72 |o>..Returns:.Zer| 0008aca0 6f 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e |o if successful.| 0008acb0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0008acc0 73 65 74 73 20 74 68 65 20 62 75 66 66 65 72 69 |sets the bufferi| 0008acd0 6e 67 20 74 79 70 65 20 66 6f 72 20 61 20 70 61 |ng type for a pa| 0008ace0 72 74 69 63 75 6c 61 72 20 73 74 72 65 61 6d 2e |rticular stream.| 0008acf0 20 54 68 65 20 6d 6f 64 65 20 67 69 76 65 73 20 | The mode gives | 0008ad00 74 68 65 20 62 75 66 66 65 72 69 6e 67 20 74 79 |the buffering ty| 0008ad10 70 65 2c 20 6f 6e 65 20 6f 66 20 74 68 65 20 6d |pe, one of the m| 0008ad20 61 63 72 6f 73 20 3c 5f 49 4f 46 42 46 3e 2c 20 |acros <_IOFBF>, | 0008ad30 3c 5f 49 4f 4c 42 46 3e 2c 20 6f 72 20 3c 5f 49 |<_IOLBF>, or <_I| 0008ad40 4f 4e 42 46 3e 2e 20 49 66 20 2f 62 75 66 2f 20 |ONBF>. If /buf/ | 0008ad50 69 73 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 |is a null pointe| 0008ad60 72 20 74 68 65 6e 20 73 65 74 76 62 75 66 20 61 |r then setvbuf a| 0008ad70 6c 6c 6f 63 61 74 65 73 20 69 74 73 20 6f 77 6e |llocates its own| 0008ad80 20 62 75 66 66 65 72 2c 20 65 6c 73 65 20 2f 62 | buffer, else /b| 0008ad90 75 66 2f 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 |uf/ points to a | 0008ada0 63 68 61 72 61 63 74 65 72 20 61 72 72 61 79 20 |character array | 0008adb0 61 6e 64 20 2f 73 69 7a 65 2f 20 69 6e 64 69 63 |and /size/ indic| 0008adc0 61 74 65 73 20 74 68 65 20 73 69 7a 65 20 6f 66 |ates the size of| 0008add0 20 69 74 2e 44 49 52 24 2c 00 00 00 2c 00 00 00 | it.DIR$,...,...| 0008ade0 00 ae 08 00 46 fd ff ff a7 a7 c3 22 51 02 00 00 |....F......"Q...| 0008adf0 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 0008ae00 44 41 54 41 51 02 00 00 73 63 61 6e 66 28 29 20 |DATAQ...scanf() | 0008ae10 46 6f 72 6d 61 74 20 53 74 72 69 6e 67 0a 54 68 |Format String.Th| 0008ae20 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 20 |e format string | 0008ae30 69 73 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 61 |is composed of a| 0008ae40 20 73 65 71 75 65 6e 63 65 20 6f 66 20 63 68 61 | sequence of cha| 0008ae50 72 61 63 74 65 72 73 2e 20 41 6c 6c 20 63 68 61 |racters. All cha| 0008ae60 72 61 63 74 65 72 73 20 65 78 63 65 70 74 20 27 |racters except '| 0008ae70 25 27 20 61 72 65 20 65 78 70 65 63 74 65 64 20 |%' are expected | 0008ae80 74 6f 20 62 65 20 6d 61 74 63 68 65 64 20 64 69 |to be matched di| 0008ae90 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 69 6e |rectly in the in| 0008aea0 70 75 74 2e 20 27 25 27 20 6d 61 72 6b 73 20 74 |put. '%' marks t| 0008aeb0 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 |he beginning of | 0008aec0 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 |a conversion spe| 0008aed0 63 69 66 69 63 61 74 69 6f 6e 2e 20 49 66 20 61 |cification. If a| 0008aee0 20 6c 69 74 65 72 61 6c 20 70 65 72 63 65 6e 74 | literal percent| 0008aef0 20 69 73 20 72 65 71 75 69 72 65 64 2c 20 74 68 | is required, th| 0008af00 65 6e 20 22 25 25 22 20 73 68 6f 75 6c 64 20 62 |en "%%" should b| 0008af10 65 20 75 73 65 64 2e 0a 0a 41 20 63 6f 6e 76 65 |e used...A conve| 0008af20 72 73 69 6f 6e 20 73 70 65 63 69 66 69 63 61 74 |rsion specificat| 0008af30 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 6f |ion results in o| 0008af40 6e 65 20 61 72 67 75 6d 65 6e 74 20 66 72 6f 6d |ne argument from| 0008af50 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 | the argument li| 0008af60 73 74 20 68 61 76 69 6e 67 20 69 74 73 20 63 6f |st having its co| 0008af70 6e 74 65 6e 74 73 20 61 6c 74 65 72 65 64 20 61 |ntents altered a| 0008af80 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 |ccording to the | 0008af90 69 6e 70 75 74 20 72 65 63 65 69 76 65 64 2e 20 |input received. | 0008afa0 54 68 65 20 73 74 72 75 63 74 75 72 65 20 6f 66 |The structure of| 0008afb0 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 | a conversion sp| 0008afc0 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 73 |ecification is s| 0008afd0 68 6f 77 6e 20 62 65 6c 6f 77 3a 0a 0a 7b 77 72 |hown below:..{wr| 0008afe0 61 70 20 6f 66 66 3b 20 61 6c 69 67 6e 20 63 65 |ap off; align ce| 0008aff0 6e 74 72 65 7d 25 5b 3c 2a 3d 3e 73 66 5f 73 74 |ntre}%[<*=>sf_st| 0008b000 61 72 5f 3e 5d 5b 3c 66 69 65 6c 64 20 77 69 64 |ar_>][<field wid| 0008b010 74 68 3d 3e 73 66 5f 66 77 5f 3e 5d 5b 3c 6d 6f |th=>sf_fw_>][<mo| 0008b020 64 69 66 69 65 72 3d 3e 73 66 5f 6d 6f 64 5f 3e |difier=>sf_mod_>| 0008b030 5d 5c 3c 3c 63 6f 6e 76 65 72 73 69 6f 6e 20 63 |]\<<conversion c| 0008b040 68 61 72 3d 3e 73 66 5f 63 6f 6e 76 5f 3e 5c 3e |har=>sf_conv_>\>| 0008b050 20 00 00 00 44 49 52 24 88 00 00 00 88 00 00 00 | ...DIR$........| 0008b060 dc b0 08 00 46 fd ff ff 2a f2 c3 22 97 06 00 00 |....F...*.."....| 0008b070 13 00 00 00 00 00 00 00 63 6f 6e 76 5f 00 00 00 |........conv_...| 0008b080 74 b7 08 00 46 fd ff ff dd b2 c3 22 a1 00 00 00 |t...F......"....| 0008b090 13 00 00 00 00 00 00 00 66 77 5f 00 18 b8 08 00 |........fw_.....| 0008b0a0 46 fd ff ff 62 c3 c3 22 a1 01 00 00 13 00 00 00 |F...b.."........| 0008b0b0 00 00 00 00 6d 6f 64 5f 00 00 00 00 bc b9 08 00 |....mod_........| 0008b0c0 46 fd ff ff fa ad c3 22 bb 00 00 00 13 00 00 00 |F......"........| 0008b0d0 00 00 00 00 73 74 61 72 5f 00 00 00 44 41 54 41 |....star_...DATA| 0008b0e0 97 06 00 00 46 6f 72 6d 61 74 20 53 74 72 69 6e |....Format Strin| 0008b0f0 67 20 43 6f 6e 76 65 72 73 69 6f 6e 20 43 68 61 |g Conversion Cha| 0008b100 72 61 63 74 65 72 0a 4f 6e 65 20 6f 66 20 74 68 |racter.One of th| 0008b110 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 64 09 |e following:..d.| 0008b120 41 20 64 65 63 69 6d 61 6c 20 69 6e 74 65 67 65 |A decimal intege| 0008b130 72 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 |r read from the | 0008b140 69 6e 70 75 74 20 73 74 72 65 61 6d 20 69 73 20 |input stream is | 0008b150 70 6c 61 63 65 64 20 69 6e 20 74 68 65 20 69 6e |placed in the in| 0008b160 74 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |t pointed to by | 0008b170 74 68 65 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 69 |the argument...i| 0008b180 09 41 6e 20 69 6e 74 65 67 65 72 20 28 64 65 63 |.An integer (dec| 0008b190 69 6d 61 6c 2c 20 6f 63 74 61 6c 2c 20 6f 72 20 |imal, octal, or | 0008b1a0 68 65 78 29 20 72 65 61 64 20 66 72 6f 6d 20 74 |hex) read from t| 0008b1b0 68 65 20 69 6e 70 75 74 20 73 74 72 65 61 6d 20 |he input stream | 0008b1c0 69 73 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 |is placed in the| 0008b1d0 20 69 6e 74 20 70 6f 69 6e 74 65 64 20 74 6f 20 | int pointed to | 0008b1e0 62 79 20 74 68 65 20 61 72 67 75 6d 65 6e 74 2e |by the argument.| 0008b1f0 0a 0a 6f 09 41 6e 20 6f 63 74 61 6c 20 69 6e 74 |..o.An octal int| 0008b200 65 67 65 72 20 72 65 61 64 20 66 72 6f 6d 20 74 |eger read from t| 0008b210 68 65 20 69 6e 70 75 74 20 73 74 72 65 61 6d 20 |he input stream | 0008b220 69 73 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 |is placed in the| 0008b230 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 6f | unsigned int po| 0008b240 69 6e 74 65 64 20 74 6f 20 62 79 20 74 68 65 20 |inted to by the | 0008b250 61 72 67 75 6d 65 6e 74 2e 0a 0a 75 09 41 20 64 |argument...u.A d| 0008b260 65 63 69 6d 61 6c 20 69 6e 74 65 67 65 72 20 72 |ecimal integer r| 0008b270 65 61 64 20 66 72 6f 6d 20 74 68 65 20 69 6e 70 |ead from the inp| 0008b280 75 74 20 73 74 72 65 61 6d 20 69 73 20 70 6c 61 |ut stream is pla| 0008b290 63 65 64 20 69 6e 20 74 68 65 20 75 6e 73 69 67 |ced in the unsig| 0008b2a0 6e 65 64 20 69 6e 74 20 70 6f 69 6e 74 65 64 20 |ned int pointed | 0008b2b0 74 6f 20 62 79 20 74 68 65 20 61 72 67 75 6d 65 |to by the argume| 0008b2c0 6e 74 2e 0a 0a 78 09 41 20 68 65 78 61 64 65 63 |nt...x.A hexadec| 0008b2d0 69 6d 61 6c 20 69 6e 74 65 67 65 72 20 72 65 61 |imal integer rea| 0008b2e0 64 20 66 72 6f 6d 20 74 68 65 20 69 6e 70 75 74 |d from the input| 0008b2f0 20 73 74 72 65 61 6d 20 69 73 20 70 6c 61 63 65 | stream is place| 0008b300 64 20 69 6e 20 74 68 65 20 75 6e 73 69 67 6e 65 |d in the unsigne| 0008b310 64 20 69 6e 74 20 70 6f 69 6e 74 65 64 20 74 6f |d int pointed to| 0008b320 20 62 79 20 74 68 65 20 61 72 67 75 6d 65 6e 74 | by the argument| 0008b330 2e 0a 0a 65 2c 66 2c 67 09 41 20 66 6c 6f 61 74 |...e,f,g.A float| 0008b340 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 |ing point number| 0008b350 20 72 65 61 64 20 66 72 6f 6d 20 74 68 65 20 69 | read from the i| 0008b360 6e 70 75 74 20 73 74 72 65 61 6d 20 69 73 20 70 |nput stream is p| 0008b370 6c 61 63 65 64 20 69 6e 20 74 68 65 20 66 6c 6f |laced in the flo| 0008b380 61 74 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |at pointed to by| 0008b390 20 74 68 65 20 61 72 67 75 6d 65 6e 74 2e 20 54 | the argument. T| 0008b3a0 68 65 20 6e 75 6d 62 65 72 20 6d 61 79 20 62 65 |he number may be| 0008b3b0 20 69 6e 20 53 63 69 65 6e 74 69 66 69 63 20 28 | in Scientific (| 0008b3c0 73 74 61 6e 64 61 72 64 29 20 66 6f 72 6d 2e 0a |standard) form..| 0008b3d0 0a 73 09 41 20 73 65 71 75 65 6e 63 65 20 6f 66 |.s.A sequence of| 0008b3e0 20 6e 6f 6e 2d 77 68 69 74 65 2d 73 70 61 63 65 | non-white-space| 0008b3f0 20 63 68 61 72 61 63 74 65 72 73 20 73 65 65 20 | characters see | 0008b400 3c 69 73 73 70 61 63 65 3e 29 20 61 72 65 20 70 |<isspace>) are p| 0008b410 6c 61 63 65 64 20 69 6e 20 74 68 65 20 63 68 61 |laced in the cha| 0008b420 72 61 63 74 65 72 20 61 72 72 61 79 20 70 6f 69 |racter array poi| 0008b430 6e 74 65 64 20 74 6f 20 62 79 20 74 68 65 20 61 |nted to by the a| 0008b440 72 67 75 6d 65 6e 74 2e 20 41 20 74 65 72 6d 69 |rgument. A termi| 0008b450 6e 61 74 69 6e 67 20 6e 75 6c 6c 20 63 68 61 72 |nating null char| 0008b460 61 63 74 65 72 20 69 73 20 61 64 64 65 64 20 61 |acter is added a| 0008b470 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 0a 0a 63 |utomatically...c| 0008b480 09 41 20 73 65 71 75 65 6e 63 65 20 6f 66 20 63 |.A sequence of c| 0008b490 68 61 72 61 63 74 65 72 73 20 6f 66 20 6c 65 6e |haracters of len| 0008b4a0 67 74 68 20 73 70 65 63 69 66 69 65 64 20 69 6e |gth specified in| 0008b4b0 20 74 68 65 20 3c 66 69 65 6c 64 20 77 69 64 74 | the <field widt| 0008b4c0 68 3d 3e 73 66 5f 66 77 5f 3e 20 28 31 20 69 66 |h=>sf_fw_> (1 if| 0008b4d0 20 6e 6f 20 66 69 65 6c 64 20 77 69 64 74 68 20 | no field width | 0008b4e0 67 69 76 65 6e 29 20 69 73 20 70 6c 61 63 65 64 |given) is placed| 0008b4f0 20 69 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 | in the characte| 0008b500 72 20 61 72 72 61 79 20 70 6f 69 6e 74 65 64 20 |r array pointed | 0008b510 74 6f 20 62 79 20 74 68 65 20 61 72 67 75 6d 65 |to by the argume| 0008b520 6e 74 2e 20 4e 6f 20 6e 75 6c 6c 20 63 68 61 72 |nt. No null char| 0008b530 61 63 74 65 72 20 69 73 20 61 64 64 65 64 2e 0a |acter is added..| 0008b540 0a 70 09 41 20 70 6f 69 6e 74 65 72 20 76 61 6c |.p.A pointer val| 0008b550 75 65 20 69 6e 20 61 6e 20 63 6f 6d 70 69 6c 65 |ue in an compile| 0008b560 72 2d 64 65 66 69 6e 65 64 20 66 6f 72 6d 61 74 |r-defined format| 0008b570 20 69 73 20 70 6c 61 63 65 64 20 69 6e 20 74 68 | is placed in th| 0008b580 65 20 76 6f 69 64 20 2a 20 70 6f 69 6e 74 65 72 |e void * pointer| 0008b590 20 74 6f 20 62 79 20 74 68 65 20 61 72 67 75 6d | to by the argum| 0008b5a0 65 6e 74 20 28 74 68 65 20 61 72 67 75 6d 65 6e |ent (the argumen| 0008b5b0 74 20 69 73 20 61 20 76 6f 69 64 a0 2a 2a 29 2e |t is a void.**).| 0008b5c0 20 54 68 69 73 20 69 73 20 6e 6f 74 20 76 65 72 | This is not ver| 0008b5d0 79 20 75 73 65 66 75 6c 21 0a 0a 6e 09 54 68 65 |y useful!..n.The| 0008b5e0 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 | number of chara| 0008b5f0 63 74 65 72 73 20 72 65 61 64 20 73 6f 20 66 61 |cters read so fa| 0008b600 72 20 69 73 20 70 6c 61 63 65 64 20 69 6e 20 74 |r is placed in t| 0008b610 68 65 20 69 6e 74 20 70 6f 69 6e 74 65 64 20 74 |he int pointed t| 0008b620 6f 20 62 79 20 74 68 65 20 61 72 67 75 6d 65 6e |o by the argumen| 0008b630 74 2e 0a 0a 5b 2e 2e 2e 5d 09 41 20 73 65 71 75 |t...[...].A sequ| 0008b640 65 6e 63 65 20 6f 66 20 74 68 6f 73 65 20 63 68 |ence of those ch| 0008b650 61 72 61 63 74 65 72 73 20 73 70 65 63 69 66 69 |aracters specifi| 0008b660 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 62 72 |ed inside the br| 0008b670 61 63 6b 65 74 73 2e 20 49 66 20 74 68 65 20 66 |ackets. If the f| 0008b680 69 72 73 74 20 63 68 61 72 61 63 74 65 72 20 73 |irst character s| 0008b690 70 65 63 69 66 69 65 64 20 69 73 20 61 20 63 61 |pecified is a ca| 0008b6a0 72 65 74 20 28 27 5e 27 29 20 74 68 65 6e 20 73 |ret ('^') then s| 0008b6b0 65 71 75 65 6e 63 65 20 6d 75 73 74 20 63 6f 6e |equence must con| 0008b6c0 74 61 69 6e 20 6f 6e 6c 79 20 74 68 65 20 63 68 |tain only the ch| 0008b6d0 61 72 61 63 74 65 72 73 20 4e 4f 54 20 63 6f 6e |aracters NOT con| 0008b6e0 74 61 69 6e 65 64 20 69 6e 73 69 64 65 20 74 68 |tained inside th| 0008b6f0 65 20 62 72 61 63 6b 65 74 73 2e 20 49 66 20 74 |e brackets. If t| 0008b700 68 65 20 63 68 61 72 61 63 74 65 72 20 27 5d 27 |he character ']'| 0008b710 20 69 73 20 72 65 71 75 69 72 65 64 20 61 73 20 | is required as | 0008b720 6f 6e 63 65 20 6f 66 20 74 68 65 20 73 70 65 63 |once of the spec| 0008b730 69 66 69 65 64 20 63 68 61 72 61 63 74 65 72 73 |ified characters| 0008b740 20 69 74 20 6d 75 73 74 20 62 65 20 74 68 65 20 | it must be the | 0008b750 66 69 72 73 74 20 6f 6e 65 20 69 65 20 75 73 65 |first one ie use| 0008b760 20 5b 5d 2e 2e 2e 5d 20 6f 72 20 5b 5e 5d 2e 2e | []...] or [^]..| 0008b770 2e 5d 2e 00 44 41 54 41 a1 00 00 00 46 6f 72 6d |.]..DATA....Form| 0008b780 61 74 20 53 74 72 69 6e 67 20 46 69 65 6c 64 20 |at String Field | 0008b790 57 69 64 74 68 0a 54 68 69 73 20 69 73 20 61 20 |Width.This is a | 0008b7a0 64 65 63 69 6d 61 6c 20 69 6e 74 65 67 65 72 20 |decimal integer | 0008b7b0 77 68 69 63 68 20 67 69 76 65 73 20 74 68 65 20 |which gives the | 0008b7c0 6d 61 78 69 6d 75 6d 20 69 6e 70 75 74 20 66 69 |maximum input fi| 0008b7d0 65 6c 64 20 77 69 64 74 68 2e 20 4f 6e 6c 79 20 |eld width. Only | 0008b7e0 74 68 69 73 20 6d 61 6e 79 20 63 68 61 72 61 63 |this many charac| 0008b7f0 74 65 72 73 20 77 69 6c 6c 20 62 65 20 61 63 63 |ters will be acc| 0008b800 65 70 74 65 64 20 66 72 6f 6d 20 74 68 65 20 69 |epted from the i| 0008b810 6e 70 75 74 2e 00 00 00 44 41 54 41 a1 01 00 00 |nput....DATA....| 0008b820 46 6f 72 6d 61 74 20 53 74 72 69 6e 67 20 4c 65 |Format String Le| 0008b830 6e 67 74 68 20 4d 6f 64 69 66 69 65 72 0a 4f 6e |ngth Modifier.On| 0008b840 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |e of the followi| 0008b850 6e 67 3a 0a 0a 68 09 46 6f 72 20 64 2c 20 69 2c |ng:..h.For d, i,| 0008b860 20 6e 2c 20 6f 2c 20 75 2c 20 6f 72 20 78 20 63 | n, o, u, or x c| 0008b870 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 63 69 66 |onversion specif| 0008b880 69 65 73 20 74 68 61 74 20 74 68 65 20 61 72 67 |ies that the arg| 0008b890 75 6d 65 6e 74 20 69 73 20 61 20 70 6f 69 6e 74 |ument is a point| 0008b8a0 65 72 20 74 6f 20 61 20 73 68 6f 72 74 20 69 6e |er to a short in| 0008b8b0 74 2e 0a 0a 6c 09 46 6f 72 20 64 2c 20 69 2c 20 |t...l.For d, i, | 0008b8c0 6e 2c 20 6f 2c 20 75 2c 20 6f 72 20 78 20 63 6f |n, o, u, or x co| 0008b8d0 6e 76 65 72 73 69 6f 6e 20 73 70 65 63 69 66 69 |nversion specifi| 0008b8e0 65 73 20 74 68 61 74 20 74 68 65 20 61 72 67 75 |es that the argu| 0008b8f0 6d 65 6e 74 20 69 73 20 61 20 70 6f 69 6e 74 65 |ment is a pointe| 0008b900 72 20 74 6f 20 61 20 6c 6f 6e 67 20 69 6e 74 2e |r to a long int.| 0008b910 0a 09 46 6f 72 20 65 2c 20 66 2c 20 6f 72 20 67 |..For e, f, or g| 0008b920 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 63 | conversion spec| 0008b930 69 66 69 65 73 20 74 68 61 74 20 74 68 65 20 61 |ifies that the a| 0008b940 72 67 75 6d 65 6e 74 20 69 73 20 61 20 70 6f 69 |rgument is a poi| 0008b950 6e 74 65 72 20 74 6f 20 61 20 64 6f 75 62 6c 65 |nter to a double| 0008b960 2e 0a 0a 4c 09 46 6f 72 20 65 2c 20 66 2c 20 6f |...L.For e, f, o| 0008b970 72 20 67 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 |r g conversion s| 0008b980 70 65 63 69 66 69 65 73 20 74 68 61 74 20 74 68 |pecifies that th| 0008b990 65 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 |e argument is a | 0008b9a0 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 6c 6f 6e |pointer to a lon| 0008b9b0 67 20 64 6f 75 62 6c 65 2e 00 00 00 44 41 54 41 |g double....DATA| 0008b9c0 bb 00 00 00 46 6f 72 6d 61 74 20 53 74 72 69 6e |....Format Strin| 0008b9d0 67 20 27 2a 27 0a 54 68 65 20 6f 70 74 69 6f 6e |g '*'.The option| 0008b9e0 61 6c 20 27 2a 27 20 63 68 61 72 61 63 74 65 72 |al '*' character| 0008b9f0 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 | indicates that | 0008ba00 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 76 |the current conv| 0008ba10 65 72 73 69 6f 6e 20 73 68 6f 75 6c 64 20 74 61 |ersion should ta| 0008ba20 6b 65 20 70 6c 61 63 65 20 62 75 74 20 74 68 65 |ke place but the| 0008ba30 20 72 65 73 75 6c 74 20 73 68 6f 75 6c 64 20 6e | result should n| 0008ba40 6f 74 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 |ot be placed in | 0008ba50 74 68 65 20 76 61 72 69 61 62 6c 65 20 73 70 65 |the variable spe| 0008ba60 63 69 66 69 65 64 20 62 79 20 74 68 65 20 61 72 |cified by the ar| 0008ba70 67 75 6d 65 6e 74 2e 00 44 49 52 24 44 00 00 00 |gument..DIR$D...| 0008ba80 44 00 00 00 bc ba 08 00 46 ff ff ff 29 00 bd 22 |D.......F...).."| 0008ba90 ad 00 00 00 13 00 00 00 00 00 00 00 4d 41 58 00 |............MAX.| 0008baa0 6c bb 08 00 46 ff ff ff 97 fc bc 22 ae 00 00 00 |l...F......"....| 0008bab0 13 00 00 00 00 00 00 00 4d 49 4e 00 44 41 54 41 |........MIN.DATA| 0008bac0 ad 00 00 00 53 48 52 54 5f 4d 41 58 0a 54 68 69 |....SHRT_MAX.Thi| 0008bad0 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 0008bae0 65 64 20 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e |ed in <limits.h>| 0008baf0 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 | and represents | 0008bb00 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 |the maximum valu| 0008bb10 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 |e which can be s| 0008bb20 74 6f 72 65 64 20 69 6e 20 61 20 73 68 6f 72 74 |tored in a short| 0008bb30 20 69 6e 74 2e 20 49 6e 20 45 61 73 79 20 43 20 | int. In Easy C | 0008bb40 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |it is defined as| 0008bb50 20 30 78 37 66 66 66 66 66 66 66 20 28 32 31 34 | 0x7fffffff (214| 0008bb60 37 34 38 33 36 34 37 29 2e 00 00 00 44 41 54 41 |7483647)....DATA| 0008bb70 ae 00 00 00 53 48 52 54 5f 4d 49 4e 0a 54 68 69 |....SHRT_MIN.Thi| 0008bb80 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 0008bb90 65 64 20 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e |ed in <limits.h>| 0008bba0 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 | and represents | 0008bbb0 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 |the minimum valu| 0008bbc0 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 |e which can be s| 0008bbd0 74 6f 72 65 64 20 69 6e 20 61 20 73 68 6f 72 74 |tored in a short| 0008bbe0 20 69 6e 74 2e 20 49 6e 20 45 61 73 79 20 43 20 | int. In Easy C | 0008bbf0 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |it is defined as| 0008bc00 20 30 78 38 30 30 30 30 30 30 30 20 28 2d 32 31 | 0x80000000 (-21| 0008bc10 34 37 34 38 33 36 34 38 29 2e 00 00 44 41 54 41 |47483648)...DATA| 0008bc20 5a 00 00 00 53 49 47 41 42 52 54 0a 54 68 69 73 |Z...SIGABRT.This| 0008bc30 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 0008bc40 64 20 69 6e 20 3c 73 69 67 6e 61 6c 2e 68 3d 3e |d in <signal.h=>| 0008bc50 73 69 67 6e 61 6c 3e 2e 20 49 6e 20 45 61 73 79 |signal>. In Easy| 0008bc60 20 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 | C it is defined| 0008bc70 20 61 73 20 31 2e 00 00 44 41 54 41 59 00 00 00 | as 1...DATAY...| 0008bc80 53 49 47 46 50 45 0a 54 68 69 73 20 6d 61 63 72 |SIGFPE.This macr| 0008bc90 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |o is defined in | 0008bca0 3c 73 69 67 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 |<signal.h=>signa| 0008bcb0 6c 3e 2e 20 49 6e 20 45 61 73 79 20 43 20 69 74 |l>. In Easy C it| 0008bcc0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 32 | is defined as 2| 0008bcd0 2e 00 00 00 44 41 54 41 59 00 00 00 53 49 47 49 |....DATAY...SIGI| 0008bce0 4c 4c 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |LL.This macro is| 0008bcf0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 69 67 | defined in <sig| 0008bd00 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e 20 |nal.h=>signal>. | 0008bd10 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 20 |In Easy C it is | 0008bd20 64 65 66 69 6e 65 64 20 61 73 20 33 2e 00 00 00 |defined as 3....| 0008bd30 44 41 54 41 59 00 00 00 53 49 47 49 4e 54 0a 54 |DATAY...SIGINT.T| 0008bd40 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 0008bd50 69 6e 65 64 20 69 6e 20 3c 73 69 67 6e 61 6c 2e |ined in <signal.| 0008bd60 68 3d 3e 73 69 67 6e 61 6c 3e 2e 20 49 6e 20 45 |h=>signal>. In E| 0008bd70 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 |asy C it is defi| 0008bd80 6e 65 64 20 61 73 20 34 2e 00 00 00 44 41 54 41 |ned as 4....DATA| 0008bd90 ac 01 00 00 73 69 67 6e 61 6c 2e 68 0a 54 68 65 |....signal.h.The| 0008bda0 20 5c 3c 73 69 67 6e 61 6c 2e 68 3e 20 68 65 61 | \<signal.h> hea| 0008bdb0 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e |der declares fun| 0008bdc0 63 74 69 6f 6e 73 2c 20 6d 61 63 72 6f 73 20 61 |ctions, macros a| 0008bdd0 6e 64 20 6f 6e 65 20 74 79 70 65 20 66 6f 72 20 |nd one type for | 0008bde0 68 61 6e 64 6c 69 6e 67 20 73 69 67 6e 61 6c 73 |handling signals| 0008bdf0 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 |...Functions:..#| 0008be00 49 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 |Indent 4.#Table | 0008be10 33 20 32 37 0a 3c 5f 5f 64 65 66 61 75 6c 74 5f |3 27.<__default_| 0008be20 73 69 67 6e 61 6c 5f 68 61 6e 64 6c 65 72 3e 0a |signal_handler>.| 0008be30 3c 5f 5f 65 72 72 6f 72 5f 73 69 67 6e 61 6c 5f |<__error_signal_| 0008be40 6d 61 72 6b 65 72 3e 0a 3c 5f 5f 69 67 6e 6f 72 |marker>.<__ignor| 0008be50 65 5f 73 69 67 6e 61 6c 5f 68 61 6e 64 6c 65 72 |e_signal_handler| 0008be60 3e 0a 3c 73 69 67 6e 61 6c 3d 3e 73 69 67 6e 61 |>.<signal=>signa| 0008be70 6c 5f 3e 0a 3c 72 61 69 73 65 3e 0a 23 45 6e 64 |l_>.<raise>.#End| 0008be80 54 61 62 6c 65 0a 23 49 6e 64 65 6e 74 20 30 0a |Table.#Indent 0.| 0008be90 0a 54 79 70 65 3a 0a 0a 23 69 6e 64 65 6e 74 20 |.Type:..#indent | 0008bea0 34 0a 3c 73 69 67 5f 61 74 6f 6d 69 63 5f 74 3e |4.<sig_atomic_t>| 0008beb0 0a 23 69 6e 64 65 6e 74 0a 0a 4d 61 63 72 6f 73 |.#indent..Macros| 0008bec0 3a 0a 0a 23 54 61 62 6c 65 20 32 20 39 0a 3c 53 |:..#Table 2 9.<S| 0008bed0 49 47 5f 44 46 4c 3e 0a 3c 53 49 47 5f 45 52 52 |IG_DFL>.<SIG_ERR| 0008bee0 3e 0a 3c 53 49 47 5f 49 47 4e 3e 0a 3c 53 49 47 |>.<SIG_IGN>.<SIG| 0008bef0 41 42 52 54 3e 0a 3c 53 49 47 46 50 45 3e 0a 3c |ABRT>.<SIGFPE>.<| 0008bf00 53 49 47 49 4c 4c 3e 0a 3c 53 49 47 49 4e 54 3e |SIGILL>.<SIGINT>| 0008bf10 0a 3c 53 49 47 53 45 47 56 3e 0a 3c 53 49 47 54 |.<SIGSEGV>.<SIGT| 0008bf20 45 52 4d 3e 0a 3c 53 49 47 53 54 41 4b 3e 0a 23 |ERM>.<SIGSTAK>.#| 0008bf30 45 6e 64 54 61 62 6c 65 44 49 52 24 2c 00 00 00 |EndTableDIR$,...| 0008bf40 2c 00 00 00 64 bf 08 00 46 fd ff ff 26 37 bf 22 |,...d...F...&7."| 0008bf50 f0 00 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |............!Roo| 0008bf60 74 00 00 00 44 41 54 41 f0 00 00 00 73 69 67 6e |t...DATA....sign| 0008bf70 61 6c 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |al.Syntax:.void | 0008bf80 28 2a 73 69 67 6e 61 6c 28 69 6e 74 20 73 69 67 |(*signal(int sig| 0008bf90 2c 20 76 6f 69 64 20 28 2a 66 75 6e 63 29 28 69 |, void (*func)(i| 0008bfa0 6e 74 29 29 29 28 69 6e 74 29 3b 0a 48 65 61 64 |nt)))(int);.Head| 0008bfb0 65 72 3a 09 3c 73 69 67 6e 61 6c 2e 68 3d 3e 73 |er:.<signal.h=>s| 0008bfc0 69 67 6e 61 6c 3e 0a 0a 52 65 74 75 72 6e 73 3a |ignal>..Returns:| 0008bfd0 09 2f 66 75 6e 63 2f 20 6f 66 20 6d 6f 73 74 20 |./func/ of most | 0008bfe0 72 65 63 65 6e 74 20 63 61 6c 6c 2e 0a 0a 54 68 |recent call...Th| 0008bff0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 0008c000 20 74 68 61 74 20 61 6e 79 20 66 75 74 75 72 65 | that any future| 0008c010 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 | occurrences of | 0008c020 74 68 65 20 73 69 67 6e 61 6c 20 2f 73 69 67 2f |the signal /sig/| 0008c030 20 77 69 6c 6c 20 75 73 65 20 74 68 65 20 73 69 | will use the si| 0008c040 67 6e 61 6c 20 68 61 6e 64 6c 65 72 20 2f 66 75 |gnal handler /fu| 0008c050 6e 63 2f 2e 44 41 54 41 5a 00 00 00 53 49 47 53 |nc/.DATAZ...SIGS| 0008c060 45 47 56 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |EGV.This macro i| 0008c070 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 69 |s defined in <si| 0008c080 67 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e |gnal.h=>signal>.| 0008c090 20 49 6e 20 45 61 73 79 20 43 20 69 74 20 69 73 | In Easy C it is| 0008c0a0 20 64 65 66 69 6e 65 64 20 61 73 20 35 2e 00 00 | defined as 5...| 0008c0b0 44 41 54 41 5a 00 00 00 53 49 47 53 54 41 4b 0a |DATAZ...SIGSTAK.| 0008c0c0 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0008c0d0 66 69 6e 65 64 20 69 6e 20 3c 73 69 67 6e 61 6c |fined in <signal| 0008c0e0 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e 20 49 6e 20 |.h=>signal>. In | 0008c0f0 45 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 |Easy C it is def| 0008c100 69 6e 65 64 20 61 73 20 37 2e 00 00 44 41 54 41 |ined as 7...DATA| 0008c110 5a 00 00 00 53 49 47 54 45 52 4d 0a 54 68 69 73 |Z...SIGTERM.This| 0008c120 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 0008c130 64 20 69 6e 20 3c 73 69 67 6e 61 6c 2e 68 3d 3e |d in <signal.h=>| 0008c140 73 69 67 6e 61 6c 3e 2e 20 49 6e 20 45 61 73 79 |signal>. In Easy| 0008c150 20 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 | C it is defined| 0008c160 20 61 73 20 36 2e 00 00 44 49 52 24 84 00 00 00 | as 6...DIR$....| 0008c170 84 00 00 00 ec c1 08 00 46 ff ff ff da 40 bf 22 |........F....@."| 0008c180 65 00 00 00 13 00 00 00 00 00 00 00 61 74 6f 6d |e...........atom| 0008c190 69 63 5f 74 00 00 00 00 54 c2 08 00 46 ff ff ff |ic_t....T...F...| 0008c1a0 a2 51 bf 22 9e 00 00 00 13 00 00 00 00 00 00 00 |.Q."............| 0008c1b0 44 46 4c 00 f4 c2 08 00 46 ff ff ff 1e 5d bf 22 |DFL.....F....]."| 0008c1c0 99 00 00 00 13 00 00 00 00 00 00 00 45 52 52 00 |............ERR.| 0008c1d0 90 c3 08 00 46 ff ff ff 65 65 bf 22 9c 00 00 00 |....F...ee."....| 0008c1e0 13 00 00 00 00 00 00 00 49 47 4e 00 44 41 54 41 |........IGN.DATA| 0008c1f0 65 00 00 00 73 69 67 5f 61 74 6f 6d 69 63 5f 74 |e...sig_atomic_t| 0008c200 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 0008c210 66 69 6e 65 64 20 69 6e 20 3c 73 69 67 6e 61 6c |fined in <signal| 0008c220 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e 20 49 6e 20 |.h=>signal>. In | 0008c230 45 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 |Easy C it is def| 0008c240 69 6e 65 64 20 61 73 20 61 6e 20 2f 69 6e 74 2f |ined as an /int/| 0008c250 2e 00 00 00 44 41 54 41 9e 00 00 00 53 49 47 5f |....DATA....SIG_| 0008c260 44 46 4c 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |DFL.This macro i| 0008c270 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 69 |s defined in <si| 0008c280 67 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e |gnal.h=>signal>.| 0008c290 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 74 | It is defined t| 0008c2a0 6f 20 62 65 20 61 20 70 6f 69 6e 74 65 72 20 74 |o be a pointer t| 0008c2b0 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 69 |o the default si| 0008c2c0 67 6e 61 6c 20 68 61 6e 64 6c 65 72 20 69 65 20 |gnal handler ie | 0008c2d0 7b 2f 7d 26 3c 5f 5f 64 65 66 61 75 6c 74 5f 73 |{/}&<__default_s| 0008c2e0 69 67 6e 61 6c 5f 68 61 6e 64 6c 65 72 3e 7b 2f |ignal_handler>{/| 0008c2f0 7d 2e 00 00 44 41 54 41 99 00 00 00 53 49 47 5f |}...DATA....SIG_| 0008c300 45 52 52 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |ERR.This macro i| 0008c310 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 69 |s defined in <si| 0008c320 67 6e 61 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e |gnal.h=>signal>.| 0008c330 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 74 | It is defined t| 0008c340 6f 20 62 65 20 61 20 70 6f 69 6e 74 65 72 20 74 |o be a pointer t| 0008c350 6f 20 74 68 65 20 65 72 72 6f 72 20 73 69 67 6e |o the error sign| 0008c360 61 6c 20 68 61 6e 64 6c 65 72 20 69 65 20 7b 2f |al handler ie {/| 0008c370 7d 26 3c 5f 5f 65 72 72 6f 72 5f 73 69 67 6e 61 |}&<__error_signa| 0008c380 6c 5f 6d 61 72 6b 65 72 3e 7b 2f 7d 2e 00 00 00 |l_marker>{/}....| 0008c390 44 41 54 41 9c 00 00 00 53 49 47 5f 49 47 4e 0a |DATA....SIG_IGN.| 0008c3a0 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0008c3b0 66 69 6e 65 64 20 69 6e 20 3c 73 69 67 6e 61 6c |fined in <signal| 0008c3c0 2e 68 3d 3e 73 69 67 6e 61 6c 3e 2e 20 49 74 20 |.h=>signal>. It | 0008c3d0 69 73 20 64 65 66 69 6e 65 64 20 74 6f 20 62 65 |is defined to be| 0008c3e0 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 | a pointer to th| 0008c3f0 65 20 69 67 6e 6f 72 65 20 73 69 67 6e 61 6c 20 |e ignore signal | 0008c400 68 61 6e 64 6c 65 72 20 69 65 20 7b 2f 7d 26 3c |handler ie {/}&<| 0008c410 5f 5f 69 67 6e 6f 72 65 5f 73 69 67 6e 61 6c 5f |__ignore_signal_| 0008c420 68 61 6e 64 6c 65 72 3e 7b 2f 7d 2e 44 41 54 41 |handler>{/}.DATA| 0008c430 a5 00 00 00 73 69 6e 0a 53 79 6e 74 61 78 3a 09 |....sin.Syntax:.| 0008c440 64 6f 75 62 6c 65 20 73 69 6e 20 28 64 6f 75 62 |double sin (doub| 0008c450 6c 65 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c |le x);.Header:.<| 0008c460 6d 61 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 |math.h=>math>..R| 0008c470 65 74 75 72 6e 73 3a 09 54 68 65 20 73 69 6e 65 |eturns:.The sine| 0008c480 20 6f 66 20 78 20 69 6e 20 72 61 64 69 61 6e 73 | of x in radians| 0008c490 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0008c4a0 20 63 61 6c 63 75 6c 61 74 65 73 20 74 68 65 20 | calculates the | 0008c4b0 70 72 69 6e 63 69 70 61 6c 20 76 61 6c 75 65 20 |principal value | 0008c4c0 6f 66 20 74 68 65 20 73 69 6e 65 20 6f 66 20 78 |of the sine of x| 0008c4d0 2e 00 00 00 44 41 54 41 c7 00 00 00 73 69 6e 68 |....DATA....sinh| 0008c4e0 0a 53 79 6e 74 61 78 3a 09 64 6f 75 62 6c 65 20 |.Syntax:.double | 0008c4f0 73 69 6e 68 20 28 64 6f 75 62 6c 65 20 78 29 3b |sinh (double x);| 0008c500 0a 48 65 61 64 65 72 3a 09 3c 6d 61 74 68 2e 68 |.Header:.<math.h| 0008c510 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 75 72 6e 73 |=>math>..Returns| 0008c520 3a 09 54 68 65 20 68 79 70 65 72 62 6f 6c 69 63 |:.The hyperbolic| 0008c530 20 73 69 6e 65 20 6f 66 20 78 20 69 6e 20 72 61 | sine of x in ra| 0008c540 64 69 61 6e 73 2e 0a 0a 54 68 69 73 20 66 75 6e |dians...This fun| 0008c550 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 |ction calculates| 0008c560 20 74 68 65 20 68 79 70 65 72 62 6f 6c 69 63 20 | the hyperbolic | 0008c570 73 69 6e 65 20 6f 66 20 78 2e 20 41 6e 20 65 72 |sine of x. An er| 0008c580 72 6f 72 20 6f 63 63 75 72 73 20 69 66 20 78 20 |ror occurs if x | 0008c590 69 73 20 74 6f 6f 20 62 69 67 2e 00 44 41 54 41 |is too big..DATA| 0008c5a0 0a 01 00 00 73 69 7a 65 6f 66 0a 54 68 69 73 20 |....sizeof.This | 0008c5b0 69 73 20 28 74 68 65 20 6f 6e 6c 79 3f 29 20 62 |is (the only?) b| 0008c5c0 75 69 6c 74 20 69 6e 20 66 75 6e 63 74 69 6f 6e |uilt in function| 0008c5d0 20 6f 66 20 43 2e 20 49 74 20 74 65 6c 6c 73 20 | of C. It tells | 0008c5e0 79 6f 75 20 74 68 65 20 73 69 7a 65 20 69 6e 20 |you the size in | 0008c5f0 62 79 74 65 73 20 6f 66 20 73 6f 6d 65 74 68 69 |bytes of somethi| 0008c600 6e 67 2c 20 74 68 69 73 20 63 61 6e 20 62 65 20 |ng, this can be | 0008c610 61 20 73 70 65 63 69 66 69 63 20 3c 76 61 72 69 |a specific <vari| 0008c620 61 62 6c 65 3d 3e 63 5f 76 61 72 5f 3e 20 6f 72 |able=>c_var_> or| 0008c630 20 61 20 3c 74 79 70 65 3d 3e 63 5f 74 79 70 65 | a <type=>c_type| 0008c640 73 5f 3e 2e 20 65 67 3a 0a 0a 20 20 20 20 73 69 |s_>. eg:.. si| 0008c650 7a 65 6f 66 28 69 6e 74 29 09 2f 2a 20 45 71 75 |zeof(int)./* Equ| 0008c660 61 6c 73 20 34 20 2a 2f 0a 20 20 20 20 73 69 7a |als 4 */. siz| 0008c670 65 6f 66 28 61 2e 62 29 09 2f 2a 20 44 65 70 65 |eof(a.b)./* Depe| 0008c680 6e 64 73 20 2a 2f 0a 20 20 20 20 73 69 7a 65 6f |nds */. sizeo| 0008c690 66 28 63 68 61 72 29 09 2f 2a 20 45 71 75 61 6c |f(char)./* Equal| 0008c6a0 73 20 31 20 2a 2f 00 00 44 49 52 24 28 00 00 00 |s 1 */..DIR$(...| 0008c6b0 28 00 00 00 d0 c6 08 00 46 ff ff ff b8 86 c0 22 |(.......F......"| 0008c6c0 f4 00 00 00 13 00 00 00 00 00 00 00 74 00 00 00 |............t...| 0008c6d0 44 41 54 41 f4 00 00 00 73 69 7a 65 5f 74 0a 54 |DATA....size_t.T| 0008c6e0 68 65 20 74 79 70 65 20 7b 2f 7d 73 69 7a 65 5f |he type {/}size_| 0008c6f0 74 7b 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 20 |t{/} is defined | 0008c700 69 6e 20 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 |in <stdio.h=>std| 0008c710 69 6f 3e 2c 20 3c 73 74 64 6c 69 62 2e 68 3d 3e |io>, <stdlib.h=>| 0008c720 73 74 64 6c 69 62 3e 2c 20 3c 73 74 64 64 65 66 |stdlib>, <stddef| 0008c730 2e 68 3d 3e 73 74 64 64 65 66 3e 2c 20 61 6e 64 |.h=>stddef>, and| 0008c740 20 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 69 | <string.h=>stri| 0008c750 6e 67 3e 2c 20 61 6e 64 20 69 73 20 75 73 65 64 |ng>, and is used| 0008c760 20 66 6f 72 20 73 65 76 65 72 61 6c 20 66 75 6e | for several fun| 0008c770 63 74 69 6f 6e 73 20 74 6f 20 69 6e 64 69 63 61 |ctions to indica| 0008c780 74 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 |te the size of t| 0008c790 68 69 6e 67 73 2e 20 49 74 20 69 73 20 64 65 66 |hings. It is def| 0008c7a0 69 6e 65 64 20 69 6e 20 45 61 73 79 20 43 20 61 |ined in Easy C a| 0008c7b0 73 20 61 6e 20 2f 75 6e 73 69 67 6e 65 64 20 69 |s an /unsigned i| 0008c7c0 6e 74 2f 2e 44 41 54 41 12 02 00 00 44 65 73 6b |nt/.DATA....Desk| 0008c7d0 4c 69 62 3a 53 6c 69 64 65 72 2e 68 0a 56 65 72 |Lib:Slider.h.Ver| 0008c7e0 73 69 6f 6e 3a 20 31 2e 30 30 20 28 31 32 20 4d |sion: 1.00 (12 M| 0008c7f0 61 72 20 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 |ar 1994).#line.T| 0008c800 68 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 |his header decla| 0008c810 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f |res functions fo| 0008c820 72 20 65 61 73 79 20 68 61 6e 64 6c 69 6e 67 20 |r easy handling | 0008c830 6f 66 20 73 6c 69 64 65 72 20 69 63 6f 6e 73 2e |of slider icons.| 0008c840 20 54 68 65 73 65 20 61 72 65 20 62 65 74 74 65 | These are bette| 0008c850 72 20 74 68 61 6e 20 74 68 6f 73 65 20 66 6f 75 |r than those fou| 0008c860 6e 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 49 |nd in <DeskLib:I| 0008c870 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 3e 2e 0a 0a 46 |con.h=>Icon>...F| 0008c880 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 |unctions:..#Inde| 0008c890 6e 74 20 31 30 0a 23 54 61 62 6c 65 20 32 20 32 |nt 10.#Table 2 2| 0008c8a0 30 0a 3c 53 6c 69 64 65 72 5f 52 65 64 72 61 77 |0.<Slider_Redraw| 0008c8b0 3e 0a 3c 53 6c 69 64 65 72 5f 52 65 61 64 56 61 |>.<Slider_ReadVa| 0008c8c0 6c 75 65 3e 0a 3c 53 6c 69 64 65 72 5f 53 65 74 |lue>.<Slider_Set| 0008c8d0 56 61 6c 75 65 3e 0a 3c 53 6c 69 64 65 72 5f 44 |Value>.<Slider_D| 0008c8e0 72 61 67 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 23 |rag>.#EndTable.#| 0008c8f0 49 6e 64 65 6e 74 20 30 0a 0a 54 79 70 65 3a 0a |Indent 0..Type:.| 0008c900 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c |.{align centre}<| 0008c910 73 6c 69 64 65 72 5f 69 6e 66 6f 3e 0a 0a 54 68 |slider_info>..Th| 0008c920 65 20 73 6c 69 64 65 72 20 66 75 6e 63 74 69 6f |e slider functio| 0008c930 6e 73 20 6e 65 65 64 20 3c 73 63 72 65 65 6e 5f |ns need <screen_| 0008c940 64 65 6c 74 61 3e 20 74 6f 20 62 65 20 6b 65 70 |delta> to be kep| 0008c950 74 20 75 70 20 74 6f 20 64 61 74 65 2e 20 3c 48 |t up to date. <H| 0008c960 61 6e 64 6c 65 72 5f 4d 6f 64 65 43 68 61 6e 67 |andler_ModeChang| 0008c970 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 63 61 6c |e> should be cal| 0008c980 6c 65 64 20 6f 6e 20 61 20 6d 6f 64 65 20 63 68 |led on a mode ch| 0008c990 61 6e 67 65 2c 20 77 69 74 68 20 3c 53 63 72 65 |ange, with <Scre| 0008c9a0 65 6e 5f 43 61 63 68 65 4d 6f 64 65 49 6e 66 6f |en_CacheModeInfo| 0008c9b0 3e 20 63 61 6c 6c 65 64 20 61 74 20 74 68 65 20 |> called at the | 0008c9c0 73 74 61 72 74 20 6f 66 20 79 6f 75 72 20 70 72 |start of your pr| 0008c9d0 6f 67 72 61 6d 2e 00 00 44 49 52 24 b4 00 00 00 |ogram...DIR$....| 0008c9e0 b4 00 00 00 8c ca 08 00 46 ff ff ff 30 a0 65 25 |........F...0.e%| 0008c9f0 be 02 00 00 13 00 00 00 00 00 00 00 44 72 61 67 |............Drag| 0008ca00 00 00 00 00 4c cd 08 00 46 ff ff ff eb b0 65 25 |....L...F.....e%| 0008ca10 7b 05 00 00 13 00 00 00 00 00 00 00 69 6e 66 6f |{...........info| 0008ca20 00 00 00 00 c8 d2 08 00 46 ff ff ff 2d 71 65 25 |........F...-qe%| 0008ca30 2b 01 00 00 13 00 00 00 00 00 00 00 52 65 61 64 |+...........Read| 0008ca40 56 61 6c 75 65 00 00 00 f4 d3 08 00 46 ff ff ff |Value.......F...| 0008ca50 3b 68 65 25 6c 01 00 00 13 00 00 00 00 00 00 00 |;he%l...........| 0008ca60 52 65 64 72 61 77 00 00 60 d5 08 00 46 ff ff ff |Redraw..`...F...| 0008ca70 2e 7f 65 25 2b 02 00 00 13 00 00 00 00 00 00 00 |..e%+...........| 0008ca80 53 65 74 56 61 6c 75 65 00 00 00 00 44 41 54 41 |SetValue....DATA| 0008ca90 be 02 00 00 53 6c 69 64 65 72 5f 44 72 61 67 0a |....Slider_Drag.| 0008caa0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 0008cab0 72 3e 20 2a 53 6c 69 64 65 72 5f 44 72 61 67 20 |r> *Slider_Drag | 0008cac0 28 3c 73 6c 69 64 65 72 5f 69 6e 66 6f 3e 20 2a |(<slider_info> *| 0008cad0 73 6c 69 64 65 72 2c 20 3c 42 4f 4f 4c 3e 20 2a |slider, <BOOL> *| 0008cae0 63 6c 6f 73 65 64 2c 20 69 6e 74 20 2a 76 61 6c |closed, int *val| 0008caf0 75 65 2c 20 76 6f 69 64 20 2a 72 65 66 29 3b 0a |ue, void *ref);.| 0008cb00 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0008cb10 3a 53 6c 69 64 65 72 2e 68 3d 3e 53 6c 69 64 65 |:Slider.h=>Slide| 0008cb20 72 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |r>..Returns:.Poi| 0008cb30 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 0008cb40 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 0008cb50 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0008cb60 20 73 74 61 72 74 73 20 64 72 61 67 67 69 6e 67 | starts dragging| 0008cb70 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 | the specified s| 0008cb80 6c 69 64 65 72 20 61 6e 64 20 73 68 6f 75 6c 64 |lider and should| 0008cb90 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 | be called when | 0008cba0 74 68 65 20 75 73 65 72 20 63 6c 69 63 6b 73 20 |the user clicks | 0008cbb0 6f 6e 20 74 68 65 20 73 6c 69 64 65 72 2e 20 49 |on the slider. I| 0008cbc0 74 20 72 65 74 75 72 6e 73 20 77 68 65 6e 20 64 |t returns when d| 0008cbd0 72 61 67 67 69 6e 67 20 73 74 6f 70 73 2c 20 74 |ragging stops, t| 0008cbe0 68 65 20 75 70 64 61 74 65 20 66 75 6e 63 74 69 |he update functi| 0008cbf0 6f 6e 20 74 65 6c 6c 20 69 74 20 74 6f 2c 20 6f |on tell it to, o| 0008cc00 72 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 20 |r the window is | 0008cc10 63 6c 6f 73 65 64 2e 20 49 74 20 6d 75 6c 74 69 |closed. It multi| 0008cc20 74 61 73 6b 73 20 62 79 20 63 61 6c 6c 69 6e 67 |tasks by calling| 0008cc30 20 3c 45 76 65 6e 74 5f 50 72 6f 63 65 73 73 3e | <Event_Process>| 0008cc40 2e 20 54 68 65 20 75 70 64 61 74 65 20 66 75 6e |. The update fun| 0008cc50 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 63 61 |ction will be ca| 0008cc60 6c 6c 65 64 20 28 77 69 74 68 20 7b 2f 7d 72 65 |lled (with {/}re| 0008cc70 66 7b 2f 7d 29 20 69 66 20 74 68 65 20 76 61 6c |f{/}) if the val| 0008cc80 75 65 20 63 68 61 6e 67 65 73 2e 0a 0a 49 66 20 |ue changes...If | 0008cc90 2f 63 6c 6f 73 65 64 2f 20 69 73 20 6e 6f 74 20 |/closed/ is not | 0008cca0 4e 55 4c 4c 20 74 68 65 6e 20 7b 2f 7d 2a 63 6c |NULL then {/}*cl| 0008ccb0 6f 73 65 64 7b 2f 7d 20 69 73 20 73 65 74 20 74 |osed{/} is set t| 0008ccc0 6f 20 54 52 55 45 20 69 66 20 74 68 65 20 77 69 |o TRUE if the wi| 0008ccd0 6e 64 6f 77 20 69 73 20 20 63 6c 6f 73 65 64 20 |ndow is closed | 0008cce0 77 68 69 6c 65 20 64 72 61 67 67 69 6e 67 2e 20 |while dragging. | 0008ccf0 49 66 20 2f 76 61 6c 75 65 2f 20 69 73 20 6e 6f |If /value/ is no| 0008cd00 74 20 4e 55 4c 4c 20 74 68 65 6e 20 7b 2f 7d 2a |t NULL then {/}*| 0008cd10 76 61 6c 75 65 7b 2f 7d 20 69 73 20 73 65 74 20 |value{/} is set | 0008cd20 74 6f 20 74 68 65 20 73 6c 69 64 65 72 20 76 61 |to the slider va| 0008cd30 6c 75 65 20 69 6e 20 75 73 65 72 20 75 6e 69 74 |lue in user unit| 0008cd40 73 20 6f 6e 20 65 78 69 74 2e 00 00 44 41 54 41 |s on exit...DATA| 0008cd50 7b 05 00 00 73 6c 69 64 65 72 5f 69 6e 66 6f 0a |{...slider_info.| 0008cd60 54 68 69 73 20 73 74 72 75 63 74 75 72 65 20 69 |This structure i| 0008cd70 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 0008cd80 73 6b 4c 69 62 3a 53 6c 69 64 65 72 2e 68 3d 3e |skLib:Slider.h=>| 0008cd90 53 6c 69 64 65 72 3e 20 61 6e 64 20 63 6f 6e 74 |Slider> and cont| 0008cda0 61 69 6e 73 20 66 75 6c 6c 20 69 6e 66 6f 72 6d |ains full inform| 0008cdb0 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 73 6c |ation about a sl| 0008cdc0 69 64 65 72 20 77 68 69 63 68 20 44 65 73 6b 4c |ider which DeskL| 0008cdd0 69 62 20 69 73 20 74 6f 20 68 61 6e 64 6c 65 2e |ib is to handle.| 0008cde0 0a 0a 5c 7b 0a 20 20 3c 77 69 6e 64 6f 77 5f 68 |..\{. <window_h| 0008cdf0 61 6e 64 6c 65 3e 20 77 69 6e 64 6f 77 3b 0a 20 |andle> window;. | 0008ce00 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 20 | <icon_handle> | 0008ce10 20 69 63 6f 6e 3b 0a 0a 20 20 69 6e 74 20 76 61 | icon;.. int va| 0008ce20 6c 75 65 3b 20 20 20 2f 2a 20 49 6e 74 65 72 6e |lue; /* Intern| 0008ce30 61 6c 20 73 6c 69 64 65 72 20 70 6f 73 69 74 69 |al slider positi| 0008ce40 6f 6e 20 2a 2f 0a 0a 20 20 73 74 72 75 63 74 0a |on */.. struct.| 0008ce50 20 20 5c 7b 20 69 6e 74 20 20 20 20 20 20 20 20 | \{ int | 0008ce60 20 6d 69 6e 3b 0a 20 20 20 20 69 6e 74 20 20 20 | min;. int | 0008ce70 20 20 20 20 20 20 6d 61 78 3b 0a 20 20 7d 20 6c | max;. } l| 0008ce80 69 6d 69 74 73 3b 20 20 20 20 2f 2a 20 56 61 6c |imits; /* Val| 0008ce90 75 65 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 |ues returned by | 0008cea0 73 6c 69 64 65 72 20 2a 2f 0a 0a 20 20 73 74 72 |slider */.. str| 0008ceb0 75 63 74 0a 20 20 5c 7b 20 69 6e 74 20 66 6f 72 |uct. \{ int for| 0008cec0 65 67 72 6f 75 6e 64 3b 0a 20 20 20 20 69 6e 74 |eground;. int| 0008ced0 20 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 20 20 7d | background;. }| 0008cee0 20 63 6f 6c 6f 75 72 3b 20 20 20 20 2f 2a 20 43 | colour; /* C| 0008cef0 6f 6c 6f 75 72 73 20 6f 66 20 73 6c 69 64 65 72 |olours of slider| 0008cf00 20 2a 2f 0a 0a 20 20 73 74 72 75 63 74 0a 20 20 | */.. struct. | 0008cf10 5c 7b 20 69 6e 74 20 78 3b 0a 20 20 20 20 69 6e |\{ int x;. in| 0008cf20 74 20 79 3b 0a 20 20 7d 20 62 6f 72 64 65 72 3b |t y;. } border;| 0008cf30 20 20 20 20 2f 2a 20 42 6f 72 64 65 72 20 73 69 | /* Border si| 0008cf40 7a 65 20 2a 2f 0a 0a 20 20 73 74 72 75 63 74 0a |ze */.. struct.| 0008cf50 20 20 5c 7b 20 3c 73 70 72 69 74 65 5f 61 72 65 | \{ <sprite_are| 0008cf60 61 69 6e 66 6f 3e 20 2a 73 70 72 69 74 65 61 72 |ainfo> *spritear| 0008cf70 65 61 3b 20 2f 2a 20 3c 4e 55 4c 4c 3e 20 2a 2f |ea; /* <NULL> */| 0008cf80 0a 20 20 20 20 3c 73 70 72 69 74 65 5f 68 65 61 |. <sprite_hea| 0008cf90 64 65 72 3e 20 20 20 2a 73 70 72 69 74 65 3b 0a |der> *sprite;.| 0008cfa0 20 20 7d 20 6b 6e 6f 62 3b 20 20 20 20 20 20 2f | } knob; /| 0008cfb0 2a 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 |* Not currently | 0008cfc0 75 73 65 64 20 2a 2f 0a 0a 20 20 73 74 72 75 63 |used */.. struc| 0008cfd0 74 0a 20 20 5c 7b 20 69 6e 74 20 20 76 65 72 74 |t. \{ int vert| 0008cfe0 69 63 61 6c 20 20 3a 31 3b 20 20 2f 2a 20 4f 72 |ical :1; /* Or| 0008cff0 69 65 6e 74 61 74 69 6f 6e 20 2a 2f 0a 20 20 20 |ientation */. | 0008d000 20 69 6e 74 20 20 72 67 62 20 20 20 20 20 20 20 | int rgb | 0008d010 3a 31 3b 20 20 2f 2a 20 43 6f 6c 6f 75 72 73 20 |:1; /* Colours | 0008d020 61 72 65 20 52 47 42 20 2a 2f 0a 20 20 20 20 69 |are RGB */. i| 0008d030 6e 74 20 20 64 72 61 67 67 69 6e 67 20 20 3a 31 |nt dragging :1| 0008d040 3b 20 20 2f 2a 20 43 75 72 72 65 6e 74 6c 79 20 |; /* Currently | 0008d050 64 72 61 67 67 69 6e 67 20 2a 2f 0a 20 20 20 20 |dragging */. | 0008d060 69 6e 74 20 20 63 6c 69 63 6b 73 74 6f 70 20 3a |int clickstop :| 0008d070 31 3b 20 20 2f 2a 20 44 72 61 67 20 77 68 6f 6c |1; /* Drag whol| 0008d080 65 20 75 6e 69 74 73 20 2a 2f 0a 20 20 20 20 69 |e units */. i| 0008d090 6e 74 20 20 72 65 73 65 72 76 65 64 20 20 3a 32 |nt reserved :2| 0008d0a0 38 3b 20 2f 2a 20 5a 65 72 6f 20 2a 2f 0a 20 20 |8; /* Zero */. | 0008d0b0 7d 20 66 6c 61 67 73 3b 0a 0a 20 20 69 6e 74 20 |} flags;.. int | 0008d0c0 28 20 2a 75 70 64 61 74 65 20 29 28 20 76 6f 69 |( *update )( voi| 0008d0d0 64 20 2a 2c 20 76 6f 69 64 20 2a 20 29 3b 0a 20 |d *, void * );. | 0008d0e0 20 69 6e 74 20 72 65 66 65 72 65 6e 63 65 3b 20 | int reference; | 0008d0f0 20 20 20 20 20 20 20 2f 2a 20 57 68 61 74 65 76 | /* Whatev| 0008d100 65 72 20 79 6f 75 20 6c 69 6b 65 20 2a 2f 0a 7d |er you like */.}| 0008d110 0a 0a 49 66 20 2f 63 6c 69 63 6b 73 74 6f 70 2f |..If /clickstop/| 0008d120 20 69 73 20 73 65 74 20 74 68 61 74 20 6d 65 61 | is set that mea| 0008d130 6e 73 20 74 68 61 74 20 74 68 65 20 73 6c 69 64 |ns that the slid| 0008d140 65 72 20 69 73 20 6f 6e 6c 79 20 72 65 64 72 61 |er is only redra| 0008d150 77 6e 20 77 68 65 6e 20 69 74 73 20 76 61 6c 75 |wn when its valu| 0008d160 65 20 69 6e 20 75 73 65 72 20 75 6e 69 74 73 20 |e in user units | 0008d170 28 69 65 20 62 65 74 77 65 65 6e 20 2f 6c 69 6d |(ie between /lim| 0008d180 69 74 73 2f 29 20 63 68 61 6e 67 65 73 2e 20 4f |its/) changes. O| 0008d190 74 68 65 72 77 69 73 65 2c 20 69 74 20 63 61 6e |therwise, it can| 0008d1a0 20 62 65 20 64 72 61 67 67 65 64 20 61 20 70 69 | be dragged a pi| 0008d1b0 78 65 6c 20 61 74 20 61 20 74 69 6d 65 2e 0a 0a |xel at a time...| 0008d1c0 2f 75 70 64 61 74 65 2f 20 69 73 20 61 20 66 75 |/update/ is a fu| 0008d1d0 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 77 68 |nction called wh| 0008d1e0 65 6e 65 76 65 72 20 74 68 65 20 73 6c 69 64 65 |enever the slide| 0008d1f0 72 20 76 61 6c 75 65 20 69 6e 20 75 73 65 72 20 |r value in user | 0008d200 75 6e 69 74 73 20 63 68 61 6e 67 65 73 2e 20 49 |units changes. I| 0008d210 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e |ts first argumen| 0008d220 74 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 |t is a pointer t| 0008d230 6f 20 74 68 65 20 73 6c 69 64 65 72 5f 69 6e 66 |o the slider_inf| 0008d240 6f 20 73 74 72 75 63 74 75 72 65 2e 20 54 68 65 |o structure. The| 0008d250 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 | second argument| 0008d260 20 69 73 20 70 61 73 73 65 64 20 74 68 72 6f 75 | is passed throu| 0008d270 67 68 20 66 72 6f 6d 20 3c 53 6c 69 64 65 72 5f |gh from <Slider_| 0008d280 53 65 74 56 61 6c 75 65 3e 20 6f 72 20 3c 53 6c |SetValue> or <Sl| 0008d290 69 64 65 72 5f 44 72 61 67 3e 2e 20 49 74 20 73 |ider_Drag>. It s| 0008d2a0 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 6e 6f 6e |hould return non| 0008d2b0 2d 7a 65 72 6f 20 74 6f 20 73 74 6f 70 20 74 68 |-zero to stop th| 0008d2c0 65 20 64 72 61 67 2e 00 44 41 54 41 2b 01 00 00 |e drag..DATA+...| 0008d2d0 53 6c 69 64 65 72 5f 52 65 61 64 56 61 6c 75 65 |Slider_ReadValue| 0008d2e0 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 53 6c 69 |.Syntax:.int Sli| 0008d2f0 64 65 72 5f 52 65 61 64 56 61 6c 75 65 20 28 3c |der_ReadValue (<| 0008d300 73 6c 69 64 65 72 5f 69 6e 66 6f 3e 20 2a 73 6c |slider_info> *sl| 0008d310 69 64 65 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c |ider);.Header:.<| 0008d320 44 65 73 6b 4c 69 62 3a 53 6c 69 64 65 72 2e 68 |DeskLib:Slider.h| 0008d330 3d 3e 53 6c 69 64 65 72 3e 0a 0a 52 65 74 75 72 |=>Slider>..Retur| 0008d340 6e 73 3a 09 53 6c 69 64 65 72 20 76 61 6c 75 65 |ns:.Slider value| 0008d350 20 69 6e 20 75 73 65 72 20 75 6e 69 74 73 2e 0a | in user units..| 0008d360 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 0008d370 65 61 64 73 20 74 68 65 20 70 6f 73 69 74 69 6f |eads the positio| 0008d380 6e 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 |n of the specifi| 0008d390 65 64 20 73 6c 69 64 65 72 2c 20 63 6f 6e 76 65 |ed slider, conve| 0008d3a0 72 74 65 64 20 69 6e 74 6f 20 75 73 65 72 20 75 |rted into user u| 0008d3b0 6e 69 74 73 20 62 65 74 77 65 65 6e 20 7b 2f 7d |nits between {/}| 0008d3c0 73 6c 69 64 65 72 2d 3e 6c 69 6d 69 74 73 2e 6d |slider->limits.m| 0008d3d0 69 6e 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 73 6c 69 |in{/} and {/}sli| 0008d3e0 64 65 72 2d 3e 6c 69 6d 69 74 73 2e 6d 61 78 7b |der->limits.max{| 0008d3f0 2f 7d 2e 00 44 41 54 41 6c 01 00 00 53 6c 69 64 |/}..DATAl...Slid| 0008d400 65 72 5f 52 65 64 72 61 77 0a 53 79 6e 74 61 78 |er_Redraw.Syntax| 0008d410 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 6c |:.<os_error> *Sl| 0008d420 69 64 65 72 5f 52 65 64 72 61 77 20 28 3c 73 6c |ider_Redraw (<sl| 0008d430 69 64 65 72 5f 69 6e 66 6f 3e 20 2a 73 6c 69 64 |ider_info> *slid| 0008d440 65 72 2c 20 3c 77 69 6d 70 5f 72 65 63 74 3e 20 |er, <wimp_rect> | 0008d450 2a 63 6c 69 70 29 3b 0a 48 65 61 64 65 72 3a 09 |*clip);.Header:.| 0008d460 3c 44 65 73 6b 4c 69 62 3a 53 6c 69 64 65 72 2e |<DeskLib:Slider.| 0008d470 68 3d 3e 53 6c 69 64 65 72 3e 0a 0a 52 65 74 75 |h=>Slider>..Retu| 0008d480 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0008d490 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 0008d4a0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 0008d4b0 66 75 6e 63 74 69 6f 6e 20 72 65 64 72 61 77 73 |function redraws| 0008d4c0 20 61 20 73 6c 69 64 65 72 20 69 63 6f 6e 2e 20 | a slider icon. | 0008d4d0 2f 73 6c 69 64 65 72 2f 20 63 6f 6e 74 61 69 6e |/slider/ contain| 0008d4e0 73 20 74 68 65 20 73 6c 69 64 65 72 20 69 6e 66 |s the slider inf| 0008d4f0 6f 20 61 6e 64 20 2f 63 6c 69 70 2f 20 63 6f 6e |o and /clip/ con| 0008d500 74 61 69 6e 73 20 74 68 65 20 61 72 65 61 20 6f |tains the area o| 0008d510 66 20 73 63 72 65 65 6e 20 62 65 69 6e 67 20 72 |f screen being r| 0008d520 65 64 72 61 77 6e 20 28 69 6e 20 4f 53 20 63 6f |edrawn (in OS co| 0008d530 6f 72 64 73 29 2e 20 43 61 6c 6c 20 74 68 69 73 |ords). Call this| 0008d540 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 79 | function from y| 0008d550 6f 75 72 20 72 65 64 72 61 77 20 6c 6f 6f 70 2e |our redraw loop.| 0008d560 44 41 54 41 2b 02 00 00 53 6c 69 64 65 72 5f 53 |DATA+...Slider_S| 0008d570 65 74 56 61 6c 75 65 0a 53 79 6e 74 61 78 3a 09 |etValue.Syntax:.| 0008d580 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 6c 69 64 |<os_error> *Slid| 0008d590 65 72 5f 53 65 74 56 61 6c 75 65 20 28 3c 73 6c |er_SetValue (<sl| 0008d5a0 69 64 65 72 5f 69 6e 66 6f 3e 20 2a 73 6c 69 64 |ider_info> *slid| 0008d5b0 65 72 2c 20 69 6e 74 20 76 61 6c 75 65 2c 20 69 |er, int value, i| 0008d5c0 6e 74 20 2a 76 61 6c 75 65 73 65 74 2c 20 76 6f |nt *valueset, vo| 0008d5d0 69 64 20 2a 72 65 66 29 3b 0a 48 65 61 64 65 72 |id *ref);.Header| 0008d5e0 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 6c 69 64 65 |:.<DeskLib:Slide| 0008d5f0 72 2e 68 3d 3e 53 6c 69 64 65 72 3e 0a 0a 52 65 |r.h=>Slider>..Re| 0008d600 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 0008d610 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 0008d620 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 0008d630 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 |s function sets | 0008d640 2f 73 6c 69 64 65 72 2f 20 74 6f 20 2f 76 61 6c |/slider/ to /val| 0008d650 75 65 2f 20 28 69 6e 20 75 73 65 72 20 75 6e 69 |ue/ (in user uni| 0008d660 74 73 29 2e 20 49 66 20 74 68 65 20 73 6c 69 64 |ts). If the slid| 0008d670 65 72 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 |er is currently | 0008d680 62 65 69 6e 67 20 64 72 61 67 67 65 64 2c 20 74 |being dragged, t| 0008d690 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e |hen the function| 0008d6a0 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2e 20 54 | does nothing. T| 0008d6b0 68 65 20 75 70 64 61 74 65 20 66 75 6e 63 74 69 |he update functi| 0008d6c0 6f 6e 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 |on will be calle| 0008d6d0 64 20 28 77 69 74 68 20 2f 72 65 66 2f 29 20 69 |d (with /ref/) i| 0008d6e0 66 20 74 68 65 20 76 61 6c 75 65 20 68 61 73 20 |f the value has | 0008d6f0 63 68 61 6e 67 65 64 2e 20 49 66 20 2f 76 61 6c |changed. If /val| 0008d700 75 65 2f 20 69 73 20 6f 75 74 73 69 64 65 20 74 |ue/ is outside t| 0008d710 68 65 20 6c 69 6d 69 74 73 20 74 68 65 6e 20 69 |he limits then i| 0008d720 74 20 77 69 6c 6c 20 62 65 20 63 6c 61 6d 70 65 |t will be clampe| 0008d730 64 20 74 6f 20 74 68 65 6d 2e 20 49 66 20 2f 76 |d to them. If /v| 0008d740 61 6c 75 65 73 65 74 2f 20 69 73 20 6e 6f 74 20 |alueset/ is not | 0008d750 3c 4e 55 4c 4c 3e 20 74 68 65 6e 20 69 74 20 74 |<NULL> then it t| 0008d760 68 65 20 61 63 74 75 61 6c 20 76 61 6c 75 65 20 |he actual value | 0008d770 73 65 74 20 77 69 6c 6c 20 62 65 20 72 65 74 75 |set will be retu| 0008d780 72 6e 65 64 20 69 6e 20 69 74 2e 00 44 49 52 24 |rned in it..DIR$| 0008d790 10 01 00 00 10 01 00 00 9c d8 08 00 46 fd ff ff |............F...| 0008d7a0 09 22 de 22 56 00 00 00 13 00 00 00 00 00 00 00 |."."V...........| 0008d7b0 61 72 69 74 68 5f 00 00 f4 d8 08 00 46 fd ff ff |arith_......F...| 0008d7c0 48 f5 dd 22 ed 00 00 00 13 00 00 00 00 00 00 00 |H.."............| 0008d7d0 64 61 74 61 5f 00 00 00 e4 d9 08 00 46 fd ff ff |data_.......F...| 0008d7e0 68 6f dd 22 6f 00 00 00 13 00 00 00 00 00 00 00 |ho."o...........| 0008d7f0 65 6e 76 5f 00 00 00 00 54 da 08 00 46 fd ff ff |env_....T...F...| 0008d800 0e cb de 22 df 02 00 00 13 00 00 00 00 00 00 00 |..."............| 0008d810 6d 62 63 68 61 72 5f 00 34 dd 08 00 46 fd ff ff |mbchar_.4...F...| 0008d820 ad cf de 22 58 00 00 00 13 00 00 00 00 00 00 00 |..."X...........| 0008d830 6d 62 73 74 72 5f 00 00 8c dd 08 00 46 fd ff ff |mbstr_......F...| 0008d840 43 62 c5 22 51 01 00 00 13 00 00 00 00 00 00 00 |Cb."Q...........| 0008d850 6d 65 6d 5f 00 00 00 00 e0 de 08 00 46 fd ff ff |mem_........F...| 0008d860 1c 44 c5 22 a0 00 00 00 13 00 00 00 00 00 00 00 |.D."............| 0008d870 72 61 6e 64 5f 00 00 00 80 df 08 00 46 fd ff ff |rand_.......F...| 0008d880 74 0c b6 22 74 00 00 00 13 00 00 00 00 00 00 00 |t.."t...........| 0008d890 73 74 72 63 6f 6e 76 5f 00 00 00 00 44 41 54 41 |strconv_....DATA| 0008d8a0 56 00 00 00 41 72 69 74 68 6d 65 74 69 63 20 46 |V...Arithmetic F| 0008d8b0 75 6e 63 74 69 6f 6e 73 0a 23 49 6e 64 65 6e 74 |unctions.#Indent| 0008d8c0 20 38 0a 23 54 61 62 6c 65 20 32 20 31 30 0a 3c | 8.#Table 2 10.<| 0008d8d0 61 62 73 3e 0a 3c 64 69 76 3e 0a 3c 6c 61 62 73 |abs>.<div>.<labs| 0008d8e0 3e 0a 3c 6c 64 69 76 3e 0a 23 45 6e 64 54 61 62 |>.<ldiv>.#EndTab| 0008d8f0 6c 65 00 00 44 41 54 41 ed 00 00 00 44 61 74 61 |le..DATA....Data| 0008d900 20 50 72 6f 63 65 73 73 69 6e 67 20 46 75 6e 63 | Processing Func| 0008d910 74 69 6f 6e 73 0a 54 68 65 73 65 20 66 75 6e 63 |tions.These func| 0008d920 74 69 6f 6e 73 20 77 6f 72 6b 20 6f 6e 20 61 72 |tions work on ar| 0008d930 72 61 79 73 20 6f 66 20 6f 62 6a 65 63 74 73 20 |rays of objects | 0008d940 77 68 6f 73 65 20 73 69 7a 65 20 69 73 20 67 69 |whose size is gi| 0008d950 76 65 6e 2e 20 54 68 65 79 20 62 6f 74 68 20 72 |ven. They both r| 0008d960 65 71 75 69 72 65 20 61 6e 20 65 78 74 65 72 6e |equire an extern| 0008d970 61 6c 20 66 75 6e 63 74 69 6f 6e 20 28 64 65 66 |al function (def| 0008d980 69 6e 65 64 20 62 79 20 79 6f 75 29 20 77 68 69 |ined by you) whi| 0008d990 63 68 20 68 61 6e 64 6c 65 73 20 63 6f 6d 70 61 |ch handles compa| 0008d9a0 72 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 73 |ring the objects| 0008d9b0 2e 0a 0a 23 49 6e 64 65 6e 74 20 37 0a 23 54 61 |...#Indent 7.#Ta| 0008d9c0 62 6c 65 20 31 0a 3c 62 73 65 61 72 63 68 3e 0a |ble 1.<bsearch>.| 0008d9d0 3c 71 73 6f 72 74 3e 0a 23 45 6e 64 54 61 62 6c |<qsort>.#EndTabl| 0008d9e0 65 00 00 00 44 41 54 41 6f 00 00 00 45 6e 76 69 |e...DATAo...Envi| 0008d9f0 72 6f 6e 6d 65 6e 74 20 4d 61 6e 61 67 65 6d 65 |ronment Manageme| 0008da00 6e 74 20 46 75 6e 63 74 69 6f 6e 73 0a 23 49 6e |nt Functions.#In| 0008da10 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 31 0a |dent 4.#Table 1.| 0008da20 3c 61 62 6f 72 74 3e 0a 3c 61 74 65 78 69 74 3e |<abort>.<atexit>| 0008da30 0a 3c 65 78 69 74 3e 0a 3c 67 65 74 65 6e 76 3e |.<exit>.<getenv>| 0008da40 0a 3c 73 79 73 74 65 6d 3e 0a 23 45 6e 64 54 61 |.<system>.#EndTa| 0008da50 62 6c 65 00 44 41 54 41 df 02 00 00 4d 75 6c 74 |ble.DATA....Mult| 0008da60 69 62 79 74 65 20 43 68 61 72 61 63 74 65 72 20 |ibyte Character | 0008da70 46 75 6e 63 74 69 6f 6e 73 0a 23 69 6e 64 65 6e |Functions.#inden| 0008da80 74 20 31 33 0a 23 54 61 62 6c 65 20 31 20 31 30 |t 13.#Table 1 10| 0008da90 0a 3c 6d 62 6c 65 6e 3e 0a 3c 6d 62 74 6f 77 63 |.<mblen>.<mbtowc| 0008daa0 3e 0a 3c 77 63 74 6f 6d 62 3e 0a 23 45 6e 64 54 |>.<wctomb>.#EndT| 0008dab0 61 62 6c 65 0a 23 69 6e 64 65 6e 74 20 30 0a 0a |able.#indent 0..| 0008dac0 54 68 65 20 62 65 68 61 76 69 6f 75 72 20 6f 66 |The behaviour of| 0008dad0 20 74 68 65 20 6d 75 6c 74 69 62 79 74 65 20 63 | the multibyte c| 0008dae0 68 61 72 61 63 74 65 72 20 66 75 6e 63 74 69 6f |haracter functio| 0008daf0 6e 73 20 69 73 20 61 66 66 65 63 74 65 64 20 62 |ns is affected b| 0008db00 79 20 74 68 65 20 3c 4c 43 5f 43 54 59 50 45 3e |y the <LC_CTYPE>| 0008db10 20 63 61 74 65 67 6f 72 79 20 6f 66 20 74 68 65 | category of the| 0008db20 20 63 75 72 72 65 6e 74 20 6c 6f 63 61 6c 65 2e | current locale.| 0008db30 20 46 6f 72 20 61 20 73 74 61 74 65 2d 64 65 70 | For a state-dep| 0008db40 65 6e 64 65 6e 74 20 65 6e 63 6f 64 69 6e 67 2c |endent encoding,| 0008db50 20 65 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 69 | each function i| 0008db60 73 20 70 6c 61 63 65 64 20 69 6e 74 6f 20 69 74 |s placed into it| 0008db70 73 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 |s initial state | 0008db80 62 79 20 61 20 63 61 6c 6c 20 66 6f 72 20 77 68 |by a call for wh| 0008db90 69 63 68 20 69 74 73 20 63 68 61 72 61 63 74 65 |ich its characte| 0008dba0 72 20 70 6f 69 6e 74 65 72 20 61 72 67 75 6d 65 |r pointer argume| 0008dbb0 6e 74 2c 20 2f 73 2f 2c 20 69 73 20 61 20 6e 75 |nt, /s/, is a nu| 0008dbc0 6c 6c 20 70 6f 69 6e 74 65 72 2e 20 53 75 62 73 |ll pointer. Subs| 0008dbd0 65 71 75 65 6e 74 20 63 61 6c 6c 73 20 77 69 74 |equent calls wit| 0008dbe0 68 20 2f 73 2f 20 61 73 20 6f 74 68 65 72 20 74 |h /s/ as other t| 0008dbf0 68 61 6e 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 |han a null point| 0008dc00 65 72 20 63 61 75 73 65 20 74 68 65 20 69 6e 74 |er cause the int| 0008dc10 65 72 6e 61 6c 20 73 74 61 74 65 20 6f 66 20 74 |ernal state of t| 0008dc20 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 |he function to b| 0008dc30 65 20 61 6c 74 65 72 65 64 20 61 73 20 6e 65 63 |e altered as nec| 0008dc40 65 73 73 61 72 79 2e 20 41 20 63 61 6c 6c 20 77 |essary. A call w| 0008dc50 69 74 68 20 2f 73 2f 20 61 73 20 61 20 6e 75 6c |ith /s/ as a nul| 0008dc60 6c 20 70 6f 69 6e 74 65 72 20 63 61 75 73 65 73 |l pointer causes| 0008dc70 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 | these functions| 0008dc80 20 74 6f 20 72 65 74 75 72 6e 20 61 20 6e 6f 6e | to return a non| 0008dc90 2d 7a 65 72 6f 20 76 61 6c 75 65 20 69 66 20 65 |-zero value if e| 0008dca0 6e 63 6f 64 69 6e 67 20 68 61 76 65 20 73 74 61 |ncoding have sta| 0008dcb0 74 65 20 64 65 70 65 6e 64 65 6e 63 79 2c 20 61 |te dependency, a| 0008dcc0 6e 64 20 61 20 7a 65 72 6f 20 6f 74 68 65 72 77 |nd a zero otherw| 0008dcd0 69 73 65 2e 20 41 66 74 65 72 20 74 68 65 20 3c |ise. After the <| 0008dce0 4c 43 5f 43 54 59 50 45 3e 20 63 61 74 65 67 6f |LC_CTYPE> catego| 0008dcf0 72 79 20 69 73 20 63 68 61 6e 67 65 64 2c 20 74 |ry is changed, t| 0008dd00 68 65 20 73 68 69 66 74 20 73 74 61 74 65 20 6f |he shift state o| 0008dd10 66 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e |f these function| 0008dd20 73 20 69 73 20 69 6e 64 65 74 65 72 6d 69 6e 61 |s is indetermina| 0008dd30 74 65 2e 00 44 41 54 41 58 00 00 00 4d 75 6c 74 |te..DATAX...Mult| 0008dd40 69 62 79 74 65 20 53 74 72 69 6e 67 20 46 75 6e |ibyte String Fun| 0008dd50 63 74 69 6f 6e 73 0a 23 69 6e 64 65 6e 74 20 36 |ctions.#indent 6| 0008dd60 0a 23 54 61 62 6c 65 20 31 20 31 32 0a 3c 6d 62 |.#Table 1 12.<mb| 0008dd70 73 74 6f 77 63 73 3e 0a 3c 77 63 73 74 6f 6d 62 |stowcs>.<wcstomb| 0008dd80 73 3e 0a 23 45 6e 64 54 61 62 6c 65 44 41 54 41 |s>.#EndTableDATA| 0008dd90 51 01 00 00 4d 65 6d 6f 72 79 20 4d 61 6e 61 67 |Q...Memory Manag| 0008dda0 65 6d 65 6e 74 20 46 75 6e 63 74 69 6f 6e 73 0a |ement Functions.| 0008ddb0 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 |The following fu| 0008ddc0 6e 63 74 69 6f 6e 73 20 61 72 65 20 75 73 65 64 |nctions are used| 0008ddd0 20 66 6f 72 20 61 6c 6c 6f 63 61 74 69 6e 67 20 | for allocating | 0008dde0 73 74 6f 72 61 67 65 20 73 70 61 63 65 20 66 6f |storage space fo| 0008ddf0 72 20 64 61 74 61 2e 20 54 68 65 20 66 75 6e 63 |r data. The func| 0008de00 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 63 61 73 |tions can be cas| 0008de10 74 20 74 6f 20 72 65 74 75 72 6e 20 61 6e 79 20 |t to return any | 0008de20 74 79 70 65 20 6f 66 20 70 6f 69 6e 74 65 72 2e |type of pointer.| 0008de30 20 4e 6f 20 63 68 65 63 6b 69 6e 67 20 69 73 20 | No checking is | 0008de40 64 6f 6e 65 20 77 68 65 6e 20 73 74 6f 72 69 6e |done when storin| 0008de50 67 20 64 61 74 61 20 69 6e 20 74 68 65 20 73 70 |g data in the sp| 0008de60 61 63 65 20 73 6f 20 6d 61 6b 65 20 73 75 72 65 |ace so make sure| 0008de70 20 79 6f 75 20 6f 6e 6c 79 20 73 74 6f 72 65 20 | you only store | 0008de80 64 61 74 61 20 69 6e 20 61 6c 6c 6f 63 61 74 65 |data in allocate| 0008de90 64 20 73 70 61 63 65 21 0a 0a 23 49 6e 64 65 6e |d space!..#Inden| 0008dea0 74 20 31 31 0a 23 54 61 62 6c 65 20 32 20 31 35 |t 11.#Table 2 15| 0008deb0 0a 3c 63 61 6c 6c 6f 63 3e 0a 3c 66 72 65 65 3e |.<calloc>.<free>| 0008dec0 0a 3c 6d 61 6c 6c 6f 63 3e 0a 3c 72 65 61 6c 6c |.<malloc>.<reall| 0008ded0 6f 63 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 00 |oc>.#EndTable...| 0008dee0 44 41 54 41 a0 00 00 00 52 61 6e 64 6f 6d 20 4e |DATA....Random N| 0008def0 75 6d 62 65 72 20 46 75 6e 63 74 69 6f 6e 73 0a |umber Functions.| 0008df00 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 |These functions | 0008df10 61 72 65 20 63 6f 6e 63 65 72 6e 65 64 20 77 69 |are concerned wi| 0008df20 74 68 20 67 65 6e 65 72 61 74 69 6e 67 0a 70 73 |th generating.ps| 0008df30 75 65 64 6f 2d 72 61 6e 64 6f 6d 20 73 65 71 75 |uedo-random sequ| 0008df40 65 6e 63 65 73 20 6f 66 20 76 61 6c 75 65 73 2e |ences of values.| 0008df50 0a 0a 23 49 6e 64 65 6e 74 20 36 0a 23 54 61 62 |..#Indent 6.#Tab| 0008df60 6c 65 20 31 20 31 35 0a 3c 72 61 6e 64 3e 0a 3c |le 1 15.<rand>.<| 0008df70 73 72 61 6e 64 3e 0a 23 45 6e 64 54 61 62 6c 65 |srand>.#EndTable| 0008df80 44 41 54 41 74 00 00 00 53 74 72 69 6e 67 20 43 |DATAt...String C| 0008df90 6f 6e 76 65 72 73 69 6f 6e 20 46 75 6e 63 74 69 |onversion Functi| 0008dfa0 6f 6e 73 0a 23 49 6e 64 65 6e 74 20 36 0a 23 54 |ons.#Indent 6.#T| 0008dfb0 61 62 6c 65 20 33 20 31 32 0a 3c 61 74 6f 66 3e |able 3 12.<atof>| 0008dfc0 0a 3c 61 74 6f 69 3e 0a 3c 61 74 6f 6c 3e 0a 3c |.<atoi>.<atol>.<| 0008dfd0 73 74 72 74 6f 64 3e 0a 3c 73 74 72 74 6f 6c 3e |strtod>.<strtol>| 0008dfe0 0a 3c 73 74 72 74 6f 75 6c 3e 0a 23 45 6e 64 54 |.<strtoul>.#EndT| 0008dff0 61 62 6c 65 44 41 54 41 80 00 00 00 44 65 73 6b |ableDATA....Desk| 0008e000 4c 69 62 3a 53 6f 75 6e 64 2e 68 0a 56 65 72 73 |Lib:Sound.h.Vers| 0008e010 69 6f 6e 3a 20 30 2e 30 31 20 28 32 38 20 4d 61 |ion: 0.01 (28 Ma| 0008e020 72 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a 54 68 |r 1993).#line.Th| 0008e030 69 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 |is header declar| 0008e040 65 73 20 6a 75 73 74 20 6f 6e 65 20 66 75 6e 63 |es just one func| 0008e050 74 69 6f 6e 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 |tion:..{align ce| 0008e060 6e 74 72 65 7d 3c 53 6f 75 6e 64 5f 53 79 73 42 |ntre}<Sound_SysB| 0008e070 65 65 70 3e 44 49 52 24 4c 00 00 00 4c 00 00 00 |eep>DIR$L...L...| 0008e080 c0 e0 08 00 46 fd ff ff ab 0b f3 22 ba 04 00 00 |....F......"....| 0008e090 13 00 00 00 00 00 00 00 70 69 74 63 68 5f 00 00 |........pitch_..| 0008e0a0 7c e5 08 00 46 ff ff ff 5c fe b3 25 88 00 00 00 ||...F...\..%....| 0008e0b0 13 00 00 00 00 00 00 00 53 79 73 42 65 65 70 00 |........SysBeep.| 0008e0c0 44 41 54 41 ba 04 00 00 50 69 74 63 68 20 56 61 |DATA....Pitch Va| 0008e0d0 6c 75 65 73 0a 4f 63 74 61 76 65 09 30 09 31 09 |lues.Octave.0.1.| 0008e0e0 32 09 33 09 34 09 35 09 36 09 37 09 38 0a 4e 6f |2.3.4.5.6.7.8.No| 0008e0f0 74 65 0a 0a 41 09 20 09 30 78 30 43 30 30 09 30 |te..A. .0x0C00.0| 0008e100 78 31 43 30 30 09 30 78 32 43 30 30 09 30 78 33 |x1C00.0x2C00.0x3| 0008e110 43 30 30 09 30 78 34 43 30 30 09 30 78 35 43 30 |C00.0x4C00.0x5C0| 0008e120 30 09 30 78 36 43 30 30 09 30 78 37 43 30 30 0a |0.0x6C00.0x7C00.| 0008e130 09 20 09 20 09 20 09 20 09 30 78 32 39 09 30 78 |. . . . .0x29.0x| 0008e140 35 39 09 30 78 38 39 09 30 78 42 39 09 30 78 45 |59.0x89.0xB9.0xE| 0008e150 39 0a 41 23 09 20 09 30 78 30 44 35 35 09 30 78 |9.A#. .0x0D55.0x| 0008e160 31 44 35 35 09 30 78 32 44 35 35 09 30 78 33 44 |1D55.0x2D55.0x3D| 0008e170 35 35 09 30 78 34 44 35 35 09 30 78 35 44 35 35 |55.0x4D55.0x5D55| 0008e180 09 30 78 36 44 35 35 09 30 78 37 44 35 35 0a 09 |.0x6D55.0x7D55..| 0008e190 20 09 20 09 20 09 20 09 30 78 32 44 09 30 78 35 | . . . .0x2D.0x5| 0008e1a0 44 09 30 78 38 44 09 30 78 42 44 09 30 78 45 44 |D.0x8D.0xBD.0xED| 0008e1b0 0a 42 09 20 09 30 78 30 45 41 41 09 30 78 31 45 |.B. .0x0EAA.0x1E| 0008e1c0 41 41 09 30 78 32 45 41 41 09 30 78 33 45 41 41 |AA.0x2EAA.0x3EAA| 0008e1d0 09 30 78 34 45 41 41 09 30 78 35 45 41 41 09 30 |.0x4EAA.0x5EAA.0| 0008e1e0 78 36 45 41 41 09 30 78 37 45 41 41 0a 09 20 09 |x6EAA.0x7EAA.. .| 0008e1f0 20 09 20 09 30 78 30 31 09 30 78 33 31 09 30 78 | . .0x01.0x31.0x| 0008e200 36 31 09 30 78 39 31 09 30 78 43 31 09 30 78 46 |61.0x91.0xC1.0xF| 0008e210 31 0a 43 09 20 09 30 78 31 30 30 30 09 30 78 32 |1.C. .0x1000.0x2| 0008e220 30 30 30 09 30 78 33 30 30 30 09 30 78 34 30 30 |000.0x3000.0x400| 0008e230 30 09 30 78 35 30 30 30 09 30 78 36 30 30 30 09 |0.0x5000.0x6000.| 0008e240 30 78 37 30 30 30 0a 09 20 09 20 09 20 09 30 78 |0x7000.. . . .0x| 0008e250 30 35 09 30 78 33 35 09 30 78 36 35 09 30 78 39 |05.0x35.0x65.0x9| 0008e260 35 09 30 78 43 35 09 30 78 46 35 0a 43 23 09 30 |5.0xC5.0xF5.C#.0| 0008e270 78 30 31 35 35 09 30 78 31 31 35 35 09 30 78 32 |x0155.0x1155.0x2| 0008e280 31 35 35 09 30 78 33 31 35 35 09 30 78 34 31 35 |155.0x3155.0x415| 0008e290 35 09 30 78 35 31 35 35 09 30 78 36 31 35 35 09 |5.0x5155.0x6155.| 0008e2a0 30 78 37 31 35 35 0a 09 20 09 20 09 20 09 30 78 |0x7155.. . . .0x| 0008e2b0 30 39 09 30 78 33 39 09 30 78 36 39 09 30 78 39 |09.0x39.0x69.0x9| 0008e2c0 39 09 30 78 43 39 09 30 78 46 39 0a 44 09 30 78 |9.0xC9.0xF9.D.0x| 0008e2d0 30 32 41 41 09 30 78 31 32 41 41 09 30 78 32 32 |02AA.0x12AA.0x22| 0008e2e0 41 41 09 30 78 33 32 41 41 09 30 78 34 32 41 41 |AA.0x32AA.0x42AA| 0008e2f0 09 30 78 35 32 41 41 09 30 78 36 32 41 41 09 30 |.0x52AA.0x62AA.0| 0008e300 78 37 32 41 41 0a 09 20 09 20 09 20 09 30 78 30 |x72AA.. . . .0x0| 0008e310 44 09 30 78 33 44 09 30 78 36 44 09 30 78 39 44 |D.0x3D.0x6D.0x9D| 0008e320 09 30 78 43 44 09 30 78 46 44 0a 44 23 09 30 78 |.0xCD.0xFD.D#.0x| 0008e330 30 34 30 30 09 30 78 31 34 30 30 09 30 78 32 34 |0400.0x1400.0x24| 0008e340 30 30 09 30 78 33 34 30 30 09 30 78 34 34 30 30 |00.0x3400.0x4400| 0008e350 09 30 78 35 34 30 30 09 30 78 36 34 30 30 09 30 |.0x5400.0x6400.0| 0008e360 78 37 34 30 30 0a 09 20 09 20 09 20 09 30 78 31 |x7400.. . . .0x1| 0008e370 31 09 30 78 34 31 09 30 78 37 31 09 30 78 41 31 |1.0x41.0x71.0xA1| 0008e380 09 30 78 44 31 0a 45 09 30 78 30 35 35 35 09 30 |.0xD1.E.0x0555.0| 0008e390 78 31 35 35 35 09 30 78 32 35 35 35 09 30 78 33 |x1555.0x2555.0x3| 0008e3a0 35 35 35 09 30 78 34 35 35 35 09 30 78 35 35 35 |555.0x4555.0x555| 0008e3b0 35 09 30 78 36 35 35 35 09 30 78 37 35 35 35 0a |5.0x6555.0x7555.| 0008e3c0 09 20 09 20 09 20 09 30 78 31 35 09 30 78 34 35 |. . . .0x15.0x45| 0008e3d0 09 30 78 37 35 09 30 78 41 35 09 30 78 44 35 0a |.0x75.0xA5.0xD5.| 0008e3e0 46 09 30 78 30 36 41 41 09 30 78 31 36 41 41 09 |F.0x06AA.0x16AA.| 0008e3f0 30 78 32 36 41 41 09 30 78 33 36 41 41 09 30 78 |0x26AA.0x36AA.0x| 0008e400 34 36 41 41 09 30 78 35 36 41 41 09 30 78 36 36 |46AA.0x56AA.0x66| 0008e410 41 41 09 30 78 37 36 41 41 0a 09 20 09 20 09 20 |AA.0x76AA.. . . | 0008e420 09 30 78 31 39 09 30 78 34 39 09 30 78 37 39 09 |.0x19.0x49.0x79.| 0008e430 30 78 41 39 09 30 78 44 39 0a 46 23 09 30 78 30 |0xA9.0xD9.F#.0x0| 0008e440 38 30 30 09 30 78 31 38 30 30 09 30 78 32 38 30 |800.0x1800.0x280| 0008e450 30 09 30 78 33 38 30 30 09 30 78 34 38 30 30 09 |0.0x3800.0x4800.| 0008e460 30 78 35 38 30 30 09 30 78 36 38 30 30 09 30 78 |0x5800.0x6800.0x| 0008e470 37 38 30 30 0a 09 20 09 20 09 20 09 30 78 31 44 |7800.. . . .0x1D| 0008e480 09 30 78 34 44 09 30 78 37 44 09 30 78 41 44 09 |.0x4D.0x7D.0xAD.| 0008e490 30 78 44 44 0a 47 09 30 78 30 39 35 35 09 30 78 |0xDD.G.0x0955.0x| 0008e4a0 31 39 35 35 09 30 78 32 39 35 35 09 30 78 33 39 |1955.0x2955.0x39| 0008e4b0 35 35 09 30 78 34 39 35 35 09 30 78 35 39 35 35 |55.0x4955.0x5955| 0008e4c0 09 30 78 36 39 35 35 09 30 78 37 39 35 35 0a 09 |.0x6955.0x7955..| 0008e4d0 20 09 20 09 20 09 30 78 32 31 09 30 78 35 31 09 | . . .0x21.0x51.| 0008e4e0 30 78 38 31 09 30 78 42 31 09 30 78 45 31 0a 47 |0x81.0xB1.0xE1.G| 0008e4f0 23 09 30 78 30 41 41 41 09 30 78 31 41 41 41 09 |#.0x0AAA.0x1AAA.| 0008e500 30 78 32 41 41 41 09 30 78 33 41 41 41 09 30 78 |0x2AAA.0x3AAA.0x| 0008e510 34 41 41 41 09 30 78 35 41 41 41 09 30 78 36 41 |4AAA.0x5AAA.0x6A| 0008e520 41 41 09 30 78 37 41 41 41 0a 09 20 09 20 09 20 |AA.0x7AAA.. . . | 0008e530 09 30 78 32 35 09 30 78 35 35 09 30 78 38 35 09 |.0x25.0x55.0x85.| 0008e540 30 78 42 35 09 30 78 45 35 0a 0a 4d 69 64 64 6c |0xB5.0xE5..Middl| 0008e550 65 20 43 20 69 73 20 74 68 65 20 43 20 69 6e 20 |e C is the C in | 0008e560 6f 63 74 61 76 65 20 34 20 28 30 78 34 30 30 30 |octave 4 (0x4000| 0008e570 20 6f 72 20 30 78 33 35 29 2e 00 00 44 41 54 41 | or 0x35)...DATA| 0008e580 88 00 00 00 53 6f 75 6e 64 5f 53 79 73 42 65 65 |....Sound_SysBee| 0008e590 70 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 53 |p.Syntax:.void S| 0008e5a0 6f 75 6e 64 5f 53 79 73 42 65 65 70 20 28 76 6f |ound_SysBeep (vo| 0008e5b0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |id);.Header:.<De| 0008e5c0 73 6b 4c 69 62 3a 53 6f 75 6e 64 2e 68 3d 3e 53 |skLib:Sound.h=>S| 0008e5d0 6f 75 6e 64 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |ound>..This func| 0008e5e0 74 69 6f 6e 20 73 6f 75 6e 64 73 20 74 68 65 20 |tion sounds the | 0008e5f0 73 79 73 74 65 6d 20 62 65 65 70 20 28 56 44 55 |system beep (VDU| 0008e600 20 37 29 2e 44 41 54 41 48 01 00 00 53 70 6c 69 | 7).DATAH...Spli| 0008e610 74 50 61 74 68 6e 61 6d 65 0a 53 79 6e 74 61 78 |tPathname.Syntax| 0008e620 3a 09 76 6f 69 64 20 53 70 6c 69 74 50 61 74 68 |:.void SplitPath| 0008e630 6e 61 6d 65 20 28 63 68 61 72 20 2a 70 61 74 68 |name (char *path| 0008e640 2c 0a 20 20 20 20 20 20 20 20 20 63 68 61 72 20 |,. char | 0008e650 2a 64 69 72 2c 20 63 68 61 72 20 2a 6c 65 61 66 |*dir, char *leaf| 0008e660 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 0008e670 4c 69 62 3a 4c 69 62 2e 68 3d 3e 4c 69 62 3e 0a |Lib:Lib.h=>Lib>.| 0008e680 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 0008e690 70 6c 69 74 73 20 74 68 65 20 70 61 74 68 6e 61 |plits the pathna| 0008e6a0 6d 65 20 69 6e 20 2f 70 61 74 68 2f 20 69 6e 74 |me in /path/ int| 0008e6b0 6f 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 |o directory name| 0008e6c0 20 61 6e 64 20 6c 65 61 66 20 6e 61 6d 65 20 61 | and leaf name a| 0008e6d0 6e 64 20 73 74 6f 72 65 73 20 74 68 65 6d 20 69 |nd stores them i| 0008e6e0 6e 20 2f 64 69 72 2f 20 61 6e 64 20 2f 6c 65 61 |n /dir/ and /lea| 0008e6f0 66 2f 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e |f/ respectively.| 0008e700 20 45 69 74 68 65 72 20 2f 64 69 72 2f 20 6f 72 | Either /dir/ or| 0008e710 20 2f 6c 65 61 66 2f 20 6d 61 79 20 62 65 20 3c | /leaf/ may be <| 0008e720 4e 55 4c 4c 3e 2c 20 69 6e 20 77 68 69 63 68 20 |NULL>, in which | 0008e730 63 61 73 65 20 74 68 61 74 20 70 61 72 74 20 69 |case that part i| 0008e740 73 20 64 69 73 63 61 72 64 65 64 2e 44 41 54 41 |s discarded.DATA| 0008e750 8e 01 00 00 73 70 72 69 6e 74 66 0a 53 79 6e 74 |....sprintf.Synt| 0008e760 61 78 3a 09 69 6e 74 20 73 70 72 69 6e 74 66 20 |ax:.int sprintf | 0008e770 28 63 68 61 72 20 2a 6f 75 74 2c 20 63 68 61 72 |(char *out, char| 0008e780 20 2a 66 6f 72 6d 61 74 2c 20 2e 2e 2e 29 3b 0a | *format, ...);.| 0008e790 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 |Header:.<stdio.h| 0008e7a0 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e |=>stdio>..Return| 0008e7b0 73 3a 09 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 |s:.The number of| 0008e7c0 20 63 68 61 72 61 63 74 65 72 73 20 77 72 69 74 | characters writ| 0008e7d0 74 65 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ten...This funct| 0008e7e0 69 6f 6e 20 77 72 69 74 65 73 20 6f 75 74 70 75 |ion writes outpu| 0008e7f0 74 20 69 6e 74 6f 20 74 68 65 20 73 74 72 69 6e |t into the strin| 0008e800 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |g pointed to by | 0008e810 2f 6f 75 74 2f 20 75 6e 64 65 72 20 63 6f 6e 74 |/out/ under cont| 0008e820 72 6f 6c 20 6f 66 20 74 68 65 20 3c 66 6f 72 6d |rol of the <form| 0008e830 61 74 20 73 74 72 69 6e 67 3d 3e 70 66 6f 72 6d |at string=>pform| 0008e840 5f 3e 2e 0a 0a 49 6e 20 6f 70 65 72 61 74 69 6f |_>...In operatio| 0008e850 6e 20 69 74 20 69 73 20 73 69 6d 69 6c 61 72 20 |n it is similar | 0008e860 74 6f 20 3c 66 70 72 69 6e 74 66 3e 2c 20 62 75 |to <fprintf>, bu| 0008e870 74 20 6f 75 74 70 75 74 20 69 73 20 64 69 72 65 |t output is dire| 0008e880 63 74 65 64 20 74 6f 20 61 20 73 74 72 69 6e 67 |cted to a string| 0008e890 20 69 6e 73 74 65 61 64 20 6f 66 20 74 6f 20 61 | instead of to a| 0008e8a0 20 73 74 72 65 61 6d 2e 20 54 68 65 20 74 65 72 | stream. The ter| 0008e8b0 6d 69 6e 61 74 69 6e 67 20 6e 75 6c 6c 20 62 79 |minating null by| 0008e8c0 74 65 20 69 73 20 61 64 64 65 64 20 61 75 74 6f |te is added auto| 0008e8d0 6d 61 74 69 63 61 6c 6c 79 2e 00 00 44 41 54 41 |matically...DATA| 0008e8e0 84 00 00 00 73 70 72 69 74 65 0a 54 68 69 73 20 |....sprite.This | 0008e8f0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 0008e900 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 |in <DeskLib:Spri| 0008e910 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e |te.h=>Sprite_DL>| 0008e920 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 0008e930 61 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 |as a pointer to | 0008e940 74 79 70 65 20 7b 2f 7d 73 74 72 75 63 74 20 3c |type {/}struct <| 0008e950 73 70 72 69 74 65 5f 69 6e 66 6f 3e 7b 2f 7d 2e |sprite_info>{/}.| 0008e960 44 41 54 41 d3 01 00 00 73 70 72 69 74 65 6d 65 |DATA....spriteme| 0008e970 6d 5f 66 6c 61 67 73 0a 54 68 69 73 20 65 6e 75 |m_flags.This enu| 0008e980 6d 65 72 61 74 65 64 20 74 79 70 65 20 69 73 20 |merated type is | 0008e990 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 0008e9a0 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 |Lib:Sprite.h=>Sp| 0008e9b0 72 69 74 65 5f 44 4c 3e 2e 20 49 74 20 63 6f 6e |rite_DL>. It con| 0008e9c0 74 61 69 6e 73 20 64 65 74 61 69 6c 73 20 6f 66 |tains details of| 0008e9d0 20 77 68 61 74 20 74 79 70 65 20 6f 66 20 73 70 | what type of sp| 0008e9e0 72 69 74 65 20 79 6f 75 20 77 61 6e 74 2e 0a 7b |rite you want..{| 0008e9f0 77 72 61 70 20 6f 66 66 7d 0a 5c 7b 0a 20 20 73 |wrap off}.\{. s| 0008ea00 70 72 69 74 65 5f 48 41 53 4e 4f 4d 41 53 4b 50 |prite_HASNOMASKP| 0008ea10 41 4c 09 3d 20 30 78 30 30 2c 09 2f 2a 20 53 70 |AL.= 0x00,./* Sp| 0008ea20 72 69 74 65 20 68 61 73 20 6e 6f 20 6d 61 73 6b |rite has no mask| 0008ea30 20 6f 72 20 70 61 6c 65 74 74 65 20 2a 2f 0a 20 | or palette */. | 0008ea40 20 73 70 72 69 74 65 5f 48 41 53 4e 4f 50 41 4c | sprite_HASNOPAL| 0008ea50 4d 41 53 4b 09 3d 20 30 78 30 30 2c 0a 20 20 73 |MASK.= 0x00,. s| 0008ea60 70 72 69 74 65 5f 48 41 53 4d 41 53 4b 09 3d 20 |prite_HASMASK.= | 0008ea70 30 78 30 31 2c 09 2f 2a 20 53 70 72 69 74 65 20 |0x01,./* Sprite | 0008ea80 68 61 73 20 61 20 6d 61 73 6b 20 6f 6e 6c 79 20 |has a mask only | 0008ea90 20 20 20 20 20 20 20 2a 2f 0a 20 20 73 70 72 69 | */. spri| 0008eaa0 74 65 5f 48 41 53 50 41 4c 09 09 3d 20 30 78 30 |te_HASPAL..= 0x0| 0008eab0 32 2c 09 2f 2a 20 53 70 72 69 74 65 20 68 61 73 |2,./* Sprite has| 0008eac0 20 61 20 70 61 6c 65 74 74 65 20 6f 6e 6c 79 20 | a palette only | 0008ead0 20 20 20 20 2a 2f 0a 20 20 73 70 72 69 74 65 5f | */. sprite_| 0008eae0 48 41 53 4d 41 53 4b 50 41 4c 09 3d 20 30 78 30 |HASMASKPAL.= 0x0| 0008eaf0 33 2c 09 2f 2a 20 48 61 73 20 62 6f 74 68 20 6d |3,./* Has both m| 0008eb00 61 73 6b 20 61 6e 64 20 70 61 6c 65 74 74 65 20 |ask and palette | 0008eb10 20 20 20 20 2a 2f 0a 20 20 73 70 72 69 74 65 5f | */. sprite_| 0008eb20 48 41 53 50 41 4c 4d 41 53 4b 09 3d 20 30 78 30 |HASPALMASK.= 0x0| 0008eb30 33 0a 7d 00 44 49 52 24 4c 00 00 00 4c 00 00 00 |3.}.DIR$L...L...| 0008eb40 80 eb 08 00 46 ff ff ff de 31 d5 25 d7 00 00 00 |....F....1.%....| 0008eb50 13 00 00 00 00 00 00 00 53 59 53 54 45 4d 00 00 |........SYSTEM..| 0008eb60 58 ec 08 00 46 ff ff ff 73 36 d5 25 b4 00 00 00 |X...F...s6.%....| 0008eb70 13 00 00 00 00 00 00 00 57 49 4d 50 00 00 00 00 |........WIMP....| 0008eb80 44 41 54 41 d7 00 00 00 73 70 72 69 74 65 70 6f |DATA....spritepo| 0008eb90 6f 6c 5f 53 59 53 54 45 4d 0a 54 68 69 73 20 6d |ol_SYSTEM.This m| 0008eba0 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 0008ebb0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 |in <DeskLib:Spri| 0008ebc0 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e |te.h=>Sprite_DL>| 0008ebd0 2e 20 57 68 65 6e 20 61 20 73 70 72 69 74 65 20 |. When a sprite | 0008ebe0 61 72 65 61 20 69 73 20 72 65 71 75 69 72 65 64 |area is required| 0008ebf0 2c 20 74 68 69 73 20 63 61 6e 20 62 65 20 75 73 |, this can be us| 0008ec00 65 64 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 |ed to access the| 0008ec10 20 53 79 73 74 65 6d 20 73 70 72 69 74 65 20 61 | System sprite a| 0008ec20 72 65 61 2e 20 50 4c 45 41 53 45 20 44 4f 20 4e |rea. PLEASE DO N| 0008ec30 4f 54 20 55 53 45 20 53 59 53 54 45 4d 20 53 50 |OT USE SYSTEM SP| 0008ec40 52 49 54 45 53 2e 20 50 4c 45 41 53 45 2e 0a 0a |RITES. PLEASE...| 0008ec50 50 4c 45 41 53 45 2e 00 44 41 54 41 b4 00 00 00 |PLEASE..DATA....| 0008ec60 73 70 72 69 74 65 70 6f 6f 6c 5f 57 49 4d 50 0a |spritepool_WIMP.| 0008ec70 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 0008ec80 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 |fined in <DeskLi| 0008ec90 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 |b:Sprite.h=>Spri| 0008eca0 74 65 5f 44 4c 3e 2e 20 57 68 65 6e 20 61 20 73 |te_DL>. When a s| 0008ecb0 70 72 69 74 65 20 61 72 65 61 20 69 73 20 72 65 |prite area is re| 0008ecc0 71 75 69 72 65 64 2c 20 74 68 69 73 20 63 61 6e |quired, this can| 0008ecd0 20 62 65 20 75 73 65 64 20 74 6f 20 61 63 63 65 | be used to acce| 0008ece0 73 73 20 74 68 65 20 57 69 6d 70 20 73 70 72 69 |ss the Wimp spri| 0008ecf0 74 65 20 61 72 65 61 2e 20 49 74 20 69 73 20 64 |te area. It is d| 0008ed00 65 66 69 6e 65 64 20 61 73 20 31 2e 44 49 52 24 |efined as 1.DIR$| 0008ed10 c0 10 00 00 c0 10 00 00 cc fd 08 00 46 fd ff ff |............F...| 0008ed20 58 c9 de 24 8c 03 00 00 13 00 00 00 00 00 00 00 |X..$............| 0008ed30 21 52 6f 6f 74 00 00 00 58 01 09 00 46 ff ff ff |!Root...X...F...| 0008ed40 ff 57 d4 25 b5 01 00 00 13 00 00 00 00 00 00 00 |.W.%............| 0008ed50 41 70 70 65 6e 64 00 00 10 03 09 00 46 ff ff ff |Append......F...| 0008ed60 28 dc e0 24 35 01 00 00 13 00 00 00 00 00 00 00 |(..$5...........| 0008ed70 61 72 65 61 00 00 00 00 48 04 09 00 46 fd ff ff |area....H...F...| 0008ed80 97 d3 da 24 3b 01 00 00 13 00 00 00 00 00 00 00 |...$;...........| 0008ed90 61 72 65 61 5f 00 00 00 84 05 09 00 46 ff ff ff |area_.......F...| 0008eda0 96 10 de 24 99 01 00 00 13 00 00 00 00 00 00 00 |...$............| 0008edb0 61 72 65 61 5f 6c 6f 61 64 00 00 00 20 07 09 00 |area_load... ...| 0008edc0 46 ff ff ff 14 1c de 24 15 02 00 00 13 00 00 00 |F......$........| 0008edd0 00 00 00 00 61 72 65 61 5f 6d 65 72 67 65 00 00 |....area_merge..| 0008ede0 38 09 09 00 46 ff ff ff ad 07 de 24 39 01 00 00 |8...F......$9...| 0008edf0 13 00 00 00 00 00 00 00 61 72 65 61 5f 72 65 69 |........area_rei| 0008ee00 6e 69 74 00 74 0a 09 00 46 ff ff ff af 25 de 24 |nit.t...F....%.$| 0008ee10 51 01 00 00 13 00 00 00 00 00 00 00 61 72 65 61 |Q...........area| 0008ee20 5f 73 61 76 65 00 00 00 c8 0b 09 00 46 ff ff ff |_save.......F...| 0008ee30 0f 4f d5 25 09 01 00 00 13 00 00 00 00 00 00 00 |.O.%............| 0008ee40 61 72 65 61 69 6e 66 6f 00 00 00 00 d4 0c 09 00 |areainfo........| 0008ee50 46 ff ff ff 68 44 e1 24 7d 00 00 00 13 00 00 00 |F...hD.$}.......| 0008ee60 00 00 00 00 62 6f 78 00 54 0d 09 00 46 ff ff ff |....box.T...F...| 0008ee70 35 7f e0 24 c2 01 00 00 13 00 00 00 00 00 00 00 |5..$............| 0008ee80 63 68 61 6e 67 65 5f 73 69 7a 65 00 18 0f 09 00 |change_size.....| 0008ee90 46 ff ff ff 4d 2a e1 24 86 00 00 00 13 00 00 00 |F...M*.$........| 0008eea0 00 00 00 00 63 6f 6c 6f 75 72 00 00 a0 0f 09 00 |....colour......| 0008eeb0 46 ff ff ff 8a 0b df 24 08 02 00 00 13 00 00 00 |F......$........| 0008eec0 00 00 00 00 63 6f 70 79 00 00 00 00 a8 11 09 00 |....copy........| 0008eed0 46 fd ff ff 58 46 b4 25 be 01 00 00 13 00 00 00 |F...XF.%........| 0008eee0 00 00 00 00 43 6f 70 79 5f 00 00 00 68 13 09 00 |....Copy_...h...| 0008eef0 46 ff ff ff d2 7c de 24 b0 01 00 00 13 00 00 00 |F....|.$........| 0008ef00 00 00 00 00 63 72 65 61 74 65 00 00 18 15 09 00 |....create......| 0008ef10 46 fd ff ff a4 25 b4 25 ee 01 00 00 13 00 00 00 |F....%.%........| 0008ef20 00 00 00 00 43 72 65 61 74 65 5f 00 08 17 09 00 |....Create_.....| 0008ef30 46 ff ff ff a9 b4 df 24 45 01 00 00 13 00 00 00 |F......$E.......| 0008ef40 00 00 00 00 63 72 65 61 74 65 5f 6d 61 73 6b 00 |....create_mask.| 0008ef50 50 18 09 00 46 ff ff ff 38 88 de 24 cd 01 00 00 |P...F...8..$....| 0008ef60 13 00 00 00 00 00 00 00 63 72 65 61 74 65 5f 72 |........create_r| 0008ef70 70 00 00 00 20 1a 09 00 46 ff ff ff ff 25 bc 25 |p... ...F....%.%| 0008ef80 ea 00 00 00 13 00 00 00 00 00 00 00 43 72 65 61 |............Crea| 0008ef90 74 65 4d 61 73 6b 00 00 0c 1b 09 00 46 ff ff ff |teMask......F...| 0008efa0 44 65 d4 25 77 01 00 00 13 00 00 00 00 00 00 00 |De.%w...........| 0008efb0 43 72 65 61 74 65 50 61 6c 65 74 74 65 00 00 00 |CreatePalette...| 0008efc0 84 1c 09 00 46 ff ff ff 7f f0 de 24 68 01 00 00 |....F......$h...| 0008efd0 13 00 00 00 00 00 00 00 64 65 6c 65 74 65 00 00 |........delete..| 0008efe0 ec 1d 09 00 46 fd ff ff 43 2c b4 25 23 01 00 00 |....F...C,.%#...| 0008eff0 13 00 00 00 00 00 00 00 44 65 6c 65 74 65 5f 00 |........Delete_.| 0008f000 10 1f 09 00 46 ff ff ff f0 ce df 24 83 01 00 00 |....F......$....| 0008f010 13 00 00 00 00 00 00 00 64 65 6c 65 74 65 5f 72 |........delete_r| 0008f020 6f 77 00 00 94 20 09 00 46 ff ff ff 31 bd d4 25 |ow... ..F...1..%| 0008f030 8d 01 00 00 13 00 00 00 00 00 00 00 44 65 6c 65 |............Dele| 0008f040 74 65 43 6f 6c 75 6d 6e 00 00 00 00 24 22 09 00 |teColumn....$"..| 0008f050 46 ff ff ff 40 33 d4 25 83 01 00 00 13 00 00 00 |F...@3.%........| 0008f060 00 00 00 00 44 65 6c 65 74 65 52 6f 77 00 00 00 |....DeleteRow...| 0008f070 a8 23 09 00 46 fd ff ff 7b 5e b4 25 dc 05 00 00 |.#..F...{^.%....| 0008f080 13 00 00 00 00 00 00 00 44 4c 00 00 84 29 09 00 |........DL...)..| 0008f090 46 ff ff ff 28 cf e0 24 97 00 00 00 13 00 00 00 |F...(..$........| 0008f0a0 00 00 00 00 66 61 63 74 6f 72 73 00 1c 2a 09 00 |....factors..*..| 0008f0b0 46 ff ff ff 10 eb df 24 3d 01 00 00 13 00 00 00 |F......$=.......| 0008f0c0 00 00 00 00 66 6c 69 70 5f 78 00 00 5c 2b 09 00 |....flip_x..\+..| 0008f0d0 46 ff ff ff 15 f3 df 24 3d 01 00 00 13 00 00 00 |F......$=.......| 0008f0e0 00 00 00 00 66 6c 69 70 5f 79 00 00 9c 2c 09 00 |....flip_y...,..| 0008f0f0 46 ff ff ff ed 44 d4 25 3d 01 00 00 13 00 00 00 |F....D.%=.......| 0008f100 00 00 00 00 46 6c 69 70 58 00 00 00 dc 2d 09 00 |....FlipX....-..| 0008f110 46 ff ff ff f7 c3 d4 25 3d 01 00 00 13 00 00 00 |F......%=.......| 0008f120 00 00 00 00 46 6c 69 70 59 00 00 00 1c 2f 09 00 |....FlipY..../..| 0008f130 46 ff ff ff 80 43 de 24 2c 02 00 00 13 00 00 00 |F....C.$,.......| 0008f140 00 00 00 00 67 65 74 00 48 31 09 00 46 ff ff ff |....get.H1..F...| 0008f150 65 71 b4 25 04 02 00 00 13 00 00 00 00 00 00 00 |eq.%............| 0008f160 47 65 74 5f 00 00 00 00 4c 33 09 00 46 ff ff ff |Get_....L3..F...| 0008f170 e2 60 de 24 0f 02 00 00 13 00 00 00 00 00 00 00 |.`.$............| 0008f180 67 65 74 5f 67 69 76 65 6e 00 00 00 5c 35 09 00 |get_given...\5..| 0008f190 46 ff ff ff 2f 6f de 24 de 01 00 00 13 00 00 00 |F.../o.$........| 0008f1a0 00 00 00 00 67 65 74 5f 67 69 76 65 6e 5f 72 70 |....get_given_rp| 0008f1b0 00 00 00 00 3c 37 09 00 46 ff ff ff ff 4f de 24 |....<7..F....O.$| 0008f1c0 a4 01 00 00 13 00 00 00 00 00 00 00 67 65 74 5f |............get_| 0008f1d0 72 70 00 00 e0 38 09 00 46 ff ff ff bd 36 de 24 |rp...8..F....6.$| 0008f1e0 8d 02 00 00 13 00 00 00 00 00 00 00 67 65 74 6e |............getn| 0008f1f0 61 6d 65 00 70 3b 09 00 46 ff ff ff ae 20 bc 25 |ame.p;..F.... .%| 0008f200 7d 01 00 00 13 00 00 00 00 00 00 00 47 65 74 4e |}...........GetN| 0008f210 61 6d 65 5f 00 00 00 00 f0 3c 09 00 46 fd ff ff |ame_.....<..F...| 0008f220 3d 8f da 24 5a 02 00 00 13 00 00 00 00 00 00 00 |=..$Z...........| 0008f230 68 00 00 00 4c 3f 09 00 46 ff ff ff 87 f0 e0 24 |h...L?..F......$| 0008f240 6f 02 00 00 13 00 00 00 00 00 00 00 68 65 61 64 |o...........head| 0008f250 65 72 00 00 bc 41 09 00 46 ff ff ff 7e 29 d5 25 |er...A..F...~).%| 0008f260 0d 02 00 00 13 00 00 00 00 00 00 00 49 63 6f 6e |............Icon| 0008f270 4d 65 6d 6f 72 79 53 69 7a 65 00 00 cc 43 09 00 |MemorySize...C..| 0008f280 46 ff ff ff b4 1b e1 24 be 00 00 00 13 00 00 00 |F......$........| 0008f290 00 00 00 00 69 64 00 00 ea d8 0c 00 46 ff ff ff |....id......F...| 0008f2a0 92 8a 54 36 ab 01 00 00 13 00 00 00 00 00 00 00 |..T6............| 0008f2b0 69 6e 66 6f 00 00 00 00 38 46 09 00 46 ff ff ff |info....8F..F...| 0008f2c0 53 ef b3 25 f9 00 00 00 13 00 00 00 00 00 00 00 |S..%............| 0008f2d0 49 6e 69 74 41 72 65 61 00 00 00 00 34 47 09 00 |InitArea....4G..| 0008f2e0 46 ff ff ff 8a c5 df 24 91 01 00 00 13 00 00 00 |F......$........| 0008f2f0 00 00 00 00 69 6e 73 65 72 74 5f 72 6f 77 00 00 |....insert_row..| 0008f300 c8 48 09 00 46 ff ff ff 2b 2a d4 25 91 01 00 00 |.H..F...+*.%....| 0008f310 13 00 00 00 00 00 00 00 49 6e 73 65 72 74 52 6f |........InsertRo| 0008f320 77 00 00 00 5c 4a 09 00 46 ff ff ff 01 f4 b3 25 |w...\J..F......%| 0008f330 67 01 00 00 13 00 00 00 00 00 00 00 4c 6f 61 64 |g...........Load| 0008f340 00 00 00 00 c4 4b 09 00 46 ff ff ff c6 0f b4 25 |.....K..F......%| 0008f350 37 01 00 00 13 00 00 00 00 00 00 00 4c 6f 61 64 |7...........Load| 0008f360 46 69 6c 65 00 00 00 00 fc 4c 09 00 46 ff ff ff |File.....L..F...| 0008f370 62 a7 e0 24 cd 00 00 00 13 00 00 00 00 00 00 00 |b..$............| 0008f380 6d 61 69 6e 61 72 65 61 00 00 00 00 cc 4d 09 00 |mainarea.....M..| 0008f390 46 ff ff ff 27 30 e1 24 a1 00 00 00 13 00 00 00 |F...'0.$........| 0008f3a0 00 00 00 00 6d 61 73 6b 73 74 61 74 65 00 00 00 |....maskstate...| 0008f3b0 70 4e 09 00 46 ff ff ff b7 2e d5 25 a5 00 00 00 |pN..F......%....| 0008f3c0 13 00 00 00 00 00 00 00 4d 41 58 4e 41 4d 45 00 |........MAXNAME.| 0008f3d0 18 4f 09 00 46 ff ff ff d3 18 d5 25 f2 01 00 00 |.O..F......%....| 0008f3e0 13 00 00 00 00 00 00 00 4d 65 6d 6f 72 79 53 69 |........MemorySi| 0008f3f0 7a 65 00 00 0c 51 09 00 46 ff ff ff c7 16 b4 25 |ze...Q..F......%| 0008f400 d6 01 00 00 13 00 00 00 00 00 00 00 4d 65 72 67 |............Merg| 0008f410 65 00 00 00 e4 52 09 00 46 ff ff ff d1 5c d5 25 |e....R..F....\.%| 0008f420 f2 00 00 00 13 00 00 00 00 00 00 00 6f 75 74 70 |............outp| 0008f430 75 74 73 74 61 74 65 00 d8 53 09 00 46 ff ff ff |utstate..S..F...| 0008f440 da 39 e0 24 2a 01 00 00 13 00 00 00 00 00 00 00 |.9.$*...........| 0008f450 6f 75 74 70 75 74 74 6f 6d 61 73 6b 00 00 00 00 |outputtomask....| 0008f460 04 55 09 00 46 ff ff ff 30 3e e0 24 09 01 00 00 |.U..F...0>.$....| 0008f470 13 00 00 00 00 00 00 00 6f 75 74 70 75 74 74 6f |........outputto| 0008f480 73 63 72 65 65 6e 00 00 10 56 09 00 46 ff ff ff |screen...V..F...| 0008f490 0a 34 e0 24 29 01 00 00 13 00 00 00 00 00 00 00 |.4.$)...........| 0008f4a0 6f 75 74 70 75 74 74 6f 73 70 72 69 74 65 00 00 |outputtosprite..| 0008f4b0 3c 57 09 00 46 ff ff ff 4a ae e0 24 c6 00 00 00 |<W..F...J..$....| 0008f4c0 13 00 00 00 00 00 00 00 70 61 6c 66 6c 61 67 00 |........palflag.| 0008f4d0 04 58 09 00 46 ff ff ff 34 3a e1 24 93 00 00 00 |.X..F...4:.$....| 0008f4e0 13 00 00 00 00 00 00 00 70 67 6d 00 98 58 09 00 |........pgm..X..| 0008f4f0 46 ff ff ff 19 d7 e0 24 d6 00 00 00 13 00 00 00 |F......$........| 0008f500 00 00 00 00 70 69 78 74 72 61 6e 73 00 00 00 00 |....pixtrans....| 0008f510 70 59 09 00 46 ff ff ff be 83 b4 25 de 01 00 00 |pY..F......%....| 0008f520 13 00 00 00 00 00 00 00 50 6c 6f 74 00 00 00 00 |........Plot....| 0008f530 50 5b 09 00 46 ff ff ff eb fb d4 25 e0 02 00 00 |P[..F......%....| 0008f540 13 00 00 00 00 00 00 00 50 6c 6f 74 47 72 65 79 |........PlotGrey| 0008f550 00 00 00 00 30 5e 09 00 46 ff ff ff aa ce d4 25 |....0^..F......%| 0008f560 30 02 00 00 13 00 00 00 00 00 00 00 50 6c 6f 74 |0...........Plot| 0008f570 4d 61 73 6b 00 00 00 00 60 60 09 00 46 ff ff ff |Mask....``..F...| 0008f580 b0 dd d4 25 10 02 00 00 13 00 00 00 00 00 00 00 |...%............| 0008f590 50 6c 6f 74 4d 61 73 6b 53 63 61 6c 65 64 00 00 |PlotMaskScaled..| 0008f5a0 70 62 09 00 46 ff ff ff b9 ed d4 25 5d 02 00 00 |pb..F......%]...| 0008f5b0 13 00 00 00 00 00 00 00 50 6c 6f 74 53 63 61 6c |........PlotScal| 0008f5c0 65 64 00 00 d0 64 09 00 46 ff ff ff 4a fc e0 24 |ed...d..F...J..$| 0008f5d0 9d 00 00 00 13 00 00 00 00 00 00 00 70 74 72 00 |............ptr.| 0008f5e0 70 65 09 00 46 ff ff ff 59 14 df 24 db 01 00 00 |pe..F...Y..$....| 0008f5f0 13 00 00 00 00 00 00 00 70 75 74 00 4c 67 09 00 |........put.Lg..| 0008f600 46 ff ff ff ee 23 df 24 dc 01 00 00 13 00 00 00 |F....#.$........| 0008f610 00 00 00 00 70 75 74 5f 67 69 76 65 6e 00 00 00 |....put_given...| 0008f620 28 69 09 00 46 ff ff ff 2f 7a df 24 1a 02 00 00 |(i..F.../z.$....| 0008f630 13 00 00 00 00 00 00 00 70 75 74 5f 6d 61 73 6b |........put_mask| 0008f640 00 00 00 00 44 6b 09 00 46 ff ff ff 20 93 e0 24 |....Dk..F... ..$| 0008f650 30 01 00 00 13 00 00 00 00 00 00 00 70 75 74 5f |0...........put_| 0008f660 6d 61 73 6b 5f 70 67 6d 00 00 00 00 74 6c 09 00 |mask_pgm....tl..| 0008f670 46 ff ff ff 7a 8e e0 24 44 01 00 00 13 00 00 00 |F...z..$D.......| 0008f680 00 00 00 00 70 75 74 5f 6d 61 73 6b 5f 74 72 61 |....put_mask_tra| 0008f690 6e 73 00 00 b8 6d 09 00 46 ff ff ff 42 9e e0 24 |ns...m..F...B..$| 0008f6a0 33 01 00 00 13 00 00 00 00 00 00 00 70 75 74 5f |3...........put_| 0008f6b0 70 67 6d 00 ec 6e 09 00 46 ff ff ff 43 38 df 24 |pgm..n..F...C8.$| 0008f6c0 2c 03 00 00 13 00 00 00 00 00 00 00 70 75 74 5f |,...........put_| 0008f6d0 73 63 61 6c 65 64 00 00 18 72 09 00 46 ff ff ff |scaled...r..F...| 0008f6e0 fe 98 e0 24 48 01 00 00 13 00 00 00 00 00 00 00 |...$H...........| 0008f6f0 70 75 74 5f 74 72 61 6e 73 00 00 00 60 73 09 00 |put_trans...`s..| 0008f700 46 ff ff ff dd 16 bc 25 ec 01 00 00 13 00 00 00 |F......%........| 0008f710 00 00 00 00 52 65 61 64 43 6f 6e 74 72 6f 6c 00 |....ReadControl.| 0008f720 4c 75 09 00 46 ff ff ff d7 e9 bb 25 90 01 00 00 |Lu..F......%....| 0008f730 13 00 00 00 00 00 00 00 52 65 61 64 49 6e 66 6f |........ReadInfo| 0008f740 00 00 00 00 dc 76 09 00 46 ff ff ff 3d 1c e0 24 |.....v..F...=..$| 0008f750 8f 01 00 00 13 00 00 00 00 00 00 00 72 65 61 64 |............read| 0008f760 6d 61 73 6b 00 00 00 00 6c 78 09 00 46 ff ff ff |mask....lx..F...| 0008f770 84 88 d4 25 31 01 00 00 13 00 00 00 00 00 00 00 |...%1...........| 0008f780 52 65 61 64 4d 61 73 6b 5f 00 00 00 a0 79 09 00 |ReadMask_....y..| 0008f790 46 ff ff ff e6 09 e0 24 a1 01 00 00 13 00 00 00 |F......$........| 0008f7a0 00 00 00 00 72 65 61 64 70 69 78 65 6c 00 00 00 |....readpixel...| 0008f7b0 44 7b 09 00 46 ff ff ff 41 73 d4 25 f8 00 00 00 |D{..F...As.%....| 0008f7c0 13 00 00 00 00 00 00 00 52 65 61 64 50 69 78 65 |........ReadPixe| 0008f7d0 6c 5f 00 00 3c 7c 09 00 46 ff ff ff 29 07 bc 25 |l_..<|..F...)..%| 0008f7e0 4a 01 00 00 13 00 00 00 00 00 00 00 52 65 61 64 |J...........Read| 0008f7f0 53 61 76 65 41 72 65 61 53 69 7a 65 00 00 00 00 |SaveAreaSize....| 0008f800 88 7d 09 00 46 ff ff ff b5 fa df 24 46 01 00 00 |.}..F......$F...| 0008f810 13 00 00 00 00 00 00 00 72 65 61 64 73 69 7a 65 |........readsize| 0008f820 00 00 00 00 d0 7e 09 00 46 ff ff ff fd f9 bb 25 |.....~..F......%| 0008f830 0c 03 00 00 13 00 00 00 00 00 00 00 52 65 64 69 |............Redi| 0008f840 72 65 63 74 00 00 00 00 dc 81 09 00 46 ff ff ff |rect........F...| 0008f850 80 36 bc 25 2e 01 00 00 13 00 00 00 00 00 00 00 |.6.%............| 0008f860 72 65 6d 6f 76 65 5f 6d 61 73 6b 00 0c 83 09 00 |remove_mask.....| 0008f870 46 ff ff ff 0e 6d d4 25 26 01 00 00 13 00 00 00 |F....m.%&.......| 0008f880 00 00 00 00 52 65 6d 6f 76 65 50 61 6c 65 74 74 |....RemovePalett| 0008f890 65 00 00 00 34 84 09 00 46 ff ff ff 37 55 e0 24 |e...4...F...7U.$| 0008f8a0 2d 01 00 00 13 00 00 00 00 00 00 00 72 65 6d 6f |-...........remo| 0008f8b0 76 65 77 61 73 74 61 67 65 00 00 00 64 85 09 00 |vewastage...d...| 0008f8c0 46 ff ff ff 15 fc de 24 e7 01 00 00 13 00 00 00 |F......$........| 0008f8d0 00 00 00 00 72 65 6e 61 6d 65 00 00 4c 87 09 00 |....rename..L...| 0008f8e0 46 ff ff ff 21 39 b4 25 b1 01 00 00 13 00 00 00 |F...!9.%........| 0008f8f0 00 00 00 00 52 65 6e 61 6d 65 5f 00 00 89 09 00 |....Rename_.....| 0008f900 46 ff ff ff a8 2d e0 24 f8 00 00 00 13 00 00 00 |F....-.$........| 0008f910 00 00 00 00 72 65 73 74 6f 72 65 73 74 61 74 65 |....restorestate| 0008f920 00 00 00 00 f8 89 09 00 46 fd ff ff 07 79 e0 24 |........F....y.$| 0008f930 ca 00 00 00 13 00 00 00 00 00 00 00 72 6f 33 5f |............ro3_| 0008f940 00 00 00 00 c4 8a 09 00 46 ff ff ff c8 1b b4 25 |........F......%| 0008f950 17 01 00 00 13 00 00 00 00 00 00 00 53 61 76 65 |............Save| 0008f960 00 00 00 00 dc 8b 09 00 46 ff ff ff d6 64 d5 25 |........F....d.%| 0008f970 db 00 00 00 13 00 00 00 00 00 00 00 73 63 61 6c |............scal| 0008f980 65 66 61 63 74 6f 72 73 00 00 00 00 b8 8c 09 00 |efactors........| 0008f990 46 ff ff ff fc a2 da 24 40 01 00 00 13 00 00 00 |F......$@.......| 0008f9a0 00 00 00 00 73 63 72 65 65 6e 6c 6f 61 64 00 00 |....screenload..| 0008f9b0 f8 8d 09 00 46 fd ff ff 9e e3 b3 25 83 01 00 00 |....F......%....| 0008f9c0 13 00 00 00 00 00 00 00 53 63 72 65 65 6e 4c 6f |........ScreenLo| 0008f9d0 61 64 5f 00 7c 8f 09 00 46 ff ff ff e9 b2 da 24 |ad_.|...F......$| 0008f9e0 38 01 00 00 13 00 00 00 00 00 00 00 73 63 72 65 |8...........scre| 0008f9f0 65 6e 73 61 76 65 00 00 b4 90 09 00 46 fd ff ff |ensave......F...| 0008fa00 05 de b3 25 b7 01 00 00 13 00 00 00 00 00 00 00 |...%............| 0008fa10 53 63 72 65 65 6e 53 61 76 65 5f 00 6c 92 09 00 |ScreenSave_.l...| 0008fa20 46 ff ff ff 4a d6 de 24 85 01 00 00 13 00 00 00 |F...J..$........| 0008fa30 00 00 00 00 73 65 6c 65 63 74 00 00 f4 93 09 00 |....select......| 0008fa40 46 ff ff ff bc e7 de 24 7a 01 00 00 13 00 00 00 |F......$z.......| 0008fa50 00 00 00 00 73 65 6c 65 63 74 5f 72 70 00 00 00 |....select_rp...| 0008fa60 70 95 09 00 46 fd ff ff aa 9a da 24 57 00 00 00 |p...F......$W...| 0008fa70 13 00 00 00 00 00 00 00 73 69 6d 70 6c 65 5f 00 |........simple_.| 0008fa80 c8 95 09 00 46 ff ff ff 4c 44 e0 24 1a 01 00 00 |....F...LD.$....| 0008fa90 13 00 00 00 00 00 00 00 73 69 7a 65 6f 66 5f 73 |........sizeof_s| 0008faa0 63 72 65 65 6e 63 6f 6e 74 65 78 74 00 00 00 00 |creencontext....| 0008fab0 e4 96 09 00 46 ff ff ff 1b 4c e0 24 41 01 00 00 |....F....L.$A...| 0008fac0 13 00 00 00 00 00 00 00 73 69 7a 65 6f 66 5f 73 |........sizeof_s| 0008fad0 70 72 69 74 65 63 6f 6e 74 65 78 74 00 00 00 00 |pritecontext....| 0008fae0 28 98 09 00 46 ff ff ff a5 34 e1 24 75 00 00 00 |(...F....4.$u...| 0008faf0 13 00 00 00 00 00 00 00 73 74 61 74 65 00 00 00 |........state...| 0008fb00 a0 98 09 00 46 ff ff ff 5f 40 e1 24 72 00 00 00 |....F..._@.$r...| 0008fb10 13 00 00 00 00 00 00 00 74 72 61 6e 73 6d 61 74 |........transmat| 0008fb20 00 00 00 00 14 99 09 00 46 ff ff ff 5f 03 e1 24 |........F..._..$| 0008fb30 f9 00 00 00 13 00 00 00 00 00 00 00 74 79 70 65 |............type| 0008fb40 00 00 00 00 10 9a 09 00 46 ff ff ff da 00 bc 25 |........F......%| 0008fb50 36 01 00 00 13 00 00 00 00 00 00 00 55 6e 52 65 |6...........UnRe| 0008fb60 64 69 72 65 63 74 00 00 48 9b 09 00 46 ff ff ff |direct..H...F...| 0008fb70 95 0b d5 25 e8 01 00 00 13 00 00 00 00 00 00 00 |...%............| 0008fb80 57 69 6d 70 50 6c 6f 74 00 00 00 00 30 9d 09 00 |WimpPlot....0...| 0008fb90 46 ff ff ff a5 26 e0 24 95 01 00 00 13 00 00 00 |F....&.$........| 0008fba0 00 00 00 00 77 72 69 74 65 6d 61 73 6b 00 00 00 |....writemask...| 0008fbb0 c8 9e 09 00 46 ff ff ff dc 90 d4 25 59 01 00 00 |....F......%Y...| 0008fbc0 13 00 00 00 00 00 00 00 57 72 69 74 65 4d 61 73 |........WriteMas| 0008fbd0 6b 5f 00 00 24 a0 09 00 46 ff ff ff ea 12 e0 24 |k_..$...F......$| 0008fbe0 94 01 00 00 13 00 00 00 00 00 00 00 77 72 69 74 |............writ| 0008fbf0 65 70 69 78 65 6c 00 00 b8 a1 09 00 46 ff ff ff |epixel......F...| 0008fc00 ed 7c d4 25 64 01 00 00 13 00 00 00 00 00 00 00 |.|.%d...........| 0008fc10 57 72 69 74 65 50 69 78 65 6c 5f 00 1c a3 09 00 |WritePixel_.....| 0008fc20 46 ff ff ff ab ef dd 24 61 01 00 00 13 00 00 00 |F......$a.......| 0008fc30 00 00 00 00 61 72 65 61 5f 69 6e 69 74 69 61 6c |....area_initial| 0008fc40 69 73 65 00 80 a4 09 00 46 ff ff ff b0 f6 dd 24 |ise.....F......$| 0008fc50 67 01 00 00 13 00 00 00 00 00 00 00 61 72 65 61 |g...........area| 0008fc60 5f 72 65 61 64 69 6e 66 6f 00 00 00 e8 a5 09 00 |_readinfo.......| 0008fc70 46 ff ff ff 46 6d df 24 f5 02 00 00 13 00 00 00 |F...Fm.$........| 0008fc80 00 00 00 00 70 75 74 5f 67 72 65 79 73 63 61 6c |....put_greyscal| 0008fc90 65 64 00 00 e0 a8 09 00 46 ff ff ff 48 86 df 24 |ed......F...H..$| 0008fca0 1b 02 00 00 13 00 00 00 00 00 00 00 70 75 74 5f |............put_| 0008fcb0 6d 61 73 6b 5f 67 69 76 65 6e 00 00 fc aa 09 00 |mask_given......| 0008fcc0 46 ff ff ff 26 96 df 24 21 02 00 00 13 00 00 00 |F...&..$!.......| 0008fcd0 00 00 00 00 70 75 74 5f 6d 61 73 6b 5f 73 63 61 |....put_mask_sca| 0008fce0 6c 65 64 00 20 ad 09 00 46 ff ff ff d3 a9 df 24 |led. ...F......$| 0008fcf0 fc 01 00 00 13 00 00 00 00 00 00 00 70 75 74 5f |............put_| 0008fd00 63 68 61 72 5f 73 63 61 6c 65 64 00 1c af 09 00 |char_scaled.....| 0008fd10 46 ff ff ff 6e d8 df 24 b4 01 00 00 13 00 00 00 |F...n..$........| 0008fd20 00 00 00 00 69 6e 73 65 72 74 5f 63 6f 6c 75 6d |....insert_colum| 0008fd30 6e 00 00 00 d0 b0 09 00 46 ff ff ff d0 e0 df 24 |n.......F......$| 0008fd40 90 01 00 00 13 00 00 00 00 00 00 00 64 65 6c 65 |............dele| 0008fd50 74 65 5f 63 6f 6c 75 6d 6e 00 00 00 60 b2 09 00 |te_column...`...| 0008fd60 46 ff ff ff 9a 01 66 25 5f 01 00 00 13 00 00 00 |F.....f%_.......| 0008fd70 00 00 00 00 4c 6f 61 64 46 69 6c 65 73 00 00 00 |....LoadFiles...| 0008fd80 c0 b3 09 00 46 ff ff ff d7 1d d4 25 ed 00 00 00 |....F......%....| 0008fd90 13 00 00 00 00 00 00 00 52 65 6d 6f 76 65 4d 61 |........RemoveMa| 0008fda0 73 6b 00 00 b0 b4 09 00 46 ff ff ff a6 9d d4 25 |sk......F......%| 0008fdb0 b1 01 00 00 13 00 00 00 00 00 00 00 49 6e 73 65 |............Inse| 0008fdc0 72 74 43 6f 6c 75 6d 6e 00 00 00 00 44 41 54 41 |rtColumn....DATA| 0008fdd0 8c 03 00 00 73 70 72 69 74 65 2e 68 20 53 70 72 |....sprite.h Spr| 0008fde0 69 74 65 20 46 75 6e 63 74 69 6f 6e 73 0a 54 68 |ite Functions.Th| 0008fdf0 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 6f 70 |ese functions op| 0008fe00 65 72 61 74 65 20 6f 6e 20 73 70 72 69 74 65 73 |erate on sprites| 0008fe10 20 69 6e 20 74 68 65 20 73 79 73 74 65 6d 20 6f | in the system o| 0008fe20 72 20 61 20 75 73 65 72 20 61 72 65 61 2c 20 61 |r a user area, a| 0008fe30 6e 64 20 63 61 6e 20 61 63 63 65 73 73 20 74 68 |nd can access th| 0008fe40 65 20 73 70 72 69 74 65 73 20 65 69 74 68 65 72 |e sprites either| 0008fe50 20 62 79 20 6e 61 6d 65 20 6f 72 20 62 79 20 61 | by name or by a| 0008fe60 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 | pointer to the | 0008fe70 73 70 72 69 74 65 2e 0a 0a 23 69 6e 64 65 6e 74 |sprite...#indent| 0008fe80 20 34 0a 23 54 61 62 6c 65 20 63 6f 6c 75 6d 6e | 4.#Table column| 0008fe90 73 20 32 0a 3c 73 70 72 69 74 65 5f 73 65 6c 65 |s 2.<sprite_sele| 0008fea0 63 74 3e 0a 3c 73 70 72 69 74 65 5f 73 65 6c 65 |ct>.<sprite_sele| 0008feb0 63 74 5f 72 70 3e 0a 3c 73 70 72 69 74 65 5f 64 |ct_rp>.<sprite_d| 0008fec0 65 6c 65 74 65 3e 0a 3c 73 70 72 69 74 65 5f 72 |elete>.<sprite_r| 0008fed0 65 6e 61 6d 65 3e 0a 3c 73 70 72 69 74 65 5f 63 |ename>.<sprite_c| 0008fee0 6f 70 79 3e 0a 3c 73 70 72 69 74 65 5f 70 75 74 |opy>.<sprite_put| 0008fef0 3e 0a 3c 73 70 72 69 74 65 5f 70 75 74 5f 67 69 |>.<sprite_put_gi| 0008ff00 76 65 6e 3e 0a 3c 73 70 72 69 74 65 5f 70 75 74 |ven>.<sprite_put| 0008ff10 5f 73 63 61 6c 65 64 3e 0a 3c 73 70 72 69 74 65 |_scaled>.<sprite| 0008ff20 5f 70 75 74 5f 67 72 65 79 73 63 61 6c 65 64 3e |_put_greyscaled>| 0008ff30 0a 3c 73 70 72 69 74 65 5f 70 75 74 5f 6d 61 73 |.<sprite_put_mas| 0008ff40 6b 3e 0a 3c 73 70 72 69 74 65 5f 70 75 74 5f 6d |k>.<sprite_put_m| 0008ff50 61 73 6b 5f 67 69 76 65 6e 3e 0a 3c 73 70 72 69 |ask_given>.<spri| 0008ff60 74 65 5f 70 75 74 5f 6d 61 73 6b 5f 73 63 61 6c |te_put_mask_scal| 0008ff70 65 64 3e 0a 3c 73 70 72 69 74 65 5f 70 75 74 5f |ed>.<sprite_put_| 0008ff80 63 68 61 72 5f 73 63 61 6c 65 64 3e 0a 3c 73 70 |char_scaled>.<sp| 0008ff90 72 69 74 65 5f 63 72 65 61 74 65 5f 6d 61 73 6b |rite_create_mask| 0008ffa0 3e 0a 3c 73 70 72 69 74 65 5f 72 65 6d 6f 76 65 |>.<sprite_remove| 0008ffb0 5f 6d 61 73 6b 3e 0a 3c 73 70 72 69 74 65 5f 69 |_mask>.<sprite_i| 0008ffc0 6e 73 65 72 74 5f 72 6f 77 3e 0a 3c 73 70 72 69 |nsert_row>.<spri| 0008ffd0 74 65 5f 64 65 6c 65 74 65 5f 72 6f 77 3e 0a 3c |te_delete_row>.<| 0008ffe0 73 70 72 69 74 65 5f 69 6e 73 65 72 74 5f 63 6f |sprite_insert_co| 0008fff0 6c 75 6d 6e 3e 0a 3c 73 70 72 69 74 65 5f 64 65 |lumn>.<sprite_de| 00090000 6c 65 74 65 5f 63 6f 6c 75 6d 6e 3e 0a 3c 73 70 |lete_column>.<sp| 00090010 72 69 74 65 5f 66 6c 69 70 5f 78 3e 0a 3c 73 70 |rite_flip_x>.<sp| 00090020 72 69 74 65 5f 66 6c 69 70 5f 79 3e 0a 3c 73 70 |rite_flip_y>.<sp| 00090030 72 69 74 65 5f 72 65 61 64 73 69 7a 65 3e 0a 3c |rite_readsize>.<| 00090040 73 70 72 69 74 65 5f 72 65 61 64 70 69 78 65 6c |sprite_readpixel| 00090050 3e 0a 3c 73 70 72 69 74 65 5f 77 72 69 74 65 70 |>.<sprite_writep| 00090060 69 78 65 6c 3e 0a 3c 73 70 72 69 74 65 5f 72 65 |ixel>.<sprite_re| 00090070 61 64 6d 61 73 6b 3e 0a 3c 73 70 72 69 74 65 5f |admask>.<sprite_| 00090080 77 72 69 74 65 6d 61 73 6b 3e 0a 3c 73 70 72 69 |writemask>.<spri| 00090090 74 65 5f 72 65 73 74 6f 72 65 73 74 61 74 65 3e |te_restorestate>| 000900a0 0a 3c 73 70 72 69 74 65 5f 6f 75 74 70 75 74 74 |.<sprite_outputt| 000900b0 6f 73 70 72 69 74 65 3e 0a 3c 73 70 72 69 74 65 |osprite>.<sprite| 000900c0 5f 6f 75 74 70 75 74 74 6f 6d 61 73 6b 3e 0a 3c |_outputtomask>.<| 000900d0 73 70 72 69 74 65 5f 6f 75 74 70 75 74 74 6f 73 |sprite_outputtos| 000900e0 63 72 65 65 6e 3e 0a 3c 73 70 72 69 74 65 5f 73 |creen>.<sprite_s| 000900f0 69 7a 65 6f 66 5f 73 70 72 69 74 65 63 6f 6e 74 |izeof_spritecont| 00090100 65 78 74 3e 0a 3c 73 70 72 69 74 65 5f 73 69 7a |ext>.<sprite_siz| 00090110 65 6f 66 5f 73 63 72 65 65 6e 63 6f 6e 74 65 78 |eof_screencontex| 00090120 74 3e 0a 3c 73 70 72 69 74 65 5f 72 65 6d 6f 76 |t>.<sprite_remov| 00090130 65 77 61 73 74 61 67 65 3e 0a 3c 73 70 72 69 74 |ewastage>.<sprit| 00090140 65 5f 63 68 61 6e 67 65 5f 73 69 7a 65 3e 0a 23 |e_change_size>.#| 00090150 45 6e 64 54 61 62 6c 65 44 41 54 41 b5 01 00 00 |EndTableDATA....| 00090160 53 70 72 69 74 65 5f 41 70 70 65 6e 64 0a 53 79 |Sprite_Append.Sy| 00090170 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00090180 20 2a 53 70 72 69 74 65 5f 41 70 70 65 6e 64 20 | *Sprite_Append | 00090190 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 61 |(<sprite_area> a| 000901a0 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 31 |rea, char *name1| 000901b0 2c 20 63 68 61 72 20 2a 6e 61 6d 65 32 2c 20 69 |, char *name2, i| 000901c0 6e 74 20 64 69 72 29 3b 0a 48 65 61 64 65 72 3a |nt dir);.Header:| 000901d0 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 |.<DeskLib:Sprite| 000901e0 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a |.h=>Sprite_DL>..| 000901f0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00090200 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00090210 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00090220 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 69 |his function joi| 00090230 6e 73 20 74 77 6f 20 73 70 72 69 74 65 73 20 74 |ns two sprites t| 00090240 6f 67 65 74 68 65 72 2e 20 7b 2f 7d 6e 61 6d 65 |ogether. {/}name| 00090250 32 7b 2f 7d 20 69 73 20 64 65 6c 65 74 65 64 20 |2{/} is deleted | 00090260 61 6e 64 20 6a 6f 69 6e 65 64 20 6f 6e 74 6f 20 |and joined onto | 00090270 7b 2f 7d 6e 61 6d 65 31 7b 2f 7d 2e 20 49 66 20 |{/}name1{/}. If | 00090280 2f 64 69 72 2f 20 69 73 20 30 20 74 68 65 79 20 |/dir/ is 0 they | 00090290 61 72 65 20 6a 6f 69 6e 65 64 20 68 6f 72 69 7a |are joined horiz| 000902a0 6f 6e 74 61 6c 6c 79 20 61 6e 64 20 6d 75 73 74 |ontally and must| 000902b0 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 68 | have the same h| 000902c0 65 69 67 68 74 2c 20 69 66 20 2f 64 69 72 2f 20 |eight, if /dir/ | 000902d0 69 73 20 31 20 74 68 65 79 20 61 72 65 20 6a 6f |is 1 they are jo| 000902e0 69 6e 65 64 20 76 65 72 74 69 63 61 6c 6c 79 20 |ined vertically | 000902f0 61 6e 64 20 6d 75 73 74 20 68 61 76 65 20 74 68 |and must have th| 00090300 65 20 73 61 6d 65 20 77 69 64 74 68 2e 00 00 00 |e same width....| 00090310 44 41 54 41 35 01 00 00 73 70 72 69 74 65 5f 61 |DATA5...sprite_a| 00090320 72 65 61 0a 54 68 69 73 20 74 79 70 65 20 69 73 |rea.This type is| 00090330 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 70 72 | defined in <spr| 00090340 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e |ite.h=>sprite_h>| 00090350 20 28 44 65 73 6b 74 6f 70 20 43 29 20 61 6e 64 | (Desktop C) and| 00090360 20 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 | <DeskLib:Sprite| 00090370 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 2e 20 |.h=>Sprite_DL>. | 00090380 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It is defined as| 00090390 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 000903a0 74 72 75 63 74 75 72 65 20 69 6e 20 44 65 73 6b |tructure in Desk| 000903b0 74 6f 70 20 43 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |top C:.. \{. | 000903c0 20 69 6e 74 20 73 69 7a 65 3b 0a 20 20 20 20 69 | int size;. i| 000903d0 6e 74 20 6e 75 6d 62 65 72 3b 0a 20 20 20 20 69 |nt number;. i| 000903e0 6e 74 20 73 70 72 6f 66 66 3b 0a 20 20 20 20 69 |nt sproff;. i| 000903f0 6e 74 20 66 72 65 65 6f 66 66 3b 0a 20 20 7d 0a |nt freeoff;. }.| 00090400 0a 61 6e 64 20 69 6e 20 44 65 73 6b 4c 69 62 20 |.and in DeskLib | 00090410 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 |it is defined as| 00090420 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 79 | a pointer to ty| 00090430 70 65 20 3c 73 70 72 69 74 65 5f 61 72 65 61 69 |pe <sprite_areai| 00090440 6e 66 6f 3e 2e 00 00 00 44 41 54 41 3b 01 00 00 |nfo>....DATA;...| 00090450 73 70 72 69 74 65 2e 68 20 53 70 72 69 74 65 20 |sprite.h Sprite | 00090460 41 72 65 61 20 46 75 6e 63 74 69 6f 6e 73 0a 23 |Area Functions.#| 00090470 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a |table columns 2.| 00090480 3c 73 70 72 69 74 65 5f 61 72 65 61 5f 69 6e 69 |<sprite_area_ini| 00090490 74 69 61 6c 69 73 65 3e 0a 3c 73 70 72 69 74 65 |tialise>.<sprite| 000904a0 5f 61 72 65 61 5f 72 65 61 64 69 6e 66 6f 3e 0a |_area_readinfo>.| 000904b0 3c 73 70 72 69 74 65 5f 61 72 65 61 5f 72 65 69 |<sprite_area_rei| 000904c0 6e 69 74 3e 0a 3c 73 70 72 69 74 65 5f 61 72 65 |nit>.<sprite_are| 000904d0 61 5f 6c 6f 61 64 3e 0a 3c 73 70 72 69 74 65 5f |a_load>.<sprite_| 000904e0 61 72 65 61 5f 6d 65 72 67 65 3e 0a 3c 73 70 72 |area_merge>.<spr| 000904f0 69 74 65 5f 61 72 65 61 5f 73 61 76 65 3e 0a 3c |ite_area_save>.<| 00090500 73 70 72 69 74 65 5f 67 65 74 6e 61 6d 65 3e 0a |sprite_getname>.| 00090510 3c 73 70 72 69 74 65 5f 67 65 74 3e 0a 3c 73 70 |<sprite_get>.<sp| 00090520 72 69 74 65 5f 67 65 74 5f 72 70 3e 0a 3c 73 70 |rite_get_rp>.<sp| 00090530 72 69 74 65 5f 67 65 74 5f 67 69 76 65 6e 3e 0a |rite_get_given>.| 00090540 3c 73 70 72 69 74 65 5f 67 65 74 5f 67 69 76 65 |<sprite_get_give| 00090550 6e 5f 72 70 3e 0a 3c 73 70 72 69 74 65 5f 63 72 |n_rp>.<sprite_cr| 00090560 65 61 74 65 20 3e 0a 3c 73 70 72 69 74 65 5f 63 |eate >.<sprite_c| 00090570 72 65 61 74 65 5f 72 70 3e 0a 23 65 6e 64 74 61 |reate_rp>.#endta| 00090580 62 6c 65 00 44 41 54 41 99 01 00 00 73 70 72 69 |ble.DATA....spri| 00090590 74 65 5f 61 72 65 61 5f 6c 6f 61 64 0a 53 79 6e |te_area_load.Syn| 000905a0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000905b0 2a 73 70 72 69 74 65 5f 61 72 65 61 5f 6c 6f 61 |*sprite_area_loa| 000905c0 64 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |d (<sprite_area>| 000905d0 20 2a 61 72 65 61 2c 20 63 68 61 72 20 2a 66 69 | *area, char *fi| 000905e0 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a |lename);.Header:| 000905f0 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 00090600 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |te_h>..Returns:.| 00090610 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00090620 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00090630 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00090640 69 6f 6e 20 6c 6f 61 64 73 20 61 6c 6c 20 74 68 |ion loads all th| 00090650 65 20 73 70 72 69 74 65 73 20 69 6e 20 74 68 65 |e sprites in the| 00090660 20 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 20 | specified file | 00090670 69 6e 74 6f 20 74 68 65 20 73 70 72 69 74 65 20 |into the sprite | 00090680 61 72 65 61 20 77 68 6f 73 65 20 70 6f 69 6e 74 |area whose point| 00090690 65 72 20 69 73 20 67 69 76 65 6e 2e 20 41 6e 79 |er is given. Any| 000906a0 20 73 70 72 69 74 65 73 20 61 6c 72 65 61 64 79 | sprites already| 000906b0 20 69 6e 20 74 68 65 20 61 72 65 61 20 61 72 65 | in the area are| 000906c0 20 64 65 6c 65 74 65 64 2e 20 49 74 20 69 73 20 | deleted. It is | 000906d0 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 7b 2a |equivalent to {*| 000906e0 7d 4f 53 5f 53 70 72 69 74 65 4f 70 7b 2a 7d 20 |}OS_SpriteOp{*} | 000906f0 31 30 2c 20 6f 72 20 2a 53 4c 6f 61 64 20 77 68 |10, or *SLoad wh| 00090700 65 6e 20 75 73 65 64 20 77 69 74 68 20 74 68 65 |en used with the| 00090710 20 73 79 73 74 65 6d 20 61 72 65 61 2e 00 00 00 | system area....| 00090720 44 41 54 41 15 02 00 00 73 70 72 69 74 65 5f 61 |DATA....sprite_a| 00090730 72 65 61 5f 6d 65 72 67 65 0a 53 79 6e 74 61 78 |rea_merge.Syntax| 00090740 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 |:.<os_error> *sp| 00090750 72 69 74 65 5f 61 72 65 61 5f 6d 65 72 67 65 20 |rite_area_merge | 00090760 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a |(<sprite_area> *| 00090770 61 72 65 61 2c 20 63 68 61 72 20 2a 66 69 6c 65 |area, char *file| 00090780 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |name);.Header:.<| 00090790 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 000907a0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 000907b0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000907c0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000907d0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000907e0 6e 20 6c 6f 61 64 73 20 61 6c 6c 20 74 68 65 20 |n loads all the | 000907f0 73 70 72 69 74 65 73 20 69 6e 20 74 68 65 20 73 |sprites in the s| 00090800 70 65 63 69 66 69 65 64 20 66 69 6c 65 20 69 6e |pecified file in| 00090810 74 6f 20 74 68 65 20 73 70 72 69 74 65 20 61 72 |to the sprite ar| 00090820 65 61 20 77 68 6f 73 65 20 70 6f 69 6e 74 65 72 |ea whose pointer| 00090830 20 69 73 20 67 69 76 65 6e 2e 20 54 68 65 20 73 | is given. The s| 00090840 70 72 69 74 65 73 20 61 72 65 20 61 64 64 65 64 |prites are added| 00090850 20 74 6f 20 61 6e 79 20 73 70 72 69 74 65 73 20 | to any sprites | 00090860 61 6c 72 65 61 64 79 20 69 6e 20 74 68 65 20 61 |already in the a| 00090870 72 65 61 2e 20 49 66 20 61 6e 79 20 6e 65 77 20 |rea. If any new | 00090880 73 70 72 69 74 65 73 20 68 61 76 65 20 74 68 65 |sprites have the| 00090890 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 65 78 | same name as ex| 000908a0 69 73 74 69 6e 67 20 73 70 72 69 74 65 73 2c 20 |isting sprites, | 000908b0 74 68 65 20 6f 6c 64 20 6f 6e 65 73 20 61 72 65 |the old ones are| 000908c0 20 64 65 6c 65 74 65 64 2e 20 54 68 69 73 20 66 | deleted. This f| 000908d0 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 |unction is equiv| 000908e0 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 |alent to <OS_Spr| 000908f0 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 |iteOp=>SWI:OS_Sp| 00090900 72 69 74 65 4f 70 3e 20 31 31 20 6f 72 20 2a 53 |riteOp> 11 or *S| 00090910 4d 65 72 67 65 20 77 68 65 6e 20 75 73 65 64 20 |Merge when used | 00090920 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 |with the system | 00090930 61 72 65 61 2e 00 00 00 44 41 54 41 39 01 00 00 |area....DATA9...| 00090940 73 70 72 69 74 65 5f 61 72 65 61 5f 72 65 69 6e |sprite_area_rein| 00090950 69 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |it.Syntax:.<os_e| 00090960 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 61 72 |rror> *sprite_ar| 00090970 65 61 5f 72 65 69 6e 69 74 20 28 3c 73 70 72 69 |ea_reinit (<spri| 00090980 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 29 3b |te_area> *area);| 00090990 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 |.Header:.<sprite| 000909a0 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 |.h=>sprite_h>..R| 000909b0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000909c0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000909d0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000909e0 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 2d 69 |is function re-i| 000909f0 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 73 |nitialises the s| 00090a00 70 72 69 74 65 20 61 72 65 61 2e 20 49 74 20 69 |prite area. It i| 00090a10 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |s equivalent to | 00090a20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 |<OS_SpriteOp=>SW| 00090a30 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 39 |I:OS_SpriteOp> 9| 00090a40 2c 20 6f 72 20 2a 53 4e 65 77 20 77 68 65 6e 20 |, or *SNew when | 00090a50 75 73 65 64 20 77 69 74 68 20 74 68 65 20 73 79 |used with the sy| 00090a60 73 74 65 6d 20 73 70 72 69 74 65 20 61 72 65 61 |stem sprite area| 00090a70 2e 00 00 00 44 41 54 41 51 01 00 00 73 70 72 69 |....DATAQ...spri| 00090a80 74 65 5f 61 72 65 61 5f 73 61 76 65 0a 53 79 6e |te_area_save.Syn| 00090a90 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00090aa0 2a 73 70 72 69 74 65 5f 61 72 65 61 5f 73 61 76 |*sprite_area_sav| 00090ab0 65 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |e (<sprite_area>| 00090ac0 20 2a 61 72 65 61 2c 20 63 68 61 72 20 2a 66 69 | *area, char *fi| 00090ad0 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a |lename);.Header:| 00090ae0 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 00090af0 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |te_h>..Returns:.| 00090b00 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00090b10 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00090b20 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00090b30 69 6f 6e 20 73 61 76 65 73 20 61 6c 6c 20 74 68 |ion saves all th| 00090b40 65 20 73 70 72 69 74 65 73 20 69 6e 20 61 20 73 |e sprites in a s| 00090b50 70 72 69 74 65 20 61 72 65 61 20 74 6f 20 61 20 |prite area to a | 00090b60 66 69 6c 65 2e 20 49 74 20 69 73 20 65 71 75 69 |file. It is equi| 00090b70 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 |valent to <OS_Sp| 00090b80 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 |riteOp=>SWI:OS_S| 00090b90 70 72 69 74 65 4f 70 3e 20 31 32 20 6f 72 20 2a |priteOp> 12 or *| 00090ba0 53 53 61 76 65 20 77 68 65 6e 20 75 73 65 64 20 |SSave when used | 00090bb0 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 |with the system | 00090bc0 61 72 65 61 2e 00 00 00 44 41 54 41 09 01 00 00 |area....DATA....| 00090bd0 73 70 72 69 74 65 5f 61 72 65 61 69 6e 66 6f 0a |sprite_areainfo.| 00090be0 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 00090bf0 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 00090c00 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 |:Sprite.h=>Sprit| 00090c10 65 5f 44 4c 3e 2e 20 49 74 20 69 73 20 64 65 66 |e_DL>. It is def| 00090c20 69 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c |ined as the foll| 00090c30 6f 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a |owing structure:| 00090c40 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 20 |.. \{. | 00090c50 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 61 72 | unsigned int ar| 00090c60 65 61 73 69 7a 65 3b 0a 20 20 20 20 20 20 20 20 |easize;. | 00090c70 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6e 75 6d |unsigned int num| 00090c80 73 70 72 69 74 65 73 3b 0a 20 20 20 20 20 20 20 |sprites;. | 00090c90 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 69 | unsigned int fi| 00090ca0 72 73 74 6f 66 66 73 65 74 3b 0a 20 20 20 20 20 |rstoffset;. | 00090cb0 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 00090cc0 66 72 65 65 6f 66 66 73 65 74 3b 0a 20 20 20 20 |freeoffset;. | 00090cd0 7d 00 00 00 44 41 54 41 7d 00 00 00 73 70 72 69 |}...DATA}...spri| 00090ce0 74 65 5f 62 6f 78 0a 54 68 69 73 20 74 79 70 65 |te_box.This type| 00090cf0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00090d00 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 00090d10 5f 68 3e 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |_h> as the follo| 00090d20 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 00090d30 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 20 78 30 |. \{. int x0| 00090d40 2c 20 79 30 2c 20 78 31 2c 20 79 31 3b 0a 20 20 |, y0, x1, y1;. | 00090d50 7d 00 00 00 44 41 54 41 c2 01 00 00 73 70 72 69 |}...DATA....spri| 00090d60 74 65 5f 63 68 61 6e 67 65 5f 73 69 7a 65 0a 53 |te_change_size.S| 00090d70 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 00090d80 3e 20 2a 73 70 72 69 74 65 5f 63 68 61 6e 67 65 |> *sprite_change| 00090d90 5f 73 69 7a 65 20 28 3c 73 70 72 69 74 65 5f 61 |_size (<sprite_a| 00090da0 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 |rea> *area, <spr| 00090db0 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 3c 42 |ite_id> *spr, <B| 00090dc0 4f 4f 4c 3e 20 72 6f 77 73 2c 20 69 6e 74 20 61 |OOL> rows, int a| 00090dd0 74 2c 20 69 6e 74 20 6e 75 6d 62 65 72 29 3b 0a |t, int number);.| 00090de0 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e |Header:.<sprite.| 00090df0 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 |h=>sprite_h>..Re| 00090e00 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 00090e10 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 00090e20 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 00090e30 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 |s function remov| 00090e40 65 73 20 6f 72 20 69 6e 73 65 72 74 73 20 72 6f |es or inserts ro| 00090e50 77 73 20 6f 72 20 63 6f 6c 75 6d 6e 73 2e 20 2f |ws or columns. /| 00090e60 72 6f 77 73 2f 20 64 65 74 65 72 6d 69 6e 65 73 |rows/ determines| 00090e70 20 77 68 65 74 68 65 72 20 74 68 69 73 20 6f 70 | whether this op| 00090e80 65 72 61 74 65 73 20 6f 6e 20 72 6f 77 73 20 6f |erates on rows o| 00090e90 72 20 63 6f 6c 75 6d 6e 73 2e 20 49 66 20 2f 6e |r columns. If /n| 00090ea0 75 6d 62 65 72 2f 20 69 73 20 2d 76 65 20 74 68 |umber/ is -ve th| 00090eb0 65 6e 20 72 6f 77 73 2f 63 6f 6c 75 6d 6e 73 20 |en rows/columns | 00090ec0 61 72 65 20 64 65 6c 65 74 65 64 2e 20 54 68 69 |are deleted. Thi| 00090ed0 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 |s function is eq| 00090ee0 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f |uivalent to <OS_| 00090ef0 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 |SpriteOp=>SWI:OS| 00090f00 5f 53 70 72 69 74 65 4f 70 3e 73 20 35 37 20 61 |_SpriteOp>s 57 a| 00090f10 6e 64 20 35 38 2e 00 00 44 41 54 41 86 00 00 00 |nd 58...DATA....| 00090f20 73 70 72 69 74 65 5f 63 6f 6c 6f 75 72 0a 54 68 |sprite_colour.Th| 00090f30 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 00090f40 65 64 20 69 6e 20 3c 73 70 72 69 74 65 2e 68 3d |ed in <sprite.h=| 00090f50 3e 73 70 72 69 74 65 5f 68 3e 20 61 73 20 74 68 |>sprite_h> as th| 00090f60 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 |e following stru| 00090f70 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |cture:.. \{. | 00090f80 20 69 6e 74 20 63 6f 6c 6f 75 72 3b 0a 20 20 20 | int colour;. | 00090f90 20 69 6e 74 20 74 69 6e 74 3b 0a 20 20 7d 00 00 | int tint;. }..| 00090fa0 44 41 54 41 08 02 00 00 73 70 72 69 74 65 5f 63 |DATA....sprite_c| 00090fb0 6f 70 79 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |opy.Syntax:.<os_| 00090fc0 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 63 |error> *sprite_c| 00090fd0 6f 70 79 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |opy (<sprite_are| 00090fe0 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 00090ff0 65 5f 69 64 3e 20 2a 73 70 72 2c 20 63 68 61 72 |e_id> *spr, char| 00091000 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a | *name);.Header:| 00091010 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 00091020 74 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |te>..Returns:.Po| 00091030 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00091040 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00091050 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00091060 6e 20 63 72 65 61 74 65 73 20 61 6e 20 65 78 61 |n creates an exa| 00091070 63 74 20 63 6f 70 79 20 6f 66 20 74 68 65 20 73 |ct copy of the s| 00091080 70 72 69 74 65 20 77 68 6f 73 65 20 49 44 20 69 |prite whose ID i| 00091090 73 20 67 69 76 65 6e 20 62 79 20 2f 73 70 72 2f |s given by /spr/| 000910a0 2c 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 |, in the specifi| 000910b0 65 64 20 73 70 72 69 74 65 20 61 72 65 61 2e 20 |ed sprite area. | 000910c0 54 68 65 20 6e 65 77 20 73 70 72 69 74 65 27 73 |The new sprite's| 000910d0 20 6e 61 6d 65 20 69 73 20 74 61 6b 65 6e 20 66 | name is taken f| 000910e0 72 6f 6d 20 74 68 65 20 73 74 72 69 6e 67 20 70 |rom the string p| 000910f0 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 6e 61 |ointed to by /na| 00091100 6d 65 2f 2e 20 49 66 20 61 20 73 70 72 69 74 65 |me/. If a sprite| 00091110 20 6f 66 20 74 68 61 74 20 6e 61 6d 65 20 61 6c | of that name al| 00091120 72 65 61 64 79 20 65 78 69 73 74 73 2c 20 61 6e |ready exists, an| 00091130 20 65 72 72 6f 72 20 69 73 20 72 65 74 75 72 6e | error is return| 00091140 65 64 2e 20 49 74 20 69 73 20 69 64 65 6e 74 69 |ed. It is identi| 00091150 63 61 6c 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 |cal to <OS_Sprit| 00091160 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 |eOp=>SWI:OS_Spri| 00091170 74 65 4f 70 3e 20 32 37 2c 20 6f 72 20 2a 53 43 |teOp> 27, or *SC| 00091180 6f 70 79 20 69 66 20 75 73 65 64 20 77 69 74 68 |opy if used with| 00091190 20 74 68 65 20 73 79 73 74 65 6d 20 73 70 72 69 | the system spri| 000911a0 74 65 20 61 72 65 61 2e 44 41 54 41 be 01 00 00 |te area.DATA....| 000911b0 53 70 72 69 74 65 5f 43 6f 70 79 0a 53 79 6e 74 |Sprite_Copy.Synt| 000911c0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000911d0 53 70 72 69 74 65 5f 43 6f 70 79 20 28 3c 73 70 |Sprite_Copy (<sp| 000911e0 72 69 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c |rite_area> area,| 000911f0 20 63 68 61 72 20 2a 6f 6c 64 2c 20 63 68 61 72 | char *old, char| 00091200 20 2a 6e 65 77 29 3b 0a 48 65 61 64 65 72 3a 09 | *new);.Header:.| 00091210 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 00091220 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 |h=>Sprite_DL>..R| 00091230 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00091240 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00091250 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00091260 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 |is function crea| 00091270 74 65 73 20 61 6e 20 65 78 61 63 74 20 63 6f 70 |tes an exact cop| 00091280 79 20 6f 66 20 74 68 65 20 73 70 72 69 74 65 20 |y of the sprite | 00091290 69 6e 20 74 68 65 20 67 69 76 65 6e 20 61 72 65 |in the given are| 000912a0 61 20 77 68 6f 73 65 20 6e 61 6d 65 20 69 73 20 |a whose name is | 000912b0 67 69 76 65 6e 20 69 6e 20 2f 6f 6c 64 2f 20 73 |given in /old/ s| 000912c0 6f 20 74 68 61 74 20 69 74 73 20 6e 65 77 20 6e |o that its new n| 000912d0 61 6d 65 20 69 73 20 74 68 61 74 20 67 69 76 65 |ame is that give| 000912e0 6e 20 69 6e 20 2f 6e 65 77 2f 2e 20 41 6e 20 65 |n in /new/. An e| 000912f0 72 72 6f 72 20 69 73 20 72 65 74 75 72 6e 65 64 |rror is returned| 00091300 20 69 66 20 61 20 73 70 72 69 74 65 20 6f 66 20 | if a sprite of | 00091310 74 68 65 20 6e 65 77 20 6e 61 6d 65 20 61 6c 72 |the new name alr| 00091320 65 61 64 79 20 65 78 69 73 74 73 2e 20 49 74 20 |eady exists. It | 00091330 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 |is identical to | 00091340 53 57 49 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 |SWI <OS_SpriteOp| 00091350 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 65 4f |=>SWI:OS_SpriteO| 00091360 70 3e 20 32 37 2e 00 00 44 41 54 41 b0 01 00 00 |p> 27...DATA....| 00091370 73 70 72 69 74 65 5f 63 72 65 61 74 65 0a 53 79 |sprite_create.Sy| 00091380 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00091390 20 2a 73 70 72 69 74 65 5f 63 72 65 61 74 65 20 | *sprite_create | 000913a0 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a |(<sprite_area> *| 000913b0 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 |area, char *name| 000913c0 2c 20 3c 73 70 72 69 74 65 5f 70 61 6c 66 6c 61 |, <sprite_palfla| 000913d0 67 3e 20 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 |g> x, int w, int| 000913e0 20 68 2c 20 69 6e 74 20 6d 29 3b 0a 48 65 61 64 | h, int m);.Head| 000913f0 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 |er:.<sprite.h=>s| 00091400 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |prite_h>..Return| 00091410 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00091420 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00091430 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00091440 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 61 |nction creates a| 00091450 20 6e 65 77 2c 20 62 6c 61 6e 6b 2c 20 73 70 72 | new, blank, spr| 00091460 69 74 65 20 77 69 74 68 20 74 68 65 20 67 69 76 |ite with the giv| 00091470 65 6e 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 73 |en name in the s| 00091480 70 72 69 74 65 20 61 72 65 61 20 73 70 65 63 69 |prite area speci| 00091490 66 69 65 64 2e 20 54 68 65 20 77 69 64 74 68 20 |fied. The width | 000914a0 61 6e 64 20 68 65 69 67 68 74 20 6f 66 20 74 68 |and height of th| 000914b0 65 20 73 70 72 69 74 65 20 69 6e 20 70 69 78 65 |e sprite in pixe| 000914c0 6c 73 20 61 72 65 20 67 69 76 65 6e 20 62 79 20 |ls are given by | 000914d0 2f 77 2f 20 61 6e 64 20 2f 68 2f 20 72 65 73 70 |/w/ and /h/ resp| 000914e0 65 63 74 69 76 65 6c 79 2e 20 54 68 65 20 73 63 |ectively. The sc| 000914f0 72 65 65 6e 20 6d 6f 64 65 20 6f 66 20 74 68 65 |reen mode of the| 00091500 20 73 70 72 69 74 65 20 69 73 20 67 69 76 65 6e | sprite is given| 00091510 20 69 6e 20 2f 6d 2f 2e 44 41 54 41 ee 01 00 00 | in /m/.DATA....| 00091520 53 70 72 69 74 65 5f 43 72 65 61 74 65 0a 53 79 |Sprite_Create.Sy| 00091530 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00091540 20 2a 53 70 72 69 74 65 5f 43 72 65 61 74 65 20 | *Sprite_Create | 00091550 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 61 |(<sprite_area> a| 00091560 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 2c |rea, char *name,| 00091570 20 69 6e 74 20 70 61 6c 66 6c 61 67 2c 20 69 6e | int palflag, in| 00091580 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 |t w, int h, int | 00091590 6d 6f 64 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |mode);.Header:.<| 000915a0 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 |DeskLib:Sprite.h| 000915b0 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 |=>Sprite_DL>..Re| 000915c0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000915d0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000915e0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000915f0 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 |s function creat| 00091600 65 73 20 61 20 6e 65 77 2c 20 62 6c 61 6e 6b 2c |es a new, blank,| 00091610 20 73 70 72 69 74 65 20 77 69 74 68 20 74 68 65 | sprite with the| 00091620 20 67 69 76 65 6e 20 6e 61 6d 65 20 69 6e 20 74 | given name in t| 00091630 68 65 20 73 70 72 69 74 65 20 61 72 65 61 20 73 |he sprite area s| 00091640 70 65 63 69 66 69 65 64 2e 20 54 68 65 20 77 69 |pecified. The wi| 00091650 64 74 68 20 61 6e 64 20 68 65 69 67 68 74 20 6f |dth and height o| 00091660 66 20 74 68 65 20 73 70 72 69 74 65 20 69 6e 20 |f the sprite in | 00091670 70 69 78 65 6c 73 20 61 72 65 20 67 69 76 65 6e |pixels are given| 00091680 20 62 79 20 2f 77 2f 20 61 6e 64 20 2f 68 2f 20 | by /w/ and /h/ | 00091690 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 54 68 |respectively. Th| 000916a0 65 20 73 63 72 65 65 6e 20 6d 6f 64 65 20 6f 66 |e screen mode of| 000916b0 20 74 68 65 20 73 70 72 69 74 65 20 69 73 20 67 | the sprite is g| 000916c0 69 76 65 6e 20 69 6e 20 2f 6d 6f 64 65 2f 2e 20 |iven in /mode/. | 000916d0 54 68 65 20 73 70 72 69 74 65 20 77 69 6c 6c 20 |The sprite will | 000916e0 68 61 76 65 20 61 20 70 61 6c 65 74 74 65 20 69 |have a palette i| 000916f0 66 20 2f 70 61 6c 66 6c 61 67 2f 20 69 73 20 3c |f /palflag/ is <| 00091700 54 52 55 45 3e 2e 00 00 44 41 54 41 45 01 00 00 |TRUE>...DATAE...| 00091710 73 70 72 69 74 65 5f 63 72 65 61 74 65 5f 6d 61 |sprite_create_ma| 00091720 73 6b 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |sk.Syntax:.<os_e| 00091730 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 63 72 |rror> *sprite_cr| 00091740 65 61 74 65 5f 6d 61 73 6b 20 28 3c 73 70 72 69 |eate_mask (<spri| 00091750 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 |te_area> *area, | 00091760 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 |<sprite_id> *spr| 00091770 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 |);.Header:.<spri| 00091780 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a |te.h=>sprite_h>.| 00091790 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000917a0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000917b0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000917c0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 |This function cr| 000917d0 65 61 74 65 73 20 61 20 6d 61 73 6b 20 66 6f 72 |eates a mask for| 000917e0 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 | the specified s| 000917f0 70 72 69 74 65 20 77 69 74 68 20 61 6c 6c 20 70 |prite with all p| 00091800 69 78 65 6c 73 20 73 65 74 20 74 6f 20 62 65 20 |ixels set to be | 00091810 73 6f 6c 69 64 2e 20 49 74 20 69 73 20 65 71 75 |solid. It is equ| 00091820 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 |ivalent to <OS_S| 00091830 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f |priteOp=>SWI:OS_| 00091840 53 70 72 69 74 65 4f 70 3e 20 32 39 2e 00 00 00 |SpriteOp> 29....| 00091850 44 41 54 41 cd 01 00 00 73 70 72 69 74 65 5f 63 |DATA....sprite_c| 00091860 72 65 61 74 65 5f 72 70 0a 53 79 6e 74 61 78 3a |reate_rp.Syntax:| 00091870 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 |.<os_error> *spr| 00091880 69 74 65 5f 63 72 65 61 74 65 5f 72 70 20 28 3c |ite_create_rp (<| 00091890 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 |sprite_area> *ar| 000918a0 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 |ea, char *name, | 000918b0 3c 73 70 72 69 74 65 5f 70 61 6c 66 6c 61 67 3e |<sprite_palflag>| 000918c0 20 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 | x, int w, int h| 000918d0 2c 20 69 6e 74 20 6d 2c 20 3c 73 70 72 69 74 65 |, int m, <sprite| 000918e0 5f 70 74 72 3e 20 2a 61 64 64 72 29 3b 0a 48 65 |_ptr> *addr);.He| 000918f0 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d |ader:.<sprite.h=| 00091900 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 |>sprite_h>..Retu| 00091910 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00091920 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00091930 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00091940 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 73 |function creates| 00091950 20 61 20 6e 65 77 2c 20 62 6c 61 6e 6b 2c 20 73 | a new, blank, s| 00091960 70 72 69 74 65 20 77 69 74 68 20 74 68 65 20 67 |prite with the g| 00091970 69 76 65 6e 20 6e 61 6d 65 20 69 6e 20 74 68 65 |iven name in the| 00091980 20 73 70 72 69 74 65 20 61 72 65 61 20 73 70 65 | sprite area spe| 00091990 63 69 66 69 65 64 2e 0a 0a 49 74 20 69 73 20 69 |cified...It is i| 000919a0 64 65 6e 74 69 63 61 6c 20 74 6f 20 74 68 65 20 |dentical to the | 000919b0 66 75 6e 63 74 69 6f 6e 20 3c 73 70 72 69 74 65 |function <sprite| 000919c0 5f 63 72 65 61 74 65 3e 2c 20 62 75 74 20 72 65 |_create>, but re| 000919d0 74 75 72 6e 73 20 74 68 65 20 61 64 64 72 65 73 |turns the addres| 000919e0 73 20 6f 66 20 74 68 65 20 73 70 72 69 74 65 20 |s of the sprite | 000919f0 69 6e 20 74 68 65 20 7b 2f 7d 73 70 72 69 74 65 |in the {/}sprite| 00091a00 5f 70 74 72 7b 2f 7d 20 70 6f 69 6e 74 65 64 20 |_ptr{/} pointed | 00091a10 74 6f 20 62 79 20 2f 61 64 64 72 2f 2e 00 00 00 |to by /addr/....| 00091a20 44 41 54 41 ea 00 00 00 53 70 72 69 74 65 5f 43 |DATA....Sprite_C| 00091a30 72 65 61 74 65 4d 61 73 6b 0a 53 79 6e 74 61 78 |reateMask.Syntax| 00091a40 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 |:.<os_error> *Sp| 00091a50 72 69 74 65 5f 43 72 65 61 74 65 4d 61 73 6b 20 |rite_CreateMask | 00091a60 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 61 |(<sprite_area> a| 00091a70 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 29 |rea, char *name)| 00091a80 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 00091a90 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 |ib:Sprite.h=>Spr| 00091aa0 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 |ite_DL>..Returns| 00091ab0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00091ac0 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00091ad0 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00091ae0 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 61 20 |ction creates a | 00091af0 6d 61 73 6b 20 66 6f 72 20 74 68 65 20 67 69 76 |mask for the giv| 00091b00 65 6e 20 73 70 72 69 74 65 2e 00 00 44 41 54 41 |en sprite...DATA| 00091b10 77 01 00 00 53 70 72 69 74 65 5f 43 72 65 61 74 |w...Sprite_Creat| 00091b20 65 50 61 6c 65 74 74 65 0a 53 79 6e 74 61 78 3a |ePalette.Syntax:| 00091b30 09 69 6e 74 20 53 70 72 69 74 65 5f 43 72 65 61 |.int Sprite_Crea| 00091b40 74 65 50 61 6c 65 74 74 65 20 28 3c 73 70 72 69 |tePalette (<spri| 00091b50 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 |te_area> area, c| 00091b60 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 42 4f 4f 4c |har *name, <BOOL| 00091b70 3e 20 62 69 67 29 3b 0a 48 65 61 64 65 72 3a 09 |> big);.Header:.| 00091b80 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 00091b90 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 |h=>Sprite_DL>..R| 00091ba0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00091bb0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00091bc0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00091bd0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 |is function crea| 00091be0 74 65 73 20 61 20 70 61 6c 65 74 74 65 20 66 6f |tes a palette fo| 00091bf0 72 20 74 68 65 20 67 69 76 65 6e 20 73 70 72 69 |r the given spri| 00091c00 74 65 2e 20 49 66 20 2f 62 69 67 2f 20 69 73 20 |te. If /big/ is | 00091c10 74 72 75 65 20 74 68 65 6e 20 61 20 32 35 36 20 |true then a 256 | 00091c20 65 6e 74 72 79 20 70 61 6c 65 74 74 65 20 69 73 |entry palette is| 00091c30 20 63 72 65 61 74 65 64 20 28 52 49 53 43 20 4f | created (RISC O| 00091c40 53 20 33 20 6f 6e 6c 79 29 2e 20 54 68 69 73 20 |S 3 only). This | 00091c50 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f |is equivalent to| 00091c60 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 | <OS_SpriteOp=>S| 00091c70 57 49 3a 4f 53 5f 53 70 72 69 74 65 6f 70 3e 20 |WI:OS_Spriteop> | 00091c80 33 37 2e 00 44 41 54 41 68 01 00 00 73 70 72 69 |37..DATAh...spri| 00091c90 74 65 5f 64 65 6c 65 74 65 0a 53 79 6e 74 61 78 |te_delete.Syntax| 00091ca0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 |:.<os_error> *sp| 00091cb0 72 69 74 65 5f 64 65 6c 65 74 65 20 28 3c 73 70 |rite_delete (<sp| 00091cc0 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 |rite_area> *area| 00091cd0 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 |, <sprite_id> *s| 00091ce0 70 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 |pr);.Header:.<sp| 00091cf0 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 |rite.h=>sprite_h| 00091d00 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00091d10 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 00091d20 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 00091d30 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00091d40 64 65 6c 65 74 65 73 20 74 68 65 20 73 70 72 69 |deletes the spri| 00091d50 74 65 20 77 68 6f 73 65 20 49 44 20 69 73 20 67 |te whose ID is g| 00091d60 69 76 65 6e 20 69 6e 20 2f 73 70 72 2f 2c 20 69 |iven in /spr/, i| 00091d70 6e 20 74 68 65 20 61 72 65 61 20 73 70 65 63 69 |n the area speci| 00091d80 66 69 65 64 2e 20 49 74 20 69 73 20 69 64 65 6e |fied. It is iden| 00091d90 74 69 63 61 6c 20 74 6f 20 3c 4f 53 5f 53 70 72 |tical to <OS_Spr| 00091da0 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 |iteOp=>SWI:OS_Sp| 00091db0 72 69 74 65 4f 70 3e 20 32 35 2c 20 6f 72 20 2a |riteOp> 25, or *| 00091dc0 53 44 65 6c 65 74 65 20 69 66 20 75 73 65 64 20 |SDelete if used | 00091dd0 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 |with the system | 00091de0 73 70 72 69 74 65 20 61 72 65 61 2e 44 41 54 41 |sprite area.DATA| 00091df0 23 01 00 00 53 70 72 69 74 65 5f 44 65 6c 65 74 |#...Sprite_Delet| 00091e00 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |e.Syntax:.<os_er| 00091e10 72 6f 72 3e 20 2a 53 70 72 69 74 65 5f 44 65 6c |ror> *Sprite_Del| 00091e20 65 74 65 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |ete (<sprite_are| 00091e30 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e |a> area, char *n| 00091e40 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ame);.Header:.<D| 00091e50 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d |eskLib:Sprite.h=| 00091e60 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 |>Sprite_DL>..Ret| 00091e70 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00091e80 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00091e90 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00091ea0 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c 65 74 65 | function delete| 00091eb0 73 20 74 68 65 20 73 70 72 69 74 65 20 77 68 6f |s the sprite who| 00091ec0 73 65 20 6e 61 6d 65 20 69 73 20 67 69 76 65 6e |se name is given| 00091ed0 2c 20 69 6e 20 74 68 65 20 61 72 65 61 20 73 70 |, in the area sp| 00091ee0 65 63 69 66 69 65 64 2e 20 49 74 20 69 73 20 69 |ecified. It is i| 00091ef0 64 65 6e 74 69 63 61 6c 20 74 6f 20 53 57 49 20 |dentical to SWI | 00091f00 4f 53 5f 53 70 72 69 74 65 4f 70 20 32 35 2e 00 |OS_SpriteOp 25..| 00091f10 44 41 54 41 83 01 00 00 73 70 72 69 74 65 5f 64 |DATA....sprite_d| 00091f20 65 6c 65 74 65 5f 72 6f 77 0a 53 79 6e 74 61 78 |elete_row.Syntax| 00091f30 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 |:.<os_error> *sp| 00091f40 72 69 74 65 5f 64 65 6c 65 74 65 5f 72 6f 77 20 |rite_delete_row | 00091f50 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a |(<sprite_area> *| 00091f60 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f 69 64 |area, <sprite_id| 00091f70 3e 20 2a 73 70 72 2c 20 69 6e 74 20 72 6f 77 29 |> *spr, int row)| 00091f80 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 |;.Header:.<sprit| 00091f90 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a |e.h=>sprite_h>..| 00091fa0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00091fb0 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00091fc0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00091fd0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c |his function del| 00091fe0 65 74 65 73 20 61 20 72 6f 77 20 69 6e 20 74 68 |etes a row in th| 00091ff0 65 20 73 70 72 69 74 65 20 61 74 20 74 68 65 20 |e sprite at the | 00092000 70 6f 73 69 74 69 6f 6e 20 69 64 65 6e 74 69 66 |position identif| 00092010 69 65 64 20 28 74 68 65 20 62 6f 74 74 6f 6d 20 |ied (the bottom | 00092020 72 6f 77 20 69 73 20 72 6f 77 20 30 29 2c 20 73 |row is row 0), s| 00092030 68 69 66 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 |hifting all rows| 00092040 20 61 62 6f 76 65 20 69 74 20 28 69 66 20 61 6e | above it (if an| 00092050 79 29 20 64 6f 77 6e 20 6f 6e 65 2e 20 49 74 20 |y) down one. It | 00092060 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f |is equivalent to| 00092070 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 | <OS_SpriteOp=>S| 00092080 57 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 |WI:OS_SpriteOp> | 00092090 33 32 2e 00 44 41 54 41 8d 01 00 00 53 70 72 69 |32..DATA....Spri| 000920a0 74 65 5f 44 65 6c 65 74 65 43 6f 6c 75 6d 6e 0a |te_DeleteColumn.| 000920b0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000920c0 72 3e 20 2a 53 70 72 69 74 65 5f 44 65 6c 65 74 |r> *Sprite_Delet| 000920d0 65 43 6f 6c 75 6d 6e 20 28 3c 73 70 72 69 74 65 |eColumn (<sprite| 000920e0 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 |_area> area, cha| 000920f0 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 70 6f 73 |r *name, int pos| 00092100 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 00092110 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 |Lib:Sprite.h=>Sp| 00092120 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e |rite_DL>..Return| 00092130 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00092140 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00092150 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00092160 6e 63 74 69 6f 6e 20 64 65 6c 65 74 65 73 20 61 |nction deletes a| 00092170 20 63 6f 6c 75 6d 6e 20 69 6e 20 74 68 65 20 73 | column in the s| 00092180 70 72 69 74 65 20 61 74 20 74 68 65 20 70 6f 73 |prite at the pos| 00092190 69 74 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 64 |ition identified| 000921a0 20 28 74 68 65 20 6c 65 66 74 20 63 6f 6c 75 6d | (the left colum| 000921b0 6e 20 69 73 20 72 6f 77 20 30 29 2c 20 73 68 69 |n is row 0), shi| 000921c0 66 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 61 |fting all rows a| 000921d0 66 74 65 72 20 69 74 20 28 69 66 20 61 6e 79 29 |fter it (if any)| 000921e0 20 6c 65 66 74 20 6f 6e 65 2e 20 49 74 20 69 73 | left one. It is| 000921f0 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 00092200 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 |OS_SpriteOp=>SWI| 00092210 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 36 |:OS_SpriteOp> 46| 00092220 2e 00 00 00 44 41 54 41 83 01 00 00 53 70 72 69 |....DATA....Spri| 00092230 74 65 5f 44 65 6c 65 74 65 52 6f 77 0a 53 79 6e |te_DeleteRow.Syn| 00092240 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00092250 2a 53 70 72 69 74 65 5f 44 65 6c 65 74 65 52 6f |*Sprite_DeleteRo| 00092260 77 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |w (<sprite_area>| 00092270 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d | area, char *nam| 00092280 65 2c 20 69 6e 74 20 70 6f 73 29 3b 0a 48 65 61 |e, int pos);.Hea| 00092290 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 |der:.<DeskLib:Sp| 000922a0 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 |rite.h=>Sprite_D| 000922b0 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |L>..Returns:.Poi| 000922c0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000922d0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000922e0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000922f0 20 64 65 6c 65 74 65 73 20 61 20 72 6f 77 20 69 | deletes a row i| 00092300 6e 20 74 68 65 20 73 70 72 69 74 65 20 61 74 20 |n the sprite at | 00092310 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 69 64 65 |the position ide| 00092320 6e 74 69 66 69 65 64 20 28 74 68 65 20 62 6f 74 |ntified (the bot| 00092330 74 6f 6d 20 72 6f 77 20 69 73 20 72 6f 77 20 30 |tom row is row 0| 00092340 29 2c 20 73 68 69 66 74 69 6e 67 20 61 6c 6c 20 |), shifting all | 00092350 72 6f 77 73 20 61 62 6f 76 65 20 69 74 20 28 69 |rows above it (i| 00092360 66 20 61 6e 79 29 20 64 6f 77 6e 20 6f 6e 65 2e |f any) down one.| 00092370 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e | It is equivalen| 00092380 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 65 4f |t to <OS_SpriteO| 00092390 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 65 |p=>SWI:OS_Sprite| 000923a0 4f 70 3e 20 33 32 2e 00 44 41 54 41 dc 05 00 00 |Op> 32..DATA....| 000923b0 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 |DeskLib:Sprite.h| 000923c0 0a 56 65 72 73 69 6f 6e 3a 20 30 2e 32 38 20 28 |.Version: 0.28 (| 000923d0 32 32 20 4f 63 74 20 31 39 39 34 29 0a 23 6c 69 |22 Oct 1994).#li| 000923e0 6e 65 0a 54 68 69 73 20 6c 69 62 72 61 72 79 20 |ne.This library | 000923f0 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f |declares functio| 00092400 6e 73 20 61 6e 64 20 74 79 70 65 73 20 66 6f 72 |ns and types for| 00092410 20 73 69 6d 70 6c 65 20 68 61 6e 64 6c 69 6e 67 | simple handling| 00092420 20 6f 66 20 73 70 72 69 74 65 73 2e 20 46 75 6e | of sprites. Fun| 00092430 63 74 69 6f 6e 73 20 6f 6e 6c 79 20 6f 70 65 72 |ctions only oper| 00092440 61 74 65 20 6f 6e 20 6e 61 6d 65 64 20 73 70 72 |ate on named spr| 00092450 69 74 65 73 20 69 6e 20 61 20 75 73 65 72 20 73 |ites in a user s| 00092460 70 72 69 74 65 20 61 72 65 61 2e 0a 0a 46 75 6e |prite area...Fun| 00092470 63 74 69 6f 6e 73 3a 0a 0a 23 74 61 62 6c 65 20 |ctions:..#table | 00092480 63 6f 6c 75 6d 6e 73 20 33 0a 3c 53 70 72 69 74 |columns 3.<Sprit| 00092490 65 5f 53 63 72 65 65 6e 53 61 76 65 3d 3e 53 70 |e_ScreenSave=>Sp| 000924a0 72 69 74 65 5f 53 63 72 65 65 6e 53 61 76 65 5f |rite_ScreenSave_| 000924b0 3e 0a 3c 53 70 72 69 74 65 5f 53 63 72 65 65 6e |>.<Sprite_Screen| 000924c0 4c 6f 61 64 3d 3e 53 70 72 69 74 65 5f 53 63 72 |Load=>Sprite_Scr| 000924d0 65 65 6e 4c 6f 61 64 5f 3e 0a 3c 53 70 72 69 74 |eenLoad_>.<Sprit| 000924e0 65 5f 49 6e 69 74 41 72 65 61 3e 0a 3c 53 70 72 |e_InitArea>.<Spr| 000924f0 69 74 65 5f 4c 6f 61 64 3e 0a 3c 53 70 72 69 74 |ite_Load>.<Sprit| 00092500 65 5f 4c 6f 61 64 46 69 6c 65 3e 0a 3c 53 70 72 |e_LoadFile>.<Spr| 00092510 69 74 65 5f 4c 6f 61 64 46 69 6c 65 73 3e 0a 3c |ite_LoadFiles>.<| 00092520 53 70 72 69 74 65 5f 4d 65 72 67 65 3e 0a 3c 53 |Sprite_Merge>.<S| 00092530 70 72 69 74 65 5f 53 61 76 65 3e 0a 3c 53 70 72 |prite_Save>.<Spr| 00092540 69 74 65 5f 43 72 65 61 74 65 3d 3e 53 70 72 69 |ite_Create=>Spri| 00092550 74 65 5f 43 72 65 61 74 65 5f 3e 0a 3c 53 70 72 |te_Create_>.<Spr| 00092560 69 74 65 5f 44 65 6c 65 74 65 3d 3e 53 70 72 69 |ite_Delete=>Spri| 00092570 74 65 5f 44 65 6c 65 74 65 5f 3e 0a 3c 53 70 72 |te_Delete_>.<Spr| 00092580 69 74 65 5f 52 65 6e 61 6d 65 3d 3e 53 70 72 69 |ite_Rename=>Spri| 00092590 74 65 5f 52 65 6e 61 6d 65 5f 3e 0a 3c 53 70 72 |te_Rename_>.<Spr| 000925a0 69 74 65 5f 43 6f 70 79 3d 3e 53 70 72 69 74 65 |ite_Copy=>Sprite| 000925b0 5f 43 6f 70 79 5f 3e 0a 3c 53 70 72 69 74 65 5f |_Copy_>.<Sprite_| 000925c0 47 65 74 3d 3e 53 70 72 69 74 65 5f 47 65 74 5f |Get=>Sprite_Get_| 000925d0 3e 0a 3c 53 70 72 69 74 65 5f 50 6c 6f 74 3e 0a |>.<Sprite_Plot>.| 000925e0 3c 53 70 72 69 74 65 5f 52 65 61 64 49 6e 66 6f |<Sprite_ReadInfo| 000925f0 3e 0a 3c 53 70 72 69 74 65 5f 52 65 64 69 72 65 |>.<Sprite_Redire| 00092600 63 74 3e 0a 3c 53 70 72 69 74 65 5f 55 6e 52 65 |ct>.<Sprite_UnRe| 00092610 64 69 72 65 63 74 3e 0a 3c 53 70 72 69 74 65 5f |direct>.<Sprite_| 00092620 52 65 61 64 53 61 76 65 41 72 65 61 53 69 7a 65 |ReadSaveAreaSize| 00092630 3e 0a 3c 53 70 72 69 74 65 5f 52 65 61 64 43 6f |>.<Sprite_ReadCo| 00092640 6e 74 72 6f 6c 3e 0a 3c 53 70 72 69 74 65 5f 47 |ntrol>.<Sprite_G| 00092650 65 74 4e 61 6d 65 3d 3e 53 70 72 69 74 65 5f 47 |etName=>Sprite_G| 00092660 65 74 4e 61 6d 65 5f 3e 0a 3c 53 70 72 69 74 65 |etName_>.<Sprite| 00092670 5f 43 72 65 61 74 65 4d 61 73 6b 3e 0a 3c 53 70 |_CreateMask>.<Sp| 00092680 72 69 74 65 5f 52 65 6d 6f 76 65 4d 61 73 6b 3e |rite_RemoveMask>| 00092690 0a 3c 53 70 72 69 74 65 5f 49 6e 73 65 72 74 52 |.<Sprite_InsertR| 000926a0 6f 77 3e 0a 3c 53 70 72 69 74 65 5f 44 65 6c 65 |ow>.<Sprite_Dele| 000926b0 74 65 52 6f 77 3e 0a 3c 53 70 72 69 74 65 5f 46 |teRow>.<Sprite_F| 000926c0 6c 69 70 58 3e 0a 3c 53 70 72 69 74 65 5f 41 70 |lipX>.<Sprite_Ap| 000926d0 70 65 6e 64 3e 0a 3c 53 70 72 69 74 65 5f 43 72 |pend>.<Sprite_Cr| 000926e0 65 61 74 65 50 61 6c 65 74 74 65 3e 0a 3c 53 70 |eatePalette>.<Sp| 000926f0 72 69 74 65 5f 52 65 6d 6f 76 65 50 61 6c 65 74 |rite_RemovePalet| 00092700 74 65 3e 0a 3c 53 70 72 69 74 65 5f 52 65 61 64 |te>.<Sprite_Read| 00092710 50 69 78 65 6c 3d 3e 53 70 72 69 74 65 5f 52 65 |Pixel=>Sprite_Re| 00092720 61 64 50 69 78 65 6c 5f 3e 0a 3c 53 70 72 69 74 |adPixel_>.<Sprit| 00092730 65 5f 57 72 69 74 65 50 69 78 65 6c 3d 3e 53 70 |e_WritePixel=>Sp| 00092740 72 69 74 65 5f 57 72 69 74 65 50 69 78 65 6c 5f |rite_WritePixel_| 00092750 3e 0a 3c 53 70 72 69 74 65 5f 52 65 61 64 4d 61 |>.<Sprite_ReadMa| 00092760 73 6b 3d 3e 53 70 72 69 74 65 5f 52 65 61 64 4d |sk=>Sprite_ReadM| 00092770 61 73 6b 5f 3e 0a 3c 53 70 72 69 74 65 5f 57 72 |ask_>.<Sprite_Wr| 00092780 69 74 65 4d 61 73 6b 3d 3e 53 70 72 69 74 65 5f |iteMask=>Sprite_| 00092790 57 72 69 74 65 4d 61 73 6b 5f 3e 0a 3c 53 70 72 |WriteMask_>.<Spr| 000927a0 69 74 65 5f 49 6e 73 65 72 74 43 6f 6c 75 6d 6e |ite_InsertColumn| 000927b0 3e 0a 3c 53 70 72 69 74 65 5f 44 65 6c 65 74 65 |>.<Sprite_Delete| 000927c0 43 6f 6c 75 6d 6e 3e 0a 3c 53 70 72 69 74 65 5f |Column>.<Sprite_| 000927d0 46 6c 69 70 59 3e 0a 3c 53 70 72 69 74 65 5f 50 |FlipY>.<Sprite_P| 000927e0 6c 6f 74 4d 61 73 6b 3e 0a 3c 53 70 72 69 74 65 |lotMask>.<Sprite| 000927f0 5f 50 6c 6f 74 4d 61 73 6b 53 63 61 6c 65 64 3e |_PlotMaskScaled>| 00092800 0a 3c 53 70 72 69 74 65 5f 50 6c 6f 74 53 63 61 |.<Sprite_PlotSca| 00092810 6c 65 64 3e 0a 3c 53 70 72 69 74 65 5f 50 6c 6f |led>.<Sprite_Plo| 00092820 74 47 72 65 79 3e 0a 3c 53 70 72 69 74 65 5f 57 |tGrey>.<Sprite_W| 00092830 69 6d 70 50 6c 6f 74 3e 0a 3c 53 70 72 69 74 65 |impPlot>.<Sprite| 00092840 5f 4d 65 6d 6f 72 79 53 69 7a 65 3e 0a 3c 53 70 |_MemorySize>.<Sp| 00092850 72 69 74 65 5f 49 63 6f 6e 4d 65 6d 6f 72 79 53 |rite_IconMemoryS| 00092860 69 7a 65 3e 0a 23 65 6e 64 74 61 62 6c 65 0a 0a |ize>.#endtable..| 00092870 4d 61 63 72 6f 73 3a 0a 0a 23 69 6e 64 65 6e 74 |Macros:..#indent| 00092880 20 34 0a 23 54 61 62 6c 65 20 31 20 32 34 0a 3c | 4.#Table 1 24.<| 00092890 73 70 72 69 74 65 5f 4d 41 58 4e 41 4d 45 3e 0a |sprite_MAXNAME>.| 000928a0 3c 73 70 72 69 74 65 70 6f 6f 6c 5f 53 59 53 54 |<spritepool_SYST| 000928b0 45 4d 3e 0a 3c 73 70 72 69 74 65 70 6f 6f 6c 5f |EM>.<spritepool_| 000928c0 57 49 4d 50 3e 0a 23 45 6e 64 54 61 62 6c 65 0a |WIMP>.#EndTable.| 000928d0 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 73 3a 0a |#indent..Types:.| 000928e0 0a 23 69 6e 64 65 6e 74 20 37 0a 23 54 61 62 6c |.#indent 7.#Tabl| 000928f0 65 20 33 20 32 34 0a 3c 73 70 72 69 74 65 3e 0a |e 3 24.<sprite>.| 00092900 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 0a 3c 73 |<sprite_area>.<s| 00092910 70 72 69 74 65 5f 61 72 65 61 69 6e 66 6f 3e 0a |prite_areainfo>.| 00092920 3c 73 70 72 69 74 65 5f 68 65 61 64 65 72 3e 0a |<sprite_header>.| 00092930 3c 73 70 72 69 74 65 5f 69 6e 66 6f 3e 0a 3c 73 |<sprite_info>.<s| 00092940 70 72 69 74 65 5f 6f 75 74 70 75 74 73 74 61 74 |prite_outputstat| 00092950 65 3e 0a 3c 73 70 72 69 74 65 6d 65 6d 5f 66 6c |e>.<spritemem_fl| 00092960 61 67 73 3e 0a 3c 73 70 72 69 74 65 5f 73 63 61 |ags>.<sprite_sca| 00092970 6c 65 66 61 63 74 6f 72 73 3e 0a 23 45 6e 64 54 |lefactors>.#EndT| 00092980 61 62 6c 65 44 41 54 41 97 00 00 00 73 70 72 69 |ableDATA....spri| 00092990 74 65 5f 66 61 63 74 6f 72 73 0a 54 68 69 73 20 |te_factors.This | 000929a0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000929b0 69 6e 20 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 |in <sprite.h=>sp| 000929c0 72 69 74 65 5f 68 3e 2e 20 49 74 20 69 73 20 61 |rite_h>. It is a| 000929d0 20 73 74 72 75 63 74 75 72 65 20 63 6f 6e 74 61 | structure conta| 000929e0 69 6e 69 6e 67 20 73 63 61 6c 65 20 66 61 63 74 |ining scale fact| 000929f0 6f 72 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 |ors:.. \{. i| 00092a00 6e 74 20 78 6d 61 67 2c 79 6d 61 67 2c 78 64 69 |nt xmag,ymag,xdi| 00092a10 76 2c 79 64 69 76 3b 0a 20 20 7d 00 44 41 54 41 |v,ydiv;. }.DATA| 00092a20 3d 01 00 00 73 70 72 69 74 65 5f 66 6c 69 70 5f |=...sprite_flip_| 00092a30 78 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |x.Syntax:.<os_er| 00092a40 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 66 6c 69 |ror> *sprite_fli| 00092a50 70 5f 78 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |p_x (<sprite_are| 00092a60 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 00092a70 65 5f 69 64 3e 20 2a 73 70 72 29 3b 0a 48 65 61 |e_id> *spr);.Hea| 00092a80 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e |der:.<sprite.h=>| 00092a90 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 |sprite_h>..Retur| 00092aa0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00092ab0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00092ac0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00092ad0 75 6e 63 74 69 6f 6e 20 66 6c 69 70 73 20 74 68 |unction flips th| 00092ae0 65 20 73 70 65 63 69 66 69 65 64 20 73 70 72 69 |e specified spri| 00092af0 74 65 20 61 62 6f 75 74 20 74 68 65 20 78 20 61 |te about the x a| 00092b00 78 69 73 2c 20 69 65 20 72 65 76 65 72 73 65 73 |xis, ie reverses| 00092b10 20 69 74 20 74 6f 70 2d 74 6f 2d 62 6f 74 74 6f | it top-to-botto| 00092b20 6d 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c |m. It is equival| 00092b30 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 |ent to <OS_Sprit| 00092b40 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 |eOp=>SWI:OS_Spri| 00092b50 74 65 4f 70 3e 20 33 33 2e 00 00 00 44 41 54 41 |teOp> 33....DATA| 00092b60 3d 01 00 00 73 70 72 69 74 65 5f 66 6c 69 70 5f |=...sprite_flip_| 00092b70 79 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |y.Syntax:.<os_er| 00092b80 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 66 6c 69 |ror> *sprite_fli| 00092b90 70 5f 79 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |p_y (<sprite_are| 00092ba0 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 00092bb0 65 5f 69 64 3e 20 2a 73 70 72 29 3b 0a 48 65 61 |e_id> *spr);.Hea| 00092bc0 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e |der:.<sprite.h=>| 00092bd0 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 |sprite_h>..Retur| 00092be0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00092bf0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00092c00 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00092c10 75 6e 63 74 69 6f 6e 20 66 6c 69 70 73 20 74 68 |unction flips th| 00092c20 65 20 73 70 65 63 69 66 69 65 64 20 73 70 72 69 |e specified spri| 00092c30 74 65 20 61 62 6f 75 74 20 74 68 65 20 79 20 61 |te about the y a| 00092c40 78 69 73 2c 20 69 65 20 72 65 76 65 72 73 65 73 |xis, ie reverses| 00092c50 20 69 74 20 6c 65 66 74 2d 74 6f 2d 72 69 67 68 | it left-to-righ| 00092c60 74 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c |t. It is equival| 00092c70 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 |ent to <OS_Sprit| 00092c80 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 |eOp=>SWI:OS_Spri| 00092c90 74 65 4f 70 3e 20 34 37 2e 00 00 00 44 41 54 41 |teOp> 47....DATA| 00092ca0 3d 01 00 00 53 70 72 69 74 65 5f 46 6c 69 70 58 |=...Sprite_FlipX| 00092cb0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00092cc0 6f 72 3e 20 2a 53 70 72 69 74 65 5f 46 6c 69 70 |or> *Sprite_Flip| 00092cd0 58 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |X (<sprite_area>| 00092ce0 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d | area, char *nam| 00092cf0 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 00092d00 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 |kLib:Sprite.h=>S| 00092d10 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 |prite_DL>..Retur| 00092d20 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00092d30 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00092d40 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00092d50 75 6e 63 74 69 6f 6e 20 66 6c 69 70 73 20 74 68 |unction flips th| 00092d60 65 20 73 70 65 63 69 66 69 65 64 20 73 70 72 69 |e specified spri| 00092d70 74 65 20 61 62 6f 75 74 20 74 68 65 20 58 20 61 |te about the X a| 00092d80 78 69 73 2c 20 69 65 20 72 65 76 65 72 73 65 73 |xis, ie reverses| 00092d90 20 69 74 20 74 6f 70 2d 74 6f 2d 62 6f 74 74 6f | it top-to-botto| 00092da0 6d 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c |m. It is equival| 00092db0 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 |ent to <OS_Sprit| 00092dc0 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 |eOp=>SWI:OS_Spri| 00092dd0 74 65 4f 70 3e 20 33 33 2e 00 00 00 44 41 54 41 |teOp> 33....DATA| 00092de0 3d 01 00 00 53 70 72 69 74 65 5f 46 6c 69 70 59 |=...Sprite_FlipY| 00092df0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00092e00 6f 72 3e 20 2a 53 70 72 69 74 65 5f 46 6c 69 70 |or> *Sprite_Flip| 00092e10 59 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |Y (<sprite_area>| 00092e20 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d | area, char *nam| 00092e30 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 00092e40 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 |kLib:Sprite.h=>S| 00092e50 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 |prite_DL>..Retur| 00092e60 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00092e70 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00092e80 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00092e90 75 6e 63 74 69 6f 6e 20 66 6c 69 70 73 20 74 68 |unction flips th| 00092ea0 65 20 73 70 65 63 69 66 69 65 64 20 73 70 72 69 |e specified spri| 00092eb0 74 65 20 61 62 6f 75 74 20 74 68 65 20 59 20 61 |te about the Y a| 00092ec0 78 69 73 2c 20 69 65 20 72 65 76 65 72 73 65 73 |xis, ie reverses| 00092ed0 20 69 74 20 6c 65 66 74 2d 74 6f 2d 72 69 67 68 | it left-to-righ| 00092ee0 74 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c |t. It is equival| 00092ef0 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 |ent to <OS_Sprit| 00092f00 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 |eOp=>SWI:OS_Spri| 00092f10 74 65 4f 70 3e 20 34 37 2e 00 00 00 44 41 54 41 |teOp> 47....DATA| 00092f20 2c 02 00 00 73 70 72 69 74 65 5f 67 65 74 0a 53 |,...sprite_get.S| 00092f30 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 00092f40 3e 20 2a 73 70 72 69 74 65 5f 67 65 74 20 28 3c |> *sprite_get (<| 00092f50 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 |sprite_area> *ar| 00092f60 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 |ea, char *name, | 00092f70 3c 73 70 72 69 74 65 5f 70 61 6c 66 6c 61 67 3e |<sprite_palflag>| 00092f80 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 | x);.Header:.<sp| 00092f90 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 |rite.h=>sprite_h| 00092fa0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 00092fb0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 00092fc0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 00092fd0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00092fe0 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 73 70 |creates a new sp| 00092ff0 72 69 74 65 20 77 69 74 68 20 74 68 65 20 6e 61 |rite with the na| 00093000 6d 65 20 67 69 76 65 6e 2c 20 69 6e 20 74 68 65 |me given, in the| 00093010 20 73 70 72 69 74 65 20 61 72 65 61 20 73 70 65 | sprite area spe| 00093020 63 69 66 69 65 64 2e 20 57 68 65 74 68 65 72 20 |cified. Whether | 00093030 74 68 65 20 70 61 6c 65 74 74 65 20 69 73 20 69 |the palette is i| 00093040 6e 63 6c 75 64 65 64 20 64 65 70 65 6e 64 73 20 |ncluded depends | 00093050 6f 6e 20 2f 78 2f 2e 20 54 68 65 20 63 6f 6e 74 |on /x/. The cont| 00093060 65 6e 74 73 20 6f 66 20 74 68 65 20 73 70 72 69 |ents of the spri| 00093070 74 65 20 61 72 65 20 74 61 6b 65 6e 20 66 72 6f |te are taken fro| 00093080 6d 20 74 68 65 20 73 63 72 65 65 6e 20 72 65 63 |m the screen rec| 00093090 74 61 6e 67 6c 65 20 64 65 6c 69 6d 69 74 65 64 |tangle delimited| 000930a0 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 | by the current | 000930b0 61 6e 64 20 70 72 65 76 69 6f 75 73 20 67 72 61 |and previous gra| 000930c0 70 68 69 63 73 20 63 75 72 73 6f 72 20 70 6f 73 |phics cursor pos| 000930d0 69 74 69 6f 6e 73 2e 0a 0a 54 68 69 73 20 66 75 |itions...This fu| 000930e0 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 |nction is equiva| 000930f0 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 |lent to <OS_Spri| 00093100 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 |teOp=>SWI:OS_Spr| 00093110 69 74 65 4f 70 3e 20 31 34 2c 20 6f 72 20 2a 53 |iteOp> 14, or *S| 00093120 47 65 74 20 69 66 20 75 73 65 64 20 77 69 74 68 |Get if used with| 00093130 20 74 68 65 20 73 79 73 74 65 6d 20 73 70 72 69 | the system spri| 00093140 74 65 20 61 72 65 61 2e 44 41 54 41 04 02 00 00 |te area.DATA....| 00093150 53 70 72 69 74 65 5f 47 65 74 0a 53 79 6e 74 61 |Sprite_Get.Synta| 00093160 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 |x:.<os_error> *S| 00093170 70 72 69 74 65 5f 47 65 74 20 28 3c 73 70 72 69 |prite_Get (<spri| 00093180 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 |te_area> area, c| 00093190 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 70 |har *name, int p| 000931a0 61 6c 66 6c 61 67 2c 20 69 6e 74 20 78 6c 6f 2c |alflag, int xlo,| 000931b0 20 69 6e 74 20 79 6c 6f 2c 20 69 6e 74 20 78 68 | int ylo, int xh| 000931c0 69 2c 20 69 6e 74 20 79 68 69 29 3b 0a 48 65 61 |i, int yhi);.Hea| 000931d0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 |der:.<DeskLib:Sp| 000931e0 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 |rite.h=>Sprite_D| 000931f0 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |L>..Returns:.Poi| 00093200 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00093210 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00093220 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00093230 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 73 | creates a new s| 00093240 70 72 69 74 65 20 77 69 74 68 20 74 68 65 20 6e |prite with the n| 00093250 61 6d 65 20 67 69 76 65 6e 2c 20 69 6e 20 74 68 |ame given, in th| 00093260 65 20 73 70 72 69 74 65 20 61 72 65 61 20 73 70 |e sprite area sp| 00093270 65 63 69 66 69 65 64 2e 20 57 68 65 74 68 65 72 |ecified. Whether| 00093280 20 74 68 65 20 70 61 6c 65 74 74 65 20 69 73 20 | the palette is | 00093290 69 6e 63 6c 75 64 65 64 20 64 65 70 65 6e 64 73 |included depends| 000932a0 20 6f 6e 20 2f 70 61 6c 66 6c 61 67 2f 2e 20 54 | on /palflag/. T| 000932b0 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 |he contents of t| 000932c0 68 65 20 73 70 72 69 74 65 20 61 72 65 20 74 61 |he sprite are ta| 000932d0 6b 65 6e 20 66 72 6f 6d 20 74 68 65 20 73 63 72 |ken from the scr| 000932e0 65 65 6e 20 72 65 63 74 61 6e 67 6c 65 20 64 65 |een rectangle de| 000932f0 6c 69 6d 69 74 65 64 20 62 79 20 2f 78 6c 6f 2f |limited by /xlo/| 00093300 20 2d 20 2f 79 68 69 2f 2e 0a 0a 54 68 69 73 20 | - /yhi/...This | 00093310 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 |function is equi| 00093320 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 |valent to <OS_Sp| 00093330 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 |riteOp=>SWI:OS_S| 00093340 70 72 69 74 65 6f 70 3e 20 31 36 2e 44 41 54 41 |priteop> 16.DATA| 00093350 0f 02 00 00 73 70 72 69 74 65 5f 67 65 74 5f 67 |....sprite_get_g| 00093360 69 76 65 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |iven.Syntax:.<os| 00093370 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f |_error> *sprite_| 00093380 67 65 74 5f 67 69 76 65 6e 20 28 3c 73 70 72 69 |get_given (<spri| 00093390 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 |te_area> *area, | 000933a0 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 73 70 72 |char *name, <spr| 000933b0 69 74 65 5f 70 61 6c 66 6c 61 67 3e 20 70 61 6c |ite_palflag> pal| 000933c0 66 6c 61 67 2c 20 69 6e 74 20 78 6c 6f 2c 20 69 |flag, int xlo, i| 000933d0 6e 74 20 79 6c 6f 2c 20 69 6e 74 20 78 68 69 2c |nt ylo, int xhi,| 000933e0 20 69 6e 74 20 79 68 69 29 3b 0a 48 65 61 64 65 | int yhi);.Heade| 000933f0 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 |r:.<sprite.h=>sp| 00093400 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |rite_h>..Returns| 00093410 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 00093420 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 00093430 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 00093440 63 74 69 6f 6e 20 63 72 65 61 74 65 73 20 61 20 |ction creates a | 00093450 6e 65 77 20 73 70 72 69 74 65 20 77 69 74 68 20 |new sprite with | 00093460 74 68 65 20 6e 61 6d 65 20 67 69 76 65 6e 2c 20 |the name given, | 00093470 69 6e 20 74 68 65 20 73 70 72 69 74 65 20 61 72 |in the sprite ar| 00093480 65 61 20 73 70 65 63 69 66 69 65 64 2e 20 57 68 |ea specified. Wh| 00093490 65 74 68 65 72 20 74 68 65 20 70 61 6c 65 74 74 |ether the palett| 000934a0 65 20 69 73 20 69 6e 63 6c 75 64 65 64 20 64 65 |e is included de| 000934b0 70 65 6e 64 73 20 6f 6e 20 2f 78 2f 2e 20 54 68 |pends on /x/. Th| 000934c0 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 |e contents of th| 000934d0 65 20 73 70 72 69 74 65 20 61 72 65 20 74 61 6b |e sprite are tak| 000934e0 65 6e 20 66 72 6f 6d 20 74 68 65 20 73 63 72 65 |en from the scre| 000934f0 65 6e 20 72 65 63 74 61 6e 67 6c 65 20 64 65 6c |en rectangle del| 00093500 69 6d 69 74 65 64 20 62 79 20 7b 2f 7d 78 6c 6f |imited by {/}xlo| 00093510 2d 79 68 69 7b 2f 7d 2e 0a 0a 54 68 69 73 20 66 |-yhi{/}...This f| 00093520 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 |unction is equiv| 00093530 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 |alent to <OS_Spr| 00093540 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 |iteOp=>SWI:OS_Sp| 00093550 72 69 74 65 4f 70 3e 20 31 36 2e 00 44 41 54 41 |riteOp> 16..DATA| 00093560 de 01 00 00 73 70 72 69 74 65 5f 67 65 74 5f 67 |....sprite_get_g| 00093570 69 76 65 6e 5f 72 70 0a 53 79 6e 74 61 78 3a 09 |iven_rp.Syntax:.| 00093580 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 |<os_error> *spri| 00093590 74 65 5f 67 65 74 5f 67 69 76 65 6e 5f 72 70 20 |te_get_given_rp | 000935a0 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a |(<sprite_area> *| 000935b0 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 |area, char *name| 000935c0 2c 20 3c 73 70 72 69 74 65 5f 70 61 6c 66 6c 61 |, <sprite_palfla| 000935d0 67 3e 20 78 2c 20 69 6e 74 20 78 6c 6f 2c 20 69 |g> x, int xlo, i| 000935e0 6e 74 20 79 6c 6f 2c 20 69 6e 74 20 78 68 69 2c |nt ylo, int xhi,| 000935f0 20 69 6e 74 20 79 68 69 2c 20 3c 73 70 72 69 74 | int yhi, <sprit| 00093600 65 5f 70 74 72 3e 20 2a 61 64 64 72 29 3b 0a 48 |e_ptr> *addr);.H| 00093610 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 00093620 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 |=>sprite_h>..Ret| 00093630 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00093640 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00093650 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00093660 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 | function create| 00093670 73 20 61 20 6e 65 77 20 73 70 72 69 74 65 20 77 |s a new sprite w| 00093680 69 74 68 20 74 68 65 20 6e 61 6d 65 20 67 69 76 |ith the name giv| 00093690 65 6e 2c 20 69 6e 20 74 68 65 20 73 70 72 69 74 |en, in the sprit| 000936a0 65 20 61 72 65 61 20 73 70 65 63 69 66 69 65 64 |e area specified| 000936b0 2e 0a 0a 49 74 20 69 73 20 69 64 65 6e 74 69 63 |...It is identic| 000936c0 61 6c 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 |al to the functi| 000936d0 6f 6e 20 3c 73 70 72 69 74 65 5f 67 65 74 5f 67 |on <sprite_get_g| 000936e0 69 76 65 6e 3e 2c 20 62 75 74 20 72 65 74 75 72 |iven>, but retur| 000936f0 6e 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6f |ns the address o| 00093700 66 20 74 68 65 20 73 70 72 69 74 65 20 69 6e 20 |f the sprite in | 00093710 74 68 65 20 7b 2f 7d 73 70 72 69 74 65 5f 70 74 |the {/}sprite_pt| 00093720 72 7b 2f 7d 20 70 6f 69 6e 74 65 64 20 74 6f 20 |r{/} pointed to | 00093730 62 79 20 2f 61 64 64 72 2f 2e 00 00 44 41 54 41 |by /addr/...DATA| 00093740 a4 01 00 00 73 70 72 69 74 65 5f 67 65 74 5f 72 |....sprite_get_r| 00093750 70 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |p.Syntax:.<os_er| 00093760 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 67 65 74 |ror> *sprite_get| 00093770 5f 72 70 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |_rp (<sprite_are| 00093780 61 3e 20 2a 61 72 65 61 2c 20 63 68 61 72 20 2a |a> *area, char *| 00093790 6e 61 6d 65 2c 20 3c 73 70 72 69 74 65 5f 70 61 |name, <sprite_pa| 000937a0 6c 66 6c 61 67 3e 20 78 2c 20 3c 73 70 72 69 74 |lflag> x, <sprit| 000937b0 65 5f 70 74 72 3e 20 2a 61 64 64 72 29 3b 0a 48 |e_ptr> *addr);.H| 000937c0 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 000937d0 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 |=>sprite_h>..Ret| 000937e0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000937f0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00093800 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00093810 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 | function create| 00093820 73 20 61 20 6e 65 77 20 73 70 72 69 74 65 20 77 |s a new sprite w| 00093830 69 74 68 20 74 68 65 20 6e 61 6d 65 20 67 69 76 |ith the name giv| 00093840 65 6e 2c 20 69 6e 20 74 68 65 20 73 70 72 69 74 |en, in the sprit| 00093850 65 20 61 72 65 61 20 73 70 65 63 69 66 69 65 64 |e area specified| 00093860 2e 0a 0a 49 74 20 69 73 20 69 64 65 6e 74 69 63 |...It is identic| 00093870 61 6c 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 |al to the functi| 00093880 6f 6e 20 3c 73 70 72 69 74 65 5f 67 65 74 3e 2c |on <sprite_get>,| 00093890 20 62 75 74 20 72 65 74 75 72 6e 73 20 74 68 65 | but returns the| 000938a0 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 | address of the | 000938b0 73 70 72 69 74 65 20 69 6e 20 74 68 65 20 2f 73 |sprite in the /s| 000938c0 70 72 69 74 65 5f 70 74 72 2f 20 70 6f 69 6e 74 |prite_ptr/ point| 000938d0 65 64 20 74 6f 20 62 79 20 2f 61 64 64 72 2f 2e |ed to by /addr/.| 000938e0 44 41 54 41 8d 02 00 00 73 70 72 69 74 65 5f 67 |DATA....sprite_g| 000938f0 65 74 6e 61 6d 65 0a 53 79 6e 74 61 78 3a 09 3c |etname.Syntax:.<| 00093900 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 |os_error> *sprit| 00093910 65 5f 67 65 74 6e 61 6d 65 20 28 3c 73 70 72 69 |e_getname (<spri| 00093920 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 |te_area> *area, | 00093930 76 6f 69 64 20 2a 62 75 66 66 65 72 2c 20 69 6e |void *buffer, in| 00093940 74 20 2a 6c 65 6e 67 74 68 2c 20 69 6e 74 20 69 |t *length, int i| 00093950 6e 64 65 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c |ndex);.Header:.<| 00093960 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 00093970 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 00093980 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00093990 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000939a0 65 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68 65 |e...See also the| 000939b0 20 44 65 73 6b 4c 69 62 20 66 75 6e 63 74 69 6f | DeskLib functio| 000939c0 6e 2c 20 3c 53 70 72 69 74 65 5f 47 65 74 4e 61 |n, <Sprite_GetNa| 000939d0 6d 65 3d 3e 53 70 72 69 74 65 5f 47 65 74 4e 61 |me=>Sprite_GetNa| 000939e0 6d 65 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |me_>...This func| 000939f0 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 |tion returns the| 00093a00 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 70 72 | name of the spr| 00093a10 69 74 65 20 77 68 6f 73 65 20 70 6f 73 69 74 69 |ite whose positi| 00093a20 6f 6e 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 |on in the specif| 00093a30 69 65 64 20 73 70 72 69 74 65 20 61 72 65 61 20 |ied sprite area | 00093a40 69 73 20 67 69 76 65 6e 20 62 79 20 2f 69 6e 64 |is given by /ind| 00093a50 65 78 2f 20 28 6e 75 6d 62 65 72 65 64 20 66 72 |ex/ (numbered fr| 00093a60 6f 6d 20 31 29 2e 0a 0a 54 68 65 20 6e 61 6d 65 |om 1)...The name| 00093a70 20 69 73 20 70 6c 61 63 65 64 20 69 6e 20 74 68 | is placed in th| 00093a80 65 20 61 72 65 61 20 70 6f 69 6e 74 65 64 20 74 |e area pointed t| 00093a90 6f 20 62 79 20 2f 62 75 66 66 65 72 2f 2e 20 4f |o by /buffer/. O| 00093aa0 6e 20 65 6e 74 72 79 20 74 68 65 20 69 6e 74 65 |n entry the inte| 00093ab0 67 65 72 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ger pointed to b| 00093ac0 79 20 2f 6c 65 6e 67 74 68 2f 20 73 68 6f 75 6c |y /length/ shoul| 00093ad0 64 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 6c 65 |d contain the le| 00093ae0 6e 67 74 68 20 6f 66 20 74 68 69 73 20 62 75 66 |ngth of this buf| 00093af0 66 65 72 2e 20 4f 6e 20 65 78 69 74 2c 20 69 74 |fer. On exit, it| 00093b00 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20 74 68 | will contain th| 00093b10 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 |e length of the | 00093b20 6e 61 6d 65 20 72 65 61 64 2e 0a 0a 54 68 69 73 |name read...This| 00093b30 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 | function is equ| 00093b40 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 |ivalent to <OS_S| 00093b50 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f |priteOp=>SWI:OS_| 00093b60 53 70 72 69 74 65 4f 70 3e 20 31 33 2e 00 00 00 |SpriteOp> 13....| 00093b70 44 41 54 41 7d 01 00 00 53 70 72 69 74 65 5f 47 |DATA}...Sprite_G| 00093b80 65 74 4e 61 6d 65 0a 53 79 6e 74 61 78 3a 09 69 |etName.Syntax:.i| 00093b90 6e 74 20 53 70 72 69 74 65 5f 47 65 74 4e 61 6d |nt Sprite_GetNam| 00093ba0 65 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |e (<sprite_area>| 00093bb0 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d | area, char *nam| 00093bc0 65 2c 20 69 6e 74 20 6e 29 3b 0a 48 65 61 64 65 |e, int n);.Heade| 00093bd0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 |r:.<DeskLib:Spri| 00093be0 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e |te.h=>Sprite_DL>| 00093bf0 0a 0a 52 65 74 75 72 6e 73 3a 09 4c 65 6e 67 74 |..Returns:.Lengt| 00093c00 68 20 6f 66 20 6e 61 6d 65 2e 0a 0a 54 68 69 73 |h of name...This| 00093c10 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 | function reads | 00093c20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 73 70 |the name of a sp| 00093c30 72 69 74 65 20 69 6e 20 61 20 67 69 76 65 6e 20 |rite in a given | 00093c40 61 72 65 61 2e 20 54 68 65 20 73 70 72 69 74 65 |area. The sprite| 00093c50 27 73 20 6e 75 6d 62 65 72 20 6d 75 73 74 20 62 |'s number must b| 00093c60 65 20 67 69 76 65 6e 2c 20 74 68 65 20 66 69 72 |e given, the fir| 00093c70 73 74 20 73 70 72 69 74 65 20 62 65 69 6e 67 20 |st sprite being | 00093c80 31 20 61 6e 64 20 74 68 65 20 6e 61 6d 65 20 69 |1 and the name i| 00093c90 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 |s returned in th| 00093ca0 65 20 62 75 66 66 65 72 20 70 6f 69 6e 74 65 72 |e buffer pointer| 00093cb0 20 74 6f 20 62 79 20 2f 6e 61 6d 65 2f 2c 20 77 | to by /name/, w| 00093cc0 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 3c |hich should be <| 00093cd0 73 70 72 69 74 65 5f 4d 41 58 4e 41 4d 45 3e 2b |sprite_MAXNAME>+| 00093ce0 31 20 62 79 74 65 73 20 6c 6f 6e 67 2e 00 00 00 |1 bytes long....| 00093cf0 44 41 54 41 5a 02 00 00 73 70 72 69 74 65 2e 68 |DATAZ...sprite.h| 00093d00 0a 54 68 65 20 5c 3c 73 70 72 69 74 65 2e 68 3e |.The \<sprite.h>| 00093d10 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 00093d20 20 71 75 69 74 65 20 61 20 66 65 77 20 66 75 6e | quite a few fun| 00093d30 63 74 69 6f 6e 73 20 66 6f 72 20 68 61 6e 64 6c |ctions for handl| 00093d40 69 6e 67 20 73 70 72 69 74 65 73 2e 0a 0a 46 75 |ing sprites...Fu| 00093d50 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e 64 65 6e |nctions:..#inden| 00093d60 74 20 37 0a 23 54 61 62 6c 65 20 32 20 32 34 0a |t 7.#Table 2 24.| 00093d70 3c 53 69 6d 70 6c 65 20 46 75 6e 63 74 69 6f 6e |<Simple Function| 00093d80 73 3d 3e 73 70 72 69 74 65 5f 73 69 6d 70 6c 65 |s=>sprite_simple| 00093d90 5f 3e 0a 3c 53 70 72 69 74 65 20 41 72 65 61 20 |_>.<Sprite Area | 00093da0 46 75 6e 63 74 69 6f 6e 73 3d 3e 73 70 72 69 74 |Functions=>sprit| 00093db0 65 5f 61 72 65 61 5f 3e 0a 3c 53 70 72 69 74 65 |e_area_>.<Sprite| 00093dc0 20 46 75 6e 63 74 69 6f 6e 73 3d 3e 73 70 72 69 | Functions=>spri| 00093dd0 74 65 5f 3e 0a 3c 52 49 53 43 20 4f 53 20 33 20 |te_>.<RISC OS 3 | 00093de0 46 75 6e 63 74 69 6f 6e 73 3d 3e 73 70 72 69 74 |Functions=>sprit| 00093df0 65 5f 72 6f 33 5f 3e 0a 23 45 6e 64 54 61 62 6c |e_ro3_>.#EndTabl| 00093e00 65 0a 23 69 6e 64 65 6e 74 0a 0a 4d 61 63 72 6f |e.#indent..Macro| 00093e10 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 37 0a 3c 73 |s:..#indent 7.<s| 00093e20 70 72 69 74 65 5f 6d 61 69 6e 61 72 65 61 3e 0a |prite_mainarea>.| 00093e30 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 73 3a 0a |#indent..Types:.| 00093e40 0a 23 69 6e 64 65 6e 74 20 37 0a 23 54 61 62 6c |.#indent 7.#Tabl| 00093e50 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 73 70 72 |e columns 3.<spr| 00093e60 69 74 65 5f 70 61 6c 66 6c 61 67 3e 0a 3c 73 70 |ite_palflag>.<sp| 00093e70 72 69 74 65 5f 66 61 63 74 6f 72 73 3e 0a 3c 73 |rite_factors>.<s| 00093e80 70 72 69 74 65 5f 70 69 78 74 72 61 6e 73 3e 0a |prite_pixtrans>.| 00093e90 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 0a 3c 73 |<sprite_area>.<s| 00093ea0 70 72 69 74 65 5f 68 65 61 64 65 72 3e 0a 3c 73 |prite_header>.<s| 00093eb0 70 72 69 74 65 5f 70 74 72 3e 0a 3c 73 70 72 69 |prite_ptr>.<spri| 00093ec0 74 65 5f 74 79 70 65 3e 0a 3c 73 70 72 69 74 65 |te_type>.<sprite| 00093ed0 5f 69 64 3e 0a 3c 73 70 72 69 74 65 5f 69 6e 66 |_id>.<sprite_inf| 00093ee0 6f 3e 0a 3c 73 70 72 69 74 65 5f 63 6f 6c 6f 75 |o>.<sprite_colou| 00093ef0 72 3e 0a 3c 73 70 72 69 74 65 5f 6d 61 73 6b 73 |r>.<sprite_masks| 00093f00 74 61 74 65 3e 0a 3c 73 70 72 69 74 65 5f 73 74 |tate>.<sprite_st| 00093f10 61 74 65 3e 0a 3c 73 70 72 69 74 65 5f 70 67 6d |ate>.<sprite_pgm| 00093f20 3e 0a 3c 73 70 72 69 74 65 5f 74 72 61 6e 73 6d |>.<sprite_transm| 00093f30 61 74 3e 0a 3c 73 70 72 69 74 65 5f 62 6f 78 3e |at>.<sprite_box>| 00093f40 0a 23 65 6e 64 74 61 62 6c 65 00 00 44 41 54 41 |.#endtable..DATA| 00093f50 6f 02 00 00 73 70 72 69 74 65 5f 68 65 61 64 65 |o...sprite_heade| 00093f60 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |r.This type is d| 00093f70 65 66 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 74 |efined in <sprit| 00093f80 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 20 28 |e.h=>sprite_h> (| 00093f90 44 65 73 6b 74 6f 70 20 43 29 20 61 6e 64 20 3c |Desktop C) and <| 00093fa0 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 |DeskLib:Sprite.h| 00093fb0 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 2e 20 49 74 |=>Sprite_DL>. It| 00093fc0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 | is defined as t| 00093fd0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 |he following str| 00093fe0 75 63 74 75 72 65 20 69 6e 20 44 65 73 6b 74 6f |ucture in Deskto| 00093ff0 70 20 43 3a 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 |p C:.. \{. | 00094000 20 20 20 20 20 69 6e 74 09 6e 65 78 74 3b 0a 20 | int.next;. | 00094010 20 20 20 20 20 20 20 63 68 61 72 09 6e 61 6d 65 | char.name| 00094020 5b 31 32 5d 3b 0a 20 20 20 20 20 20 20 20 69 6e |[12];. in| 00094030 74 09 77 69 64 74 68 3b 0a 20 20 20 20 20 20 20 |t.width;. | 00094040 20 69 6e 74 09 68 65 69 67 68 74 3b 0a 20 20 20 | int.height;. | 00094050 20 20 20 20 20 69 6e 74 09 6c 62 69 74 3b 0a 20 | int.lbit;. | 00094060 20 20 20 20 20 20 20 69 6e 74 09 72 62 69 74 3b | int.rbit;| 00094070 0a 20 20 20 20 20 20 20 20 69 6e 74 09 69 6d 61 |. int.ima| 00094080 67 65 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 09 |ge;. int.| 00094090 6d 61 73 6b 3b 0a 20 20 20 20 20 20 20 20 69 6e |mask;. in| 000940a0 74 09 6d 6f 64 65 3b 0a 20 20 20 20 7d 0a 0a 61 |t.mode;. }..a| 000940b0 6e 64 20 69 6e 20 44 65 73 6b 4c 69 62 20 69 74 |nd in DeskLib it| 000940c0 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a | is defined as:.| 000940d0 7b 74 61 62 7d 0a 20 20 20 20 5c 7b 0a 20 20 20 |{tab}. \{. | 000940e0 20 20 20 20 20 69 6e 74 09 6f 66 66 73 65 74 5f | int.offset_| 000940f0 6e 65 78 74 3b 0a 20 20 20 20 20 20 20 20 63 68 |next;. ch| 00094100 61 72 09 6e 61 6d 65 5b 3c 73 70 72 69 74 65 5f |ar.name[<sprite_| 00094110 4d 41 58 4e 41 4d 45 3e 5d 3b 0a 20 20 20 20 20 |MAXNAME>];. | 00094120 20 20 20 69 6e 74 09 77 69 64 74 68 3b 0a 20 20 | int.width;. | 00094130 20 20 20 20 20 20 69 6e 74 09 68 65 69 67 68 74 | int.height| 00094140 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 09 6c 65 |;. int.le| 00094150 66 74 62 69 74 3b 0a 20 20 20 20 20 20 20 20 69 |ftbit;. i| 00094160 6e 74 09 72 69 67 68 74 62 69 74 3b 0a 20 20 20 |nt.rightbit;. | 00094170 20 20 20 20 20 69 6e 74 09 69 6d 61 67 65 6f 66 | int.imageof| 00094180 66 73 65 74 3b 0a 20 20 20 20 20 20 20 20 69 6e |fset;. in| 00094190 74 09 6d 61 73 6b 6f 66 66 73 65 74 3b 0a 20 20 |t.maskoffset;. | 000941a0 20 20 20 20 20 20 69 6e 74 09 73 63 72 65 65 6e | int.screen| 000941b0 6d 6f 64 65 3b 0a 20 20 20 20 7d 00 44 41 54 41 |mode;. }.DATA| 000941c0 0d 02 00 00 53 70 72 69 74 65 5f 49 63 6f 6e 4d |....Sprite_IconM| 000941d0 65 6d 6f 72 79 53 69 7a 65 0a 53 79 6e 74 61 78 |emorySize.Syntax| 000941e0 3a 09 69 6e 74 20 53 70 72 69 74 65 5f 49 63 6f |:.int Sprite_Ico| 000941f0 6e 4d 65 6d 6f 72 79 53 69 7a 65 20 28 3c 77 69 |nMemorySize (<wi| 00094200 6e 64 6f 77 5f 62 6c 6f 63 6b 3e 20 2a 77 69 6e |ndow_block> *win| 00094210 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 |, <icon_handle> | 00094220 69 63 6f 6e 2c 20 69 6e 74 20 6d 2c 20 3c 73 70 |icon, int m, <sp| 00094230 72 69 74 65 6d 65 6d 5f 66 6c 61 67 73 3e 20 66 |ritemem_flags> f| 00094240 6c 61 67 73 2c 20 3c 77 69 6d 70 5f 70 6f 69 6e |lags, <wimp_poin| 00094250 74 3e 20 2a 73 69 7a 65 29 3b 0a 48 65 61 64 65 |t> *size);.Heade| 00094260 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 |r:.<DeskLib:Spri| 00094270 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e |te.h=>Sprite_DL>| 00094280 0a 0a 52 65 74 75 72 6e 73 3a 09 53 69 7a 65 20 |..Returns:.Size | 00094290 69 6e 20 62 79 74 65 73 2e 0a 0a 54 68 69 73 20 |in bytes...This | 000942a0 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 |function takes a| 000942b0 20 77 69 6e 64 6f 77 20 64 65 66 69 6e 69 74 69 | window definiti| 000942c0 6f 6e 20 2f 77 69 6e 2f 2c 20 61 6e 20 69 63 6f |on /win/, an ico| 000942d0 6e 20 6e 75 6d 62 65 72 20 2f 69 63 6f 6e 2f 2c |n number /icon/,| 000942e0 20 61 20 73 63 72 65 65 6e 20 6d 6f 64 65 20 2f | a screen mode /| 000942f0 6d 2f 20 61 6e 64 20 73 6f 6d 65 20 66 6c 61 67 |m/ and some flag| 00094300 73 20 2f 66 6c 61 67 73 2f 2c 20 70 75 74 73 20 |s /flags/, puts | 00094310 74 68 65 6d 20 69 6e 20 74 68 65 20 4d 61 67 69 |them in the Magi| 00094320 6d 69 78 20 61 6e 64 20 66 69 6e 64 73 20 68 6f |mix and finds ho| 00094330 77 20 6d 75 63 68 20 6d 65 6d 6f 72 79 20 69 73 |w much memory is| 00094340 20 6e 65 65 64 65 64 20 66 6f 72 20 61 20 73 70 | needed for a sp| 00094350 72 69 74 65 20 74 68 65 20 73 61 6d 65 20 73 69 |rite the same si| 00094360 7a 65 20 61 73 20 74 68 61 74 20 69 63 6f 6e 20 |ze as that icon | 00094370 69 6e 20 74 68 61 74 20 6d 6f 64 65 20 77 69 74 |in that mode wit| 00094380 68 20 74 68 6f 73 65 20 66 6c 61 67 73 2e 20 49 |h those flags. I| 00094390 66 20 2f 73 69 7a 65 2f 20 69 73 20 6e 6f 74 20 |f /size/ is not | 000943a0 3c 4e 55 4c 4c 3e 2c 20 69 74 27 6c 6c 20 74 65 |<NULL>, it'll te| 000943b0 6c 6c 20 79 6f 75 20 74 68 65 20 69 63 6f 6e 20 |ll you the icon | 000943c0 73 69 7a 65 20 74 6f 6f 21 00 00 00 44 41 54 41 |size too!...DATA| 000943d0 be 00 00 00 73 70 72 69 74 65 5f 69 64 0a 54 68 |....sprite_id.Th| 000943e0 69 73 20 69 73 20 61 20 74 79 70 65 20 64 65 66 |is is a type def| 000943f0 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 74 65 2e |ined in <sprite.| 00094400 68 3d 3e 73 70 72 69 74 65 5f 68 3e 20 61 73 20 |h=>sprite_h> as | 00094410 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 |the following st| 00094420 72 75 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a 20 |ructure:.. \{. | 00094430 20 09 75 6e 69 6f 6e 0a 20 20 09 5c 7b 0a 20 20 | .union. .\{. | 00094440 09 20 09 63 68 61 72 20 2a 09 6e 61 6d 65 3b 0a |. .char *.name;.| 00094450 20 20 09 20 09 3c 73 70 72 69 74 65 5f 70 74 72 | . .<sprite_ptr| 00094460 3e 09 61 64 64 72 3b 0a 20 20 09 7d 20 73 3b 0a |>.addr;. .} s;.| 00094470 20 20 09 20 3c 73 70 72 69 74 65 5f 74 79 70 65 | . <sprite_type| 00094480 3e 20 74 61 67 3b 0a 20 20 7d 00 00 46 52 45 45 |> tag;. }..FREE| 00094490 cf 00 00 00 84 93 04 00 74 65 5f 69 6e 66 6f 0a |........te_info.| 000944a0 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 000944b0 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 74 65 2e |ined in <sprite.| 000944c0 68 3d 3e 73 70 72 69 74 65 5f 68 3e 20 28 44 65 |h=>sprite_h> (De| 000944d0 73 6b 74 6f 70 20 43 29 20 61 6e 64 20 3c 44 65 |sktop C) and <De| 000944e0 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e |skLib:Sprite.h=>| 000944f0 53 70 72 69 74 65 5f 44 4c 3e 2e 20 49 74 20 69 |Sprite_DL>. It i| 00094500 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 |s defined as the| 00094510 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 | following struc| 00094520 74 75 72 65 20 69 6e 20 44 65 73 6b 74 6f 70 20 |ture in Desktop | 00094530 43 3a 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 |C:.. \{. | 00094540 20 20 20 69 6e 74 20 77 69 64 74 68 3b 0a 20 20 | int width;. | 00094550 20 20 20 20 20 20 69 6e 74 20 68 44 41 54 41 d9 | int hDATA.| 00094560 00 00 00 4c 5f 74 6d 70 6e 61 6d 0a 23 50 61 72 |...L_tmpnam.#Par| 00094570 65 6e 74 20 73 74 64 69 6f 0a 54 68 65 20 6d 61 |ent stdio.The ma| 00094580 63 72 6f 20 4c 5f 74 6d 70 6e 61 6d 20 69 73 20 |cro L_tmpnam is | 00094590 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 |defined in <stdi| 000945a0 6f 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 73 20 74 |o.h=>stdio> as t| 000945b0 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 |he length of the| 000945c0 20 6c 6f 6e 67 65 73 74 20 66 69 6c 65 6e 61 6d | longest filenam| 000945d0 65 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 75 |e that will be u| 000945e0 73 65 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 |sed by the funct| 000945f0 69 6f 6e 20 3c 74 6d 70 6e 61 6d 3e 2e 20 49 6e |ion <tmpnam>. In| 00094600 20 45 61 73 79 20 43 20 69 74 20 69 73 20 64 65 | Easy C it is de| 00094610 66 69 6e 65 64 20 61 73 20 74 68 65 20 73 61 6d |fined as the sam| 00094620 65 20 61 73 20 3c 46 49 4c 45 4e 41 4d 45 5f 4d |e as <FILENAME_M| 00094630 41 58 3e 2e 20 20 7d 00 44 41 54 41 f9 00 00 00 |AX>. }.DATA....| 00094640 53 70 72 69 74 65 5f 49 6e 69 74 41 72 65 61 0a |Sprite_InitArea.| 00094650 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00094660 72 3e 20 2a 53 70 72 69 74 65 5f 49 6e 69 74 41 |r> *Sprite_InitA| 00094670 72 65 61 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |rea (<sprite_are| 00094680 61 3e 20 61 72 65 61 29 3b 0a 48 65 61 64 65 72 |a> area);.Header| 00094690 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 |:.<DeskLib:Sprit| 000946a0 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a |e.h=>Sprite_DL>.| 000946b0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000946c0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000946d0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000946e0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e |This function in| 000946f0 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 73 70 |itialises the sp| 00094700 72 69 74 65 20 61 72 65 61 2e 20 49 74 20 69 73 |rite area. It is| 00094710 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 53 | equivalent to S| 00094720 57 49 20 4f 53 5f 53 70 72 69 74 65 4f 70 20 39 |WI OS_SpriteOp 9| 00094730 2e 00 00 00 44 41 54 41 91 01 00 00 73 70 72 69 |....DATA....spri| 00094740 74 65 5f 69 6e 73 65 72 74 5f 72 6f 77 0a 53 79 |te_insert_row.Sy| 00094750 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00094760 20 2a 73 70 72 69 74 65 5f 69 6e 73 65 72 74 5f | *sprite_insert_| 00094770 72 6f 77 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |row (<sprite_are| 00094780 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 00094790 65 5f 69 64 3e 20 2a 73 70 72 2c 20 69 6e 74 20 |e_id> *spr, int | 000947a0 72 6f 77 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 |row);.Header:.<s| 000947b0 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f |prite.h=>sprite_| 000947c0 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000947d0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000947e0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000947f0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00094800 20 69 6e 73 65 72 74 73 20 61 20 72 6f 77 20 69 | inserts a row i| 00094810 6e 20 74 68 65 20 67 69 76 65 6e 20 73 70 72 69 |n the given spri| 00094820 74 65 20 61 6e 64 20 74 68 65 20 70 6f 73 69 74 |te and the posit| 00094830 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 64 2c 20 |ion identified, | 00094840 73 68 69 66 74 69 6e 67 20 61 6c 6c 20 72 6f 77 |shifting all row| 00094850 73 20 61 62 6f 76 65 20 69 74 20 28 69 66 20 61 |s above it (if a| 00094860 6e 79 29 20 75 70 20 6f 6e 65 2e 20 52 6f 77 20 |ny) up one. Row | 00094870 30 20 69 73 20 61 74 20 74 68 65 20 62 6f 74 74 |0 is at the bott| 00094880 6f 6d 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f |om. This functio| 00094890 6e 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |n is equivalent | 000948a0 74 6f 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d |to <OS_SpriteOp=| 000948b0 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 |>SWI:OS_SpriteOp| 000948c0 3e 20 33 31 2e 00 00 00 44 41 54 41 91 01 00 00 |> 31....DATA....| 000948d0 53 70 72 69 74 65 5f 49 6e 73 65 72 74 52 6f 77 |Sprite_InsertRow| 000948e0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 000948f0 6f 72 3e 20 2a 53 70 72 69 74 65 5f 49 6e 73 65 |or> *Sprite_Inse| 00094900 72 74 52 6f 77 20 28 3c 73 70 72 69 74 65 5f 61 |rtRow (<sprite_a| 00094910 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 |rea> area, char | 00094920 2a 6e 61 6d 65 2c 20 69 6e 74 20 70 6f 73 29 3b |*name, int pos);| 00094930 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00094940 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 |b:Sprite.h=>Spri| 00094950 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a |te_DL>..Returns:| 00094960 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 00094970 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 00094980 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 00094990 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 61 20 72 |tion inserts a r| 000949a0 6f 77 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 |ow in the given | 000949b0 73 70 72 69 74 65 20 61 6e 64 20 74 68 65 20 70 |sprite and the p| 000949c0 6f 73 69 74 69 6f 6e 20 69 64 65 6e 74 69 66 69 |osition identifi| 000949d0 65 64 2c 20 73 68 69 66 74 69 6e 67 20 61 6c 6c |ed, shifting all| 000949e0 20 72 6f 77 73 20 61 62 6f 76 65 20 69 74 20 28 | rows above it (| 000949f0 69 66 20 61 6e 79 29 20 75 70 20 6f 6e 65 2e 20 |if any) up one. | 00094a00 52 6f 77 20 30 20 69 73 20 61 74 20 74 68 65 20 |Row 0 is at the | 00094a10 62 6f 74 74 6f 6d 2e 20 54 68 69 73 20 66 75 6e |bottom. This fun| 00094a20 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c |ction is equival| 00094a30 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 |ent to <OS_Sprit| 00094a40 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 |eOp=>SWI:OS_Spri| 00094a50 74 65 4f 70 3e 20 33 31 2e 00 00 00 44 41 54 41 |teOp> 31....DATA| 00094a60 67 01 00 00 53 70 72 69 74 65 5f 4c 6f 61 64 0a |g...Sprite_Load.| 00094a70 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00094a80 72 3e 20 2a 53 70 72 69 74 65 5f 4c 6f 61 64 20 |r> *Sprite_Load | 00094a90 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 61 |(<sprite_area> a| 00094aa0 72 65 61 2c 20 63 68 61 72 20 2a 66 69 6c 65 6e |rea, char *filen| 00094ab0 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |ame);.Header:.<D| 00094ac0 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d |eskLib:Sprite.h=| 00094ad0 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 |>Sprite_DL>..Ret| 00094ae0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00094af0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00094b00 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00094b10 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 73 20 | function loads | 00094b20 61 6c 6c 20 74 68 65 20 73 70 72 69 74 65 73 20 |all the sprites | 00094b30 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 64 |in the specified| 00094b40 20 66 69 6c 65 20 69 6e 74 6f 20 74 68 65 20 73 | file into the s| 00094b50 70 72 69 74 65 20 61 72 65 61 20 77 68 6f 73 65 |prite area whose| 00094b60 20 70 6f 69 6e 74 65 72 20 69 73 20 67 69 76 65 | pointer is give| 00094b70 6e 2e 20 41 6e 79 20 73 70 72 69 74 65 73 20 61 |n. Any sprites a| 00094b80 6c 72 65 61 64 79 20 69 6e 20 74 68 65 20 61 72 |lready in the ar| 00094b90 65 61 20 61 72 65 20 64 65 6c 65 74 65 64 2e 20 |ea are deleted. | 00094ba0 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 |It is equivalent| 00094bb0 20 74 6f 20 4f 53 5f 53 70 72 69 74 65 4f 70 20 | to OS_SpriteOp | 00094bc0 31 30 2e 00 44 41 54 41 37 01 00 00 53 70 72 69 |10..DATA7...Spri| 00094bd0 74 65 5f 4c 6f 61 64 46 69 6c 65 0a 53 79 6e 74 |te_LoadFile.Synt| 00094be0 61 78 3a 09 3c 73 70 72 69 74 65 5f 61 72 65 61 |ax:.<sprite_area| 00094bf0 3e 20 53 70 72 69 74 65 5f 4c 6f 61 64 46 69 6c |> Sprite_LoadFil| 00094c00 65 20 28 63 68 61 72 20 2a 66 69 6c 65 6e 61 6d |e (char *filenam| 00094c10 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 00094c20 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 |kLib:Sprite.h=>S| 00094c30 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 |prite_DL>..Retur| 00094c40 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 73 |ns:.Pointer to s| 00094c50 70 72 69 74 65 20 61 72 65 61 20 63 72 65 61 74 |prite area creat| 00094c60 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ed...This functi| 00094c70 6f 6e 20 61 6c 6c 6f 63 61 74 65 73 20 73 70 61 |on allocates spa| 00094c80 63 65 20 66 6f 72 20 61 20 73 70 72 69 74 65 20 |ce for a sprite | 00094c90 61 72 65 61 20 77 69 74 68 20 3c 6d 61 6c 6c 6f |area with <mallo| 00094ca0 63 3e 2c 20 69 6e 69 74 69 61 6c 69 73 65 73 20 |c>, initialises | 00094cb0 69 74 20 61 6e 64 20 6c 6f 61 64 20 74 68 65 20 |it and load the | 00094cc0 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 20 69 |specified file i| 00094cd0 6e 74 6f 20 69 74 2e 20 54 68 65 20 65 61 73 79 |nto it. The easy| 00094ce0 20 77 61 79 20 74 6f 20 6c 6f 61 64 20 61 20 73 | way to load a s| 00094cf0 70 72 69 74 65 20 66 69 6c 65 2e 00 44 41 54 41 |prite file..DATA| 00094d00 cd 00 00 00 73 70 72 69 74 65 5f 6d 61 69 6e 61 |....sprite_maina| 00094d10 72 65 61 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |rea.This macro i| 00094d20 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 70 |s defined in <sp| 00094d30 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 |rite.h=>sprite_h| 00094d40 3e 2e 20 49 74 20 63 61 6e 20 62 65 20 75 73 65 |>. It can be use| 00094d50 64 20 61 73 20 61 20 73 70 72 69 74 65 20 61 72 |d as a sprite ar| 00094d60 65 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 69 6e |ea pointer to in| 00094d70 64 69 63 61 74 65 20 74 68 65 20 73 79 73 74 65 |dicate the syste| 00094d80 6d 20 73 70 72 69 74 65 20 61 72 65 61 2e 20 49 |m sprite area. I| 00094d90 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 3a |t is defined as:| 00094da0 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 |..{fCode;align c| 00094db0 65 6e 74 72 65 7d 28 28 73 70 72 69 74 65 5f 61 |entre}((sprite_a| 00094dc0 72 65 61 20 2a 29 20 30 29 00 00 00 44 41 54 41 |rea *) 0)...DATA| 00094dd0 a1 00 00 00 73 70 72 69 74 65 5f 6d 61 73 6b 73 |....sprite_masks| 00094de0 74 61 74 65 0a 54 68 69 73 20 65 6e 75 6d 65 72 |tate.This enumer| 00094df0 61 74 65 64 20 74 79 70 65 20 69 73 20 64 65 66 |ated type is def| 00094e00 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 74 65 2e |ined in <sprite.| 00094e10 68 3d 3e 73 70 72 69 74 65 3e 20 61 73 20 66 6f |h=>sprite> as fo| 00094e20 6c 6c 6f 77 73 3a 0a 0a 20 20 20 5c 7b 0a 20 20 |llows:.. \{. | 00094e30 20 20 20 73 70 72 69 74 65 5f 6d 61 73 6b 74 72 | sprite_masktr| 00094e40 61 6e 73 70 61 72 65 6e 74 09 3d 20 30 2c 0a 20 |ansparent.= 0,. | 00094e50 20 20 20 20 73 70 72 69 74 65 5f 6d 61 73 6b 73 | sprite_masks| 00094e60 6f 6c 69 64 09 3d 20 31 0a 20 20 20 7d 00 00 00 |olid.= 1. }...| 00094e70 44 41 54 41 a5 00 00 00 73 70 72 69 74 65 5f 4d |DATA....sprite_M| 00094e80 41 58 4e 41 4d 45 0a 54 68 69 73 20 6d 61 63 72 |AXNAME.This macr| 00094e90 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |o is defined in | 00094ea0 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 00094eb0 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 20 61 73 |h=>Sprite_DL> as| 00094ec0 20 61 20 76 61 6c 75 65 20 72 65 70 72 65 73 65 | a value represe| 00094ed0 6e 74 69 6e 67 20 74 68 65 20 6c 6f 6e 67 65 73 |nting the longes| 00094ee0 74 20 73 70 72 69 74 65 20 6e 61 6d 65 20 77 68 |t sprite name wh| 00094ef0 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 2e |ich can be used.| 00094f00 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | It is defined a| 00094f10 73 20 31 32 2e 00 00 00 44 41 54 41 f2 01 00 00 |s 12....DATA....| 00094f20 53 70 72 69 74 65 5f 4d 65 6d 6f 72 79 53 69 7a |Sprite_MemorySiz| 00094f30 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 53 70 |e.Syntax:.int Sp| 00094f40 72 69 74 65 5f 4d 65 6d 6f 72 79 53 69 7a 65 20 |rite_MemorySize | 00094f50 28 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 |(int w, int h, i| 00094f60 6e 74 20 6d 2c 20 3c 73 70 72 69 74 65 6d 65 6d |nt m, <spritemem| 00094f70 5f 66 6c 61 67 73 3e 20 66 6c 61 67 73 29 3b 0a |_flags> flags);.| 00094f80 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 00094f90 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 |:Sprite.h=>Sprit| 00094fa0 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |e_DL>..Returns:.| 00094fb0 53 69 7a 65 20 69 6e 20 62 79 74 65 73 2e 0a 0a |Size in bytes...| 00094fc0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 |This function ca| 00094fd0 6c 63 75 6c 61 74 65 73 20 74 68 65 20 61 6d 6f |lculates the amo| 00094fe0 75 6e 74 20 6f 66 20 6d 65 6d 6f 72 79 20 6e 65 |unt of memory ne| 00094ff0 65 64 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 |eded to hold the| 00095000 20 73 70 72 69 74 65 20 77 68 6f 73 65 20 77 69 | sprite whose wi| 00095010 64 74 68 2c 20 68 65 69 67 68 74 20 61 6e 64 20 |dth, height and | 00095020 6d 6f 64 65 20 61 72 65 20 73 70 65 63 69 66 69 |mode are specifi| 00095030 65 64 20 28 69 6e 20 7b 2f 7d 77 7b 2f 7d 2c 20 |ed (in {/}w{/}, | 00095040 7b 2f 7d 68 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 6d |{/}h{/} and {/}m| 00095050 7b 2f 7d 29 2e 20 54 68 65 20 73 74 61 74 75 73 |{/}). The status| 00095060 20 6f 66 20 74 68 65 20 6d 61 73 6b 20 61 6e 64 | of the mask and| 00095070 20 70 61 6c 65 74 74 65 20 61 72 65 20 64 65 74 | palette are det| 00095080 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 2f |ermined by the /| 00095090 66 6c 61 67 73 2f 2e 0a 0a 52 65 6d 65 6d 62 65 |flags/...Remembe| 000950a0 72 20 74 68 61 74 20 66 6f 72 20 61 20 73 70 72 |r that for a spr| 000950b0 69 74 65 20 61 72 65 61 2c 20 79 6f 75 20 6e 65 |ite area, you ne| 000950c0 65 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 73 |ed to find the s| 000950d0 69 7a 65 73 20 6f 66 20 61 6c 6c 20 74 68 65 20 |izes of all the | 000950e0 73 70 72 69 74 65 73 20 61 6e 64 20 61 64 64 20 |sprites and add | 000950f0 73 69 7a 65 6f 66 28 3c 73 70 72 69 74 65 5f 61 |sizeof(<sprite_a| 00095100 72 65 61 69 6e 66 6f 3e 29 2e 00 00 44 41 54 41 |reainfo>)...DATA| 00095110 d6 01 00 00 53 70 72 69 74 65 5f 4d 65 72 67 65 |....Sprite_Merge| 00095120 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00095130 6f 72 3e 20 2a 53 70 72 69 74 65 5f 4d 65 72 67 |or> *Sprite_Merg| 00095140 65 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |e (<sprite_area>| 00095150 20 61 72 65 61 2c 20 63 68 61 72 20 2a 66 69 6c | area, char *fil| 00095160 65 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 |ename);.Header:.| 00095170 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 00095180 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 |h=>Sprite_DL>..R| 00095190 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000951a0 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000951b0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000951c0 69 73 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 |is function load| 000951d0 73 20 61 6c 6c 20 74 68 65 20 73 70 72 69 74 65 |s all the sprite| 000951e0 73 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 |s in the specifi| 000951f0 65 64 20 66 69 6c 65 20 69 6e 74 6f 20 74 68 65 |ed file into the| 00095200 20 73 70 72 69 74 65 20 61 72 65 61 20 77 68 6f | sprite area who| 00095210 73 65 20 70 6f 69 6e 74 65 72 20 69 73 20 67 69 |se pointer is gi| 00095220 76 65 6e 2e 20 54 68 65 20 73 70 72 69 74 65 73 |ven. The sprites| 00095230 20 61 72 65 20 61 64 64 65 64 20 74 6f 20 61 6e | are added to an| 00095240 79 20 73 70 72 69 74 65 73 20 61 6c 72 65 61 64 |y sprites alread| 00095250 79 20 69 6e 20 74 68 65 20 61 72 65 61 2e 20 49 |y in the area. I| 00095260 66 20 61 6e 79 20 6e 65 77 20 73 70 72 69 74 65 |f any new sprite| 00095270 73 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 |s have the same | 00095280 6e 61 6d 65 20 61 73 20 65 78 69 73 74 69 6e 67 |name as existing| 00095290 20 73 70 72 69 74 65 73 2c 20 74 68 65 20 6f 6c | sprites, the ol| 000952a0 64 20 6f 6e 65 73 20 61 72 65 20 64 65 6c 65 74 |d ones are delet| 000952b0 65 64 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f |ed. This functio| 000952c0 6e 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |n is equivalent | 000952d0 74 6f 20 4f 53 5f 53 70 72 69 74 65 4f 70 20 31 |to OS_SpriteOp 1| 000952e0 31 2e 00 00 44 41 54 41 f2 00 00 00 73 70 72 69 |1...DATA....spri| 000952f0 74 65 5f 6f 75 74 70 75 74 73 74 61 74 65 0a 54 |te_outputstate.T| 00095300 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 00095310 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 00095320 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 |Sprite.h=>Sprite| 00095330 5f 44 4c 3e 2e 20 49 74 20 69 73 20 64 65 66 69 |_DL>. It is defi| 00095340 6e 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |ned as the follo| 00095350 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 00095360 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 20 20 |. \{. | 00095370 69 6e 74 09 09 63 61 6c 6c 6e 6f 3b 0a 20 20 20 |int..callno;. | 00095380 20 20 20 20 20 3c 73 70 72 69 74 65 5f 61 72 65 | <sprite_are| 00095390 61 3e 09 73 70 72 69 74 65 61 72 65 61 3b 0a 20 |a>.spritearea;. | 000953a0 20 20 20 20 20 20 20 3c 73 70 72 69 74 65 3e 09 | <sprite>.| 000953b0 73 70 72 69 74 65 3b 0a 20 20 20 20 20 20 20 20 |sprite;. | 000953c0 76 6f 69 64 09 09 2a 73 61 76 65 61 72 65 61 3b |void..*savearea;| 000953d0 0a 20 20 20 20 7d 00 00 44 41 54 41 2a 01 00 00 |. }..DATA*...| 000953e0 73 70 72 69 74 65 5f 6f 75 74 70 75 74 74 6f 6d |sprite_outputtom| 000953f0 61 73 6b 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ask.Syntax:.<os_| 00095400 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 6f |error> *sprite_o| 00095410 75 74 70 75 74 74 6f 6d 61 73 6b 20 28 3c 73 70 |utputtomask (<sp| 00095420 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 |rite_area> *area| 00095430 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 |, <sprite_id> *s| 00095440 70 72 2c 20 69 6e 74 20 2a 73 61 76 65 61 72 65 |pr, int *saveare| 00095450 61 2c 20 3c 73 70 72 69 74 65 5f 73 74 61 74 65 |a, <sprite_state| 00095460 3e 20 2a 73 74 61 74 65 29 3b 0a 48 65 61 64 65 |> *state);.Heade| 00095470 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 |r:.<sprite.h=>sp| 00095480 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |rite_h>..Returns| 00095490 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000954a0 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000954b0 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000954c0 63 74 69 6f 6e 20 72 65 64 69 72 65 63 74 73 20 |ction redirects | 000954d0 56 44 55 20 6f 75 74 70 75 74 20 74 6f 20 61 20 |VDU output to a | 000954e0 73 70 72 69 74 65 20 6d 61 73 6b 2c 20 73 61 76 |sprite mask, sav| 000954f0 69 6e 67 20 74 68 65 20 6f 6c 64 20 73 74 61 74 |ing the old stat| 00095500 65 2e 00 00 44 41 54 41 09 01 00 00 73 70 72 69 |e...DATA....spri| 00095510 74 65 5f 6f 75 74 70 75 74 74 6f 73 63 72 65 65 |te_outputtoscree| 00095520 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |n.Syntax:.<os_er| 00095530 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 6f 75 74 |ror> *sprite_out| 00095540 70 75 74 74 6f 73 63 72 65 65 6e 20 28 69 6e 74 |puttoscreen (int| 00095550 20 2a 73 61 76 65 61 72 65 61 2c 20 3c 73 70 72 | *savearea, <spr| 00095560 69 74 65 5f 73 74 61 74 65 3e 20 2a 73 74 61 74 |ite_state> *stat| 00095570 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 |e);.Header:.<spr| 00095580 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e |ite.h=>sprite_h>| 00095590 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000955a0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000955b0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 000955c0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000955d0 65 64 69 72 65 63 74 73 20 56 44 55 20 6f 75 74 |edirects VDU out| 000955e0 70 75 74 20 62 61 63 6b 20 74 6f 20 74 68 65 20 |put back to the | 000955f0 73 63 72 65 65 6e 2c 20 73 61 76 69 6e 67 20 74 |screen, saving t| 00095600 68 65 20 6f 6c 64 20 73 74 61 74 65 2e 00 00 00 |he old state....| 00095610 44 41 54 41 29 01 00 00 73 70 72 69 74 65 5f 6f |DATA)...sprite_o| 00095620 75 74 70 75 74 74 6f 73 70 72 69 74 65 0a 53 79 |utputtosprite.Sy| 00095630 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00095640 20 2a 73 70 72 69 74 65 5f 6f 75 74 70 75 74 74 | *sprite_outputt| 00095650 6f 73 70 72 69 74 65 20 28 3c 73 70 72 69 74 65 |osprite (<sprite| 00095660 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 |_area> *area, <s| 00095670 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 |prite_id> *spr, | 00095680 69 6e 74 20 2a 73 61 76 65 61 72 65 61 2c 20 3c |int *savearea, <| 00095690 73 70 72 69 74 65 5f 73 74 61 74 65 3e 20 2a 73 |sprite_state> *s| 000956a0 74 61 74 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |tate);.Header:.<| 000956b0 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 000956c0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 000956d0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000956e0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000956f0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00095700 6e 20 72 65 64 69 72 65 63 74 73 20 56 44 55 20 |n redirects VDU | 00095710 6f 75 74 70 75 74 20 74 6f 20 61 20 73 70 72 69 |output to a spri| 00095720 74 65 2c 20 73 61 76 69 6e 67 20 74 68 65 20 6f |te, saving the o| 00095730 6c 64 20 73 74 61 74 65 2e 00 00 00 44 41 54 41 |ld state....DATA| 00095740 c6 00 00 00 73 70 72 69 74 65 5f 70 61 6c 66 6c |....sprite_palfl| 00095750 61 67 0a 54 68 69 73 20 69 73 20 61 6e 20 65 6e |ag.This is an en| 00095760 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 64 65 |umerated type de| 00095770 66 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 74 65 |fined in <sprite| 00095780 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 2e 20 49 |.h=>sprite_h>. I| 00095790 74 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e 64 |t is used to ind| 000957a0 69 63 61 74 65 20 77 68 65 74 68 65 72 20 74 68 |icate whether th| 000957b0 65 20 73 70 72 69 74 65 20 68 61 73 20 61 20 70 |e sprite has a p| 000957c0 61 6c 65 74 74 65 2e 0a 0a 20 20 5c 7b 0a 20 20 |alette... \{. | 000957d0 20 20 73 70 72 69 74 65 5f 6e 6f 70 61 6c 65 74 | sprite_nopalet| 000957e0 74 65 09 3d 20 30 2c 0a 20 20 20 20 73 70 72 69 |te.= 0,. spri| 000957f0 74 65 5f 68 61 73 70 61 6c 65 74 74 65 09 0a 20 |te_haspalette.. | 00095800 20 7d 00 00 44 41 54 41 93 00 00 00 73 70 72 69 | }..DATA....spri| 00095810 74 65 5f 70 67 6d 0a 54 68 69 73 20 74 79 70 65 |te_pgm.This type| 00095820 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 00095830 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 00095840 5f 68 3e 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f |_h> as the follo| 00095850 77 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a |wing structure:.| 00095860 7b 77 72 61 70 20 6f 66 66 7d 0a 20 20 5c 7b 0a |{wrap off}. \{.| 00095870 20 20 20 20 69 6e 74 20 70 30 5b 32 5d 2c 20 70 | int p0[2], p| 00095880 31 5b 32 5d 2c 20 70 32 5b 32 5d 2c 20 70 33 5b |1[2], p2[2], p3[| 00095890 32 5d 3b 0a 20 20 7d 00 44 41 54 41 d6 00 00 00 |2];. }.DATA....| 000958a0 73 70 72 69 74 65 5f 70 69 78 74 72 61 6e 73 0a |sprite_pixtrans.| 000958b0 54 68 69 73 20 69 73 20 61 20 74 79 70 65 20 64 |This is a type d| 000958c0 65 66 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 74 |efined in <sprit| 000958d0 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 20 73 |e.h=>sprite_h> s| 000958e0 75 63 68 20 74 68 61 74 20 61 20 70 6f 69 6e 74 |uch that a point| 000958f0 65 72 20 74 6f 20 74 68 69 73 20 74 79 70 65 20 |er to this type | 00095900 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 |is a pointer to | 00095910 61 20 70 69 78 65 6c 20 74 72 61 6e 73 6c 61 74 |a pixel translat| 00095920 69 6f 6e 20 74 61 62 6c 65 2e 20 48 65 6e 63 65 |ion table. Hence| 00095930 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | it is defined a| 00095940 73 20 61 20 2f 63 68 61 72 2f 20 28 69 65 20 74 |s a /char/ (ie t| 00095950 68 65 20 70 6f 69 6e 74 65 72 20 69 73 20 61 20 |he pointer is a | 00095960 7b 2f 7d 63 68 61 72 20 2a 7b 2f 7d 29 2e 00 00 |{/}char *{/})...| 00095970 44 41 54 41 de 01 00 00 53 70 72 69 74 65 5f 50 |DATA....Sprite_P| 00095980 6c 6f 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |lot.Syntax:.<os_| 00095990 65 72 72 6f 72 3e 20 2a 53 70 72 69 74 65 5f 50 |error> *Sprite_P| 000959a0 6c 6f 74 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |lot (<sprite_are| 000959b0 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e |a> area, char *n| 000959c0 61 6d 65 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 |ame, int x, int | 000959d0 79 2c 20 69 6e 74 20 61 29 3b 0a 48 65 61 64 65 |y, int a);.Heade| 000959e0 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 |r:.<DeskLib:Spri| 000959f0 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e |te.h=>Sprite_DL>| 00095a00 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 00095a10 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 00095a20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 00095a30 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 |.This function p| 00095a40 6c 6f 74 73 20 74 68 65 20 73 70 72 69 74 65 20 |lots the sprite | 00095a50 69 64 65 6e 74 69 66 69 65 64 20 6f 6e 20 74 68 |identified on th| 00095a60 65 20 73 63 72 65 65 6e 20 77 69 74 68 20 69 74 |e screen with it| 00095a70 73 20 62 6f 74 74 6f 6d 20 6c 65 66 74 20 63 6f |s bottom left co| 00095a80 72 6e 65 72 20 61 74 20 7b 2f 7d 28 78 2c 79 29 |rner at {/}(x,y)| 00095a90 7b 2f 7d 2e 20 54 68 65 20 70 6c 6f 74 20 3c 61 |{/}. The plot <a| 00095aa0 63 74 69 6f 6e 3d 3e 56 44 55 3a 31 38 61 3e 2c |ction=>VDU:18a>,| 00095ab0 20 67 69 76 65 6e 20 69 6e 20 2f 61 2f 2c 20 69 | given in /a/, i| 00095ac0 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 |s the same as th| 00095ad0 61 74 20 75 73 65 64 20 66 6f 72 20 3c 47 43 4f |at used for <GCO| 00095ae0 4c 3d 3e 42 61 73 69 63 3a 47 43 4f 4c 3e 20 65 |L=>Basic:GCOL> e| 00095af0 78 63 65 70 74 20 74 68 61 74 20 76 61 6c 75 65 |xcept that value| 00095b00 73 20 38 2d 31 35 20 69 6e 64 69 63 61 74 65 20 |s 8-15 indicate | 00095b10 74 68 61 74 20 74 68 65 20 6d 61 73 6b 20 73 68 |that the mask sh| 00095b20 6f 75 6c 64 20 62 65 20 75 73 65 64 2e 20 56 61 |ould be used. Va| 00095b30 6c 75 65 73 20 61 62 6f 76 65 20 31 36 20 68 61 |lues above 16 ha| 00095b40 76 65 20 6e 6f 20 6d 65 61 6e 69 6e 67 2e 00 00 |ve no meaning...| 00095b50 44 41 54 41 e0 02 00 00 53 70 72 69 74 65 5f 50 |DATA....Sprite_P| 00095b60 6c 6f 74 47 72 65 79 0a 53 79 6e 74 61 78 3a 09 |lotGrey.Syntax:.| 00095b70 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 72 69 |<os_error> *Spri| 00095b80 74 65 5f 50 6c 6f 74 47 72 65 79 20 28 3c 73 70 |te_PlotGrey (<sp| 00095b90 72 69 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c |rite_area> area,| 00095ba0 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 77 69 | char *name, <wi| 00095bb0 6d 70 5f 70 6f 69 6e 74 3e 20 2a 70 6f 73 2c 20 |mp_point> *pos, | 00095bc0 3c 73 70 72 69 74 65 5f 73 63 61 6c 65 66 61 63 |<sprite_scalefac| 00095bd0 74 6f 72 73 3e 20 73 63 2c 20 76 6f 69 64 20 2a |tors> sc, void *| 00095be0 70 69 78 74 72 61 6e 29 3b 0a 48 65 61 64 65 72 |pixtran);.Header| 00095bf0 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 |:.<DeskLib:Sprit| 00095c00 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a |e.h=>Sprite_DL>.| 00095c10 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00095c20 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00095c30 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00095c40 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 |This function is| 00095c50 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 53 70 72 | similar to <Spr| 00095c60 69 74 65 5f 50 6c 6f 74 53 63 61 6c 65 64 3e 2c |ite_PlotScaled>,| 00095c70 20 65 78 63 65 70 74 20 74 68 61 74 20 69 74 20 | except that it | 00095c80 61 6e 74 69 2d 61 6c 69 61 73 65 73 20 74 68 65 |anti-aliases the| 00095c90 20 73 70 72 69 74 65 20 61 73 20 69 74 20 73 63 | sprite as it sc| 00095ca0 61 6c 65 73 20 69 74 2e 20 54 68 65 20 73 70 72 |ales it. The spr| 00095cb0 69 74 65 20 6d 75 73 74 20 68 61 76 65 20 62 65 |ite must have be| 00095cc0 65 6e 20 64 65 66 69 6e 65 64 20 69 6e 20 61 20 |en defined in a | 00095cd0 31 36 20 63 6f 6c 6f 75 72 20 6d 6f 64 65 2c 20 |16 colour mode, | 00095ce0 61 6e 64 20 74 68 65 20 70 61 6c 65 74 74 65 20 |and the palette | 00095cf0 6d 75 73 74 20 62 65 20 61 20 6c 69 6e 65 61 72 |must be a linear| 00095d00 20 67 72 65 79 2d 73 63 61 6c 65 2e 0a 0a 54 68 | grey-scale...Th| 00095d10 69 73 20 63 61 6c 6c 20 69 73 20 73 6c 6f 77 20 |is call is slow | 00095d20 61 6e 64 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 |and should only | 00095d30 62 65 20 75 73 65 64 20 77 68 65 6e 20 74 68 65 |be used when the| 00095d40 20 71 75 61 6c 69 74 79 20 69 73 20 6d 6f 72 65 | quality is more| 00095d50 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 61 6e 20 | important than | 00095d60 73 70 65 65 64 2e 20 49 66 20 74 68 69 73 20 71 |speed. If this q| 00095d70 75 61 6c 69 74 79 20 69 73 20 6e 65 65 64 65 64 |uality is needed| 00095d80 20 66 6f 72 20 73 6f 6d 65 74 68 69 6e 67 20 74 | for something t| 00095d90 68 61 74 20 77 69 6c 6c 20 62 65 20 72 65 64 72 |hat will be redr| 00095da0 61 77 6e 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e |awn more than on| 00095db0 63 65 2c 20 69 74 20 69 73 20 61 64 76 69 73 61 |ce, it is advisa| 00095dc0 62 6c 65 20 74 6f 20 72 65 64 72 61 77 20 69 74 |ble to redraw it| 00095dd0 20 6f 6e 63 65 20 69 6e 74 6f 20 61 6e 6f 74 68 | once into anoth| 00095de0 65 72 20 73 70 72 69 74 65 2c 20 75 73 69 6e 67 |er sprite, using| 00095df0 20 3c 53 70 72 69 74 65 5f 52 65 64 69 72 65 63 | <Sprite_Redirec| 00095e00 74 3e 2c 20 61 6e 64 20 74 68 65 6e 20 72 65 64 |t>, and then red| 00095e10 72 61 77 20 74 6f 20 73 63 72 65 65 6e 20 75 73 |raw to screen us| 00095e20 69 6e 67 20 74 68 69 73 20 73 70 72 69 74 65 2e |ing this sprite.| 00095e30 44 41 54 41 30 02 00 00 53 70 72 69 74 65 5f 50 |DATA0...Sprite_P| 00095e40 6c 6f 74 4d 61 73 6b 0a 53 79 6e 74 61 78 3a 09 |lotMask.Syntax:.| 00095e50 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 72 69 |<os_error> *Spri| 00095e60 74 65 5f 50 6c 6f 74 4d 61 73 6b 20 28 3c 73 70 |te_PlotMask (<sp| 00095e70 72 69 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c |rite_area> area,| 00095e80 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 77 69 | char *name, <wi| 00095e90 6d 70 5f 70 6f 69 6e 74 3e 20 2a 70 6f 73 29 3b |mp_point> *pos);| 00095ea0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 00095eb0 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 |b:Sprite.h=>Spri| 00095ec0 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a |te_DL>..Returns:| 00095ed0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 00095ee0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 00095ef0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 00095f00 74 69 6f 6e 20 70 6c 6f 74 73 20 61 20 73 70 72 |tion plots a spr| 00095f10 69 74 65 20 6d 61 73 6b 20 69 6e 20 74 68 65 20 |ite mask in the | 00095f20 63 75 72 72 65 6e 74 20 62 61 63 6b 67 72 6f 75 |current backgrou| 00095f30 6e 64 20 67 72 61 70 68 69 63 73 20 63 6f 6c 6f |nd graphics colo| 00095f40 75 72 20 61 6e 64 20 61 63 74 69 6f 6e 20 28 73 |ur and action (s| 00095f50 65 74 20 75 73 69 6e 67 20 3c 47 46 58 5f 47 43 |et using <GFX_GC| 00095f60 4f 4c 3e 29 2c 20 61 74 20 74 68 65 20 63 75 72 |OL>), at the cur| 00095f70 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 63 75 |rent graphics cu| 00095f80 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2e 20 41 |rsor position. A| 00095f90 6c 6c 20 31 20 62 69 74 73 20 69 6e 20 74 68 65 |ll 1 bits in the| 00095fa0 20 6d 61 73 6b 20 61 72 65 20 70 6c 6f 74 74 65 | mask are plotte| 00095fb0 64 2c 20 30 20 62 69 74 73 20 61 72 65 20 6e 6f |d, 0 bits are no| 00095fc0 74 2e 20 49 66 20 74 68 65 20 73 70 65 63 69 66 |t. If the specif| 00095fd0 69 65 64 20 73 70 72 69 74 65 20 68 61 73 20 6e |ied sprite has n| 00095fe0 6f 20 6d 61 73 6b 2c 20 61 20 72 65 63 74 61 6e |o mask, a rectan| 00095ff0 67 6c 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 |gle the size of | 00096000 74 68 65 20 73 70 72 69 74 65 20 69 73 20 70 6c |the sprite is pl| 00096010 6f 74 74 65 64 20 69 6e 73 74 65 61 64 2e 20 54 |otted instead. T| 00096020 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 00096030 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f |equivalent to <O| 00096040 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a |S_SpriteOp=>SWI:| 00096050 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 38 2e |OS_SpriteOp> 48.| 00096060 44 41 54 41 10 02 00 00 53 70 72 69 74 65 5f 50 |DATA....Sprite_P| 00096070 6c 6f 74 4d 61 73 6b 53 63 61 6c 65 64 0a 53 79 |lotMaskScaled.Sy| 00096080 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 00096090 20 2a 53 70 72 69 74 65 5f 50 6c 6f 74 4d 61 73 | *Sprite_PlotMas| 000960a0 6b 53 63 61 6c 65 64 20 28 3c 73 70 72 69 74 65 |kScaled (<sprite| 000960b0 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 |_area> area, cha| 000960c0 72 20 2a 6e 61 6d 65 2c 20 3c 77 69 6d 70 5f 70 |r *name, <wimp_p| 000960d0 6f 69 6e 74 3e 20 2a 70 2c 20 3c 73 70 72 69 74 |oint> *p, <sprit| 000960e0 65 5f 73 63 61 6c 65 66 61 63 74 6f 72 73 3e 20 |e_scalefactors> | 000960f0 73 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |sc);.Header:.<De| 00096100 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e |skLib:Sprite.h=>| 00096110 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 |Sprite_DL>..Retu| 00096120 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00096130 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00096140 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00096150 66 75 6e 63 74 69 6f 6e 20 70 6c 6f 74 73 20 61 |function plots a| 00096160 20 73 70 72 69 74 65 20 6d 61 73 6b 20 69 6e 20 | sprite mask in | 00096170 74 68 65 20 63 75 72 72 65 6e 74 20 62 61 63 6b |the current back| 00096180 67 72 6f 75 6e 64 20 67 72 61 70 68 69 63 73 20 |ground graphics | 00096190 63 6f 6c 6f 75 72 20 61 6e 64 20 61 63 74 69 6f |colour and actio| 000961a0 6e 20 28 73 65 74 20 75 73 69 6e 67 20 3c 47 46 |n (set using <GF| 000961b0 58 5f 47 43 4f 4c 3e 29 20 61 74 20 7b 2f 7d 28 |X_GCOL>) at {/}(| 000961c0 78 2c 79 29 7b 2f 7d 2e 20 41 6c 6c 20 31 20 62 |x,y){/}. All 1 b| 000961d0 69 74 73 20 69 6e 20 74 68 65 20 6d 61 73 6b 20 |its in the mask | 000961e0 61 72 65 20 70 6c 6f 74 74 65 64 2c 20 30 20 62 |are plotted, 0 b| 000961f0 69 74 73 20 61 72 65 20 6e 6f 74 2e 20 54 68 65 |its are not. The| 00096200 20 6d 61 73 6b 20 69 73 20 73 63 61 6c 65 64 20 | mask is scaled | 00096210 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 |according to the| 00096220 20 73 63 61 6c 65 64 20 66 61 63 74 6f 72 73 20 | scaled factors | 00096230 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 |pointed to by /s| 00096240 63 2f 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f |c/. This functio| 00096250 6e 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |n is equivalent | 00096260 74 6f 20 4f 53 5f 53 70 72 69 74 65 20 35 30 2e |to OS_Sprite 50.| 00096270 44 41 54 41 5d 02 00 00 53 70 72 69 74 65 5f 50 |DATA]...Sprite_P| 00096280 6c 6f 74 53 63 61 6c 65 64 0a 53 79 6e 74 61 78 |lotScaled.Syntax| 00096290 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 |:.<os_error> *Sp| 000962a0 72 69 74 65 5f 50 6c 6f 74 53 63 61 6c 65 64 20 |rite_PlotScaled | 000962b0 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 61 |(<sprite_area> a| 000962c0 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 2c |rea, char *name,| 000962d0 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 20 2a 70 | <wimp_point> *p| 000962e0 6f 73 2c 20 3c 73 70 72 69 74 65 5f 73 63 61 6c |os, <sprite_scal| 000962f0 65 66 61 63 74 6f 72 73 3e 20 73 63 2c 20 76 6f |efactors> sc, vo| 00096300 69 64 20 2a 70 69 78 74 72 61 6e 29 3b 0a 48 65 |id *pixtran);.He| 00096310 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 00096320 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f |prite.h=>Sprite_| 00096330 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |DL>..Returns:.Po| 00096340 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00096350 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00096360 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00096370 6e 20 77 69 6c 6c 20 70 6c 6f 74 20 74 68 65 20 |n will plot the | 00096380 73 70 72 69 74 65 20 69 64 65 6e 74 69 66 69 65 |sprite identifie| 00096390 64 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 20 |d on the screen | 000963a0 77 69 74 68 20 69 74 73 20 62 6f 74 74 6f 6d 20 |with its bottom | 000963b0 6c 65 66 74 20 63 6f 72 6e 65 72 20 61 74 20 70 |left corner at p| 000963c0 6f 73 69 74 69 6f 6e 20 2f 70 6f 73 2f 20 75 73 |osition /pos/ us| 000963d0 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 |ing the current | 000963e0 67 72 61 70 68 69 63 73 20 63 6f 6c 6f 75 72 20 |graphics colour | 000963f0 61 6e 64 20 61 63 74 69 6f 6e 2e 0a 0a 49 6e 20 |and action...In | 00096400 61 64 64 69 74 69 6f 6e 20 74 68 65 20 73 70 72 |addition the spr| 00096410 69 74 65 20 77 69 6c 6c 20 62 65 20 73 63 61 6c |ite will be scal| 00096420 65 64 20 75 73 69 6e 67 20 74 68 65 20 73 63 61 |ed using the sca| 00096430 6c 69 6e 67 20 66 61 63 74 6f 72 73 20 70 6f 69 |ling factors poi| 00096440 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 63 2f 2c |nted to by /sc/,| 00096450 20 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 70 | and using the p| 00096460 69 78 65 6c 20 74 72 61 6e 73 6c 61 74 69 6f 6e |ixel translation| 00096470 20 74 61 62 6c 65 20 67 69 76 65 6e 20 62 79 20 | table given by | 00096480 2f 70 69 78 74 72 61 6e 2f 2e 0a 0a 54 68 69 73 |/pixtran/...This| 00096490 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 | function is equ| 000964a0 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 |ivalent to <OS_S| 000964b0 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f |priteOp=>SWI:OS_| 000964c0 53 70 72 69 74 65 4f 70 3e 20 35 32 2e 00 00 00 |SpriteOp> 52....| 000964d0 44 41 54 41 9d 00 00 00 73 70 72 69 74 65 5f 70 |DATA....sprite_p| 000964e0 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |tr.This type is | 000964f0 64 65 66 69 6e 65 64 20 69 6e 20 3c 73 70 72 69 |defined in <spri| 00096500 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 20 |te.h=>sprite_h> | 00096510 61 73 20 61 20 74 79 70 65 20 63 61 70 61 62 6c |as a type capabl| 00096520 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 61 20 70 |e of holding a p| 00096530 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 70 72 69 |ointer to a spri| 00096540 74 65 2e 20 49 74 20 69 73 20 61 63 74 75 61 6c |te. It is actual| 00096550 6c 79 20 64 65 66 69 6e 65 64 20 61 73 20 61 20 |ly defined as a | 00096560 7b 2f 7d 76 6f 69 64 20 2a 7b 2f 7d 2e 00 00 00 |{/}void *{/}....| 00096570 44 41 54 41 db 01 00 00 73 70 72 69 74 65 5f 70 |DATA....sprite_p| 00096580 75 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ut.Syntax:.<os_e| 00096590 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 70 75 |rror> *sprite_pu| 000965a0 74 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |t (<sprite_area>| 000965b0 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f | *area, <sprite_| 000965c0 69 64 3e 20 2a 73 70 72 2c 20 69 6e 74 20 61 29 |id> *spr, int a)| 000965d0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 |;.Header:.<sprit| 000965e0 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a |e.h=>sprite_h>..| 000965f0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00096600 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00096610 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00096620 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 75 74 |his function put| 00096630 73 20 74 68 65 20 73 70 72 69 74 65 20 69 64 65 |s the sprite ide| 00096640 6e 74 69 66 69 65 64 20 6f 6e 20 74 68 65 20 73 |ntified on the s| 00096650 63 72 65 65 6e 20 77 69 74 68 20 69 74 73 20 62 |creen with its b| 00096660 6f 74 74 6f 6d 20 6c 65 66 74 20 63 6f 72 6e 65 |ottom left corne| 00096670 72 20 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 |r at the current| 00096680 20 67 72 61 70 68 69 63 73 20 63 75 72 73 6f 72 | graphics cursor| 00096690 20 70 6f 73 69 74 69 6f 6e 2e 20 54 68 65 20 70 | position. The p| 000966a0 6c 6f 74 20 3c 61 63 74 69 6f 6e 3d 3e 56 44 55 |lot <action=>VDU| 000966b0 3a 31 38 61 3e 2c 20 67 69 76 65 6e 20 69 6e 20 |:18a>, given in | 000966c0 2f 61 2f 2c 20 69 73 20 74 68 65 20 73 61 6d 65 |/a/, is the same| 000966d0 20 61 73 20 74 68 61 74 20 75 73 65 64 20 66 6f | as that used fo| 000966e0 72 20 3c 6f 73 5f 67 63 6f 6c 3e 20 65 78 63 65 |r <os_gcol> exce| 000966f0 70 74 20 74 68 61 74 20 76 61 6c 75 65 73 20 38 |pt that values 8| 00096700 2d 31 35 20 69 6e 64 69 63 61 74 65 20 74 68 61 |-15 indicate tha| 00096710 74 20 74 68 65 20 6d 61 73 6b 20 73 68 6f 75 6c |t the mask shoul| 00096720 64 20 62 65 20 75 73 65 64 2e 20 56 61 6c 75 65 |d be used. Value| 00096730 73 20 61 62 6f 76 65 20 31 36 20 68 61 76 65 20 |s above 16 have | 00096740 6e 6f 20 6d 65 61 6e 69 6e 67 2e 00 44 41 54 41 |no meaning..DATA| 00096750 dc 01 00 00 73 70 72 69 74 65 5f 70 75 74 5f 67 |....sprite_put_g| 00096760 69 76 65 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |iven.Syntax:.<os| 00096770 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f |_error> *sprite_| 00096780 70 75 74 5f 67 69 76 65 6e 20 28 3c 73 70 72 69 |put_given (<spri| 00096790 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 |te_area> *area, | 000967a0 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 |<sprite_id> *spr| 000967b0 2c 20 69 6e 74 20 61 2c 20 69 6e 74 20 78 2c 20 |, int a, int x, | 000967c0 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 |int y);.Header:.| 000967d0 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 |<sprite.h=>sprit| 000967e0 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |e_h>..Returns:.P| 000967f0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00096800 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00096810 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00096820 6f 6e 20 70 75 74 73 20 74 68 65 20 73 70 72 69 |on puts the spri| 00096830 74 65 20 69 64 65 6e 74 69 66 69 65 64 20 6f 6e |te identified on| 00096840 20 74 68 65 20 73 63 72 65 65 6e 20 77 69 74 68 | the screen with| 00096850 20 69 74 73 20 62 6f 74 74 6f 6d 20 6c 65 66 74 | its bottom left| 00096860 20 63 6f 72 6e 65 72 20 61 74 20 7b 2f 7d 28 78 | corner at {/}(x| 00096870 2c 79 29 7b 2f 7d 2e 20 54 68 65 20 70 6c 6f 74 |,y){/}. The plot| 00096880 20 3c 61 63 74 69 6f 6e 3d 3e 56 44 55 3a 31 38 | <action=>VDU:18| 00096890 61 3e 2c 20 67 69 76 65 6e 20 69 6e 20 2f 61 2f |a>, given in /a/| 000968a0 2c 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 |, is the same as| 000968b0 20 74 68 61 74 20 75 73 65 64 20 66 6f 72 20 3c | that used for <| 000968c0 6f 73 5f 67 63 6f 6c 3e 20 65 78 63 65 70 74 20 |os_gcol> except | 000968d0 74 68 61 74 20 76 61 6c 75 65 73 20 38 2d 31 35 |that values 8-15| 000968e0 20 69 6e 64 69 63 61 74 65 20 74 68 61 74 20 74 | indicate that t| 000968f0 68 65 20 6d 61 73 6b 20 73 68 6f 75 6c 64 20 62 |he mask should b| 00096900 65 20 75 73 65 64 2e 20 56 61 6c 75 65 73 20 61 |e used. Values a| 00096910 62 6f 76 65 20 31 36 20 68 61 76 65 20 6e 6f 20 |bove 16 have no | 00096920 6d 65 61 6e 69 6e 67 2e 44 41 54 41 1a 02 00 00 |meaning.DATA....| 00096930 73 70 72 69 74 65 5f 70 75 74 5f 6d 61 73 6b 0a |sprite_put_mask.| 00096940 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00096950 72 3e 20 2a 73 70 72 69 74 65 5f 70 75 74 5f 6d |r> *sprite_put_m| 00096960 61 73 6b 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |ask (<sprite_are| 00096970 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 00096980 65 5f 69 64 3e 20 2a 73 70 72 29 3b 0a 48 65 61 |e_id> *spr);.Hea| 00096990 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e |der:.<sprite.h=>| 000969a0 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 |sprite_h>..Retur| 000969b0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000969c0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000969d0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000969e0 75 6e 63 74 69 6f 6e 20 70 6c 6f 74 73 20 61 20 |unction plots a | 000969f0 73 70 72 69 74 65 20 6d 61 73 6b 20 69 6e 20 74 |sprite mask in t| 00096a00 68 65 20 63 75 72 72 65 6e 74 20 62 61 63 6b 67 |he current backg| 00096a10 72 6f 75 6e 64 20 67 72 61 70 68 69 63 73 20 63 |round graphics c| 00096a20 6f 6c 6f 75 72 20 61 6e 64 20 61 63 74 69 6f 6e |olour and action| 00096a30 20 28 73 65 74 20 75 73 69 6e 67 20 3c 6f 73 5f | (set using <os_| 00096a40 67 63 6f 6c 3e 29 2c 20 61 74 20 74 68 65 20 63 |gcol>), at the c| 00096a50 75 72 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 |urrent graphics | 00096a60 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2e |cursor position.| 00096a70 20 41 6c 6c 20 31 20 62 69 74 73 20 69 6e 20 74 | All 1 bits in t| 00096a80 68 65 20 6d 61 73 6b 20 61 72 65 20 70 6c 6f 74 |he mask are plot| 00096a90 74 65 64 2c 20 30 20 62 69 74 73 20 61 72 65 20 |ted, 0 bits are | 00096aa0 6e 6f 74 2e 20 49 66 20 74 68 65 20 73 70 65 63 |not. If the spec| 00096ab0 69 66 69 65 64 20 73 70 72 69 74 65 20 68 61 73 |ified sprite has| 00096ac0 20 6e 6f 20 6d 61 73 6b 2c 20 61 20 72 65 63 74 | no mask, a rect| 00096ad0 61 6e 67 6c 65 20 74 68 65 20 73 69 7a 65 20 6f |angle the size o| 00096ae0 66 20 74 68 65 20 73 70 72 69 74 65 20 69 73 20 |f the sprite is | 00096af0 70 6c 6f 74 74 65 64 20 69 6e 73 74 65 61 64 2e |plotted instead.| 00096b00 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 | This function i| 00096b10 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |s equivalent to | 00096b20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 |<OS_SpriteOp=>SW| 00096b30 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 |I:OS_SpriteOp> 4| 00096b40 38 2e 00 00 44 41 54 41 30 01 00 00 73 70 72 69 |8...DATA0...spri| 00096b50 74 65 5f 70 75 74 5f 6d 61 73 6b 5f 70 67 6d 0a |te_put_mask_pgm.| 00096b60 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00096b70 72 3e 20 2a 73 70 72 69 74 65 5f 70 75 74 5f 6d |r> *sprite_put_m| 00096b80 61 73 6b 5f 70 67 6d 20 28 3c 73 70 72 69 74 65 |ask_pgm (<sprite| 00096b90 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 |_area> *area, <s| 00096ba0 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 |prite_id> *spr, | 00096bb0 3c 73 70 72 69 74 65 5f 62 6f 78 3e 20 2a 62 6f |<sprite_box> *bo| 00096bc0 78 2c 20 3c 73 70 72 69 74 65 5f 70 67 6d 3e 20 |x, <sprite_pgm> | 00096bd0 70 67 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 |pgm);.Header:.<s| 00096be0 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f |prite.h=>sprite_| 00096bf0 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 00096c00 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00096c10 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00096c20 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00096c30 20 70 6c 6f 74 73 20 61 20 62 6f 78 20 66 72 6f | plots a box fro| 00096c40 6d 20 74 68 65 20 6d 61 73 6b 20 69 6e 20 62 61 |m the mask in ba| 00096c50 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 73 |ckground colours| 00096c60 20 74 6f 20 61 20 70 61 72 61 6c 6c 65 6c 6f 67 | to a parallelog| 00096c70 72 61 6d 2e 44 41 54 41 44 01 00 00 73 70 72 69 |ram.DATAD...spri| 00096c80 74 65 5f 70 75 74 5f 6d 61 73 6b 5f 74 72 61 6e |te_put_mask_tran| 00096c90 73 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |s.Syntax:.<os_er| 00096ca0 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 70 75 74 |ror> *sprite_put| 00096cb0 5f 6d 61 73 6b 5f 74 72 61 6e 73 20 28 3c 73 70 |_mask_trans (<sp| 00096cc0 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 |rite_area> *area| 00096cd0 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 |, <sprite_id> *s| 00096ce0 70 72 2c 20 3c 73 70 72 69 74 65 5f 62 6f 78 3e |pr, <sprite_box>| 00096cf0 20 2a 62 6f 78 2c 20 3c 73 70 72 69 74 65 5f 74 | *box, <sprite_t| 00096d00 72 61 6e 73 6d 61 74 3e 20 74 29 3b 0a 48 65 61 |ransmat> t);.Hea| 00096d10 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e |der:.<sprite.h=>| 00096d20 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 |sprite_h>..Retur| 00096d30 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00096d40 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00096d50 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00096d60 75 6e 63 74 69 6f 6e 20 70 6c 6f 74 73 20 61 20 |unction plots a | 00096d70 62 6f 78 20 66 72 6f 6d 20 74 68 65 20 6d 61 73 |box from the mas| 00096d80 6b 20 69 6e 20 62 61 63 6b 67 72 6f 75 6e 64 20 |k in background | 00096d90 63 6f 6c 6f 75 72 73 20 74 68 72 6f 75 67 68 20 |colours through | 00096da0 61 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e |a transformation| 00096db0 20 6d 61 74 72 69 78 2e 44 41 54 41 33 01 00 00 | matrix.DATA3...| 00096dc0 73 70 72 69 74 65 5f 70 75 74 5f 70 67 6d 0a 53 |sprite_put_pgm.S| 00096dd0 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 00096de0 3e 20 2a 73 70 72 69 74 65 5f 70 75 74 5f 70 67 |> *sprite_put_pg| 00096df0 6d 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |m (<sprite_area>| 00096e00 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f | *area, <sprite_| 00096e10 69 64 3e 20 2a 73 70 72 2c 20 69 6e 74 20 61 63 |id> *spr, int ac| 00096e20 74 69 6f 6e 2c 20 3c 73 70 72 69 74 65 5f 62 6f |tion, <sprite_bo| 00096e30 78 3e 20 2a 62 6f 78 2c 20 3c 73 70 72 69 74 65 |x> *box, <sprite| 00096e40 5f 70 67 6d 3e 20 2a 74 2c 20 3c 73 70 72 69 74 |_pgm> *t, <sprit| 00096e50 65 5f 70 69 78 74 72 61 6e 73 3e 20 2a 70 29 3b |e_pixtrans> *p);| 00096e60 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 |.Header:.<sprite| 00096e70 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 |.h=>sprite_h>..R| 00096e80 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 00096e90 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 00096ea0 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 00096eb0 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 6c 6f 74 |is function plot| 00096ec0 73 20 61 20 62 6f 78 20 66 72 6f 6d 20 74 68 65 |s a box from the| 00096ed0 20 73 70 72 69 74 65 20 74 6f 20 61 20 70 61 72 | sprite to a par| 00096ee0 61 6c 6c 65 6c 6f 67 72 61 6d 2e 00 44 41 54 41 |allelogram..DATA| 00096ef0 2c 03 00 00 73 70 72 69 74 65 5f 70 75 74 5f 73 |,...sprite_put_s| 00096f00 63 61 6c 65 64 0a 53 79 6e 74 61 78 3a 09 3c 6f |caled.Syntax:.<o| 00096f10 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 |s_error> *sprite| 00096f20 5f 70 75 74 5f 73 63 61 6c 65 64 20 28 3c 73 70 |_put_scaled (<sp| 00096f30 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 |rite_area> *area| 00096f40 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 |, <sprite_id> *s| 00096f50 70 72 2c 20 69 6e 74 20 61 2c 20 69 6e 74 20 78 |pr, int a, int x| 00096f60 2c 20 69 6e 74 20 79 2c 20 3c 73 70 72 69 74 65 |, int y, <sprite| 00096f70 5f 66 61 63 74 6f 72 73 3e 20 2a 66 61 63 74 2c |_factors> *fact,| 00096f80 20 3c 73 70 72 69 74 65 5f 70 69 78 74 72 61 6e | <sprite_pixtran| 00096f90 73 3e 20 70 69 78 74 5b 5d 29 3b 0a 48 65 61 64 |s> pixt[]);.Head| 00096fa0 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 |er:.<sprite.h=>s| 00096fb0 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |prite_h>..Return| 00096fc0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00096fd0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 00096fe0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 00096ff0 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 70 6c 6f 74 |nction will plot| 00097000 20 74 68 65 20 73 70 72 69 74 65 20 69 64 65 6e | the sprite iden| 00097010 74 69 66 69 65 64 20 6f 6e 20 74 68 65 20 73 63 |tified on the sc| 00097020 72 65 65 6e 20 77 69 74 68 20 69 74 73 20 62 6f |reen with its bo| 00097030 74 74 6f 6d 20 6c 65 66 74 20 63 6f 72 6e 65 72 |ttom left corner| 00097040 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 7b 2f 7d | at position {/}| 00097050 28 78 2c 79 29 7b 2f 7d 2e 20 54 68 65 20 70 6c |(x,y){/}. The pl| 00097060 6f 74 20 3c 61 63 74 69 6f 6e 3d 3e 56 44 55 3a |ot <action=>VDU:| 00097070 31 38 61 3e 2c 20 67 69 76 65 6e 20 69 6e 20 2f |18a>, given in /| 00097080 61 2f 2c 20 69 73 20 74 68 65 20 73 61 6d 65 20 |a/, is the same | 00097090 61 73 20 74 68 61 74 20 75 73 65 64 20 66 6f 72 |as that used for| 000970a0 20 3c 6f 73 5f 67 63 6f 6c 3e 20 65 78 63 65 70 | <os_gcol> excep| 000970b0 74 20 74 68 61 74 20 76 61 6c 75 65 73 20 38 2d |t that values 8-| 000970c0 31 35 20 69 6e 64 69 63 61 74 65 20 74 68 61 74 |15 indicate that| 000970d0 20 74 68 65 20 6d 61 73 6b 20 73 68 6f 75 6c 64 | the mask should| 000970e0 20 62 65 20 75 73 65 64 2e 20 56 61 6c 75 65 73 | be used. Values| 000970f0 20 61 62 6f 76 65 20 31 36 20 68 61 76 65 20 6e | above 16 have n| 00097100 6f 20 6d 65 61 6e 69 6e 67 2e 0a 0a 49 6e 20 61 |o meaning...In a| 00097110 64 64 69 74 69 6f 6e 20 74 68 65 20 73 70 72 69 |ddition the spri| 00097120 74 65 20 77 69 6c 6c 20 62 65 20 73 63 61 6c 65 |te will be scale| 00097130 64 20 75 73 69 6e 67 20 74 68 65 20 73 63 61 6c |d using the scal| 00097140 69 6e 67 20 66 61 63 74 6f 72 73 20 70 6f 69 6e |ing factors poin| 00097150 74 65 64 20 74 6f 20 62 79 20 2f 66 61 63 74 2f |ted to by /fact/| 00097160 2c 20 61 6e 64 20 75 73 69 6e 67 20 74 68 65 20 |, and using the | 00097170 70 69 78 65 6c 20 74 72 61 6e 73 6c 61 74 69 6f |pixel translatio| 00097180 6e 20 74 61 62 6c 65 20 67 69 76 65 6e 20 62 79 |n table given by| 00097190 20 2f 70 69 78 74 2f 2e 20 49 66 20 65 69 74 68 | /pixt/. If eith| 000971a0 65 72 20 6f 66 20 74 68 65 73 65 20 76 61 6c 75 |er of these valu| 000971b0 65 73 20 61 72 65 20 2a 4e 55 4c 4c 2a 2c 20 74 |es are *NULL*, t| 000971c0 68 65 79 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 |hey will not be | 000971d0 75 73 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |used...This func| 000971e0 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c 65 |tion is equivale| 000971f0 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 65 |nt to <OS_Sprite| 00097200 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 |Op=>SWI:OS_Sprit| 00097210 65 4f 70 3e 20 35 32 2e 44 41 54 41 48 01 00 00 |eOp> 52.DATAH...| 00097220 73 70 72 69 74 65 5f 70 75 74 5f 74 72 61 6e 73 |sprite_put_trans| 00097230 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00097240 6f 72 3e 20 2a 73 70 72 69 74 65 5f 70 75 74 5f |or> *sprite_put_| 00097250 74 72 61 6e 73 20 28 3c 73 70 72 69 74 65 5f 61 |trans (<sprite_a| 00097260 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 |rea> *area, <spr| 00097270 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 69 6e |ite_id> *spr, in| 00097280 74 20 61 63 74 69 6f 6e 2c 20 3c 73 70 72 69 74 |t action, <sprit| 00097290 65 5f 62 6f 78 3e 20 2a 62 6f 78 2c 20 3c 73 70 |e_box> *box, <sp| 000972a0 72 69 74 65 5f 74 72 61 6e 73 6d 61 74 3e 20 2a |rite_transmat> *| 000972b0 74 2c 20 3c 73 70 72 69 74 65 5f 70 69 78 74 72 |t, <sprite_pixtr| 000972c0 61 6e 73 3e 20 70 29 3b 0a 48 65 61 64 65 72 3a |ans> p);.Header:| 000972d0 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 000972e0 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |te_h>..Returns:.| 000972f0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00097300 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00097310 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00097320 69 6f 6e 20 70 6c 6f 74 73 20 61 20 62 6f 78 20 |ion plots a box | 00097330 66 72 6f 6d 20 74 68 65 20 73 70 72 69 74 65 20 |from the sprite | 00097340 74 68 72 6f 75 67 68 20 61 20 74 72 61 6e 73 66 |through a transf| 00097350 6f 72 6d 61 74 69 6f 6e 20 6d 61 74 72 69 78 2e |ormation matrix.| 00097360 44 41 54 41 ec 01 00 00 53 70 72 69 74 65 5f 52 |DATA....Sprite_R| 00097370 65 61 64 43 6f 6e 74 72 6f 6c 0a 53 79 6e 74 61 |eadControl.Synta| 00097380 78 3a 09 69 6e 74 20 53 70 72 69 74 65 5f 52 65 |x:.int Sprite_Re| 00097390 61 64 43 6f 6e 74 72 6f 6c 20 28 3c 73 70 72 69 |adControl (<spri| 000973a0 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 69 |te_area> area, i| 000973b0 6e 74 20 2a 73 69 7a 65 2c 20 3c 73 70 72 69 74 |nt *size, <sprit| 000973c0 65 3e 20 2a 66 69 72 73 74 2c 20 76 6f 69 64 20 |e> *first, void | 000973d0 2a 66 72 65 65 29 3b 0a 48 65 61 64 65 72 3a 09 |*free);.Header:.| 000973e0 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 000973f0 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 |h=>Sprite_DL>..R| 00097400 65 74 75 72 6e 73 3a 09 4e 75 6d 62 65 72 20 6f |eturns:.Number o| 00097410 66 20 73 70 72 69 74 65 73 20 69 6e 20 61 72 65 |f sprites in are| 00097420 61 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |a...This functio| 00097430 6e 20 72 65 61 64 73 20 69 6e 66 6f 72 6d 61 74 |n reads informat| 00097440 69 6f 6e 20 61 62 6f 75 74 20 61 20 73 70 72 69 |ion about a spri| 00097450 74 65 20 61 72 65 61 2c 20 2f 61 72 65 61 2f 2e |te area, /area/.| 00097460 20 49 66 20 2f 73 69 7a 65 2f 2c 20 2f 66 69 72 | If /size/, /fir| 00097470 73 74 2f 20 6f 72 20 2f 66 72 65 65 2f 20 69 73 |st/ or /free/ is| 00097480 20 3c 4e 55 4c 4c 3e 20 74 68 65 6e 20 74 68 61 | <NULL> then tha| 00097490 74 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 72 |t value is not r| 000974a0 65 74 75 72 6e 65 64 2e 20 4f 6e 20 65 78 69 74 |eturned. On exit| 000974b0 2c 20 7b 2f 7d 2a 73 69 7a 65 7b 2f 7d 20 63 6f |, {/}*size{/} co| 000974c0 6e 74 61 69 6e 73 20 74 68 65 20 73 69 7a 65 20 |ntains the size | 000974d0 6f 66 20 74 68 65 20 61 72 65 61 2c 20 7b 2f 7d |of the area, {/}| 000974e0 2a 66 69 72 73 74 7b 2f 7d 20 63 6f 6e 74 61 69 |*first{/} contai| 000974f0 6e 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 |ns a pointer to | 00097500 74 68 65 20 66 69 72 73 74 20 73 70 72 69 74 65 |the first sprite| 00097510 2c 20 61 6e 64 20 7b 2f 7d 2a 66 72 65 65 7b 2f |, and {/}*free{/| 00097520 7d 20 63 6f 6e 74 61 69 6e 73 20 61 20 70 6f 69 |} contains a poi| 00097530 6e 74 65 72 20 74 6f 20 74 68 65 20 66 69 72 73 |nter to the firs| 00097540 74 20 66 72 65 65 20 77 6f 72 64 2e 44 41 54 41 |t free word.DATA| 00097550 90 01 00 00 53 70 72 69 74 65 5f 52 65 61 64 49 |....Sprite_ReadI| 00097560 6e 66 6f 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |nfo.Syntax:.<os_| 00097570 65 72 72 6f 72 3e 20 2a 53 70 72 69 74 65 5f 52 |error> *Sprite_R| 00097580 65 61 64 49 6e 66 6f 20 28 3c 73 70 72 69 74 65 |eadInfo (<sprite| 00097590 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 |_area> area, cha| 000975a0 72 20 2a 6e 61 6d 65 2c 20 3c 73 70 72 69 74 65 |r *name, <sprite| 000975b0 5f 69 6e 66 6f 3e 20 2a 69 6e 66 6f 29 3b 0a 48 |_info> *info);.H| 000975c0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000975d0 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 |Sprite.h=>Sprite| 000975e0 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |_DL>..Returns:.P| 000975f0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00097600 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00097610 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00097620 6f 6e 20 72 65 74 75 72 6e 73 20 69 6e 66 6f 72 |on returns infor| 00097630 6d 61 74 69 6f 6e 20 28 69 6e 20 7b 2f 7d 69 6e |mation (in {/}in| 00097640 66 6f 7b 2f 7d 29 20 61 62 6f 75 74 20 74 68 65 |fo{/}) about the| 00097650 20 73 70 72 69 74 65 20 73 70 65 63 69 66 69 65 | sprite specifie| 00097660 64 2c 20 67 69 76 69 6e 67 20 69 74 73 20 77 69 |d, giving its wi| 00097670 64 74 68 20 61 6e 64 20 68 65 69 67 68 74 20 69 |dth and height i| 00097680 6e 20 70 69 78 65 6c 73 2c 20 77 68 65 74 68 65 |n pixels, whethe| 00097690 72 20 74 68 65 20 73 70 72 69 74 65 20 68 61 73 |r the sprite has| 000976a0 20 61 20 6d 61 73 6b 20 61 6e 64 20 74 68 65 20 | a mask and the | 000976b0 73 63 72 65 65 6e 20 6d 6f 64 65 20 69 6e 20 77 |screen mode in w| 000976c0 68 69 63 68 20 74 68 65 20 73 70 72 69 74 65 20 |hich the sprite | 000976d0 77 61 73 20 64 65 66 69 6e 65 64 2e 44 41 54 41 |was defined.DATA| 000976e0 8f 01 00 00 73 70 72 69 74 65 5f 72 65 61 64 6d |....sprite_readm| 000976f0 61 73 6b 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ask.Syntax:.<os_| 00097700 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 72 |error> *sprite_r| 00097710 65 61 64 6d 61 73 6b 20 28 3c 73 70 72 69 74 65 |eadmask (<sprite| 00097720 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 |_area> *area, <s| 00097730 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 |prite_id> *spr, | 00097740 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 3c 73 |int x, int y, <s| 00097750 70 72 69 74 65 5f 6d 61 73 6b 73 74 61 74 65 3e |prite_maskstate>| 00097760 20 2a 6d 61 73 6b 29 3b 0a 48 65 61 64 65 72 3a | *mask);.Header:| 00097770 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 00097780 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |te_h>..Returns:.| 00097790 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000977a0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000977b0 6f 6e 65 2e 0a 0a 44 65 73 6b 4c 69 62 3a 09 53 |one...DeskLib:.S| 000977c0 65 65 20 3c 53 70 72 69 74 65 5f 52 65 61 64 4d |ee <Sprite_ReadM| 000977d0 61 73 6b 3d 3e 53 70 72 69 74 65 5f 52 65 61 64 |ask=>Sprite_Read| 000977e0 4d 61 73 6b 5f 3e 0a 0a 54 68 69 73 20 66 75 6e |Mask_>..This fun| 000977f0 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 |ction reads the | 00097800 73 74 61 74 65 20 6f 66 20 61 20 67 69 76 65 6e |state of a given| 00097810 20 70 69 78 65 6c 20 69 6e 20 74 68 65 20 73 70 | pixel in the sp| 00097820 65 63 69 66 69 65 64 20 73 70 72 69 74 65 20 6d |ecified sprite m| 00097830 61 73 6b 2e 20 49 74 20 69 73 20 65 71 75 69 76 |ask. It is equiv| 00097840 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 |alent to <OS_Spr| 00097850 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 |iteOp=>SWI:OS_Sp| 00097860 72 69 74 65 4f 70 3e 20 34 33 2e 00 44 41 54 41 |riteOp> 43..DATA| 00097870 31 01 00 00 53 70 72 69 74 65 5f 52 65 61 64 4d |1...Sprite_ReadM| 00097880 61 73 6b 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f |ask.Syntax:.<BOO| 00097890 4c 3e 20 53 70 72 69 74 65 5f 52 65 61 64 4d 61 |L> Sprite_ReadMa| 000978a0 73 6b 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 |sk (<sprite_area| 000978b0 3e 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 |> area, char *na| 000978c0 6d 65 2c 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e |me, <wimp_point>| 000978d0 20 2a 70 6f 73 29 3b 0a 48 65 61 64 65 72 3a 09 | *pos);.Header:.| 000978e0 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 000978f0 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 |h=>Sprite_DL>..R| 00097900 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 |eturns:.<TRUE> i| 00097910 66 20 73 6f 6c 69 64 2e 0a 0a 54 68 69 73 20 66 |f solid...This f| 00097920 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 |unction reads th| 00097930 65 20 73 74 61 74 65 20 6f 66 20 61 20 67 69 76 |e state of a giv| 00097940 65 6e 20 70 69 78 65 6c 20 69 6e 20 74 68 65 20 |en pixel in the | 00097950 73 70 65 63 69 66 69 65 64 20 73 70 72 69 74 65 |specified sprite| 00097960 20 6d 61 73 6b 2e 20 49 74 20 69 73 20 65 71 75 | mask. It is equ| 00097970 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 |ivalent to <OS_S| 00097980 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f |priteOp=>SWI:OS_| 00097990 53 70 72 69 74 65 4f 70 3e 20 34 33 2e 00 00 00 |SpriteOp> 43....| 000979a0 44 41 54 41 a1 01 00 00 73 70 72 69 74 65 5f 72 |DATA....sprite_r| 000979b0 65 61 64 70 69 78 65 6c 0a 53 79 6e 74 61 78 3a |eadpixel.Syntax:| 000979c0 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 |.<os_error> *spr| 000979d0 69 74 65 5f 72 65 61 64 70 69 78 65 6c 20 28 3c |ite_readpixel (<| 000979e0 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 |sprite_area> *ar| 000979f0 65 61 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 |ea, <sprite_id> | 00097a00 2a 73 70 72 2c 20 69 6e 74 20 78 2c 20 69 6e 74 |*spr, int x, int| 00097a10 20 79 2c 20 3c 73 70 72 69 74 65 5f 63 6f 6c 6f | y, <sprite_colo| 00097a20 75 72 3e 20 2a 72 65 73 75 6c 74 29 3b 0a 48 65 |ur> *result);.He| 00097a30 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d |ader:.<sprite.h=| 00097a40 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 |>sprite_h>..Retu| 00097a50 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00097a60 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00097a70 20 69 66 20 6e 6f 6e 65 2e 0a 0a 53 65 65 20 61 | if none...See a| 00097a80 6c 73 6f 20 74 68 65 20 44 65 73 6b 4c 69 62 20 |lso the DeskLib | 00097a90 66 75 6e 63 74 69 6f 6e 2c 20 3c 53 70 72 69 74 |function, <Sprit| 00097aa0 65 5f 52 65 61 64 50 69 78 65 6c 3d 3e 53 70 72 |e_ReadPixel=>Spr| 00097ab0 69 74 65 5f 52 65 61 64 50 69 78 65 6c 5f 3e 2e |ite_ReadPixel_>.| 00097ac0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00097ad0 72 65 61 64 73 20 74 68 65 20 63 6f 6c 6f 75 72 |reads the colour| 00097ae0 20 6f 66 20 61 20 67 69 76 65 6e 20 70 69 78 65 | of a given pixe| 00097af0 6c 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 |l in the specifi| 00097b00 65 64 20 73 70 72 69 74 65 2e 20 49 74 20 69 73 |ed sprite. It is| 00097b10 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 00097b20 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 |OS_SpriteOp=>SWI| 00097b30 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 31 |:OS_SpriteOp> 41| 00097b40 2e 00 00 00 44 41 54 41 f8 00 00 00 53 70 72 69 |....DATA....Spri| 00097b50 74 65 5f 52 65 61 64 50 69 78 65 6c 0a 53 79 6e |te_ReadPixel.Syn| 00097b60 74 61 78 3a 09 69 6e 74 20 53 70 72 69 74 65 5f |tax:.int Sprite_| 00097b70 52 65 61 64 50 69 78 65 6c 20 28 3c 73 70 72 69 |ReadPixel (<spri| 00097b80 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 |te_area> area, c| 00097b90 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 77 69 6d 70 |har *name, <wimp| 00097ba0 5f 70 6f 69 6e 74 3e 20 2a 70 6f 73 29 3b 0a 48 |_point> *pos);.H| 00097bb0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00097bc0 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 |Sprite.h=>Sprite| 00097bd0 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 43 |_DL>..Returns:.C| 00097be0 6f 6c 6f 75 72 20 6f 66 20 70 69 78 65 6c 2e 0a |olour of pixel..| 00097bf0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 00097c00 65 74 75 72 6e 73 20 74 68 65 20 63 6f 6c 6f 75 |eturns the colou| 00097c10 72 20 6f 66 20 74 68 65 20 70 69 78 65 6c 20 61 |r of the pixel a| 00097c20 74 20 2f 70 6f 73 2f 20 69 6e 20 74 68 65 20 67 |t /pos/ in the g| 00097c30 69 76 65 6e 20 73 70 72 69 74 65 2e 44 41 54 41 |iven sprite.DATA| 00097c40 4a 01 00 00 53 70 72 69 74 65 5f 52 65 61 64 53 |J...Sprite_ReadS| 00097c50 61 76 65 41 72 65 61 53 69 7a 65 0a 53 79 6e 74 |aveAreaSize.Synt| 00097c60 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00097c70 53 70 72 69 74 65 5f 52 65 61 64 53 61 76 65 41 |Sprite_ReadSaveA| 00097c80 72 65 61 53 69 7a 65 20 28 3c 73 70 72 69 74 65 |reaSize (<sprite| 00097c90 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 |_area> area, cha| 00097ca0 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 2a 73 69 |r *name, int *si| 00097cb0 7a 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |ze);.Header:.<De| 00097cc0 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e |skLib:Sprite.h=>| 00097cd0 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 |Sprite_DL>..Retu| 00097ce0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00097cf0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00097d00 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00097d10 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 6c 61 |function calcula| 00097d20 74 65 73 20 68 6f 77 20 6c 61 72 67 65 20 61 20 |tes how large a | 00097d30 73 61 76 65 20 61 72 65 61 20 6d 75 73 74 20 62 |save area must b| 00097d40 65 20 66 6f 72 20 61 20 67 69 76 65 6e 20 73 70 |e for a given sp| 00097d50 72 69 74 65 2c 20 61 6e 64 20 72 65 74 75 72 6e |rite, and return| 00097d60 20 69 74 20 69 6e 20 74 68 65 20 2f 69 6e 74 2f | it in the /int/| 00097d70 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f | pointed to by /| 00097d80 73 69 7a 65 2f 2e 00 00 44 41 54 41 46 01 00 00 |size/...DATAF...| 00097d90 73 70 72 69 74 65 5f 72 65 61 64 73 69 7a 65 0a |sprite_readsize.| 00097da0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00097db0 72 3e 20 2a 73 70 72 69 74 65 5f 72 65 61 64 73 |r> *sprite_reads| 00097dc0 69 7a 65 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |ize (<sprite_are| 00097dd0 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 00097de0 65 5f 69 64 3e 20 2a 73 70 72 2c 20 3c 73 70 72 |e_id> *spr, <spr| 00097df0 69 74 65 5f 69 6e 66 6f 3e 20 2a 72 65 73 75 6c |ite_info> *resul| 00097e00 74 69 6e 66 6f 29 3b 0a 48 65 61 64 65 72 3a 09 |tinfo);.Header:.| 00097e10 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 |<sprite.h=>sprit| 00097e20 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |e_h>..Returns:.P| 00097e30 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00097e40 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00097e50 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00097e60 6f 6e 20 72 65 61 64 73 20 74 68 65 20 73 69 7a |on reads the siz| 00097e70 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f |e information fo| 00097e80 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 |r the specified | 00097e90 73 70 72 69 74 65 2e 20 49 74 20 69 73 20 65 71 |sprite. It is eq| 00097ea0 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f |uivalent to <OS_| 00097eb0 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 |SpriteOp=>SWI:OS| 00097ec0 5f 53 70 72 69 74 65 4f 70 3e 20 34 30 2e 00 00 |_SpriteOp> 40...| 00097ed0 44 41 54 41 0c 03 00 00 53 70 72 69 74 65 5f 52 |DATA....Sprite_R| 00097ee0 65 64 69 72 65 63 74 0a 53 79 6e 74 61 78 3a 09 |edirect.Syntax:.| 00097ef0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 72 69 |<os_error> *Spri| 00097f00 74 65 5f 52 65 64 69 72 65 63 74 20 28 3c 73 70 |te_Redirect (<sp| 00097f10 72 69 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c |rite_area> area,| 00097f20 20 63 68 61 72 20 2a 6e 61 6d 65 2c 20 76 6f 69 | char *name, voi| 00097f30 64 20 2a 73 61 76 65 2c 20 3c 73 70 72 69 74 65 |d *save, <sprite| 00097f40 5f 6f 75 74 70 75 74 73 74 61 74 65 3e 20 2a 6f |_outputstate> *o| 00097f50 6c 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |ld);.Header:.<De| 00097f60 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e |skLib:Sprite.h=>| 00097f70 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 |Sprite_DL>..Retu| 00097f80 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 00097f90 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 00097fa0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 00097fb0 66 75 6e 63 74 69 6f 6e 20 63 61 75 73 65 73 20 |function causes | 00097fc0 56 44 55 20 6f 75 74 70 75 74 20 74 6f 20 62 65 |VDU output to be| 00097fd0 20 73 65 6e 74 20 74 6f 20 61 20 73 70 72 69 74 | sent to a sprit| 00097fe0 65 20 28 67 69 76 65 6e 20 69 6e 20 7b 2f 7d 61 |e (given in {/}a| 00097ff0 72 65 61 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 6e 61 |rea{/} and {/}na| 00098000 6d 65 7b 2f 7d 29 20 69 6e 73 74 65 61 64 20 6f |me{/}) instead o| 00098010 66 20 74 68 65 20 73 63 72 65 65 6e 2e 20 2f 73 |f the screen. /s| 00098020 61 76 65 2f 20 69 73 20 61 20 70 6f 69 6e 74 65 |ave/ is a pointe| 00098030 72 20 74 6f 20 61 20 62 6c 6f 63 6b 20 77 68 6f |r to a block who| 00098040 73 65 20 73 69 7a 65 20 69 73 20 74 68 61 74 20 |se size is that | 00098050 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 |returned by the | 00098060 66 75 6e 63 74 69 6f 6e 20 3c 53 70 72 69 74 65 |function <Sprite| 00098070 5f 52 65 61 64 53 61 76 65 41 72 65 61 53 69 7a |_ReadSaveAreaSiz| 00098080 65 3e 2e 20 54 68 65 20 66 69 72 73 74 20 66 6f |e>. The first fo| 00098090 75 72 20 62 79 74 65 73 20 6f 66 20 74 68 69 73 |ur bytes of this| 000980a0 20 62 6c 6f 63 6b 20 6d 75 73 74 20 62 65 20 73 | block must be s| 000980b0 65 74 20 74 6f 20 7a 65 72 6f 2e 20 41 6c 74 65 |et to zero. Alte| 000980c0 72 6e 61 74 69 76 65 6c 79 2c 20 69 74 20 6d 61 |rnatively, it ma| 000980d0 79 20 62 65 20 30 20 66 6f 72 20 6e 6f 20 73 61 |y be 0 for no sa| 000980e0 76 65 20 61 72 65 61 2e 20 54 68 69 73 20 62 6c |ve area. This bl| 000980f0 6f 63 6b 20 69 73 20 75 73 65 64 20 74 6f 20 73 |ock is used to s| 00098100 74 6f 72 65 20 74 68 65 20 63 75 72 72 65 6e 74 |tore the current| 00098110 20 56 44 55 20 73 74 61 74 65 20 66 6f 72 20 72 | VDU state for r| 00098120 65 73 74 6f 72 61 74 69 6f 6e 20 62 79 20 3c 53 |estoration by <S| 00098130 70 72 69 74 65 5f 55 6e 52 65 64 69 72 65 63 74 |prite_UnRedirect| 00098140 3e 20 69 6e 20 74 68 65 20 65 76 65 6e 74 20 6f |> in the event o| 00098150 66 20 61 6e 6f 74 68 65 72 20 72 65 64 69 72 65 |f another redire| 00098160 63 74 69 6f 6e 2e 20 54 68 65 20 6f 6c 64 20 73 |ction. The old s| 00098170 74 61 74 65 20 69 73 20 72 65 74 75 72 6e 65 64 |tate is returned| 00098180 20 69 6e 20 2f 6f 6c 64 2f 2e 0a 0a 54 68 65 20 | in /old/...The | 00098190 57 69 6d 70 20 6d 75 73 74 20 6e 6f 74 20 62 65 |Wimp must not be| 000981a0 20 63 61 6c 6c 65 64 20 77 68 69 6c 73 74 20 6f | called whilst o| 000981b0 75 74 70 75 74 20 69 73 20 73 77 69 74 63 68 65 |utput is switche| 000981c0 64 20 69 6e 20 74 68 69 73 20 77 61 79 2e 20 44 |d in this way. D| 000981d0 75 6e 6e 6f 20 77 68 79 2e 2e 2e 2e 44 41 54 41 |unno why....DATA| 000981e0 2e 01 00 00 73 70 72 69 74 65 5f 72 65 6d 6f 76 |....sprite_remov| 000981f0 65 5f 6d 61 73 6b 0a 53 79 6e 74 61 78 3a 09 3c |e_mask.Syntax:.<| 00098200 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 |os_error> *sprit| 00098210 65 5f 72 65 6d 6f 76 65 5f 6d 61 73 6b 20 28 3c |e_remove_mask (<| 00098220 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 |sprite_area> *ar| 00098230 65 61 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 |ea, <sprite_id> | 00098240 2a 73 70 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*spr);.Header:.<| 00098250 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 00098260 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 00098270 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00098280 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00098290 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000982a0 6e 20 72 65 6d 6f 76 65 73 20 74 68 65 20 6d 61 |n removes the ma| 000982b0 73 6b 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f |sk definition fo| 000982c0 72 20 74 68 65 20 67 69 76 65 6e 20 73 70 72 69 |r the given spri| 000982d0 74 65 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |te. It is equiva| 000982e0 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 |lent to <OS_Spri| 000982f0 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 |teOp=>SWI:OS_Spr| 00098300 69 74 65 4f 70 3e 20 33 30 2e 00 00 44 41 54 41 |iteOp> 30...DATA| 00098310 26 01 00 00 53 70 72 69 74 65 5f 52 65 6d 6f 76 |&...Sprite_Remov| 00098320 65 50 61 6c 65 74 74 65 0a 53 79 6e 74 61 78 3a |ePalette.Syntax:| 00098330 09 69 6e 74 20 53 70 72 69 74 65 5f 52 65 6d 6f |.int Sprite_Remo| 00098340 76 65 50 61 6c 65 74 74 65 20 28 3c 73 70 72 69 |vePalette (<spri| 00098350 74 65 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 |te_area> area, c| 00098360 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 |har *name);.Head| 00098370 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 |er:.<DeskLib:Spr| 00098380 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c |ite.h=>Sprite_DL| 00098390 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000983a0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000983b0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000983c0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000983d0 72 65 6d 6f 76 65 73 20 74 68 65 20 70 61 6c 65 |removes the pale| 000983e0 74 74 65 20 66 6f 72 20 74 68 65 20 67 69 76 65 |tte for the give| 000983f0 6e 20 73 70 72 69 74 65 2e 20 54 68 69 73 20 69 |n sprite. This i| 00098400 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 |s equivalent to | 00098410 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 |<OS_SpriteOp=>SW| 00098420 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 33 |I:OS_SpriteOp> 3| 00098430 37 2e 00 00 44 41 54 41 2d 01 00 00 73 70 72 69 |7...DATA-...spri| 00098440 74 65 5f 72 65 6d 6f 76 65 77 61 73 74 61 67 65 |te_removewastage| 00098450 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00098460 6f 72 3e 20 2a 73 70 72 69 74 65 5f 72 65 6d 6f |or> *sprite_remo| 00098470 76 65 77 61 73 74 61 67 65 20 28 3c 73 70 72 69 |vewastage (<spri| 00098480 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 |te_area> *area, | 00098490 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 |<sprite_id> *spr| 000984a0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 |);.Header:.<spri| 000984b0 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a |te.h=>sprite_h>.| 000984c0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000984d0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000984e0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000984f0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 00098500 6d 6f 76 65 73 20 74 68 65 20 6c 65 66 74 20 68 |moves the left h| 00098510 61 6e 64 20 77 61 73 74 61 67 65 20 66 72 6f 6d |and wastage from| 00098520 20 61 20 73 70 72 69 74 65 2e 20 49 74 20 69 73 | a sprite. It is| 00098530 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 00098540 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 |OS_SpriteOp=>SWI| 00098550 3a 4f 53 5f 53 50 72 69 74 65 4f 70 3e 20 35 34 |:OS_SPriteOp> 54| 00098560 2e 00 00 00 44 41 54 41 e7 01 00 00 73 70 72 69 |....DATA....spri| 00098570 74 65 5f 72 65 6e 61 6d 65 0a 53 79 6e 74 61 78 |te_rename.Syntax| 00098580 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 |:.<os_error> *sp| 00098590 72 69 74 65 5f 72 65 6e 61 6d 65 20 28 3c 73 70 |rite_rename (<sp| 000985a0 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 65 61 |rite_area> *area| 000985b0 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 2a 73 |, <sprite_id> *s| 000985c0 70 72 2c 20 63 68 61 72 20 2a 6e 61 6d 65 29 3b |pr, char *name);| 000985d0 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 |.Header:.<sprite| 000985e0 2e 68 3d 3e 73 70 72 69 74 65 3e 0a 0a 52 65 74 |.h=>sprite>..Ret| 000985f0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00098600 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00098610 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00098620 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 65 | function rename| 00098630 73 20 73 70 65 63 69 66 69 65 64 20 73 70 72 69 |s specified spri| 00098640 74 65 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 |te in the given | 00098650 73 70 72 69 74 65 20 61 72 65 61 20 73 6f 20 74 |sprite area so t| 00098660 68 61 74 20 69 74 73 20 6e 65 77 20 6e 61 6d 65 |hat its new name| 00098670 20 69 73 20 74 68 61 74 20 70 6f 69 6e 74 65 64 | is that pointed| 00098680 20 74 6f 20 62 79 20 2f 6e 61 6d 65 2f 2e 20 41 | to by /name/. A| 00098690 6e 20 65 72 72 6f 72 20 69 73 20 72 65 74 75 72 |n error is retur| 000986a0 6e 65 64 20 69 66 20 61 20 73 70 72 69 74 65 20 |ned if a sprite | 000986b0 6f 66 20 74 68 65 20 6e 65 77 20 6e 61 6d 65 20 |of the new name | 000986c0 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 20 69 |already exists i| 000986d0 6e 20 74 68 61 74 20 73 70 72 69 74 65 20 61 72 |n that sprite ar| 000986e0 65 61 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |ea. It is equiva| 000986f0 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 |lent to <OS_Spri| 00098700 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 |teOp=>SWI:OS_Spr| 00098710 69 74 65 4f 70 3e 20 32 36 2c 20 6f 72 20 2a 53 |iteOp> 26, or *S| 00098720 52 65 6e 61 6d 65 20 69 66 20 75 73 65 64 20 77 |Rename if used w| 00098730 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 73 |ith the system s| 00098740 70 72 69 74 65 20 61 72 65 61 2e 00 44 41 54 41 |prite area..DATA| 00098750 b1 01 00 00 53 70 72 69 74 65 5f 52 65 6e 61 6d |....Sprite_Renam| 00098760 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |e.Syntax:.<os_er| 00098770 72 6f 72 3e 20 2a 53 70 72 69 74 65 5f 52 65 6e |ror> *Sprite_Ren| 00098780 61 6d 65 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |ame (<sprite_are| 00098790 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6f |a> area, char *o| 000987a0 6c 64 2c 20 63 68 61 72 20 2a 6e 65 77 29 3b 0a |ld, char *new);.| 000987b0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000987c0 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 |:Sprite.h=>Sprit| 000987d0 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |e_DL>..Returns:.| 000987e0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000987f0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00098800 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00098810 69 6f 6e 20 72 65 6e 61 6d 65 73 20 74 68 65 20 |ion renames the | 00098820 73 70 72 69 74 65 20 69 6e 20 74 68 65 20 67 69 |sprite in the gi| 00098830 76 65 6e 20 61 72 65 61 20 77 68 6f 73 65 20 6e |ven area whose n| 00098840 61 6d 65 20 69 73 20 67 69 76 65 6e 20 69 6e 20 |ame is given in | 00098850 2f 6f 6c 64 2f 20 73 6f 20 74 68 61 74 20 69 74 |/old/ so that it| 00098860 73 20 6e 65 77 20 6e 61 6d 65 20 69 73 20 74 68 |s new name is th| 00098870 61 74 20 67 69 76 65 6e 20 69 6e 20 2f 6e 65 77 |at given in /new| 00098880 2f 2e 20 41 6e 20 65 72 72 6f 72 20 69 73 20 72 |/. An error is r| 00098890 65 74 75 72 6e 65 64 20 69 66 20 61 20 73 70 72 |eturned if a spr| 000988a0 69 74 65 20 6f 66 20 74 68 65 20 6e 65 77 20 6e |ite of the new n| 000988b0 61 6d 65 20 61 6c 72 65 61 64 79 20 65 78 69 73 |ame already exis| 000988c0 74 73 2e 20 49 74 20 69 73 20 69 64 65 6e 74 69 |ts. It is identi| 000988d0 63 61 6c 20 74 6f 20 53 57 49 20 3c 4f 53 5f 53 |cal to SWI <OS_S| 000988e0 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f |priteOp=>SWI:OS_| 000988f0 53 70 72 69 74 65 4f 70 3e 20 32 36 2e 00 00 00 |SpriteOp> 26....| 00098900 44 41 54 41 f8 00 00 00 73 70 72 69 74 65 5f 72 |DATA....sprite_r| 00098910 65 73 74 6f 72 65 73 74 61 74 65 0a 53 79 6e 74 |estorestate.Synt| 00098920 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00098930 73 70 72 69 74 65 5f 72 65 73 74 6f 72 65 73 74 |sprite_restorest| 00098940 61 74 65 20 28 3c 73 70 72 69 74 65 5f 73 74 61 |ate (<sprite_sta| 00098950 74 65 3e 20 73 74 61 74 65 29 3b 0a 48 65 61 64 |te> state);.Head| 00098960 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 |er:.<sprite.h=>s| 00098970 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |prite_h>..Return| 00098980 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 00098990 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000989a0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000989b0 6e 63 74 69 6f 6e 20 72 65 73 74 6f 72 65 73 20 |nction restores | 000989c0 74 68 65 20 6f 6c 64 20 73 74 61 74 65 20 61 66 |the old state af| 000989d0 74 65 72 20 6f 6e 65 20 6f 66 20 74 68 65 20 73 |ter one of the s| 000989e0 70 72 69 74 65 20 72 65 64 69 72 65 63 74 69 6f |prite redirectio| 000989f0 6e 20 63 61 6c 6c 73 2e 44 41 54 41 ca 00 00 00 |n calls.DATA....| 00098a00 73 70 72 69 74 65 2e 68 20 52 49 53 43 20 4f 53 |sprite.h RISC OS| 00098a10 20 33 20 46 75 6e 63 74 69 6f 6e 73 0a 54 68 65 | 3 Functions.The| 00098a20 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6e |se functions can| 00098a30 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 6f 6e | only be used on| 00098a40 20 52 49 53 43 20 4f 53 20 33 2e 0a 7b 61 6c 69 | RISC OS 3..{ali| 00098a50 67 6e 20 63 65 6e 74 72 65 7d 0a 3c 73 70 72 69 |gn centre}.<spri| 00098a60 74 65 5f 63 68 61 6e 67 65 5f 73 69 7a 65 3e 0a |te_change_size>.| 00098a70 3c 73 70 72 69 74 65 5f 70 75 74 5f 6d 61 73 6b |<sprite_put_mask| 00098a80 5f 74 72 61 6e 73 3e 0a 3c 73 70 72 69 74 65 5f |_trans>.<sprite_| 00098a90 70 75 74 5f 6d 61 73 6b 5f 70 67 6d 3e 0a 3c 73 |put_mask_pgm>.<s| 00098aa0 70 72 69 74 65 5f 70 75 74 5f 74 72 61 6e 73 3e |prite_put_trans>| 00098ab0 0a 3c 73 70 72 69 74 65 5f 70 75 74 5f 70 67 6d |.<sprite_put_pgm| 00098ac0 20 3e 00 00 44 41 54 41 17 01 00 00 53 70 72 69 | >..DATA....Spri| 00098ad0 74 65 5f 53 61 76 65 0a 53 79 6e 74 61 78 3a 09 |te_Save.Syntax:.| 00098ae0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 72 69 |<os_error> *Spri| 00098af0 74 65 5f 53 61 76 65 20 28 3c 73 70 72 69 74 65 |te_Save (<sprite| 00098b00 5f 61 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 |_area> area, cha| 00098b10 72 20 2a 66 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 |r *filename);.He| 00098b20 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 00098b30 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f |prite.h=>Sprite_| 00098b40 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |DL>..Returns:.Po| 00098b50 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 00098b60 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 00098b70 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 00098b80 6e 20 73 61 76 65 73 20 61 6c 6c 20 74 68 65 20 |n saves all the | 00098b90 73 70 72 69 74 65 73 20 69 6e 20 61 20 73 70 72 |sprites in a spr| 00098ba0 69 74 65 20 61 72 65 61 20 74 6f 20 61 20 66 69 |ite area to a fi| 00098bb0 6c 65 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 |le. It is equiva| 00098bc0 6c 65 6e 74 20 74 6f 20 53 57 49 20 4f 53 5f 53 |lent to SWI OS_S| 00098bd0 70 72 69 74 65 4f 70 20 31 32 2e 00 44 41 54 41 |priteOp 12..DATA| 00098be0 db 00 00 00 73 70 72 69 74 65 5f 73 63 61 6c 65 |....sprite_scale| 00098bf0 66 61 63 74 6f 72 73 0a 54 68 69 73 20 74 79 70 |factors.This typ| 00098c00 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 00098c10 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e |<DeskLib:Sprite.| 00098c20 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 20 61 73 |h=>Sprite_DL> as| 00098c30 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 00098c40 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a |tructure:.. \{.| 00098c50 20 20 20 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e | <wimp_point>| 00098c60 20 6d 75 6c 74 69 70 6c 79 3b 0a 20 20 20 20 3c | multiply;. <| 00098c70 77 69 6d 70 5f 70 6f 69 6e 74 3e 20 64 69 76 69 |wimp_point> divi| 00098c80 64 65 3b 0a 20 20 7d 0a 0a 55 73 69 6e 67 20 74 |de;. }..Using t| 00098c90 68 69 73 20 73 74 72 75 63 74 75 72 65 20 61 6e |his structure an| 00098ca0 79 20 73 63 61 6c 65 20 63 61 6e 20 62 65 20 63 |y scale can be c| 00098cb0 72 65 61 74 65 64 2e 00 44 41 54 41 40 01 00 00 |reated..DATA@...| 00098cc0 73 70 72 69 74 65 5f 73 63 72 65 65 6e 6c 6f 61 |sprite_screenloa| 00098cd0 64 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 73 |d.Syntax:.void s| 00098ce0 70 72 69 74 65 5f 73 63 72 65 65 6e 6c 6f 61 64 |prite_screenload| 00098cf0 20 28 63 68 61 72 20 2a 66 69 6c 65 29 3b 0a 48 | (char *file);.H| 00098d00 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 00098d10 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 54 68 69 |=>sprite_h>..Thi| 00098d20 73 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 73 |s function loads| 00098d30 20 74 68 65 20 66 69 72 73 74 20 73 70 72 69 74 | the first sprit| 00098d40 65 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 |e in the given s| 00098d50 70 72 69 74 65 20 66 69 6c 65 20 61 6e 64 20 64 |prite file and d| 00098d60 69 73 70 6c 61 79 73 20 69 74 20 61 74 20 74 68 |isplays it at th| 00098d70 65 20 62 6f 74 74 6f 6d 20 6c 65 66 74 20 6f 66 |e bottom left of| 00098d80 20 74 68 65 20 73 63 72 65 65 6e 2c 20 69 6e 20 | the screen, in | 00098d90 74 68 65 20 63 6f 72 72 65 63 74 20 6d 6f 64 65 |the correct mode| 00098da0 20 61 6e 64 20 70 61 6c 65 74 74 65 2e 0a 0a 54 | and palette...T| 00098db0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 00098dc0 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 |equivalent to th| 00098dd0 65 20 53 57 49 20 3c 4f 53 5f 53 70 72 69 74 65 |e SWI <OS_Sprite| 00098de0 4f 70 20 33 3d 3e 53 57 49 3a 6f 73 5f 73 70 72 |Op 3=>SWI:os_spr| 00098df0 69 74 65 6f 70 33 3e 2e 44 41 54 41 83 01 00 00 |iteop3>.DATA....| 00098e00 53 70 72 69 74 65 5f 53 63 72 65 65 6e 4c 6f 61 |Sprite_ScreenLoa| 00098e10 64 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |d.Syntax:.<os_er| 00098e20 72 6f 72 3e 20 2a 53 70 72 69 74 65 5f 53 63 72 |ror> *Sprite_Scr| 00098e30 65 65 6e 4c 6f 61 64 20 28 63 68 61 72 20 2a 66 |eenLoad (char *f| 00098e40 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 |ilename);.Header| 00098e50 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 |:.<DeskLib:Sprit| 00098e60 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a |e.h=>Sprite_DL>.| 00098e70 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 00098e80 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 00098e90 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 00098ea0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6c 6f |This function lo| 00098eb0 61 64 73 20 74 68 65 20 66 69 72 73 74 20 73 70 |ads the first sp| 00098ec0 72 69 74 65 20 69 6e 20 74 68 65 20 67 69 76 65 |rite in the give| 00098ed0 6e 20 73 70 72 69 74 65 20 66 69 6c 65 20 61 6e |n sprite file an| 00098ee0 64 20 64 69 73 70 6c 61 79 73 20 69 74 20 61 74 |d displays it at| 00098ef0 20 74 68 65 20 62 6f 74 74 6f 6d 20 6c 65 66 74 | the bottom left| 00098f00 20 6f 66 20 74 68 65 20 73 63 72 65 65 6e 2c 20 | of the screen, | 00098f10 69 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 6d |in the correct m| 00098f20 6f 64 65 20 61 6e 64 20 70 61 6c 65 74 74 65 2e |ode and palette.| 00098f30 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00098f40 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f |is equivalent to| 00098f50 20 74 68 65 20 53 57 49 20 3c 4f 53 5f 53 70 72 | the SWI <OS_Spr| 00098f60 69 74 65 4f 70 20 33 3d 3e 53 57 49 3a 6f 73 5f |iteOp 3=>SWI:os_| 00098f70 53 70 72 69 74 65 6f 70 33 3e 2e 00 44 41 54 41 |Spriteop3>..DATA| 00098f80 38 01 00 00 73 70 72 69 74 65 5f 73 63 72 65 65 |8...sprite_scree| 00098f90 6e 73 61 76 65 0a 53 79 6e 74 61 78 3a 09 76 6f |nsave.Syntax:.vo| 00098fa0 69 64 20 73 70 72 69 74 65 5f 73 63 72 65 65 6e |id sprite_screen| 00098fb0 73 61 76 65 20 28 63 68 61 72 20 2a 66 69 6c 65 |save (char *file| 00098fc0 2c 20 3c 73 70 72 69 74 65 5f 70 61 6c 66 6c 61 |, <sprite_palfla| 00098fd0 67 3e 20 66 6c 67 29 3b 0a 48 65 61 64 65 72 3a |g> flg);.Header:| 00098fe0 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 00098ff0 74 65 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |te_h>..This func| 00099000 74 69 6f 6e 20 73 61 76 65 73 20 74 68 65 20 63 |tion saves the c| 00099010 75 72 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 |urrent graphics | 00099020 77 69 6e 64 6f 77 20 77 69 74 68 20 61 20 70 61 |window with a pa| 00099030 6c 65 74 74 65 20 69 66 20 72 65 71 75 65 73 74 |lette if request| 00099040 65 64 20 61 73 20 74 68 65 20 73 70 72 69 74 65 |ed as the sprite| 00099050 66 69 6c 65 20 77 68 6f 73 65 20 6e 61 6d 65 20 |file whose name | 00099060 69 73 20 67 69 76 65 6e 2e 0a 0a 54 68 69 73 20 |is given...This | 00099070 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 |function is equi| 00099080 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 53 57 |valent to the SW| 00099090 49 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 20 32 |I <OS_SpriteOp 2| 000990a0 3d 3e 53 57 49 3a 6f 73 5f 73 70 72 69 74 65 6f |=>SWI:os_spriteo| 000990b0 70 32 3e 2e 44 41 54 41 b7 01 00 00 53 70 72 69 |p2>.DATA....Spri| 000990c0 74 65 5f 53 63 72 65 65 6e 53 61 76 65 0a 53 79 |te_ScreenSave.Sy| 000990d0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000990e0 20 2a 53 70 72 69 74 65 5f 53 63 72 65 65 6e 53 | *Sprite_ScreenS| 000990f0 61 76 65 20 28 63 68 61 72 20 2a 66 69 6c 65 6e |ave (char *filen| 00099100 61 6d 65 2c 20 3c 42 4f 4f 4c 3e 20 70 61 6c 66 |ame, <BOOL> palf| 00099110 6c 61 67 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |lag);.Header:.<D| 00099120 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d |eskLib:Sprite.h=| 00099130 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 |>Sprite_DL>..Ret| 00099140 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00099150 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00099160 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 00099170 20 66 75 6e 63 74 69 6f 6e 20 73 61 76 65 73 20 | function saves | 00099180 74 68 65 20 63 75 72 72 65 6e 74 20 67 72 61 70 |the current grap| 00099190 68 69 63 73 20 77 69 6e 64 6f 77 20 77 69 74 68 |hics window with| 000991a0 20 61 20 70 61 6c 65 74 74 65 20 69 66 20 72 65 | a palette if re| 000991b0 71 75 65 73 74 65 64 20 61 73 20 74 68 65 20 73 |quested as the s| 000991c0 70 72 69 74 65 66 69 6c 65 20 77 68 6f 73 65 20 |pritefile whose | 000991d0 6e 61 6d 65 20 69 73 20 67 69 76 65 6e 2e 20 49 |name is given. I| 000991e0 66 20 2f 70 61 6c 66 6c 61 67 2f 20 69 73 20 3c |f /palflag/ is <| 000991f0 54 52 55 45 3e 20 74 68 65 6e 20 74 68 65 20 70 |TRUE> then the p| 00099200 61 6c 65 74 74 65 20 69 73 20 73 61 76 65 64 20 |alette is saved | 00099210 77 69 74 68 20 74 68 65 20 73 70 72 69 74 65 2e |with the sprite.| 00099220 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 00099230 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f |is equivalent to| 00099240 20 74 68 65 20 53 57 49 20 3c 4f 53 5f 53 70 72 | the SWI <OS_Spr| 00099250 69 74 65 4f 70 20 32 3d 3e 53 57 49 3a 4f 53 5f |iteOp 2=>SWI:OS_| 00099260 53 70 72 69 74 65 4f 70 32 3e 2e 00 44 41 54 41 |SpriteOp2>..DATA| 00099270 85 01 00 00 73 70 72 69 74 65 5f 73 65 6c 65 63 |....sprite_selec| 00099280 74 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |t.Syntax:.<os_er| 00099290 72 6f 72 3e 20 2a 73 70 72 69 74 65 5f 73 65 6c |ror> *sprite_sel| 000992a0 65 63 74 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |ect (<sprite_are| 000992b0 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 000992c0 65 5f 69 64 3e 20 2a 73 70 72 29 3b 0a 48 65 61 |e_id> *spr);.Hea| 000992d0 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e |der:.<sprite.h=>| 000992e0 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 |sprite_h>..Retur| 000992f0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 00099300 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 00099310 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 00099320 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 73 20 |unction selects | 00099330 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 70 |the specified sp| 00099340 72 69 74 65 20 66 6f 72 20 70 6c 6f 74 74 69 6e |rite for plottin| 00099350 67 20 28 70 65 72 68 61 70 73 20 75 73 69 6e 67 |g (perhaps using| 00099360 20 3c 6f 73 5f 70 6c 6f 74 3e 29 20 77 69 74 68 | <os_plot>) with| 00099370 20 70 6c 6f 74 20 63 6f 64 65 20 30 78 45 44 20 | plot code 0xED | 00099380 28 61 6e 64 20 73 69 6d 69 6c 61 72 29 2e 20 49 |(and similar). I| 00099390 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |t is equivalent | 000993a0 74 6f 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d |to <OS_SpriteOp=| 000993b0 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 |>SWI:OS_SpriteOp| 000993c0 3e 20 32 34 2c 20 6f 72 20 2a 53 43 68 6f 6f 73 |> 24, or *SChoos| 000993d0 65 20 77 68 65 6e 20 75 73 65 64 20 77 69 74 68 |e when used with| 000993e0 20 74 68 65 20 73 79 73 74 65 6d 20 61 72 65 61 | the system area| 000993f0 2e 00 00 00 44 41 54 41 7a 01 00 00 73 70 72 69 |....DATAz...spri| 00099400 74 65 5f 73 65 6c 65 63 74 5f 72 70 0a 53 79 6e |te_select_rp.Syn| 00099410 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 00099420 2a 73 70 72 69 74 65 5f 73 65 6c 65 63 74 5f 72 |*sprite_select_r| 00099430 70 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |p (<sprite_area>| 00099440 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f | *area, <sprite_| 00099450 69 64 3e 20 2a 73 70 72 2c 20 3c 73 70 72 69 74 |id> *spr, <sprit| 00099460 65 5f 70 74 72 3e 20 2a 61 64 64 72 29 3b 0a 48 |e_ptr> *addr);.H| 00099470 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 00099480 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 |=>sprite_h>..Ret| 00099490 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000994a0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000994b0 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 000994c0 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 | function select| 000994d0 73 20 61 20 73 70 72 69 74 65 20 66 6f 72 20 70 |s a sprite for p| 000994e0 6c 6f 74 74 69 6e 67 2e 0a 0a 49 74 20 69 73 20 |lotting...It is | 000994f0 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 74 68 65 |identical to the| 00099500 20 66 75 6e 63 74 69 6f 6e 20 3c 73 70 72 69 74 | function <sprit| 00099510 65 5f 73 65 6c 65 63 74 3e 2c 20 62 75 74 20 72 |e_select>, but r| 00099520 65 74 75 72 6e 73 20 74 68 65 20 61 64 64 72 65 |eturns the addre| 00099530 73 73 20 6f 66 20 74 68 65 20 73 70 72 69 74 65 |ss of the sprite| 00099540 20 69 6e 20 74 68 65 20 7b 2f 7d 73 70 72 69 74 | in the {/}sprit| 00099550 65 5f 70 74 72 7b 2f 7d 20 70 6f 69 6e 74 65 64 |e_ptr{/} pointed| 00099560 20 74 6f 20 62 79 20 2f 61 64 64 72 2f 2e 00 00 | to by /addr/...| 00099570 44 41 54 41 57 00 00 00 73 70 72 69 74 65 2e 68 |DATAW...sprite.h| 00099580 20 53 69 6d 70 6c 65 20 46 75 6e 63 74 69 6f 6e | Simple Function| 00099590 73 0a 23 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a |s.#align centre.| 000995a0 3c 73 70 72 69 74 65 5f 73 63 72 65 65 6e 6c 6f |<sprite_screenlo| 000995b0 61 64 3e 0a 3c 73 70 72 69 74 65 5f 73 63 72 65 |ad>.<sprite_scre| 000995c0 65 6e 73 61 76 65 3e 00 44 41 54 41 1a 01 00 00 |ensave>.DATA....| 000995d0 73 70 72 69 74 65 5f 73 69 7a 65 6f 66 5f 73 63 |sprite_sizeof_sc| 000995e0 72 65 65 6e 63 6f 6e 74 65 78 74 0a 53 79 6e 74 |reencontext.Synt| 000995f0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 00099600 73 70 72 69 74 65 5f 73 69 7a 65 6f 66 5f 73 63 |sprite_sizeof_sc| 00099610 72 65 65 6e 63 6f 6e 74 65 78 74 20 28 69 6e 74 |reencontext (int| 00099620 20 2a 73 69 7a 65 29 3b 0a 48 65 61 64 65 72 3a | *size);.Header:| 00099630 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 |.<sprite.h=>spri| 00099640 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 |te_h>..Returns: | 00099650 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 00099660 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 00099670 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 00099680 69 6f 6e 20 67 65 74 73 20 74 68 65 20 73 69 7a |ion gets the siz| 00099690 65 20 6f 66 20 74 68 65 20 73 61 76 65 20 61 72 |e of the save ar| 000996a0 65 61 20 6e 65 65 64 65 64 20 74 6f 20 73 61 76 |ea needed to sav| 000996b0 65 20 74 68 65 20 73 63 72 65 65 6e 20 63 6f 6e |e the screen con| 000996c0 74 65 78 74 20 61 6e 64 20 72 65 74 75 72 6e 73 |text and returns| 000996d0 20 69 74 20 69 6e 20 7b 2f 7d 2a 73 70 72 7b 2f | it in {/}*spr{/| 000996e0 7d 2e 00 00 44 41 54 41 41 01 00 00 73 70 72 69 |}...DATAA...spri| 000996f0 74 65 5f 73 69 7a 65 6f 66 5f 73 70 72 69 74 65 |te_sizeof_sprite| 00099700 63 6f 6e 74 65 78 74 0a 53 79 6e 74 61 78 3a 09 |context.Syntax:.| 00099710 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 |<os_error> *spri| 00099720 74 65 5f 73 69 7a 65 6f 66 5f 73 70 72 69 74 65 |te_sizeof_sprite| 00099730 63 6f 6e 74 65 78 74 20 28 3c 73 70 72 69 74 65 |context (<sprite| 00099740 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 |_area> *area, <s| 00099750 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 |prite_id> *spr, | 00099760 69 6e 74 20 2a 73 69 7a 65 29 3b 0a 48 65 61 64 |int *size);.Head| 00099770 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 |er:.<sprite.h=>s| 00099780 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |prite_h>..Return| 00099790 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000997a0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000997b0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000997c0 6e 63 74 69 6f 6e 20 67 65 74 73 20 74 68 65 20 |nction gets the | 000997d0 73 69 7a 65 20 6f 66 20 74 68 65 20 73 61 76 65 |size of the save| 000997e0 20 61 72 65 61 20 6e 65 65 64 65 64 20 74 6f 20 | area needed to | 000997f0 73 61 76 65 20 74 68 65 20 73 70 72 69 74 65 20 |save the sprite | 00099800 63 6f 6e 74 65 78 74 20 61 6e 64 20 72 65 74 75 |context and retu| 00099810 72 6e 73 20 69 74 20 69 6e 20 7b 2f 7d 2a 73 70 |rns it in {/}*sp| 00099820 72 7b 2f 7d 2e 00 00 00 44 41 54 41 75 00 00 00 |r{/}....DATAu...| 00099830 73 70 72 69 74 65 5f 73 74 61 74 65 0a 54 68 69 |sprite_state.Thi| 00099840 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 00099850 64 20 69 6e 20 3c 73 70 72 69 74 65 2e 68 3d 3e |d in <sprite.h=>| 00099860 73 70 72 69 74 65 5f 68 3e 20 61 73 20 74 68 65 |sprite_h> as the| 00099870 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 | following struc| 00099880 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 |ture:.. \{. | 00099890 69 6e 74 20 72 5b 34 5d 3b 0a 20 20 7d 00 00 00 |int r[4];. }...| 000998a0 44 41 54 41 72 00 00 00 73 70 72 69 74 65 5f 74 |DATAr...sprite_t| 000998b0 72 61 6e 73 6d 61 74 0a 54 68 69 73 20 74 79 70 |ransmat.This typ| 000998c0 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000998d0 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 |<sprite.h=>sprit| 000998e0 65 5f 68 3e 20 61 73 20 61 20 7b 2f 7d 69 6e 74 |e_h> as a {/}int| 000998f0 20 5b 36 5d 7b 2f 7d 20 69 65 20 61 6e 20 61 72 | [6]{/} ie an ar| 00099900 72 61 79 20 6f 66 20 36 20 69 6e 74 65 67 65 72 |ray of 6 integer| 00099910 73 2e 00 00 44 41 54 41 f9 00 00 00 73 70 72 69 |s...DATA....spri| 00099920 74 65 5f 74 79 70 65 0a 54 68 69 73 20 69 73 20 |te_type.This is | 00099930 61 20 74 79 70 65 20 64 65 66 69 6e 65 64 20 69 |a type defined i| 00099940 6e 20 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 |n <sprite.h=>spr| 00099950 69 74 65 5f 68 3e 20 61 73 20 74 68 65 20 66 6f |ite_h> as the fo| 00099960 6c 6c 6f 77 69 6e 67 20 65 6e 75 6d 65 72 61 74 |llowing enumerat| 00099970 65 64 20 74 79 70 65 3a 0a 0a 20 20 5c 7b 0a 20 |ed type:.. \{. | 00099980 20 20 20 73 70 72 69 74 65 5f 69 64 5f 6e 61 6d | sprite_id_nam| 00099990 65 09 3d 20 30 2c 0a 20 20 20 20 73 70 72 69 74 |e.= 0,. sprit| 000999a0 65 5f 69 64 5f 61 64 64 72 09 3d 20 30 78 37 34 |e_id_addr.= 0x74| 000999b0 35 32 37 30 35 33 0a 20 20 7d 0a 0a 49 74 20 69 |527053. }..It i| 000999c0 73 20 75 73 65 64 20 74 6f 20 69 6e 64 69 63 61 |s used to indica| 000999d0 74 65 20 77 68 65 74 68 65 72 20 61 20 73 70 72 |te whether a spr| 000999e0 69 74 65 20 6e 61 6d 65 20 6f 72 20 61 64 64 72 |ite name or addr| 000999f0 65 73 73 20 69 73 20 75 73 65 64 20 69 6e 20 61 |ess is used in a| 00099a00 20 3c 73 70 72 69 74 65 5f 69 64 3e 2e 00 00 00 | <sprite_id>....| 00099a10 44 41 54 41 36 01 00 00 53 70 72 69 74 65 5f 55 |DATA6...Sprite_U| 00099a20 6e 52 65 64 69 72 65 63 74 0a 53 79 6e 74 61 78 |nRedirect.Syntax| 00099a30 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 |:.<os_error> *Sp| 00099a40 72 69 74 65 5f 55 6e 52 65 64 69 72 65 63 74 20 |rite_UnRedirect | 00099a50 28 3c 73 70 72 69 74 65 5f 6f 75 74 70 75 74 73 |(<sprite_outputs| 00099a60 74 61 74 65 3e 20 2a 6f 6c 64 29 3b 0a 48 65 61 |tate> *old);.Hea| 00099a70 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 70 |der:.<DeskLib:Sp| 00099a80 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f 44 |rite.h=>Sprite_D| 00099a90 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |L>..Returns:.Poi| 00099aa0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 00099ab0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 00099ac0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 00099ad0 20 72 65 73 74 6f 72 65 73 20 56 44 55 20 6f 75 | restores VDU ou| 00099ae0 74 70 75 74 20 62 61 63 6b 20 74 6f 20 61 20 73 |tput back to a s| 00099af0 61 76 65 64 20 73 74 61 74 65 2e 20 54 68 69 73 |aved state. This| 00099b00 20 73 74 61 74 65 20 73 68 6f 75 6c 64 20 62 65 | state should be| 00099b10 20 74 68 61 74 20 72 65 74 75 72 6e 65 64 20 69 | that returned i| 00099b20 6e 20 2f 6f 6c 64 2f 20 62 79 20 3c 53 70 72 69 |n /old/ by <Spri| 00099b30 74 65 5f 52 65 64 69 72 65 63 74 3e 2c 20 49 20 |te_Redirect>, I | 00099b40 74 68 69 6e 6b 21 00 00 44 41 54 41 e8 01 00 00 |think!..DATA....| 00099b50 53 70 72 69 74 65 5f 57 69 6d 70 50 6c 6f 74 0a |Sprite_WimpPlot.| 00099b60 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 00099b70 72 3e 20 2a 53 70 72 69 74 65 5f 57 69 6d 70 50 |r> *Sprite_WimpP| 00099b80 6c 6f 74 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |lot (<sprite_are| 00099b90 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e |a> area, char *n| 00099ba0 61 6d 65 2c 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 |ame, <wimp_point| 00099bb0 3e 20 2a 70 6f 73 2c 20 3c 63 6f 6e 76 65 72 74 |> *pos, <convert| 00099bc0 5f 62 6c 6f 63 6b 3e 20 2a 63 6f 6e 76 65 72 74 |_block> *convert| 00099bd0 2c 20 69 6e 74 20 61 63 74 69 6f 6e 29 3b 0a 48 |, int action);.H| 00099be0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 00099bf0 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 |Sprite.h=>Sprite| 00099c00 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |_DL>..Returns:.P| 00099c10 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 00099c20 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 00099c30 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 00099c40 6f 6e 20 70 6c 6f 74 73 20 74 68 65 20 73 70 65 |on plots the spe| 00099c50 63 69 66 69 65 64 20 73 70 72 69 74 65 20 61 74 |cified sprite at| 00099c60 20 77 6f 72 6b 20 61 72 65 61 20 63 6f 6f 72 64 | work area coord| 00099c70 69 6e 61 74 65 73 20 2f 70 6f 73 2f 20 66 6f 72 |inates /pos/ for| 00099c80 20 74 68 65 20 77 69 6e 64 6f 77 20 77 68 6f 73 | the window whos| 00099c90 65 20 63 6f 6e 76 65 72 74 20 62 6c 6f 63 6b 20 |e convert block | 00099ca0 69 73 20 67 69 76 65 6e 2c 20 77 69 74 68 20 67 |is given, with g| 00099cb0 72 61 70 68 69 63 73 20 61 63 74 69 6f 6e 20 2f |raphics action /| 00099cc0 61 63 74 69 6f 6e 2f 2e 20 41 6c 6c 20 72 65 6c |action/. All rel| 00099cd0 65 76 61 6e 74 20 73 63 61 6c 69 6e 67 2f 63 6f |evant scaling/co| 00099ce0 6c 6f 75 72 20 74 72 61 6e 73 6c 61 74 69 6f 6e |lour translation| 00099cf0 20 6f 63 63 75 72 73 20 74 6f 20 70 6c 6f 74 20 | occurs to plot | 00099d00 74 68 65 20 73 70 72 69 74 65 20 61 73 20 74 68 |the sprite as th| 00099d10 65 20 57 69 6d 70 20 77 6f 75 6c 64 20 64 6f 20 |e Wimp would do | 00099d20 77 65 72 65 20 69 74 20 61 6e 20 69 63 6f 6e 2e |were it an icon.| 00099d30 44 41 54 41 95 01 00 00 73 70 72 69 74 65 5f 77 |DATA....sprite_w| 00099d40 72 69 74 65 6d 61 73 6b 0a 53 79 6e 74 61 78 3a |ritemask.Syntax:| 00099d50 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 |.<os_error> *spr| 00099d60 69 74 65 5f 77 72 69 74 65 6d 61 73 6b 20 28 3c |ite_writemask (<| 00099d70 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 72 |sprite_area> *ar| 00099d80 65 61 2c 20 3c 73 70 72 69 74 65 5f 69 64 3e 20 |ea, <sprite_id> | 00099d90 2a 73 70 72 2c 20 69 6e 74 20 78 2c 20 69 6e 74 |*spr, int x, int| 00099da0 20 79 2c 20 3c 73 70 72 69 74 65 5f 6d 61 73 6b | y, <sprite_mask| 00099db0 73 74 61 74 65 3e 20 2a 6d 61 73 6b 29 3b 0a 48 |state> *mask);.H| 00099dc0 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 00099dd0 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 |=>sprite_h>..Ret| 00099de0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 00099df0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 00099e00 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 44 65 73 6b |> if none...Desk| 00099e10 4c 69 62 3a 20 53 65 65 20 3c 53 70 72 69 74 65 |Lib: See <Sprite| 00099e20 5f 57 72 69 74 65 4d 61 73 6b 3d 3e 53 70 72 69 |_WriteMask=>Spri| 00099e30 74 65 5f 57 72 69 74 65 4d 61 73 6b 5f 3e 2e 0a |te_WriteMask_>..| 00099e40 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 |.This function w| 00099e50 72 69 74 65 73 20 74 68 65 20 73 74 61 74 65 20 |rites the state | 00099e60 6f 66 20 61 20 67 69 76 65 6e 20 70 69 78 65 6c |of a given pixel| 00099e70 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 | in the specifie| 00099e80 64 20 73 70 72 69 74 65 20 6d 61 73 6b 2e 20 49 |d sprite mask. I| 00099e90 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |t is equivalent | 00099ea0 74 6f 20 3c 4f 53 5f 53 70 72 69 74 65 4f 70 3d |to <OS_SpriteOp=| 00099eb0 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 65 4f 70 |>SWI:OS_SpriteOp| 00099ec0 3e 20 34 34 2e 00 00 00 44 41 54 41 59 01 00 00 |> 44....DATAY...| 00099ed0 53 70 72 69 74 65 5f 57 72 69 74 65 4d 61 73 6b |Sprite_WriteMask| 00099ee0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 00099ef0 6f 72 3e 20 2a 53 70 72 69 74 65 5f 57 72 69 74 |or> *Sprite_Writ| 00099f00 65 4d 61 73 6b 20 28 3c 73 70 72 69 74 65 5f 61 |eMask (<sprite_a| 00099f10 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 |rea> area, char | 00099f20 2a 6e 61 6d 65 2c 20 3c 77 69 6d 70 5f 70 6f 69 |*name, <wimp_poi| 00099f30 6e 74 3e 20 2a 70 6f 73 2c 20 3c 42 4f 4f 4c 3e |nt> *pos, <BOOL>| 00099f40 20 73 6f 6c 69 64 29 3b 0a 48 65 61 64 65 72 3a | solid);.Header:| 00099f50 09 3c 44 65 73 6b 4c 69 62 3a 53 70 72 69 74 65 |.<DeskLib:Sprite| 00099f60 2e 68 3d 3e 53 70 72 69 74 65 5f 44 4c 3e 0a 0a |.h=>Sprite_DL>..| 00099f70 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 00099f80 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 00099f90 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 00099fa0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 00099fb0 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 61 |s the state of a| 00099fc0 20 67 69 76 65 6e 20 70 69 78 65 6c 20 69 6e 20 | given pixel in | 00099fd0 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 70 |the specified sp| 00099fe0 72 69 74 65 20 6d 61 73 6b 2e 20 49 74 20 69 73 |rite mask. It is| 00099ff0 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 0009a000 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 |OS_SpriteOp=>SWI| 0009a010 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 33 |:OS_SpriteOp> 43| 0009a020 2e 00 00 00 44 41 54 41 94 01 00 00 73 70 72 69 |....DATA....spri| 0009a030 74 65 5f 77 72 69 74 65 70 69 78 65 6c 0a 53 79 |te_writepixel.Sy| 0009a040 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 0009a050 20 2a 73 70 72 69 74 65 5f 77 72 69 74 65 70 69 | *sprite_writepi| 0009a060 78 65 6c 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |xel (<sprite_are| 0009a070 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 |a> *area, <sprit| 0009a080 65 5f 69 64 3e 20 2a 73 70 72 2c 20 69 6e 74 20 |e_id> *spr, int | 0009a090 78 2c 20 69 6e 74 20 79 2c 20 3c 73 70 72 69 74 |x, int y, <sprit| 0009a0a0 65 5f 63 6f 6c 6f 75 72 3e 20 2a 63 6f 6c 6f 75 |e_colour> *colou| 0009a0b0 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 |r);.Header:.<spr| 0009a0c0 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e |ite.h=>sprite_h>| 0009a0d0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 0009a0e0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 0009a0f0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 0009a100 0a 44 65 73 6b 4c 69 62 3a 20 53 65 65 20 3c 53 |.DeskLib: See <S| 0009a110 70 72 69 74 65 5f 57 72 69 74 65 50 69 78 65 6c |prite_WritePixel| 0009a120 3d 3e 53 70 72 69 74 65 5f 57 72 69 74 65 50 69 |=>Sprite_WritePi| 0009a130 78 65 6c 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e |xel_>...This fun| 0009a140 63 74 69 6f 6e 20 77 72 69 74 65 73 20 74 68 65 |ction writes the| 0009a150 20 63 6f 6c 6f 75 72 20 6f 66 20 61 20 67 69 76 | colour of a giv| 0009a160 65 6e 20 70 69 78 65 6c 20 69 6e 20 74 68 65 20 |en pixel in the | 0009a170 73 70 65 63 69 66 69 65 64 20 73 70 72 69 74 65 |specified sprite| 0009a180 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 |. It is equivale| 0009a190 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 69 74 65 |nt to <OS_Sprite| 0009a1a0 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 72 69 74 |Op=>SWI:OS_Sprit| 0009a1b0 65 4f 70 3e 20 34 32 2e 44 41 54 41 64 01 00 00 |eOp> 42.DATAd...| 0009a1c0 53 70 72 69 74 65 5f 57 72 69 74 65 50 69 78 65 |Sprite_WritePixe| 0009a1d0 6c 0a 53 79 6e 74 61 78 3a 09 6f 73 5f 65 72 72 |l.Syntax:.os_err| 0009a1e0 6f 72 20 2a 53 70 72 69 74 65 5f 57 72 69 74 65 |or *Sprite_Write| 0009a1f0 50 69 78 65 6c 20 28 3c 73 70 72 69 74 65 5f 61 |Pixel (<sprite_a| 0009a200 72 65 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 |rea> area, char | 0009a210 2a 6e 61 6d 65 2c 20 3c 77 69 6d 70 5f 70 6f 69 |*name, <wimp_poi| 0009a220 6e 74 3e 20 2a 70 6f 73 2c 20 69 6e 74 20 63 6f |nt> *pos, int co| 0009a230 6c 2c 20 69 6e 74 20 74 69 6e 74 29 3b 0a 48 65 |l, int tint);.He| 0009a240 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 0009a250 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 5f |prite.h=>Sprite_| 0009a260 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |DL>..Returns:.Po| 0009a270 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 0009a280 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 0009a290 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0009a2a0 6e 20 73 65 74 73 20 74 68 65 20 63 6f 6c 6f 75 |n sets the colou| 0009a2b0 72 20 61 6e 64 20 74 69 6e 74 20 6f 66 20 74 68 |r and tint of th| 0009a2c0 65 20 70 69 78 65 6c 20 61 74 20 2f 70 6f 73 2f |e pixel at /pos/| 0009a2d0 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 70 | in the given sp| 0009a2e0 72 69 74 65 2e 20 49 74 20 69 73 20 65 71 75 69 |rite. It is equi| 0009a2f0 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 |valent to <OS_Sp| 0009a300 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 |riteOp=>SWI:OS_S| 0009a310 70 72 69 74 65 4f 70 3e 20 34 32 2e 44 41 54 41 |priteOp> 42.DATA| 0009a320 61 01 00 00 73 70 72 69 74 65 5f 61 72 65 61 5f |a...sprite_area_| 0009a330 69 6e 69 74 69 61 6c 69 73 65 0a 53 79 6e 74 61 |initialise.Synta| 0009a340 78 3a 09 76 6f 69 64 20 73 70 72 69 74 65 5f 61 |x:.void sprite_a| 0009a350 72 65 61 5f 69 6e 69 74 69 61 6c 69 73 65 20 28 |rea_initialise (| 0009a360 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 70 |<sprite_area> *p| 0009a370 74 72 2c 20 69 6e 74 20 73 69 7a 65 29 3b 0a 48 |tr, int size);.H| 0009a380 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 0009a390 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 54 68 69 |=>sprite_h>..Thi| 0009a3a0 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 |s function initi| 0009a3b0 61 6c 69 73 65 73 20 61 6e 20 61 72 65 61 20 6f |alises an area o| 0009a3c0 66 20 6d 65 6d 6f 72 79 20 70 6f 69 6e 74 65 64 |f memory pointed| 0009a3d0 20 74 6f 20 62 79 20 2f 70 74 72 2f 2c 20 77 68 | to by /ptr/, wh| 0009a3e0 6f 73 65 20 73 69 7a 65 20 69 73 20 67 69 76 65 |ose size is give| 0009a3f0 6e 20 69 6e 20 2f 73 69 7a 65 2f 2c 20 66 6f 72 |n in /size/, for| 0009a400 20 75 73 65 20 61 73 20 61 20 73 70 72 69 74 65 | use as a sprite| 0009a410 20 61 72 65 61 2e 20 54 68 65 72 65 20 69 73 20 | area. There is | 0009a420 6e 6f 20 7b 2a 7d 4f 53 5f 53 70 72 69 74 65 4f |no {*}OS_SpriteO| 0009a430 70 7b 2a 7d 20 63 61 6c 6c 20 74 6f 20 64 6f 20 |p{*} call to do | 0009a440 74 68 69 73 2c 20 73 6f 20 74 68 69 73 20 69 73 |this, so this is| 0009a450 20 61 20 75 73 65 66 75 6c 20 66 75 6e 63 74 69 | a useful functi| 0009a460 6f 6e 20 77 68 69 63 68 20 73 61 76 65 73 20 79 |on which saves y| 0009a470 6f 75 20 73 6f 6d 65 20 77 6f 72 6b 2e 00 00 00 |ou some work....| 0009a480 44 41 54 41 67 01 00 00 73 70 72 69 74 65 5f 61 |DATAg...sprite_a| 0009a490 72 65 61 5f 72 65 61 64 69 6e 66 6f 0a 53 79 6e |rea_readinfo.Syn| 0009a4a0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0009a4b0 2a 73 70 72 69 74 65 5f 61 72 65 61 5f 72 65 61 |*sprite_area_rea| 0009a4c0 64 69 6e 66 6f 20 28 3c 73 70 72 69 74 65 5f 61 |dinfo (<sprite_a| 0009a4d0 72 65 61 3e 20 2a 61 72 65 61 2c 20 73 70 72 69 |rea> *area, spri| 0009a4e0 74 65 5f 61 72 65 61 20 2a 72 65 73 75 6c 74 29 |te_area *result)| 0009a4f0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 72 69 74 |;.Header:.<sprit| 0009a500 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a |e.h=>sprite_h>..| 0009a510 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 0009a520 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 0009a530 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 0009a540 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 |his function rea| 0009a550 64 73 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f 72 |ds all the infor| 0009a560 6d 61 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 65 64 |mation contained| 0009a570 20 69 6e 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 | in the control | 0009a580 62 6c 6f 63 6b 20 6f 66 20 74 68 65 20 73 70 72 |block of the spr| 0009a590 69 74 65 20 61 72 65 61 20 70 6f 69 6e 74 65 64 |ite area pointed| 0009a5a0 20 74 6f 20 62 79 20 2f 61 72 65 61 2f 2c 20 61 | to by /area/, a| 0009a5b0 6e 64 20 70 6c 61 63 65 73 20 69 74 20 69 6e 20 |nd places it in | 0009a5c0 74 68 65 20 73 70 72 69 74 65 20 61 72 65 61 20 |the sprite area | 0009a5d0 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 72 |pointed to by /r| 0009a5e0 65 73 75 6c 74 2f 2e 00 44 41 54 41 f5 02 00 00 |esult/..DATA....| 0009a5f0 73 70 72 69 74 65 5f 70 75 74 5f 67 72 65 79 73 |sprite_put_greys| 0009a600 63 61 6c 65 64 0a 53 79 6e 74 61 78 3a 09 09 3c |caled.Syntax:..<| 0009a610 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 69 74 |os_error> *sprit| 0009a620 65 5f 70 75 74 5f 67 72 65 79 73 63 61 6c 65 64 |e_put_greyscaled| 0009a630 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 | (<sprite_area> | 0009a640 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f 69 |*area, <sprite_i| 0009a650 64 3e 20 2a 73 70 72 2c 20 69 6e 74 20 78 2c 20 |d> *spr, int x, | 0009a660 69 6e 74 20 79 2c 20 3c 73 70 72 69 74 65 5f 66 |int y, <sprite_f| 0009a670 61 63 74 6f 72 73 3e 20 2a 66 61 63 74 2c 20 3c |actors> *fact, <| 0009a680 73 70 72 69 74 65 5f 70 69 78 74 72 61 6e 73 3e |sprite_pixtrans>| 0009a690 20 2a 70 69 78 74 29 3b 0a 48 65 61 64 65 72 3a | *pixt);.Header:| 0009a6a0 09 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 |..<sprite.h=>spr| 0009a6b0 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |ite_h>..Returns:| 0009a6c0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0009a6d0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0009a6e0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0009a6f0 74 69 6f 6e 20 69 73 20 73 69 6d 69 6c 61 72 20 |tion is similar | 0009a700 74 6f 20 3c 73 70 72 69 74 65 5f 70 75 74 5f 73 |to <sprite_put_s| 0009a710 63 61 6c 65 64 3e 2c 20 65 78 63 65 70 74 20 74 |caled>, except t| 0009a720 68 61 74 20 69 74 20 61 6e 74 69 2d 61 6c 69 61 |hat it anti-alia| 0009a730 73 65 73 20 74 68 65 20 73 70 72 69 74 65 20 61 |ses the sprite a| 0009a740 73 20 69 74 20 73 63 61 6c 65 73 20 69 74 2e 20 |s it scales it. | 0009a750 54 68 65 20 73 70 72 69 74 65 20 6d 75 73 74 20 |The sprite must | 0009a760 68 61 76 65 20 62 65 65 6e 20 64 65 66 69 6e 65 |have been define| 0009a770 64 20 69 6e 20 61 20 31 36 20 63 6f 6c 6f 75 72 |d in a 16 colour| 0009a780 20 6d 6f 64 65 2c 20 61 6e 64 20 74 68 65 20 70 | mode, and the p| 0009a790 61 6c 65 74 74 65 20 6d 75 73 74 20 62 65 20 61 |alette must be a| 0009a7a0 20 6c 69 6e 65 61 72 20 67 72 65 79 2d 73 63 61 | linear grey-sca| 0009a7b0 6c 65 2e 0a 0a 54 68 69 73 20 63 61 6c 6c 20 69 |le...This call i| 0009a7c0 73 20 73 6c 6f 77 20 61 6e 64 20 73 68 6f 75 6c |s slow and shoul| 0009a7d0 64 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 77 |d only be used w| 0009a7e0 68 65 6e 20 74 68 65 20 71 75 61 6c 69 74 79 20 |hen the quality | 0009a7f0 69 73 20 6d 6f 72 65 20 69 6d 70 6f 72 74 61 6e |is more importan| 0009a800 74 20 74 68 61 6e 20 73 70 65 65 64 2e 20 49 66 |t than speed. If| 0009a810 20 74 68 69 73 20 71 75 61 6c 69 74 79 20 69 73 | this quality is| 0009a820 20 6e 65 65 64 65 64 20 66 6f 72 20 73 6f 6d 65 | needed for some| 0009a830 74 68 69 6e 67 20 74 68 61 74 20 77 69 6c 6c 20 |thing that will | 0009a840 62 65 20 72 65 64 72 61 77 6e 20 6d 6f 72 65 20 |be redrawn more | 0009a850 74 68 61 6e 20 6f 6e 63 65 2c 20 69 74 20 69 73 |than once, it is| 0009a860 20 61 64 76 69 73 61 62 6c 65 20 74 6f 20 72 65 | advisable to re| 0009a870 64 72 61 77 20 69 74 20 6f 6e 63 65 20 69 6e 74 |draw it once int| 0009a880 6f 20 61 6e 6f 74 68 65 72 20 73 70 72 69 74 65 |o another sprite| 0009a890 2c 20 75 73 69 6e 67 20 3c 73 70 72 69 74 65 5f |, using <sprite_| 0009a8a0 6f 75 74 70 75 74 74 6f 73 70 72 69 74 65 3e 2c |outputtosprite>,| 0009a8b0 20 61 6e 64 20 74 68 65 6e 20 72 65 64 72 61 77 | and then redraw| 0009a8c0 20 74 6f 20 73 63 72 65 65 6e 20 75 73 69 6e 67 | to screen using| 0009a8d0 20 74 68 69 73 20 73 70 72 69 74 65 2e 00 00 00 | this sprite....| 0009a8e0 44 41 54 41 1b 02 00 00 73 70 72 69 74 65 5f 70 |DATA....sprite_p| 0009a8f0 75 74 5f 6d 61 73 6b 5f 67 69 76 65 6e 0a 53 79 |ut_mask_given.Sy| 0009a900 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 0009a910 20 2a 73 70 72 69 74 65 5f 70 75 74 5f 6d 61 73 | *sprite_put_mas| 0009a920 6b 5f 67 69 76 65 6e 20 28 3c 73 70 72 69 74 65 |k_given (<sprite| 0009a930 5f 61 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 |_area> *area, <s| 0009a940 70 72 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 |prite_id> *spr, | 0009a950 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 3b 0a 48 |int x, int y);.H| 0009a960 65 61 64 65 72 3a 09 3c 73 70 72 69 74 65 2e 68 |eader:.<sprite.h| 0009a970 3d 3e 73 70 72 69 74 65 5f 68 3e 0a 0a 52 65 74 |=>sprite_h>..Ret| 0009a980 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 0009a990 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 0009a9a0 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 0009a9b0 20 66 75 6e 63 74 69 6f 6e 20 70 6c 6f 74 73 20 | function plots | 0009a9c0 61 20 73 70 72 69 74 65 20 6d 61 73 6b 20 69 6e |a sprite mask in| 0009a9d0 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 61 63 | the current bac| 0009a9e0 6b 67 72 6f 75 6e 64 20 67 72 61 70 68 69 63 73 |kground graphics| 0009a9f0 20 63 6f 6c 6f 75 72 20 61 6e 64 20 61 63 74 69 | colour and acti| 0009aa00 6f 6e 20 28 73 65 74 20 75 73 69 6e 67 20 3c 6f |on (set using <o| 0009aa10 73 5f 67 63 6f 6c 3e 29 2c 20 61 74 20 7b 2f 7d |s_gcol>), at {/}| 0009aa20 28 78 2c 79 29 7b 2f 7d 2e 20 41 6c 6c 20 31 20 |(x,y){/}. All 1 | 0009aa30 62 69 74 73 20 69 6e 20 74 68 65 20 6d 61 73 6b |bits in the mask| 0009aa40 20 61 72 65 20 70 6c 6f 74 74 65 64 2c 20 30 20 | are plotted, 0 | 0009aa50 62 69 74 73 20 61 72 65 20 6e 6f 74 2e 20 49 66 |bits are not. If| 0009aa60 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 | the specified s| 0009aa70 70 72 69 74 65 20 68 61 73 20 6e 6f 20 6d 61 73 |prite has no mas| 0009aa80 6b 2c 20 61 20 72 65 63 74 61 6e 67 6c 65 20 74 |k, a rectangle t| 0009aa90 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 73 |he size of the s| 0009aaa0 70 72 69 74 65 20 69 73 20 70 6c 6f 74 74 65 64 |prite is plotted| 0009aab0 20 69 6e 73 74 65 61 64 2e 20 54 68 69 73 20 66 | instead. This f| 0009aac0 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 |unction is equiv| 0009aad0 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 72 |alent to <OS_Spr| 0009aae0 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 |iteOp=>SWI:OS_Sp| 0009aaf0 72 69 74 65 4f 70 3e 20 34 39 2e 00 44 41 54 41 |riteOp> 49..DATA| 0009ab00 21 02 00 00 73 70 72 69 74 65 5f 70 75 74 5f 6d |!...sprite_put_m| 0009ab10 61 73 6b 5f 73 63 61 6c 65 64 0a 53 79 6e 74 61 |ask_scaled.Synta| 0009ab20 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 |x:.<os_error> *s| 0009ab30 70 72 69 74 65 5f 70 75 74 5f 6d 61 73 6b 5f 73 |prite_put_mask_s| 0009ab40 63 61 6c 65 64 20 28 3c 73 70 72 69 74 65 5f 61 |caled (<sprite_a| 0009ab50 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 |rea> *area, <spr| 0009ab60 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 69 6e |ite_id> *spr, in| 0009ab70 74 20 78 2c 20 69 6e 74 20 79 2c 20 3c 73 70 72 |t x, int y, <spr| 0009ab80 69 74 65 5f 66 61 63 74 6f 72 73 3e 20 2a 66 61 |ite_factors> *fa| 0009ab90 63 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 70 |ct);.Header:.<sp| 0009aba0 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 5f 68 |rite.h=>sprite_h| 0009abb0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 0009abc0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 0009abd0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 0009abe0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0009abf0 70 6c 6f 74 73 20 61 20 73 70 72 69 74 65 20 6d |plots a sprite m| 0009ac00 61 73 6b 20 69 6e 20 74 68 65 20 63 75 72 72 65 |ask in the curre| 0009ac10 6e 74 20 62 61 63 6b 67 72 6f 75 6e 64 20 67 72 |nt background gr| 0009ac20 61 70 68 69 63 73 20 63 6f 6c 6f 75 72 20 61 6e |aphics colour an| 0009ac30 64 20 61 63 74 69 6f 6e 20 28 73 65 74 20 75 73 |d action (set us| 0009ac40 69 6e 67 20 3c 6f 73 5f 67 63 6f 6c 3e 29 20 61 |ing <os_gcol>) a| 0009ac50 74 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 20 41 |t {/}(x,y){/}. A| 0009ac60 6c 6c 20 31 20 62 69 74 73 20 69 6e 20 74 68 65 |ll 1 bits in the| 0009ac70 20 6d 61 73 6b 20 61 72 65 20 70 6c 6f 74 74 65 | mask are plotte| 0009ac80 64 2c 20 30 20 62 69 74 73 20 61 72 65 20 6e 6f |d, 0 bits are no| 0009ac90 74 2e 20 54 68 65 20 6d 61 73 6b 20 69 73 20 73 |t. The mask is s| 0009aca0 63 61 6c 65 64 20 61 63 63 6f 72 64 69 6e 67 20 |caled according | 0009acb0 74 6f 20 74 68 65 20 73 63 61 6c 65 64 20 66 61 |to the scaled fa| 0009acc0 63 74 6f 72 73 20 70 6f 69 6e 74 65 64 20 74 6f |ctors pointed to| 0009acd0 20 62 79 20 2f 66 61 63 74 2f 2e 20 54 68 69 73 | by /fact/. This| 0009ace0 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 | function is equ| 0009acf0 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 |ivalent to <OS_S| 0009ad00 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f |priteOp=>SWI:OS_| 0009ad10 53 70 72 69 74 65 4f 70 3e 20 35 30 2e 00 00 00 |SpriteOp> 50....| 0009ad20 44 41 54 41 fc 01 00 00 73 70 72 69 74 65 5f 70 |DATA....sprite_p| 0009ad30 75 74 5f 63 68 61 72 5f 73 63 61 6c 65 64 0a 53 |ut_char_scaled.S| 0009ad40 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 0009ad50 3e 20 2a 73 70 72 69 74 65 5f 70 75 74 5f 63 68 |> *sprite_put_ch| 0009ad60 61 72 5f 73 63 61 6c 65 64 20 28 63 68 61 72 20 |ar_scaled (char | 0009ad70 63 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c |c, int x, int y,| 0009ad80 20 3c 73 70 72 69 74 65 5f 66 61 63 74 6f 72 73 | <sprite_factors| 0009ad90 3e 20 2a 66 61 63 74 29 3b 0a 48 65 61 64 65 72 |> *fact);.Header| 0009ada0 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 |:.<sprite.h=>spr| 0009adb0 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |ite_h>..Returns:| 0009adc0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 0009add0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 0009ade0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 0009adf0 74 69 6f 6e 20 70 6c 6f 74 73 20 61 20 74 65 78 |tion plots a tex| 0009ae00 74 20 63 68 61 72 61 63 74 65 72 2c 20 77 68 6f |t character, who| 0009ae10 73 65 20 63 68 61 72 61 63 74 65 72 20 63 6f 64 |se character cod| 0009ae20 65 20 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 63 |e is given in /c| 0009ae30 2f 2c 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e |/, on the screen| 0009ae40 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 | in the current | 0009ae50 67 72 61 70 68 69 63 73 20 66 6f 72 65 67 72 6f |graphics foregro| 0009ae60 75 6e 64 20 63 6f 6c 6f 75 72 20 61 6e 64 20 61 |und colour and a| 0009ae70 63 74 69 6f 6e 2c 20 77 69 74 68 20 69 74 73 20 |ction, with its | 0009ae80 62 6f 74 74 6f 6d 20 6c 65 66 74 20 61 74 20 7b |bottom left at {| 0009ae90 2f 7d 28 78 2c 79 29 7b 2f 7d 2e 20 49 74 20 69 |/}(x,y){/}. It i| 0009aea0 73 20 73 63 61 6c 65 64 20 61 63 63 6f 72 64 69 |s scaled accordi| 0009aeb0 6e 67 20 74 6f 20 74 68 65 20 73 63 61 6c 69 6e |ng to the scalin| 0009aec0 67 20 66 61 63 74 6f 72 73 20 67 69 76 65 6e 20 |g factors given | 0009aed0 62 79 20 2f 66 61 63 74 2f 2e 20 54 68 69 73 20 |by /fact/. This | 0009aee0 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 |function is equi| 0009aef0 76 61 6c 65 6e 74 20 74 6f 20 3c 4f 53 5f 53 70 |valent to <OS_Sp| 0009af00 72 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 |riteOp=>SWI:OS_S| 0009af10 70 72 69 74 65 4f 70 3e 20 35 31 2e 44 41 54 41 |priteOp> 51.DATA| 0009af20 b4 01 00 00 73 70 72 69 74 65 5f 69 6e 73 65 72 |....sprite_inser| 0009af30 74 5f 63 6f 6c 75 6d 6e 0a 53 79 6e 74 61 78 3a |t_column.Syntax:| 0009af40 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 73 70 72 |.<os_error> *spr| 0009af50 69 74 65 5f 69 6e 73 65 72 74 5f 63 6f 6c 75 6d |ite_insert_colum| 0009af60 6e 20 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e |n (<sprite_area>| 0009af70 20 2a 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f | *area, <sprite_| 0009af80 69 64 3e 20 2a 73 70 72 2c 20 69 6e 74 20 63 6f |id> *spr, int co| 0009af90 6c 75 6d 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c |lumn);.Header:.<| 0009afa0 73 70 72 69 74 65 2e 68 3d 3e 73 70 72 69 74 65 |sprite.h=>sprite| 0009afb0 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 0009afc0 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 0009afd0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 0009afe0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 0009aff0 6e 20 69 6e 73 65 72 74 73 20 61 20 63 6f 6c 75 |n inserts a colu| 0009b000 6d 6e 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 |mn in the given | 0009b010 73 70 72 69 74 65 20 61 74 20 74 68 65 20 70 6f |sprite at the po| 0009b020 73 69 74 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 |sition identifie| 0009b030 64 2c 20 73 68 69 66 74 69 6e 67 20 61 6c 6c 20 |d, shifting all | 0009b040 63 6f 6c 75 6d 6e 73 20 61 66 74 65 72 20 69 74 |columns after it| 0009b050 20 28 69 66 20 61 6e 79 29 20 74 6f 20 74 68 65 | (if any) to the| 0009b060 20 72 69 67 68 74 2e 20 54 68 65 20 6c 65 66 74 | right. The left| 0009b070 2d 68 61 6e 64 20 63 6f 6c 75 6d 6e 20 69 73 20 |-hand column is | 0009b080 6e 75 6d 62 65 72 65 64 20 7a 65 72 6f 2e 20 54 |numbered zero. T| 0009b090 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 0009b0a0 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f |equivalent to <O| 0009b0b0 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a |S_SpriteOp=>SWI:| 0009b0c0 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 35 2e |OS_SpriteOp> 45.| 0009b0d0 44 41 54 41 90 01 00 00 73 70 72 69 74 65 5f 64 |DATA....sprite_d| 0009b0e0 65 6c 65 74 65 5f 63 6f 6c 75 6d 6e 0a 53 79 6e |elete_column.Syn| 0009b0f0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 0009b100 2a 73 70 72 69 74 65 5f 64 65 6c 65 74 65 5f 63 |*sprite_delete_c| 0009b110 6f 6c 75 6d 6e 20 28 3c 73 70 72 69 74 65 5f 61 |olumn (<sprite_a| 0009b120 72 65 61 3e 20 2a 61 72 65 61 2c 20 3c 73 70 72 |rea> *area, <spr| 0009b130 69 74 65 5f 69 64 3e 20 2a 73 70 72 2c 20 69 6e |ite_id> *spr, in| 0009b140 74 20 63 6f 6c 75 6d 6e 29 3b 0a 48 65 61 64 65 |t column);.Heade| 0009b150 72 3a 09 3c 73 70 72 69 74 65 2e 68 3d 3e 73 70 |r:.<sprite.h=>sp| 0009b160 72 69 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |rite_h>..Returns| 0009b170 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 0009b180 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 0009b190 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 0009b1a0 63 74 69 6f 6e 20 64 65 6c 65 74 65 73 20 61 20 |ction deletes a | 0009b1b0 63 6f 6c 75 6d 6e 20 69 6e 20 74 68 65 20 73 70 |column in the sp| 0009b1c0 72 69 74 65 20 61 74 20 74 68 65 20 70 6f 73 69 |rite at the posi| 0009b1d0 74 69 6f 6e 20 69 64 65 6e 74 69 66 69 65 64 20 |tion identified | 0009b1e0 28 74 68 65 20 6c 65 66 74 20 63 6f 6c 75 6d 6e |(the left column| 0009b1f0 20 69 73 20 72 6f 77 20 30 29 2c 20 73 68 69 66 | is row 0), shif| 0009b200 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 61 66 |ting all rows af| 0009b210 74 65 72 20 69 74 20 28 69 66 20 61 6e 79 29 20 |ter it (if any) | 0009b220 6c 65 66 74 20 6f 6e 65 2e 20 49 74 20 69 73 20 |left one. It is | 0009b230 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 4f |equivalent to <O| 0009b240 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a |S_SpriteOp=>SWI:| 0009b250 6f 73 5f 73 70 72 69 74 65 6f 70 3e 20 34 36 2e |os_spriteop> 46.| 0009b260 44 41 54 41 5f 01 00 00 53 70 72 69 74 65 5f 4c |DATA_...Sprite_L| 0009b270 6f 61 64 46 69 6c 65 73 0a 53 79 6e 74 61 78 3a |oadFiles.Syntax:| 0009b280 09 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 53 |.<sprite_area> S| 0009b290 70 72 69 74 65 5f 4c 6f 61 64 46 69 6c 65 73 20 |prite_LoadFiles | 0009b2a0 28 69 6e 74 20 6e 75 6d 2c 20 2e 2e 2e 29 3b 0a |(int num, ...);.| 0009b2b0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0009b2c0 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 |:Sprite.h=>Sprit| 0009b2d0 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |e_DL>..Returns:.| 0009b2e0 50 6f 69 6e 74 65 72 20 74 6f 20 73 70 72 69 74 |Pointer to sprit| 0009b2f0 65 20 61 72 65 61 20 63 72 65 61 74 65 64 2e 0a |e area created..| 0009b300 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 |.This function a| 0009b310 6c 6c 6f 63 61 74 65 73 20 73 70 61 63 65 20 66 |llocates space f| 0009b320 6f 72 20 61 20 73 70 72 69 74 65 20 61 72 65 61 |or a sprite area| 0009b330 20 77 69 74 68 20 3c 6d 61 6c 6c 6f 63 3e 2c 20 | with <malloc>, | 0009b340 69 6e 69 74 69 61 6c 69 73 65 73 20 69 74 20 61 |initialises it a| 0009b350 6e 64 20 6c 6f 61 64 73 20 2f 6e 75 6d 2f 20 73 |nd loads /num/ s| 0009b360 70 72 69 74 65 20 66 69 6c 65 73 20 69 6e 74 6f |prite files into| 0009b370 20 69 74 2c 20 61 6c 6c 20 6f 66 20 77 68 6f 73 | it, all of whos| 0009b380 65 20 6e 61 6d 65 73 20 61 72 65 20 70 61 73 73 |e names are pass| 0009b390 65 64 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 |ed as parameters| 0009b3a0 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 | in the variable| 0009b3b0 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 2e 00 | argument list..| 0009b3c0 44 41 54 41 ed 00 00 00 53 70 72 69 74 65 5f 52 |DATA....Sprite_R| 0009b3d0 65 6d 6f 76 65 4d 61 73 6b 0a 53 79 6e 74 61 78 |emoveMask.Syntax| 0009b3e0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 53 70 |:.<os_error> *Sp| 0009b3f0 72 69 74 65 5f 52 65 6d 6f 76 65 4d 61 73 6b 20 |rite_RemoveMask | 0009b400 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 61 |(<sprite_area> a| 0009b410 72 65 61 2c 20 63 68 61 72 20 2a 6e 61 6d 65 29 |rea, char *name)| 0009b420 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0009b430 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 |ib:Sprite.h=>Spr| 0009b440 69 74 65 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 |ite_DL>..Returns| 0009b450 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 0009b460 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 0009b470 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 0009b480 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 74 68 |ction removes th| 0009b490 65 20 6d 61 73 6b 20 66 72 6f 6d 20 74 68 65 20 |e mask from the | 0009b4a0 67 69 76 65 6e 20 73 70 72 69 74 65 2e 00 00 00 |given sprite....| 0009b4b0 44 41 54 41 b1 01 00 00 53 70 72 69 74 65 5f 49 |DATA....Sprite_I| 0009b4c0 6e 73 65 72 74 43 6f 6c 75 6d 6e 0a 53 79 6e 74 |nsertColumn.Synt| 0009b4d0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 0009b4e0 53 70 72 69 74 65 5f 49 6e 73 65 72 74 43 6f 6c |Sprite_InsertCol| 0009b4f0 75 6d 6e 20 28 3c 73 70 72 69 74 65 5f 61 72 65 |umn (<sprite_are| 0009b500 61 3e 20 61 72 65 61 2c 20 63 68 61 72 20 2a 6e |a> area, char *n| 0009b510 61 6d 65 2c 20 69 6e 74 20 70 6f 73 29 3b 0a 48 |ame, int pos);.H| 0009b520 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 0009b530 53 70 72 69 74 65 2e 68 3d 3e 53 70 72 69 74 65 |Sprite.h=>Sprite| 0009b540 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |_DL>..Returns:.P| 0009b550 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 0009b560 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 0009b570 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 0009b580 6f 6e 20 69 6e 73 65 72 74 73 20 61 20 63 6f 6c |on inserts a col| 0009b590 75 6d 6e 20 69 6e 20 74 68 65 20 67 69 76 65 6e |umn in the given| 0009b5a0 20 73 70 72 69 74 65 20 61 74 20 74 68 65 20 70 | sprite at the p| 0009b5b0 6f 73 69 74 69 6f 6e 20 69 64 65 6e 74 69 66 69 |osition identifi| 0009b5c0 65 64 2c 20 73 68 69 66 74 69 6e 67 20 61 6c 6c |ed, shifting all| 0009b5d0 20 63 6f 6c 75 6d 6e 73 20 61 66 74 65 72 20 69 | columns after i| 0009b5e0 74 20 28 69 66 20 61 6e 79 29 20 74 6f 20 74 68 |t (if any) to th| 0009b5f0 65 20 72 69 67 68 74 2e 20 54 68 65 20 6c 65 66 |e right. The lef| 0009b600 74 2d 68 61 6e 64 20 63 6f 6c 75 6d 6e 20 69 73 |t-hand column is| 0009b610 20 6e 75 6d 62 65 72 65 64 20 7a 65 72 6f 2e 20 | numbered zero. | 0009b620 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 |This function is| 0009b630 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 0009b640 4f 53 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 |OS_SpriteOp=>SWI| 0009b650 3a 4f 53 5f 53 70 72 69 74 65 4f 70 3e 20 34 35 |:OS_SpriteOp> 45| 0009b660 2e 00 00 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |....DIR$,...,...| 0009b670 90 b6 09 00 46 ff ff ff 15 a0 55 26 b7 00 00 00 |....F.....U&....| 0009b680 13 00 00 00 00 00 00 00 4f 4e 4c 59 00 00 00 00 |........ONLY....| 0009b690 44 41 54 41 b7 00 00 00 53 50 52 5f 4f 4e 4c 59 |DATA....SPR_ONLY| 0009b6a0 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 |.This macro is d| 0009b6b0 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c |efined in <TimsL| 0009b6c0 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f |ib:Icon.h=>Icon_| 0009b6d0 54 4c 3e 2e 20 49 74 20 69 73 20 74 68 65 20 76 |TL>. It is the v| 0009b6e0 61 6c 75 65 20 74 68 65 20 72 65 74 75 72 6e 65 |alue the returne| 0009b6f0 64 20 62 79 20 3c 49 43 4f 4e 5f 54 59 50 45 3e |d by <ICON_TYPE>| 0009b700 20 77 68 65 6e 20 74 68 65 20 69 63 6f 6e 20 69 | when the icon i| 0009b710 6e 20 71 75 65 73 74 69 6f 6e 20 69 73 20 61 20 |n question is a | 0009b720 27 73 70 72 69 74 65 20 6f 6e 6c 79 27 20 69 63 |'sprite only' ic| 0009b730 6f 6e 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |on. It is define| 0009b740 64 20 61 73 20 32 2e 00 44 41 54 41 ab 00 00 00 |d as 2..DATA....| 0009b750 73 71 72 74 0a 53 79 6e 74 61 78 3a 09 64 6f 75 |sqrt.Syntax:.dou| 0009b760 62 6c 65 20 73 71 72 74 20 28 64 6f 75 62 6c 65 |ble sqrt (double| 0009b770 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | x);.Header:.<ma| 0009b780 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 0009b790 75 72 6e 73 3a 09 54 68 65 20 73 71 75 61 72 65 |urns:.The square| 0009b7a0 20 72 6f 6f 74 20 6f 66 20 78 2e 0a 0a 54 68 69 | root of x...Thi| 0009b7b0 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 63 75 |s function calcu| 0009b7c0 6c 61 74 65 73 20 74 68 65 20 73 71 75 61 72 65 |lates the square| 0009b7d0 20 72 6f 6f 74 20 6f 66 20 78 2e 20 78 20 6d 75 | root of x. x mu| 0009b7e0 73 74 20 6e 6f 74 20 62 65 20 6e 65 67 61 74 69 |st not be negati| 0009b7f0 76 65 2e 00 44 41 54 41 86 01 00 00 73 72 61 6e |ve..DATA....sran| 0009b800 64 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 73 |d.Syntax:.void s| 0009b810 72 61 6e 64 20 28 75 6e 73 69 67 6e 65 64 20 69 |rand (unsigned i| 0009b820 6e 74 20 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c |nt s);.Header:.<| 0009b830 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 |stdlib.h=>stdlib| 0009b840 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 0009b850 20 73 65 65 64 73 20 74 68 65 20 70 73 75 65 64 | seeds the psued| 0009b860 6f 2d 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 |o-random number | 0009b870 67 65 6e 65 72 61 74 69 6e 67 20 66 75 6e 63 74 |generating funct| 0009b880 69 6f 6e 20 77 69 74 68 20 74 68 65 20 76 61 6c |ion with the val| 0009b890 75 65 20 69 6e 20 2f 73 2f 2e 20 54 68 65 20 73 |ue in /s/. The s| 0009b8a0 65 65 64 20 64 65 66 69 6e 65 73 20 77 68 61 74 |eed defines what| 0009b8b0 20 73 65 71 75 65 6e 63 65 20 6f 66 20 6e 75 6d | sequence of num| 0009b8c0 62 65 72 73 20 3c 72 61 6e 64 3e 20 77 69 6c 6c |bers <rand> will| 0009b8d0 20 67 69 76 65 20 2d 20 61 66 74 65 72 20 63 61 | give - after ca| 0009b8e0 6c 6c 69 6e 67 20 2f 73 72 61 6e 64 2f 20 77 69 |lling /srand/ wi| 0009b8f0 74 68 20 74 68 65 20 73 61 6d 65 20 76 61 6c 75 |th the same valu| 0009b900 65 20 74 68 65 20 73 61 6d 65 20 73 65 71 75 65 |e the same seque| 0009b910 6e 63 65 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 |nce will be gene| 0009b920 72 61 74 65 64 2e 20 41 74 20 74 68 65 20 73 74 |rated. At the st| 0009b930 61 72 74 20 6f 66 20 65 78 65 63 75 74 69 6f 6e |art of execution| 0009b940 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 67 65 | the sequence ge| 0009b950 6e 65 72 61 74 65 64 20 69 73 20 61 73 20 69 66 |nerated is as if| 0009b960 20 73 72 61 6e 64 28 31 29 20 68 61 64 20 62 65 | srand(1) had be| 0009b970 65 6e 20 63 61 6c 6c 65 64 2e 00 00 44 41 54 41 |en called...DATA| 0009b980 a4 01 00 00 73 73 63 61 6e 66 0a 53 79 6e 74 61 |....sscanf.Synta| 0009b990 78 3a 09 69 6e 74 20 73 73 63 61 6e 66 20 28 63 |x:.int sscanf (c| 0009b9a0 68 61 72 20 2a 69 6e 2c 20 63 68 61 72 20 2a 66 |har *in, char *f| 0009b9b0 6f 72 6d 61 74 2c 20 2e 2e 2e 29 3b 0a 48 65 61 |ormat, ...);.Hea| 0009b9c0 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 |der:.<stdio.h=>s| 0009b9d0 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |tdio>..Returns:.| 0009b9e0 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 75 |The number of su| 0009b9f0 63 63 65 73 73 66 75 6c 20 69 6e 70 75 74 73 20 |ccessful inputs | 0009ba00 6f 72 20 3c 45 4f 46 3e 20 69 66 20 74 68 65 72 |or <EOF> if ther| 0009ba10 65 20 77 61 73 20 61 6e 20 69 6e 70 75 74 20 65 |e was an input e| 0009ba20 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |rror...This func| 0009ba30 74 69 6f 6e 20 72 65 61 64 73 20 69 6e 70 75 74 |tion reads input| 0009ba40 20 66 72 6f 6d 20 74 68 65 20 73 74 72 69 6e 67 | from the string| 0009ba50 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f | pointed to by /| 0009ba60 69 6e 2f 20 75 6e 64 65 72 20 63 6f 6e 74 72 6f |in/ under contro| 0009ba70 6c 20 6f 66 20 74 68 65 20 3c 66 6f 72 6d 61 74 |l of the <format| 0009ba80 20 73 74 72 69 6e 67 3d 3e 73 66 6f 72 6d 5f 3e | string=>sform_>| 0009ba90 2e 0a 0a 49 6e 20 6f 70 65 72 61 74 69 6f 6e 20 |...In operation | 0009baa0 69 74 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f |it is similar to| 0009bab0 20 3c 66 73 63 61 6e 66 3e 2c 20 62 75 74 20 69 | <fscanf>, but i| 0009bac0 6e 70 75 74 20 69 73 20 72 65 61 64 20 66 72 6f |nput is read fro| 0009bad0 6d 20 61 20 73 74 72 69 6e 67 20 69 6e 73 74 65 |m a string inste| 0009bae0 61 64 20 6f 66 20 61 20 73 74 72 65 61 6d 2e 20 |ad of a stream. | 0009baf0 54 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 |The end of the s| 0009bb00 74 72 69 6e 67 20 63 6f 75 6e 74 73 20 61 73 20 |tring counts as | 0009bb10 74 68 65 20 65 6e 64 20 6f 66 20 66 69 6c 65 2e |the end of file.| 0009bb20 44 41 54 41 ed 00 00 00 73 74 64 61 72 67 2e 68 |DATA....stdarg.h| 0009bb30 0a 54 68 65 20 5c 3c 73 74 64 61 72 67 2e 68 3e |.The \<stdarg.h>| 0009bb40 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 0009bb50 20 74 68 72 65 65 20 66 75 6e 63 74 69 6f 6e 73 | three functions| 0009bb60 20 61 6e 64 20 6f 6e 65 20 74 79 70 65 20 66 6f | and one type fo| 0009bb70 72 20 68 61 6e 64 6c 69 6e 67 20 76 61 72 69 61 |r handling varia| 0009bb80 62 6c 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 |ble argument lis| 0009bb90 74 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a |ts...Functions:.| 0009bba0 0a 23 49 6e 64 65 6e 74 20 36 0a 23 54 61 62 6c |.#Indent 6.#Tabl| 0009bbb0 65 20 31 20 31 34 0a 3c 76 61 5f 73 74 61 72 74 |e 1 14.<va_start| 0009bbc0 3e 0a 3c 76 61 5f 61 72 67 3e 0a 3c 76 61 5f 65 |>.<va_arg>.<va_e| 0009bbd0 6e 64 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 23 |nd>.#EndTable..#| 0009bbe0 49 6e 64 65 6e 74 20 30 0a 54 79 70 65 3a 0a 0a |Indent 0.Type:..| 0009bbf0 23 49 6e 64 65 6e 74 20 36 0a 3c 76 61 5f 6c 69 |#Indent 6.<va_li| 0009bc00 73 74 3e 0a 23 49 6e 64 65 6e 74 20 30 00 00 00 |st>.#Indent 0...| 0009bc10 44 41 54 41 da 00 00 00 73 74 64 64 65 66 2e 68 |DATA....stddef.h| 0009bc20 0a 54 68 65 20 5c 3c 73 74 64 64 65 66 2e 68 3e |.The \<stddef.h>| 0009bc30 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 0009bc40 20 61 20 66 65 77 20 74 79 70 65 73 20 61 6e 64 | a few types and| 0009bc50 20 74 77 6f 20 6d 61 63 72 6f 73 2e 0a 0a 4d 61 | two macros...Ma| 0009bc60 63 72 6f 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 35 |cros:..#Indent 5| 0009bc70 0a 23 54 61 62 6c 65 20 31 20 31 34 0a 3c 6f 66 |.#Table 1 14.<of| 0009bc80 66 73 65 74 6f 66 3e 0a 3c 4e 55 4c 4c 3e 0a 23 |fsetof>.<NULL>.#| 0009bc90 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e |EndTable..#Inden| 0009bca0 74 20 30 0a 54 79 70 65 73 3a 0a 0a 23 49 6e 64 |t 0.Types:..#Ind| 0009bcb0 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 31 20 31 |ent 5.#Table 1 1| 0009bcc0 34 0a 3c 70 74 72 64 69 66 66 5f 74 3e 0a 3c 73 |4.<ptrdiff_t>.<s| 0009bcd0 69 7a 65 5f 74 3e 0a 3c 77 63 68 61 72 5f 74 3e |ize_t>.<wchar_t>| 0009bce0 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 41 54 41 |.#EndTable..DATA| 0009bcf0 af 00 00 00 73 74 64 65 72 72 0a 54 68 65 20 6d |....stderr.The m| 0009bd00 61 63 72 6f 20 73 74 64 65 72 72 20 69 73 20 64 |acro stderr is d| 0009bd10 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f |efined in <stdio| 0009bd20 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 6e 64 20 69 |.h=>stdio> and i| 0009bd30 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |s a pointer to t| 0009bd40 79 70 65 20 3c 46 49 4c 45 3e 2e 20 49 74 20 63 |ype <FILE>. It c| 0009bd50 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 61 20 |an be used as a | 0009bd60 73 74 72 65 61 6d 20 66 6f 72 20 72 65 70 6f 72 |stream for repor| 0009bd70 74 69 6e 67 20 65 72 72 6f 72 73 20 69 6e 20 66 |ting errors in f| 0009bd80 75 6e 63 74 69 6f 6e 73 20 73 75 63 68 20 61 73 |unctions such as| 0009bd90 20 3c 66 70 72 69 6e 74 66 3e 2e 00 44 41 54 41 | <fprintf>..DATA| 0009bda0 c9 00 00 00 73 74 64 69 6e 0a 54 68 65 20 6d 61 |....stdin.The ma| 0009bdb0 63 72 6f 20 73 74 64 69 6e 20 69 73 20 64 65 66 |cro stdin is def| 0009bdc0 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 |ined in <stdio.h| 0009bdd0 3d 3e 73 74 64 69 6f 3e 20 61 6e 64 20 69 73 20 |=>stdio> and is | 0009bde0 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 79 70 |a pointer to typ| 0009bdf0 65 20 3c 46 49 4c 45 3e 2e 20 49 74 20 72 65 66 |e <FILE>. It ref| 0009be00 65 72 73 20 74 6f 20 74 68 65 20 73 74 61 6e 64 |ers to the stand| 0009be10 61 72 64 20 69 6e 70 75 74 20 73 74 72 65 61 6d |ard input stream| 0009be20 20 28 6b 65 79 62 6f 61 72 64 20 62 79 20 64 65 | (keyboard by de| 0009be30 66 61 75 6c 74 29 20 61 6e 64 20 63 61 6e 20 62 |fault) and can b| 0009be40 65 20 75 73 65 64 20 69 6e 20 66 75 6e 63 74 69 |e used in functi| 0009be50 6f 6e 73 20 73 75 63 68 20 61 73 20 3c 66 73 63 |ons such as <fsc| 0009be60 61 6e 66 3e 2e 00 00 00 44 41 54 41 8c 02 00 00 |anf>....DATA....| 0009be70 73 74 64 69 6f 2e 68 0a 23 50 61 72 65 6e 74 20 |stdio.h.#Parent | 0009be80 61 6e 73 69 5f 0a 54 68 65 20 5c 3c 73 74 64 69 |ansi_.The \<stdi| 0009be90 6f 2e 68 5c 3e 20 68 65 61 64 65 72 20 64 65 63 |o.h\> header dec| 0009bea0 6c 61 72 65 73 20 6d 61 6e 79 20 66 75 6e 63 74 |lares many funct| 0009beb0 69 6f 6e 73 20 63 6f 6e 63 65 72 6e 65 64 20 77 |ions concerned w| 0009bec0 69 74 68 20 69 6e 70 75 74 20 61 6e 64 20 6f 75 |ith input and ou| 0009bed0 74 70 75 74 2e 20 49 6e 20 61 64 64 69 74 69 6f |tput. In additio| 0009bee0 6e 2c 20 69 74 20 64 65 63 6c 61 72 65 73 20 74 |n, it declares t| 0009bef0 68 72 65 65 20 74 79 70 65 73 20 61 6e 64 20 61 |hree types and a| 0009bf00 20 6e 75 6d 62 65 72 20 6f 66 20 6d 61 63 72 6f | number of macro| 0009bf10 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |s...Functions:..| 0009bf20 23 49 6e 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 |#Indent 5.#Table| 0009bf30 20 33 20 32 33 0a 3c 46 69 6c 65 20 6f 70 65 72 | 3 23.<File oper| 0009bf40 61 74 69 6f 6e 73 3d 3e 66 69 6c 65 6f 70 5f 3e |ations=>fileop_>| 0009bf50 0a 3c 46 69 6c 65 20 68 61 6e 64 6c 69 6e 67 3d |.<File handling=| 0009bf60 3e 66 69 6c 65 68 6e 64 5f 3e 0a 3c 43 68 61 72 |>filehnd_>.<Char| 0009bf70 61 63 74 65 72 20 49 2f 4f 3d 3e 63 68 61 72 69 |acter I/O=>chari| 0009bf80 6f 5f 3e 0a 3c 46 6f 72 6d 61 74 74 65 64 20 49 |o_>.<Formatted I| 0009bf90 2f 4f 3d 3e 66 6f 72 6d 69 6f 5f 3e 0a 3c 53 74 |/O=>formio_>.<St| 0009bfa0 72 65 61 6d 20 49 2f 4f 3d 3e 73 74 72 65 61 6d |ream I/O=>stream| 0009bfb0 69 6f 5f 3e 0a 3c 45 72 72 6f 72 20 68 61 6e 64 |io_>.<Error hand| 0009bfc0 6c 69 6e 67 3d 3e 65 72 72 68 6e 64 5f 3e 0a 23 |ling=>errhnd_>.#| 0009bfd0 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e |EndTable..#Inden| 0009bfe0 74 20 30 0a 4d 61 63 72 6f 73 3a 0a 0a 23 49 6e |t 0.Macros:..#In| 0009bff0 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 36 20 |dent 5.#Table 6 | 0009c000 31 34 0a 3c 4e 55 4c 4c 3e 0a 3c 5f 49 4f 46 42 |14.<NULL>.<_IOFB| 0009c010 46 3e 0a 3c 5f 49 4f 4c 42 46 3e 0a 3c 5f 49 4f |F>.<_IOLBF>.<_IO| 0009c020 4e 42 46 3e 0a 3c 42 55 46 53 49 5a 3e 0a 3c 45 |NBF>.<BUFSIZ>.<E| 0009c030 4f 46 3e 0a 3c 46 4f 50 45 4e 5f 4d 41 58 3e 0a |OF>.<FOPEN_MAX>.| 0009c040 3c 46 49 4c 45 4e 41 4d 45 5f 4d 41 58 3e 0a 3c |<FILENAME_MAX>.<| 0009c050 4c 5f 74 6d 70 6e 61 6d 3e 0a 3c 53 45 45 4b 5f |L_tmpnam>.<SEEK_| 0009c060 43 55 52 3e 0a 3c 53 45 45 4b 5f 45 4e 44 3e 0a |CUR>.<SEEK_END>.| 0009c070 3c 53 45 45 4b 5f 53 45 54 3e 0a 3c 54 4d 50 5f |<SEEK_SET>.<TMP_| 0009c080 4d 41 58 3e 0a 3c 73 74 64 69 6e 3e 0a 3c 73 74 |MAX>.<stdin>.<st| 0009c090 64 6f 75 74 3e 0a 3c 73 74 64 65 72 72 3e 0a 23 |dout>.<stderr>.#| 0009c0a0 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e |EndTable..#Inden| 0009c0b0 74 20 30 0a 54 79 70 65 73 3a 0a 0a 23 49 6e 64 |t 0.Types:..#Ind| 0009c0c0 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 31 20 31 |ent 5.#Table 1 1| 0009c0d0 35 0a 3c 46 49 4c 45 3e 0a 3c 66 70 6f 73 5f 74 |5.<FILE>.<fpos_t| 0009c0e0 3e 0a 3c 73 69 7a 65 5f 74 3e 0a 23 45 6e 64 54 |>.<size_t>.#EndT| 0009c0f0 61 62 6c 65 44 41 54 41 68 02 00 00 73 74 64 6c |ableDATAh...stdl| 0009c100 69 62 2e 68 0a 54 68 65 20 5c 3c 73 74 64 6c 69 |ib.h.The \<stdli| 0009c110 62 2e 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c |b.h> header decl| 0009c120 61 72 65 73 20 6d 61 6e 79 20 66 75 6e 63 74 69 |ares many functi| 0009c130 6f 6e 73 20 6f 66 20 67 65 6e 65 72 61 6c 20 75 |ons of general u| 0009c140 74 69 6c 69 74 79 2e 20 49 6e 20 61 64 64 69 74 |tility. In addit| 0009c150 69 6f 6e 2c 20 69 74 20 64 65 63 6c 61 72 65 73 |ion, it declares| 0009c160 20 66 6f 75 72 20 74 79 70 65 73 20 61 6e 64 20 | four types and | 0009c170 66 69 76 65 20 6d 61 63 72 6f 73 2e 0a 0a 46 75 |five macros...Fu| 0009c180 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e |nctions:..#Inden| 0009c190 74 20 32 0a 23 54 61 62 6c 65 20 34 20 32 34 0a |t 2.#Table 4 24.| 0009c1a0 3c 53 74 72 69 6e 67 20 63 6f 6e 76 65 72 73 69 |<String conversi| 0009c1b0 6f 6e 3d 3e 73 6c 5f 73 74 72 63 6f 6e 76 5f 3e |on=>sl_strconv_>| 0009c1c0 0a 3c 52 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 73 |.<Random numbers| 0009c1d0 3d 3e 73 6c 5f 72 61 6e 64 5f 3e 0a 3c 4d 65 6d |=>sl_rand_>.<Mem| 0009c1e0 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 3d 3e |ory management=>| 0009c1f0 73 6c 5f 6d 65 6d 5f 3e 0a 3c 45 6e 76 69 72 6f |sl_mem_>.<Enviro| 0009c200 6e 6d 65 6e 74 20 6d 61 6e 61 67 65 6d 65 6e 74 |nment management| 0009c210 3d 3e 73 6c 5f 65 6e 76 5f 3e 0a 3c 44 61 74 61 |=>sl_env_>.<Data| 0009c220 20 70 72 6f 63 65 73 73 69 6e 67 3d 3e 73 6c 5f | processing=>sl_| 0009c230 64 61 74 61 5f 3e 0a 3c 41 72 69 74 68 6d 65 74 |data_>.<Arithmet| 0009c240 69 63 3d 3e 73 6c 5f 61 72 69 74 68 5f 3e 0a 3c |ic=>sl_arith_>.<| 0009c250 4d 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 63 |Multibyte charac| 0009c260 74 65 72 3d 3e 73 6c 5f 6d 62 63 68 61 72 5f 3e |ter=>sl_mbchar_>| 0009c270 0a 3c 4d 75 6c 74 69 62 79 74 65 20 73 74 72 69 |.<Multibyte stri| 0009c280 6e 67 3d 3e 73 6c 5f 6d 62 73 74 72 5f 3e 0a 23 |ng=>sl_mbstr_>.#| 0009c290 45 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e |EndTable..#Inden| 0009c2a0 74 20 30 0a 4d 61 63 72 6f 73 3a 0a 0a 23 49 6e |t 0.Macros:..#In| 0009c2b0 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 32 0a |dent 5.#Table 2.| 0009c2c0 3c 45 58 49 54 5f 46 41 49 4c 55 52 45 3e 0a 3c |<EXIT_FAILURE>.<| 0009c2d0 45 58 49 54 5f 53 55 43 43 45 53 53 3e 0a 3c 4d |EXIT_SUCCESS>.<M| 0009c2e0 42 5f 43 55 52 5f 4d 41 58 3e 0a 3c 4e 55 4c 4c |B_CUR_MAX>.<NULL| 0009c2f0 3e 0a 3c 52 41 4e 44 5f 4d 41 58 3e 0a 0a 23 45 |>.<RAND_MAX>..#E| 0009c300 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 |ndTable..#Indent| 0009c310 20 30 0a 54 79 70 65 73 3a 0a 0a 23 49 6e 64 65 | 0.Types:..#Inde| 0009c320 6e 74 20 31 31 0a 23 54 61 62 6c 65 20 31 0a 3c |nt 11.#Table 1.<| 0009c330 64 69 76 5f 74 3e 0a 3c 6c 64 69 76 5f 74 3e 0a |div_t>.<ldiv_t>.| 0009c340 3c 73 69 7a 65 5f 74 3e 0a 3c 77 63 68 61 72 5f |<size_t>.<wchar_| 0009c350 74 3e 0a 23 45 6e 64 54 61 62 6c 65 44 41 54 41 |t>.#EndTableDATA| 0009c360 cb 00 00 00 73 74 64 6f 75 74 0a 54 68 65 20 6d |....stdout.The m| 0009c370 61 63 72 6f 20 73 74 64 6f 75 74 20 69 73 20 64 |acro stdout is d| 0009c380 65 66 69 6e 65 64 20 69 6e 20 3c 73 74 64 69 6f |efined in <stdio| 0009c390 2e 68 3d 3e 73 74 64 69 6f 3e 20 61 6e 64 20 69 |.h=>stdio> and i| 0009c3a0 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |s a pointer to t| 0009c3b0 79 70 65 20 3c 46 49 4c 45 3e 2e 20 49 74 20 72 |ype <FILE>. It r| 0009c3c0 65 66 65 72 73 20 74 6f 20 74 68 65 20 73 74 61 |efers to the sta| 0009c3d0 6e 64 61 72 64 20 6f 75 74 70 75 74 20 73 74 72 |ndard output str| 0009c3e0 65 61 6d 20 28 73 63 72 65 65 6e 20 62 79 20 64 |eam (screen by d| 0009c3f0 65 66 61 75 6c 74 29 20 61 6e 64 20 63 61 6e 20 |efault) and can | 0009c400 62 65 20 75 73 65 64 20 69 6e 20 66 75 6e 63 74 |be used in funct| 0009c410 69 6f 6e 73 20 73 75 63 68 20 61 73 20 3c 66 70 |ions such as <fp| 0009c420 72 69 6e 74 66 3e 2e 00 44 41 54 41 6a 00 00 00 |rintf>..DATAj...| 0009c430 53 54 46 20 3c 72 65 67 69 73 74 65 72 3e 2c 3c |STF <register>,<| 0009c440 61 64 64 72 65 73 73 3e 0a 54 68 69 73 20 69 73 |address>.This is| 0009c450 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c | equivalent to <| 0009c460 53 54 52 3e 2c 20 62 75 74 20 66 6f 72 20 66 6c |STR>, but for fl| 0009c470 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 72 65 67 |oating point reg| 0009c480 69 73 74 65 72 73 20 61 6e 64 20 76 61 6c 75 65 |isters and value| 0009c490 73 2e 00 00 44 41 54 41 4d 01 00 00 53 54 52 20 |s...DATAM...STR | 0009c4a0 3c 72 65 67 69 73 74 65 72 3e 2c 3c 61 64 64 72 |<register>,<addr| 0009c4b0 65 73 73 3e 0a 54 68 69 73 20 73 65 74 73 20 74 |ess>.This sets t| 0009c4c0 68 65 20 67 69 76 65 6e 20 61 64 64 72 65 73 73 |he given address| 0009c4d0 20 28 75 73 75 61 6c 6c 79 20 61 20 6c 61 62 65 | (usually a labe| 0009c4e0 6c 29 20 74 6f 20 63 6f 6e 74 61 69 6e 20 74 68 |l) to contain th| 0009c4f0 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 |e contents of th| 0009c500 65 20 67 69 76 65 6e 20 72 65 67 69 73 74 65 72 |e given register| 0009c510 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 61 |. The contents a| 0009c520 72 65 20 61 20 77 6f 72 64 2c 20 75 6e 6c 65 73 |re a word, unles| 0009c530 73 20 53 54 52 42 20 69 73 20 75 73 65 64 20 69 |s STRB is used i| 0009c540 6e 20 77 68 69 63 68 20 63 61 73 65 20 6f 6e 6c |n which case onl| 0009c550 79 20 61 20 62 79 74 65 20 69 73 20 73 74 6f 72 |y a byte is stor| 0009c560 65 64 2e 0a 0a 23 66 43 6f 64 65 0a 20 20 20 20 |ed...#fCode. | 0009c570 20 20 20 20 4d 4f 56 20 20 20 52 30 2c 23 31 30 | MOV R0,#10| 0009c580 0a 20 20 20 20 20 20 20 20 53 54 52 20 20 20 52 |. STR R| 0009c590 30 2c 6c 61 62 65 6c 0a 20 20 20 20 20 20 20 20 |0,label. | 0009c5a0 2e 2e 2e 0a 20 2e 6c 61 62 65 6c 20 3c 44 43 44 |.... .label <DCD| 0009c5b0 3e 20 20 20 30 0a 23 66 0a 0a 54 68 65 20 63 6f |> 0.#f..The co| 0009c5c0 6e 74 65 6e 74 73 20 61 74 20 27 6c 61 62 65 6c |ntents at 'label| 0009c5d0 27 20 77 69 6c 6c 20 6e 6f 77 20 62 65 20 31 30 |' will now be 10| 0009c5e0 2e 00 00 00 44 41 54 41 fb 00 00 00 73 74 72 63 |....DATA....strc| 0009c5f0 61 74 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 20 |at.Syntax:.char | 0009c600 2a 73 74 72 63 61 74 20 28 63 68 61 72 20 2a 73 |*strcat (char *s| 0009c610 74 72 31 2c 20 63 68 61 72 20 2a 73 74 72 32 29 |tr1, char *str2)| 0009c620 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 72 69 6e |;.Header:.<strin| 0009c630 67 2e 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 |g.h=>string>..Re| 0009c640 74 75 72 6e 73 3a 09 73 74 72 31 0a 0a 54 68 69 |turns:.str1..Thi| 0009c650 73 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e |s function appen| 0009c660 64 73 20 7b 2f 7d 73 74 72 32 7b 2f 7d 20 74 6f |ds {/}str2{/} to| 0009c670 20 74 68 65 20 65 6e 64 20 6f 66 20 7b 2f 7d 73 | the end of {/}s| 0009c680 74 72 31 7b 2f 7d 2c 20 6f 76 65 72 77 72 69 74 |tr1{/}, overwrit| 0009c690 69 6e 67 20 74 68 65 20 6e 75 6c 6c 20 62 79 74 |ing the null byt| 0009c6a0 65 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 |e at the end of | 0009c6b0 7b 2f 7d 73 74 72 31 7b 2f 7d 2e 20 54 68 65 20 |{/}str1{/}. The | 0009c6c0 74 77 6f 20 73 74 72 69 6e 67 73 20 73 68 6f 75 |two strings shou| 0009c6d0 6c 64 20 6e 6f 74 20 6f 76 65 72 6c 61 70 2e 00 |ld not overlap..| 0009c6e0 44 41 54 41 2b 01 00 00 73 74 72 63 61 74 63 72 |DATA+...strcatcr| 0009c6f0 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 73 |.Syntax:.char *s| 0009c700 74 72 63 61 74 63 72 20 28 63 68 61 72 20 2a 73 |trcatcr (char *s| 0009c710 31 2c 20 63 68 61 72 20 2a 73 32 29 3b 0a 48 65 |1, char *s2);.He| 0009c720 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 |ader:.<DeskLib:S| 0009c730 74 72 2e 68 3d 3e 53 74 72 5f 44 4c 3e 0a 0a 52 |tr.h=>Str_DL>..R| 0009c740 65 74 75 72 6e 73 3a 09 73 31 0a 0a 54 68 69 73 |eturns:.s1..This| 0009c750 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 | function append| 0009c760 73 20 7b 2f 7d 73 32 7b 2f 7d 20 74 6f 20 74 68 |s {/}s2{/} to th| 0009c770 65 20 65 6e 64 20 6f 66 20 7b 2f 7d 73 31 7b 2f |e end of {/}s1{/| 0009c780 7d 2c 20 6f 76 65 72 77 72 69 74 69 6e 67 20 74 |}, overwriting t| 0009c790 68 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 61 74 |he terminator at| 0009c7a0 20 74 68 65 20 65 6e 64 20 6f 66 20 7b 2f 7d 73 | the end of {/}s| 0009c7b0 31 7b 2f 7d 2e 20 54 68 65 20 74 77 6f 20 73 74 |1{/}. The two st| 0009c7c0 72 69 6e 67 73 20 73 68 6f 75 6c 64 20 6e 6f 74 |rings should not| 0009c7d0 20 6f 76 65 72 6c 61 70 2c 20 61 6e 64 20 74 68 | overlap, and th| 0009c7e0 65 20 72 65 73 75 6c 74 69 6e 67 20 73 74 72 69 |e resulting stri| 0009c7f0 6e 67 20 77 69 6c 6c 20 62 65 20 6e 75 6c 6c 2d |ng will be null-| 0009c800 74 65 72 6d 69 6e 61 74 65 64 2e 00 44 41 54 41 |terminated..DATA| 0009c810 21 01 00 00 73 74 72 63 68 72 0a 53 79 6e 74 61 |!...strchr.Synta| 0009c820 78 3a 09 63 68 61 72 20 2a 73 74 72 63 68 72 20 |x:.char *strchr | 0009c830 28 63 68 61 72 20 2a 73 74 72 2c 20 69 6e 74 20 |(char *str, int | 0009c840 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 72 |c);.Header:.<str| 0009c850 69 6e 67 2e 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a |ing.h=>string>..| 0009c860 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 0009c870 20 74 6f 20 74 68 65 20 66 6f 75 6e 64 20 63 68 | to the found ch| 0009c880 61 72 61 63 74 65 72 2c 20 6f 72 20 61 20 6e 75 |aracter, or a nu| 0009c890 6c 6c 20 70 6f 69 6e 74 65 72 20 69 66 20 6e 6f |ll pointer if no| 0009c8a0 74 20 66 6f 75 6e 64 2e 0a 0a 54 68 69 73 20 66 |t found...This f| 0009c8b0 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 65 73 |unction searches| 0009c8c0 20 66 6f 72 20 2f 63 2f 20 28 63 6f 6e 76 65 72 | for /c/ (conver| 0009c8d0 74 65 64 20 74 6f 20 61 6e 20 7b 2f 7d 75 6e 73 |ted to an {/}uns| 0009c8e0 69 67 6e 65 64 20 63 68 61 72 7b 2f 7d 29 20 69 |igned char{/}) i| 0009c8f0 6e 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 69 |n the string poi| 0009c900 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 74 72 2f |nted to by /str/| 0009c910 20 28 69 6e 63 6c 75 64 69 6e 67 20 6e 75 6c 6c | (including null| 0009c920 20 74 65 72 6d 69 6e 61 74 6f 72 29 2e 00 00 00 | terminator)....| 0009c930 44 41 54 41 51 01 00 00 73 74 72 63 6d 70 0a 53 |DATAQ...strcmp.S| 0009c940 79 6e 74 61 78 3a 09 69 6e 74 20 73 74 72 63 6d |yntax:.int strcm| 0009c950 70 20 28 63 68 61 72 20 2a 73 74 72 31 2c 20 63 |p (char *str1, c| 0009c960 68 61 72 20 2a 73 74 72 32 29 3b 0a 48 65 61 64 |har *str2);.Head| 0009c970 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 |er:.<string.h=>s| 0009c980 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 6e 73 3a |tring>..Returns:| 0009c990 09 47 72 65 61 74 65 72 20 74 68 61 6e 2c 20 6c |.Greater than, l| 0009c9a0 65 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 |ess than or equa| 0009c9b0 6c 20 74 6f 20 7a 65 72 6f 2c 20 64 65 70 65 6e |l to zero, depen| 0009c9c0 64 69 6e 67 20 69 66 20 74 68 65 20 73 74 72 69 |ding if the stri| 0009c9d0 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |ng pointed to by| 0009c9e0 20 7b 2f 7d 73 74 72 31 7b 2f 7d 20 69 73 20 67 | {/}str1{/} is g| 0009c9f0 72 65 61 74 65 72 20 74 68 61 6e 2c 20 6c 65 73 |reater than, les| 0009ca00 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 |s than or equal | 0009ca10 74 6f 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f |to the string po| 0009ca20 69 6e 74 65 64 20 74 6f 20 62 79 20 7b 2f 7d 73 |inted to by {/}s| 0009ca30 74 72 32 7b 2f 7d 2e 0a 0a 54 68 69 73 20 66 75 |tr2{/}...This fu| 0009ca40 6e 63 74 69 6f 6e 73 20 63 6f 6d 70 61 72 65 73 |nctions compares| 0009ca50 20 74 68 65 20 74 77 6f 20 73 74 72 69 6e 67 73 | the two strings| 0009ca60 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 76 | and returns a v| 0009ca70 61 6c 75 65 20 61 63 63 6f 72 64 69 6e 67 6c 79 |alue accordingly| 0009ca80 2e 00 00 00 44 41 54 41 04 01 00 00 73 74 72 63 |....DATA....strc| 0009ca90 6d 70 63 72 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |mpcr.Syntax:.int| 0009caa0 20 73 74 72 63 6d 70 63 72 20 28 63 68 61 72 20 | strcmpcr (char | 0009cab0 2a 73 31 2c 20 63 68 61 72 20 2a 73 32 29 3b 0a |*s1, char *s2);.| 0009cac0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 0009cad0 3a 53 74 72 2e 68 3d 3e 53 74 72 5f 44 4c 3e 0a |:Str.h=>Str_DL>.| 0009cae0 0a 52 65 74 75 72 6e 73 3a 09 30 20 69 66 20 74 |.Returns:.0 if t| 0009caf0 68 65 20 73 74 72 69 6e 67 73 20 6d 61 74 63 68 |he strings match| 0009cb00 0a 09 09 2d 31 20 69 66 20 73 31 5c 3c 73 32 20 |...-1 if s1\<s2 | 0009cb10 28 61 6c 70 68 61 62 65 74 69 63 61 6c 6c 79 29 |(alphabetically)| 0009cb20 0a 09 09 2b 31 20 69 66 20 73 31 3e 73 32 20 28 |...+1 if s1>s2 (| 0009cb30 61 6c 70 68 61 62 65 74 69 63 61 6c 6c 79 29 0a |alphabetically).| 0009cb40 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 0009cb50 6f 6d 70 61 72 65 73 20 74 68 65 20 74 77 6f 20 |ompares the two | 0009cb60 73 74 72 69 6e 67 73 20 61 6e 64 20 72 65 74 75 |strings and retu| 0009cb70 72 6e 73 20 61 20 76 61 6c 75 65 20 61 63 63 6f |rns a value acco| 0009cb80 72 64 69 6e 67 6c 79 2e 44 41 54 41 88 01 00 00 |rdingly.DATA....| 0009cb90 73 74 72 63 6f 6c 6c 0a 53 79 6e 74 61 78 3a 09 |strcoll.Syntax:.| 0009cba0 69 6e 74 20 73 74 72 63 6f 6c 6c 20 28 63 68 61 |int strcoll (cha| 0009cbb0 72 20 2a 73 74 72 31 2c 20 63 68 61 72 20 2a 73 |r *str1, char *s| 0009cbc0 74 72 32 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 |tr2);.Header:.<s| 0009cbd0 74 72 69 6e 67 2e 68 3d 3e 73 74 72 69 6e 67 3e |tring.h=>string>| 0009cbe0 0a 0a 52 65 74 75 72 6e 73 3a 09 47 72 65 61 74 |..Returns:.Great| 0009cbf0 65 72 20 74 68 61 6e 2c 20 6c 65 73 73 20 74 68 |er than, less th| 0009cc00 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 7a |an or equal to z| 0009cc10 65 72 6f 2c 20 64 65 70 65 6e 64 69 6e 67 20 69 |ero, depending i| 0009cc20 66 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 69 |f the string poi| 0009cc30 6e 74 65 64 20 74 6f 20 62 79 20 7b 2f 7d 73 74 |nted to by {/}st| 0009cc40 72 31 7b 2f 7d 20 69 73 20 67 72 65 61 74 65 72 |r1{/} is greater| 0009cc50 20 74 68 61 6e 2c 20 6c 65 73 73 20 74 68 61 6e | than, less than| 0009cc60 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 68 65 | or equal to the| 0009cc70 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 | string pointed | 0009cc80 74 6f 20 62 79 20 7b 2f 7d 73 74 72 32 7b 2f 7d |to by {/}str2{/}| 0009cc90 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0009cca0 20 69 6e 74 65 72 70 72 65 74 73 20 74 68 65 20 | interprets the | 0009ccb0 74 77 6f 20 73 74 72 69 6e 67 73 20 61 63 63 6f |two strings acco| 0009ccc0 72 64 69 6e 67 20 74 6f 20 74 68 65 20 3c 4c 43 |rding to the <LC| 0009ccd0 5f 43 4f 4c 4c 41 54 45 3e 20 63 61 74 65 67 6f |_COLLATE> catego| 0009cce0 72 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e |ry of the curren| 0009ccf0 74 20 6c 6f 63 61 6c 65 20 61 6e 64 20 74 68 65 |t locale and the| 0009cd00 6e 20 63 6f 6d 70 61 72 65 73 20 74 68 65 6d 2e |n compares them.| 0009cd10 44 41 54 41 d2 00 00 00 73 74 72 63 70 79 0a 53 |DATA....strcpy.S| 0009cd20 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 73 74 72 |yntax:.char *str| 0009cd30 63 70 79 20 28 63 68 61 72 20 2a 73 74 72 31 2c |cpy (char *str1,| 0009cd40 20 63 68 61 72 20 2a 73 74 72 32 29 3b 0a 48 65 | char *str2);.He| 0009cd50 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 3d |ader:.<string.h=| 0009cd60 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 6e |>string>..Return| 0009cd70 73 3a 09 73 74 72 31 0a 0a 54 68 69 73 20 66 75 |s:.str1..This fu| 0009cd80 6e 63 74 69 6f 6e 20 63 6f 70 69 65 73 20 74 68 |nction copies th| 0009cd90 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 73 |e whole of the s| 0009cda0 74 72 69 6e 67 20 69 6e 20 7b 2f 7d 73 74 72 32 |tring in {/}str2| 0009cdb0 7b 2f 7d 20 74 6f 20 7b 2f 7d 73 74 72 31 7b 2f |{/} to {/}str1{/| 0009cdc0 7d 20 28 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 |} (including the| 0009cdd0 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 | null terminator| 0009cde0 29 2e 00 00 44 41 54 41 05 01 00 00 73 74 72 63 |)...DATA....strc| 0009cdf0 70 79 63 72 0a 53 79 6e 74 61 78 3a 09 63 68 61 |pycr.Syntax:.cha| 0009ce00 72 20 2a 73 74 72 63 70 79 63 72 20 28 63 68 61 |r *strcpycr (cha| 0009ce10 72 20 2a 73 31 2c 20 63 68 61 72 20 2a 73 32 29 |r *s1, char *s2)| 0009ce20 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0009ce30 69 62 3a 53 74 72 2e 68 3d 3e 53 74 72 5f 44 4c |ib:Str.h=>Str_DL| 0009ce40 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 73 31 0a 0a |>..Returns:.s1..| 0009ce50 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f |This function co| 0009ce60 70 69 65 73 20 74 68 65 20 77 68 6f 6c 65 20 6f |pies the whole o| 0009ce70 66 20 74 68 65 20 73 74 72 69 6e 67 20 69 6e 20 |f the string in | 0009ce80 7b 2f 7d 73 32 7b 2f 7d 20 74 6f 20 7b 2f 7d 73 |{/}s2{/} to {/}s| 0009ce90 31 7b 2f 7d 2e 20 54 68 65 20 74 65 72 6d 69 6e |1{/}. The termin| 0009cea0 61 74 6f 72 20 6f 66 20 7b 2f 7d 73 31 7b 2f 7d |ator of {/}s1{/}| 0009ceb0 20 77 69 6c 6c 20 62 65 20 6e 75 6c 6c 2c 20 72 | will be null, r| 0009cec0 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 |egardless of the| 0009ced0 20 74 68 65 20 7b 2f 7d 73 32 7b 2f 7d 20 74 65 | the {/}s2{/} te| 0009cee0 72 6d 69 6e 61 74 6f 72 2e 00 00 00 44 41 54 41 |rminator....DATA| 0009cef0 ef 00 00 00 73 74 72 63 73 70 6e 0a 53 79 6e 74 |....strcspn.Synt| 0009cf00 61 78 3a 09 3c 73 69 7a 65 5f 74 3e 20 73 74 72 |ax:.<size_t> str| 0009cf10 63 73 70 6e 20 28 63 68 61 72 20 2a 73 74 72 31 |cspn (char *str1| 0009cf20 2c 20 63 68 61 72 20 2a 73 74 72 32 29 3b 0a 48 |, char *str2);.H| 0009cf30 65 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 |eader:.<string.h| 0009cf40 3d 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 |=>string>..Retur| 0009cf50 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 72 20 6f |ns:.The number o| 0009cf60 66 20 63 68 61 72 61 63 74 65 72 73 2e 0a 0a 54 |f characters...T| 0009cf70 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e |his function fin| 0009cf80 64 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 |ds the number of| 0009cf90 20 63 68 61 72 61 63 74 65 72 73 20 61 74 20 74 | characters at t| 0009cfa0 68 65 20 73 74 61 72 74 20 6f 66 20 7b 2f 7d 73 |he start of {/}s| 0009cfb0 74 72 31 7b 2f 7d 20 77 68 69 63 68 20 61 72 65 |tr1{/} which are| 0009cfc0 20 6e 6f 74 20 70 72 65 73 65 6e 74 20 69 6e 20 | not present in | 0009cfd0 7b 2f 7d 73 74 72 32 7b 2f 7d 2e 00 44 41 54 41 |{/}str2{/}..DATA| 0009cfe0 1a 01 00 00 73 74 72 64 75 70 0a 53 79 6e 74 61 |....strdup.Synta| 0009cff0 78 3a 09 63 68 61 72 20 2a 73 74 72 64 75 70 20 |x:.char *strdup | 0009d000 28 63 68 61 72 20 2a 73 74 72 29 3b 0a 48 65 61 |(char *str);.Hea| 0009d010 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 74 |der:.<DeskLib:St| 0009d020 72 2e 68 3d 3e 53 74 72 5f 44 4c 3e 0a 0a 52 65 |r.h=>Str_DL>..Re| 0009d030 74 75 72 6e 73 3a 09 41 64 64 72 65 73 73 20 6f |turns:.Address o| 0009d040 66 20 6e 65 77 20 73 74 72 69 6e 67 2e 0a 0a 54 |f new string...T| 0009d050 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c |his function all| 0009d060 6f 63 61 74 65 73 20 6d 65 6d 6f 72 79 20 61 6e |ocates memory an| 0009d070 64 20 63 6f 70 69 65 73 20 74 68 65 20 73 74 72 |d copies the str| 0009d080 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ing pointed to b| 0009d090 79 20 2f 73 74 72 2f 20 69 6e 74 6f 20 74 68 61 |y /str/ into tha| 0009d0a0 74 20 6d 65 6d 6f 72 79 2e 20 49 74 20 74 68 65 |t memory. It the| 0009d0b0 6e 20 72 65 74 75 72 6e 73 20 61 20 70 6f 69 6e |n returns a poin| 0009d0c0 74 65 72 20 74 6f 20 69 74 2c 20 6f 72 20 3c 4e |ter to it, or <N| 0009d0d0 55 4c 4c 3e 20 69 66 20 6d 65 6d 6f 72 79 20 63 |ULL> if memory c| 0009d0e0 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 6c 6c 6f |ould not be allo| 0009d0f0 63 61 74 65 64 2e 00 00 44 49 52 24 2c 00 00 00 |cated...DIR$,...| 0009d100 2c 00 00 00 24 d1 09 00 46 fd ff ff e1 2a c4 22 |,...$...F....*."| 0009d110 a6 00 00 00 13 00 00 00 00 00 00 00 21 52 6f 6f |............!Roo| 0009d120 74 00 00 00 44 41 54 41 a6 00 00 00 53 74 72 65 |t...DATA....Stre| 0009d130 61 6d 20 49 2f 4f 20 46 75 6e 63 74 69 6f 6e 73 |am I/O Functions| 0009d140 0a 23 50 61 72 65 6e 74 20 73 74 64 69 6f 0a 54 |.#Parent stdio.T| 0009d150 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 72 |hese functions r| 0009d160 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 61 6e |ead and write an| 0009d170 79 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61 |y number of data| 0009d180 20 69 74 65 6d 73 20 6f 66 20 61 6e 79 20 73 69 | items of any si| 0009d190 7a 65 2c 20 69 6e 74 6f 20 61 6e 20 61 72 72 61 |ze, into an arra| 0009d1a0 79 2e 0a 0a 23 54 61 62 6c 65 20 31 20 31 38 0a |y...#Table 1 18.| 0009d1b0 3c 66 72 65 61 64 3e 0a 3c 66 77 72 69 74 65 3e |<fread>.<fwrite>| 0009d1c0 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 41 54 41 |.#EndTable..DATA| 0009d1d0 e9 00 00 00 73 74 72 65 72 72 6f 72 0a 53 79 6e |....strerror.Syn| 0009d1e0 74 61 78 3a 09 63 68 61 72 20 2a 73 74 72 65 72 |tax:.char *strer| 0009d1f0 72 6f 72 20 28 69 6e 74 20 65 72 72 29 3b 0a 48 |ror (int err);.H| 0009d200 65 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 |eader:.<string.h| 0009d210 3d 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 |=>string>..Retur| 0009d220 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 74 |ns:.Pointer to t| 0009d230 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 |he error message| 0009d240 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 0009d250 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 65 72 | converts the er| 0009d260 72 6f 72 20 6e 75 6d 62 65 72 20 69 6e 20 2f 65 |ror number in /e| 0009d270 72 72 2f 20 69 6e 74 6f 20 61 6e 20 65 72 72 6f |rr/ into an erro| 0009d280 72 20 6d 65 73 73 61 67 65 20 73 74 72 69 6e 67 |r message string| 0009d290 2e 20 2a 44 6f 20 6e 6f 74 20 61 6c 74 65 72 20 |. *Do not alter | 0009d2a0 74 68 65 20 72 65 74 75 72 6e 65 64 20 73 74 72 |the returned str| 0009d2b0 69 6e 67 2a 2e 00 00 00 44 41 54 41 6c 01 00 00 |ing*....DATAl...| 0009d2c0 73 74 72 66 74 69 6d 65 0a 53 79 6e 74 61 78 3a |strftime.Syntax:| 0009d2d0 09 3c 73 69 7a 65 5f 74 3e 20 73 74 72 66 74 69 |.<size_t> strfti| 0009d2e0 6d 65 20 28 63 68 61 72 20 2a 73 2c 20 73 69 7a |me (char *s, siz| 0009d2f0 65 5f 74 20 6c 65 6e 2c 20 63 68 61 72 20 2a 66 |e_t len, char *f| 0009d300 6f 72 6d 61 74 2c 20 3c 73 74 72 75 63 74 a0 74 |ormat, <struct.t| 0009d310 6d 3e 20 2a 74 70 74 72 29 3b 0a 48 65 61 64 65 |m> *tptr);.Heade| 0009d320 72 3a 09 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 |r:.<time.h=>time| 0009d330 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 |>..Returns:.The | 0009d340 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 |number of charac| 0009d350 74 65 72 73 20 77 72 69 74 74 65 6e 2e 0a 0a 54 |ters written...T| 0009d360 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 |his function wri| 0009d370 74 65 73 20 74 68 65 20 74 69 6d 65 20 70 6f 69 |tes the time poi| 0009d380 6e 74 65 64 20 74 6f 20 62 79 20 2f 74 70 74 72 |nted to by /tptr| 0009d390 2f 20 74 6f 20 74 68 65 20 63 68 61 72 61 63 74 |/ to the charact| 0009d3a0 65 72 20 61 72 72 61 79 20 70 6f 69 6e 74 65 64 |er array pointed| 0009d3b0 20 74 6f 20 62 79 20 2f 73 2f 20 75 6e 64 65 72 | to by /s/ under| 0009d3c0 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 74 68 65 20 | control of the | 0009d3d0 3c 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3d 3e |<format string=>| 0009d3e0 74 66 6f 72 6d 5f 3e 2e 0a 0a 4e 6f 20 6d 6f 72 |tform_>...No mor| 0009d3f0 65 20 74 68 61 6e 20 6c 65 6e 20 63 68 61 72 61 |e than len chara| 0009d400 63 74 65 72 73 20 77 69 6c 6c 20 62 65 20 77 72 |cters will be wr| 0009d410 69 74 74 65 6e 20 74 6f 20 74 68 65 20 73 74 72 |itten to the str| 0009d420 69 6e 67 2e 44 41 54 41 8c 01 00 00 73 74 72 69 |ing.DATA....stri| 0009d430 63 6d 70 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |cmp.Syntax:.int | 0009d440 73 74 72 69 63 6d 70 20 28 63 68 61 72 20 2a 73 |stricmp (char *s| 0009d450 74 72 31 2c 20 63 68 61 72 20 2a 73 74 72 32 29 |tr1, char *str2)| 0009d460 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 0009d470 69 62 3a 4c 69 62 2e 68 3d 3e 4c 69 62 3e 0a 09 |ib:Lib.h=>Lib>..| 0009d480 3c 44 65 73 6b 4c 69 62 3a 53 74 72 2e 68 3d 3e |<DeskLib:Str.h=>| 0009d490 53 74 72 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 |Str_DL>..Returns| 0009d4a0 3a 09 47 72 65 61 74 65 72 20 74 68 61 6e 2c 20 |:.Greater than, | 0009d4b0 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 |less than or equ| 0009d4c0 61 6c 20 74 6f 20 7a 65 72 6f 2c 20 64 65 70 65 |al to zero, depe| 0009d4d0 6e 64 69 6e 67 20 69 66 20 74 68 65 20 73 74 72 |nding if the str| 0009d4e0 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ing pointed to b| 0009d4f0 79 20 73 74 72 31 20 69 73 20 67 72 65 61 74 65 |y str1 is greate| 0009d500 72 20 74 68 61 6e 2c 20 6c 65 73 73 20 74 68 61 |r than, less tha| 0009d510 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 68 |n or equal to th| 0009d520 65 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 |e string pointed| 0009d530 20 74 6f 20 62 79 20 73 74 72 32 2e 0a 0a 54 68 | to by str2...Th| 0009d540 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 63 6f 6d |is functions com| 0009d550 70 61 72 65 73 20 74 68 65 20 74 77 6f 20 73 74 |pares the two st| 0009d560 72 69 6e 67 73 20 61 6e 64 20 72 65 74 75 72 6e |rings and return| 0009d570 73 20 61 20 76 61 6c 75 65 20 61 63 63 6f 72 64 |s a value accord| 0009d580 69 6e 67 6c 79 2e 20 49 74 20 69 73 20 6e 6f 74 |ingly. It is not| 0009d590 20 63 61 73 65 20 73 65 6e 73 74 69 76 65 2c 20 | case senstive, | 0009d5a0 75 6e 6c 69 6b 65 20 3c 73 74 72 63 6d 70 3e 2e |unlike <strcmp>.| 0009d5b0 44 41 54 41 5d 01 00 00 73 74 72 69 63 6d 70 63 |DATA]...stricmpc| 0009d5c0 72 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 73 74 |r.Syntax:.int st| 0009d5d0 72 69 63 6d 70 63 72 20 28 63 68 61 72 20 2a 73 |ricmpcr (char *s| 0009d5e0 74 72 31 2c 20 63 68 61 72 20 2a 73 74 72 32 29 |tr1, char *str2)| 0009d5f0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 0009d600 69 62 3a 53 74 72 2e 68 3d 3e 53 74 72 5f 44 4c |ib:Str.h=>Str_DL| 0009d610 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 47 72 65 61 |>..Returns:.Grea| 0009d620 74 65 72 20 74 68 61 6e 2c 20 6c 65 73 73 20 74 |ter than, less t| 0009d630 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 |han or equal to | 0009d640 7a 65 72 6f 2c 20 64 65 70 65 6e 64 69 6e 67 20 |zero, depending | 0009d650 69 66 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f |if the string po| 0009d660 69 6e 74 65 64 20 74 6f 20 62 79 20 73 74 72 31 |inted to by str1| 0009d670 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e | is greater than| 0009d680 2c 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 |, less than or e| 0009d690 71 75 61 6c 20 74 6f 20 74 68 65 20 73 74 72 69 |qual to the stri| 0009d6a0 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |ng pointed to by| 0009d6b0 20 73 74 72 32 2e 0a 0a 54 68 69 73 20 66 75 6e | str2...This fun| 0009d6c0 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 61 6c |ction is equival| 0009d6d0 65 6e 74 20 74 6f 20 3c 73 74 72 69 63 6d 70 3e |ent to <stricmp>| 0009d6e0 2c 20 62 75 74 20 77 6f 72 6b 73 20 77 69 74 68 |, but works with| 0009d6f0 20 61 6e 79 20 63 6f 6e 74 72 6f 6c 20 63 6f 64 | any control cod| 0009d700 65 20 74 65 72 6d 69 6e 61 74 6f 72 2e 00 00 00 |e terminator....| 0009d710 44 41 54 41 97 01 00 00 73 74 72 69 6e 67 2e 68 |DATA....string.h| 0009d720 0a 54 68 65 20 5c 3c 73 74 72 69 6e 67 2e 68 5c |.The \<string.h\| 0009d730 3e 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 |> header declare| 0009d740 73 20 71 75 69 74 65 20 61 20 66 65 77 20 66 75 |s quite a few fu| 0009d750 6e 63 74 69 6f 6e 73 20 6d 61 69 6e 6c 79 20 74 |nctions mainly t| 0009d760 6f 20 64 6f 20 77 69 74 68 20 73 74 72 69 6e 67 |o do with string| 0009d770 73 20 28 6e 6f 20 73 75 72 70 72 69 73 65 20 74 |s (no surprise t| 0009d780 68 65 72 65 21 29 2e 20 49 74 20 61 6c 73 6f 20 |here!). It also | 0009d790 64 65 63 6c 61 72 65 73 20 6f 6e 65 20 74 79 70 |declares one typ| 0009d7a0 65 20 61 6e 64 20 64 65 66 69 6e 65 73 20 61 20 |e and defines a | 0009d7b0 6d 61 63 72 6f 2e 0a 0a 46 75 6e 63 74 69 6f 6e |macro...Function| 0009d7c0 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 35 0a 23 54 |s:..#Indent 5.#T| 0009d7d0 61 62 6c 65 20 33 20 32 33 0a 3c 43 6f 70 79 69 |able 3 23.<Copyi| 0009d7e0 6e 67 3d 3e 73 74 72 5f 63 6f 70 79 5f 3e 0a 3c |ng=>str_copy_>.<| 0009d7f0 41 70 70 65 6e 64 69 6e 67 3d 3e 73 74 72 5f 63 |Appending=>str_c| 0009d800 61 74 5f 3e 0a 3c 43 6f 6d 70 61 72 69 73 6f 6e |at_>.<Comparison| 0009d810 3d 3e 73 74 72 5f 63 6d 70 5f 3e 0a 3c 53 65 61 |=>str_cmp_>.<Sea| 0009d820 72 63 68 69 6e 67 3d 3e 73 74 72 5f 66 69 6e 64 |rching=>str_find| 0009d830 5f 3e 0a 3c 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 |_>.<Miscellaneou| 0009d840 73 3d 3e 73 74 72 5f 6d 69 73 63 5f 3e 0a 23 45 |s=>str_misc_>.#E| 0009d850 6e 64 54 61 62 6c 65 0a 0a 23 49 6e 64 65 6e 74 |ndTable..#Indent| 0009d860 20 30 0a 4d 61 63 72 6f 3a 20 20 20 20 20 20 20 | 0.Macro: | 0009d870 20 20 20 20 20 20 20 20 20 20 54 79 70 65 3a 0a | Type:.| 0009d880 0a 20 20 20 20 20 3c 4e 55 4c 4c 3e 20 20 20 20 |. <NULL> | 0009d890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c | <| 0009d8a0 73 69 7a 65 5f 74 3e 00 44 41 54 41 91 00 00 00 |size_t>.DATA....| 0009d8b0 44 65 73 6b 4c 69 62 3a 53 74 72 69 6e 67 43 52 |DeskLib:StringCR| 0009d8c0 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 31 2e 31 33 |.h.Version: 1.13| 0009d8d0 20 28 33 30 20 4d 61 79 20 31 39 39 33 29 0a 23 | (30 May 1993).#| 0009d8e0 6c 69 6e 65 0a 54 68 69 73 20 68 65 61 64 65 72 |line.This header| 0009d8f0 20 69 73 20 6f 62 73 6f 6c 65 74 65 2e 20 49 74 | is obsolete. It| 0009d900 20 6e 6f 77 20 73 69 6d 70 6c 79 0a 3c 23 69 6e | now simply.<#in| 0009d910 63 6c 75 64 65 3d 3e 69 6e 63 6c 75 64 65 3e 73 |clude=>include>s| 0009d920 20 3c 44 65 73 6b 4c 69 62 3a 53 74 72 2e 68 3d | <DeskLib:Str.h=| 0009d930 3e 53 74 72 5f 44 4c 3e 2e 00 00 00 44 41 54 41 |>Str_DL>....DATA| 0009d940 ee 00 00 00 73 74 72 6c 65 6e 0a 53 79 6e 74 61 |....strlen.Synta| 0009d950 78 3a 09 3c 73 69 7a 65 5f 74 3e 20 73 74 72 6c |x:.<size_t> strl| 0009d960 65 6e 20 28 63 68 61 72 20 2a 73 74 72 29 3b 0a |en (char *str);.| 0009d970 48 65 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e |Header:.<string.| 0009d980 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 |h=>string>..Retu| 0009d990 72 6e 73 3a 09 4c 65 6e 67 74 68 20 6f 66 20 74 |rns:.Length of t| 0009d9a0 68 65 20 73 74 72 69 6e 67 2e 0a 0a 54 68 69 73 |he string...This| 0009d9b0 20 66 75 6e 63 74 69 6f 6e 20 77 6f 72 6b 73 20 | function works | 0009d9c0 6f 75 74 20 74 68 65 20 6c 65 6e 67 74 68 20 6f |out the length o| 0009d9d0 66 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 69 |f the string poi| 0009d9e0 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 74 72 2f |nted to by /str/| 0009d9f0 20 28 69 65 20 74 68 65 20 6e 75 6d 62 65 72 20 | (ie the number | 0009da00 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 62 65 |of characters be| 0009da10 66 6f 72 65 20 74 68 65 20 6e 75 6c 6c 20 74 65 |fore the null te| 0009da20 72 6d 69 6e 61 74 6f 72 29 2e 00 00 44 41 54 41 |rminator)...DATA| 0009da30 e9 00 00 00 73 74 72 6c 65 6e 63 72 0a 53 79 6e |....strlencr.Syn| 0009da40 74 61 78 3a 09 69 6e 74 20 73 74 72 6c 65 6e 63 |tax:.int strlenc| 0009da50 72 20 28 63 68 61 72 20 2a 73 29 3b 0a 48 65 61 |r (char *s);.Hea| 0009da60 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 53 74 |der:.<DeskLib:St| 0009da70 72 2e 68 3d 3e 53 74 72 5f 44 4c 3e 0a 0a 52 65 |r.h=>Str_DL>..Re| 0009da80 74 75 72 6e 73 3a 09 4c 65 6e 67 74 68 20 6f 66 |turns:.Length of| 0009da90 20 74 68 65 20 73 74 72 69 6e 67 2e 0a 0a 54 68 | the string...Th| 0009daa0 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 6f 72 6b |is function work| 0009dab0 73 20 6f 75 74 20 74 68 65 20 6c 65 6e 67 74 68 |s out the length| 0009dac0 20 6f 66 20 74 68 65 20 73 74 72 69 6e 67 20 70 | of the string p| 0009dad0 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f |ointed to by /s/| 0009dae0 20 28 69 65 20 74 68 65 20 6e 75 6d 62 65 72 20 | (ie the number | 0009daf0 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 62 65 |of characters be| 0009db00 66 6f 72 65 20 74 68 65 20 74 65 72 6d 69 6e 61 |fore the termina| 0009db10 74 6f 72 29 2e 00 00 00 44 41 54 41 15 01 00 00 |tor)....DATA....| 0009db20 73 74 72 6e 63 61 74 0a 53 79 6e 74 61 78 3a 09 |strncat.Syntax:.| 0009db30 63 68 61 72 20 2a 73 74 72 6e 63 61 74 20 28 63 |char *strncat (c| 0009db40 68 61 72 20 2a 73 74 72 31 2c 20 63 68 61 72 20 |har *str1, char | 0009db50 2a 73 74 72 32 2c 20 3c 73 69 7a 65 5f 74 3e 20 |*str2, <size_t> | 0009db60 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 72 |n);.Header:.<str| 0009db70 69 6e 67 2e 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a |ing.h=>string>..| 0009db80 52 65 74 75 72 6e 73 3a 09 73 74 72 31 0a 0a 54 |Returns:.str1..T| 0009db90 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 |his function app| 0009dba0 65 6e 64 73 20 75 70 20 74 6f 20 2f 6e 2f 20 63 |ends up to /n/ c| 0009dbb0 68 61 72 61 63 74 65 72 73 20 6f 66 20 7b 2f 7d |haracters of {/}| 0009dbc0 73 74 72 32 7b 2f 7d 20 74 6f 20 74 68 65 20 65 |str2{/} to the e| 0009dbd0 6e 64 20 6f 66 20 7b 2f 7d 73 74 72 31 7b 2f 7d |nd of {/}str1{/}| 0009dbe0 2e 20 43 68 61 72 61 63 74 65 72 73 20 61 66 74 |. Characters aft| 0009dbf0 65 72 20 61 20 6e 75 6c 6c 20 62 79 74 65 20 61 |er a null byte a| 0009dc00 72 65 20 6e 6f 74 20 61 64 64 65 64 2e 20 54 68 |re not added. Th| 0009dc10 65 20 73 74 72 69 6e 67 73 20 73 68 6f 75 6c 64 |e strings should| 0009dc20 20 6e 6f 74 20 6f 76 65 72 6c 61 70 2e 00 00 00 | not overlap....| 0009dc30 44 41 54 41 95 01 00 00 73 74 72 6e 63 6d 70 0a |DATA....strncmp.| 0009dc40 53 79 6e 74 61 78 3a 09 69 6e 74 20 73 74 72 6e |Syntax:.int strn| 0009dc50 63 6d 70 20 28 63 68 61 72 20 2a 73 74 72 31 2c |cmp (char *str1,| 0009dc60 20 63 68 61 72 20 2a 73 74 72 32 2c 20 3c 73 69 | char *str2, <si| 0009dc70 7a 65 5f 74 3e 20 6e 29 3b 0a 48 65 61 64 65 72 |ze_t> n);.Header| 0009dc80 3a 09 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 |:.<string.h=>str| 0009dc90 69 6e 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 47 |ing>..Returns:.G| 0009dca0 72 65 61 74 65 72 20 74 68 61 6e 2c 20 6c 65 73 |reater than, les| 0009dcb0 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 |s than or equal | 0009dcc0 74 6f 20 7a 65 72 6f 2c 20 64 65 70 65 6e 64 69 |to zero, dependi| 0009dcd0 6e 67 20 69 66 20 74 68 65 20 73 74 72 69 6e 67 |ng if the string| 0009dce0 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 7b | pointed to by {| 0009dcf0 2f 7d 73 74 72 31 7b 2f 7d 20 69 73 20 67 72 65 |/}str1{/} is gre| 0009dd00 61 74 65 72 20 74 68 61 6e 2c 20 6c 65 73 73 20 |ater than, less | 0009dd10 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f |than or equal to| 0009dd20 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 69 6e | the string poin| 0009dd30 74 65 64 20 74 6f 20 62 79 20 7b 2f 7d 73 74 72 |ted to by {/}str| 0009dd40 32 7b 2f 7d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |2{/}...This func| 0009dd50 74 69 6f 6e 20 63 6f 6d 70 61 72 65 73 20 75 70 |tion compares up| 0009dd60 20 74 6f 20 2f 6e 2f 20 63 68 61 72 61 63 74 65 | to /n/ characte| 0009dd70 72 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 |rs and returns a| 0009dd80 20 76 61 6c 75 65 20 61 73 20 61 70 70 72 6f 70 | value as approp| 0009dd90 72 69 61 74 65 2e 20 43 68 61 72 61 63 74 65 72 |riate. Character| 0009dda0 73 20 61 66 74 65 72 20 61 20 6e 75 6c 6c 20 62 |s after a null b| 0009ddb0 79 74 65 20 61 72 65 20 6e 6f 74 20 63 6f 6d 70 |yte are not comp| 0009ddc0 61 72 65 64 2e 00 00 00 44 41 54 41 3d 01 00 00 |ared....DATA=...| 0009ddd0 73 74 72 6e 63 70 79 0a 53 79 6e 74 61 78 3a 09 |strncpy.Syntax:.| 0009dde0 63 68 61 72 20 2a 73 74 72 6e 63 70 79 20 28 63 |char *strncpy (c| 0009ddf0 68 61 72 20 2a 73 74 72 31 2c 20 63 68 61 72 20 |har *str1, char | 0009de00 2a 73 74 72 32 2c 20 3c 73 69 7a 65 5f 74 3e 20 |*str2, <size_t> | 0009de10 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 72 |n);.Header:.<str| 0009de20 69 6e 67 2e 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a |ing.h=>string>..| 0009de30 52 65 74 75 72 6e 73 3a 09 73 74 72 31 0a 0a 54 |Returns:.str1..T| 0009de40 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 |his function cop| 0009de50 69 65 73 20 75 70 20 74 6f 20 2f 6e 2f 20 63 68 |ies up to /n/ ch| 0009de60 61 72 61 63 74 65 72 73 20 66 72 6f 6d 20 7b 2f |aracters from {/| 0009de70 7d 73 74 72 32 7b 2f 7d 20 74 6f 20 7b 2f 7d 73 |}str2{/} to {/}s| 0009de80 74 72 31 7b 2f 7d 2e 20 49 66 20 61 20 6e 75 6c |tr1{/}. If a nul| 0009de90 6c 20 63 68 61 72 61 63 74 65 72 20 69 73 20 72 |l character is r| 0009dea0 65 61 63 68 65 64 2c 20 74 68 65 20 72 65 6d 61 |eached, the rema| 0009deb0 69 6e 69 6e 67 20 63 68 61 72 61 63 74 65 72 73 |ining characters| 0009dec0 20 61 72 65 20 66 69 6c 6c 65 64 20 77 69 74 68 | are filled with| 0009ded0 20 6e 75 6c 6c 73 2e 20 7b 2f 7d 73 74 72 31 7b | nulls. {/}str1{| 0009dee0 2f 7d 20 61 6e 64 20 7b 2f 7d 73 74 72 32 7b 2f |/} and {/}str2{/| 0009def0 7d 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6f 76 65 |} should not ove| 0009df00 72 6c 61 70 2e 00 00 00 44 41 54 41 3c 01 00 00 |rlap....DATA<...| 0009df10 73 74 72 6e 63 70 79 63 72 0a 53 79 6e 74 61 78 |strncpycr.Syntax| 0009df20 3a 09 63 68 61 72 20 2a 73 74 72 6e 63 70 79 63 |:.char *strncpyc| 0009df30 72 20 28 63 68 61 72 20 2a 73 31 2c 20 63 68 61 |r (char *s1, cha| 0009df40 72 20 2a 73 32 2c 20 3c 73 69 7a 65 5f 74 3e 20 |r *s2, <size_t> | 0009df50 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |n);.Header:.<Des| 0009df60 6b 4c 69 62 3a 53 74 72 2e 68 3d 3e 53 74 72 5f |kLib:Str.h=>Str_| 0009df70 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 73 31 |DL>..Returns:.s1| 0009df80 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 0009df90 63 6f 70 69 65 73 20 75 70 20 74 6f 20 6e 20 63 |copies up to n c| 0009dfa0 68 61 72 61 63 74 65 72 73 20 66 72 6f 6d 20 7b |haracters from {| 0009dfb0 2f 7d 73 32 7b 2f 7d 20 74 6f 20 7b 2f 7d 73 31 |/}s2{/} to {/}s1| 0009dfc0 7b 2f 7d 2e 20 49 66 20 61 20 74 65 72 6d 69 6e |{/}. If a termin| 0009dfd0 61 74 6f 72 20 63 68 61 72 61 63 74 65 72 20 69 |ator character i| 0009dfe0 73 20 72 65 61 63 68 65 64 2c 20 74 68 65 20 72 |s reached, the r| 0009dff0 65 6d 61 69 6e 69 6e 67 20 63 68 61 72 61 63 74 |emaining charact| 0009e000 65 72 73 20 61 72 65 20 66 69 6c 6c 65 64 20 77 |ers are filled w| 0009e010 69 74 68 20 6e 75 6c 6c 73 2e 20 7b 2f 7d 73 31 |ith nulls. {/}s1| 0009e020 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 73 32 7b 2f 7d |{/} and {/}s2{/}| 0009e030 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6f 76 65 72 | should not over| 0009e040 6c 61 70 2e 44 41 54 41 a0 01 00 00 73 74 72 6e |lap.DATA....strn| 0009e050 69 63 6d 70 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |icmp.Syntax:.int| 0009e060 20 73 74 72 6e 69 63 6d 70 20 28 63 68 61 72 20 | strnicmp (char | 0009e070 2a 73 74 72 31 2c 20 63 68 61 72 20 2a 73 74 72 |*str1, char *str| 0009e080 32 2c 20 3c 73 69 7a 65 5f 74 3e 20 6e 29 3b 0a |2, <size_t> n);.| 0009e090 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 |Header:.<TimsLib| 0009e0a0 3a 4c 69 62 2e 68 3d 3e 4c 69 62 3e 0a 09 3c 44 |:Lib.h=>Lib>..<D| 0009e0b0 65 73 6b 4c 69 62 3a 53 74 72 2e 68 3d 3e 53 74 |eskLib:Str.h=>St| 0009e0c0 72 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |r_DL>..Returns:.| 0009e0d0 47 72 65 61 74 65 72 20 74 68 61 6e 2c 20 6c 65 |Greater than, le| 0009e0e0 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c |ss than or equal| 0009e0f0 20 74 6f 20 7a 65 72 6f 2c 20 64 65 70 65 6e 64 | to zero, depend| 0009e100 69 6e 67 20 69 66 20 74 68 65 20 73 74 72 69 6e |ing if the strin| 0009e110 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |g pointed to by | 0009e120 73 74 72 31 20 69 73 20 67 72 65 61 74 65 72 20 |str1 is greater | 0009e130 74 68 61 6e 2c 20 6c 65 73 73 20 74 68 61 6e 20 |than, less than | 0009e140 6f 72 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 |or equal to the | 0009e150 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 |string pointed t| 0009e160 6f 20 62 79 20 73 74 72 32 2e 0a 0a 54 68 69 73 |o by str2...This| 0009e170 20 66 75 6e 63 74 69 6f 6e 73 20 63 6f 6d 70 61 | functions compa| 0009e180 72 65 73 20 75 70 20 74 6f 20 2f 6e 2f 20 63 68 |res up to /n/ ch| 0009e190 61 72 61 63 74 65 72 73 20 61 6e 64 20 72 65 74 |aracters and ret| 0009e1a0 75 72 6e 73 20 61 20 76 61 6c 75 65 20 61 63 63 |urns a value acc| 0009e1b0 6f 72 64 69 6e 67 6c 79 2e 20 49 74 20 69 73 20 |ordingly. It is | 0009e1c0 6e 6f 74 20 63 61 73 65 20 73 65 6e 73 74 69 76 |not case senstiv| 0009e1d0 65 2c 20 75 6e 6c 69 6b 65 20 3c 73 74 72 6e 63 |e, unlike <strnc| 0009e1e0 6d 70 3e 2e 44 41 54 41 6c 01 00 00 73 74 72 6e |mp>.DATAl...strn| 0009e1f0 69 63 6d 70 63 72 0a 53 79 6e 74 61 78 3a 09 69 |icmpcr.Syntax:.i| 0009e200 6e 74 20 73 74 72 6e 69 63 6d 70 63 72 20 28 63 |nt strnicmpcr (c| 0009e210 68 61 72 20 2a 73 74 72 31 2c 20 63 68 61 72 20 |har *str1, char | 0009e220 2a 73 74 72 32 2c 20 3c 73 69 7a 65 5f 74 3e 20 |*str2, <size_t> | 0009e230 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |n);.Header:.<Des| 0009e240 6b 4c 69 62 3a 53 74 72 2e 68 3d 3e 53 74 72 5f |kLib:Str.h=>Str_| 0009e250 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 47 72 |DL>..Returns:.Gr| 0009e260 65 61 74 65 72 20 74 68 61 6e 2c 20 6c 65 73 73 |eater than, less| 0009e270 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 | than or equal t| 0009e280 6f 20 7a 65 72 6f 2c 20 64 65 70 65 6e 64 69 6e |o zero, dependin| 0009e290 67 20 69 66 20 74 68 65 20 73 74 72 69 6e 67 20 |g if the string | 0009e2a0 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 73 74 |pointed to by st| 0009e2b0 72 31 20 69 73 20 67 72 65 61 74 65 72 20 74 68 |r1 is greater th| 0009e2c0 61 6e 2c 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 |an, less than or| 0009e2d0 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 73 74 | equal to the st| 0009e2e0 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 |ring pointed to | 0009e2f0 62 79 20 73 74 72 32 2e 0a 0a 54 68 69 73 20 66 |by str2...This f| 0009e300 75 6e 63 74 69 6f 6e 20 69 73 20 65 71 75 69 76 |unction is equiv| 0009e310 61 6c 65 6e 74 20 74 6f 20 3c 73 74 72 6e 69 63 |alent to <strnic| 0009e320 6d 70 3e 2c 20 62 75 74 20 77 6f 72 6b 73 20 77 |mp>, but works w| 0009e330 69 74 68 20 61 6e 79 20 63 6f 6e 74 72 6f 6c 20 |ith any control | 0009e340 63 6f 64 65 20 74 65 72 6d 69 6e 61 74 6f 72 2e |code terminator.| 0009e350 44 41 54 41 ff 00 00 00 73 74 72 70 62 72 6b 0a |DATA....strpbrk.| 0009e360 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 73 74 |Syntax:.char *st| 0009e370 72 70 62 72 6b 20 28 63 68 61 72 20 2a 73 74 72 |rpbrk (char *str| 0009e380 31 2c 20 63 68 61 72 20 2a 73 74 72 32 29 3b 0a |1, char *str2);.| 0009e390 48 65 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e |Header:.<string.| 0009e3a0 68 3d 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 |h=>string>..Retu| 0009e3b0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 0009e3c0 74 68 65 20 66 6f 75 6e 64 20 63 68 61 72 61 63 |the found charac| 0009e3d0 74 65 72 2c 20 6f 72 20 6e 75 6c 6c 20 70 6f 69 |ter, or null poi| 0009e3e0 6e 74 65 72 20 69 66 20 6e 6f 6e 65 20 66 6f 75 |nter if none fou| 0009e3f0 6e 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |nd...This functi| 0009e400 6f 6e 20 66 69 6e 64 73 20 74 68 65 20 66 69 72 |on finds the fir| 0009e410 73 74 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 |st character in | 0009e420 7b 2f 7d 73 74 72 31 7b 2f 7d 20 77 68 69 63 68 |{/}str1{/} which| 0009e430 20 69 73 20 61 6c 73 6f 20 70 72 65 73 65 6e 74 | is also present| 0009e440 20 69 6e 20 7b 2f 7d 73 74 72 32 7b 2f 7d 2e 00 | in {/}str2{/}..| 0009e450 44 41 54 41 2c 01 00 00 73 74 72 72 63 68 72 0a |DATA,...strrchr.| 0009e460 53 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 73 74 |Syntax:.char *st| 0009e470 72 72 63 68 72 20 28 63 68 61 72 20 2a 73 74 72 |rrchr (char *str| 0009e480 2c 20 69 6e 74 20 63 29 3b 0a 48 65 61 64 65 72 |, int c);.Header| 0009e490 3a 09 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 |:.<string.h=>str| 0009e4a0 69 6e 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ing>..Returns:.P| 0009e4b0 6f 69 6e 74 65 72 20 74 68 65 20 66 6f 75 6e 64 |ointer the found| 0009e4c0 20 63 68 61 72 61 63 74 65 72 2c 20 6f 72 20 61 | character, or a| 0009e4d0 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 20 69 66 | null pointer if| 0009e4e0 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 0a 54 68 69 | not found...Thi| 0009e4f0 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 |s function searc| 0009e500 68 65 73 20 66 6f 72 20 74 68 65 20 6c 61 73 74 |hes for the last| 0009e510 20 6f 63 63 75 72 65 6e 63 65 20 6f 66 20 2f 63 | occurence of /c| 0009e520 2f 20 28 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 |/ (converted to | 0009e530 61 20 7b 2f 7d 63 68 61 72 7b 2f 7d 29 20 69 6e |a {/}char{/}) in| 0009e540 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 69 6e | the string poin| 0009e550 74 65 64 20 74 6f 20 62 79 20 2f 73 74 72 2f 20 |ted to by /str/ | 0009e560 28 69 6e 63 6c 75 64 69 6e 67 20 6e 75 6c 6c 20 |(including null | 0009e570 74 65 72 6d 69 6e 61 74 6f 72 29 2e 44 41 54 41 |terminator).DATA| 0009e580 5c 01 00 00 53 74 72 53 61 76 65 0a 53 79 6e 74 |\...StrSave.Synt| 0009e590 61 78 3a 09 63 68 61 72 20 2a 53 74 72 53 61 76 |ax:.char *StrSav| 0009e5a0 65 20 28 63 68 61 72 20 2a 73 72 63 2c 20 69 6e |e (char *src, in| 0009e5b0 74 20 6c 65 6e 67 74 68 29 3b 0a 48 65 61 64 65 |t length);.Heade| 0009e5c0 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 4c 69 62 2e |r:.<TimsLib:Lib.| 0009e5d0 68 3d 3e 4c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 |h=>Lib>..Returns| 0009e5e0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 |:.Pointer to the| 0009e5f0 20 6e 65 77 20 63 6f 70 79 20 6f 66 20 74 68 65 | new copy of the| 0009e600 20 73 74 72 69 6e 67 2e 0a 0a 54 68 69 73 20 66 | string...This f| 0009e610 75 6e 63 74 69 6f 6e 20 63 6f 70 69 65 73 20 61 |unction copies a| 0009e620 20 73 74 72 69 6e 67 20 2f 73 74 72 2f 2c 20 61 | string /str/, a| 0009e630 6c 6c 6f 63 61 74 69 6e 67 20 73 70 61 63 65 20 |llocating space | 0009e640 66 6f 72 20 74 68 65 20 64 65 73 74 69 6e 61 74 |for the destinat| 0009e650 69 6f 6e 2e 20 49 66 20 2f 6c 65 6e 67 74 68 2f |ion. If /length/| 0009e660 20 3e 20 30 20 74 68 65 6e 20 2f 6c 65 6e 67 74 | > 0 then /lengt| 0009e670 68 2f 20 62 79 74 65 73 20 77 69 6c 6c 20 62 65 |h/ bytes will be| 0009e680 20 61 6c 6c 6f 63 61 74 65 64 2c 20 65 6c 73 65 | allocated, else| 0009e690 20 69 66 20 2f 6c 65 6e 67 74 68 2f 20 3d 20 30 | if /length/ = 0| 0009e6a0 20 6a 75 73 74 20 65 6e 6f 75 67 68 20 73 70 61 | just enough spa| 0009e6b0 63 65 20 74 6f 20 68 6f 6c 64 20 74 68 65 20 73 |ce to hold the s| 0009e6c0 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 61 6c |tring will be al| 0009e6d0 6c 6f 63 61 74 65 64 2e 44 41 54 41 b2 01 00 00 |located.DATA....| 0009e6e0 53 74 72 53 61 76 65 44 62 75 67 0a 53 79 6e 74 |StrSaveDbug.Synt| 0009e6f0 61 78 3a 09 63 68 61 72 20 2a 53 74 72 53 61 76 |ax:.char *StrSav| 0009e700 65 44 62 75 67 20 28 63 68 61 72 20 2a 73 72 63 |eDbug (char *src| 0009e710 2c 20 69 6e 74 20 6c 65 6e 67 74 68 2c 20 63 68 |, int length, ch| 0009e720 61 72 20 2a 66 69 6c 65 2c 20 69 6e 74 20 6c 69 |ar *file, int li| 0009e730 6e 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 |ne);.Header:.<Ti| 0009e740 6d 73 4c 69 62 3a 4c 69 62 2e 68 3d 3e 4c 69 62 |msLib:Lib.h=>Lib| 0009e750 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 0009e760 74 65 72 20 74 6f 20 74 68 65 20 6e 65 77 20 63 |ter to the new c| 0009e770 6f 70 79 20 6f 66 20 74 68 65 20 73 74 72 69 6e |opy of the strin| 0009e780 67 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |g...This functio| 0009e790 6e 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 |n is identical t| 0009e7a0 6f 20 3c 53 74 72 53 61 76 65 3e 2c 20 62 75 74 |o <StrSave>, but| 0009e7b0 20 61 64 64 73 20 73 6f 75 72 63 65 20 66 69 6c | adds source fil| 0009e7c0 65 20 61 6e 64 20 6c 69 6e 65 20 69 6e 66 6f 72 |e and line infor| 0009e7d0 6d 61 74 69 6f 6e 2e 20 49 74 20 69 73 20 69 6e |mation. It is in| 0009e7e0 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 73 65 |tended to be use| 0009e7f0 64 20 77 69 74 68 20 74 68 65 20 6d 61 63 72 6f |d with the macro| 0009e800 20 2f 73 74 72 73 61 76 65 64 62 75 67 2f 2c 20 | /strsavedbug/, | 0009e810 77 68 69 63 68 20 69 73 20 63 61 6c 6c 65 64 20 |which is called | 0009e820 62 79 20 53 74 72 53 61 76 65 20 69 66 20 3c 45 |by StrSave if <E| 0009e830 6e 61 62 6c 65 44 62 75 67 3e 20 69 73 20 3c 23 |nableDbug> is <#| 0009e840 69 6e 63 6c 75 64 65 3d 3e 69 6e 63 6c 75 64 65 |include=>include| 0009e850 3e 64 2e 20 42 61 73 69 63 61 6c 6c 79 2c 20 74 |>d. Basically, t| 0009e860 68 69 73 20 69 73 20 6e 65 76 65 72 20 63 61 6c |his is never cal| 0009e870 6c 65 64 20 2d 20 61 6c 77 61 79 73 20 63 61 6c |led - always cal| 0009e880 6c 20 53 74 72 53 61 76 65 2e 00 00 44 41 54 41 |l StrSave...DATA| 0009e890 02 01 00 00 73 74 72 73 70 6e 0a 53 79 6e 74 61 |....strspn.Synta| 0009e8a0 78 3a 09 3c 73 69 7a 65 5f 74 3e 20 73 74 72 73 |x:.<size_t> strs| 0009e8b0 70 6e 20 28 63 68 61 72 20 2a 73 74 72 31 2c 20 |pn (char *str1, | 0009e8c0 63 68 61 72 20 2a 73 74 72 32 29 3b 0a 48 65 61 |char *str2);.Hea| 0009e8d0 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 3d 3e |der:.<string.h=>| 0009e8e0 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 6e 73 |string>..Returns| 0009e8f0 3a 09 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 |:.The number of | 0009e900 63 68 61 72 61 63 74 65 72 73 2e 0a 0a 54 68 69 |characters...Thi| 0009e910 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 |s function finds| 0009e920 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 | the number of c| 0009e930 68 61 72 61 63 74 65 72 73 20 61 74 20 74 68 65 |haracters at the| 0009e940 20 73 74 61 72 74 20 6f 66 20 7b 2f 7d 73 74 72 | start of {/}str| 0009e950 31 7b 2f 7d 20 77 68 69 63 68 20 61 72 65 20 61 |1{/} which are a| 0009e960 6c 73 6f 20 70 72 65 73 65 6e 74 20 69 6e 20 7b |lso present in {| 0009e970 2f 7d 73 74 72 32 7b 2f 7d 2e 20 53 65 65 20 61 |/}str2{/}. See a| 0009e980 6c 73 6f 20 3c 73 74 72 63 73 70 6e 3e 2e 00 00 |lso <strcspn>...| 0009e990 44 41 54 41 4a 01 00 00 73 74 72 73 74 72 0a 53 |DATAJ...strstr.S| 0009e9a0 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 73 74 72 |yntax:.char *str| 0009e9b0 73 74 72 20 28 63 68 61 72 20 2a 73 74 72 31 2c |str (char *str1,| 0009e9c0 20 63 68 61 72 20 2a 73 74 72 32 29 3b 0a 48 65 | char *str2);.He| 0009e9d0 61 64 65 72 3a 09 3c 73 74 72 69 6e 67 2e 68 3d |ader:.<string.h=| 0009e9e0 3e 73 74 72 69 6e 67 3e 0a 0a 52 65 74 75 72 6e |>string>..Return| 0009e9f0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 |s:.Pointer to th| 0009ea00 65 20 66 6f 75 6e 64 20 73 74 72 69 6e 67 2c 20 |e found string, | 0009ea10 6f 72 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 |or a null pointe| 0009ea20 72 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a |r if not found..| 0009ea30 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 0009ea40 65 61 72 63 68 65 73 20 66 6f 72 20 74 68 65 20 |earches for the | 0009ea50 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 |string pointed t| 0009ea60 6f 20 62 79 20 7b 2f 7d 73 74 72 32 7b 2f 7d 20 |o by {/}str2{/} | 0009ea70 69 6e 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f |in the string po| 0009ea80 69 6e 74 65 64 20 74 6f 20 62 79 20 7b 2f 7d 73 |inted to by {/}s| 0009ea90 74 72 31 7b 2f 7d 2e 20 49 66 20 7b 2f 7d 73 74 |tr1{/}. If {/}st| 0009eaa0 72 32 7b 2f 7d 20 69 73 20 61 6e 20 65 6d 70 74 |r2{/} is an empt| 0009eab0 79 20 73 74 72 69 6e 67 2c 20 74 68 65 20 66 75 |y string, the fu| 0009eac0 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 7b |nction returns {| 0009ead0 2f 7d 73 74 72 31 7b 2f 7d 2e 00 00 44 41 54 41 |/}str1{/}...DATA| 0009eae0 ce 02 00 00 73 74 72 74 6f 64 0a 53 79 6e 74 61 |....strtod.Synta| 0009eaf0 78 3a 09 64 6f 75 62 6c 65 20 73 74 72 74 6f 64 |x:.double strtod| 0009eb00 20 28 63 68 61 72 20 2a 73 74 72 2c 20 63 68 61 | (char *str, cha| 0009eb10 72 20 2a 2a 65 6e 64 29 3b 0a 48 65 61 64 65 72 |r **end);.Header| 0009eb20 3a 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 |:.<stdlib.h=>std| 0009eb30 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 |lib>..Returns:.T| 0009eb40 68 65 20 63 6f 6e 76 65 72 74 65 64 20 76 61 6c |he converted val| 0009eb50 75 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ue...This functi| 0009eb60 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |on converts the | 0009eb70 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 |string pointed t| 0009eb80 6f 20 62 79 20 2f 73 74 72 2f 20 74 6f 20 61 20 |o by /str/ to a | 0009eb90 2f 64 6f 75 62 6c 65 2f 2e 20 49 74 20 64 6f 65 |/double/. It doe| 0009eba0 73 20 74 68 69 73 20 62 79 20 73 70 6c 69 74 74 |s this by splitt| 0009ebb0 69 6e 67 20 74 68 65 20 73 74 72 69 6e 67 20 69 |ing the string i| 0009ebc0 6e 74 6f 20 74 68 72 65 65 20 62 69 74 73 20 2d |nto three bits -| 0009ebd0 20 77 68 69 74 65 20 73 70 61 63 65 20 61 74 20 | white space at | 0009ebe0 74 68 65 20 73 74 61 72 74 2c 20 74 68 65 6e 20 |the start, then | 0009ebf0 74 68 65 20 6e 75 6d 62 65 72 2c 20 74 68 65 6e |the number, then| 0009ec00 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 | the rest of the| 0009ec10 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 69 73 | string which is| 0009ec20 20 75 6e 72 65 63 6f 67 6e 69 73 65 64 2e 20 54 | unrecognised. T| 0009ec30 68 65 20 6d 69 64 64 6c 65 20 62 69 74 20 69 73 |he middle bit is| 0009ec40 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 | converted to a | 0009ec50 2f 64 6f 75 62 6c 65 2f 20 61 6e 64 20 72 65 74 |/double/ and ret| 0009ec60 75 72 6e 65 64 2c 20 61 6e 64 20 61 20 70 6f 69 |urned, and a poi| 0009ec70 6e 74 65 72 20 74 6f 20 74 68 65 20 6c 61 73 74 |nter to the last| 0009ec80 20 62 69 74 20 69 73 20 72 65 74 75 72 6e 65 64 | bit is returned| 0009ec90 20 69 6e 20 74 68 65 20 7b 2f 7d 63 68 61 72 a0 | in the {/}char.| 0009eca0 2a 7b 2f 7d 20 70 6f 69 6e 74 65 64 20 74 6f 20 |*{/} pointed to | 0009ecb0 62 79 20 2f 65 6e 64 2f 2e 0a 0a 49 66 20 74 68 |by /end/...If th| 0009ecc0 65 20 73 74 72 69 6e 67 20 63 6f 75 6c 64 20 6e |e string could n| 0009ecd0 6f 74 20 62 65 20 63 6f 6e 76 65 72 74 65 64 2c |ot be converted,| 0009ece0 20 7a 65 72 6f 20 69 73 20 72 65 74 75 72 6e 65 | zero is returne| 0009ecf0 64 2e 20 49 66 20 69 74 20 63 6f 75 6c 64 20 62 |d. If it could b| 0009ed00 75 74 20 77 61 73 20 74 6f 6f 20 62 69 67 20 74 |ut was too big t| 0009ed10 6f 20 62 65 20 72 65 74 75 72 6e 65 64 2c 20 2b |o be returned, +| 0009ed20 2f 2d 20 3c 48 55 47 45 5f 56 41 4c 3e 20 69 73 |/- <HUGE_VAL> is| 0009ed30 20 72 65 74 75 72 6e 65 64 20 61 6e 64 20 3c 45 | returned and <E| 0009ed40 52 41 4e 47 45 3e 20 69 73 20 73 74 6f 72 65 64 |RANGE> is stored| 0009ed50 20 69 6e 20 3c 65 72 72 6e 6f 3e 2e 20 49 66 20 | in <errno>. If | 0009ed60 69 74 20 69 73 20 74 6f 6f 20 73 6d 61 6c 6c 20 |it is too small | 0009ed70 74 6f 20 72 65 74 75 72 6e 2c 20 7a 65 72 6f 20 |to return, zero | 0009ed80 69 73 20 72 65 74 75 72 6e 65 64 20 61 6e 64 20 |is returned and | 0009ed90 45 52 41 4e 47 45 20 69 73 20 73 74 6f 72 65 64 |ERANGE is stored| 0009eda0 20 69 6e 20 65 72 72 6e 6f 2e 00 00 44 41 54 41 | in errno...DATA| 0009edb0 64 03 00 00 73 74 72 74 6f 6b 0a 53 79 6e 74 61 |d...strtok.Synta| 0009edc0 78 3a 09 63 68 61 72 20 2a 73 74 72 74 6f 6b 20 |x:.char *strtok | 0009edd0 28 63 68 61 72 20 2a 73 74 72 31 2c 20 63 68 61 |(char *str1, cha| 0009ede0 72 20 2a 73 74 72 32 29 3b 0a 48 65 61 64 65 72 |r *str2);.Header| 0009edf0 3a 09 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 |:.<string.h=>str| 0009ee00 69 6e 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ing>..Returns:.P| 0009ee10 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 74 6f |ointer to the to| 0009ee20 6b 65 6e 2c 20 6f 72 20 61 20 6e 75 6c 6c 20 70 |ken, or a null p| 0009ee30 6f 69 6e 74 65 72 20 69 66 20 6e 6f 6e 65 20 66 |ointer if none f| 0009ee40 6f 75 6e 64 2e 0a 0a 54 68 69 73 20 69 73 20 61 |ound...This is a| 0009ee50 20 75 73 65 66 75 6c 20 66 75 6e 63 74 69 6f 6e | useful function| 0009ee60 21 20 54 68 65 20 66 69 72 73 74 20 74 69 6d 65 |! The first time| 0009ee70 20 79 6f 75 20 63 61 6c 6c 20 69 74 2c 20 79 6f | you call it, yo| 0009ee80 75 20 70 61 73 73 20 69 74 20 61 20 73 74 72 69 |u pass it a stri| 0009ee90 6e 67 20 69 6e 20 7b 2f 7d 73 74 72 31 7b 2f 7d |ng in {/}str1{/}| 0009eea0 20 61 6e 64 20 61 20 73 65 70 61 72 61 74 6f 72 | and a separator| 0009eeb0 20 69 6e 20 7b 2f 7d 73 74 72 32 7b 2f 7d 2e 20 | in {/}str2{/}. | 0009eec0 53 75 62 73 65 71 75 65 6e 74 20 63 61 6c 6c 73 |Subsequent calls| 0009eed0 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20 74 6f 20 | do not need to | 0009eee0 70 61 73 73 20 7b 2f 7d 73 74 72 31 7b 2f 7d 2c |pass {/}str1{/},| 0009eef0 20 69 74 20 69 73 20 72 65 6d 65 6d 62 65 72 65 | it is remembere| 0009ef00 64 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e |d...The function| 0009ef10 20 73 65 61 72 63 68 65 73 20 74 68 65 20 73 74 | searches the st| 0009ef20 72 69 6e 67 20 69 6e 20 7b 2f 7d 73 74 72 31 7b |ring in {/}str1{| 0009ef30 2f 7d 20 66 6f 72 20 61 20 63 68 61 72 61 63 74 |/} for a charact| 0009ef40 65 72 20 77 68 69 63 68 20 69 73 20 63 6f 6e 74 |er which is cont| 0009ef50 61 69 6e 65 64 20 69 6e 20 7b 2f 7d 73 74 72 32 |ained in {/}str2| 0009ef60 7b 2f 7d 2e 20 49 74 20 74 68 65 6e 20 73 74 6f |{/}. It then sto| 0009ef70 72 65 73 20 61 20 6e 75 6c 6c 20 62 79 74 65 20 |res a null byte | 0009ef80 68 65 72 65 20 61 6e 64 20 72 65 74 75 72 6e 73 |here and returns| 0009ef90 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 | a pointer to th| 0009efa0 65 20 73 74 61 72 74 20 6f 66 20 7b 2f 7d 73 74 |e start of {/}st| 0009efb0 72 31 7b 2f 7d 20 73 6f 20 74 68 65 20 72 65 74 |r1{/} so the ret| 0009efc0 75 72 6e 65 64 20 73 74 72 69 6e 67 20 69 73 20 |urned string is | 0009efd0 65 76 65 72 79 74 68 69 6e 67 20 75 70 20 74 6f |everything up to| 0009efe0 20 74 68 69 73 20 70 6f 69 6e 74 2e 20 46 6f 72 | this point. For| 0009eff0 20 73 75 62 73 65 71 75 65 6e 74 20 63 61 6c 6c | subsequent call| 0009f000 73 2c 20 74 68 65 20 73 65 61 72 63 68 69 6e 67 |s, the searching| 0009f010 20 73 74 61 72 74 73 20 61 66 74 65 72 20 74 68 | starts after th| 0009f020 65 20 6e 75 6c 6c 20 62 79 74 65 20 70 6c 61 63 |e null byte plac| 0009f030 65 64 20 6c 61 73 74 20 74 69 6d 65 2e 20 45 78 |ed last time. Ex| 0009f040 61 6d 70 6c 65 3a 0a 0a 23 54 61 62 0a 20 73 74 |ample:..#Tab. st| 0009f050 72 74 6f 6b 28 22 41 44 46 53 3a 3a 42 6f 62 2e |rtok("ADFS::Bob.| 0009f060 24 2e 4d 61 65 6c 73 74 72 6f 6d 22 2c 22 3a 22 |$.Maelstrom",":"| 0009f070 29 09 3d 20 22 41 44 46 53 22 0a 20 73 74 72 74 |).= "ADFS". strt| 0009f080 6f 6b 28 3c 4e 55 4c 4c 3e 2c 22 2e 22 29 09 3d |ok(<NULL>,".").=| 0009f090 20 22 3a 42 6f 62 22 0a 20 73 74 72 74 6f 6b 28 | ":Bob". strtok(| 0009f0a0 4e 55 4c 4c 2c 22 20 22 29 09 3d 20 22 24 2e 4d |NULL," ").= "$.M| 0009f0b0 61 65 6c 73 74 72 6f 6d 22 0a 0a 54 68 69 73 20 |aelstrom"..This | 0009f0c0 6d 61 6b 65 73 20 69 74 20 76 65 72 79 20 65 61 |makes it very ea| 0009f0d0 73 79 20 74 6f 20 65 78 74 72 61 63 74 20 66 69 |sy to extract fi| 0009f0e0 6c 69 6e 67 20 73 79 73 74 65 6d 73 2c 20 64 72 |ling systems, dr| 0009f0f0 69 76 65 73 20 61 6e 64 20 70 61 74 68 6e 61 6d |ives and pathnam| 0009f100 65 73 2c 20 64 6f 65 73 6e 27 74 20 69 74 3f 21 |es, doesn't it?!| 0009f110 44 41 54 41 28 03 00 00 73 74 72 74 6f 6c 0a 53 |DATA(...strtol.S| 0009f120 79 6e 74 61 78 3a 09 6c 6f 6e 67 20 69 6e 74 20 |yntax:.long int | 0009f130 73 74 72 74 6f 6c 20 28 63 68 61 72 20 2a 73 74 |strtol (char *st| 0009f140 72 2c 20 63 68 61 72 20 2a 2a 65 6e 64 2c 20 69 |r, char **end, i| 0009f150 6e 74 20 62 61 73 65 29 3b 0a 48 65 61 64 65 72 |nt base);.Header| 0009f160 3a 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 64 |:.<stdlib.h=>std| 0009f170 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 |lib>..Returns:.T| 0009f180 68 65 20 63 6f 6e 76 65 72 74 65 64 20 76 61 6c |he converted val| 0009f190 75 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ue...This functi| 0009f1a0 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |on converts the | 0009f1b0 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 |string pointed t| 0009f1c0 6f 20 62 79 20 2f 73 74 72 2f 20 74 6f 20 61 20 |o by /str/ to a | 0009f1d0 2f 6c 6f 6e 67 20 69 6e 74 2f 2e 20 49 74 20 64 |/long int/. It d| 0009f1e0 6f 65 73 20 74 68 69 73 20 62 79 20 73 70 6c 69 |oes this by spli| 0009f1f0 74 74 69 6e 67 20 74 68 65 20 73 74 72 69 6e 67 |tting the string| 0009f200 20 69 6e 74 6f 20 74 68 72 65 65 20 62 69 74 73 | into three bits| 0009f210 20 2d 20 77 68 69 74 65 20 73 70 61 63 65 20 61 | - white space a| 0009f220 74 20 74 68 65 20 73 74 61 72 74 2c 20 74 68 65 |t the start, the| 0009f230 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 69 6e 20 |n the number in | 0009f240 74 68 65 20 67 69 76 65 6e 20 62 61 73 65 20 28 |the given base (| 0009f250 32 2d 20 33 36 29 2c 20 74 68 65 6e 20 74 68 65 |2- 36), then the| 0009f260 20 72 65 73 74 20 6f 66 20 74 68 65 20 73 74 72 | rest of the str| 0009f270 69 6e 67 20 77 68 69 63 68 20 69 73 20 75 6e 72 |ing which is unr| 0009f280 65 63 6f 67 6e 69 73 65 64 2e 20 54 68 65 20 6d |ecognised. The m| 0009f290 69 64 64 6c 65 20 62 69 74 20 69 73 20 63 6f 6e |iddle bit is con| 0009f2a0 76 65 72 74 65 64 20 74 6f 20 61 20 2f 6c 6f 6e |verted to a /lon| 0009f2b0 67 20 69 6e 74 2f 20 61 6e 64 20 72 65 74 75 72 |g int/ and retur| 0009f2c0 6e 65 64 2c 20 61 6e 64 20 61 20 70 6f 69 6e 74 |ned, and a point| 0009f2d0 65 72 20 74 6f 20 74 68 65 20 6c 61 73 74 20 62 |er to the last b| 0009f2e0 69 74 20 69 73 20 72 65 74 75 72 6e 65 64 20 69 |it is returned i| 0009f2f0 6e 20 74 68 65 20 7b 2f 7d 63 68 61 72 a0 2a 7b |n the {/}char.*{| 0009f300 2f 7d 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 |/} pointed to by| 0009f310 20 2f 65 6e 64 2f 2e 0a 0a 49 66 20 74 68 65 20 | /end/...If the | 0009f320 73 74 72 69 6e 67 20 63 6f 75 6c 64 20 6e 6f 74 |string could not| 0009f330 20 62 65 20 63 6f 6e 76 65 72 74 65 64 2c 20 7a | be converted, z| 0009f340 65 72 6f 20 69 73 20 72 65 74 75 72 6e 65 64 2e |ero is returned.| 0009f350 20 49 66 20 69 74 20 63 6f 75 6c 64 20 62 75 74 | If it could but| 0009f360 20 77 61 73 20 74 6f 6f 20 62 69 67 20 74 6f 20 | was too big to | 0009f370 62 65 20 72 65 74 75 72 6e 65 64 2c 20 3c 4c 4f |be returned, <LO| 0009f380 4e 47 5f 4d 41 58 3e 20 6f 72 20 3c 4c 4f 4e 47 |NG_MAX> or <LONG| 0009f390 5f 4d 49 4e 3e 20 69 73 20 72 65 74 75 72 6e 65 |_MIN> is returne| 0009f3a0 64 2c 20 61 6e 64 20 3c 45 52 41 4e 47 45 3e 20 |d, and <ERANGE> | 0009f3b0 69 73 20 73 74 6f 72 65 64 20 69 6e 20 3c 65 72 |is stored in <er| 0009f3c0 72 6e 6f 3e 2e 0a 0a 46 6f 72 20 62 61 73 65 20 |rno>...For base | 0009f3d0 31 36 2c 20 74 68 65 20 73 74 72 69 6e 67 20 6d |16, the string m| 0009f3e0 61 79 20 68 61 76 65 20 22 30 78 22 20 6f 72 20 |ay have "0x" or | 0009f3f0 22 30 58 22 20 70 72 65 63 65 64 69 6e 67 20 74 |"0X" preceding t| 0009f400 68 65 20 6e 75 6d 62 65 72 2e 20 54 68 65 20 6c |he number. The l| 0009f410 65 74 74 65 72 73 20 61 2d 7a 20 28 41 2d 5a 29 |etters a-z (A-Z)| 0009f420 20 61 72 65 20 67 69 76 65 6e 20 76 61 6c 75 65 | are given value| 0009f430 73 20 31 30 2d 33 35 2e 44 41 54 41 30 03 00 00 |s 10-35.DATA0...| 0009f440 73 74 72 74 6f 75 6c 0a 53 79 6e 74 61 78 3a 09 |strtoul.Syntax:.| 0009f450 6c 6f 6e 67 20 69 6e 74 20 73 74 72 74 6f 75 6c |long int strtoul| 0009f460 20 28 63 68 61 72 20 2a 73 74 72 2c 20 63 68 61 | (char *str, cha| 0009f470 72 20 2a 2a 65 6e 64 2c 20 69 6e 74 20 62 61 73 |r **end, int bas| 0009f480 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |e);.Header:.<std| 0009f490 6c 69 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a |lib.h=>stdlib>..| 0009f4a0 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 6f 6e |Returns:.The con| 0009f4b0 76 65 72 74 65 64 20 76 61 6c 75 65 2e 0a 0a 54 |verted value...T| 0009f4c0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e |his function con| 0009f4d0 76 65 72 74 73 20 74 68 65 20 73 74 72 69 6e 67 |verts the string| 0009f4e0 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f | pointed to by /| 0009f4f0 73 74 72 2f 20 74 6f 20 61 6e 20 2f 75 6e 73 69 |str/ to an /unsi| 0009f500 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 2f 2e 20 |gned long int/. | 0009f510 49 74 20 64 6f 65 73 20 74 68 69 73 20 62 79 20 |It does this by | 0009f520 73 70 6c 69 74 74 69 6e 67 20 74 68 65 20 73 74 |splitting the st| 0009f530 72 69 6e 67 20 69 6e 74 6f 20 74 68 72 65 65 20 |ring into three | 0009f540 62 69 74 73 20 2d 20 77 68 69 74 65 20 73 70 61 |bits - white spa| 0009f550 63 65 20 61 74 20 74 68 65 20 73 74 61 72 74 2c |ce at the start,| 0009f560 20 74 68 65 6e 20 74 68 65 20 6e 75 6d 62 65 72 | then the number| 0009f570 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 62 61 | in the given ba| 0009f580 73 65 20 28 32 2d 33 36 29 2c 20 74 68 65 6e 20 |se (2-36), then | 0009f590 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 |the rest of the | 0009f5a0 73 74 72 69 6e 67 20 77 68 69 63 68 20 69 73 20 |string which is | 0009f5b0 75 6e 72 65 63 6f 67 6e 69 73 65 64 2e 20 54 68 |unrecognised. Th| 0009f5c0 65 20 6d 69 64 64 6c 65 20 62 69 74 20 69 73 20 |e middle bit is | 0009f5d0 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 6e 20 |converted to an | 0009f5e0 2f 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 |/unsigned long i| 0009f5f0 6e 74 2f 20 61 6e 64 20 72 65 74 75 72 6e 65 64 |nt/ and returned| 0009f600 2c 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20 |, and a pointer | 0009f610 74 6f 20 74 68 65 20 6c 61 73 74 20 62 69 74 20 |to the last bit | 0009f620 69 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 |is returned in t| 0009f630 68 65 20 7b 2f 7d 63 68 61 72 a0 2a 7b 2f 7d 20 |he {/}char.*{/} | 0009f640 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 65 |pointed to by /e| 0009f650 6e 64 2f 2e 0a 0a 49 66 20 74 68 65 20 73 74 72 |nd/...If the str| 0009f660 69 6e 67 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 |ing could not be| 0009f670 20 63 6f 6e 76 65 72 74 65 64 2c 20 7a 65 72 6f | converted, zero| 0009f680 20 69 73 20 72 65 74 75 72 6e 65 64 2e 20 49 66 | is returned. If| 0009f690 20 69 74 20 63 6f 75 6c 64 20 62 75 74 20 77 61 | it could but wa| 0009f6a0 73 20 74 6f 6f 20 62 69 67 20 74 6f 20 62 65 20 |s too big to be | 0009f6b0 72 65 74 75 72 6e 65 64 2c 20 3c 55 4c 4f 4e 47 |returned, <ULONG| 0009f6c0 5f 4d 41 58 3e 20 69 73 20 72 65 74 75 72 6e 65 |_MAX> is returne| 0009f6d0 64 2c 20 61 6e 64 20 3c 45 52 41 4e 47 45 3e 20 |d, and <ERANGE> | 0009f6e0 69 73 20 73 74 6f 72 65 64 20 69 6e 20 3c 65 72 |is stored in <er| 0009f6f0 72 6e 6f 3e 2e 0a 0a 46 6f 72 20 62 61 73 65 20 |rno>...For base | 0009f700 31 36 2c 20 74 68 65 20 73 74 72 69 6e 67 20 6d |16, the string m| 0009f710 61 79 20 68 61 76 65 20 94 30 78 95 20 6f 72 20 |ay have .0x. or | 0009f720 94 30 58 95 20 70 72 65 63 65 64 69 6e 67 20 74 |.0X. preceding t| 0009f730 68 65 20 6e 75 6d 62 65 72 2e 20 54 68 65 20 6c |he number. The l| 0009f740 65 74 74 65 72 73 20 61 2d 7a 20 28 41 2d 5a 29 |etters a-z (A-Z)| 0009f750 20 61 72 65 20 67 69 76 65 6e 20 76 61 6c 75 65 | are given value| 0009f760 73 20 31 30 2d 33 35 2e 44 41 54 41 7d 03 00 00 |s 10-35.DATA}...| 0009f770 73 74 72 75 63 74 0a 54 68 69 73 20 6b 65 79 77 |struct.This keyw| 0009f780 6f 72 64 20 64 65 66 69 6e 65 73 20 61 20 63 6f |ord defines a co| 0009f790 6d 70 6c 65 78 20 76 61 72 69 61 62 6c 65 20 74 |mplex variable t| 0009f7a0 79 70 65 20 63 61 6c 6c 65 64 20 61 20 73 74 72 |ype called a str| 0009f7b0 75 63 74 75 72 65 2e 20 54 68 65 20 64 65 66 69 |ucture. The defi| 0009f7c0 6e 69 74 69 6f 6e 20 68 61 73 20 74 68 65 20 67 |nition has the g| 0009f7d0 65 6e 65 72 61 6c 20 66 6f 72 6d 3a 0a 0a 20 20 |eneral form:.. | 0009f7e0 20 20 20 73 74 72 75 63 74 20 5c 3c 6e 61 6d 65 | struct \<name| 0009f7f0 3e 0a 20 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 |>. \{. | 0009f800 20 20 20 5c 3c 76 61 72 69 61 62 6c 65 31 3e 0a | \<variable1>.| 0009f810 20 20 20 20 20 20 20 20 20 5c 3c 76 61 72 69 61 | \<varia| 0009f820 62 6c 65 32 3e 0a 20 20 20 20 20 20 20 20 20 2e |ble2>. .| 0009f830 2e 2e 0a 20 20 20 20 20 20 20 20 20 5c 3c 76 61 |... \<va| 0009f840 72 69 61 62 6c 65 4e 3e 0a 20 20 20 20 20 7d 20 |riableN>. } | 0009f850 5c 3c 76 61 72 73 3e 3b 0a 0a 5c 3c 6e 61 6d 65 |\<vars>;..\<name| 0009f860 3e 20 69 73 20 61 20 6e 61 6d 65 20 66 6f 72 20 |> is a name for | 0009f870 73 74 72 75 63 74 75 72 65 2e 20 49 74 20 63 61 |structure. It ca| 0009f880 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 65 63 |n be used to dec| 0009f890 6c 61 72 65 20 66 75 72 74 68 65 72 20 73 74 72 |lare further str| 0009f8a0 75 63 74 75 72 65 73 20 6f 66 20 74 68 65 20 73 |uctures of the s| 0009f8b0 61 6d 65 20 74 79 70 65 20 77 69 74 68 6f 75 74 |ame type without| 0009f8c0 20 61 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 69 | actually defini| 0009f8d0 6e 67 20 74 68 65 20 5c 7b 7d 20 62 69 74 20 61 |ng the \{} bit a| 0009f8e0 67 61 69 6e 2e 0a 0a 41 20 73 74 72 75 63 74 75 |gain...A structu| 0009f8f0 72 65 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 |re contains one | 0009f900 6f 72 20 6d 6f 72 65 20 6e 6f 72 6d 61 6c 20 3c |or more normal <| 0009f910 76 61 72 69 61 62 6c 65 73 3d 3e 63 5f 76 61 72 |variables=>c_var| 0009f920 5f 3e 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 |_> described in | 0009f930 74 68 65 20 6e 6f 72 6d 61 6c 20 77 61 79 2e 0a |the normal way..| 0009f940 0a 5c 3c 76 61 72 73 3e 20 61 72 65 20 74 68 65 |.\<vars> are the| 0009f950 20 73 74 72 75 63 74 75 72 65 73 20 63 72 65 61 | structures crea| 0009f960 74 65 64 20 69 6e 20 74 68 65 20 77 61 79 20 61 |ted in the way a| 0009f970 20 6c 69 73 74 20 6f 66 20 76 61 72 69 61 62 6c | list of variabl| 0009f980 65 73 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 74 |es follows the t| 0009f990 79 70 65 20 69 6e 20 61 20 6e 6f 72 6d 61 6c 20 |ype in a normal | 0009f9a0 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 |variable declara| 0009f9b0 74 69 6f 6e 2e 0a 0a 56 61 72 69 61 62 6c 65 73 |tion...Variables| 0009f9c0 20 77 69 74 68 69 6e 20 74 68 65 20 73 74 72 75 | within the stru| 0009f9d0 63 74 75 72 65 20 61 72 65 20 61 63 63 65 73 73 |cture are access| 0009f9e0 65 64 20 75 73 69 6e 67 20 74 68 65 20 66 6f 72 |ed using the for| 0009f9f0 6d 3a 20 7b 2f 7d 73 74 72 75 63 74 75 72 65 2e |m: {/}structure.| 0009fa00 76 61 72 69 61 62 6c 65 7b 2f 7d 2e 20 53 74 72 |variable{/}. Str| 0009fa10 75 63 74 75 72 65 73 20 6d 61 79 20 62 65 20 6e |uctures may be n| 0009fa20 65 73 74 65 64 20 74 6f 20 67 69 76 65 20 7b 2f |ested to give {/| 0009fa30 7d 73 74 72 75 63 74 75 72 65 31 2e 73 74 72 75 |}structure1.stru| 0009fa40 63 74 75 72 65 32 2e 76 61 72 69 61 62 6c 65 7b |cture2.variable{| 0009fa50 2f 7d 20 65 74 63 2e 20 49 66 20 79 6f 75 20 61 |/} etc. If you a| 0009fa60 72 65 20 67 69 76 65 6e 20 61 20 70 6f 69 6e 74 |re given a point| 0009fa70 65 72 20 74 6f 20 61 20 73 74 72 75 63 74 75 72 |er to a structur| 0009fa80 65 20 74 68 69 73 20 66 6f 72 6d 20 62 65 63 6f |e this form beco| 0009fa90 6d 65 73 20 63 6c 75 6d 73 79 20 69 65 20 7b 2f |mes clumsy ie {/| 0009faa0 7d 28 2a 70 6f 69 6e 74 65 72 29 2e 76 61 72 69 |}(*pointer).vari| 0009fab0 61 62 6c 65 7b 2f 7d 2e 20 59 6f 75 20 63 61 6e |able{/}. You can| 0009fac0 20 75 73 65 20 7b 2f 7d 70 6f 69 6e 74 65 72 2d | use {/}pointer-| 0009fad0 3e 76 61 72 69 61 62 6c 65 7b 2f 7d 20 69 6e 73 |>variable{/} ins| 0009fae0 74 65 61 64 2e 00 00 00 44 41 54 41 e1 01 00 00 |tead....DATA....| 0009faf0 73 74 72 75 63 74 20 74 6d 0a 54 68 65 20 74 79 |struct tm.The ty| 0009fb00 70 65 20 7b 2f 7d 73 74 72 75 63 74 20 74 6d 7b |pe {/}struct tm{| 0009fb10 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |/} is defined in| 0009fb20 20 3c 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 5f 68 | <time.h=>time_h| 0009fb30 3e 20 61 73 20 61 20 73 74 72 75 63 74 75 72 65 |> as a structure| 0009fb40 20 63 61 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 | capable of hold| 0009fb50 69 6e 67 20 61 6e 79 20 62 72 6f 6b 65 6e 2d 64 |ing any broken-d| 0009fb60 6f 77 6e 20 74 69 6d 65 2e 20 49 74 20 69 73 20 |own time. It is | 0009fb70 64 65 66 69 6e 65 64 20 61 73 20 66 6f 6c 6c 6f |defined as follo| 0009fb80 77 73 3a 0a 0a 5c 7b 0a 20 20 20 20 69 6e 74 20 |ws:..\{. int | 0009fb90 74 6d 5f 73 65 63 3b 0a 20 20 20 20 69 6e 74 20 |tm_sec;. int | 0009fba0 74 6d 5f 6d 69 6e 3b 0a 20 20 20 20 69 6e 74 20 |tm_min;. int | 0009fbb0 74 6d 5f 68 6f 75 72 3b 0a 20 20 20 20 69 6e 74 |tm_hour;. int| 0009fbc0 20 74 6d 5f 6d 64 61 79 3b 0a 20 20 20 20 69 6e | tm_mday;. in| 0009fbd0 74 20 74 6d 5f 6d 6f 6e 3b 0a 20 20 20 20 69 6e |t tm_mon;. in| 0009fbe0 74 20 74 6d 5f 79 65 61 72 3b 0a 20 20 20 20 69 |t tm_year;. i| 0009fbf0 6e 74 20 74 6d 5f 77 64 61 79 3b 09 2f 2a 20 44 |nt tm_wday;./* D| 0009fc00 61 79 20 6f 66 20 74 68 65 20 77 65 65 6b 20 2a |ay of the week *| 0009fc10 2f 0a 20 20 20 20 69 6e 74 20 74 6d 5f 79 64 61 |/. int tm_yda| 0009fc20 79 3b 09 2f 2a 20 44 61 79 20 6f 66 20 74 68 65 |y;./* Day of the| 0009fc30 20 79 65 61 72 20 2a 2f 0a 20 20 20 20 69 6e 74 | year */. int| 0009fc40 20 74 6d 5f 69 73 64 73 74 3b 09 2f 2a 20 44 53 | tm_isdst;./* DS| 0009fc50 54 20 69 6e 64 69 63 61 74 6f 72 20 2a 2f 0a 7d |T indicator */.}| 0009fc60 0a 0a 54 68 65 20 44 61 79 6c 69 67 68 74 20 53 |..The Daylight S| 0009fc70 61 76 69 6e 67 20 49 6e 64 69 63 61 74 6f 72 20 |aving Indicator | 0009fc80 69 73 20 75 73 65 64 20 74 6f 20 72 65 70 72 65 |is used to repre| 0009fc90 73 65 6e 74 20 6c 6f 63 61 6c 65 20 73 70 65 63 |sent locale spec| 0009fca0 69 66 69 63 20 74 69 6d 65 20 63 68 61 6e 67 65 |ific time change| 0009fcb0 73 20 65 67 20 42 72 69 74 69 73 68 20 53 75 6d |s eg British Sum| 0009fcc0 6d 65 72 20 54 69 6d 65 2e 00 00 00 44 41 54 41 |mer Time....DATA| 0009fcd0 1e 02 00 00 73 74 72 78 66 72 6d 0a 53 79 6e 74 |....strxfrm.Synt| 0009fce0 61 78 3a 09 3c 73 69 7a 65 5f 74 3e 20 73 74 72 |ax:.<size_t> str| 0009fcf0 78 66 72 6d 20 28 63 68 61 72 20 2a 73 74 72 31 |xfrm (char *str1| 0009fd00 2c 20 63 68 61 72 20 2a 73 74 72 32 2c 20 73 69 |, char *str2, si| 0009fd10 7a 65 5f 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a |ze_t n);.Header:| 0009fd20 09 3c 73 74 72 69 6e 67 2e 68 3d 3e 73 74 72 69 |.<string.h=>stri| 0009fd30 6e 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 4c 65 |ng>..Returns:.Le| 0009fd40 6e 67 74 68 20 6f 66 20 74 68 65 20 74 72 61 6e |ngth of the tran| 0009fd50 73 66 6f 72 6d 65 64 20 73 74 72 69 6e 67 2c 20 |sformed string, | 0009fd60 6e 6f 74 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 |not including th| 0009fd70 65 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 6f |e null terminato| 0009fd80 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 0009fd90 6e 73 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 |ns converts the | 0009fda0 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 |string pointed t| 0009fdb0 6f 20 62 79 20 7b 2f 7d 73 74 72 32 7b 2f 7d 20 |o by {/}str2{/} | 0009fdc0 74 6f 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d |to the same form| 0009fdd0 20 61 73 20 3c 73 74 72 63 6f 6c 6c 3e 20 64 6f | as <strcoll> do| 0009fde0 65 73 20 77 68 65 6e 20 63 6f 6d 70 61 72 69 6e |es when comparin| 0009fdf0 67 20 73 74 72 69 6e 67 73 2e 20 55 70 20 74 6f |g strings. Up to| 0009fe00 20 2f 6e 2f 20 63 68 61 72 61 63 74 65 72 73 20 | /n/ characters | 0009fe10 61 72 65 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 |are transformed | 0009fe20 61 6e 64 20 70 6c 61 63 65 64 20 69 6e 20 74 68 |and placed in th| 0009fe30 65 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 64 |e string pointed| 0009fe40 20 74 6f 20 62 79 20 7b 2f 7d 73 74 72 31 7b 2f | to by {/}str1{/| 0009fe50 7d 2e 20 54 68 65 20 75 70 73 68 6f 74 20 6f 66 |}. The upshot of| 0009fe60 20 61 6c 6c 20 74 68 69 73 20 69 73 20 74 68 61 | all this is tha| 0009fe70 74 20 69 66 20 74 77 6f 20 73 74 72 69 6e 67 73 |t if two strings| 0009fe80 20 61 72 65 20 74 72 61 6e 73 66 6f 72 6d 65 64 | are transformed| 0009fe90 20 75 73 69 6e 67 20 74 68 69 73 20 61 6e 64 20 | using this and | 0009fea0 74 68 65 6e 20 63 6f 6d 70 61 72 65 64 2c 20 74 |then compared, t| 0009feb0 68 65 20 72 65 73 75 6c 74 20 69 73 20 74 68 65 |he result is the| 0009fec0 20 73 61 6d 65 20 61 73 20 75 73 69 6e 67 20 3c | same as using <| 0009fed0 73 74 72 63 6f 6c 6c 3e 20 6f 6e 20 74 68 65 6d |strcoll> on them| 0009fee0 20 64 69 72 65 63 74 6c 79 2e 00 00 44 49 52 24 | directly...DIR$| 0009fef0 50 01 00 00 50 01 00 00 3c 00 0a 00 46 fd ff ff |P...P...<...F...| 0009ff00 bc 08 e0 22 94 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0009ff10 63 61 74 5f 00 00 00 00 d0 00 0a 00 46 fd ff ff |cat_........F...| 0009ff20 85 10 e0 22 e4 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0009ff30 63 6d 70 5f 00 00 00 00 b4 01 0a 00 46 fd ff ff |cmp_........F...| 0009ff40 c6 a0 df 22 a0 00 00 00 13 00 00 00 00 00 00 00 |..."............| 0009ff50 63 6f 70 79 5f 00 00 00 54 02 0a 00 46 ff ff ff |copy_...T...F...| 0009ff60 b4 75 d6 25 23 01 00 00 13 00 00 00 00 00 00 00 |.u.%#...........| 0009ff70 44 65 63 6f 64 65 48 65 78 00 00 00 78 03 0a 00 |DecodeHex...x...| 0009ff80 46 fd ff ff 97 f0 d5 25 43 02 00 00 13 00 00 00 |F......%C.......| 0009ff90 00 00 00 00 44 4c 00 00 bc 05 0a 00 46 fd ff ff |....DL......F...| 0009ffa0 09 79 e0 22 f8 00 00 00 13 00 00 00 00 00 00 00 |.y."............| 0009ffb0 66 69 6e 64 5f 00 00 00 b4 06 0a 00 46 ff ff ff |find_.......F...| 0009ffc0 a4 67 d6 25 00 01 00 00 13 00 00 00 00 00 00 00 |.g.%............| 0009ffd0 4d 61 6b 65 41 53 43 49 49 5a 00 00 b4 07 0a 00 |MakeASCIIZ......| 0009ffe0 46 ff ff ff cd 61 d6 25 fc 00 00 00 13 00 00 00 |F....a.%........| 0009fff0 00 00 00 00 4d 61 6b 65 43 52 00 00 b0 08 0a 00 |....MakeCR......| 000a0000 46 ff ff ff f0 6e d6 25 14 01 00 00 13 00 00 00 |F....n.%........| 000a0010 00 00 00 00 4d 61 6b 65 48 65 78 00 c4 09 0a 00 |....MakeHex.....| 000a0020 46 fd ff ff 94 80 e1 22 5e 00 00 00 13 00 00 00 |F......"^.......| 000a0030 00 00 00 00 6d 69 73 63 5f 00 00 00 44 41 54 41 |....misc_...DATA| 000a0040 94 00 00 00 41 70 70 65 6e 64 69 6e 67 20 46 75 |....Appending Fu| 000a0050 6e 63 74 69 6f 6e 73 0a 23 50 61 72 65 6e 74 20 |nctions.#Parent | 000a0060 73 74 72 69 6e 67 0a 54 68 65 73 65 20 66 75 6e |string.These fun| 000a0070 63 74 69 6f 6e 73 20 61 64 64 20 6f 6e 65 20 73 |ctions add one s| 000a0080 74 72 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 |tring to the end| 000a0090 20 6f 66 20 61 6e 6f 74 68 65 72 2e 0a 0a 23 69 | of another...#i| 000a00a0 6e 64 65 6e 74 20 36 0a 23 54 61 62 6c 65 20 31 |ndent 6.#Table 1| 000a00b0 20 31 35 0a 3c 73 74 72 63 61 74 3e 0a 3c 73 74 | 15.<strcat>.<st| 000a00c0 72 6e 63 61 74 3e 0a 23 45 6e 64 54 61 62 6c 65 |rncat>.#EndTable| 000a00d0 44 41 54 41 e4 00 00 00 43 6f 6d 70 61 72 69 73 |DATA....Comparis| 000a00e0 6f 6e 20 46 75 6e 63 74 69 6f 6e 73 0a 23 50 61 |on Functions.#Pa| 000a00f0 72 65 6e 74 20 73 74 72 69 6e 67 0a 54 68 65 73 |rent string.Thes| 000a0100 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 6f 6d 70 |e functions comp| 000a0110 61 72 65 20 74 68 65 20 74 77 6f 20 73 74 72 69 |are the two stri| 000a0120 6e 67 73 20 62 79 20 41 53 43 49 49 20 76 61 6c |ngs by ASCII val| 000a0130 75 65 73 20 61 6e 64 20 69 6e 64 69 63 61 74 65 |ues and indicate| 000a0140 20 74 68 65 20 65 71 75 61 6c 69 74 79 20 6f 72 | the equality or| 000a0150 20 69 6e 65 71 75 61 6c 69 74 79 20 6f 66 20 74 | inequality of t| 000a0160 68 65 20 74 77 6f 20 73 74 72 69 6e 67 73 2e 0a |he two strings..| 000a0170 0a 23 54 61 62 6c 65 20 32 0a 3c 6d 65 6d 63 6d |.#Table 2.<memcm| 000a0180 70 3e 0a 3c 73 74 72 63 6d 70 3e 0a 3c 73 74 72 |p>.<strcmp>.<str| 000a0190 63 6f 6c 6c 3e 0a 3c 73 74 72 6e 63 6d 70 3e 0a |coll>.<strncmp>.| 000a01a0 3c 73 74 72 78 66 72 6d 3e 0a 0a 23 45 6e 64 54 |<strxfrm>..#EndT| 000a01b0 61 62 6c 65 44 41 54 41 a0 00 00 00 43 6f 70 79 |ableDATA....Copy| 000a01c0 69 6e 67 20 46 75 6e 63 74 69 6f 6e 73 0a 23 50 |ing Functions.#P| 000a01d0 61 72 65 6e 74 20 73 74 72 69 6e 67 0a 54 68 65 |arent string.The| 000a01e0 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 63 6f 70 |se functions cop| 000a01f0 79 20 63 68 61 72 61 63 74 65 72 73 20 66 72 6f |y characters fro| 000a0200 6d 20 6f 6e 65 20 61 72 72 61 79 20 74 6f 20 61 |m one array to a| 000a0210 6e 6f 74 68 65 72 2e 0a 0a 23 54 61 62 6c 65 20 |nother...#Table | 000a0220 32 20 31 36 0a 3c 6d 65 6d 63 70 79 3e 0a 3c 6d |2 16.<memcpy>.<m| 000a0230 65 6d 6d 6f 76 65 3e 0a 3c 73 74 72 63 70 79 3e |emmove>.<strcpy>| 000a0240 0a 3c 73 74 72 6e 63 70 79 3e 0a 23 45 6e 64 54 |.<strncpy>.#EndT| 000a0250 61 62 6c 65 44 41 54 41 23 01 00 00 53 74 72 5f |ableDATA#...Str_| 000a0260 44 65 63 6f 64 65 48 65 78 0a 53 79 6e 74 61 78 |DecodeHex.Syntax| 000a0270 3a 09 69 6e 74 20 53 74 72 5f 44 65 63 6f 64 65 |:.int Str_Decode| 000a0280 48 65 78 20 28 63 68 61 72 20 64 69 67 69 74 29 |Hex (char digit)| 000a0290 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000a02a0 69 62 3a 53 74 72 2e 68 3d 3e 53 74 72 5f 44 4c |ib:Str.h=>Str_DL| 000a02b0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 56 61 6c 75 |>..Returns:.Valu| 000a02c0 65 20 6f 66 20 74 68 65 20 68 65 78 61 64 65 63 |e of the hexadec| 000a02d0 69 6d 61 6c 20 63 68 61 72 61 63 74 65 72 2e 0a |imal character..| 000a02e0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 000a02f0 61 6b 65 73 20 61 20 63 68 61 72 61 63 74 65 72 |akes a character| 000a0300 20 2f 64 69 67 69 74 2f 20 77 68 69 63 68 20 69 | /digit/ which i| 000a0310 73 20 61 20 68 65 78 61 64 65 63 69 6d 61 6c 20 |s a hexadecimal | 000a0320 64 69 67 69 74 20 28 30 2d 46 29 2e 20 49 74 20 |digit (0-F). It | 000a0330 72 65 74 75 72 6e 73 20 74 68 65 20 76 61 6c 75 |returns the valu| 000a0340 65 20 6f 66 20 74 68 69 73 20 28 30 2d 31 35 29 |e of this (0-15)| 000a0350 2e 20 2d 31 20 69 73 20 72 65 74 75 72 6e 65 64 |. -1 is returned| 000a0360 20 69 66 20 2f 64 69 67 69 74 2f 20 69 73 20 69 | if /digit/ is i| 000a0370 6e 76 61 6c 69 64 2e 00 44 41 54 41 43 02 00 00 |nvalid..DATAC...| 000a0380 44 65 73 6b 4c 69 62 3a 53 74 72 2e 68 0a 56 65 |DeskLib:Str.h.Ve| 000a0390 72 73 69 6f 6e 3a 20 31 2e 31 32 20 28 31 37 20 |rsion: 1.12 (17 | 000a03a0 4d 61 79 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a |May 1993).#line.| 000a03b0 54 68 69 73 20 68 65 61 64 65 72 20 64 65 63 6c |This header decl| 000a03c0 61 72 65 73 20 75 73 65 66 75 6c 20 73 74 72 69 |ares useful stri| 000a03d0 6e 67 20 66 75 6e 63 74 69 6f 6e 73 2e 20 49 74 |ng functions. It| 000a03e0 20 69 73 20 61 20 72 65 70 6c 61 63 65 6d 65 6e | is a replacemen| 000a03f0 74 20 66 6f 72 20 3c 44 65 73 6b 4c 69 62 3a 53 |t for <DeskLib:S| 000a0400 74 72 69 6e 67 43 52 2e 68 3d 3e 53 74 72 69 6e |tringCR.h=>Strin| 000a0410 67 43 52 3e 2c 20 77 68 69 63 68 20 69 73 20 6e |gCR>, which is n| 000a0420 6f 77 20 6f 62 73 6f 6c 65 74 65 2e 0a 0a 23 69 |ow obsolete...#i| 000a0430 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 63 |ndent 4.#Table c| 000a0440 6f 6c 75 6d 6e 73 20 33 0a 3c 73 74 72 6c 65 6e |olumns 3.<strlen| 000a0450 63 72 3e 0a 3c 73 74 72 63 6d 70 63 72 3e 0a 3c |cr>.<strcmpcr>.<| 000a0460 73 74 72 69 63 6d 70 3e 0a 3c 73 74 72 69 63 6d |stricmp>.<stricm| 000a0470 70 63 72 3e 0a 3c 73 74 72 6e 69 63 6d 70 3e 0a |pcr>.<strnicmp>.| 000a0480 3c 73 74 72 6e 69 63 6d 70 63 72 3e 0a 3c 73 74 |<strnicmpcr>.<st| 000a0490 72 63 61 74 63 72 3e 0a 3c 73 74 72 63 70 79 63 |rcatcr>.<strcpyc| 000a04a0 72 3e 0a 3c 73 74 72 6e 63 70 79 63 72 3e 0a 3c |r>.<strncpycr>.<| 000a04b0 4c 65 61 66 4e 61 6d 65 3e 0a 3c 73 74 72 64 75 |LeafName>.<strdu| 000a04c0 70 3e 0a 3c 53 74 72 5f 4d 61 6b 65 43 52 3e 0a |p>.<Str_MakeCR>.| 000a04d0 3c 53 74 72 5f 4d 61 6b 65 41 53 43 49 49 5a 3e |<Str_MakeASCIIZ>| 000a04e0 0a 3c 53 74 72 5f 4d 61 6b 65 48 65 78 3e 0a 3c |.<Str_MakeHex>.<| 000a04f0 53 74 72 5f 44 65 63 6f 64 65 48 65 78 3e 0a 23 |Str_DecodeHex>.#| 000a0500 45 6e 64 54 61 62 6c 65 0a 23 69 6e 64 65 6e 74 |EndTable.#indent| 000a0510 0a 0a 54 68 65 20 22 63 72 22 20 66 75 6e 63 74 |..The "cr" funct| 000a0520 69 6f 6e 73 20 61 72 65 20 69 64 65 6e 74 69 63 |ions are identic| 000a0530 61 6c 20 74 6f 20 74 68 65 69 72 20 41 4e 53 49 |al to their ANSI| 000a0540 20 65 71 75 69 76 61 6c 65 6e 74 73 2c 20 62 75 | equivalents, bu| 000a0550 74 20 61 63 63 65 70 74 20 61 6e 79 20 74 65 72 |t accept any ter| 000a0560 6d 69 6e 61 74 6f 72 20 5c 3c 20 33 32 2c 20 6e |minator \< 32, n| 000a0570 6f 74 20 6a 75 73 74 20 6e 75 6c 6c 20 74 65 72 |ot just null ter| 000a0580 6d 69 6e 61 74 6f 72 73 2e 20 54 68 65 20 22 69 |minators. The "i| 000a0590 22 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 |" functions are | 000a05a0 63 61 73 65 20 69 6e 73 65 6e 73 69 74 69 76 65 |case insensitive| 000a05b0 20 66 75 6e 63 74 69 6f 6e 73 2e 00 44 41 54 41 | functions..DATA| 000a05c0 f8 00 00 00 53 65 61 72 63 68 69 6e 67 20 46 75 |....Searching Fu| 000a05d0 6e 63 74 69 6f 6e 73 0a 23 50 61 72 65 6e 74 20 |nctions.#Parent | 000a05e0 73 74 72 69 6e 67 0a 54 68 65 20 66 6f 6c 6c 6f |string.The follo| 000a05f0 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 73 |wing functions s| 000a0600 65 61 72 63 68 20 66 6f 72 20 65 69 74 68 65 72 |earch for either| 000a0610 20 69 6e 64 69 76 69 64 75 61 6c 20 63 68 61 72 | individual char| 000a0620 61 63 74 65 72 73 20 6f 72 20 73 74 72 69 6e 67 |acters or string| 000a0630 73 20 77 69 74 68 69 6e 20 6f 74 68 65 72 20 73 |s within other s| 000a0640 74 72 69 6e 67 73 2e 0a 0a 23 69 6e 64 65 6e 74 |trings...#indent| 000a0650 20 34 0a 23 54 61 62 6c 65 20 33 20 31 36 0a 3c | 4.#Table 3 16.<| 000a0660 6d 65 6d 63 68 72 3e 0a 3c 73 74 72 63 68 72 3e |memchr>.<strchr>| 000a0670 0a 3c 73 74 72 63 73 70 6e 3e 0a 3c 73 74 72 70 |.<strcspn>.<strp| 000a0680 62 72 6b 3e 0a 3c 73 74 72 72 63 68 72 3e 0a 3c |brk>.<strrchr>.<| 000a0690 73 74 72 73 70 6e 3e 0a 3c 73 74 72 73 74 72 3e |strspn>.<strstr>| 000a06a0 0a 3c 73 74 72 74 6f 6b 3e 0a 0a 23 45 6e 64 54 |.<strtok>..#EndT| 000a06b0 61 62 6c 65 44 41 54 41 00 01 00 00 53 74 72 5f |ableDATA....Str_| 000a06c0 4d 61 6b 65 41 53 43 49 49 5a 0a 53 79 6e 74 61 |MakeASCIIZ.Synta| 000a06d0 78 3a 09 76 6f 69 64 20 53 74 72 5f 4d 61 6b 65 |x:.void Str_Make| 000a06e0 41 53 43 49 49 5a 20 28 63 68 61 72 20 2a 73 2c |ASCIIZ (char *s,| 000a06f0 20 69 6e 74 20 6d 61 78 5f 6c 65 6e 29 3b 0a 48 | int max_len);.H| 000a0700 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000a0710 53 74 72 2e 68 3d 3e 53 74 72 5f 44 4c 3e 0a 0a |Str.h=>Str_DL>..| 000a0720 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f |This function co| 000a0730 6e 76 65 72 74 73 20 74 68 65 20 63 61 72 72 69 |nverts the carri| 000a0740 61 67 65 20 72 65 74 75 72 6e 2d 74 65 72 6d 69 |age return-termi| 000a0750 6e 61 74 65 64 20 73 74 72 69 6e 67 20 70 6f 69 |nated string poi| 000a0760 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f 20 69 |nted to by /s/ i| 000a0770 6e 74 6f 20 61 20 7a 65 72 6f 2d 74 65 72 6d 69 |nto a zero-termi| 000a0780 6e 61 74 65 64 20 73 74 72 69 6e 67 2e 20 3c 53 |nated string. <S| 000a0790 74 72 5f 4d 61 6b 65 43 52 3e 28 29 20 63 6f 6e |tr_MakeCR>() con| 000a07a0 76 65 72 74 73 20 74 68 65 20 6f 74 68 65 72 20 |verts the other | 000a07b0 77 61 79 2e 44 41 54 41 fc 00 00 00 53 74 72 5f |way.DATA....Str_| 000a07c0 4d 61 6b 65 43 52 0a 53 79 6e 74 61 78 3a 09 76 |MakeCR.Syntax:.v| 000a07d0 6f 69 64 20 53 74 72 5f 4d 61 6b 65 43 52 20 28 |oid Str_MakeCR (| 000a07e0 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6d 61 78 |char *s, int max| 000a07f0 5f 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c |_len);.Header:.<| 000a0800 44 65 73 6b 4c 69 62 3a 53 74 72 2e 68 3d 3e 53 |DeskLib:Str.h=>S| 000a0810 74 72 5f 44 4c 3e 0a 0a 54 68 69 73 20 66 75 6e |tr_DL>..This fun| 000a0820 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 73 20 74 |ction converts t| 000a0830 68 65 20 7a 65 72 6f 2d 74 65 72 6d 69 6e 61 74 |he zero-terminat| 000a0840 65 64 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 65 |ed string pointe| 000a0850 64 20 74 6f 20 62 79 20 2f 73 2f 20 69 6e 74 6f |d to by /s/ into| 000a0860 20 61 20 63 61 72 72 69 61 67 65 20 72 65 74 75 | a carriage retu| 000a0870 72 6e 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 74 |rn-terminated st| 000a0880 72 69 6e 67 2e 20 3c 53 74 72 5f 4d 61 6b 65 41 |ring. <Str_MakeA| 000a0890 53 43 49 49 5a 3e 28 29 20 63 6f 6e 76 65 72 74 |SCIIZ>() convert| 000a08a0 73 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 2e |s the other way.| 000a08b0 44 41 54 41 14 01 00 00 53 74 72 5f 4d 61 6b 65 |DATA....Str_Make| 000a08c0 48 65 78 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 |Hex.Syntax:.char| 000a08d0 20 53 74 72 5f 4d 61 6b 65 48 65 78 20 28 69 6e | Str_MakeHex (in| 000a08e0 74 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |t n);.Header:.<D| 000a08f0 65 73 6b 4c 69 62 3a 53 74 72 2e 68 3d 3e 53 74 |eskLib:Str.h=>St| 000a0900 72 5f 44 4c 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |r_DL>..Returns:.| 000a0910 43 68 61 72 61 63 74 65 72 20 72 65 70 72 65 73 |Character repres| 000a0920 65 6e 74 69 6e 67 20 27 6e 27 20 69 6e 20 68 65 |enting 'n' in he| 000a0930 78 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |x...This functio| 000a0940 6e 20 74 61 6b 65 73 20 61 20 6e 75 6d 62 65 72 |n takes a number| 000a0950 20 2f 6e 2f 20 69 6e 20 74 68 65 20 72 61 6e 67 | /n/ in the rang| 000a0960 65 20 30 2d 31 35 20 61 6e 64 20 72 65 74 75 72 |e 0-15 and retur| 000a0970 6e 73 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 |ns the appropria| 000a0980 74 65 20 68 65 78 61 64 65 63 69 6d 61 6c 20 64 |te hexadecimal d| 000a0990 69 67 69 74 20 28 30 2d 46 29 2e 20 49 66 20 2f |igit (0-F). If /| 000a09a0 6e 2f 20 69 73 20 6f 75 74 20 6f 66 20 72 61 6e |n/ is out of ran| 000a09b0 67 65 2c 20 27 3f 27 20 69 73 20 72 65 74 75 72 |ge, '?' is retur| 000a09c0 6e 65 64 2e 44 41 54 41 5e 00 00 00 4d 69 73 63 |ned.DATA^...Misc| 000a09d0 65 6c 6c 61 6e 65 6f 75 73 20 46 75 6e 63 74 69 |ellaneous Functi| 000a09e0 6f 6e 73 0a 23 50 61 72 65 6e 74 20 73 74 72 69 |ons.#Parent stri| 000a09f0 6e 67 0a 23 54 61 62 6c 65 20 31 0a 3c 6d 65 6d |ng.#Table 1.<mem| 000a0a00 73 65 74 3e 0a 3c 73 74 72 65 72 72 6f 72 3e 0a |set>.<strerror>.| 000a0a10 3c 73 74 72 6c 65 6e 3e 0a 23 45 6e 64 54 61 62 |<strlen>.#EndTab| 000a0a20 6c 65 00 00 44 41 54 41 7a 03 00 00 44 65 73 6b |le..DATAz...Desk| 000a0a30 4c 69 62 3a 53 57 49 2e 68 0a 56 65 72 73 69 6f |Lib:SWI.h.Versio| 000a0a40 6e 3a 20 31 2e 30 32 20 28 33 30 20 4d 61 79 20 |n: 1.02 (30 May | 000a0a50 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 |1994).#line.This| 000a0a60 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 000a0a70 20 6a 75 73 74 20 6f 6e 65 20 66 75 6e 63 74 69 | just one functi| 000a0a80 6f 6e 3a 20 53 57 49 2e 20 49 74 20 61 6c 73 6f |on: SWI. It also| 000a0a90 20 64 65 63 6c 61 72 65 73 20 6c 6f 74 73 20 6f | declares lots o| 000a0aa0 66 20 3c 6d 61 63 72 6f 73 3d 3e 53 57 49 5f 6d |f <macros=>SWI_m| 000a0ab0 61 63 72 6f 73 5f 3e 2e 0a 23 6c 69 6e 65 0a 53 |acros_>..#line.S| 000a0ac0 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000a0ad0 3e 20 2a 53 57 49 20 28 69 6e 74 20 6e 75 6d 72 |> *SWI (int numr| 000a0ae0 65 67 73 69 6e 2c 20 69 6e 74 20 6e 75 6d 72 65 |egsin, int numre| 000a0af0 67 73 6f 75 74 2c 20 69 6e 74 20 6e 2c 20 2e 2e |gsout, int n, ..| 000a0b00 2e 20 29 3b 0a 48 65 61 64 65 72 3a 09 44 65 73 |. );.Header:.Des| 000a0b10 6b 4c 69 62 3a 53 57 49 2e 68 0a 0a 52 65 74 75 |kLib:SWI.h..Retu| 000a0b20 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000a0b30 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000a0b40 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000a0b50 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 61 |function calls a| 000a0b60 20 3c 53 57 49 3d 3e 53 57 49 3a 21 52 6f 6f 74 | <SWI=>SWI:!Root| 000a0b70 3e 2c 20 77 68 6f 73 65 20 6e 75 6d 62 65 72 20 |>, whose number | 000a0b80 69 73 20 67 69 76 65 6e 20 69 6e 20 2f 6e 2f 2e |is given in /n/.| 000a0b90 20 54 68 65 20 76 61 72 69 61 62 6c 65 20 61 72 | The variable ar| 000a0ba0 67 75 6d 65 6e 74 20 6c 69 73 74 20 28 2e 2e 2e |gument list (...| 000a0bb0 29 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 72 |) contains the r| 000a0bc0 65 67 69 73 74 65 72 20 63 6f 6e 74 65 6e 74 73 |egister contents| 000a0bd0 2e 20 46 69 72 73 74 2c 20 2f 6e 75 6d 72 65 67 |. First, /numreg| 000a0be0 73 69 6e 2f 20 76 61 6c 75 65 73 20 74 6f 20 62 |sin/ values to b| 000a0bf0 65 20 70 6c 61 63 65 64 20 69 6e 74 6f 20 74 68 |e placed into th| 000a0c00 65 20 72 65 67 69 73 74 65 72 73 20 62 65 66 6f |e registers befo| 000a0c10 72 65 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 53 |re calling the S| 000a0c20 57 49 2e 20 54 68 65 6e 2c 20 2f 6e 75 6d 72 65 |WI. Then, /numre| 000a0c30 67 73 6f 75 74 2f 20 70 6f 69 6e 74 65 72 73 20 |gsout/ pointers | 000a0c40 74 6f 20 76 61 72 69 61 62 6c 65 73 20 75 73 65 |to variables use| 000a0c50 64 20 66 6f 72 20 68 6f 6c 64 69 6e 67 20 74 68 |d for holding th| 000a0c60 65 20 72 65 67 69 73 74 65 72 73 20 6f 6e 20 65 |e registers on e| 000a0c70 78 69 74 20 66 72 6f 6d 20 74 68 65 20 53 57 49 |xit from the SWI| 000a0c80 2e 20 41 20 72 65 67 69 73 74 65 72 20 63 61 6e |. A register can| 000a0c90 20 62 65 20 69 67 6e 6f 72 65 64 20 62 79 20 75 | be ignored by u| 000a0ca0 73 69 6e 67 20 3c 4e 55 4c 4c 3e 2e 0a 0a 45 78 |sing <NULL>...Ex| 000a0cb0 61 6d 70 6c 65 73 3a 0a 7b 77 72 61 70 20 6f 66 |amples:.{wrap of| 000a0cc0 66 7d 0a 7b 66 43 6f 64 65 7d 53 57 49 28 30 2c |f}.{fCode}SWI(0,| 000a0cd0 30 2c 30 78 34 30 36 43 30 29 3b 20 2f 2a 20 43 |0,0x406C0); /* C| 000a0ce0 61 6c 6c 73 20 3c 48 6f 75 72 67 6c 61 73 73 5f |alls <Hourglass_| 000a0cf0 4f 6e 3d 3e 53 57 49 3a 48 6f 75 72 67 6c 61 73 |On=>SWI:Hourglas| 000a0d00 73 5f 4f 6e 3e 20 2a 2f 7b 66 7d 0a 0a 7b 66 43 |s_On> */{f}..{fC| 000a0d10 6f 64 65 7d 53 57 49 28 32 2c 34 2c 30 78 33 32 |ode}SWI(2,4,0x32| 000a0d20 2c 78 2c 79 2c 4e 55 4c 4c 2c 4e 55 4c 4c 2c 26 |,x,y,NULL,NULL,&| 000a0d30 63 6f 6c 6f 75 72 2c 26 74 69 6e 74 29 3b 0a 2f |colour,&tint);./| 000a0d40 2a 20 43 61 6c 6c 73 20 3c 4f 53 5f 52 65 61 64 |* Calls <OS_Read| 000a0d50 50 6f 69 6e 74 3d 3e 53 57 49 3a 4f 53 5f 52 65 |Point=>SWI:OS_Re| 000a0d60 61 64 50 6f 69 6e 74 3e 20 74 6f 20 72 65 61 64 |adPoint> to read| 000a0d70 20 70 6f 69 6e 74 20 28 78 2c 79 29 2c 0a 20 20 | point (x,y),. | 000a0d80 20 72 65 74 75 72 6e 73 20 63 6f 6c 6f 75 72 20 | returns colour | 000a0d90 61 6e 64 20 74 69 6e 74 20 2a 2f 7b 66 7d 00 00 |and tint */{f}..| 000a0da0 44 41 54 41 4a 04 00 00 73 77 69 73 2e 68 0a 23 |DATAJ...swis.h.#| 000a0db0 50 61 72 65 6e 74 20 72 6f 5f 65 61 73 79 63 5f |Parent ro_easyc_| 000a0dc0 0a 54 68 65 20 5c 3c 73 77 69 73 2e 68 5c 3e 20 |.The \<swis.h\> | 000a0dd0 68 65 61 64 65 72 20 64 65 66 69 6e 65 73 20 34 |header defines 4| 000a0de0 36 39 20 6d 61 63 72 6f 73 20 66 6f 72 20 63 61 |69 macros for ca| 000a0df0 6c 6c 69 6e 67 20 53 57 49 20 72 6f 75 74 69 6e |lling SWI routin| 000a0e00 65 73 2e 20 54 68 65 20 69 64 65 61 20 69 73 20 |es. The idea is | 000a0e10 74 68 61 74 20 79 6f 75 20 75 73 65 20 6f 6e 65 |that you use one| 000a0e20 20 6f 66 20 74 68 65 73 65 20 61 73 20 61 6e 20 | of these as an | 000a0e30 61 72 67 75 6d 65 6e 74 20 66 6f 72 20 65 69 74 |argument for eit| 000a0e40 68 65 72 20 74 68 65 20 3c 5f 6b 65 72 6e 65 6c |her the <_kernel| 000a0e50 5f 73 77 69 3e 20 6f 72 20 3c 6f 73 5f 73 77 69 |_swi> or <os_swi| 000a0e60 3e 20 66 75 6e 63 74 69 6f 6e 2e 20 45 61 63 68 |> function. Each| 000a0e70 20 6d 61 63 72 6f 20 69 73 20 74 68 65 20 6e 61 | macro is the na| 000a0e80 6d 65 20 6f 66 20 61 6e 20 53 57 49 20 63 61 6c |me of an SWI cal| 000a0e90 6c 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 |l and represents| 000a0ea0 20 74 68 65 20 53 57 49 20 6e 75 6d 62 65 72 2e | the SWI number.| 000a0eb0 0a 0a 23 49 6e 64 65 6e 74 20 39 0a 23 54 61 62 |..#Indent 9.#Tab| 000a0ec0 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 4f 53 |le columns 3.<OS| 000a0ed0 3d 3e 53 57 49 3a 4f 53 5f 3e 0a 3c 49 49 43 3d |=>SWI:OS_>.<IIC=| 000a0ee0 3e 53 57 49 3a 49 49 43 5f 3e 0a 3c 46 6f 6e 74 |>SWI:IIC_>.<Font| 000a0ef0 3d 3e 53 57 49 3a 46 6f 6e 74 5f 3e 0a 3c 57 69 |=>SWI:Font_>.<Wi| 000a0f00 6d 70 3d 3e 53 57 49 3a 57 69 6d 70 5f 3e 0a 3c |mp=>SWI:Wimp_>.<| 000a0f10 53 6f 75 6e 64 3d 3e 53 57 49 3a 53 6f 75 6e 64 |Sound=>SWI:Sound| 000a0f20 5f 3e 0a 3c 41 44 46 53 3d 3e 53 57 49 3a 41 44 |_>.<ADFS=>SWI:AD| 000a0f30 46 53 5f 3e 0a 3c 50 6f 64 75 6c 65 3d 3e 53 57 |FS_>.<Podule=>SW| 000a0f40 49 3a 50 6f 64 75 6c 65 5f 3e 0a 3c 44 65 62 75 |I:Podule_>.<Debu| 000a0f50 67 67 65 72 3d 3e 53 57 49 3a 44 65 62 75 67 67 |gger=>SWI:Debugg| 000a0f60 65 72 5f 3e 0a 3c 46 50 45 6d 75 6c 61 74 6f 72 |er_>.<FPEmulator| 000a0f70 20 3d 3e 53 57 49 3a 46 50 45 6d 75 6c 61 74 6f | =>SWI:FPEmulato| 000a0f80 72 5f 3e 0a 3c 46 69 6c 65 43 6f 72 65 3d 3e 53 |r_>.<FileCore=>S| 000a0f90 57 49 3a 46 69 6c 65 43 6f 72 65 5f 3e 0a 3c 53 |WI:FileCore_>.<S| 000a0fa0 68 65 6c 6c 3d 3e 53 57 49 3a 53 68 65 6c 6c 5f |hell=>SWI:Shell_| 000a0fb0 3e 0a 3c 48 6f 75 72 67 6c 61 73 73 3d 3e 53 57 |>.<Hourglass=>SW| 000a0fc0 49 3a 48 6f 75 72 67 6c 61 73 73 5f 3e 0a 3c 44 |I:Hourglass_>.<D| 000a0fd0 72 61 77 3d 3e 53 57 49 3a 44 72 61 77 5f 3e 0a |raw=>SWI:Draw_>.| 000a0fe0 3c 43 6f 6c 6f 75 72 54 72 61 6e 73 3d 3e 53 57 |<ColourTrans=>SW| 000a0ff0 49 3a 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 3e 0a |I:ColourTrans_>.| 000a1000 3c 53 75 70 65 72 3d 3e 53 57 49 3a 53 75 70 65 |<Super=>SWI:Supe| 000a1010 72 5f 3e 0a 3c 46 69 6c 65 72 41 63 74 69 6f 6e |r_>.<FilerAction| 000a1020 3d 3e 46 69 6c 65 72 41 63 74 69 6f 6e 5f 3e 0a |=>FilerAction_>.| 000a1030 3c 4d 65 73 73 61 67 65 54 72 61 6e 73 20 3d 3e |<MessageTrans =>| 000a1040 53 57 49 3a 4d 65 73 73 61 67 65 54 72 61 6e 73 |SWI:MessageTrans| 000a1050 5f 3e 0a 3c 50 44 75 6d 70 65 72 3d 3e 53 57 49 |_>.<PDumper=>SWI| 000a1060 3a 50 44 75 6d 70 65 72 5f 3e 0a 3c 52 65 73 6f |:PDumper_>.<Reso| 000a1070 75 72 63 65 46 53 3d 3e 53 57 49 3a 52 65 73 6f |urceFS=>SWI:Reso| 000a1080 75 72 63 65 46 53 5f 3e 0a 3c 44 72 61 67 41 53 |urceFS_>.<DragAS| 000a1090 70 72 69 74 65 3d 3e 53 57 49 3a 44 72 61 67 41 |prite=>SWI:DragA| 000a10a0 53 70 72 69 74 65 5f 3e 0a 3c 46 69 6c 74 65 72 |Sprite_>.<Filter| 000a10b0 3d 3e 53 57 49 3a 46 69 6c 74 65 72 5f 3e 0a 3c |=>SWI:Filter_>.<| 000a10c0 54 61 73 6b 4d 61 6e 61 67 65 72 3d 3e 53 57 49 |TaskManager=>SWI| 000a10d0 3a 54 61 73 6b 4d 61 6e 61 67 65 72 5f 3e 0a 3c |:TaskManager_>.<| 000a10e0 53 71 75 61 73 68 3d 3e 53 57 49 3a 53 71 75 61 |Squash=>SWI:Squa| 000a10f0 73 68 5f 3e 0a 3c 44 65 76 69 63 65 46 53 3d 3e |sh_>.<DeviceFS=>| 000a1100 53 57 49 3a 44 65 76 69 63 65 46 53 5f 3e 0a 3c |SWI:DeviceFS_>.<| 000a1110 42 75 66 66 65 72 3d 3e 53 57 49 3a 42 75 66 66 |Buffer=>SWI:Buff| 000a1120 65 72 5f 3e 0a 3c 42 41 53 49 43 54 72 61 6e 73 |er_>.<BASICTrans| 000a1130 3d 3e 53 57 49 3a 42 61 73 69 63 54 72 61 6e 73 |=>SWI:BasicTrans| 000a1140 5f 3e 0a 3c 50 61 72 61 6c 6c 65 6c 3d 3e 53 57 |_>.<Parallel=>SW| 000a1150 49 3a 50 61 72 61 6c 6c 65 6c 5f 3e 0a 3c 54 65 |I:Parallel_>.<Te| 000a1160 72 72 69 74 6f 72 79 3d 3e 53 57 49 3a 54 65 72 |rritory=>SWI:Ter| 000a1170 72 69 74 6f 72 79 5f 3e 0a 3c 53 63 72 65 65 6e |ritory_>.<Screen| 000a1180 42 6c 61 6e 6b 65 72 3d 3e 53 57 49 3a 53 63 72 |Blanker=>SWI:Scr| 000a1190 65 65 6e 42 6c 61 6e 6b 65 72 5f 3e 0a 3c 54 61 |eenBlanker_>.<Ta| 000a11a0 73 6b 57 69 6e 64 6f 77 3d 3e 53 57 49 3a 54 61 |skWindow=>SWI:Ta| 000a11b0 73 6b 57 69 6e 64 6f 77 5f 3e 0a 3c 46 72 65 65 |skWindow_>.<Free| 000a11c0 3d 3e 53 57 49 3a 46 72 65 65 5f 3e 0a 3c 44 4f |=>SWI:Free_>.<DO| 000a11d0 53 46 53 3d 3e 53 57 49 3a 44 4f 53 46 53 5f 3e |SFS=>SWI:DOSFS_>| 000a11e0 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 49 52 24 |.#EndTable..DIR$| 000a11f0 28 00 00 00 28 00 00 00 14 12 0a 00 46 fd ff ff |(...(.......F...| 000a1200 29 42 58 26 ab 00 00 00 13 00 00 00 00 00 00 00 |)BX&............| 000a1210 54 4c 00 00 44 41 54 41 ab 00 00 00 54 69 6d 73 |TL..DATA....Tims| 000a1220 4c 69 62 3a 53 57 49 73 2e 68 0a 54 68 69 73 20 |Lib:SWIs.h.This | 000a1230 68 65 61 64 65 72 20 69 73 20 61 6e 20 61 6c 74 |header is an alt| 000a1240 65 72 6e 61 74 69 76 65 20 66 6f 72 20 44 65 73 |ernative for Des| 000a1250 6b 74 6f 70 20 43 27 73 20 3c 73 77 69 73 2e 68 |ktop C's <swis.h| 000a1260 3d 3e 73 77 69 73 3e 2c 20 77 69 74 68 20 74 68 |=>swis>, with th| 000a1270 65 20 57 69 6d 70 2c 20 46 6f 6e 74 20 61 6e 64 |e Wimp, Font and| 000a1280 20 48 6f 75 72 67 6c 61 73 73 20 53 57 49 73 20 | Hourglass SWIs | 000a1290 72 65 6d 6f 76 65 64 20 66 6f 72 20 63 6f 6d 70 |removed for comp| 000a12a0 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 44 |atibility with D| 000a12b0 65 73 6b 4c 69 62 2f 54 69 6d 73 4c 69 62 2e 00 |eskLib/TimsLib..| 000a12c0 44 41 54 41 12 03 00 00 73 77 69 74 63 68 0a 54 |DATA....switch.T| 000a12d0 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 6c 6c 6f |his command allo| 000a12e0 77 73 20 79 6f 75 20 74 6f 20 73 65 6c 65 63 74 |ws you to select| 000a12f0 20 6f 6e 65 20 61 63 74 69 6f 6e 20 66 72 6f 6d | one action from| 000a1300 20 73 65 76 65 72 61 6c 20 6f 6e 20 74 68 65 20 | several on the | 000a1310 62 61 73 69 73 20 6f 66 20 61 20 76 61 6c 75 65 |basis of a value| 000a1320 2e 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 |. It is equivale| 000a1330 6e 74 20 74 6f 20 42 41 53 49 43 27 73 20 3c 43 |nt to BASIC's <C| 000a1340 41 53 45 3d 3e 42 61 73 69 63 3a 43 41 53 45 3e |ASE=>Basic:CASE>| 000a1350 2e 20 54 68 65 20 66 6f 72 6d 20 69 73 3a 0a 0a |. The form is:..| 000a1360 23 66 43 6f 64 65 0a 20 20 73 77 69 74 63 68 20 |#fCode. switch | 000a1370 28 5c 3c 65 78 70 72 65 73 73 69 6f 6e 3e 29 0a |(\<expression>).| 000a1380 20 20 5c 7b 0a 20 20 63 61 73 65 20 5c 3c 63 6f | \{. case \<co| 000a1390 6e 73 74 61 6e 74 31 3e 3a 20 5c 3c 73 74 61 74 |nstant1>: \<stat| 000a13a0 65 6d 65 6e 74 73 31 3e 3b 0a 20 20 63 61 73 65 |ements1>;. case| 000a13b0 20 5c 3c 63 6f 6e 73 74 61 6e 74 32 3e 3a 20 5c | \<constant2>: \| 000a13c0 3c 73 74 61 74 65 6d 65 6e 74 73 32 3e 3b 0a 20 |<statements2>;. | 000a13d0 20 2e 2e 2e 0a 20 20 64 65 66 61 75 6c 74 3a 20 | .... default: | 000a13e0 5c 3c 73 74 61 74 65 6d 65 6e 74 73 3e 0a 20 20 |\<statements>. | 000a13f0 7d 0a 23 66 0a 0a 46 6f 72 20 65 61 63 68 20 63 |}.#f..For each c| 000a1400 6f 6e 73 74 61 6e 74 2c 20 69 66 20 69 74 20 69 |onstant, if it i| 000a1410 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 |s the same as th| 000a1420 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 65 |e value of the e| 000a1430 78 70 72 65 73 73 69 6f 6e 20 65 76 61 6c 75 61 |xpression evalua| 000a1440 74 65 64 20 61 74 20 74 68 65 20 73 74 61 72 74 |ted at the start| 000a1450 2c 20 61 6c 6c 20 73 74 61 74 65 6d 65 6e 74 73 |, all statements| 000a1460 20 66 72 6f 6d 20 74 68 69 73 20 70 6f 69 6e 74 | from this point| 000a1470 20 6f 6e 20 61 72 65 20 65 76 61 6c 75 61 74 65 | on are evaluate| 000a1480 64 2e 20 53 6f 20 69 66 20 5c 3c 65 78 70 72 65 |d. So if \<expre| 000a1490 73 73 69 6f 6e 3e 20 69 73 20 65 71 75 61 6c 20 |ssion> is equal | 000a14a0 74 6f 20 5c 3c 63 6f 6e 73 74 61 6e 74 31 3e 20 |to \<constant1> | 000a14b0 62 6f 74 68 20 5c 3c 73 74 61 74 65 6d 65 6e 74 |both \<statement| 000a14c0 73 31 3e 20 61 6e 64 20 5c 3c 73 74 61 74 65 6d |s1> and \<statem| 000a14d0 65 6e 74 73 32 3e 20 61 72 65 20 65 78 65 63 75 |ents2> are execu| 000a14e0 74 65 64 20 28 74 68 69 73 20 6d 61 6b 65 73 20 |ted (this makes | 000a14f0 74 68 65 20 3c 62 72 65 61 6b 3e 20 63 6f 6d 6d |the <break> comm| 000a1500 61 6e 64 20 75 73 65 66 75 6c 29 2e 0a 0a 54 68 |and useful)...Th| 000a1510 65 20 73 74 61 74 65 6d 65 6e 74 73 20 73 68 6f |e statements sho| 000a1520 75 6c 64 2c 20 6f 66 20 63 6f 75 72 73 65 2c 20 |uld, of course, | 000a1530 62 65 20 73 65 70 61 72 61 74 65 64 20 62 79 20 |be separated by | 000a1540 73 65 6d 69 63 6f 6c 6f 6e 73 2c 20 62 75 74 20 |semicolons, but | 000a1550 73 65 76 65 72 61 6c 20 63 61 6e 20 61 70 70 65 |several can appe| 000a1560 61 72 20 77 69 74 68 6f 75 74 20 75 73 69 6e 67 |ar without using| 000a1570 20 62 72 61 63 65 73 20 5c 7b 7d 2e 0a 0a 54 68 | braces \{}...Th| 000a1580 65 20 7b 2f 7d 64 65 66 61 75 6c 74 3a 7b 2f 7d |e {/}default:{/}| 000a1590 20 70 61 72 74 20 69 73 20 6f 70 74 69 6f 6e 61 | part is optiona| 000a15a0 6c 2c 20 61 6e 64 20 69 73 20 65 78 65 63 75 74 |l, and is execut| 000a15b0 65 64 20 69 66 20 6e 6f 6e 65 20 6f 66 20 74 68 |ed if none of th| 000a15c0 65 20 63 6f 6e 73 74 61 6e 74 73 20 6d 61 74 63 |e constants matc| 000a15d0 68 2e 00 00 44 49 52 24 2c 00 00 00 2c 00 00 00 |h...DIR$,...,...| 000a15e0 00 16 0a 00 46 fd ff ff 6f c8 d6 25 3b 22 00 00 |....F...o..%;"..| 000a15f0 13 00 00 00 00 00 00 00 6d 61 63 72 6f 73 5f 00 |........macros_.| 000a1600 44 41 54 41 3b 22 00 00 53 57 49 20 4e 75 6d 62 |DATA;"..SWI Numb| 000a1610 65 72 20 4d 61 63 72 6f 73 0a 54 68 65 20 66 6f |er Macros.The fo| 000a1620 6c 6c 6f 77 69 6e 67 20 6d 61 63 72 6f 73 20 61 |llowing macros a| 000a1630 72 65 20 61 6c 6c 20 64 65 66 69 6e 65 64 20 69 |re all defined i| 000a1640 6e 20 3c 44 65 73 6b 4c 69 62 3a 53 57 49 2e 68 |n <DeskLib:SWI.h| 000a1650 3d 3e 53 57 49 3e 20 74 6f 20 62 65 20 74 68 65 |=>SWI> to be the| 000a1660 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 53 | number of the S| 000a1670 57 49 20 74 68 65 79 20 61 72 65 20 6e 61 6d 65 |WI they are name| 000a1680 64 20 61 66 74 65 72 3a 0a 0a 23 54 61 62 6c 65 |d after:..#Table| 000a1690 20 31 31 38 20 33 36 0a 53 57 49 5f 4f 53 5f 57 | 118 36.SWI_OS_W| 000a16a0 72 69 74 65 43 20 20 20 20 20 20 20 20 20 20 20 |riteC | 000a16b0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a16c0 4f 53 5f 57 72 69 74 65 53 20 20 20 20 20 20 20 |OS_WriteS | 000a16d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a16e0 53 57 49 5f 4f 53 5f 57 72 69 74 65 30 20 20 20 |SWI_OS_Write0 | 000a16f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1700 20 20 20 0a 53 57 49 5f 4f 53 5f 4e 65 77 4c 69 | .SWI_OS_NewLi| 000a1710 6e 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ne | 000a1720 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 52 | .SWI_OS_R| 000a1730 65 61 64 43 20 20 20 20 20 20 20 20 20 20 20 20 |eadC | 000a1740 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1750 4f 53 5f 43 4c 49 20 20 20 20 20 20 20 20 20 20 |OS_CLI | 000a1760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1770 53 57 49 5f 4f 53 5f 42 79 74 65 20 20 20 20 20 |SWI_OS_Byte | 000a1780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1790 20 20 20 0a 53 57 49 5f 4f 53 5f 57 6f 72 64 20 | .SWI_OS_Word | 000a17a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a17b0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 46 | .SWI_OS_F| 000a17c0 69 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 |ile | 000a17d0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a17e0 4f 53 5f 41 72 67 73 20 20 20 20 20 20 20 20 20 |OS_Args | 000a17f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1800 53 57 49 5f 4f 53 5f 42 47 65 74 20 20 20 20 20 |SWI_OS_BGet | 000a1810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1820 20 20 20 0a 53 57 49 5f 4f 53 5f 42 50 75 74 20 | .SWI_OS_BPut | 000a1830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1840 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 47 | .SWI_OS_G| 000a1850 42 50 42 20 20 20 20 20 20 20 20 20 20 20 20 20 |BPB | 000a1860 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1870 4f 53 5f 46 69 6e 64 20 20 20 20 20 20 20 20 20 |OS_Find | 000a1880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1890 53 57 49 5f 4f 53 5f 52 65 61 64 4c 69 6e 65 20 |SWI_OS_ReadLine | 000a18a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a18b0 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 74 72 | .SWI_OS_Contr| 000a18c0 6f 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ol | 000a18d0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 47 | .SWI_OS_G| 000a18e0 65 74 45 6e 76 20 20 20 20 20 20 20 20 20 20 20 |etEnv | 000a18f0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1900 4f 53 5f 45 78 69 74 20 20 20 20 20 20 20 20 20 |OS_Exit | 000a1910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1920 53 57 49 5f 4f 53 5f 53 65 74 45 6e 76 20 20 20 |SWI_OS_SetEnv | 000a1930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1940 20 20 20 0a 53 57 49 5f 4f 53 5f 49 6e 74 4f 6e | .SWI_OS_IntOn| 000a1950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1960 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 49 | .SWI_OS_I| 000a1970 6e 74 4f 66 66 20 20 20 20 20 20 20 20 20 20 20 |ntOff | 000a1980 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1990 4f 53 5f 43 61 6c 6c 42 61 63 6b 20 20 20 20 20 |OS_CallBack | 000a19a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a19b0 53 57 49 5f 4f 53 5f 45 6e 74 65 72 4f 53 20 20 |SWI_OS_EnterOS | 000a19c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a19d0 20 20 20 0a 53 57 49 5f 4f 53 5f 42 72 65 61 6b | .SWI_OS_Break| 000a19e0 50 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |Pt | 000a19f0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 42 | .SWI_OS_B| 000a1a00 72 65 61 6b 43 74 72 6c 20 20 20 20 20 20 20 20 |reakCtrl | 000a1a10 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1a20 4f 53 5f 55 6e 75 73 65 64 53 57 49 20 20 20 20 |OS_UnusedSWI | 000a1a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1a40 53 57 49 5f 4f 53 5f 55 70 64 61 74 65 4d 45 4d |SWI_OS_UpdateMEM| 000a1a50 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |C | 000a1a60 20 20 20 0a 53 57 49 5f 4f 53 5f 53 65 74 43 61 | .SWI_OS_SetCa| 000a1a70 6c 6c 42 61 63 6b 20 20 20 20 20 20 20 20 20 20 |llBack | 000a1a80 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 4d | .SWI_OS_M| 000a1a90 6f 75 73 65 20 20 20 20 20 20 20 20 20 20 20 20 |ouse | 000a1aa0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1ab0 4f 53 5f 48 65 61 70 20 20 20 20 20 20 20 20 20 |OS_Heap | 000a1ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1ad0 53 57 49 5f 4f 53 5f 4d 6f 64 75 6c 65 20 20 20 |SWI_OS_Module | 000a1ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1af0 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6c 61 69 6d | .SWI_OS_Claim| 000a1b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1b10 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 52 | .SWI_OS_R| 000a1b20 65 6c 65 61 73 65 20 20 20 20 20 20 20 20 20 20 |elease | 000a1b30 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1b40 4f 53 5f 52 65 61 64 55 6e 73 69 67 6e 65 64 20 |OS_ReadUnsigned | 000a1b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1b60 53 57 49 5f 4f 53 5f 47 65 6e 65 72 61 74 65 45 |SWI_OS_GenerateE| 000a1b70 76 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 |vent | 000a1b80 20 20 20 0a 53 57 49 5f 4f 53 5f 52 65 61 64 56 | .SWI_OS_ReadV| 000a1b90 61 72 56 61 6c 20 20 20 20 20 20 20 20 20 20 20 |arVal | 000a1ba0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 53 | .SWI_OS_S| 000a1bb0 65 74 56 61 72 56 61 6c 20 20 20 20 20 20 20 20 |etVarVal | 000a1bc0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1bd0 4f 53 5f 47 53 49 6e 69 74 20 20 20 20 20 20 20 |OS_GSInit | 000a1be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1bf0 53 57 49 5f 4f 53 5f 47 53 52 65 61 64 20 20 20 |SWI_OS_GSRead | 000a1c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1c10 20 20 20 0a 53 57 49 5f 4f 53 5f 47 53 54 72 61 | .SWI_OS_GSTra| 000a1c20 6e 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ns | 000a1c30 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 42 | .SWI_OS_B| 000a1c40 69 6e 61 72 79 54 6f 44 65 63 69 6d 61 6c 20 20 |inaryToDecimal | 000a1c50 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1c60 4f 53 5f 46 53 43 6f 6e 74 72 6f 6c 20 20 20 20 |OS_FSControl | 000a1c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a1c80 53 57 49 5f 4f 53 5f 43 68 61 6e 67 65 44 79 6e |SWI_OS_ChangeDyn| 000a1c90 61 6d 69 63 41 72 65 61 20 20 20 20 20 20 20 20 |amicArea | 000a1ca0 20 20 20 0a 53 57 49 5f 4f 53 5f 47 65 6e 65 72 | .SWI_OS_Gener| 000a1cb0 61 74 65 45 72 72 6f 72 20 20 20 20 20 20 20 20 |ateError | 000a1cc0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 52 | .SWI_OS_R| 000a1cd0 65 61 64 45 73 63 61 70 65 53 74 61 74 65 20 20 |eadEscapeState | 000a1ce0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1cf0 4f 53 5f 45 76 61 6c 75 61 74 65 45 78 70 72 65 |OS_EvaluateExpre| 000a1d00 73 73 69 6f 6e 20 20 20 20 20 20 20 20 20 20 0a |ssion .| 000a1d10 53 57 49 5f 4f 53 5f 53 70 72 69 74 65 4f 70 20 |SWI_OS_SpriteOp | 000a1d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1d30 20 20 20 0a 53 57 49 5f 4f 53 5f 52 65 61 64 50 | .SWI_OS_ReadP| 000a1d40 61 6c 65 74 74 65 20 20 20 20 20 20 20 20 20 20 |alette | 000a1d50 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 53 | .SWI_OS_S| 000a1d60 65 72 76 69 63 65 43 61 6c 6c 20 20 20 20 20 20 |erviceCall | 000a1d70 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1d80 4f 53 5f 52 65 61 64 56 64 75 56 61 72 69 61 62 |OS_ReadVduVariab| 000a1d90 6c 65 73 20 20 20 20 20 20 20 20 20 20 20 20 0a |les .| 000a1da0 53 57 49 5f 4f 53 5f 52 65 61 64 50 6f 69 6e 74 |SWI_OS_ReadPoint| 000a1db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a1dc0 20 20 20 0a 53 57 49 5f 4f 53 5f 55 70 43 61 6c | .SWI_OS_UpCal| 000a1dd0 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |l | 000a1de0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a1df0 61 6c 6c 41 56 65 63 74 6f 72 20 20 20 20 20 20 |allAVector | 000a1e00 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1e10 4f 53 5f 52 65 61 64 4d 6f 64 65 56 61 72 69 61 |OS_ReadModeVaria| 000a1e20 62 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 0a |ble .| 000a1e30 53 57 49 5f 4f 53 5f 52 65 6d 6f 76 65 43 75 72 |SWI_OS_RemoveCur| 000a1e40 73 6f 72 73 20 20 20 20 20 20 20 20 20 20 20 20 |sors | 000a1e50 20 20 20 0a 53 57 49 5f 4f 53 5f 52 65 73 74 6f | .SWI_OS_Resto| 000a1e60 72 65 43 75 72 73 6f 72 73 20 20 20 20 20 20 20 |reCursors | 000a1e70 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 53 | .SWI_OS_S| 000a1e80 57 49 4e 75 6d 62 65 72 54 6f 53 74 72 69 6e 67 |WINumberToString| 000a1e90 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1ea0 4f 53 5f 53 57 49 4e 75 6d 62 65 72 46 72 6f 6d |OS_SWINumberFrom| 000a1eb0 53 74 72 69 6e 67 20 20 20 20 20 20 20 20 20 0a |String .| 000a1ec0 53 57 49 5f 4f 53 5f 56 61 6c 69 64 61 74 65 41 |SWI_OS_ValidateA| 000a1ed0 64 64 72 65 73 73 20 20 20 20 20 20 20 20 20 20 |ddress | 000a1ee0 20 20 20 0a 53 57 49 5f 4f 53 5f 43 61 6c 6c 41 | .SWI_OS_CallA| 000a1ef0 66 74 65 72 20 20 20 20 20 20 20 20 20 20 20 20 |fter | 000a1f00 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a1f10 61 6c 6c 45 76 65 72 79 20 20 20 20 20 20 20 20 |allEvery | 000a1f20 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1f30 4f 53 5f 52 65 6d 6f 76 65 54 69 63 6b 65 72 45 |OS_RemoveTickerE| 000a1f40 76 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 0a |vent .| 000a1f50 53 57 49 5f 4f 53 5f 49 6e 73 74 61 6c 6c 4b 65 |SWI_OS_InstallKe| 000a1f60 79 48 61 6e 64 6c 65 72 20 20 20 20 20 20 20 20 |yHandler | 000a1f70 20 20 20 0a 53 57 49 5f 4f 53 5f 43 68 65 63 6b | .SWI_OS_Check| 000a1f80 4d 6f 64 65 56 61 6c 69 64 20 20 20 20 20 20 20 |ModeValid | 000a1f90 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a1fa0 68 61 6e 67 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 |hangeEnvironment| 000a1fb0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a1fc0 4f 53 5f 43 6c 61 69 6d 53 63 72 65 65 6e 4d 65 |OS_ClaimScreenMe| 000a1fd0 6d 6f 72 79 20 20 20 20 20 20 20 20 20 20 20 0a |mory .| 000a1fe0 53 57 49 5f 4f 53 5f 52 65 61 64 4d 6f 6e 6f 74 |SWI_OS_ReadMonot| 000a1ff0 6f 6e 69 63 54 69 6d 65 20 20 20 20 20 20 20 20 |onicTime | 000a2000 20 20 20 0a 53 57 49 5f 4f 53 5f 53 75 62 73 74 | .SWI_OS_Subst| 000a2010 69 74 75 74 65 41 72 67 73 20 20 20 20 20 20 20 |ituteArgs | 000a2020 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 50 | .SWI_OS_P| 000a2030 72 65 74 74 79 50 72 69 6e 74 20 20 20 20 20 20 |rettyPrint | 000a2040 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2050 4f 53 5f 50 6c 6f 74 20 20 20 20 20 20 20 20 20 |OS_Plot | 000a2060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2070 53 57 49 5f 4f 53 5f 57 72 69 74 65 4e 20 20 20 |SWI_OS_WriteN | 000a2080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a2090 20 20 20 0a 53 57 49 5f 4f 53 5f 41 64 64 54 6f | .SWI_OS_AddTo| 000a20a0 56 65 63 74 6f 72 20 20 20 20 20 20 20 20 20 20 |Vector | 000a20b0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 57 | .SWI_OS_W| 000a20c0 72 69 74 65 45 6e 76 20 20 20 20 20 20 20 20 20 |riteEnv | 000a20d0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a20e0 4f 53 5f 52 65 61 64 41 72 67 73 20 20 20 20 20 |OS_ReadArgs | 000a20f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2100 53 57 49 5f 4f 53 5f 52 65 61 64 52 41 4d 46 73 |SWI_OS_ReadRAMFs| 000a2110 4c 69 6d 69 74 73 20 20 20 20 20 20 20 20 20 20 |Limits | 000a2120 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6c 61 69 6d | .SWI_OS_Claim| 000a2130 44 65 76 69 63 65 56 65 63 74 6f 72 20 20 20 20 |DeviceVector | 000a2140 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 52 | .SWI_OS_R| 000a2150 65 6c 65 61 73 65 44 65 76 69 63 65 56 65 63 74 |eleaseDeviceVect| 000a2160 6f 72 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f |or .SWI_| 000a2170 4f 53 5f 44 65 6c 69 6e 6b 41 70 70 6c 69 63 61 |OS_DelinkApplica| 000a2180 74 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20 0a |tion .| 000a2190 53 57 49 5f 4f 53 5f 52 65 6c 69 6e 6b 41 70 70 |SWI_OS_RelinkApp| 000a21a0 6c 69 63 61 74 69 6f 6e 20 20 20 20 20 20 20 20 |lication | 000a21b0 20 20 20 0a 53 57 49 5f 4f 53 5f 48 65 61 70 53 | .SWI_OS_HeapS| 000a21c0 6f 72 74 20 20 20 20 20 20 20 20 20 20 20 20 20 |ort | 000a21d0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 45 | .SWI_OS_E| 000a21e0 78 69 74 41 6e 64 44 69 65 20 20 20 20 20 20 20 |xitAndDie | 000a21f0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2200 4f 53 5f 52 65 61 64 4d 65 6d 4d 61 70 49 6e 66 |OS_ReadMemMapInf| 000a2210 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |o .| 000a2220 53 57 49 5f 4f 53 5f 52 65 61 64 4d 65 6d 4d 61 |SWI_OS_ReadMemMa| 000a2230 70 45 6e 74 72 69 65 73 20 20 20 20 20 20 20 20 |pEntries | 000a2240 20 20 20 0a 53 57 49 5f 4f 53 5f 53 65 74 4d 65 | .SWI_OS_SetMe| 000a2250 6d 4d 61 70 45 6e 74 72 69 65 73 20 20 20 20 20 |mMapEntries | 000a2260 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 41 | .SWI_OS_A| 000a2270 64 64 43 61 6c 6c 42 61 63 6b 20 20 20 20 20 20 |ddCallBack | 000a2280 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2290 4f 53 5f 52 65 61 64 44 65 66 61 75 6c 74 48 61 |OS_ReadDefaultHa| 000a22a0 6e 64 6c 65 72 20 20 20 20 20 20 20 20 20 20 0a |ndler .| 000a22b0 53 57 49 5f 4f 53 5f 53 65 74 45 43 46 4f 72 69 |SWI_OS_SetECFOri| 000a22c0 67 69 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 |gin | 000a22d0 20 20 20 0a 53 57 49 5f 4f 53 5f 53 65 72 69 61 | .SWI_OS_Seria| 000a22e0 6c 4f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 |lOp | 000a22f0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 52 | .SWI_OS_R| 000a2300 65 61 64 53 79 73 49 6e 66 6f 20 20 20 20 20 20 |eadSysInfo | 000a2310 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2320 4f 53 5f 43 6f 6e 66 69 72 6d 20 20 20 20 20 20 |OS_Confirm | 000a2330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2340 53 57 49 5f 4f 53 5f 43 68 61 6e 67 65 64 42 6f |SWI_OS_ChangedBo| 000a2350 78 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |x | 000a2360 20 20 20 0a 53 57 49 5f 4f 53 5f 43 52 43 20 20 | .SWI_OS_CRC | 000a2370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a2380 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 52 | .SWI_OS_R| 000a2390 65 61 64 44 79 6e 61 6d 69 63 41 72 65 61 20 20 |eadDynamicArea | 000a23a0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a23b0 4f 53 5f 50 72 69 6e 74 43 68 61 72 20 20 20 20 |OS_PrintChar | 000a23c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a23d0 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 53 74 |SWI_OS_ConvertSt| 000a23e0 61 6e 64 61 72 64 44 61 74 65 41 6e 64 54 69 6d |andardDateAndTim| 000a23f0 65 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 |e .SWI_OS_Conve| 000a2400 72 74 44 61 74 65 41 6e 64 54 69 6d 65 20 20 20 |rtDateAndTime | 000a2410 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a2420 6f 6e 76 65 72 74 48 65 78 31 20 20 20 20 20 20 |onvertHex1 | 000a2430 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2440 4f 53 5f 43 6f 6e 76 65 72 74 48 65 78 32 20 20 |OS_ConvertHex2 | 000a2450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2460 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 48 65 |SWI_OS_ConvertHe| 000a2470 78 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |x4 | 000a2480 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a2490 72 74 48 65 78 36 20 20 20 20 20 20 20 20 20 20 |rtHex6 | 000a24a0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a24b0 6f 6e 76 65 72 74 48 65 78 38 20 20 20 20 20 20 |onvertHex8 | 000a24c0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a24d0 4f 53 5f 43 6f 6e 76 65 72 74 43 61 72 64 69 6e |OS_ConvertCardin| 000a24e0 61 6c 31 20 20 20 20 20 20 20 20 20 20 20 20 0a |al1 .| 000a24f0 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 43 61 |SWI_OS_ConvertCa| 000a2500 72 64 69 6e 61 6c 32 20 20 20 20 20 20 20 20 20 |rdinal2 | 000a2510 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a2520 72 74 43 61 72 64 69 6e 61 6c 33 20 20 20 20 20 |rtCardinal3 | 000a2530 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a2540 6f 6e 76 65 72 74 43 61 72 64 69 6e 61 6c 34 20 |onvertCardinal4 | 000a2550 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2560 4f 53 5f 43 6f 6e 76 65 72 74 49 6e 74 65 67 65 |OS_ConvertIntege| 000a2570 72 31 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |r1 .| 000a2580 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 49 6e |SWI_OS_ConvertIn| 000a2590 74 65 67 65 72 32 20 20 20 20 20 20 20 20 20 20 |teger2 | 000a25a0 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a25b0 72 74 49 6e 74 65 67 65 72 33 20 20 20 20 20 20 |rtInteger3 | 000a25c0 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a25d0 6f 6e 76 65 72 74 49 6e 74 65 67 65 72 34 20 20 |onvertInteger4 | 000a25e0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a25f0 4f 53 5f 43 6f 6e 76 65 72 74 42 69 6e 61 72 79 |OS_ConvertBinary| 000a2600 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |1 .| 000a2610 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 42 69 |SWI_OS_ConvertBi| 000a2620 6e 61 72 79 32 20 20 20 20 20 20 20 20 20 20 20 |nary2 | 000a2630 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a2640 72 74 42 69 6e 61 72 79 33 20 20 20 20 20 20 20 |rtBinary3 | 000a2650 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a2660 6f 6e 76 65 72 74 42 69 6e 61 72 79 34 20 20 20 |onvertBinary4 | 000a2670 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2680 4f 53 5f 43 6f 6e 76 65 72 74 53 70 61 63 65 64 |OS_ConvertSpaced| 000a2690 43 61 72 64 69 6e 61 6c 31 20 20 20 20 20 20 0a |Cardinal1 .| 000a26a0 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 53 70 |SWI_OS_ConvertSp| 000a26b0 61 63 65 64 43 61 72 64 69 6e 61 6c 32 20 20 20 |acedCardinal2 | 000a26c0 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a26d0 72 74 53 70 61 63 65 64 43 61 72 64 69 6e 61 6c |rtSpacedCardinal| 000a26e0 33 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 |3 .SWI_OS_C| 000a26f0 6f 6e 76 65 72 74 53 70 61 63 65 64 43 61 72 64 |onvertSpacedCard| 000a2700 69 6e 61 6c 34 20 20 20 20 20 20 0a 53 57 49 5f |inal4 .SWI_| 000a2710 4f 53 5f 43 6f 6e 76 65 72 74 53 70 61 63 65 64 |OS_ConvertSpaced| 000a2720 49 6e 74 65 67 65 72 31 20 20 20 20 20 20 20 0a |Integer1 .| 000a2730 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 53 70 |SWI_OS_ConvertSp| 000a2740 61 63 65 64 49 6e 74 65 67 65 72 32 20 20 20 20 |acedInteger2 | 000a2750 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a2760 72 74 53 70 61 63 65 64 49 6e 74 65 67 65 72 33 |rtSpacedInteger3| 000a2770 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a2780 6f 6e 76 65 72 74 53 70 61 63 65 64 49 6e 74 65 |onvertSpacedInte| 000a2790 67 65 72 34 20 20 20 20 20 20 20 0a 53 57 49 5f |ger4 .SWI_| 000a27a0 4f 53 5f 43 6f 6e 76 65 72 74 46 69 78 65 64 4e |OS_ConvertFixedN| 000a27b0 65 74 53 74 61 74 69 6f 6e 20 20 20 20 20 20 0a |etStation .| 000a27c0 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 72 74 4e 65 |SWI_OS_ConvertNe| 000a27d0 74 53 74 61 74 69 6f 6e 20 20 20 20 20 20 20 20 |tStation | 000a27e0 20 20 20 0a 53 57 49 5f 4f 53 5f 43 6f 6e 76 65 | .SWI_OS_Conve| 000a27f0 72 74 46 69 78 65 64 46 69 6c 65 53 69 7a 65 20 |rtFixedFileSize | 000a2800 20 20 20 20 20 20 20 0a 53 57 49 5f 4f 53 5f 43 | .SWI_OS_C| 000a2810 6f 6e 76 65 72 74 46 69 6c 65 53 69 7a 65 20 20 |onvertFileSize | 000a2820 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2830 49 49 43 5f 43 6f 6e 74 72 6f 6c 20 20 20 20 20 |IIC_Control | 000a2840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2850 53 57 49 5f 45 63 6f 6e 65 74 5f 43 72 65 61 74 |SWI_Econet_Creat| 000a2860 65 52 65 63 65 69 76 65 20 20 20 20 20 20 20 20 |eReceive | 000a2870 20 20 20 0a 53 57 49 5f 45 63 6f 6e 65 74 5f 45 | .SWI_Econet_E| 000a2880 78 61 6d 69 6e 65 52 65 63 65 69 76 65 20 20 20 |xamineReceive | 000a2890 20 20 20 20 20 20 20 0a 53 57 49 5f 45 63 6f 6e | .SWI_Econ| 000a28a0 65 74 5f 52 65 61 64 52 65 63 65 69 76 65 20 20 |et_ReadReceive | 000a28b0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a28c0 45 63 6f 6e 65 74 5f 41 62 61 6e 64 6f 6e 52 65 |Econet_AbandonRe| 000a28d0 63 65 69 76 65 20 20 20 20 20 20 20 20 20 20 0a |ceive .| 000a28e0 53 57 49 5f 45 63 6f 6e 65 74 5f 57 61 69 74 46 |SWI_Econet_WaitF| 000a28f0 6f 72 52 65 63 65 70 74 69 6f 6e 20 20 20 20 20 |orReception | 000a2900 20 20 20 0a 53 57 49 5f 45 63 6f 6e 65 74 5f 45 | .SWI_Econet_E| 000a2910 6e 75 6d 65 72 61 74 65 52 65 63 65 69 76 65 20 |numerateReceive | 000a2920 20 20 20 20 20 20 20 0a 53 57 49 5f 45 63 6f 6e | .SWI_Econ| 000a2930 65 74 5f 53 74 61 72 74 54 72 61 6e 73 6d 69 74 |et_StartTransmit| 000a2940 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2950 45 63 6f 6e 65 74 5f 50 6f 6c 6c 54 72 61 6e 73 |Econet_PollTrans| 000a2960 6d 69 74 20 20 20 20 20 20 20 20 20 20 20 20 0a |mit .| 000a2970 53 57 49 5f 45 63 6f 6e 65 74 5f 41 62 61 6e 64 |SWI_Econet_Aband| 000a2980 6f 6e 54 72 61 6e 73 6d 69 74 20 20 20 20 20 20 |onTransmit | 000a2990 20 20 20 0a 53 57 49 5f 45 63 6f 6e 65 74 5f 44 | .SWI_Econet_D| 000a29a0 6f 54 72 61 6e 73 6d 69 74 20 20 20 20 20 20 20 |oTransmit | 000a29b0 20 20 20 20 20 20 20 0a 53 57 49 5f 45 63 6f 6e | .SWI_Econ| 000a29c0 65 74 5f 52 65 61 64 4c 6f 63 61 6c 53 74 61 74 |et_ReadLocalStat| 000a29d0 69 6f 6e 41 6e 64 4e 65 74 20 20 0a 53 57 49 5f |ionAndNet .SWI_| 000a29e0 45 63 6f 6e 65 74 5f 43 6f 6e 76 65 72 74 53 74 |Econet_ConvertSt| 000a29f0 61 74 75 73 54 4f 53 74 72 69 6e 67 20 20 20 0a |atusTOString .| 000a2a00 53 57 49 5f 45 63 6f 6e 65 74 5f 43 6f 6e 76 65 |SWI_Econet_Conve| 000a2a10 72 74 53 74 61 74 75 73 54 6f 45 72 72 6f 72 20 |rtStatusToError | 000a2a20 20 20 20 0a 53 57 49 5f 45 63 6f 6e 65 74 5f 52 | .SWI_Econet_R| 000a2a30 65 61 64 50 72 6f 74 65 63 74 69 6f 6e 20 20 20 |eadProtection | 000a2a40 20 20 20 20 20 20 20 0a 53 57 49 5f 45 63 6f 6e | .SWI_Econ| 000a2a50 65 74 5f 53 65 74 50 72 6f 74 65 63 74 69 6f 6e |et_SetProtection| 000a2a60 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2a70 45 63 6f 6e 65 74 5f 52 65 61 64 53 74 61 74 69 |Econet_ReadStati| 000a2a80 6f 6e 4e 75 6d 62 65 72 20 20 20 20 20 20 20 0a |onNumber .| 000a2a90 53 57 49 5f 45 63 6f 6e 65 74 5f 50 72 69 6e 74 |SWI_Econet_Print| 000a2aa0 42 61 6e 6e 65 72 20 20 20 20 20 20 20 20 20 20 |Banner | 000a2ab0 20 20 20 0a 53 57 49 5f 45 63 6f 6e 65 74 5f 52 | .SWI_Econet_R| 000a2ac0 65 6c 65 61 73 65 50 6f 72 74 20 20 20 20 20 20 |eleasePort | 000a2ad0 20 20 20 20 20 20 20 0a 53 57 49 5f 45 63 6f 6e | .SWI_Econ| 000a2ae0 65 74 5f 41 6c 6c 6f 63 61 74 65 50 6f 72 74 20 |et_AllocatePort | 000a2af0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2b00 45 63 6f 6e 65 74 5f 44 65 41 6c 6c 6f 63 61 74 |Econet_DeAllocat| 000a2b10 65 50 6f 72 74 20 20 20 20 20 20 20 20 20 20 0a |ePort .| 000a2b20 53 57 49 5f 45 63 6f 6e 65 74 5f 43 6c 61 69 6d |SWI_Econet_Claim| 000a2b30 50 6f 72 74 20 20 20 20 20 20 20 20 20 20 20 20 |Port | 000a2b40 20 20 20 0a 53 57 49 5f 45 63 6f 6e 65 74 5f 53 | .SWI_Econet_S| 000a2b50 74 61 72 74 49 6d 6d 65 64 69 61 74 65 20 20 20 |tartImmediate | 000a2b60 20 20 20 20 20 20 20 0a 53 57 49 5f 45 63 6f 6e | .SWI_Econ| 000a2b70 65 74 5f 44 6f 49 6d 6d 65 64 69 61 74 65 20 20 |et_DoImmediate | 000a2b80 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2b90 4e 65 74 46 53 5f 52 65 61 64 46 53 4e 75 6d 62 |NetFS_ReadFSNumb| 000a2ba0 65 72 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |er .| 000a2bb0 53 57 49 5f 4e 65 74 46 53 5f 53 65 74 46 53 4e |SWI_NetFS_SetFSN| 000a2bc0 75 6d 62 65 72 20 20 20 20 20 20 20 20 20 20 20 |umber | 000a2bd0 20 20 20 0a 53 57 49 5f 4e 65 74 46 53 5f 52 65 | .SWI_NetFS_Re| 000a2be0 61 64 46 53 4e 61 6d 65 20 20 20 20 20 20 20 20 |adFSName | 000a2bf0 20 20 20 20 20 20 20 0a 53 57 49 5f 4e 65 74 46 | .SWI_NetF| 000a2c00 53 5f 53 65 74 46 53 4e 61 6d 65 20 20 20 20 20 |S_SetFSName | 000a2c10 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2c20 4e 65 74 46 53 5f 52 65 61 64 43 75 72 72 65 6e |NetFS_ReadCurren| 000a2c30 74 43 6f 6e 74 65 78 74 20 20 20 20 20 20 20 0a |tContext .| 000a2c40 53 57 49 5f 4e 65 74 46 53 5f 53 65 74 43 75 72 |SWI_NetFS_SetCur| 000a2c50 72 65 6e 74 43 6f 6e 74 65 78 74 20 20 20 20 20 |rentContext | 000a2c60 20 20 20 0a 53 57 49 5f 4e 65 74 46 53 5f 52 65 | .SWI_NetFS_Re| 000a2c70 61 64 46 53 54 69 6d 65 6f 75 74 73 20 20 20 20 |adFSTimeouts | 000a2c80 20 20 20 20 20 20 20 0a 53 57 49 5f 4e 65 74 46 | .SWI_NetF| 000a2c90 53 5f 53 65 74 46 53 54 69 6d 65 6f 75 74 73 20 |S_SetFSTimeouts | 000a2ca0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2cb0 4e 65 74 46 53 5f 44 6f 46 53 4f 70 20 20 20 20 |NetFS_DoFSOp | 000a2cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2cd0 53 57 49 5f 4e 65 74 46 53 5f 45 6e 75 6d 65 72 |SWI_NetFS_Enumer| 000a2ce0 61 74 65 46 53 4c 69 73 74 20 20 20 20 20 20 20 |ateFSList | 000a2cf0 20 20 20 0a 53 57 49 5f 4e 65 74 46 53 5f 45 6e | .SWI_NetFS_En| 000a2d00 75 6d 65 72 61 74 65 46 53 20 20 20 20 20 20 20 |umerateFS | 000a2d10 20 20 20 20 20 20 20 0a 53 57 49 5f 4e 65 74 46 | .SWI_NetF| 000a2d20 53 5f 43 6f 6e 76 65 72 74 44 61 74 65 20 20 20 |S_ConvertDate | 000a2d30 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2d40 4e 65 74 46 53 5f 44 6f 46 53 4f 70 54 6f 47 69 |NetFS_DoFSOpToGi| 000a2d50 76 65 6e 46 53 20 20 20 20 20 20 20 20 20 20 0a |venFS .| 000a2d60 53 57 49 5f 53 6f 75 6e 64 5f 43 6f 6e 66 69 67 |SWI_Sound_Config| 000a2d70 75 72 65 20 20 20 20 20 20 20 20 20 20 20 20 20 |ure | 000a2d80 20 20 20 0a 53 57 49 5f 53 6f 75 6e 64 5f 45 6e | .SWI_Sound_En| 000a2d90 61 62 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 |able | 000a2da0 20 20 20 20 20 20 20 0a 53 57 49 5f 53 6f 75 6e | .SWI_Soun| 000a2db0 64 5f 53 74 65 72 65 6f 20 20 20 20 20 20 20 20 |d_Stereo | 000a2dc0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2dd0 53 6f 75 6e 64 5f 53 70 65 61 6b 65 72 20 20 20 |Sound_Speaker | 000a2de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2df0 53 57 49 5f 53 6f 75 6e 64 5f 56 6f 6c 75 6d 65 |SWI_Sound_Volume| 000a2e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a2e10 20 20 20 0a 53 57 49 5f 53 6f 75 6e 64 5f 53 6f | .SWI_Sound_So| 000a2e20 75 6e 64 4c 6f 67 20 20 20 20 20 20 20 20 20 20 |undLog | 000a2e30 20 20 20 20 20 20 20 0a 53 57 49 5f 53 6f 75 6e | .SWI_Soun| 000a2e40 64 5f 4c 6f 67 53 63 61 6c 65 20 20 20 20 20 20 |d_LogScale | 000a2e50 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2e60 53 6f 75 6e 64 5f 49 6e 73 74 61 6c 6c 56 6f 69 |Sound_InstallVoi| 000a2e70 63 65 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |ce .| 000a2e80 53 57 49 5f 53 6f 75 6e 64 5f 52 65 6d 6f 76 65 |SWI_Sound_Remove| 000a2e90 56 6f 69 63 65 20 20 20 20 20 20 20 20 20 20 20 |Voice | 000a2ea0 20 20 20 0a 53 57 49 5f 53 6f 75 6e 64 5f 41 74 | .SWI_Sound_At| 000a2eb0 74 61 63 68 56 6f 69 63 65 20 20 20 20 20 20 20 |tachVoice | 000a2ec0 20 20 20 20 20 20 20 0a 53 57 49 5f 53 6f 75 6e | .SWI_Soun| 000a2ed0 64 5f 43 6f 6e 74 72 6f 6c 50 61 63 6b 65 64 20 |d_ControlPacked | 000a2ee0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a2ef0 53 6f 75 6e 64 5f 54 75 6e 69 6e 67 20 20 20 20 |Sound_Tuning | 000a2f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a2f10 53 57 49 5f 53 6f 75 6e 64 5f 50 69 74 63 68 20 |SWI_Sound_Pitch | 000a2f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a2f30 20 20 20 0a 53 57 49 5f 53 6f 75 6e 64 5f 43 6f | .SWI_Sound_Co| 000a2f40 6e 74 72 6f 6c 20 20 20 20 20 20 20 20 20 20 20 |ntrol | 000a2f50 20 20 20 20 20 20 20 0a 53 57 49 5f 53 6f 75 6e | .SWI_Soun| 000a2f60 64 5f 41 74 74 61 63 68 4e 61 6d 65 64 56 6f 69 |d_AttachNamedVoi| 000a2f70 63 65 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f |ce .SWI_| 000a2f80 53 6f 75 6e 64 5f 52 65 61 64 43 6f 6e 74 72 6f |Sound_ReadContro| 000a2f90 6c 42 6c 6f 63 6b 20 20 20 20 20 20 20 20 20 0a |lBlock .| 000a2fa0 53 57 49 5f 53 6f 75 6e 64 5f 57 72 69 74 65 43 |SWI_Sound_WriteC| 000a2fb0 6f 6e 74 72 6f 6c 42 6c 6f 63 6b 20 20 20 20 20 |ontrolBlock | 000a2fc0 20 20 20 0a 53 57 49 5f 53 6f 75 6e 64 5f 51 49 | .SWI_Sound_QI| 000a2fd0 6e 69 74 20 20 20 20 20 20 20 20 20 20 20 20 20 |nit | 000a2fe0 20 20 20 20 20 20 20 0a 53 57 49 5f 53 6f 75 6e | .SWI_Soun| 000a2ff0 64 5f 51 53 63 68 65 64 75 6c 65 20 20 20 20 20 |d_QSchedule | 000a3000 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a3010 53 6f 75 6e 64 5f 51 52 65 6d 6f 76 65 20 20 20 |Sound_QRemove | 000a3020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a3030 53 57 49 5f 53 6f 75 6e 64 5f 51 46 72 65 65 20 |SWI_Sound_QFree | 000a3040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a3050 20 20 20 0a 53 57 49 5f 53 6f 75 6e 64 5f 51 53 | .SWI_Sound_QS| 000a3060 44 69 73 70 61 74 63 68 20 20 20 20 20 20 20 20 |Dispatch | 000a3070 20 20 20 20 20 20 20 0a 53 57 49 5f 53 6f 75 6e | .SWI_Soun| 000a3080 64 5f 51 54 65 6d 70 6f 20 20 20 20 20 20 20 20 |d_QTempo | 000a3090 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a30a0 53 6f 75 6e 64 5f 51 42 65 61 74 20 20 20 20 20 |Sound_QBeat | 000a30b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a30c0 53 57 49 5f 53 6f 75 6e 64 5f 51 49 6e 74 65 72 |SWI_Sound_QInter| 000a30d0 66 61 63 65 20 20 20 20 20 20 20 20 20 20 20 20 |face | 000a30e0 20 20 20 0a 53 57 49 5f 4e 65 74 50 72 69 6e 74 | .SWI_NetPrint| 000a30f0 5f 52 65 61 64 50 53 4e 75 6d 62 65 72 20 20 20 |_ReadPSNumber | 000a3100 20 20 20 20 20 20 20 0a 53 57 49 5f 4e 65 74 50 | .SWI_NetP| 000a3110 72 69 6e 74 5f 53 65 74 50 53 4e 75 6d 62 65 72 |rint_SetPSNumber| 000a3120 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a3130 4e 65 74 50 72 69 6e 74 5f 52 65 61 64 50 53 4e |NetPrint_ReadPSN| 000a3140 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 0a |ame .| 000a3150 53 57 49 5f 4e 65 74 50 72 69 6e 74 5f 53 65 74 |SWI_NetPrint_Set| 000a3160 50 53 4e 61 6d 65 20 20 20 20 20 20 20 20 20 20 |PSName | 000a3170 20 20 20 0a 53 57 49 5f 4e 65 74 50 72 69 6e 74 | .SWI_NetPrint| 000a3180 5f 52 65 61 64 50 53 54 69 6d 65 6f 75 74 73 20 |_ReadPSTimeouts | 000a3190 20 20 20 20 20 20 20 0a 53 57 49 5f 4e 65 74 50 | .SWI_NetP| 000a31a0 72 69 6e 74 5f 53 65 74 50 53 54 69 6d 65 6f 75 |rint_SetPSTimeou| 000a31b0 74 73 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f |ts .SWI_| 000a31c0 41 44 46 53 5f 44 69 73 63 4f 70 20 20 20 20 20 |ADFS_DiscOp | 000a31d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a31e0 53 57 49 5f 41 44 46 53 5f 48 44 43 20 20 20 20 |SWI_ADFS_HDC | 000a31f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a3200 20 20 20 0a 53 57 49 5f 41 44 46 53 5f 44 72 69 | .SWI_ADFS_Dri| 000a3210 76 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 |ves | 000a3220 20 20 20 20 20 20 20 0a 53 57 49 5f 41 44 46 53 | .SWI_ADFS| 000a3230 5f 46 72 65 65 53 70 61 63 65 20 20 20 20 20 20 |_FreeSpace | 000a3240 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a3250 41 44 46 53 5f 52 65 74 72 69 65 73 20 20 20 20 |ADFS_Retries | 000a3260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a3270 53 57 49 5f 41 44 46 53 5f 44 65 73 63 72 69 62 |SWI_ADFS_Describ| 000a3280 65 44 69 73 63 20 20 20 20 20 20 20 20 20 20 20 |eDisc | 000a3290 20 20 20 0a 53 57 49 5f 50 6f 64 75 6c 65 5f 52 | .SWI_Podule_R| 000a32a0 65 61 64 49 44 20 20 20 20 20 20 20 20 20 20 20 |eadID | 000a32b0 20 20 20 20 20 20 20 0a 53 57 49 5f 50 6f 64 75 | .SWI_Podu| 000a32c0 6c 65 5f 52 65 61 64 48 65 61 64 65 72 20 20 20 |le_ReadHeader | 000a32d0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a32e0 50 6f 64 75 6c 65 5f 45 6e 75 6d 65 72 61 74 65 |Podule_Enumerate| 000a32f0 43 68 75 6e 6b 73 20 20 20 20 20 20 20 20 20 0a |Chunks .| 000a3300 53 57 49 5f 50 6f 64 75 6c 65 5f 52 65 61 64 43 |SWI_Podule_ReadC| 000a3310 68 75 6e 6b 20 20 20 20 20 20 20 20 20 20 20 20 |hunk | 000a3320 20 20 20 0a 53 57 49 5f 50 6f 64 75 6c 65 5f 52 | .SWI_Podule_R| 000a3330 65 61 64 42 79 74 65 73 20 20 20 20 20 20 20 20 |eadBytes | 000a3340 20 20 20 20 20 20 20 0a 53 57 49 5f 50 6f 64 75 | .SWI_Podu| 000a3350 6c 65 5f 57 72 69 74 65 42 79 74 65 73 20 20 20 |le_WriteBytes | 000a3360 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a3370 50 6f 64 75 6c 65 5f 43 61 6c 6c 4c 6f 61 64 65 |Podule_CallLoade| 000a3380 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |r .| 000a3390 53 57 49 5f 50 6f 64 75 6c 65 5f 52 61 77 52 65 |SWI_Podule_RawRe| 000a33a0 61 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |ad | 000a33b0 20 20 20 0a 53 57 49 5f 50 6f 64 75 6c 65 5f 52 | .SWI_Podule_R| 000a33c0 61 77 57 72 69 74 65 20 20 20 20 20 20 20 20 20 |awWrite | 000a33d0 20 20 20 20 20 20 20 0a 53 57 49 5f 50 6f 64 75 | .SWI_Podu| 000a33e0 6c 65 5f 48 61 72 64 77 61 72 65 41 64 64 72 65 |le_HardwareAddre| 000a33f0 73 73 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f |ss .SWI_| 000a3400 57 61 76 65 53 79 6e 74 68 5f 4c 6f 61 64 20 20 |WaveSynth_Load | 000a3410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a3420 53 57 49 5f 44 65 62 75 67 67 65 72 5f 44 69 73 |SWI_Debugger_Dis| 000a3430 61 73 73 65 6d 62 6c 65 20 20 20 20 20 20 20 20 |assemble | 000a3440 20 20 20 0a 53 57 49 5f 46 50 45 6d 75 6c 61 74 | .SWI_FPEmulat| 000a3450 6f 72 5f 56 65 72 73 69 6f 6e 20 20 20 20 20 20 |or_Version | 000a3460 20 20 20 20 20 20 20 0a 53 57 49 5f 46 69 6c 65 | .SWI_File| 000a3470 43 6f 72 65 5f 44 69 73 63 4f 70 20 20 20 20 20 |Core_DiscOp | 000a3480 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a3490 46 69 6c 65 43 6f 72 65 5f 43 72 65 61 74 65 20 |FileCore_Create | 000a34a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a | .| 000a34b0 53 57 49 5f 46 69 6c 65 43 6f 72 65 5f 44 72 69 |SWI_FileCore_Dri| 000a34c0 76 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 |ves | 000a34d0 20 20 20 0a 53 57 49 5f 46 69 6c 65 43 6f 72 65 | .SWI_FileCore| 000a34e0 5f 46 72 65 65 53 70 61 63 65 20 20 20 20 20 20 |_FreeSpace | 000a34f0 20 20 20 20 20 20 20 0a 53 57 49 5f 46 69 6c 65 | .SWI_File| 000a3500 43 6f 72 65 5f 46 6c 6f 70 70 79 53 74 72 75 63 |Core_FloppyStruc| 000a3510 74 75 72 65 20 20 20 20 20 20 20 0a 53 57 49 5f |ture .SWI_| 000a3520 46 69 6c 65 43 6f 72 65 5f 44 65 73 63 72 69 62 |FileCore_Describ| 000a3530 65 44 69 73 63 20 20 20 20 20 20 20 20 20 20 0a |eDisc .| 000a3540 53 57 49 5f 53 68 65 6c 6c 5f 43 72 65 61 74 65 |SWI_Shell_Create| 000a3550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a3560 20 20 20 0a 53 57 49 5f 53 68 65 6c 6c 5f 44 65 | .SWI_Shell_De| 000a3570 73 74 72 6f 79 20 20 20 20 20 20 20 20 20 20 20 |stroy | 000a3580 20 20 20 20 20 20 20 0a 53 57 49 5f 44 72 61 77 | .SWI_Draw| 000a3590 5f 50 72 6f 63 65 73 73 50 61 74 68 20 20 20 20 |_ProcessPath | 000a35a0 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f | .SWI_| 000a35b0 44 72 61 77 5f 50 72 6f 63 65 73 73 50 61 74 68 |Draw_ProcessPath| 000a35c0 46 50 20 20 20 20 20 20 20 20 20 20 20 20 20 0a |FP .| 000a35d0 53 57 49 5f 44 72 61 77 5f 46 69 6c 6c 0a 53 57 |SWI_Draw_Fill.SW| 000a35e0 49 5f 44 72 61 77 5f 46 69 6c 6c 46 50 20 20 20 |I_Draw_FillFP | 000a35f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000a3600 20 0a 53 57 49 5f 44 72 61 77 5f 53 74 72 6f 6b | .SWI_Draw_Strok| 000a3610 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |e | 000a3620 20 20 20 20 20 0a 53 57 49 5f 44 72 61 77 5f 53 | .SWI_Draw_S| 000a3630 74 72 6f 6b 65 46 50 20 20 20 20 20 20 20 20 20 |trokeFP | 000a3640 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f 44 72 | .SWI_Dr| 000a3650 61 77 5f 53 74 72 6f 6b 65 50 61 74 68 20 20 20 |aw_StrokePath | 000a3660 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 | .SW| 000a3670 49 5f 44 72 61 77 5f 53 74 72 6f 6b 65 50 61 74 |I_Draw_StrokePat| 000a3680 68 46 50 20 20 20 20 20 20 20 20 20 20 20 20 20 |hFP | 000a3690 20 0a 53 57 49 5f 44 72 61 77 5f 46 6c 61 74 74 | .SWI_Draw_Flatt| 000a36a0 65 6e 50 61 74 68 20 20 20 20 20 20 20 20 20 20 |enPath | 000a36b0 20 20 20 20 20 0a 53 57 49 5f 44 72 61 77 5f 46 | .SWI_Draw_F| 000a36c0 6c 61 74 74 65 6e 50 61 74 68 46 50 20 20 20 20 |lattenPathFP | 000a36d0 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f 44 72 | .SWI_Dr| 000a36e0 61 77 5f 54 72 61 6e 73 66 6f 72 6d 50 61 74 68 |aw_TransformPath| 000a36f0 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 | .SW| 000a3700 49 5f 44 72 61 77 5f 54 72 61 6e 73 66 6f 72 6d |I_Draw_Transform| 000a3710 50 61 74 68 46 50 20 20 20 20 20 20 20 20 20 20 |PathFP | 000a3720 20 0a 53 57 49 5f 52 61 6d 46 53 5f 44 69 73 63 | .SWI_RamFS_Disc| 000a3730 4f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |Op | 000a3740 20 20 20 20 20 0a 53 57 49 5f 52 61 6d 46 53 5f | .SWI_RamFS_| 000a3750 44 72 69 76 65 73 20 20 20 20 20 20 20 20 20 20 |Drives | 000a3760 20 20 20 20 20 20 20 20 20 0a 53 57 49 5f 52 61 | .SWI_Ra| 000a3770 6d 46 53 5f 46 72 65 65 53 70 61 63 65 20 20 20 |mFS_FreeSpace | 000a3780 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 53 57 | .SW| 000a3790 49 5f 52 61 6d 46 53 5f 44 65 73 63 72 69 62 65 |I_RamFS_Describe| 000a37a0 44 69 73 63 20 20 20 20 20 20 20 20 20 20 20 20 |Disc | 000a37b0 20 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 49 6e 20 | .#EndTable..In | 000a37c0 61 64 64 69 74 69 6f 6e 2c 20 7b 2a 7d 58 4f 53 |addition, {*}XOS| 000a37d0 5f 42 69 74 7b 2a 7d 20 69 73 20 64 65 66 69 6e |_Bit{*} is defin| 000a37e0 65 64 20 28 4f 52 20 74 68 69 73 20 77 69 74 68 |ed (OR this with| 000a37f0 20 74 68 65 20 53 57 49 20 6e 75 6d 62 65 72 20 | the SWI number | 000a3800 74 6f 20 73 65 74 20 74 68 65 20 58 20 62 69 74 |to set the X bit| 000a3810 29 2c 20 61 6e 64 20 7b 2a 7d 53 57 49 5f 4f 53 |), and {*}SWI_OS| 000a3820 5f 57 72 69 74 65 49 7b 2a 7d 20 69 73 20 61 6c |_WriteI{*} is al| 000a3830 73 6f 20 64 65 66 69 6e 65 64 2e 00 44 41 54 41 |so defined..DATA| 000a3840 83 02 00 00 73 79 73 74 65 6d 0a 53 79 6e 74 61 |....system.Synta| 000a3850 78 3a 09 69 6e 74 20 73 79 73 74 65 6d 20 28 63 |x:.int system (c| 000a3860 68 61 72 20 2a 73 74 72 29 3b 0a 48 65 61 64 65 |har *str);.Heade| 000a3870 72 3a 09 3c 73 74 64 6c 69 62 2e 68 3d 3e 73 74 |r:.<stdlib.h=>st| 000a3880 64 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |dlib>..Returns:.| 000a3890 30 20 66 6f 72 20 73 75 63 63 65 73 73 2c 20 2d |0 for success, -| 000a38a0 32 20 66 6f 72 20 66 61 69 6c 75 72 65 2e 0a 0a |2 for failure...| 000a38b0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 61 |This function pa| 000a38c0 73 73 65 73 20 74 68 65 20 73 74 72 69 6e 67 20 |sses the string | 000a38d0 67 69 76 65 6e 20 74 6f 20 74 68 65 20 68 6f 73 |given to the hos| 000a38e0 74 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 74 6f |t environment to| 000a38f0 20 62 65 20 65 78 65 63 75 74 65 64 2e 20 41 66 | be executed. Af| 000a3900 74 65 72 20 65 78 65 63 75 74 69 6f 6e 20 74 68 |ter execution th| 000a3910 65 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 72 6e |e command return| 000a3920 73 20 73 75 63 63 65 73 73 20 6f 72 20 66 61 69 |s success or fai| 000a3930 6c 75 72 65 3b 20 61 6e 79 20 6f 74 68 65 72 20 |lure; any other | 000a3940 76 61 6c 75 65 20 69 73 20 63 6f 6d 6d 61 6e 64 |value is command| 000a3950 20 73 70 65 63 69 66 69 63 2e 0a 0a 49 66 20 2f | specific...If /| 000a3960 73 74 72 2f 20 69 73 20 61 20 6e 75 6c 6c 20 70 |str/ is a null p| 000a3970 6f 69 6e 74 65 72 20 74 68 65 6e 20 74 68 65 20 |ointer then the | 000a3980 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 000a3990 20 6e 6f 6e 2d 7a 65 72 6f 20 69 66 20 74 68 69 | non-zero if thi| 000a39a0 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 |s function can b| 000a39b0 65 20 75 73 65 64 20 66 6f 72 20 65 78 65 63 75 |e used for execu| 000a39c0 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 28 79 |ting commands (y| 000a39d0 6f 75 20 73 68 6f 75 6c 64 20 63 68 65 63 6b 20 |ou should check | 000a39e0 74 68 69 73 20 62 65 66 6f 72 65 20 64 6f 69 6e |this before doin| 000a39f0 67 20 73 6f 29 2e 0a 0a 4f 6e 20 52 49 53 43 20 |g so)...On RISC | 000a3a00 4f 53 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |OS this function| 000a3a10 20 70 61 73 73 65 73 20 74 68 65 20 73 74 72 69 | passes the stri| 000a3a20 6e 67 20 67 69 76 65 6e 20 74 6f 20 74 68 65 20 |ng given to the | 000a3a30 43 4c 49 20 74 6f 20 62 65 20 65 78 65 63 75 74 |CLI to be execut| 000a3a40 65 64 20 61 73 20 69 66 20 69 74 20 68 61 64 20 |ed as if it had | 000a3a50 62 65 65 6e 20 74 79 70 65 64 20 69 6e 20 61 73 |been typed in as| 000a3a60 20 61 20 94 73 74 61 72 20 63 6f 6d 6d 61 6e 64 | a .star command| 000a3a70 95 2e 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c |.. For instance,| 000a3a80 20 7b 66 43 6f 64 65 7d 73 79 73 74 65 6d 28 22 | {fCode}system("| 000a3a90 4d 6f 64 75 6c 65 73 22 29 7b 66 7d 20 68 61 73 |Modules"){f} has| 000a3aa0 20 74 68 65 20 73 61 6d 65 20 65 66 66 65 63 74 | the same effect| 000a3ab0 20 61 73 20 3c 2a 4d 6f 64 75 6c 65 73 3e 2e 00 | as <*Modules>..| 000a3ac0 44 49 52 24 1c 04 00 00 1c 04 00 00 dc 3e 0a 00 |DIR$.........>..| 000a3ad0 46 ff ff ff 3c be bd 22 ab 00 00 00 13 00 00 00 |F...<.."........| 000a3ae0 00 00 00 00 74 61 6e 00 88 3f 0a 00 46 ff ff ff |....tan..?..F...| 000a3af0 55 d4 bd 22 ac 00 00 00 13 00 00 00 00 00 00 00 |U.."............| 000a3b00 74 61 6e 68 00 00 00 00 34 40 0a 00 46 fd ff ff |tanh....4@..F...| 000a3b10 07 e3 84 2f 2c 00 00 00 13 01 00 00 00 00 00 00 |.../,...........| 000a3b20 74 61 73 6b 5f 00 00 00 e0 40 0a 00 46 ff ff ff |task_....@..F...| 000a3b30 53 b1 35 26 f3 01 00 00 13 00 00 00 00 00 00 00 |S.5&............| 000a3b40 54 65 6d 70 6c 61 74 65 00 00 00 00 d4 42 0a 00 |Template.....B..| 000a3b50 46 fd ff ff 4a e3 84 2f 28 03 00 00 13 01 00 00 |F...J../(.......| 000a3b60 00 00 00 00 74 65 6d 70 6c 61 74 65 5f 00 00 00 |....template_...| 000a3b70 4c 60 0a 00 46 ff ff ff 78 ea 35 26 fd 00 00 00 |L`..F...x.5&....| 000a3b80 13 00 00 00 00 00 00 00 54 65 78 74 46 69 6c 65 |........TextFile| 000a3b90 00 00 00 00 4c 61 0a 00 46 fd ff ff 1e e5 84 2f |....La..F....../| 000a3ba0 a0 00 00 00 13 01 00 00 00 00 00 00 54 65 78 74 |............Text| 000a3bb0 46 69 6c 65 5f 00 00 00 a4 66 0a 00 46 fd ff ff |File_....f..F...| 000a3bc0 7e e5 84 2f 48 00 00 00 13 01 00 00 00 00 00 00 |~../H...........| 000a3bd0 74 66 6f 72 6d 5f 00 00 a4 6a 0a 00 46 fd ff ff |tform_...j..F...| 000a3be0 bd e5 84 2f 4c 00 00 00 13 01 00 00 00 00 00 00 |.../L...........| 000a3bf0 74 66 5f 00 0c 71 0a 00 46 ff ff ff 67 35 e2 22 |tf_..q..F...g5."| 000a3c00 a3 00 00 00 13 00 00 00 00 00 00 00 74 69 6d 65 |............time| 000a3c10 00 00 00 00 b0 71 0a 00 46 fd ff ff 12 e6 84 2f |.....q..F....../| 000a3c20 e0 01 00 00 13 01 00 00 00 00 00 00 54 69 6d 65 |............Time| 000a3c30 5f 00 00 00 10 83 0a 00 46 ff ff ff 1c e5 c0 22 |_.......F......"| 000a3c40 7f 01 00 00 13 00 00 00 00 00 00 00 74 6d 70 66 |............tmpf| 000a3c50 69 6c 65 00 90 84 0a 00 46 ff ff ff 5d 4c c1 22 |ile.....F...]L."| 000a3c60 cd 01 00 00 13 00 00 00 00 00 00 00 74 6d 70 6e |............tmpn| 000a3c70 61 6d 00 00 60 86 0a 00 46 fd ff ff 4e e7 84 2f |am..`...F...N../| 000a3c80 28 00 00 00 13 01 00 00 00 00 00 00 54 4d 50 5f |(...........TMP_| 000a3c90 00 00 00 00 34 87 0a 00 46 ff ff ff cc 59 bb 22 |....4...F....Y."| 000a3ca0 e9 00 00 00 13 00 00 00 00 00 00 00 74 6f 6c 6f |............tolo| 000a3cb0 77 65 72 00 20 88 0a 00 46 ff ff ff a0 60 bb 22 |wer. ...F....`."| 000a3cc0 e9 00 00 00 13 00 00 00 00 00 00 00 74 6f 75 70 |............toup| 000a3cd0 70 65 72 00 0c 89 0a 00 46 ff ff ff 22 f3 e1 24 |per.....F..."..$| 000a3ce0 b0 01 00 00 13 00 00 00 00 00 00 00 74 72 61 63 |............trac| 000a3cf0 65 00 00 00 bc 8a 0a 00 46 ff ff ff 83 fd e1 24 |e.......F......$| 000a3d00 ad 00 00 00 13 00 00 00 00 00 00 00 74 72 61 63 |............trac| 000a3d10 65 66 00 00 6c 8b 0a 00 46 fd ff ff b1 e7 84 2f |ef..l...F....../| 000a3d20 80 00 00 00 13 01 00 00 00 00 00 00 74 72 61 63 |............trac| 000a3d30 65 5f 00 00 b0 8e 0a 00 46 ff ff ff dc 86 b3 24 |e_......F......$| 000a3d40 c6 00 00 00 13 00 00 00 00 00 00 00 54 52 55 45 |............TRUE| 000a3d50 00 00 00 00 78 8f 0a 00 46 ff ff ff 7d 37 e4 24 |....x...F...}7.$| 000a3d60 88 00 00 00 13 00 00 00 00 00 00 00 74 78 74 00 |............txt.| 000a3d70 00 90 0a 00 46 ff ff ff 81 a6 e4 24 4a 03 00 00 |....F......$J...| 000a3d80 13 00 00 00 00 00 00 00 74 78 74 65 64 69 74 00 |........txtedit.| 000a3d90 4c 93 0a 00 46 fd ff ff 4c e8 84 2f dc 03 00 00 |L...F...L../....| 000a3da0 13 01 00 00 00 00 00 00 74 78 74 65 64 69 74 5f |........txtedit_| 000a3db0 00 00 00 00 e8 b5 0a 00 46 ff ff ff 4d cf e5 24 |........F...M..$| 000a3dc0 95 00 00 00 13 00 00 00 00 00 00 00 74 78 74 6f |............txto| 000a3dd0 70 74 00 00 80 b6 0a 00 46 fd ff ff 58 ea 84 2f |pt......F...X../| 000a3de0 54 00 00 00 13 01 00 00 00 00 00 00 74 78 74 6f |T...........txto| 000a3df0 70 74 5f 00 18 b9 0a 00 46 ff ff ff 1e eb e5 24 |pt_.....F......$| 000a3e00 b5 00 00 00 13 00 00 00 00 00 00 00 74 78 74 73 |............txts| 000a3e10 63 72 61 70 00 00 00 00 d0 b9 0a 00 46 fd ff ff |crap........F...| 000a3e20 a2 ea 84 2f 54 00 00 00 13 01 00 00 00 00 00 00 |.../T...........| 000a3e30 74 78 74 73 63 72 61 70 5f 00 00 00 b8 bc 0a 00 |txtscrap_.......| 000a3e40 46 ff ff ff 5d 19 e6 24 d5 00 00 00 13 00 00 00 |F...]..$........| 000a3e50 00 00 00 00 74 78 74 77 69 6e 00 00 90 bd 0a 00 |....txtwin......| 000a3e60 46 fd ff ff f2 ea 84 2f 94 00 00 00 13 01 00 00 |F....../........| 000a3e70 00 00 00 00 74 78 74 77 69 6e 5f 00 14 c2 0a 00 |....txtwin_.....| 000a3e80 46 fd ff ff 6f eb 84 2f 84 07 00 00 13 01 00 00 |F...o../........| 000a3e90 00 00 00 00 54 58 54 5f 00 00 00 00 00 fe 0a 00 |....TXT_........| 000a3ea0 46 ff ff ff 30 b2 e2 24 8c 00 00 00 13 00 00 00 |F...0..$........| 000a3eb0 00 00 00 00 74 79 70 64 61 74 00 00 8c fe 0a 00 |....typdat......| 000a3ec0 46 ff ff ff 6f 91 e3 22 c1 01 00 00 13 00 00 00 |F...o.."........| 000a3ed0 00 00 00 00 74 79 70 65 64 65 66 00 44 41 54 41 |....typedef.DATA| 000a3ee0 ab 00 00 00 74 61 6e 0a 53 79 6e 74 61 78 3a 09 |....tan.Syntax:.| 000a3ef0 64 6f 75 62 6c 65 20 74 61 6e 20 28 64 6f 75 62 |double tan (doub| 000a3f00 6c 65 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c |le x);.Header:.<| 000a3f10 6d 61 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 |math.h=>math>..R| 000a3f20 65 74 75 72 6e 73 3a 09 54 68 65 20 74 61 6e 67 |eturns:.The tang| 000a3f30 65 6e 74 20 6f 66 20 78 20 69 6e 20 72 61 64 69 |ent of x in radi| 000a3f40 61 6e 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ans...This funct| 000a3f50 69 6f 6e 20 63 61 6c 63 75 6c 61 74 65 73 20 74 |ion calculates t| 000a3f60 68 65 20 70 72 69 6e 63 69 70 61 6c 20 76 61 6c |he principal val| 000a3f70 75 65 20 6f 66 20 74 68 65 20 74 61 6e 67 65 6e |ue of the tangen| 000a3f80 74 20 6f 66 20 78 2e 00 44 41 54 41 ac 00 00 00 |t of x..DATA....| 000a3f90 74 61 6e 68 0a 53 79 6e 74 61 78 3a 09 64 6f 75 |tanh.Syntax:.dou| 000a3fa0 62 6c 65 20 74 61 6e 68 20 28 64 6f 75 62 6c 65 |ble tanh (double| 000a3fb0 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 6d 61 | x);.Header:.<ma| 000a3fc0 74 68 2e 68 3d 3e 6d 61 74 68 3e 0a 0a 52 65 74 |th.h=>math>..Ret| 000a3fd0 75 72 6e 73 3a 09 54 68 65 20 68 79 70 65 72 62 |urns:.The hyperb| 000a3fe0 6f 6c 69 63 20 74 61 6e 67 65 6e 74 20 6f 66 20 |olic tangent of | 000a3ff0 78 20 69 6e 20 72 61 64 69 61 6e 73 2e 0a 0a 54 |x in radians...T| 000a4000 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 000a4010 63 75 6c 61 74 65 73 20 74 68 65 20 68 79 70 65 |culates the hype| 000a4020 72 62 6f 6c 69 63 20 74 61 6e 67 65 6e 74 20 6f |rbolic tangent o| 000a4030 66 20 78 2e 44 49 52 24 2c 00 00 00 2c 00 00 00 |f x.DIR$,...,...| 000a4040 60 40 0a 00 46 ff ff ff 1d 77 37 26 7e 00 00 00 |`@..F....w7&~...| 000a4050 13 00 00 00 00 00 00 00 68 61 6e 64 6c 65 00 00 |........handle..| 000a4060 44 41 54 41 7e 00 00 00 74 61 73 6b 5f 68 61 6e |DATA~...task_han| 000a4070 64 6c 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 |dle.This type is| 000a4080 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 000a4090 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d |kLib:Wimp.h=>Wim| 000a40a0 70 3e 20 61 73 20 61 20 74 79 70 65 20 68 6f 6c |p> as a type hol| 000a40b0 64 69 6e 67 20 61 20 74 61 73 6b 20 68 61 6e 64 |ding a task hand| 000a40c0 6c 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |le. It is define| 000a40d0 64 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 |d as an /int/...| 000a40e0 44 41 54 41 f3 01 00 00 44 65 73 6b 4c 69 62 3a |DATA....DeskLib:| 000a40f0 54 65 6d 70 6c 61 74 65 2e 68 0a 56 65 72 73 69 |Template.h.Versi| 000a4100 6f 6e 3a 20 31 2e 30 35 20 28 44 65 63 20 31 39 |on: 1.05 (Dec 19| 000a4110 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 20 68 |94).#line.This h| 000a4120 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 |eader declares f| 000a4130 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 6c 6f 61 |unctions for loa| 000a4140 64 69 6e 67 2c 20 63 61 63 68 65 69 6e 67 20 61 |ding, cacheing a| 000a4150 6e 64 20 72 65 74 72 69 76 65 69 6e 67 20 77 69 |nd retriveing wi| 000a4160 6e 64 6f 77 20 74 65 6d 70 6c 61 74 65 73 2e 0a |ndow templates..| 000a4170 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 69 6e |.Functions:..#in| 000a4180 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 20 63 6f |dent 5.#Table co| 000a4190 6c 75 6d 6e 73 20 32 0a 3c 54 65 6d 70 6c 61 74 |lumns 2.<Templat| 000a41a0 65 5f 49 6e 69 74 69 61 6c 69 73 65 3e 0a 3c 54 |e_Initialise>.<T| 000a41b0 65 6d 70 6c 61 74 65 5f 46 69 6e 64 3e 0a 3c 54 |emplate_Find>.<T| 000a41c0 65 6d 70 6c 61 74 65 5f 43 6c 6f 6e 65 3e 0a 3c |emplate_Clone>.<| 000a41d0 54 65 6d 70 6c 61 74 65 5f 46 72 65 65 3e 0a 3c |Template_Free>.<| 000a41e0 54 65 6d 70 6c 61 74 65 5f 44 65 6c 65 74 65 3e |Template_Delete>| 000a41f0 0a 3c 54 65 6d 70 6c 61 74 65 5f 43 6c 65 61 72 |.<Template_Clear| 000a4200 41 6c 6c 3e 0a 3c 54 65 6d 70 6c 61 74 65 5f 4c |All>.<Template_L| 000a4210 6f 61 64 46 69 6c 65 3e 0a 3c 54 65 6d 70 6c 61 |oadFile>.<Templa| 000a4220 74 65 5f 55 73 65 4f 75 74 6c 69 6e 65 46 6f 6e |te_UseOutlineFon| 000a4230 74 73 3e 0a 3c 54 65 6d 70 6c 61 74 65 5f 55 73 |ts>.<Template_Us| 000a4240 65 53 70 72 69 74 65 41 72 65 61 3e 0a 3c 54 65 |eSpriteArea>.<Te| 000a4250 6d 70 6c 61 74 65 5f 4c 69 6e 6b 53 70 72 69 74 |mplate_LinkSprit| 000a4260 65 41 72 65 61 3e 0a 23 45 6e 64 54 61 62 6c 65 |eArea>.#EndTable| 000a4270 0a 23 69 6e 64 65 6e 74 0a 0a 4d 61 63 72 6f 73 |.#indent..Macros| 000a4280 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 0a 23 54 61 |:..#indent 4.#Ta| 000a4290 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 74 |ble columns 2.<t| 000a42a0 65 6d 70 6c 61 74 65 5f 54 49 54 4c 45 4d 49 4e |emplate_TITLEMIN| 000a42b0 3e 0a 3c 74 65 6d 70 6c 61 74 65 5f 54 49 54 4c |>.<template_TITL| 000a42c0 45 44 45 46 41 55 4c 54 3e 0a 23 45 6e 64 54 61 |EDEFAULT>.#EndTa| 000a42d0 62 6c 65 00 44 49 52 24 28 03 00 00 28 03 00 00 |ble.DIR$(...(...| 000a42e0 fc 45 0a 00 46 fd ff ff 64 a2 e1 24 eb 00 00 00 |.E..F...d..$....| 000a42f0 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 000a4300 e8 46 0a 00 46 ff ff ff b8 9f 48 26 0c 01 00 00 |.F..F.....H&....| 000a4310 13 00 00 00 00 00 00 00 62 6c 6f 63 6b 00 00 00 |........block...| 000a4320 f4 47 0a 00 46 ff ff ff d3 1c b6 22 df 00 00 00 |.G..F......"....| 000a4330 13 00 00 00 00 00 00 00 43 6c 65 61 72 00 00 00 |........Clear...| 000a4340 d4 48 0a 00 46 ff ff ff a9 80 34 26 5c 02 00 00 |.H..F.....4&\...| 000a4350 13 00 00 00 00 00 00 00 43 6c 6f 6e 65 00 00 00 |........Clone...| 000a4360 30 4b 0a 00 46 ff ff ff 1a 85 e1 24 c4 00 00 00 |0K..F......$....| 000a4370 13 00 00 00 00 00 00 00 63 6f 70 79 00 00 00 00 |........copy....| 000a4380 f4 4b 0a 00 46 ff ff ff c1 f4 34 26 4d 01 00 00 |.K..F.....4&M...| 000a4390 13 00 00 00 00 00 00 00 44 65 6c 65 74 65 00 00 |........Delete..| 000a43a0 44 4d 0a 00 46 ff ff ff 35 67 e1 24 9b 01 00 00 |DM..F...5g.$....| 000a43b0 13 00 00 00 00 00 00 00 46 69 6e 64 00 00 00 00 |........Find....| 000a43c0 e0 4e 0a 00 46 ff ff ff d8 6e e1 24 c7 00 00 00 |.N..F....n.$....| 000a43d0 13 00 00 00 00 00 00 00 66 69 6e 64 5f 00 00 00 |........find_...| 000a43e0 a8 4f 0a 00 46 ff ff ff d1 e3 34 26 6f 01 00 00 |.O..F.....4&o...| 000a43f0 13 00 00 00 00 00 00 00 46 72 65 65 00 00 00 00 |........Free....| 000a4400 18 51 0a 00 46 ff ff ff a9 74 e1 24 ae 01 00 00 |.Q..F....t.$....| 000a4410 13 00 00 00 00 00 00 00 68 00 00 00 c8 52 0a 00 |........h....R..| 000a4420 46 ff ff ff 6a 5a e1 24 cc 00 00 00 13 00 00 00 |F...jZ.$........| 000a4430 00 00 00 00 69 6e 69 74 00 00 00 00 94 53 0a 00 |....init.....S..| 000a4440 46 ff ff ff ca 67 34 26 e7 00 00 00 13 00 00 00 |F....g4&........| 000a4450 00 00 00 00 49 6e 69 74 69 61 6c 69 73 65 00 00 |....Initialise..| 000a4460 7c 54 0a 00 46 ff ff ff 1a 7f e1 24 cc 00 00 00 ||T..F......$....| 000a4470 13 00 00 00 00 00 00 00 6c 6f 61 64 65 64 00 00 |........loaded..| 000a4480 48 55 0a 00 46 ff ff ff e1 1d 35 26 70 01 00 00 |HU..F.....5&p...| 000a4490 13 00 00 00 00 00 00 00 4c 6f 61 64 46 69 6c 65 |........LoadFile| 000a44a0 00 00 00 00 b8 56 0a 00 46 ff ff ff 86 5f e1 24 |.....V..F...._.$| 000a44b0 1c 01 00 00 13 00 00 00 00 00 00 00 72 65 61 64 |............read| 000a44c0 66 69 6c 65 00 00 00 00 d4 57 0a 00 46 ff ff ff |file.....W..F...| 000a44d0 c9 99 e1 24 48 01 00 00 13 00 00 00 00 00 00 00 |...$H...........| 000a44e0 73 79 73 68 61 6e 64 6c 65 00 00 00 1c 59 0a 00 |syshandle....Y..| 000a44f0 46 ff ff ff f7 92 e1 24 df 00 00 00 13 00 00 00 |F......$........| 000a4500 00 00 00 00 75 73 65 5f 66 61 6e 63 79 66 6f 6e |....use_fancyfon| 000a4510 74 73 00 00 fc 59 0a 00 46 ff ff ff bc 43 35 26 |ts...Y..F....C5&| 000a4520 6a 01 00 00 13 00 00 00 00 00 00 00 55 73 65 4f |j...........UseO| 000a4530 75 74 6c 69 6e 65 46 6f 6e 74 73 00 68 5b 0a 00 |utlineFonts.h[..| 000a4540 46 ff ff ff 11 b4 34 26 06 01 00 00 13 00 00 00 |F.....4&........| 000a4550 00 00 00 00 54 49 54 4c 45 44 45 46 41 55 4c 54 |....TITLEDEFAULT| 000a4560 00 00 00 00 70 5c 0a 00 46 ff ff ff ab ce 34 26 |....p\..F.....4&| 000a4570 01 01 00 00 13 00 00 00 00 00 00 00 54 49 54 4c |............TITL| 000a4580 45 4d 49 4e 00 00 00 00 74 5d 0a 00 46 ff ff ff |EMIN....t]..F...| 000a4590 79 15 35 26 c8 00 00 00 13 00 00 00 00 00 00 00 |y.5&............| 000a45a0 43 6c 65 61 72 41 6c 6c 00 00 00 00 3c 5e 0a 00 |ClearAll....<^..| 000a45b0 46 ff ff ff 07 6e 35 26 43 01 00 00 13 00 00 00 |F....n5&C.......| 000a45c0 00 00 00 00 55 73 65 53 70 72 69 74 65 41 72 65 |....UseSpriteAre| 000a45d0 61 00 00 00 80 5f 0a 00 46 ff ff ff a5 d4 35 26 |a...._..F.....5&| 000a45e0 c9 00 00 00 13 00 00 00 00 00 00 00 4c 69 6e 6b |............Link| 000a45f0 53 70 72 69 74 65 41 72 65 61 00 00 44 41 54 41 |SpriteArea..DATA| 000a4600 eb 00 00 00 74 65 6d 70 6c 61 74 65 0a 54 68 69 |....template.Thi| 000a4610 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000a4620 64 20 69 6e 20 3c 74 65 6d 70 6c 61 74 65 2e 68 |d in <template.h| 000a4630 3d 3e 74 65 6d 70 6c 61 74 65 5f 68 3e 2e 20 49 |=>template_h>. I| 000a4640 74 20 69 73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 |t is an element | 000a4650 6f 66 20 61 20 6c 69 6e 6b 65 64 20 6c 69 73 74 |of a linked list| 000a4660 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 74 65 6d 70 |... \{. temp| 000a4670 6c 61 74 65 09 2a 6e 65 78 74 3b 0a 20 20 20 20 |late.*next;. | 000a4680 63 68 61 72 09 2a 77 6f 72 6b 73 70 61 63 65 3b |char.*workspace;| 000a4690 0a 20 20 20 20 69 6e 74 09 09 77 6f 72 6b 73 70 |. int..worksp| 000a46a0 61 63 65 73 69 7a 65 3b 0a 20 20 20 20 63 68 61 |acesize;. cha| 000a46b0 72 09 2a 66 6f 6e 74 3b 0a 20 20 20 20 63 68 61 |r.*font;. cha| 000a46c0 72 09 6e 61 6d 65 5b 31 32 5d 3b 0a 20 20 20 20 |r.name[12];. | 000a46d0 3c 77 69 6d 70 5f 77 69 6e 64 3e 09 77 69 6e 64 |<wimp_wind>.wind| 000a46e0 6f 77 3b 0a 20 20 7d 00 44 41 54 41 0c 01 00 00 |ow;. }.DATA....| 000a46f0 74 65 6d 70 6c 61 74 65 5f 62 6c 6f 63 6b 0a 54 |template_block.T| 000a4700 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000a4710 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000a4720 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 20 61 73 |Wimp.h=>Wimp> as| 000a4730 20 61 20 74 79 70 65 20 68 6f 6c 64 69 6e 67 20 | a type holding | 000a4740 64 61 74 61 20 66 6f 72 20 75 73 65 20 62 79 20 |data for use by | 000a4750 3c 57 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c 61 |<Wimp_LoadTempla| 000a4760 74 65 3e 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c |te>... \{. <| 000a4770 77 69 6e 64 6f 77 5f 62 6c 6f 63 6b 3e 09 2a 62 |window_block>.*b| 000a4780 75 66 66 65 72 3b 0a 20 20 20 20 63 68 61 72 09 |uffer;. char.| 000a4790 09 2a 77 6f 72 6b 66 72 65 65 3b 0a 20 20 20 20 |.*workfree;. | 000a47a0 63 68 61 72 09 09 2a 77 6f 72 6b 65 6e 64 3b 0a |char..*workend;.| 000a47b0 20 20 20 20 3c 66 6f 6e 74 5f 61 72 72 61 79 3e | <font_array>| 000a47c0 09 2a 66 6f 6e 74 3b 0a 20 20 20 20 63 68 61 72 |.*font;. char| 000a47d0 09 09 2a 6e 61 6d 65 3b 0a 20 20 20 20 75 6e 73 |..*name;. uns| 000a47e0 69 67 6e 65 64 20 69 6e 74 09 69 6e 64 65 78 3b |igned int.index;| 000a47f0 0a 20 20 7d 44 41 54 41 df 00 00 00 54 65 6d 70 |. }DATA....Temp| 000a4800 6c 61 74 65 5f 43 6c 65 61 72 0a 53 79 6e 74 61 |late_Clear.Synta| 000a4810 78 3a 20 20 76 6f 69 64 20 54 65 6d 70 6c 61 74 |x: void Templat| 000a4820 65 5f 43 6c 65 61 72 41 6c 6c 20 28 76 6f 69 64 |e_ClearAll (void| 000a4830 29 3b 0a 48 65 61 64 65 72 3a 20 20 3c 44 65 73 |);.Header: <Des| 000a4840 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 2e 68 3d |kLib:Template.h=| 000a4850 3e 54 65 6d 70 6c 61 74 65 3e 0a 0a 54 68 69 73 |>Template>..This| 000a4860 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c 65 74 65 | function delete| 000a4870 73 20 61 6c 6c 20 74 68 65 20 74 65 6d 70 6c 61 |s all the templa| 000a4880 74 65 73 20 66 72 6f 6d 0a 6d 65 6d 6f 72 79 2e |tes from.memory.| 000a4890 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e | It is equivalen| 000a48a0 74 20 74 6f 20 54 65 6d 70 6c 61 74 65 5f 44 65 |t to Template_De| 000a48b0 6c 65 74 65 0a 75 73 65 64 20 6f 6e 20 65 76 65 |lete.used on eve| 000a48c0 72 79 20 74 65 6d 70 6c 61 74 65 20 6c 6f 61 64 |ry template load| 000a48d0 65 64 2e 00 44 41 54 41 5c 02 00 00 54 65 6d 70 |ed..DATA\...Temp| 000a48e0 6c 61 74 65 5f 43 6c 6f 6e 65 0a 53 79 6e 74 61 |late_Clone.Synta| 000a48f0 78 3a 09 3c 77 69 6e 64 6f 77 5f 62 6c 6f 63 6b |x:.<window_block| 000a4900 3e 20 2a 54 65 6d 70 6c 61 74 65 5f 43 6c 6f 6e |> *Template_Clon| 000a4910 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 |e (char *name, i| 000a4920 6e 74 20 6d 61 78 74 69 74 6c 65 73 69 7a 65 29 |nt maxtitlesize)| 000a4930 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000a4940 69 62 3a 54 65 6d 70 6c 61 74 65 2e 68 3d 3e 54 |ib:Template.h=>T| 000a4950 65 6d 70 6c 61 74 65 3e 0a 0a 52 65 74 75 72 6e |emplate>..Return| 000a4960 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 77 69 |s:.Pointer to wi| 000a4970 6e 64 6f 77 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |ndow, or <NULL> | 000a4980 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 0a 54 |if not found...T| 000a4990 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b |his function mak| 000a49a0 65 73 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 |es a copy of the| 000a49b0 20 6e 61 6d 65 64 20 74 65 6d 70 6c 61 74 65 20 | named template | 000a49c0 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 70 6f |and returns a po| 000a49d0 69 6e 74 65 72 20 74 6f 20 74 68 65 20 63 6f 70 |inter to the cop| 000a49e0 79 2e 20 2f 6d 61 78 74 69 74 6c 65 73 69 7a 65 |y. /maxtitlesize| 000a49f0 2f 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |/ is the number | 000a4a00 6f 66 20 62 79 74 65 73 20 74 68 61 74 20 73 68 |of bytes that sh| 000a4a10 6f 75 6c 64 20 65 76 65 72 20 62 65 20 61 6c 6c |ould ever be all| 000a4a20 6f 63 61 74 65 64 20 66 6f 72 20 74 68 65 20 74 |ocated for the t| 000a4a30 69 74 6c 65 2c 20 73 69 6e 63 65 20 6f 6e 63 65 |itle, since once| 000a4a40 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 20 63 | the window is c| 000a4a50 72 65 61 74 65 64 20 69 74 20 63 61 6e 6e 6f 74 |reated it cannot| 000a4a60 20 62 65 20 63 68 61 6e 67 65 64 2e 20 54 68 65 | be changed. The| 000a4a70 20 76 61 6c 75 65 20 30 20 28 6f 72 20 3c 74 65 | value 0 (or <te| 000a4a80 6d 70 6c 61 74 65 5f 54 49 54 4c 45 44 45 46 41 |mplate_TITLEDEFA| 000a4a90 55 4c 54 3e 29 20 77 69 6c 6c 20 61 6c 6c 6f 63 |ULT>) will alloc| 000a4aa0 61 74 65 20 32 36 30 20 62 79 74 65 73 2c 20 61 |ate 260 bytes, a| 000a4ab0 6e 64 20 2d 31 20 28 3c 74 65 6d 70 6c 61 74 65 |nd -1 (<template| 000a4ac0 5f 54 49 54 4c 45 4d 49 4e 3e 29 20 77 69 6c 6c |_TITLEMIN>) will| 000a4ad0 20 61 6c 6c 6f 63 61 74 65 20 77 68 61 74 65 76 | allocate whatev| 000a4ae0 65 72 20 77 61 73 20 73 65 74 20 69 6e 20 74 68 |er was set in th| 000a4af0 65 20 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 2e |e template file.| 000a4b00 20 54 68 69 73 20 69 73 20 74 68 65 20 72 65 63 | This is the rec| 000a4b10 6f 6d 6d 65 6e 64 65 64 20 76 61 6c 75 65 20 66 |ommended value f| 000a4b20 6f 72 20 6d 6f 73 74 20 77 69 6e 64 6f 77 73 2e |or most windows.| 000a4b30 44 41 54 41 c4 00 00 00 74 65 6d 70 6c 61 74 65 |DATA....template| 000a4b40 5f 63 6f 70 79 0a 53 79 6e 74 61 78 3a 09 3c 74 |_copy.Syntax:.<t| 000a4b50 65 6d 70 6c 61 74 65 3d 3e 74 65 6d 70 6c 61 74 |emplate=>templat| 000a4b60 65 5f 3e 20 2a 74 65 6d 70 6c 61 74 65 5f 63 6f |e_> *template_co| 000a4b70 70 79 20 28 74 65 6d 70 6c 61 74 65 20 2a 66 72 |py (template *fr| 000a4b80 6f 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 65 |om);.Header:.<te| 000a4b90 6d 70 6c 61 74 65 2e 68 3d 3e 74 65 6d 70 6c 61 |mplate.h=>templa| 000a4ba0 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |te_h>..Returns:.| 000a4bb0 50 6f 69 6e 74 65 72 20 74 6f 20 63 6f 70 79 2e |Pointer to copy.| 000a4bc0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000a4bd0 63 72 65 61 74 65 73 20 61 20 63 6f 70 79 20 6f |creates a copy o| 000a4be0 66 20 61 20 74 65 6d 70 6c 61 74 65 20 2f 66 72 |f a template /fr| 000a4bf0 6f 6d 2f 2e 44 41 54 41 4d 01 00 00 54 65 6d 70 |om/.DATAM...Temp| 000a4c00 6c 61 74 65 5f 44 65 6c 65 74 65 0a 53 79 6e 74 |late_Delete.Synt| 000a4c10 61 78 3a 09 76 6f 69 64 20 54 65 6d 70 6c 61 74 |ax:.void Templat| 000a4c20 65 5f 44 65 6c 65 74 65 20 28 63 68 61 72 20 2a |e_Delete (char *| 000a4c30 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c |name);.Header:.<| 000a4c40 44 65 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 |DeskLib:Template| 000a4c50 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 3e 0a 0a 54 |.h=>Template>..T| 000a4c60 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c |his function del| 000a4c70 65 74 65 73 20 74 68 65 20 6e 61 6d 65 64 20 74 |etes the named t| 000a4c80 65 6d 70 6c 61 74 65 20 66 72 6f 6d 20 74 68 6f |emplate from tho| 000a4c90 73 65 20 61 76 61 69 6c 61 62 6c 65 20 61 6e 64 |se available and| 000a4ca0 20 66 72 65 65 73 20 74 68 65 20 6d 65 6d 6f 72 | frees the memor| 000a4cb0 79 20 75 73 65 64 20 62 79 20 69 74 2e 20 49 66 |y used by it. If| 000a4cc0 20 61 6e 79 20 77 69 6e 64 6f 77 73 20 61 72 65 | any windows are| 000a4cd0 20 6f 70 65 6e 20 75 73 69 6e 67 20 74 68 69 73 | open using this| 000a4ce0 20 74 65 6d 70 6c 61 74 65 2c 20 79 6f 75 20 61 | template, you a| 000a4cf0 72 65 20 69 6e 20 6d 61 6a 6f 72 20 74 72 6f 75 |re in major trou| 000a4d00 62 6c 65 2c 20 6d 61 74 65 79 20 62 6f 79 21 20 |ble, matey boy! | 000a4d10 3c 54 65 6d 70 6c 61 74 65 5f 43 6c 6f 6e 65 3e |<Template_Clone>| 000a4d20 27 64 20 74 65 6d 70 6c 61 74 65 73 20 77 69 6c |'d templates wil| 000a4d30 6c 20 62 65 20 4f 4b 2c 20 74 68 6f 75 67 68 21 |l be OK, though!| 000a4d40 2e 00 00 00 44 41 54 41 9b 01 00 00 54 65 6d 70 |....DATA....Temp| 000a4d50 6c 61 74 65 5f 46 69 6e 64 0a 53 79 6e 74 61 78 |late_Find.Syntax| 000a4d60 3a 09 3c 77 69 6e 64 6f 77 5f 62 6c 6f 63 6b 3e |:.<window_block>| 000a4d70 20 2a 54 65 6d 70 6c 61 74 65 5f 46 69 6e 64 20 | *Template_Find | 000a4d80 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 |(char *name);.He| 000a4d90 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 54 |ader:.<DeskLib:T| 000a4da0 65 6d 70 6c 61 74 65 2e 68 3d 3e 54 65 6d 70 6c |emplate.h=>Templ| 000a4db0 61 74 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |ate>..Returns:.P| 000a4dc0 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 77 69 |ointer to the wi| 000a4dd0 6e 64 6f 77 20 64 65 66 69 6e 69 74 69 6f 6e 2e |ndow definition.| 000a4de0 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68 65 20 44 |..See also the D| 000a4df0 65 73 6b 74 6f 70 20 43 20 66 75 6e 63 74 69 6f |esktop C functio| 000a4e00 6e 2c 20 3c 74 65 6d 70 6c 61 74 65 5f 66 69 6e |n, <template_fin| 000a4e10 64 3d 3e 74 65 6d 70 6c 61 74 65 5f 66 69 6e 64 |d=>template_find| 000a4e20 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |_>...This functi| 000a4e30 6f 6e 20 74 72 69 65 73 20 74 6f 20 66 69 6e 64 |on tries to find| 000a4e40 20 74 68 65 20 6e 61 6d 65 64 20 74 65 6d 70 6c | the named templ| 000a4e50 61 74 65 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 |ate, and return | 000a4e60 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 69 74 2e |a pointer to it.| 000a4e70 20 54 68 69 73 20 69 73 20 74 68 65 20 6f 72 69 | This is the ori| 000a4e80 67 69 6e 61 6c 2c 20 73 6f 20 64 6f 6e 27 74 20 |ginal, so don't | 000a4e90 6d 65 73 73 20 69 74 20 75 70 20 70 6c 65 61 73 |mess it up pleas| 000a4ea0 65 21 20 54 68 65 20 74 65 6d 70 6c 61 74 65 20 |e! The template | 000a4eb0 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e 20 6c |must have been l| 000a4ec0 6f 61 64 65 64 20 77 69 74 68 20 3c 54 65 6d 70 |oaded with <Temp| 000a4ed0 6c 61 74 65 5f 4c 6f 61 64 46 69 6c 65 3e 2e 00 |late_LoadFile>..| 000a4ee0 44 41 54 41 c7 00 00 00 74 65 6d 70 6c 61 74 65 |DATA....template| 000a4ef0 5f 66 69 6e 64 0a 53 79 6e 74 61 78 3a 09 3c 74 |_find.Syntax:.<t| 000a4f00 65 6d 70 6c 61 74 65 3d 3e 74 65 6d 70 6c 61 74 |emplate=>templat| 000a4f10 65 5f 3e 20 2a 74 65 6d 70 6c 61 74 65 5f 66 69 |e_> *template_fi| 000a4f20 6e 64 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b |nd (char *name);| 000a4f30 0a 48 65 61 64 65 72 3a 09 3c 74 65 6d 70 6c 61 |.Header:.<templa| 000a4f40 74 65 2e 68 3d 3e 74 65 6d 70 6c 61 74 65 5f 68 |te.h=>template_h| 000a4f50 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000a4f60 74 65 72 20 74 6f 20 66 6f 75 6e 64 20 74 65 6d |ter to found tem| 000a4f70 70 6c 61 74 65 2e 0a 0a 54 68 69 73 20 66 75 6e |plate...This fun| 000a4f80 63 74 69 6f 6e 20 74 72 69 65 73 20 74 6f 20 66 |ction tries to f| 000a4f90 69 6e 64 20 74 68 65 20 6e 61 6d 65 64 20 74 65 |ind the named te| 000a4fa0 6d 70 6c 61 74 65 2e 00 44 41 54 41 6f 01 00 00 |mplate..DATAo...| 000a4fb0 54 65 6d 70 6c 61 74 65 5f 46 72 65 65 0a 53 79 |Template_Free.Sy| 000a4fc0 6e 74 61 78 3a 09 76 6f 69 64 20 54 65 6d 70 6c |ntax:.void Templ| 000a4fd0 61 74 65 5f 46 72 65 65 20 28 3c 77 69 6e 64 6f |ate_Free (<windo| 000a4fe0 77 5f 62 6c 6f 63 6b 3e 20 2a 2a 77 69 6e 64 6f |w_block> **windo| 000a4ff0 77 64 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c |wdef);.Header:.<| 000a5000 44 65 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 |DeskLib:Template| 000a5010 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 3e 0a 0a 54 |.h=>Template>..T| 000a5020 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 72 65 |his function fre| 000a5030 65 73 20 74 68 65 20 6d 65 6d 6f 72 79 20 75 73 |es the memory us| 000a5040 65 64 20 62 79 20 61 20 77 69 6e 64 6f 77 20 64 |ed by a window d| 000a5050 65 66 69 6e 69 74 69 6f 6e 20 63 72 65 61 74 65 |efinition create| 000a5060 64 20 62 79 20 3c 54 65 6d 70 6c 61 74 65 5f 43 |d by <Template_C| 000a5070 6c 6f 6e 65 3e 2e 20 59 6f 75 20 6d 75 73 74 20 |lone>. You must | 000a5080 70 61 73 73 20 69 6e 20 61 20 70 6f 69 6e 74 65 |pass in a pointe| 000a5090 72 20 74 6f 20 61 20 7b 2a 7d 77 69 6e 64 6f 77 |r to a {*}window| 000a50a0 5f 62 6c 6f 63 6b 20 2a 7b 2a 7d 2e 20 54 68 65 |_block *{*}. The| 000a50b0 20 6d 65 6d 6f 72 79 20 77 69 6c 6c 20 62 65 20 | memory will be | 000a50c0 66 72 65 65 64 20 28 69 6e 63 6c 75 64 69 6e 67 |freed (including| 000a50d0 20 69 6e 64 69 72 65 63 74 65 64 20 73 70 61 63 | indirected spac| 000a50e0 65 29 2c 20 61 6e 64 20 74 68 65 20 7b 2a 7d 77 |e), and the {*}w| 000a50f0 69 6e 64 6f 77 5f 62 6c 6f 63 6b 20 2a 7b 2a 7d |indow_block *{*}| 000a5100 20 77 69 6c 6c 20 62 65 20 73 65 74 20 74 6f 20 | will be set to | 000a5110 3c 4e 55 4c 4c 3e 2e 00 44 41 54 41 ae 01 00 00 |<NULL>..DATA....| 000a5120 74 65 6d 70 6c 61 74 65 2e 68 0a 54 68 69 73 20 |template.h.This | 000a5130 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 |header declares | 000a5140 66 75 6e 63 74 69 6f 6e 73 20 75 73 65 64 20 66 |functions used f| 000a5150 6f 72 20 6c 6f 61 64 69 6e 67 2f 6d 61 6e 69 70 |or loading/manip| 000a5160 75 6c 61 74 69 6e 67 20 74 65 6d 70 6c 61 74 65 |ulating template| 000a5170 73 2e 20 54 68 65 20 74 65 6d 70 6c 61 74 65 73 |s. The templates| 000a5180 20 61 72 65 20 61 73 73 75 6d 65 64 20 74 6f 20 | are assumed to | 000a5190 62 65 20 68 65 6c 64 20 69 6e 20 61 20 66 69 6c |be held in a fil| 000a51a0 65 20 22 54 65 6d 70 6c 61 74 65 73 22 20 69 6e |e "Templates" in| 000a51b0 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e | the application| 000a51c0 27 73 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 46 |'s directory...F| 000a51d0 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 |unctions:..#Inde| 000a51e0 6e 74 20 35 0a 23 54 61 62 6c 65 20 34 20 32 31 |nt 5.#Table 4 21| 000a51f0 0a 3c 74 65 6d 70 6c 61 74 65 5f 69 6e 69 74 3e |.<template_init>| 000a5200 0a 3c 74 65 6d 70 6c 61 74 65 5f 72 65 61 64 66 |.<template_readf| 000a5210 69 6c 65 3e 0a 3c 74 65 6d 70 6c 61 74 65 5f 66 |ile>.<template_f| 000a5220 69 6e 64 3d 3e 74 65 6d 70 6c 61 74 65 5f 66 69 |ind=>template_fi| 000a5230 6e 64 5f 3e 0a 3c 74 65 6d 70 6c 61 74 65 5f 6c |nd_>.<template_l| 000a5240 6f 61 64 65 64 3e 0a 3c 74 65 6d 70 6c 61 74 65 |oaded>.<template| 000a5250 5f 63 6f 70 79 3e 0a 3c 74 65 6d 70 6c 61 74 65 |_copy>.<template| 000a5260 5f 75 73 65 5f 66 61 6e 63 79 66 6f 6e 74 73 3e |_use_fancyfonts>| 000a5270 0a 3c 74 65 6d 70 6c 61 74 65 5f 73 79 73 68 61 |.<template_sysha| 000a5280 6e 64 6c 65 3e 0a 23 45 6e 64 54 61 62 6c 65 0a |ndle>.#EndTable.| 000a5290 23 49 6e 64 65 6e 74 20 30 0a 0a 54 79 70 65 73 |#Indent 0..Types| 000a52a0 3a 0a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |:..{align centre| 000a52b0 7d 3c 74 65 6d 70 6c 61 74 65 3d 3e 74 65 6d 70 |}<template=>temp| 000a52c0 6c 61 74 65 5f 3e 00 00 44 41 54 41 cc 00 00 00 |late_>..DATA....| 000a52d0 74 65 6d 70 6c 61 74 65 5f 69 6e 69 74 0a 53 79 |template_init.Sy| 000a52e0 6e 74 61 78 3a 09 76 6f 69 64 20 74 65 6d 70 6c |ntax:.void templ| 000a52f0 61 74 65 5f 69 6e 69 74 20 28 76 6f 69 64 29 3b |ate_init (void);| 000a5300 0a 48 65 61 64 65 72 3a 09 3c 74 65 6d 70 6c 61 |.Header:.<templa| 000a5310 74 65 2e 68 3d 3e 74 65 6d 70 6c 61 74 65 5f 68 |te.h=>template_h| 000a5320 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000a5330 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 | must be called | 000a5340 62 65 66 6f 72 65 20 61 6e 79 20 6f 70 65 72 61 |before any opera| 000a5350 74 69 6f 6e 73 20 77 68 69 63 68 20 75 73 65 20 |tions which use | 000a5360 74 65 6d 70 6c 61 74 65 73 20 28 69 6e 63 6c 75 |templates (inclu| 000a5370 64 69 6e 67 20 64 69 61 6c 6f 67 75 65 20 62 6f |ding dialogue bo| 000a5380 78 65 73 20 61 6e 64 20 65 76 65 72 79 74 68 69 |xes and everythi| 000a5390 6e 67 29 2e 44 41 54 41 e7 00 00 00 54 65 6d 70 |ng).DATA....Temp| 000a53a0 6c 61 74 65 5f 49 6e 69 74 69 61 6c 69 73 65 0a |late_Initialise.| 000a53b0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 54 65 6d |Syntax:.void Tem| 000a53c0 70 6c 61 74 65 5f 49 6e 69 74 69 61 6c 69 73 65 |plate_Initialise| 000a53d0 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000a53e0 09 3c 44 65 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 |.<DeskLib:Templa| 000a53f0 74 65 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 3e 0a |te.h=>Template>.| 000a5400 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 000a5410 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 54 |nitialises the T| 000a5420 65 6d 70 6c 61 74 65 20 6d 61 6e 61 67 65 72 20 |emplate manager | 000a5430 72 65 61 64 79 20 66 6f 72 20 75 73 65 2e 20 49 |ready for use. I| 000a5440 74 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 |t must be called| 000a5450 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 61 6e | before using an| 000a5460 79 20 6f 74 68 65 72 20 54 65 6d 70 6c 61 74 65 |y other Template| 000a5470 20 66 75 6e 63 74 69 6f 6e 73 2e 00 44 41 54 41 | functions..DATA| 000a5480 cc 00 00 00 74 65 6d 70 6c 61 74 65 5f 6c 6f 61 |....template_loa| 000a5490 64 65 64 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f |ded.Syntax:.<BOO| 000a54a0 4c 3e 20 74 65 6d 70 6c 61 74 65 5f 6c 6f 61 64 |L> template_load| 000a54b0 65 64 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |ed (void);.Heade| 000a54c0 72 3a 09 3c 74 65 6d 70 6c 61 74 65 2e 68 3d 3e |r:.<template.h=>| 000a54d0 74 65 6d 70 6c 61 74 65 5f 68 3e 0a 0a 52 65 74 |template_h>..Ret| 000a54e0 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 000a54f0 61 6e 79 20 74 65 6d 70 6c 61 74 65 73 20 61 72 |any templates ar| 000a5500 65 20 6c 6f 61 64 65 64 2e 0a 0a 54 68 69 73 20 |e loaded...This | 000a5510 66 75 6e 63 74 69 6f 6e 20 73 65 65 73 20 69 66 |function sees if| 000a5520 20 74 68 65 72 65 20 69 73 20 61 6e 79 74 68 69 | there is anythi| 000a5530 6e 67 20 69 6e 20 74 68 65 20 74 65 6d 70 6c 61 |ng in the templa| 000a5540 74 65 20 6c 69 73 74 2e 44 41 54 41 70 01 00 00 |te list.DATAp...| 000a5550 54 65 6d 70 6c 61 74 65 5f 4c 6f 61 64 46 69 6c |Template_LoadFil| 000a5560 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 54 |e.Syntax:.void T| 000a5570 65 6d 70 6c 61 74 65 5f 4c 6f 61 64 46 69 6c 65 |emplate_LoadFile| 000a5580 20 28 63 68 61 72 20 2a 6c 65 61 66 29 3b 0a 48 | (char *leaf);.H| 000a5590 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000a55a0 54 65 6d 70 6c 61 74 65 2e 68 3d 3e 54 65 6d 70 |Template.h=>Temp| 000a55b0 6c 61 74 65 3e 0a 0a 4c 6f 61 64 73 20 61 6c 6c |late>..Loads all| 000a55c0 20 74 65 6d 70 6c 61 74 65 73 20 69 6e 20 74 68 | templates in th| 000a55d0 65 20 67 69 76 65 6e 20 66 69 6c 65 2e 20 54 68 |e given file. Th| 000a55e0 65 20 66 69 6c 65 20 69 73 20 66 6f 75 6e 64 20 |e file is found | 000a55f0 75 73 69 6e 67 20 74 68 65 20 3c 72 65 73 6f 75 |using the <resou| 000a5600 72 63 65 5f 70 61 74 68 6e 61 6d 65 3e 2c 20 61 |rce_pathname>, a| 000a5610 6e 64 20 2f 6c 65 61 66 2f 20 77 68 69 63 68 20 |nd /leaf/ which | 000a5620 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c 65 61 |contains the lea| 000a5630 66 6e 61 6d 65 2e 20 4c 6f 61 64 69 6e 67 20 6d |fname. Loading m| 000a5640 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 66 69 6c |ore than one fil| 000a5650 65 20 61 64 64 73 20 74 68 65 20 74 65 6d 70 6c |e adds the templ| 000a5660 61 74 65 73 2e 0a 0a 49 66 20 79 6f 75 20 77 61 |ates...If you wa| 000a5670 6e 74 20 74 6f 20 75 73 65 20 6f 75 74 6c 69 6e |nt to use outlin| 000a5680 65 20 66 6f 6e 74 73 2c 20 79 6f 75 20 6d 75 73 |e fonts, you mus| 000a5690 74 20 63 61 6c 6c 20 3c 54 65 6d 70 6c 61 74 65 |t call <Template| 000a56a0 5f 55 73 65 4f 75 74 6c 69 6e 65 46 6f 6e 74 73 |_UseOutlineFonts| 000a56b0 3e 20 66 69 72 73 74 2e 44 41 54 41 1c 01 00 00 |> first.DATA....| 000a56c0 74 65 6d 70 6c 61 74 65 5f 72 65 61 64 66 69 6c |template_readfil| 000a56d0 65 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e |e.Syntax:.<BOOL>| 000a56e0 20 74 65 6d 70 6c 61 74 65 5f 72 65 61 64 66 69 | template_readfi| 000a56f0 6c 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b |le (char *name);| 000a5700 0a 48 65 61 64 65 72 3a 09 3c 74 65 6d 70 6c 61 |.Header:.<templa| 000a5710 74 65 2e 68 3d 3e 74 65 6d 70 6c 61 74 65 5f 68 |te.h=>template_h| 000a5720 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 46 41 4c |>..Returns:.<FAL| 000a5730 53 45 3e 20 69 66 20 6e 6f 20 73 70 72 69 74 65 |SE> if no sprite| 000a5740 73 20 61 72 65 20 75 73 65 64 2e 0a 0a 54 68 69 |s are used...Thi| 000a5750 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 |s function reads| 000a5760 20 74 68 65 20 74 65 6d 70 6c 61 74 65 20 66 69 | the template fi| 000a5770 6c 65 20 77 68 6f 73 65 20 6c 65 61 66 20 6e 61 |le whose leaf na| 000a5780 6d 65 20 69 73 20 67 69 76 65 6e 20 69 6e 20 2f |me is given in /| 000a5790 6e 61 6d 65 2f 2e 20 49 74 20 63 61 6c 6c 73 20 |name/. It calls | 000a57a0 3c 72 65 73 73 70 72 5f 61 72 65 61 3e 20 73 6f |<resspr_area> so| 000a57b0 20 79 6f 75 20 6d 75 73 74 20 68 61 76 65 20 63 | you must have c| 000a57c0 61 6c 6c 65 64 20 3c 72 65 73 73 70 72 5f 69 6e |alled <resspr_in| 000a57d0 69 74 3e 2e 44 41 54 41 48 01 00 00 74 65 6d 70 |it>.DATAH...temp| 000a57e0 6c 61 74 65 5f 73 79 73 68 61 6e 64 6c 65 0a 53 |late_syshandle.S| 000a57f0 79 6e 74 61 78 3a 09 3c 77 69 6d 70 5f 77 69 6e |yntax:.<wimp_win| 000a5800 64 3e 20 2a 74 65 6d 70 6c 61 74 65 5f 73 79 73 |d> *template_sys| 000a5810 68 61 6e 64 6c 65 20 28 63 68 61 72 20 2a 6e 61 |handle (char *na| 000a5820 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 65 |me);.Header:.<te| 000a5830 6d 70 6c 61 74 65 2e 68 3d 3e 74 65 6d 70 6c 61 |mplate.h=>templa| 000a5840 74 65 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |te_h>..Returns:.| 000a5850 50 6f 69 6e 74 65 72 20 74 6f 20 75 6e 64 65 72 |Pointer to under| 000a5860 6c 79 69 6e 67 20 77 69 6e 64 6f 77 2e 0a 0a 54 |lying window...T| 000a5870 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 |his function get| 000a5880 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |s a pointer to t| 000a5890 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 77 69 |he underlying wi| 000a58a0 6e 64 6f 77 20 75 73 65 64 20 74 6f 20 63 72 65 |ndow used to cre| 000a58b0 61 74 65 20 61 20 74 65 6d 70 6c 61 74 65 2e 20 |ate a template. | 000a58c0 41 6e 79 20 63 68 61 6e 67 65 73 20 6d 61 64 65 |Any changes made| 000a58d0 20 74 6f 20 74 68 69 73 20 73 74 72 75 63 74 75 | to this structu| 000a58e0 72 65 20 77 69 6c 6c 20 61 66 66 65 63 74 20 66 |re will affect f| 000a58f0 75 74 75 72 65 20 77 69 6e 64 6f 77 73 20 67 65 |uture windows ge| 000a5900 6e 65 72 61 74 65 64 20 75 73 69 6e 67 20 74 68 |nerated using th| 000a5910 69 73 20 74 65 6d 70 6c 61 74 65 2e 44 41 54 41 |is template.DATA| 000a5920 df 00 00 00 74 65 6d 70 6c 61 74 65 5f 75 73 65 |....template_use| 000a5930 5f 66 61 6e 63 79 66 6f 6e 74 73 0a 53 79 6e 74 |_fancyfonts.Synt| 000a5940 61 78 3a 09 76 6f 69 64 20 74 65 6d 70 6c 61 74 |ax:.void templat| 000a5950 65 5f 75 73 65 5f 66 61 6e 63 79 66 6f 6e 74 73 |e_use_fancyfonts| 000a5960 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000a5970 09 3c 74 65 6d 70 6c 61 74 65 2e 68 3d 3e 74 65 |.<template.h=>te| 000a5980 6d 70 6c 61 74 65 5f 68 3e 0a 0a 54 68 69 73 20 |mplate_h>..This | 000a5990 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 |function must be| 000a59a0 20 63 61 6c 6c 65 64 20 6f 6e 63 65 20 62 65 66 | called once bef| 000a59b0 6f 72 65 20 3c 74 65 6d 70 6c 61 74 65 5f 69 6e |ore <template_in| 000a59c0 69 74 3e 2c 20 69 66 20 79 6f 75 20 77 69 73 68 |it>, if you wish| 000a59d0 20 74 6f 20 75 73 65 20 74 65 6d 70 6c 61 74 65 | to use template| 000a59e0 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 75 74 |s containing out| 000a59f0 6c 69 6e 65 20 66 6f 6e 74 73 2e 00 44 41 54 41 |line fonts..DATA| 000a5a00 6a 01 00 00 54 65 6d 70 6c 61 74 65 5f 55 73 65 |j...Template_Use| 000a5a10 4f 75 74 6c 69 6e 65 46 6f 6e 74 73 0a 53 79 6e |OutlineFonts.Syn| 000a5a20 74 61 78 3a 09 76 6f 69 64 20 54 65 6d 70 6c 61 |tax:.void Templa| 000a5a30 74 65 5f 55 73 65 4f 75 74 6c 69 6e 65 46 6f 6e |te_UseOutlineFon| 000a5a40 74 73 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |ts (void);.Heade| 000a5a50 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 54 65 6d 70 |r:.<DeskLib:Temp| 000a5a60 6c 61 74 65 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 |late.h=>Template| 000a5a70 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000a5a80 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 64 20 | must be called | 000a5a90 62 65 66 6f 72 65 20 3c 54 65 6d 70 6c 61 74 65 |before <Template| 000a5aa0 5f 4c 6f 61 64 46 69 6c 65 3e 20 69 66 20 79 6f |_LoadFile> if yo| 000a5ab0 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 6f 75 |u want to use ou| 000a5ac0 74 6c 69 6e 65 20 66 6f 6e 74 73 20 69 6e 20 77 |tline fonts in w| 000a5ad0 69 6e 64 6f 77 73 2e 20 59 6f 75 20 73 68 6f 75 |indows. You shou| 000a5ae0 6c 64 6e 27 74 20 75 73 65 20 6f 75 74 6c 69 6e |ldn't use outlin| 000a5af0 65 20 66 6f 6e 74 73 20 66 6f 72 20 67 65 6e 65 |e fonts for gene| 000a5b00 72 61 6c 20 74 65 78 74 20 69 63 6f 6e 73 20 62 |ral text icons b| 000a5b10 65 63 61 75 73 65 20 75 73 65 72 73 20 77 69 74 |ecause users wit| 000a5b20 68 20 6d 6f 72 65 20 72 65 63 65 6e 74 20 76 65 |h more recent ve| 000a5b30 72 73 69 6f 6e 73 20 6f 66 20 52 49 53 43 20 4f |rsions of RISC O| 000a5b40 53 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 |S will probably | 000a5b50 77 61 6e 74 20 74 6f 20 75 73 65 20 74 68 65 69 |want to use thei| 000a5b60 72 20 6f 77 6e 2e 00 00 44 41 54 41 06 01 00 00 |r own...DATA....| 000a5b70 74 65 6d 70 6c 61 74 65 5f 54 49 54 4c 45 44 45 |template_TITLEDE| 000a5b80 46 41 55 4c 54 0a 54 68 69 73 20 6d 61 63 72 6f |FAULT.This macro| 000a5b90 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000a5ba0 44 65 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 |DeskLib:Template| 000a5bb0 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 3e 2e 20 49 |.h=>Template>. I| 000a5bc0 74 20 69 73 20 61 20 76 61 6c 75 65 20 74 6f 20 |t is a value to | 000a5bd0 62 65 20 70 61 73 73 65 64 20 74 6f 20 66 75 6e |be passed to fun| 000a5be0 63 74 69 6f 6e 73 20 77 68 69 63 68 20 63 6f 70 |ctions which cop| 000a5bf0 79 20 74 65 6d 70 6c 61 74 65 20 64 65 66 69 6e |y template defin| 000a5c00 69 74 69 6f 6e 73 20 77 68 69 63 68 20 74 65 6c |itions which tel| 000a5c10 6c 73 20 74 68 65 6d 20 74 6f 20 72 65 73 65 72 |ls them to reser| 000a5c20 76 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 61 |ve the default a| 000a5c30 6d 6f 75 6e 74 20 6f 66 20 73 70 61 63 65 20 66 |mount of space f| 000a5c40 6f 72 20 74 68 65 20 69 6e 64 69 72 65 63 74 65 |or the indirecte| 000a5c50 64 20 74 69 74 6c 65 20 28 63 75 72 72 65 6e 74 |d title (current| 000a5c60 6c 79 20 32 36 30 20 62 79 74 65 73 29 2e 00 00 |ly 260 bytes)...| 000a5c70 44 41 54 41 01 01 00 00 74 65 6d 70 6c 61 74 65 |DATA....template| 000a5c80 5f 54 49 54 4c 45 4d 49 4e 0a 54 68 69 73 20 6d |_TITLEMIN.This m| 000a5c90 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 000a5ca0 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 54 65 6d 70 |in <DeskLib:Temp| 000a5cb0 6c 61 74 65 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 |late.h=>Template| 000a5cc0 3e 2e 20 49 74 20 69 73 20 61 20 76 61 6c 75 65 |>. It is a value| 000a5cd0 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 74 6f | to be passed to| 000a5ce0 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 | functions which| 000a5cf0 20 63 6f 70 79 20 74 65 6d 70 6c 61 74 65 20 64 | copy template d| 000a5d00 65 66 69 6e 69 74 69 6f 6e 73 20 77 68 69 63 68 |efinitions which| 000a5d10 20 74 65 6c 6c 73 20 74 68 65 6d 20 74 6f 20 72 | tells them to r| 000a5d20 65 73 65 72 76 65 20 74 68 65 20 73 61 6d 65 20 |eserve the same | 000a5d30 73 70 61 63 65 20 61 73 20 73 70 65 63 69 66 69 |space as specifi| 000a5d40 65 64 20 69 6e 20 74 68 65 20 74 65 6d 70 6c 61 |ed in the templa| 000a5d50 74 65 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 |te file for the | 000a5d60 69 6e 64 69 72 65 63 74 65 64 20 74 69 74 6c 65 |indirected title| 000a5d70 2e 00 00 00 44 41 54 41 c8 00 00 00 54 65 6d 70 |....DATA....Temp| 000a5d80 6c 61 74 65 5f 43 6c 65 61 72 41 6c 6c 0a 53 79 |late_ClearAll.Sy| 000a5d90 6e 74 61 78 3a 09 76 6f 69 64 20 54 65 6d 70 6c |ntax:.void Templ| 000a5da0 61 74 65 5f 43 6c 65 61 72 41 6c 6c 20 28 76 6f |ate_ClearAll (vo| 000a5db0 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |id);.Header:.<De| 000a5dc0 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 2e 68 |skLib:Template.h| 000a5dd0 3d 3e 54 65 6d 70 6c 61 74 65 3e 0a 0a 54 68 69 |=>Template>..Thi| 000a5de0 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 |s function remov| 000a5df0 65 73 20 61 6c 6c 20 74 65 6d 70 6c 61 74 65 20 |es all template | 000a5e00 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 72 6f 6d |definitions from| 000a5e10 20 6d 65 6d 6f 72 79 20 61 6e 64 20 72 65 6c 65 | memory and rele| 000a5e20 61 73 65 73 20 61 6c 6c 20 66 6f 6e 74 73 20 75 |ases all fonts u| 000a5e30 73 65 64 20 62 79 20 74 68 65 6d 2e 44 41 54 41 |sed by them.DATA| 000a5e40 43 01 00 00 54 65 6d 70 6c 61 74 65 5f 55 73 65 |C...Template_Use| 000a5e50 53 70 72 69 74 65 41 72 65 61 0a 53 79 6e 74 61 |SpriteArea.Synta| 000a5e60 78 3a 09 76 6f 69 64 20 54 65 6d 70 6c 61 74 65 |x:.void Template| 000a5e70 5f 55 73 65 53 70 72 69 74 65 41 72 65 61 20 28 |_UseSpriteArea (| 000a5e80 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a 61 |<sprite_area> *a| 000a5e90 72 65 61 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |rea);.Header:.<D| 000a5ea0 65 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 2e |eskLib:Template.| 000a5eb0 68 3d 3e 54 65 6d 70 6c 61 74 65 3e 0a 0a 54 68 |h=>Template>..Th| 000a5ec0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 000a5ed0 20 74 68 65 20 73 70 72 69 74 65 20 61 72 65 61 | the sprite area| 000a5ee0 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 75 | which will be u| 000a5ef0 73 65 64 20 62 79 20 61 6c 6c 20 66 75 74 75 72 |sed by all futur| 000a5f00 65 20 3c 54 65 6d 70 6c 61 74 65 5f 46 69 6e 64 |e <Template_Find| 000a5f10 3e 20 6f 72 20 3c 54 65 6d 70 6c 61 74 65 5f 43 |> or <Template_C| 000a5f20 6c 6f 6e 65 3e 64 20 74 65 6d 70 6c 61 74 65 73 |lone>d templates| 000a5f30 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 73 |. It should be s| 000a5f40 65 74 20 74 6f 20 3c 4e 55 4c 4c 3e 20 74 6f 20 |et to <NULL> to | 000a5f50 75 73 65 20 74 68 65 20 57 69 6d 70 20 73 70 72 |use the Wimp spr| 000a5f60 69 74 65 20 70 6f 6f 6c 2c 20 77 68 69 63 68 20 |ite pool, which | 000a5f70 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 2e 00 |is the default..| 000a5f80 44 41 54 41 c9 00 00 00 54 65 6d 70 6c 61 74 65 |DATA....Template| 000a5f90 5f 4c 69 6e 6b 53 70 72 69 74 65 41 72 65 61 0a |_LinkSpriteArea.| 000a5fa0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 54 65 6d |Syntax:.void Tem| 000a5fb0 70 6c 61 74 65 5f 4c 69 6e 6b 53 70 72 69 74 65 |plate_LinkSprite| 000a5fc0 41 72 65 61 20 28 63 68 61 72 20 2a 6e 61 6d 65 |Area (char *name| 000a5fd0 2c 20 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 |, <sprite_area> | 000a5fe0 61 72 65 61 29 3b 0a 48 65 61 64 65 72 3a 09 3c |area);.Header:.<| 000a5ff0 44 65 73 6b 4c 69 62 3a 54 65 6d 70 6c 61 74 65 |DeskLib:Template| 000a6000 2e 68 3d 3e 54 65 6d 70 6c 61 74 65 3e 0a 0a 54 |.h=>Template>..T| 000a6010 68 69 73 20 73 65 74 73 20 74 68 65 20 77 69 6e |his sets the win| 000a6020 64 6f 77 20 2f 6e 61 6d 65 2f 20 74 6f 20 75 73 |dow /name/ to us| 000a6030 65 20 74 68 65 20 73 70 72 69 74 65 20 61 72 65 |e the sprite are| 000a6040 61 20 2f 61 72 65 61 2f 2e 00 00 00 44 41 54 41 |a /area/....DATA| 000a6050 fd 00 00 00 44 65 73 6b 4c 69 62 3a 54 65 78 74 |....DeskLib:Text| 000a6060 46 69 6c 65 2e 68 0a 56 65 72 73 69 6f 6e 3a 20 |File.h.Version: | 000a6070 31 2e 30 30 20 28 30 37 20 41 70 72 20 31 39 39 |1.00 (07 Apr 199| 000a6080 32 29 0a 23 6c 69 6e 65 0a 54 68 69 73 20 68 65 |2).#line.This he| 000a6090 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 73 65 |ader declares se| 000a60a0 76 65 72 61 6c 20 66 75 6e 63 74 69 6f 6e 73 20 |veral functions | 000a60b0 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 65 78 |for handling tex| 000a60c0 74 66 69 6c 65 73 2e 0a 0a 46 75 6e 63 74 69 6f |tfiles...Functio| 000a60d0 6e 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 |ns:..#table colu| 000a60e0 6d 6e 73 20 32 0a 3c 54 65 78 74 46 69 6c 65 5f |mns 2.<TextFile_| 000a60f0 47 65 74 54 6f 6b 65 6e 3e 0a 3c 54 65 78 74 46 |GetToken>.<TextF| 000a6100 69 6c 65 5f 4c 6f 77 65 72 63 61 73 65 3e 0a 3c |ile_Lowercase>.<| 000a6110 54 65 78 74 46 69 6c 65 5f 52 65 61 64 54 6f 44 |TextFile_ReadToD| 000a6120 65 6c 69 6d 65 74 65 72 3e 0a 3c 54 65 78 74 46 |elimeter>.<TextF| 000a6130 69 6c 65 5f 53 6b 69 70 42 6c 61 6e 6b 73 3e 0a |ile_SkipBlanks>.| 000a6140 23 65 6e 64 74 61 62 6c 65 00 00 00 44 49 52 24 |#endtable...DIR$| 000a6150 a0 00 00 00 a0 00 00 00 ec 61 0a 00 46 ff ff ff |.........a..F...| 000a6160 e6 f5 35 26 82 01 00 00 13 00 00 00 00 00 00 00 |..5&............| 000a6170 47 65 74 54 6f 6b 65 6e 00 00 00 00 70 63 0a 00 |GetToken....pc..| 000a6180 46 ff ff ff f6 fc 35 26 c1 00 00 00 13 00 00 00 |F.....5&........| 000a6190 00 00 00 00 4c 6f 77 65 72 63 61 73 65 00 00 00 |....Lowercase...| 000a61a0 34 64 0a 00 46 ff ff ff c9 50 36 26 f7 00 00 00 |4d..F....P6&....| 000a61b0 13 00 00 00 00 00 00 00 53 6b 69 70 42 6c 61 6e |........SkipBlan| 000a61c0 6b 73 00 00 2c 65 0a 00 46 ff ff ff 65 46 36 26 |ks..,e..F...eF6&| 000a61d0 78 01 00 00 13 00 00 00 00 00 00 00 52 65 61 64 |x...........Read| 000a61e0 54 6f 44 65 6c 69 6d 65 74 65 72 00 44 41 54 41 |ToDelimeter.DATA| 000a61f0 82 01 00 00 54 65 78 74 46 69 6c 65 5f 47 65 74 |....TextFile_Get| 000a6200 54 6f 6b 65 6e 0a 53 79 6e 74 61 78 3a 09 76 6f |Token.Syntax:.vo| 000a6210 69 64 20 54 65 78 74 46 69 6c 65 5f 47 65 74 54 |id TextFile_GetT| 000a6220 6f 6b 65 6e 20 28 3c 46 49 4c 45 3e 20 2a 66 2c |oken (<FILE> *f,| 000a6230 20 63 68 61 72 20 64 65 6c 69 6d 2c 20 63 68 61 | char delim, cha| 000a6240 72 20 2a 74 6f 6b 65 6e 2c 20 3c 42 4f 4f 4c 3e |r *token, <BOOL>| 000a6250 20 6c 6f 77 65 72 29 3b 0a 48 65 61 64 65 72 3a | lower);.Header:| 000a6260 09 3c 44 65 73 6b 4c 69 62 3a 54 65 78 74 46 69 |.<DeskLib:TextFi| 000a6270 6c 65 2e 68 3d 3e 54 65 78 74 46 69 6c 65 3e 0a |le.h=>TextFile>.| 000a6280 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000a6290 65 61 64 73 20 69 6e 20 61 20 74 6f 6b 65 6e 20 |eads in a token | 000a62a0 66 72 6f 6d 20 61 20 66 69 6c 65 20 2f 66 2f 2e |from a file /f/.| 000a62b0 20 41 20 74 6f 6b 65 6e 20 69 73 20 64 65 66 69 | A token is defi| 000a62c0 6e 65 64 20 61 73 20 61 20 73 65 71 75 65 6e 63 |ned as a sequenc| 000a62d0 65 20 6f 66 20 75 70 20 74 6f 20 33 32 20 63 68 |e of up to 32 ch| 000a62e0 61 72 61 63 74 65 72 73 2c 20 74 65 72 6d 69 6e |aracters, termin| 000a62f0 61 74 65 64 20 69 6e 20 61 20 6e 65 77 6c 69 6e |ated in a newlin| 000a6300 65 20 6f 72 20 2f 64 65 6c 69 6d 2f 2e 20 4c 65 |e or /delim/. Le| 000a6310 61 64 69 6e 67 20 62 6c 61 6e 6b 20 73 70 61 63 |ading blank spac| 000a6320 65 20 69 73 20 73 6b 69 70 70 65 64 2e 0a 0a 49 |e is skipped...I| 000a6330 66 20 2f 6c 6f 77 65 72 2f 20 69 73 20 3c 54 52 |f /lower/ is <TR| 000a6340 55 45 3e 20 74 68 65 6e 20 74 68 65 20 74 6f 6b |UE> then the tok| 000a6350 65 6e 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 |en is converted | 000a6360 74 6f 20 6c 6f 77 65 72 20 63 61 73 65 2e 00 00 |to lower case...| 000a6370 44 41 54 41 c1 00 00 00 54 65 78 74 46 69 6c 65 |DATA....TextFile| 000a6380 5f 4c 6f 77 65 72 63 61 73 65 0a 53 79 6e 74 61 |_Lowercase.Synta| 000a6390 78 3a 09 63 68 61 72 20 54 65 78 74 46 69 6c 65 |x:.char TextFile| 000a63a0 5f 4c 6f 77 65 72 63 61 73 65 20 28 63 68 61 72 |_Lowercase (char| 000a63b0 20 78 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 | x);.Header:.<De| 000a63c0 73 6b 4c 69 62 3a 54 65 78 74 46 69 6c 65 2e 68 |skLib:TextFile.h| 000a63d0 3d 3e 54 65 78 74 46 69 6c 65 3e 0a 0a 52 65 74 |=>TextFile>..Ret| 000a63e0 75 72 6e 73 3a 09 2f 78 2f 20 63 6f 6e 76 65 72 |urns:./x/ conver| 000a63f0 74 65 64 20 74 6f 20 6c 6f 77 65 72 20 63 61 73 |ted to lower cas| 000a6400 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000a6410 6e 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 |n is actually de| 000a6420 66 69 6e 65 64 20 61 73 20 61 20 6d 61 63 72 6f |fined as a macro| 000a6430 2e 00 00 00 44 41 54 41 f7 00 00 00 54 65 78 74 |....DATA....Text| 000a6440 46 69 6c 65 5f 53 6b 69 70 42 6c 61 6e 6b 73 0a |File_SkipBlanks.| 000a6450 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 54 65 78 |Syntax:.void Tex| 000a6460 74 46 69 6c 65 5f 53 6b 69 70 42 6c 61 6e 6b 73 |tFile_SkipBlanks| 000a6470 20 28 3c 46 49 4c 45 3e 20 2a 66 29 3b 0a 48 65 | (<FILE> *f);.He| 000a6480 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 54 |ader:.<DeskLib:T| 000a6490 65 78 74 46 69 6c 65 2e 68 3d 3e 54 65 78 74 46 |extFile.h=>TextF| 000a64a0 69 6c 65 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ile>..This funct| 000a64b0 69 6f 6e 20 72 65 61 64 73 20 63 68 61 72 61 63 |ion reads charac| 000a64c0 74 65 72 73 20 66 72 6f 6d 20 74 68 65 20 67 69 |ters from the gi| 000a64d0 76 65 6e 20 66 69 6c 65 20 75 6e 74 69 6c 20 65 |ven file until e| 000a64e0 6e 64 20 6f 66 20 66 69 6c 65 2c 20 6f 72 20 75 |nd of file, or u| 000a64f0 6e 74 69 6c 20 61 20 6e 6f 6e 2d 62 6c 61 6e 6b |ntil a non-blank| 000a6500 20 63 68 61 72 61 63 74 65 72 20 28 69 65 20 6e | character (ie n| 000a6510 6f 74 20 73 70 61 63 65 20 6f 72 20 74 61 62 29 |ot space or tab)| 000a6520 20 20 69 73 20 66 6f 75 6e 64 2e 00 44 41 54 41 | is found..DATA| 000a6530 78 01 00 00 54 65 78 74 46 69 6c 65 5f 52 65 61 |x...TextFile_Rea| 000a6540 64 54 6f 44 65 6c 69 6d 65 74 65 72 0a 53 79 6e |dToDelimeter.Syn| 000a6550 74 61 78 3a 09 76 6f 69 64 20 54 65 78 74 46 69 |tax:.void TextFi| 000a6560 6c 65 5f 52 65 61 64 54 6f 44 65 6c 69 6d 65 74 |le_ReadToDelimet| 000a6570 65 72 20 28 3c 46 49 4c 45 3e 20 2a 66 2c 20 63 |er (<FILE> *f, c| 000a6580 68 61 72 20 64 65 6c 69 6d 2c 20 63 68 61 72 20 |har delim, char | 000a6590 2a 6c 69 6e 65 2c 20 69 6e 74 20 6d 61 78 6c 65 |*line, int maxle| 000a65a0 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |n);.Header:.<Des| 000a65b0 6b 4c 69 62 3a 54 65 78 74 46 69 6c 65 2e 68 3d |kLib:TextFile.h=| 000a65c0 3e 54 65 78 74 46 69 6c 65 3e 0a 0a 54 68 69 73 |>TextFile>..This| 000a65d0 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 | function reads | 000a65e0 69 6e 20 63 68 61 72 61 63 74 65 72 73 20 66 72 |in characters fr| 000a65f0 6f 6d 20 74 68 65 20 66 69 6c 65 20 2f 66 2f 20 |om the file /f/ | 000a6600 75 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 6f 66 |until the end of| 000a6610 20 66 69 6c 65 20 6f 72 20 61 20 63 68 61 72 61 | file or a chara| 000a6620 63 74 65 72 20 2f 64 65 6c 69 6d 2f 20 69 73 20 |cter /delim/ is | 000a6630 72 65 61 63 68 65 64 2c 20 6f 72 20 2f 6d 61 78 |reached, or /max| 000a6640 6c 65 6e 2f 20 63 68 61 72 61 63 74 65 72 73 20 |len/ characters | 000a6650 68 61 76 65 20 62 65 65 6e 20 72 65 61 64 20 28 |have been read (| 000a6660 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 6e 75 |including the nu| 000a6670 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 29 2e 20 |ll terminator). | 000a6680 54 68 65 20 63 68 61 72 61 63 74 65 72 73 20 61 |The characters a| 000a6690 72 65 20 72 65 61 64 20 69 6e 74 6f 20 2f 6c 69 |re read into /li| 000a66a0 6e 65 2f 2e 44 49 52 24 48 00 00 00 48 00 00 00 |ne/.DIR$H...H...| 000a66b0 ec 66 0a 00 46 fd ff ff 32 10 e2 22 d4 01 00 00 |.f..F...2.."....| 000a66c0 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 000a66d0 c0 68 0a 00 46 fd ff ff 6a 86 36 26 e1 01 00 00 |.h..F...j.6&....| 000a66e0 13 00 00 00 00 00 00 00 5f 00 00 00 44 41 54 41 |........_...DATA| 000a66f0 d4 01 00 00 73 74 72 66 74 69 6d 65 28 29 20 46 |....strftime() F| 000a6700 6f 72 6d 61 74 20 53 74 72 69 6e 67 0a 54 68 65 |ormat String.The| 000a6710 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 20 69 | format string i| 000a6720 73 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 61 20 |s composed of a | 000a6730 73 65 71 75 65 6e 63 65 20 6f 66 20 63 68 61 72 |sequence of char| 000a6740 61 63 74 65 72 73 2e 20 41 6c 6c 20 63 68 61 72 |acters. All char| 000a6750 61 63 74 65 72 73 20 65 78 63 65 70 74 20 27 25 |acters except '%| 000a6760 27 20 61 72 65 20 63 6f 70 69 65 64 20 64 69 72 |' are copied dir| 000a6770 65 63 74 6c 79 20 74 6f 20 74 68 65 20 6f 75 74 |ectly to the out| 000a6780 70 75 74 2e 20 27 25 27 20 6d 61 72 6b 73 20 74 |put. '%' marks t| 000a6790 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 |he beginning of | 000a67a0 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 63 69 |conversion speci| 000a67b0 66 69 63 61 74 69 6f 6e 2e 20 49 66 20 61 20 6c |fication. If a l| 000a67c0 69 74 65 72 61 6c 20 70 65 72 63 65 6e 74 20 69 |iteral percent i| 000a67d0 73 20 72 65 71 75 69 72 65 64 2c 20 74 68 65 6e |s required, then| 000a67e0 20 94 25 25 95 20 73 68 6f 75 6c 64 20 62 65 20 | .%%. should be | 000a67f0 75 73 65 64 2e 0a 0a 41 20 63 6f 6e 76 65 72 73 |used...A convers| 000a6800 69 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f |ion specificatio| 000a6810 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 70 61 72 |n results in par| 000a6820 74 20 6f 66 20 74 68 65 20 74 69 6d 65 20 62 65 |t of the time be| 000a6830 69 6e 67 20 70 72 69 6e 74 65 64 20 61 63 63 6f |ing printed acco| 000a6840 72 64 69 6e 67 20 74 6f 20 74 68 65 20 73 70 65 |rding to the spe| 000a6850 63 69 66 69 63 61 74 69 6f 6e 2e 20 54 68 65 20 |cification. The | 000a6860 73 74 72 75 63 74 75 72 65 20 6f 66 20 61 20 63 |structure of a c| 000a6870 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 63 69 66 |onversion specif| 000a6880 69 63 61 74 69 6f 6e 20 69 73 20 61 20 27 25 27 |ication is a '%'| 000a6890 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 3c | followed by a <| 000a68a0 63 6f 6e 76 65 72 73 69 6f 6e 20 63 68 61 72 61 |conversion chara| 000a68b0 63 74 65 72 3d 3e 74 66 5f 63 6f 6e 76 5f 3e 2e |cter=>tf_conv_>.| 000a68c0 44 41 54 41 e1 01 00 00 54 69 6d 65 5f 43 6f 6e |DATA....Time_Con| 000a68d0 76 65 72 74 44 61 74 65 41 6e 64 54 69 6d 65 28 |vertDateAndTime(| 000a68e0 29 20 46 6f 72 6d 61 74 20 53 74 72 69 6e 67 0a |) Format String.| 000a68f0 54 68 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e |The format strin| 000a6900 67 20 69 73 20 63 6f 6d 70 6f 73 65 64 20 6f 66 |g is composed of| 000a6910 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 63 | a sequence of c| 000a6920 68 61 72 61 63 74 65 72 73 2e 20 41 6c 6c 20 63 |haracters. All c| 000a6930 68 61 72 61 63 74 65 72 73 20 65 78 63 65 70 74 |haracters except| 000a6940 20 27 25 27 20 61 72 65 20 63 6f 70 69 65 64 20 | '%' are copied | 000a6950 64 69 72 65 63 74 6c 79 20 74 6f 20 74 68 65 20 |directly to the | 000a6960 6f 75 74 70 75 74 2e 20 27 25 27 20 6d 61 72 6b |output. '%' mark| 000a6970 73 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 |s the beginning | 000a6980 6f 66 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 |of conversion sp| 000a6990 65 63 69 66 69 63 61 74 69 6f 6e 2e 20 49 66 20 |ecification. If | 000a69a0 61 20 6c 69 74 65 72 61 6c 20 70 65 72 63 65 6e |a literal percen| 000a69b0 74 20 69 73 20 72 65 71 75 69 72 65 64 2c 20 74 |t is required, t| 000a69c0 68 65 6e 20 22 25 25 22 20 73 68 6f 75 6c 64 20 |hen "%%" should | 000a69d0 62 65 20 75 73 65 64 2e 0a 0a 41 20 63 6f 6e 76 |be used...A conv| 000a69e0 65 72 73 69 6f 6e 20 73 70 65 63 69 66 69 63 61 |ersion specifica| 000a69f0 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 |tion results in | 000a6a00 70 61 72 74 20 6f 66 20 74 68 65 20 74 69 6d 65 |part of the time| 000a6a10 20 62 65 69 6e 67 20 70 72 69 6e 74 65 64 20 61 | being printed a| 000a6a20 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 |ccording to the | 000a6a30 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 20 54 |specification. T| 000a6a40 68 65 20 73 74 72 75 63 74 75 72 65 20 6f 66 20 |he structure of | 000a6a50 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 70 65 |a conversion spe| 000a6a60 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 61 20 |cification is a | 000a6a70 27 25 27 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 |'%' followed by | 000a6a80 61 20 3c 63 6f 6e 76 65 72 73 69 6f 6e 20 73 74 |a <conversion st| 000a6a90 72 69 6e 67 3d 3e 74 66 5f 63 6f 6e 76 5f 5f 3e |ring=>tf_conv__>| 000a6aa0 2e 00 00 00 44 49 52 24 4c 00 00 00 4c 00 00 00 |....DIR$L...L...| 000a6ab0 f0 6a 0a 00 46 fd ff ff f2 23 e2 22 af 03 00 00 |.j..F....#."....| 000a6ac0 13 00 00 00 00 00 00 00 63 6f 6e 76 5f 00 00 00 |........conv_...| 000a6ad0 a0 6e 0a 00 46 fd ff ff 8c 9f 36 26 6b 02 00 00 |.n..F.....6&k...| 000a6ae0 13 00 00 00 00 00 00 00 63 6f 6e 76 5f 5f 00 00 |........conv__..| 000a6af0 44 41 54 41 af 03 00 00 46 6f 72 6d 61 74 20 53 |DATA....Format S| 000a6b00 74 72 69 6e 67 20 43 6f 6e 76 65 72 73 69 6f 6e |tring Conversion| 000a6b10 20 43 68 61 72 61 63 74 65 72 0a 4f 6e 65 20 6f | Character.One o| 000a6b20 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a |f the following:| 000a6b30 0a 0a 61 2c 41 2c 77 09 54 68 65 20 77 65 65 6b |..a,A,w.The week| 000a6b40 64 61 79 20 69 73 20 6f 75 74 70 75 74 20 61 73 |day is output as| 000a6b50 20 61 6e 20 61 62 62 72 65 76 69 61 74 65 64 20 | an abbreviated | 000a6b60 6e 61 6d 65 20 28 61 29 2c 20 66 75 6c 6c 20 6e |name (a), full n| 000a6b70 61 6d 65 20 28 41 29 2c 20 6f 72 20 64 65 63 69 |ame (A), or deci| 000a6b80 6d 61 6c 20 28 77 29 20 77 69 74 68 20 30 3d 53 |mal (w) with 0=S| 000a6b90 75 6e 64 61 79 2c 20 36 3d 53 61 74 75 72 64 61 |unday, 6=Saturda| 000a6ba0 79 2e 0a 62 2c 42 2c 6d 09 54 68 65 20 6d 6f 6e |y..b,B,m.The mon| 000a6bb0 74 68 20 69 73 20 6f 75 74 70 75 74 20 61 73 20 |th is output as | 000a6bc0 61 6e 20 61 62 62 72 65 76 69 61 74 65 64 20 6e |an abbreviated n| 000a6bd0 61 6d 65 20 28 62 29 2c 20 66 75 6c 6c 20 6e 61 |ame (b), full na| 000a6be0 6d 65 20 28 42 29 2c 20 6f 72 20 64 65 63 69 6d |me (B), or decim| 000a6bf0 61 6c 20 28 77 29 20 77 69 74 68 20 31 3d 4a 61 |al (w) with 1=Ja| 000a6c00 6e 75 61 72 79 2c 20 31 32 3d 44 65 63 65 6d 62 |nuary, 12=Decemb| 000a6c10 65 72 2e 0a 63 09 54 68 65 20 64 61 74 65 20 61 |er..c.The date a| 000a6c20 6e 64 20 74 69 6d 65 20 61 72 65 20 6f 75 74 70 |nd time are outp| 000a6c30 75 74 20 69 6e 20 6c 6f 63 61 6c 20 66 6f 72 6d |ut in local form| 000a6c40 61 74 2e 0a 64 09 54 68 65 20 64 61 79 20 6f 66 |at..d.The day of| 000a6c50 20 74 68 65 20 6d 6f 6e 74 68 20 69 73 20 6f 75 | the month is ou| 000a6c60 74 70 75 74 20 28 30 31 2d 33 31 29 2e 0a 48 2c |tput (01-31)..H,| 000a6c70 49 09 54 68 65 20 68 6f 75 72 20 69 73 20 6f 75 |I.The hour is ou| 000a6c80 74 70 75 74 20 69 6e 20 32 34 20 28 48 29 20 6f |tput in 24 (H) o| 000a6c90 72 20 31 32 20 28 49 29 20 68 6f 75 72 20 66 6f |r 12 (I) hour fo| 000a6ca0 72 6d 61 74 2e 0a 6a 09 54 68 65 20 64 61 79 20 |rmat..j.The day | 000a6cb0 6f 66 20 74 68 65 20 79 65 61 72 20 69 73 20 6f |of the year is o| 000a6cc0 75 74 70 75 74 20 28 30 30 31 2d 33 36 36 29 2e |utput (001-366).| 000a6cd0 0a 4d 09 54 68 65 20 6d 69 6e 75 74 65 20 69 73 |.M.The minute is| 000a6ce0 20 6f 75 74 70 75 74 20 61 73 20 61 20 64 65 63 | output as a dec| 000a6cf0 69 6d 61 6c 20 28 30 30 2d 35 39 29 2e 0a 70 09 |imal (00-59)..p.| 000a6d00 54 68 65 20 31 32 20 68 6f 75 72 20 73 74 61 74 |The 12 hour stat| 000a6d10 75 73 20 28 69 65 20 41 4d 20 6f 72 20 50 4d 29 |us (ie AM or PM)| 000a6d20 20 69 73 20 6f 75 74 70 75 74 2e 0a 53 09 54 68 | is output..S.Th| 000a6d30 65 20 73 65 63 6f 6e 64 20 69 73 20 6f 75 74 70 |e second is outp| 000a6d40 75 74 20 61 73 20 61 20 64 65 63 69 6d 61 6c 20 |ut as a decimal | 000a6d50 28 30 30 2d 36 31 29 2e 0a 55 2c 57 09 54 68 65 |(00-61)..U,W.The| 000a6d60 20 77 65 65 6b 20 6f 66 20 74 68 65 20 79 65 61 | week of the yea| 000a6d70 72 20 69 73 20 6f 75 74 70 75 74 20 61 73 20 61 |r is output as a| 000a6d80 20 64 65 63 69 6d 61 6c 20 28 30 30 2d 35 33 29 | decimal (00-53)| 000a6d90 2c 20 63 6f 75 6e 74 69 6e 67 20 53 75 6e 64 61 |, counting Sunda| 000a6da0 79 20 28 55 29 20 6f 72 20 4d 6f 6e 64 61 79 20 |y (U) or Monday | 000a6db0 28 57 29 20 61 73 20 74 68 65 20 66 69 72 73 74 |(W) as the first| 000a6dc0 20 64 61 79 20 6f 66 20 74 68 65 20 77 65 65 6b | day of the week| 000a6dd0 2e 0a 78 09 54 68 65 20 64 61 74 65 20 69 73 20 |..x.The date is | 000a6de0 6f 75 74 70 75 74 20 69 6e 20 6c 6f 63 61 6c 20 |output in local | 000a6df0 66 6f 72 6d 61 74 2e 0a 58 09 54 68 65 20 74 69 |format..X.The ti| 000a6e00 6d 65 20 69 73 20 6f 75 74 70 75 74 20 69 6e 20 |me is output in | 000a6e10 6c 6f 63 61 6c 20 66 6f 72 6d 61 74 2e 0a 79 2c |local format..y,| 000a6e20 59 09 54 68 65 20 79 65 61 72 20 69 73 20 6f 75 |Y.The year is ou| 000a6e30 74 70 75 74 20 61 73 20 61 20 64 65 63 69 6d 61 |tput as a decima| 000a6e40 6c 2c 20 77 69 74 68 6f 75 74 20 63 65 6e 74 75 |l, without centu| 000a6e50 72 79 20 28 79 29 20 6f 72 20 77 69 74 68 20 63 |ry (y) or with c| 000a6e60 65 6e 74 75 72 79 20 28 59 29 2e 0a 5a 09 54 68 |entury (Y)..Z.Th| 000a6e70 65 20 74 69 6d 65 7a 6f 6e 65 20 6e 61 6d 65 20 |e timezone name | 000a6e80 69 73 20 6f 75 74 70 75 74 20 28 6f 72 20 6e 6f |is output (or no| 000a6e90 74 68 69 6e 67 20 69 66 20 6e 6f 6e 65 29 2e 00 |thing if none)..| 000a6ea0 44 41 54 41 6b 02 00 00 46 6f 72 6d 61 74 20 53 |DATAk...Format S| 000a6eb0 74 72 69 6e 67 20 43 6f 6e 76 65 72 73 69 6f 6e |tring Conversion| 000a6ec0 20 53 74 72 69 6e 67 0a 4f 6e 65 20 6f 66 20 74 | String.One of t| 000a6ed0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 43 |he following:..C| 000a6ee0 53 09 09 43 65 6e 74 69 73 65 63 6f 6e 64 73 20 |S..Centiseconds | 000a6ef0 61 73 20 61 20 64 65 63 69 6d 61 6c 20 28 30 30 |as a decimal (00| 000a6f00 2d 39 39 29 0a 53 45 09 09 53 65 63 6f 6e 64 73 |-99).SE..Seconds| 000a6f10 20 61 73 20 61 20 64 65 63 69 6d 61 6c 20 28 30 | as a decimal (0| 000a6f20 30 2d 35 39 29 0a 4d 49 09 09 4d 69 6e 75 74 65 |0-59).MI..Minute| 000a6f30 73 20 61 73 20 61 20 64 65 63 69 6d 61 6c 20 28 |s as a decimal (| 000a6f40 30 30 2d 35 39 29 0a 31 32 2c 32 34 09 09 48 6f |00-59).12,24..Ho| 000a6f50 75 72 73 20 69 6e 20 31 32 20 6f 72 20 32 34 20 |urs in 12 or 24 | 000a6f60 68 6f 75 72 20 66 6f 72 6d 61 74 0a 41 4d 2c 50 |hour format.AM,P| 000a6f70 4d 09 09 4f 75 74 70 75 74 73 20 22 61 6d 22 20 |M..Outputs "am" | 000a6f80 6f 72 20 22 70 6d 22 20 61 73 20 61 70 70 72 6f |or "pm" as appro| 000a6f90 70 72 69 61 74 65 0a 57 45 2c 57 33 2c 57 4e 09 |priate.WE,W3,WN.| 000a6fa0 57 65 65 6b 64 61 79 20 61 73 20 66 75 6c 6c 20 |Weekday as full | 000a6fb0 6e 61 6d 65 2c 20 33 20 6c 65 74 74 65 72 20 6e |name, 3 letter n| 000a6fc0 61 6d 65 20 6f 72 20 6e 75 6d 62 65 72 0a 44 59 |ame or number.DY| 000a6fd0 09 09 44 61 79 20 6f 66 20 74 68 65 20 6d 6f 6e |..Day of the mon| 000a6fe0 74 68 20 28 30 31 2d 33 31 29 0a 53 54 09 09 22 |th (01-31).ST.."| 000a6ff0 73 74 22 2c 20 22 6e 64 22 2c 20 22 72 64 22 20 |st", "nd", "rd" | 000a7000 6f 72 20 22 74 68 22 20 61 73 20 61 70 70 72 6f |or "th" as appro| 000a7010 70 72 69 61 74 65 0a 4d 4f 2c 4d 33 2c 4d 4e 09 |priate.MO,M3,MN.| 000a7020 4d 6f 6e 74 68 20 61 73 20 66 75 6c 6c 20 6e 61 |Month as full na| 000a7030 6d 65 2c 20 33 20 6c 65 74 74 65 72 20 6e 61 6d |me, 3 letter nam| 000a7040 65 20 6f 72 20 6e 75 6d 62 65 72 0a 43 45 09 09 |e or number.CE..| 000a7050 43 65 6e 74 75 72 79 20 6e 75 6d 62 65 72 0a 59 |Century number.Y| 000a7060 52 09 09 59 65 61 72 20 77 69 74 68 6f 75 74 20 |R..Year without | 000a7070 63 65 6e 74 75 72 79 20 28 30 30 2d 39 39 29 0a |century (00-99).| 000a7080 57 4b 09 09 57 65 65 6b 20 6e 75 6d 62 65 72 0a |WK..Week number.| 000a7090 44 4e 09 09 44 61 79 20 6f 66 20 74 68 65 20 79 |DN..Day of the y| 000a70a0 65 61 72 0a 30 09 09 4e 75 6c 6c 20 62 79 74 65 |ear.0..Null byte| 000a70b0 0a 0a 43 6f 6e 76 65 72 73 69 6f 6e 20 73 74 72 |..Conversion str| 000a70c0 69 6e 67 73 20 70 72 6f 64 75 63 69 6e 67 20 6e |ings producing n| 000a70d0 75 6d 62 65 72 73 20 6d 61 79 20 62 65 20 70 72 |umbers may be pr| 000a70e0 65 66 69 78 65 64 20 77 69 74 68 20 27 5a 27 20 |efixed with 'Z' | 000a70f0 74 6f 20 73 75 70 70 72 65 73 73 20 6c 65 61 64 |to suppress lead| 000a7100 69 6e 67 20 7a 65 72 6f 65 73 2e 00 44 41 54 41 |ing zeroes..DATA| 000a7110 a3 00 00 00 74 69 6d 65 0a 53 79 6e 74 61 78 3a |....time.Syntax:| 000a7120 09 3c 74 69 6d 65 5f 74 3e 20 74 69 6d 65 20 28 |.<time_t> time (| 000a7130 74 69 6d 65 5f 74 20 2a 74 69 6d 65 72 29 3b 0a |time_t *timer);.| 000a7140 48 65 61 64 65 72 3a 09 3c 74 69 6d 65 2e 68 3d |Header:.<time.h=| 000a7150 3e 74 69 6d 65 5f 68 3e 0a 0a 52 65 74 75 72 6e |>time_h>..Return| 000a7160 73 3a 09 54 68 65 20 63 75 72 72 65 6e 74 20 63 |s:.The current c| 000a7170 61 6c 65 6e 64 61 72 20 74 69 6d 65 2e 0a 0a 54 |alendar time...T| 000a7180 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 |his function ret| 000a7190 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 6e 74 |urns the current| 000a71a0 20 63 61 6c 65 6e 64 61 72 20 74 69 6d 65 2e 00 | calendar time..| 000a71b0 44 49 52 24 e0 01 00 00 e0 01 00 00 90 73 0a 00 |DIR$.........s..| 000a71c0 46 ff ff ff 4a 81 36 26 b9 01 00 00 13 00 00 00 |F...J.6&........| 000a71d0 00 00 00 00 43 6f 6e 76 65 72 74 44 61 74 65 41 |....ConvertDateA| 000a71e0 6e 64 54 69 6d 65 00 00 4c 75 0a 00 46 ff ff ff |ndTime..Lu..F...| 000a71f0 3a d8 36 26 1a 01 00 00 13 00 00 00 00 00 00 00 |:.6&............| 000a7200 43 54 49 4d 45 00 00 00 68 76 0a 00 46 ff ff ff |CTIME...hv..F...| 000a7210 c4 10 37 26 02 01 00 00 13 00 00 00 00 00 00 00 |..7&............| 000a7220 45 55 52 4f 54 49 4d 45 00 00 00 00 6c 77 0a 00 |EUROTIME....lw..| 000a7230 46 ff ff ff 4f f2 36 26 1c 01 00 00 13 00 00 00 |F...O.6&........| 000a7240 00 00 00 00 46 41 4e 43 59 44 41 54 45 00 00 00 |....FANCYDATE...| 000a7250 88 78 0a 00 46 fd ff ff 0a 5f bc 22 93 01 00 00 |.x..F...._."....| 000a7260 13 00 00 00 00 00 00 00 68 00 00 00 1c 7a 0a 00 |........h....z..| 000a7270 46 ff ff ff a6 08 37 26 07 01 00 00 13 00 00 00 |F.....7&........| 000a7280 00 00 00 00 4c 4f 4e 47 54 49 4d 45 00 00 00 00 |....LONGTIME....| 000a7290 24 7b 0a 00 46 ff ff ff 6c 77 36 26 b6 01 00 00 |${..F...lw6&....| 000a72a0 13 00 00 00 00 00 00 00 4d 6f 6e 6f 74 6f 6e 69 |........Monotoni| 000a72b0 63 00 00 00 dc 7c 0a 00 46 ff ff ff 19 4d 58 26 |c....|..F....MX&| 000a72c0 e7 00 00 00 13 00 00 00 00 00 00 00 52 65 61 64 |............Read| 000a72d0 4d 6f 6e 6f 74 6f 6e 69 63 00 00 00 c4 7d 0a 00 |Monotonic....}..| 000a72e0 46 ff ff ff 60 00 37 26 01 01 00 00 13 00 00 00 |F...`.7&........| 000a72f0 00 00 00 00 53 48 4f 52 54 54 49 4d 45 00 00 00 |....SHORTTIME...| 000a7300 c8 7e 0a 00 46 ff ff ff a9 e4 36 26 14 01 00 00 |.~..F.....6&....| 000a7310 13 00 00 00 00 00 00 00 53 54 41 4e 44 41 52 44 |........STANDARD| 000a7320 00 00 00 00 dc 7f 0a 00 46 ff ff ff 16 52 e2 22 |........F....R."| 000a7330 0c 01 00 00 13 00 00 00 00 00 00 00 74 00 00 00 |............t...| 000a7340 e8 80 0a 00 46 fd ff ff 0a 45 58 26 59 00 00 00 |....F....EX&Y...| 000a7350 13 00 00 00 00 00 00 00 54 4c 00 00 44 81 0a 00 |........TL..D...| 000a7360 46 ff ff ff a8 c4 36 26 c9 01 00 00 13 00 00 00 |F.....6&........| 000a7370 00 00 00 00 43 6f 6e 76 65 72 74 53 74 61 6e 64 |....ConvertStand| 000a7380 61 72 64 44 61 74 65 41 6e 64 54 69 6d 65 00 00 |ardDateAndTime..| 000a7390 44 41 54 41 b9 01 00 00 54 69 6d 65 5f 43 6f 6e |DATA....Time_Con| 000a73a0 76 65 72 74 44 61 74 65 41 6e 64 54 69 6d 65 0a |vertDateAndTime.| 000a73b0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000a73c0 72 3e 20 2a 54 69 6d 65 5f 43 6f 6e 76 65 72 74 |r> *Time_Convert| 000a73d0 44 61 74 65 41 6e 64 54 69 6d 65 20 28 63 68 61 |DateAndTime (cha| 000a73e0 72 20 2a 62 6c 6f 63 6b 2c 20 63 68 61 72 20 2a |r *block, char *| 000a73f0 62 75 66 66 65 72 2c 20 69 6e 74 20 6c 65 6e 2c |buffer, int len,| 000a7400 20 63 68 61 72 20 2a 66 6f 72 6d 61 74 29 3b 0a | char *format);.| 000a7410 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000a7420 3a 54 69 6d 65 2e 68 3d 3e 44 4c 5f 54 69 6d 65 |:Time.h=>DL_Time| 000a7430 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000a7440 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000a7450 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000a7460 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000a7470 77 72 69 74 65 73 20 74 68 65 20 66 69 76 65 2d |writes the five-| 000a7480 62 79 74 65 20 74 69 6d 65 20 28 63 65 6e 74 69 |byte time (centi| 000a7490 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 31 39 |seconds since 19| 000a74a0 30 30 29 20 69 6e 20 2f 62 6c 6f 63 6b 2f 20 74 |00) in /block/ t| 000a74b0 6f 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 |o the character | 000a74c0 61 72 72 61 79 20 70 6f 69 6e 74 65 64 20 74 6f |array pointed to| 000a74d0 20 62 79 20 2f 62 75 66 66 65 72 2f 20 75 6e 64 | by /buffer/ und| 000a74e0 65 72 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 74 68 |er control of th| 000a74f0 65 20 3c 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 |e <format string| 000a7500 3d 3e 74 66 6f 72 6d 5f 5f 3e 2e 0a 0a 4e 6f 20 |=>tform__>...No | 000a7510 6d 6f 72 65 20 74 68 61 6e 20 2f 6c 65 6e 2f 20 |more than /len/ | 000a7520 63 68 61 72 61 63 74 65 72 73 20 77 69 6c 6c 20 |characters will | 000a7530 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 74 68 |be written to th| 000a7540 65 20 73 74 72 69 6e 67 2e 00 00 00 44 41 54 41 |e string....DATA| 000a7550 1a 01 00 00 54 69 6d 65 5f 43 54 49 4d 45 0a 54 |....Time_CTIME.T| 000a7560 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 |his macro is def| 000a7570 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 |ined in <DeskLib| 000a7580 3a 54 69 6d 65 2e 68 3d 3e 44 4c 5f 54 69 6d 65 |:Time.h=>DL_Time| 000a7590 3e 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 |> for use with t| 000a75a0 68 65 20 3c 54 69 6d 65 5f 43 6f 6e 76 65 72 74 |he <Time_Convert| 000a75b0 44 61 74 65 41 6e 64 54 69 6d 65 3e 20 66 75 6e |DateAndTime> fun| 000a75c0 63 74 69 6f 6e 2e 20 49 74 20 70 72 6f 64 75 63 |ction. It produc| 000a75d0 65 73 20 74 69 6d 65 73 20 6f 66 20 74 68 65 20 |es times of the | 000a75e0 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c |form:..{fCode;al| 000a75f0 69 67 6e 20 63 65 6e 74 72 65 7d 46 72 69 20 4a |ign centre}Fri J| 000a7600 75 6c 20 31 35 20 31 36 3a 35 32 3a 30 30 20 31 |ul 15 16:52:00 1| 000a7610 39 39 34 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 49 74 |994{f;align}..It| 000a7620 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a | is defined as:.| 000a7630 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 |.{fCode;align ce| 000a7640 6e 74 72 65 7d 22 25 57 33 20 25 4d 33 20 25 44 |ntre}"%W3 %M3 %D| 000a7650 59 20 25 7a 32 34 3a 25 4d 49 3a 25 53 45 20 25 |Y %z24:%MI:%SE %| 000a7660 43 45 25 59 52 22 00 00 44 41 54 41 02 01 00 00 |CE%YR"..DATA....| 000a7670 54 69 6d 65 5f 45 55 52 4f 54 49 4d 45 0a 54 68 |Time_EUROTIME.Th| 000a7680 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 000a7690 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000a76a0 54 69 6d 65 2e 68 3d 3e 44 4c 5f 54 69 6d 65 3e |Time.h=>DL_Time>| 000a76b0 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 | for use with th| 000a76c0 65 20 3c 54 69 6d 65 5f 43 6f 6e 76 65 72 74 44 |e <Time_ConvertD| 000a76d0 61 74 65 41 6e 64 54 69 6d 65 3e 20 66 75 6e 63 |ateAndTime> func| 000a76e0 74 69 6f 6e 2e 20 49 74 20 70 72 6f 64 75 63 65 |tion. It produce| 000a76f0 73 20 74 69 6d 65 73 20 6f 66 20 74 68 65 20 66 |s times of the f| 000a7700 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 |orm:..{fCode;ali| 000a7710 67 6e 20 63 65 6e 74 72 65 7d 31 36 3a 35 32 3a |gn centre}16:52:| 000a7720 30 30 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 49 74 20 |00{f;align}..It | 000a7730 69 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a |is defined as:..| 000a7740 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 000a7750 74 72 65 7d 22 7a 32 34 3a 25 4d 49 3a 25 53 45 |tre}"z24:%MI:%SE| 000a7760 22 7b 66 3b 61 6c 69 67 6e 7d 00 00 44 41 54 41 |"{f;align}..DATA| 000a7770 1c 01 00 00 54 69 6d 65 5f 46 41 4e 43 59 44 41 |....Time_FANCYDA| 000a7780 54 45 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 |TE.This macro is| 000a7790 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 000a77a0 6b 4c 69 62 3a 54 69 6d 65 2e 68 3d 3e 44 4c 5f |kLib:Time.h=>DL_| 000a77b0 54 69 6d 65 3e 20 66 6f 72 20 75 73 65 20 77 69 |Time> for use wi| 000a77c0 74 68 20 74 68 65 20 3c 54 69 6d 65 5f 43 6f 6e |th the <Time_Con| 000a77d0 76 65 72 74 44 61 74 65 41 6e 64 54 69 6d 65 3e |vertDateAndTime>| 000a77e0 20 66 75 6e 63 74 69 6f 6e 2e 20 49 74 20 70 72 | function. It pr| 000a77f0 6f 64 75 63 65 73 20 74 69 6d 65 73 20 6f 66 20 |oduces times of | 000a7800 74 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 |the form:..{fCod| 000a7810 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 46 |e;align centre}F| 000a7820 72 69 64 61 79 2c 20 31 36 74 68 20 6f 66 20 4a |riday, 16th of J| 000a7830 75 6c 79 2c 20 31 39 39 34 7b 66 3b 61 6c 69 67 |uly, 1994{f;alig| 000a7840 6e 7d 0a 0a 49 74 20 69 73 20 64 65 66 69 6e 65 |n}..It is define| 000a7850 64 20 61 73 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c |d as:..{fCode;al| 000a7860 69 67 6e 20 63 65 6e 74 72 65 7d 22 25 57 45 2c |ign centre}"%WE,| 000a7870 20 25 7a 44 59 25 53 54 20 6f 66 20 25 4d 4f 2c | %zDY%ST of %MO,| 000a7880 20 25 43 45 25 59 52 22 44 41 54 41 93 01 00 00 | %CE%YR"DATA....| 000a7890 74 69 6d 65 2e 68 0a 54 68 65 20 5c 3c 74 69 6d |time.h.The \<tim| 000a78a0 65 2e 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c |e.h> header decl| 000a78b0 61 72 65 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 |ares a number of| 000a78c0 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 6c 61 74 | functions relat| 000a78d0 69 6e 67 20 74 6f 20 72 65 61 64 69 6e 67 20 74 |ing to reading t| 000a78e0 68 65 20 73 79 73 74 65 6d 20 64 61 74 65 20 61 |he system date a| 000a78f0 6e 64 20 74 69 6d 65 2e 20 49 74 20 61 6c 73 6f |nd time. It also| 000a7900 20 64 65 66 69 6e 65 73 20 6f 6e 65 20 6d 61 63 | defines one mac| 000a7910 72 6f 20 61 6e 64 20 74 68 72 65 65 20 74 79 70 |ro and three typ| 000a7920 65 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a |es...Functions:.| 000a7930 0a 23 49 6e 64 65 6e 74 20 34 0a 23 54 61 62 6c |.#Indent 4.#Tabl| 000a7940 65 20 63 6f 6c 75 6d 6e 73 20 35 0a 3c 61 73 63 |e columns 5.<asc| 000a7950 74 69 6d 65 3e 0a 3c 63 6c 6f 63 6b 3e 0a 3c 63 |time>.<clock>.<c| 000a7960 74 69 6d 65 3e 0a 3c 64 69 66 66 74 69 6d 65 3e |time>.<difftime>| 000a7970 0a 3c 67 6d 74 69 6d 65 3e 0a 3c 6c 6f 63 61 6c |.<gmtime>.<local| 000a7980 74 69 6d 65 3e 0a 3c 6d 6b 74 69 6d 65 3e 0a 3c |time>.<mktime>.<| 000a7990 73 74 72 66 74 69 6d 65 3e 0a 3c 74 69 6d 65 3e |strftime>.<time>| 000a79a0 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 0a 23 69 6e |.#EndTable...#in| 000a79b0 64 65 6e 74 20 30 0a 4d 61 63 72 6f 3a 0a 0a 20 |dent 0.Macro:.. | 000a79c0 20 20 20 3c 43 4c 4f 43 4b 53 5f 50 45 52 5f 53 | <CLOCKS_PER_S| 000a79d0 45 43 3e 0a 0a 54 79 70 65 73 3a 0a 0a 23 49 6e |EC>..Types:..#In| 000a79e0 64 65 6e 74 20 34 0a 23 54 61 62 6c 65 20 31 20 |dent 4.#Table 1 | 000a79f0 31 35 0a 3c 63 6c 6f 63 6b 5f 74 3e 0a 3c 74 69 |15.<clock_t>.<ti| 000a7a00 6d 65 5f 74 3e 0a 3c 73 74 72 75 63 74 a0 74 6d |me_t>.<struct.tm| 000a7a10 3e 0a 23 45 6e 64 54 61 62 6c 65 00 44 41 54 41 |>.#EndTable.DATA| 000a7a20 07 01 00 00 54 69 6d 65 5f 4c 4f 4e 47 54 49 4d |....Time_LONGTIM| 000a7a30 45 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 |E.This macro is | 000a7a40 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 000a7a50 4c 69 62 3a 54 69 6d 65 2e 68 3d 3e 44 4c 5f 54 |Lib:Time.h=>DL_T| 000a7a60 69 6d 65 3e 20 66 6f 72 20 75 73 65 20 77 69 74 |ime> for use wit| 000a7a70 68 20 74 68 65 20 3c 54 69 6d 65 5f 43 6f 6e 76 |h the <Time_Conv| 000a7a80 65 72 74 44 61 74 65 41 6e 64 54 69 6d 65 3e 20 |ertDateAndTime> | 000a7a90 66 75 6e 63 74 69 6f 6e 2e 20 49 74 20 70 72 6f |function. It pro| 000a7aa0 64 75 63 65 73 20 74 69 6d 65 73 20 6f 66 20 74 |duces times of t| 000a7ab0 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 |he form:..{fCode| 000a7ac0 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 34 3a |;align centre}4:| 000a7ad0 35 32 3a 30 30 70 6d 7b 66 3b 61 6c 69 67 6e 7d |52:00pm{f;align}| 000a7ae0 0a 0a 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |..It is defined | 000a7af0 61 73 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 |as:..{fCode;alig| 000a7b00 6e 20 63 65 6e 74 72 65 7d 22 25 7a 31 32 3a 25 |n centre}"%z12:%| 000a7b10 4d 49 3a 25 53 45 25 70 6d 22 7b 66 3b 61 6c 69 |MI:%SE%pm"{f;ali| 000a7b20 67 6e 7d 00 44 41 54 41 b6 01 00 00 54 69 6d 65 |gn}.DATA....Time| 000a7b30 5f 4d 6f 6e 6f 74 6f 6e 69 63 0a 53 79 6e 74 61 |_Monotonic.Synta| 000a7b40 78 3a 09 69 6e 74 20 54 69 6d 65 5f 4d 6f 6e 6f |x:.int Time_Mono| 000a7b50 74 6f 6e 69 63 20 28 76 6f 69 64 29 3b 0a 48 65 |tonic (void);.He| 000a7b60 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 54 |ader:.<DeskLib:T| 000a7b70 69 6d 65 2e 68 3d 3e 44 4c 5f 54 69 6d 65 3e 0a |ime.h=>DL_Time>.| 000a7b80 0a 52 65 74 75 72 6e 73 3a 09 54 69 6d 65 20 73 |.Returns:.Time s| 000a7b90 69 6e 63 65 20 70 6f 77 65 72 2d 6f 6e 2c 20 69 |ince power-on, i| 000a7ba0 6e 20 63 65 6e 74 69 73 65 63 6f 6e 64 73 2e 0a |n centiseconds..| 000a7bb0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000a7bc0 65 74 75 72 6e 73 20 61 6e 20 69 6e 74 65 67 65 |eturns an intege| 000a7bd0 72 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 |r representing t| 000a7be0 68 65 20 74 69 6d 65 20 73 69 6e 63 65 20 74 68 |he time since th| 000a7bf0 65 20 63 6f 6d 70 75 74 65 72 20 77 61 73 20 73 |e computer was s| 000a7c00 77 69 74 63 68 65 64 20 6f 6e 2c 20 69 6e 20 63 |witched on, in c| 000a7c10 65 6e 74 69 73 65 63 6f 6e 64 73 2e 20 54 68 69 |entiseconds. Thi| 000a7c20 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 |s is equivalent | 000a7c30 74 6f 20 3c 54 49 4d 45 3d 3e 42 61 73 69 63 3a |to <TIME=>Basic:| 000a7c40 54 49 4d 45 3e 20 69 6e 20 42 61 73 69 63 2c 20 |TIME> in Basic, | 000a7c50 6f 72 20 74 68 65 20 53 57 49 20 3c 4f 53 5f 52 |or the SWI <OS_R| 000a7c60 65 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 69 6d 65 |eadMonotonicTime| 000a7c70 3d 3e 53 57 49 3a 4f 53 5f 52 65 61 64 4d 6f 6e |=>SWI:OS_ReadMon| 000a7c80 6f 74 6f 6e 69 63 54 69 6d 65 3e 2e 20 54 68 65 |otonicTime>. The| 000a7c90 20 74 69 6d 65 20 77 72 61 70 73 20 61 72 6f 75 | time wraps arou| 000a7ca0 6e 64 20 61 62 6f 75 74 20 65 76 65 72 79 20 31 |nd about every 1| 000a7cb0 36 20 6d 6f 6e 74 68 73 2c 20 73 6f 20 74 68 69 |6 months, so thi| 000a7cc0 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 |s should not be | 000a7cd0 61 20 70 72 6f 62 6c 65 6d 21 00 00 44 41 54 41 |a problem!..DATA| 000a7ce0 e7 00 00 00 54 69 6d 65 5f 52 65 61 64 4d 6f 6e |....Time_ReadMon| 000a7cf0 6f 74 6f 6e 69 63 0a 53 79 6e 74 61 78 3a 09 54 |otonic.Syntax:.T| 000a7d00 69 6d 65 5f 52 65 61 64 4d 6f 6e 6f 74 6f 6e 69 |ime_ReadMonotoni| 000a7d10 63 20 28 75 6e 73 69 67 6e 65 64 20 2a 74 69 6d |c (unsigned *tim| 000a7d20 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d |e);.Header:.<Tim| 000a7d30 73 4c 69 62 3a 54 69 6d 65 2e 68 3d 3e 54 69 6d |sLib:Time.h=>Tim| 000a7d40 65 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |e_TL>..This func| 000a7d50 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 20 |tion-like macro | 000a7d60 63 61 6c 6c 73 20 74 68 65 20 53 57 49 20 3c 4f |calls the SWI <O| 000a7d70 53 5f 52 65 61 64 4d 6f 6e 6f 74 6f 6e 69 63 54 |S_ReadMonotonicT| 000a7d80 69 6d 65 3d 3e 53 57 49 3a 4f 53 5f 52 65 61 64 |ime=>SWI:OS_Read| 000a7d90 4d 6f 6e 6f 74 6f 6e 69 63 54 69 6d 65 3e 20 61 |MonotonicTime> a| 000a7da0 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 74 |nd returns the t| 000a7db0 69 6d 65 20 69 6e 20 7b 2f 7d 2a 74 69 6d 65 7b |ime in {/}*time{| 000a7dc0 2f 7d 2e 00 44 41 54 41 01 01 00 00 54 69 6d 65 |/}..DATA....Time| 000a7dd0 5f 53 48 4f 52 54 54 49 4d 45 0a 54 68 69 73 20 |_SHORTTIME.This | 000a7de0 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 |macro is defined| 000a7df0 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 54 69 6d | in <DeskLib:Tim| 000a7e00 65 2e 68 3d 3e 44 4c 5f 54 69 6d 65 3e 20 66 6f |e.h=>DL_Time> fo| 000a7e10 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 3c |r use with the <| 000a7e20 54 69 6d 65 5f 43 6f 6e 76 65 72 74 44 61 74 65 |Time_ConvertDate| 000a7e30 41 6e 64 54 69 6d 65 3e 20 66 75 6e 63 74 69 6f |AndTime> functio| 000a7e40 6e 2e 20 49 74 20 70 72 6f 64 75 63 65 73 20 74 |n. It produces t| 000a7e50 69 6d 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d |imes of the form| 000a7e60 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |:..{fCode;align | 000a7e70 63 65 6e 74 72 65 7d 34 3a 35 32 70 6d 7b 66 3b |centre}4:52pm{f;| 000a7e80 61 6c 69 67 6e 7d 0a 0a 49 74 20 69 73 20 64 65 |align}..It is de| 000a7e90 66 69 6e 65 64 20 61 73 3a 0a 0a 7b 66 43 6f 64 |fined as:..{fCod| 000a7ea0 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 22 |e;align centre}"| 000a7eb0 25 7a 31 32 3a 25 4d 49 25 70 6d 22 7b 66 3b 61 |%z12:%MI%pm"{f;a| 000a7ec0 6c 69 67 6e 7d 00 00 00 44 41 54 41 14 01 00 00 |lign}...DATA....| 000a7ed0 54 69 6d 65 5f 53 54 41 4e 44 41 52 44 0a 54 68 |Time_STANDARD.Th| 000a7ee0 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 |is macro is defi| 000a7ef0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000a7f00 54 69 6d 65 2e 68 3d 3e 44 4c 5f 54 69 6d 65 3e |Time.h=>DL_Time>| 000a7f10 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 | for use with th| 000a7f20 65 20 3c 54 69 6d 65 5f 43 6f 6e 76 65 72 74 44 |e <Time_ConvertD| 000a7f30 61 74 65 41 6e 64 54 69 6d 65 3e 20 66 75 6e 63 |ateAndTime> func| 000a7f40 74 69 6f 6e 2e 20 49 74 20 70 72 6f 64 75 63 65 |tion. It produce| 000a7f50 73 20 74 69 6d 65 73 20 6f 66 20 74 68 65 20 66 |s times of the f| 000a7f60 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 |orm:..{fCode;ali| 000a7f70 67 6e 20 63 65 6e 74 72 65 7d 31 36 3a 35 32 3a |gn centre}16:52:| 000a7f80 30 30 20 31 35 2d 4a 75 6c 2d 31 39 39 34 7b 66 |00 15-Jul-1994{f| 000a7f90 3b 61 6c 69 67 6e 7d 0a 0a 49 74 20 69 73 20 64 |;align}..It is d| 000a7fa0 65 66 69 6e 65 64 20 61 73 3a 0a 0a 7b 66 43 6f |efined as:..{fCo| 000a7fb0 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d |de;align centre}| 000a7fc0 22 25 32 34 3a 25 6d 69 3a 25 73 65 20 25 64 79 |"%24:%mi:%se %dy| 000a7fd0 2d 25 6d 33 2d 25 63 65 25 79 72 22 44 41 54 41 |-%m3-%ce%yr"DATA| 000a7fe0 0c 01 00 00 74 69 6d 65 5f 74 0a 54 68 65 20 74 |....time_t.The t| 000a7ff0 79 70 65 20 7b 2f 7d 74 69 6d 65 5f 74 7b 2f 7d |ype {/}time_t{/}| 000a8000 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000a8010 74 69 6d 65 2e 68 3d 3e 74 69 6d 65 5f 68 3e 20 |time.h=>time_h> | 000a8020 61 73 20 61 6e 20 6f 62 6a 65 63 74 20 63 61 70 |as an object cap| 000a8030 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 20 |able of holding | 000a8040 61 6e 79 20 67 69 76 65 6e 20 63 61 6c 65 6e 64 |any given calend| 000a8050 61 72 20 74 69 6d 65 20 76 61 6c 75 65 2e 20 54 |ar time value. T| 000a8060 68 65 20 63 61 6c 65 6e 64 61 72 20 74 69 6d 65 |he calendar time| 000a8070 20 76 61 6c 75 65 20 69 73 20 69 6e 20 66 61 63 | value is in fac| 000a8080 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 |t the number of | 000a8090 55 6e 69 78 20 73 65 63 6f 6e 64 73 20 73 69 6e |Unix seconds sin| 000a80a0 63 65 20 31 2f 31 2f 31 39 37 30 2e 20 49 6e 20 |ce 1/1/1970. In | 000a80b0 45 61 73 79 20 43 20 61 6e 64 20 44 65 73 6b 74 |Easy C and Deskt| 000a80c0 6f 70 20 43 20 69 74 20 69 73 20 64 65 66 69 6e |op C it is defin| 000a80d0 65 64 20 61 73 20 61 6e 20 2f 75 6e 73 69 67 6e |ed as an /unsign| 000a80e0 65 64 20 69 6e 74 2f 2e 44 41 54 41 59 00 00 00 |ed int/.DATAY...| 000a80f0 54 69 6d 73 4c 69 62 3a 54 69 6d 65 2e 68 0a 54 |TimsLib:Time.h.T| 000a8100 68 69 73 20 68 65 61 64 65 72 20 64 65 66 69 6e |his header defin| 000a8110 65 73 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 2d |es one function-| 000a8120 6c 69 6b 65 20 6d 61 63 72 6f 2c 20 3c 54 69 6d |like macro, <Tim| 000a8130 65 5f 52 65 61 64 4d 6f 6e 6f 74 6f 6e 69 63 3e |e_ReadMonotonic>| 000a8140 2e 00 00 00 44 41 54 41 c9 01 00 00 54 69 6d 65 |....DATA....Time| 000a8150 5f 43 6f 6e 76 65 72 74 53 74 61 6e 64 61 72 64 |_ConvertStandard| 000a8160 44 61 74 65 41 6e 64 54 69 6d 65 0a 53 79 6e 74 |DateAndTime.Synt| 000a8170 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000a8180 54 69 6d 65 5f 43 6f 6e 76 65 72 74 53 74 61 6e |Time_ConvertStan| 000a8190 64 61 72 64 44 61 74 65 41 6e 64 54 69 6d 65 20 |dardDateAndTime | 000a81a0 28 63 68 61 72 20 2a 62 6c 6f 63 6b 2c 20 63 68 |(char *block, ch| 000a81b0 61 72 20 2a 62 75 66 66 65 72 2c 20 69 6e 74 20 |ar *buffer, int | 000a81c0 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |len);.Header:.<D| 000a81d0 65 73 6b 4c 69 62 3a 54 69 6d 65 2e 68 3d 3e 44 |eskLib:Time.h=>D| 000a81e0 4c 5f 54 69 6d 65 3e 0a 0a 52 65 74 75 72 6e 73 |L_Time>..Returns| 000a81f0 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000a8200 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000a8210 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000a8220 63 74 69 6f 6e 20 77 72 69 74 65 73 20 74 68 65 |ction writes the| 000a8230 20 66 69 76 65 2d 62 79 74 65 20 74 69 6d 65 20 | five-byte time | 000a8240 28 63 65 6e 74 69 73 65 63 6f 6e 64 73 20 73 69 |(centiseconds si| 000a8250 6e 63 65 20 31 39 30 30 29 20 69 6e 20 2f 62 6c |nce 1900) in /bl| 000a8260 6f 63 6b 2f 20 74 6f 20 74 68 65 20 63 68 61 72 |ock/ to the char| 000a8270 61 63 74 65 72 20 61 72 72 61 79 20 70 6f 69 6e |acter array poin| 000a8280 74 65 64 20 74 6f 20 62 79 20 2f 62 75 66 66 65 |ted to by /buffe| 000a8290 72 2f 20 75 73 69 6e 67 20 74 68 65 20 3c 66 6f |r/ using the <fo| 000a82a0 72 6d 61 74 20 73 74 72 69 6e 67 3d 3e 54 66 6f |rmat string=>Tfo| 000a82b0 72 6d 5f 5f 3e 20 73 74 6f 72 65 64 20 69 6e 20 |rm__> stored in | 000a82c0 53 79 73 24 44 61 74 65 46 6f 72 6d 61 74 2e 0a |Sys$DateFormat..| 000a82d0 0a 4e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 2f 6c |.No more than /l| 000a82e0 65 6e 2f 20 63 68 61 72 61 63 74 65 72 73 20 77 |en/ characters w| 000a82f0 69 6c 6c 20 62 65 20 77 72 69 74 74 65 6e 20 74 |ill be written t| 000a8300 6f 20 74 68 65 20 73 74 72 69 6e 67 2e 00 00 00 |o the string....| 000a8310 44 41 54 41 7f 01 00 00 74 6d 70 66 69 6c 65 0a |DATA....tmpfile.| 000a8320 53 79 6e 74 61 78 3a 09 3c 46 49 4c 45 3e 20 2a |Syntax:.<FILE> *| 000a8330 74 6d 70 66 69 6c 65 20 28 76 6f 69 64 29 3b 0a |tmpfile (void);.| 000a8340 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f 2e 68 |Header:.<stdio.h| 000a8350 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 72 6e |=>stdio>..Return| 000a8360 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 |s:.Pointer to th| 000a8370 65 20 66 69 6c 65 20 73 74 72 65 61 6d 2e 0a 0a |e file stream...| 000a8380 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 |This function cr| 000a8390 65 61 74 65 73 20 61 20 74 65 6d 70 6f 72 61 72 |eates a temporar| 000a83a0 79 20 66 69 6c 65 20 77 68 69 63 68 20 77 69 6c |y file which wil| 000a83b0 6c 20 62 65 20 61 75 74 6f 6d 61 74 69 63 61 6c |l be automatical| 000a83c0 6c 79 20 64 65 6c 65 74 65 64 20 6f 6e 20 63 6c |ly deleted on cl| 000a83d0 6f 73 75 72 65 20 6f 72 20 77 68 65 6e 20 74 68 |osure or when th| 000a83e0 65 20 70 72 6f 67 72 61 6d 20 66 69 6e 69 73 68 |e program finish| 000a83f0 65 73 20 6e 6f 72 6d 61 6c 6c 79 20 28 62 75 74 |es normally (but| 000a8400 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 | not necessarily| 000a8410 20 75 70 6f 6e 20 61 62 6e 6f 72 6d 61 6c 20 74 | upon abnormal t| 000a8420 65 72 6d 69 6e 61 74 69 6f 6e 29 2e 20 49 74 20 |ermination). It | 000a8430 69 73 20 6f 70 65 6e 65 64 20 77 69 74 68 20 3c |is opened with <| 000a8440 94 77 62 2b 95 20 6d 6f 64 65 3d 3e 66 69 6c 65 |.wb+. mode=>file| 000a8450 5f 6d 6f 64 65 5f 3e 2e 20 49 66 20 74 68 65 20 |_mode_>. If the | 000a8460 66 69 6c 65 20 63 61 6e 6e 6f 74 20 62 65 20 63 |file cannot be c| 000a8470 72 65 61 74 65 64 20 74 68 65 6e 20 3c 4e 55 4c |reated then <NUL| 000a8480 4c 3e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 00 |L> is returned..| 000a8490 44 41 54 41 cd 01 00 00 74 6d 70 6e 61 6d 0a 53 |DATA....tmpnam.S| 000a84a0 79 6e 74 61 78 3a 09 63 68 61 72 20 2a 74 6d 70 |yntax:.char *tmp| 000a84b0 6e 61 6d 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 |nam (char *name)| 000a84c0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f |;.Header:.<stdio| 000a84d0 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 |.h=>stdio>..Retu| 000a84e0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000a84f0 66 69 6c 65 6e 61 6d 65 2e 0a 0a 54 68 65 20 66 |filename...The f| 000a8500 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 |unction generate| 000a8510 73 20 61 20 6f 72 69 67 69 6e 61 6c 20 28 69 65 |s a original (ie| 000a8520 20 6e 6f 74 20 75 73 65 64 20 66 6f 72 20 61 6e | not used for an| 000a8530 20 65 78 69 73 69 74 69 6e 67 20 66 69 6c 65 29 | exisiting file)| 000a8540 20 66 69 6c 65 6e 61 6d 65 2e 20 49 74 20 77 69 | filename. It wi| 000a8550 6c 6c 20 67 65 6e 65 72 61 74 65 20 75 70 20 74 |ll generate up t| 000a8560 6f 20 3c 54 4d 50 5f 4d 41 58 3e 20 75 6e 69 71 |o <TMP_MAX> uniq| 000a8570 75 65 20 6e 61 6d 65 73 2e 20 49 66 20 2f 6e 61 |ue names. If /na| 000a8580 6d 65 2f 20 70 6f 69 6e 74 73 20 74 6f 20 61 6e |me/ points to an| 000a8590 20 61 72 72 61 79 20 74 68 65 6e 20 74 68 65 20 | array then the | 000a85a0 6e 61 6d 65 20 69 73 20 63 6f 70 69 65 64 20 69 |name is copied i| 000a85b0 6e 74 6f 20 74 68 69 73 20 61 72 72 61 79 20 28 |nto this array (| 000a85c0 77 68 69 63 68 20 73 68 6f 75 6c 64 20 68 61 76 |which should hav| 000a85d0 65 20 6c 65 6e 67 74 68 20 6f 66 20 61 74 20 6c |e length of at l| 000a85e0 65 61 73 74 20 3c 4c 5f 74 6d 70 6e 61 6d 3e 29 |east <L_tmpnam>)| 000a85f0 2e 20 49 66 20 2f 6e 61 6d 65 2f 20 69 73 20 61 |. If /name/ is a| 000a8600 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 20 74 68 | null pointer th| 000a8610 65 6e 20 74 6d 70 6e 61 6d 20 63 72 65 61 74 65 |en tmpnam create| 000a8620 73 20 69 74 73 20 6f 77 6e 20 61 72 72 61 79 2c |s its own array,| 000a8630 20 62 75 74 20 73 75 62 73 65 71 75 65 6e 74 20 | but subsequent | 000a8640 63 61 6c 6c 73 20 6d 61 79 20 6f 76 65 72 77 72 |calls may overwr| 000a8650 69 74 65 20 74 68 65 20 6e 61 6d 65 2e 00 00 00 |ite the name....| 000a8660 44 49 52 24 28 00 00 00 28 00 00 00 88 86 0a 00 |DIR$(...(.......| 000a8670 46 ff ff ff bd 5f c1 22 a9 00 00 00 13 00 00 00 |F...._."........| 000a8680 00 00 00 00 4d 41 58 00 44 41 54 41 a9 00 00 00 |....MAX.DATA....| 000a8690 54 4d 50 5f 4d 41 58 0a 23 50 61 72 65 6e 74 20 |TMP_MAX.#Parent | 000a86a0 73 74 64 69 6f 0a 54 68 65 20 6d 61 63 72 6f 20 |stdio.The macro | 000a86b0 54 4d 50 5f 4d 41 58 20 69 73 20 64 65 66 69 6e |TMP_MAX is defin| 000a86c0 65 64 20 69 6e 20 3c 73 74 64 69 6f 2e 68 3d 3e |ed in <stdio.h=>| 000a86d0 73 74 64 69 6f 3e 20 61 73 20 74 68 65 20 6d 69 |stdio> as the mi| 000a86e0 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 |nimum number of | 000a86f0 75 6e 69 71 75 65 20 66 69 6c 65 6e 61 6d 65 73 |unique filenames| 000a8700 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 67 65 | which can be ge| 000a8710 6e 65 72 61 74 65 64 20 62 79 20 74 68 65 20 66 |nerated by the f| 000a8720 75 6e 63 74 69 6f 6e 20 3c 74 6d 70 6e 61 6d 3e |unction <tmpnam>| 000a8730 2e 00 00 00 44 41 54 41 e9 00 00 00 74 6f 6c 6f |....DATA....tolo| 000a8740 77 65 72 0a 23 50 61 72 65 6e 74 20 63 74 79 70 |wer.#Parent ctyp| 000a8750 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 74 6f |e.Syntax:.int to| 000a8760 6c 6f 77 65 72 20 28 69 6e 74 20 63 29 3b 0a 48 |lower (int c);.H| 000a8770 65 61 64 65 72 3a 09 3c 63 74 79 70 65 2e 68 3d |eader:.<ctype.h=| 000a8780 3e 63 74 79 70 65 3e 0a 0a 52 65 74 75 72 6e 73 |>ctype>..Returns| 000a8790 3a 09 63 2c 20 63 6f 6e 76 65 72 74 65 64 20 74 |:.c, converted t| 000a87a0 6f 20 6c 6f 77 65 72 20 63 61 73 65 2e 0a 0a 49 |o lower case...I| 000a87b0 66 20 63 20 69 73 20 75 70 70 65 72 20 63 61 73 |f c is upper cas| 000a87c0 65 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e |e, this function| 000a87d0 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 6f 77 | returns the low| 000a87e0 65 72 20 63 61 73 65 20 65 71 75 69 76 61 6c 65 |er case equivale| 000a87f0 6e 74 2c 20 65 6c 73 65 20 74 68 65 20 63 68 61 |nt, else the cha| 000a8800 72 61 63 74 65 72 20 69 73 20 72 65 74 75 72 6e |racter is return| 000a8810 65 64 20 75 6e 63 68 61 6e 67 65 64 2e 00 00 00 |ed unchanged....| 000a8820 44 41 54 41 e9 00 00 00 74 6f 75 70 70 65 72 0a |DATA....toupper.| 000a8830 23 50 61 72 65 6e 74 20 63 74 79 70 65 0a 53 79 |#Parent ctype.Sy| 000a8840 6e 74 61 78 3a 09 69 6e 74 20 74 6f 75 70 70 65 |ntax:.int touppe| 000a8850 72 20 28 69 6e 74 20 63 29 3b 0a 48 65 61 64 65 |r (int c);.Heade| 000a8860 72 3a 09 3c 63 74 79 70 65 2e 68 3d 3e 63 74 79 |r:.<ctype.h=>cty| 000a8870 70 65 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 63 2c |pe>..Returns:.c,| 000a8880 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 75 70 | converted to up| 000a8890 70 65 72 20 63 61 73 65 2e 0a 0a 49 66 20 63 20 |per case...If c | 000a88a0 69 73 20 6c 6f 77 65 72 20 63 61 73 65 2c 20 74 |is lower case, t| 000a88b0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 |his function ret| 000a88c0 75 72 6e 73 20 74 68 65 20 75 70 70 65 72 20 63 |urns the upper c| 000a88d0 61 73 65 20 65 71 75 69 76 61 6c 65 6e 74 2c 20 |ase equivalent, | 000a88e0 65 6c 73 65 20 74 68 65 20 63 68 61 72 61 63 74 |else the charact| 000a88f0 65 72 20 69 73 20 72 65 74 75 72 6e 65 64 20 75 |er is returned u| 000a8900 6e 63 68 61 6e 67 65 64 2e 00 00 00 44 41 54 41 |nchanged....DATA| 000a8910 b0 01 00 00 74 72 61 63 65 2e 68 0a 54 68 69 73 |....trace.h.This| 000a8920 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 000a8930 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 74 | functions for t| 000a8940 72 61 63 69 6e 67 2f 64 65 62 75 67 67 69 6e 67 |racing/debugging| 000a8950 20 70 72 6f 67 72 61 6d 73 2e 0a 0a 46 75 6e 63 | programs...Func| 000a8960 74 69 6f 6e 73 3a 0a 0a 23 49 6e 64 65 6e 74 20 |tions:..#Indent | 000a8970 39 0a 23 54 61 62 6c 65 20 6c 69 6e 65 73 20 31 |9.#Table lines 1| 000a8980 0a 3c 74 72 61 63 65 66 3e 0a 3c 74 72 61 63 65 |.<tracef>.<trace| 000a8990 5f 69 73 5f 6f 6e 3e 0a 3c 74 72 61 63 65 5f 6f |_is_on>.<trace_o| 000a89a0 6e 20 3e 0a 3c 74 72 61 63 65 5f 6f 66 66 3e 0a |n >.<trace_off>.| 000a89b0 23 45 6e 64 54 61 62 6c 65 0a 23 49 6e 64 65 6e |#EndTable.#Inden| 000a89c0 74 20 30 0a 0a 59 6f 75 20 6d 75 73 74 20 23 64 |t 0..You must #d| 000a89d0 65 66 69 6e 65 20 54 52 41 43 45 20 31 20 69 6e |efine TRACE 1 in| 000a89e0 20 6f 72 64 65 72 20 74 6f 20 75 73 65 20 74 68 | order to use th| 000a89f0 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 2e 20 41 |ese functions. A| 000a8a00 6c 6c 20 63 61 6c 6c 73 20 74 6f 20 2a 74 72 61 |ll calls to *tra| 000a8a10 63 65 66 2a 20 73 68 6f 75 6c 64 20 62 65 20 73 |cef* should be s| 000a8a20 75 72 72 6f 75 6e 64 65 64 20 77 69 74 68 3a 0a |urrounded with:.| 000a8a30 0a 7b 66 43 6f 64 65 7d 20 20 5c 23 69 66 20 54 |.{fCode} \#if T| 000a8a40 52 41 43 45 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 |RACE. .... | 000a8a50 20 2e 2e 2e 0a 20 20 5c 23 65 6e 64 69 66 7b 66 | .... \#endif{f| 000a8a60 7d 0a 0a 74 6f 20 65 6e 73 75 72 65 20 74 68 61 |}..to ensure tha| 000a8a70 74 20 74 72 61 63 69 6e 67 20 69 73 20 6e 6f 74 |t tracing is not| 000a8a80 20 63 6f 6d 70 69 6c 65 64 20 69 6e 20 74 6f 20 | compiled in to | 000a8a90 74 68 65 20 66 69 6e 61 6c 20 76 65 72 73 69 6f |the final versio| 000a8aa0 6e 20 28 77 61 73 74 69 6e 67 20 74 69 6d 65 20 |n (wasting time | 000a8ab0 61 6e 64 20 6d 65 6d 6f 72 79 29 2e 44 41 54 41 |and memory).DATA| 000a8ac0 ad 00 00 00 74 72 61 63 65 66 0a 53 79 6e 74 61 |....tracef.Synta| 000a8ad0 78 3a 09 76 6f 69 64 20 74 72 61 63 65 66 20 28 |x:.void tracef (| 000a8ae0 63 68 61 72 20 2a 66 6f 72 6d 61 74 2c 20 2e 2e |char *format, ..| 000a8af0 2e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 72 61 |.);.Header:.<tra| 000a8b00 63 65 2e 68 3d 3e 74 72 61 63 65 3e 0a 0a 54 68 |ce.h=>trace>..Th| 000a8b10 69 73 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 |is function outp| 000a8b20 75 74 73 20 74 72 61 63 69 6e 67 20 69 6e 66 6f |uts tracing info| 000a8b30 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 | according to th| 000a8b40 65 20 3c 70 72 69 6e 74 66 3e 2d 73 74 79 6c 65 |e <printf>-style| 000a8b50 20 3c 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3d | <format string=| 000a8b60 3e 70 66 6f 72 6d 5f 3e 2e 00 00 00 44 49 52 24 |>pform_>....DIR$| 000a8b70 80 00 00 00 80 00 00 00 ec 8b 0a 00 46 ff ff ff |............F...| 000a8b80 80 05 e2 24 76 00 00 00 13 00 00 00 00 00 00 00 |...$v...........| 000a8b90 69 73 5f 6f 6e 00 00 00 64 8c 0a 00 46 ff ff ff |is_on...d...F...| 000a8ba0 0f 0b e2 24 5d 00 00 00 13 00 00 00 00 00 00 00 |...$]...........| 000a8bb0 6f 66 66 00 c4 8c 0a 00 46 ff ff ff 65 08 e2 24 |off.....F...e..$| 000a8bc0 5a 00 00 00 13 00 00 00 00 00 00 00 6f 6e 00 00 |Z...........on..| 000a8bd0 20 8d 0a 00 46 fd ff ff 98 55 58 26 8d 01 00 00 | ...F....UX&....| 000a8be0 13 00 00 00 00 00 00 00 54 4c 00 00 44 41 54 41 |........TL..DATA| 000a8bf0 76 00 00 00 74 72 61 63 65 5f 69 73 5f 6f 6e 0a |v...trace_is_on.| 000a8c00 53 79 6e 74 61 78 3a 09 69 6e 74 20 74 72 61 63 |Syntax:.int trac| 000a8c10 65 5f 69 73 5f 6f 6e 20 28 76 6f 69 64 29 3b 0a |e_is_on (void);.| 000a8c20 48 65 61 64 65 72 3a 09 3c 74 72 61 63 65 2e 68 |Header:.<trace.h| 000a8c30 3d 3e 74 72 61 63 65 3e 0a 0a 52 65 74 75 72 6e |=>trace>..Return| 000a8c40 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 74 72 61 |s:.<TRUE> if tra| 000a8c50 63 69 6e 67 20 69 73 20 74 75 72 6e 65 64 20 6f |cing is turned o| 000a8c60 6e 2e 00 00 44 41 54 41 5d 00 00 00 74 72 61 63 |n...DATA]...trac| 000a8c70 65 5f 6f 66 66 0a 53 79 6e 74 61 78 3a 09 76 6f |e_off.Syntax:.vo| 000a8c80 69 64 20 74 72 61 63 65 5f 6f 66 66 20 28 76 6f |id trace_off (vo| 000a8c90 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 72 |id);.Header:.<tr| 000a8ca0 61 63 65 2e 68 3d 3e 74 72 61 63 65 3e 0a 0a 54 |ace.h=>trace>..T| 000a8cb0 75 72 6e 73 20 74 72 61 63 69 6e 67 20 6f 66 66 |urns tracing off| 000a8cc0 2e 00 00 00 44 41 54 41 5a 00 00 00 74 72 61 63 |....DATAZ...trac| 000a8cd0 65 5f 6f 6e 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |e_on.Syntax:.voi| 000a8ce0 64 20 74 72 61 63 65 5f 6f 6e 20 28 76 6f 69 64 |d trace_on (void| 000a8cf0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 72 61 63 |);.Header:.<trac| 000a8d00 65 2e 68 3d 3e 74 72 61 63 65 3e 0a 0a 54 75 72 |e.h=>trace>..Tur| 000a8d10 6e 73 20 74 72 61 63 69 6e 67 20 6f 6e 2e 00 00 |ns tracing on...| 000a8d20 44 41 54 41 8d 01 00 00 54 69 6d 73 4c 69 62 3a |DATA....TimsLib:| 000a8d30 54 72 61 63 65 2e 68 0a 54 68 69 73 20 68 65 61 |Trace.h.This hea| 000a8d40 64 65 72 20 64 65 63 6c 61 72 65 73 20 6a 75 73 |der declares jus| 000a8d50 74 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 2c 20 |t one function, | 000a8d60 54 72 61 63 65 2e 20 49 6e 20 61 64 64 69 74 69 |Trace. In additi| 000a8d70 6f 6e 20 69 74 20 64 65 66 69 6e 65 73 20 6d 61 |on it defines ma| 000a8d80 63 72 6f 73 20 66 6f 72 20 65 61 63 68 20 6f 66 |cros for each of| 000a8d90 20 74 68 65 20 53 74 72 65 61 6d 20 53 57 49 73 | the Stream SWIs| 000a8da0 2e 0a 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |...Syntax:.void | 000a8db0 54 72 61 63 65 20 28 63 68 61 72 20 2a 72 65 70 |Trace (char *rep| 000a8dc0 6f 72 74 2c 20 2e 2e 2e 29 3b 0a 0a 54 68 69 73 |ort, ...);..This| 000a8dd0 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 | function takes | 000a8de0 61 20 70 72 69 6e 74 66 2d 73 74 79 6c 65 20 3c |a printf-style <| 000a8df0 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3d 3e 70 |format string=>p| 000a8e00 66 6f 72 6d 5f 3e 20 61 6e 64 20 70 72 69 6e 74 |form_> and print| 000a8e10 73 20 69 74 20 75 73 69 6e 67 20 74 68 65 20 56 |s it using the V| 000a8e20 44 55 53 74 72 65 61 6d 20 6d 6f 64 75 6c 65 2e |DUStream module.| 000a8e30 20 54 68 65 20 56 44 55 53 74 72 65 61 6d 20 6d | The VDUStream m| 000a8e40 6f 64 75 6c 65 20 69 73 20 61 74 20 70 72 65 73 |odule is at pres| 000a8e50 65 6e 74 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 |ent only availab| 000a8e60 6c 65 20 69 66 20 79 6f 75 20 68 61 76 65 20 74 |le if you have t| 000a8e70 68 65 20 41 72 74 57 6f 72 6b 73 20 53 6f 66 74 |he ArtWorks Soft| 000a8e80 77 61 72 65 20 44 65 76 65 6c 6f 70 65 72 27 73 |ware Developer's| 000a8e90 20 4b 69 74 2e 20 56 65 72 79 20 75 73 65 66 75 | Kit. Very usefu| 000a8ea0 6c 20 49 27 6d 20 73 75 72 65 2e 2e 2e 00 00 00 |l I'm sure......| 000a8eb0 44 41 54 41 c6 00 00 00 54 52 55 45 0a 54 68 65 |DATA....TRUE.The| 000a8ec0 20 6d 61 63 72 6f 20 54 52 55 45 20 69 73 20 64 | macro TRUE is d| 000a8ed0 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c |efined in <DeskL| 000a8ee0 69 62 3a 43 6f 72 65 2e 68 3d 3e 43 6f 72 65 3e |ib:Core.h=>Core>| 000a8ef0 2c 20 3c 54 69 6d 73 4c 69 62 3a 43 6f 72 65 2e |, <TimsLib:Core.| 000a8f00 68 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 6e 64 20 |h=>Core_TL> and | 000a8f10 3c 6f 73 2e 68 3d 3e 6f 73 3e 20 28 44 65 73 6b |<os.h=>os> (Desk| 000a8f20 74 6f 70 20 43 29 20 61 73 20 61 20 76 61 6c 75 |top C) as a valu| 000a8f30 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 |e representing t| 000a8f40 68 65 20 6c 6f 67 69 63 61 6c 20 73 74 61 74 65 |he logical state| 000a8f50 20 6f 66 20 54 72 75 65 2e 20 49 74 20 69 73 20 | of True. It is | 000a8f60 61 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 |actually defined| 000a8f70 20 61 73 20 31 2e 00 00 44 41 54 41 88 00 00 00 | as 1...DATA....| 000a8f80 74 78 74 0a 54 68 65 20 74 79 70 65 20 27 74 78 |txt.The type 'tx| 000a8f90 74 27 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |t' is defined in| 000a8fa0 20 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 20 | <txt.h=>txt_h> | 000a8fb0 61 73 20 61 6e 20 61 62 73 74 72 61 63 74 20 68 |as an abstract h| 000a8fc0 61 6e 64 6c 65 20 6f 6e 20 61 20 74 65 78 74 20 |andle on a text | 000a8fd0 6f 62 6a 65 63 74 2e 20 49 74 20 69 73 20 61 63 |object. It is ac| 000a8fe0 74 75 61 6c 6c 79 20 61 20 70 6f 69 6e 74 65 72 |tually a pointer| 000a8ff0 20 74 6f 20 61 20 73 74 72 75 63 74 75 72 65 2e | to a structure.| 000a9000 44 41 54 41 4a 03 00 00 74 78 74 65 64 69 74 2e |DATAJ...txtedit.| 000a9010 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 66 69 |h.This header fi| 000a9020 6c 65 20 69 73 20 61 20 70 61 72 74 6e 65 72 20 |le is a partner | 000a9030 66 6f 72 20 3c 74 78 74 2e 68 3d 3e 74 78 74 5f |for <txt.h=>txt_| 000a9040 68 3e 2c 20 70 72 6f 76 69 64 69 6e 67 20 74 65 |h>, providing te| 000a9050 78 74 20 65 64 69 74 69 6e 67 20 66 61 63 69 6c |xt editing facil| 000a9060 69 74 69 65 73 2e 20 49 74 20 70 72 6f 76 69 64 |ities. It provid| 000a9070 65 73 20 79 6f 75 20 77 69 74 68 20 6d 6f 73 74 |es you with most| 000a9080 20 6f 66 20 74 68 65 20 66 65 61 74 75 72 65 73 | of the features| 000a9090 20 6f 66 20 52 49 53 43 20 4f 53 20 32 20 21 45 | of RISC OS 2 !E| 000a90a0 64 69 74 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a |dit...Functions:| 000a90b0 0a 0a 23 69 6e 64 65 6e 74 20 32 0a 23 54 61 62 |..#indent 2.#Tab| 000a90c0 6c 65 20 39 20 32 30 0a 3c 74 78 74 65 64 69 74 |le 9 20.<txtedit| 000a90d0 5f 69 6e 69 74 3e 0a 3c 74 78 74 65 64 69 74 5f |_init>.<txtedit_| 000a90e0 69 6e 73 74 61 6c 6c 3e 0a 3c 74 78 74 65 64 69 |install>.<txtedi| 000a90f0 74 5f 6e 65 77 3e 0a 3c 74 78 74 65 64 69 74 5f |t_new>.<txtedit_| 000a9100 64 69 73 70 6f 73 65 3e 0a 3c 74 78 74 65 64 69 |dispose>.<txtedi| 000a9110 74 5f 6d 61 79 71 75 69 74 3e 0a 3c 74 78 74 65 |t_mayquit>.<txte| 000a9120 64 69 74 5f 70 72 65 71 75 69 74 3e 0a 3c 74 78 |dit_prequit>.<tx| 000a9130 74 65 64 69 74 5f 6d 65 6e 75 3e 0a 3c 74 78 74 |tedit_menu>.<txt| 000a9140 65 64 69 74 5f 6d 65 6e 75 65 76 65 6e 74 3e 0a |edit_menuevent>.| 000a9150 3c 74 78 74 65 64 69 74 5f 64 6f 69 6d 70 6f 72 |<txtedit_doimpor| 000a9160 74 3e 0a 3c 74 78 74 65 64 69 74 5f 64 6f 69 6e |t>.<txtedit_doin| 000a9170 73 65 72 74 66 69 6c 65 3e 0a 3c 74 78 74 65 64 |sertfile>.<txted| 000a9180 69 74 5f 72 65 67 69 73 74 65 72 5f 75 70 64 61 |it_register_upda| 000a9190 74 65 5f 68 61 6e 64 6c 65 72 3e 0a 3c 74 78 74 |te_handler>.<txt| 000a91a0 65 64 69 74 5f 72 65 67 69 73 74 65 72 5f 73 61 |edit_register_sa| 000a91b0 76 65 5f 68 61 6e 64 6c 65 72 3e 0a 3c 74 78 74 |ve_handler>.<txt| 000a91c0 65 64 69 74 5f 72 65 67 69 73 74 65 72 5f 63 6c |edit_register_cl| 000a91d0 6f 73 65 5f 68 61 6e 64 6c 65 72 3e 0a 3c 74 78 |ose_handler>.<tx| 000a91e0 74 65 64 69 74 5f 72 65 67 69 73 74 65 72 5f 73 |tedit_register_s| 000a91f0 68 75 74 64 6f 77 6e 5f 68 61 6e 64 6c 65 72 3e |hutdown_handler>| 000a9200 0a 3c 74 78 74 65 64 69 74 5f 72 65 67 69 73 74 |.<txtedit_regist| 000a9210 65 72 5f 75 6e 64 6f 66 61 69 6c 5f 68 61 6e 64 |er_undofail_hand| 000a9220 6c 65 72 3e 0a 3c 74 78 74 65 64 69 74 5f 72 65 |ler>.<txtedit_re| 000a9230 67 69 73 74 65 72 5f 6f 70 65 6e 5f 68 61 6e 64 |gister_open_hand| 000a9240 6c 65 72 3e 0a 3c 74 78 74 65 64 69 74 5f 67 65 |ler>.<txtedit_ge| 000a9250 74 73 74 61 74 65 73 3e 0a 23 45 6e 64 54 61 62 |tstates>.#EndTab| 000a9260 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 65 |le.#indent..Type| 000a9270 73 3a 0a 0a 23 69 6e 64 65 6e 74 20 34 0a 23 54 |s:..#indent 4.#T| 000a9280 61 62 6c 65 20 34 20 32 35 0a 3c 74 78 74 65 64 |able 4 25.<txted| 000a9290 69 74 5f 73 65 6c 74 79 70 65 3e 0a 3c 74 78 74 |it_seltype>.<txt| 000a92a0 65 64 69 74 5f 73 74 61 74 65 3e 0a 3c 74 78 74 |edit_state>.<txt| 000a92b0 65 64 69 74 5f 75 70 64 61 74 65 5f 68 61 6e 64 |edit_update_hand| 000a92c0 6c 65 72 3e 0a 3c 74 78 74 65 64 69 74 5f 63 6c |ler>.<txtedit_cl| 000a92d0 6f 73 65 5f 68 61 6e 64 6c 65 72 3e 0a 3c 74 78 |ose_handler>.<tx| 000a92e0 74 65 64 69 74 5f 73 61 76 65 5f 68 61 6e 64 6c |tedit_save_handl| 000a92f0 65 72 3e 0a 3c 74 78 74 65 64 69 74 5f 73 68 75 |er>.<txtedit_shu| 000a9300 74 64 6f 77 6e 5f 68 61 6e 64 6c 65 72 3e 0a 3c |tdown_handler>.<| 000a9310 74 78 74 65 64 69 74 5f 75 6e 64 6f 66 61 69 6c |txtedit_undofail| 000a9320 5f 68 61 6e 64 6c 65 72 3e 0a 3c 74 78 74 65 64 |_handler>.<txted| 000a9330 69 74 5f 6f 70 65 6e 5f 68 61 6e 64 6c 65 72 3e |it_open_handler>| 000a9340 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 49 52 24 |.#EndTable..DIR$| 000a9350 dc 03 00 00 dc 03 00 00 28 97 0a 00 46 ff ff ff |........(...F...| 000a9360 8e 88 e5 24 48 01 00 00 13 00 00 00 00 00 00 00 |...$H...........| 000a9370 63 6c 6f 73 65 5f 68 61 6e 64 6c 65 72 00 00 00 |close_handler...| 000a9380 70 98 0a 00 46 ff ff ff c8 c2 e4 24 b2 00 00 00 |p...F......$....| 000a9390 13 00 00 00 00 00 00 00 64 69 73 70 6f 73 65 00 |........dispose.| 000a93a0 24 99 0a 00 46 ff ff ff 4b f5 e4 24 1d 01 00 00 |$...F...K..$....| 000a93b0 13 00 00 00 00 00 00 00 64 6f 69 6d 70 6f 72 74 |........doimport| 000a93c0 00 00 00 00 44 9a 0a 00 46 ff ff ff e9 fd e4 24 |....D...F......$| 000a93d0 55 01 00 00 13 00 00 00 00 00 00 00 64 6f 69 6e |U...........doin| 000a93e0 73 65 72 74 66 69 6c 65 00 00 00 00 9c 9b 0a 00 |sertfile........| 000a93f0 46 ff ff ff c2 46 e5 24 21 01 00 00 13 00 00 00 |F....F.$!.......| 000a9400 00 00 00 00 67 65 74 73 74 61 74 65 73 00 00 00 |....getstates...| 000a9410 c0 9c 0a 00 46 ff ff ff c7 ac e4 24 b4 00 00 00 |....F......$....| 000a9420 13 00 00 00 00 00 00 00 69 6e 69 74 00 00 00 00 |........init....| 000a9430 74 9d 0a 00 46 ff ff ff 15 b4 e4 24 f4 00 00 00 |t...F......$....| 000a9440 13 00 00 00 00 00 00 00 69 6e 73 74 61 6c 6c 00 |........install.| 000a9450 68 9e 0a 00 46 ff ff ff 85 c7 e4 24 32 01 00 00 |h...F......$2...| 000a9460 13 00 00 00 00 00 00 00 6d 61 79 71 75 69 74 00 |........mayquit.| 000a9470 9c 9f 0a 00 46 ff ff ff 0a ea e4 24 fb 00 00 00 |....F......$....| 000a9480 13 00 00 00 00 00 00 00 6d 65 6e 75 00 00 00 00 |........menu....| 000a9490 98 a0 0a 00 46 ff ff ff 12 f0 e4 24 de 00 00 00 |....F......$....| 000a94a0 13 00 00 00 00 00 00 00 6d 65 6e 75 65 76 65 6e |........menueven| 000a94b0 74 00 00 00 78 a1 0a 00 46 ff ff ff c3 bb e4 24 |t...x...F......$| 000a94c0 b1 01 00 00 13 00 00 00 00 00 00 00 6e 65 77 00 |............new.| 000a94d0 2c a3 0a 00 46 ff ff ff 47 c6 e5 24 41 01 00 00 |,...F...G..$A...| 000a94e0 13 00 00 00 00 00 00 00 6f 70 65 6e 5f 68 61 6e |........open_han| 000a94f0 64 6c 65 72 00 00 00 00 70 a4 0a 00 46 ff ff ff |dler....p...F...| 000a9500 43 df e4 24 1a 01 00 00 13 00 00 00 00 00 00 00 |C..$............| 000a9510 70 72 65 71 75 69 74 00 8c a5 0a 00 46 ff ff ff |prequit.....F...| 000a9520 e3 22 e5 24 43 01 00 00 13 00 00 00 00 00 00 00 |.".$C...........| 000a9530 72 65 67 69 73 74 65 72 5f 63 6c 6f 73 65 5f 68 |register_close_h| 000a9540 61 6e 64 6c 65 72 00 00 d0 a6 0a 00 46 ff ff ff |andler......F...| 000a9550 f2 3e e5 24 46 01 00 00 13 00 00 00 00 00 00 00 |.>.$F...........| 000a9560 72 65 67 69 73 74 65 72 5f 6f 70 65 6e 5f 68 61 |register_open_ha| 000a9570 6e 64 6c 65 72 00 00 00 18 a8 0a 00 46 ff ff ff |ndler.......F...| 000a9580 1b 1b e5 24 48 01 00 00 13 00 00 00 00 00 00 00 |...$H...........| 000a9590 72 65 67 69 73 74 65 72 5f 73 61 76 65 5f 68 61 |register_save_ha| 000a95a0 6e 64 6c 65 72 00 00 00 60 a9 0a 00 46 ff ff ff |ndler...`...F...| 000a95b0 89 9a e5 24 8a 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000a95c0 73 61 76 65 5f 68 61 6e 64 6c 65 72 00 00 00 00 |save_handler....| 000a95d0 ec aa 0a 00 46 ff ff ff 46 4e e5 24 c9 00 00 00 |....F...FN.$....| 000a95e0 13 00 00 00 00 00 00 00 73 65 6c 74 79 70 65 00 |........seltype.| 000a95f0 b8 ab 0a 00 46 ff ff ff 10 ab e5 24 f3 00 00 00 |....F......$....| 000a9600 13 00 00 00 00 00 00 00 73 68 75 74 64 6f 77 6e |........shutdown| 000a9610 5f 68 61 6e 64 6c 65 72 00 00 00 00 ac ac 0a 00 |_handler........| 000a9620 46 ff ff ff ba 69 e5 24 f0 01 00 00 13 00 00 00 |F....i.$........| 000a9630 00 00 00 00 73 74 61 74 65 00 00 00 9c ae 0a 00 |....state.......| 000a9640 46 ff ff ff 9f b7 e5 24 45 01 00 00 13 00 00 00 |F......$E.......| 000a9650 00 00 00 00 75 6e 64 6f 66 61 69 6c 5f 68 61 6e |....undofail_han| 000a9660 64 6c 65 72 00 00 00 00 e4 af 0a 00 46 ff ff ff |dler........F...| 000a9670 b8 79 e5 24 8c 01 00 00 13 00 00 00 00 00 00 00 |.y.$............| 000a9680 75 70 64 61 74 65 5f 68 61 6e 64 6c 65 72 00 00 |update_handler..| 000a9690 70 b1 0a 00 46 ff ff ff 41 0f e5 24 66 01 00 00 |p...F...A..$f...| 000a96a0 13 00 00 00 00 00 00 00 72 65 67 69 73 74 65 72 |........register| 000a96b0 5f 75 70 64 61 74 65 5f 68 61 6e 64 6c 65 72 00 |_update_handler.| 000a96c0 d8 b2 0a 00 46 ff ff ff aa 2b e5 24 78 01 00 00 |....F....+.$x...| 000a96d0 13 00 00 00 00 00 00 00 72 65 67 69 73 74 65 72 |........register| 000a96e0 5f 73 68 75 74 64 6f 77 6e 5f 68 61 6e 64 6c 65 |_shutdown_handle| 000a96f0 72 00 00 00 50 b4 0a 00 46 ff ff ff d7 32 e5 24 |r...P...F....2.$| 000a9700 98 01 00 00 13 00 00 00 00 00 00 00 72 65 67 69 |............regi| 000a9710 73 74 65 72 5f 75 6e 64 6f 66 61 69 6c 5f 68 61 |ster_undofail_ha| 000a9720 6e 64 6c 65 72 00 00 00 44 41 54 41 48 01 00 00 |ndler...DATAH...| 000a9730 74 78 74 65 64 69 74 5f 63 6c 6f 73 65 5f 68 61 |txtedit_close_ha| 000a9740 6e 64 6c 65 72 0a 54 68 69 73 20 74 79 70 65 20 |ndler.This type | 000a9750 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 74 |is defined in <t| 000a9760 78 74 65 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 |xtedit.h=>txtedi| 000a9770 74 3e 2e 20 49 74 20 69 73 20 61 20 66 75 6e 63 |t>. It is a func| 000a9780 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 6f 72 6d |tion of the form| 000a9790 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |:..{fCode;align | 000a97a0 63 65 6e 74 72 65 7d 76 6f 69 64 20 6d 79 66 75 |centre}void myfu| 000a97b0 6e 63 20 28 63 68 61 72 20 2a 66 69 6c 65 6e 61 |nc (char *filena| 000a97c0 6d 65 2c 20 3c 74 78 74 65 64 69 74 5f 73 74 61 |me, <txtedit_sta| 000a97d0 74 65 3e 20 2a 73 2c 20 76 6f 69 64 20 2a 68 61 |te> *s, void *ha| 000a97e0 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a |ndle);{f;align}.| 000a97f0 0a 2f 68 61 6e 64 6c 65 2f 20 69 73 20 74 68 65 |./handle/ is the| 000a9800 20 76 61 6c 75 65 20 70 61 73 73 65 64 20 77 68 | value passed wh| 000a9810 65 6e 20 72 65 67 69 73 74 65 72 69 6e 67 20 74 |en registering t| 000a9820 68 65 20 66 75 6e 63 74 69 6f 6e 2e 20 2f 66 69 |he function. /fi| 000a9830 6c 65 6e 61 6d 65 2f 20 69 73 20 74 68 65 20 77 |lename/ is the w| 000a9840 69 6e 64 6f 77 20 74 69 74 6c 65 20 66 69 6c 65 |indow title file| 000a9850 6e 61 6d 65 2c 20 61 6e 64 20 2f 73 2f 20 69 73 |name, and /s/ is| 000a9860 20 74 68 65 20 74 65 78 74 20 73 74 61 74 65 2e | the text state.| 000a9870 44 41 54 41 b2 00 00 00 74 78 74 65 64 69 74 5f |DATA....txtedit_| 000a9880 64 69 73 70 6f 73 65 0a 53 79 6e 74 61 78 3a 09 |dispose.Syntax:.| 000a9890 76 6f 69 64 20 74 78 74 65 64 69 74 5f 64 69 73 |void txtedit_dis| 000a98a0 70 6f 73 65 20 28 3c 74 78 74 65 64 69 74 5f 73 |pose (<txtedit_s| 000a98b0 74 61 74 65 3e 20 2a 73 29 3b 0a 48 65 61 64 65 |tate> *s);.Heade| 000a98c0 72 3a 09 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 |r:.<txtedit.h=>t| 000a98d0 78 74 65 64 69 74 3e 0a 0a 54 68 69 73 20 66 75 |xtedit>..This fu| 000a98e0 6e 63 74 69 6f 6e 20 64 65 73 74 72 6f 79 73 20 |nction destroys | 000a98f0 74 68 65 20 74 65 78 74 20 77 68 6f 73 65 20 73 |the text whose s| 000a9900 74 61 74 65 20 69 73 20 67 69 76 65 6e 2c 20 6e |tate is given, n| 000a9910 6f 20 71 75 65 73 74 69 6f 6e 73 20 61 73 6b 65 |o questions aske| 000a9920 64 2e 00 00 44 41 54 41 1d 01 00 00 74 78 74 65 |d...DATA....txte| 000a9930 64 69 74 5f 64 6f 69 6d 70 6f 72 74 0a 53 79 6e |dit_doimport.Syn| 000a9940 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 74 78 74 65 |tax:.<BOOL> txte| 000a9950 64 69 74 5f 64 6f 69 6d 70 6f 72 74 20 28 3c 74 |dit_doimport (<t| 000a9960 78 74 65 64 69 74 5f 73 74 61 74 65 3e 20 2a 73 |xtedit_state> *s| 000a9970 2c 20 69 6e 74 20 66 69 6c 65 74 79 70 65 2c 20 |, int filetype, | 000a9980 69 6e 74 20 65 73 74 73 69 7a 65 29 3b 0a 48 65 |int estsize);.He| 000a9990 61 64 65 72 3a 09 3c 74 78 74 65 64 69 74 2e 68 |ader:.<txtedit.h| 000a99a0 3d 3e 74 78 74 65 64 69 74 3e 0a 0a 52 65 74 75 |=>txtedit>..Retu| 000a99b0 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 73 |rns:.<TRUE> if s| 000a99c0 75 63 63 65 73 73 66 75 6c 2e 0a 0a 54 68 69 73 |uccessful...This| 000a99d0 20 66 75 6e 63 74 69 6f 6e 20 69 6d 70 6f 72 74 | function import| 000a99e0 73 20 64 61 74 61 20 69 6e 74 6f 20 74 68 65 20 |s data into the | 000a99f0 73 70 65 63 69 66 69 65 64 20 74 78 74 65 64 69 |specified txtedi| 000a9a00 74 20 6f 62 6a 65 63 74 2c 20 66 72 6f 6d 20 61 |t object, from a| 000a9a10 20 66 69 6c 65 20 77 68 6f 73 65 20 74 79 70 65 | file whose type| 000a9a20 20 61 6e 64 20 65 73 74 69 6d 61 74 65 64 20 73 | and estimated s| 000a9a30 69 7a 65 20 61 72 65 20 61 73 20 67 69 76 65 6e |ize are as given| 000a9a40 2e 00 00 00 44 41 54 41 55 01 00 00 74 78 74 65 |....DATAU...txte| 000a9a50 64 69 74 5f 64 6f 69 6e 73 65 72 74 66 69 6c 65 |dit_doinsertfile| 000a9a60 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 |.Syntax:.void tx| 000a9a70 74 65 64 69 74 5f 64 6f 69 6e 73 65 72 74 66 69 |tedit_doinsertfi| 000a9a80 6c 65 20 28 3c 74 78 74 65 64 69 74 5f 73 74 61 |le (<txtedit_sta| 000a9a90 74 65 3e 20 2a 73 2c 20 63 68 61 72 20 2a 66 69 |te> *s, char *fi| 000a9aa0 6c 65 6e 61 6d 65 2c 20 3c 42 4f 4f 4c 3e 20 6e |lename, <BOOL> n| 000a9ab0 65 77 74 69 74 6c 65 29 3b 0a 48 65 61 64 65 72 |ewtitle);.Header| 000a9ac0 3a 09 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 78 |:.<txtedit.h=>tx| 000a9ad0 74 65 64 69 74 3e 0a 0a 54 68 69 73 20 66 75 6e |tedit>..This fun| 000a9ae0 63 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 74 68 |ction inserts th| 000a9af0 65 20 6e 61 6d 65 64 20 66 69 6c 65 20 69 6e 74 |e named file int| 000a9b00 6f 20 74 68 65 20 74 65 78 74 20 6f 62 6a 65 63 |o the text objec| 000a9b10 74 20 77 68 6f 73 65 20 73 74 61 74 65 20 69 73 |t whose state is| 000a9b20 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f | pointed to by /| 000a9b30 73 2f 2e 20 49 66 20 2f 6e 65 77 74 69 74 6c 65 |s/. If /newtitle| 000a9b40 2f 20 69 73 20 3c 54 52 55 45 3e 20 74 68 65 6e |/ is <TRUE> then| 000a9b50 20 74 68 65 20 74 65 78 74 20 6f 62 6a 65 63 74 | the text object| 000a9b60 20 77 69 6c 6c 20 6e 6f 77 20 62 65 20 6b 6e 6f | will now be kno| 000a9b70 77 6e 20 62 79 20 74 68 65 20 66 69 6c 65 20 6e |wn by the file n| 000a9b80 61 6d 65 20 6f 66 20 74 68 65 20 69 6e 73 65 72 |ame of the inser| 000a9b90 74 65 64 20 66 69 6c 65 2e 00 00 00 44 41 54 41 |ted file....DATA| 000a9ba0 21 01 00 00 74 78 74 65 64 69 74 5f 67 65 74 73 |!...txtedit_gets| 000a9bb0 74 61 74 65 73 0a 53 79 6e 74 61 78 3a 09 3c 74 |tates.Syntax:.<t| 000a9bc0 78 74 65 64 69 74 5f 73 74 61 74 65 3e 20 2a 74 |xtedit_state> *t| 000a9bd0 78 74 65 64 69 74 5f 67 65 74 73 74 61 74 65 73 |xtedit_getstates| 000a9be0 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000a9bf0 09 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 78 74 |.<txtedit.h=>txt| 000a9c00 65 64 69 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |edit>..Returns:.| 000a9c10 50 6f 69 6e 74 65 72 20 74 6f 20 73 74 61 72 74 |Pointer to start| 000a9c20 20 6f 66 20 6c 69 73 74 2e 0a 0a 54 68 69 73 20 | of list...This | 000a9c30 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 61 20 |function gets a | 000a9c40 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 73 |pointer to the s| 000a9c50 74 61 72 74 20 6f 66 20 74 68 65 20 6c 69 73 74 |tart of the list| 000a9c60 20 6f 66 20 65 64 69 74 61 62 6c 65 20 74 65 78 | of editable tex| 000a9c70 74 73 2e 20 45 61 63 68 20 65 6e 74 72 79 20 63 |ts. Each entry c| 000a9c80 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 73 20 7b |an be found as {| 000a9c90 2f 7d 73 2d 3e 6e 65 78 74 7b 2f 7d 20 77 68 65 |/}s->next{/} whe| 000a9ca0 72 65 20 2f 73 2f 20 69 73 20 74 68 65 20 70 72 |re /s/ is the pr| 000a9cb0 65 76 69 6f 75 73 0a 65 6e 74 72 79 2e 00 00 00 |evious.entry....| 000a9cc0 44 41 54 41 b4 00 00 00 74 78 74 65 64 69 74 5f |DATA....txtedit_| 000a9cd0 69 6e 69 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |init.Syntax:.voi| 000a9ce0 64 20 74 78 74 65 64 69 74 5f 69 6e 69 74 20 28 |d txtedit_init (| 000a9cf0 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |void);.Header:.<| 000a9d00 74 78 74 65 64 69 74 2e 68 3d 3e 74 78 74 65 64 |txtedit.h=>txted| 000a9d10 69 74 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |it>..This functi| 000a9d20 6f 6e 20 69 6e 69 74 69 61 6c 69 73 65 73 20 74 |on initialises t| 000a9d30 68 65 20 74 78 74 65 64 69 74 20 6d 6f 64 75 6c |he txtedit modul| 000a9d40 65 2e 20 49 74 20 6d 75 73 74 20 62 65 20 63 61 |e. It must be ca| 000a9d50 6c 6c 65 64 20 62 65 66 6f 72 65 20 6f 74 68 65 |lled before othe| 000a9d60 72 20 74 78 74 65 64 69 74 20 66 75 6e 63 74 69 |r txtedit functi| 000a9d70 6f 6e 73 2e 44 41 54 41 f4 00 00 00 74 78 74 65 |ons.DATA....txte| 000a9d80 64 69 74 5f 69 6e 73 74 61 6c 6c 0a 53 79 6e 74 |dit_install.Synt| 000a9d90 61 78 3a 09 3c 74 78 74 65 64 69 74 5f 73 74 61 |ax:.<txtedit_sta| 000a9da0 74 65 3e 20 2a 74 78 74 65 64 69 74 5f 69 6e 73 |te> *txtedit_ins| 000a9db0 74 61 6c 6c 20 28 3c 74 78 74 3e 20 74 29 3b 0a |tall (<txt> t);.| 000a9dc0 48 65 61 64 65 72 3a 09 3c 74 78 74 65 64 69 74 |Header:.<txtedit| 000a9dd0 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a 0a 52 65 |.h=>txtedit>..Re| 000a9de0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000a9df0 6f 20 74 68 65 20 73 74 61 74 65 2e 0a 0a 54 68 |o the state...Th| 000a9e00 69 73 20 69 6e 73 74 61 6c 6c 73 20 61 6e 20 65 |is installs an e| 000a9e10 76 65 6e 74 20 68 61 6e 64 6c 65 72 20 66 6f 72 |vent handler for| 000a9e20 20 2f 74 78 74 20 74 2f 2c 20 6d 61 6b 69 6e 67 | /txt t/, making| 000a9e30 20 69 74 20 65 64 69 74 61 62 6c 65 2e 20 2f 74 | it editable. /t| 000a9e40 2f 20 6d 75 73 74 20 68 61 76 65 20 62 65 65 6e |/ must have been| 000a9e50 20 63 72 65 61 74 65 64 20 77 69 74 68 20 3c 74 | created with <t| 000a9e60 78 74 5f 6e 65 77 3e 2e 44 41 54 41 32 01 00 00 |xt_new>.DATA2...| 000a9e70 74 78 74 65 64 69 74 5f 6d 61 79 71 75 69 74 0a |txtedit_mayquit.| 000a9e80 53 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 74 |Syntax:.<BOOL> t| 000a9e90 78 74 65 64 69 74 5f 6d 61 79 71 75 69 74 20 28 |xtedit_mayquit (| 000a9ea0 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |void);.Header:.<| 000a9eb0 74 78 74 65 64 69 74 2e 68 3d 3e 74 78 74 65 64 |txtedit.h=>txted| 000a9ec0 69 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 |it>..Returns:.<T| 000a9ed0 52 55 45 3e 20 69 66 20 77 65 20 6d 61 79 20 73 |RUE> if we may s| 000a9ee0 61 66 65 6c 79 20 71 75 69 74 2e 0a 0a 0a 54 68 |afely quit....Th| 000a9ef0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 |is function chec| 000a9f00 6b 73 20 74 6f 20 73 65 65 20 69 66 20 77 65 20 |ks to see if we | 000a9f10 63 61 6e 20 73 61 66 65 6c 79 20 71 75 69 74 20 |can safely quit | 000a9f20 65 64 69 74 69 6e 67 2e 20 49 66 20 61 20 74 65 |editing. If a te| 000a9f30 78 74 20 69 73 20 62 65 69 6e 67 20 65 64 69 74 |xt is being edit| 000a9f40 65 64 2c 20 61 20 64 69 61 6c 6f 67 75 65 20 62 |ed, a dialogue b| 000a9f50 6f 78 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 |ox is displayed | 000a9f60 75 73 69 6e 67 20 3c 64 62 6f 78 71 75 65 72 79 |using <dboxquery| 000a9f70 3e 2c 20 73 6f 20 74 68 65 20 74 65 6d 70 6c 61 |>, so the templa| 000a9f80 74 65 20 22 71 75 65 72 79 22 20 6d 75 73 74 20 |te "query" must | 000a9f90 62 65 20 6c 6f 61 64 65 64 2e 00 00 44 41 54 41 |be loaded...DATA| 000a9fa0 fb 00 00 00 74 78 74 65 64 69 74 5f 6d 65 6e 75 |....txtedit_menu| 000a9fb0 0a 53 79 6e 74 61 78 3a 09 3c 6d 65 6e 75 3e 20 |.Syntax:.<menu> | 000a9fc0 74 78 74 65 64 69 74 5f 6d 65 6e 75 20 28 3c 74 |txtedit_menu (<t| 000a9fd0 78 74 65 64 69 74 5f 73 74 61 74 65 3e 20 2a 73 |xtedit_state> *s| 000a9fe0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 65 |);.Header:.<txte| 000a9ff0 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a |dit.h=>txtedit>.| 000aa000 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000aa010 72 20 74 6f 20 6d 65 6e 75 20 73 74 72 75 63 74 |r to menu struct| 000aa020 75 72 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ure...This funct| 000aa030 69 6f 6e 20 63 72 65 61 74 65 73 20 61 20 6d 65 |ion creates a me| 000aa040 6e 75 20 66 6f 72 20 74 68 65 20 74 65 78 74 20 |nu for the text | 000aa050 77 68 6f 73 65 20 73 74 61 74 65 20 69 73 20 67 |whose state is g| 000aa060 69 76 65 6e 2e 20 54 68 65 20 6d 65 6e 75 20 69 |iven. The menu i| 000aa070 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 |s the same as th| 000aa080 61 74 20 66 6f 72 20 52 49 53 43 20 4f 53 20 32 |at for RISC OS 2| 000aa090 20 21 45 64 69 74 2e 00 44 41 54 41 de 00 00 00 | !Edit..DATA....| 000aa0a0 74 78 74 65 64 69 74 5f 6d 65 6e 75 65 76 65 6e |txtedit_menueven| 000aa0b0 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 |t.Syntax:.void t| 000aa0c0 78 74 65 64 69 74 5f 6d 65 6e 75 65 76 65 6e 74 |xtedit_menuevent| 000aa0d0 20 28 3c 74 78 74 65 64 69 74 5f 73 74 61 74 65 | (<txtedit_state| 000aa0e0 3e 20 2a 73 2c 20 63 68 61 72 20 2a 68 69 74 29 |> *s, char *hit)| 000aa0f0 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 65 64 |;.Header:.<txted| 000aa100 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a 0a |it.h=>txtedit>..| 000aa110 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 72 |This function pr| 000aa120 6f 63 65 73 73 65 73 20 61 20 6d 65 6e 75 20 68 |ocesses a menu h| 000aa130 69 74 20 66 6f 72 20 61 20 67 69 76 65 6e 20 74 |it for a given t| 000aa140 65 78 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 |ext. It should b| 000aa150 65 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 79 6f |e called from yo| 000aa160 75 72 20 6d 65 6e 75 20 65 76 65 6e 74 20 68 61 |ur menu event ha| 000aa170 6e 64 6c 65 72 2e 00 00 44 41 54 41 b1 01 00 00 |ndler...DATA....| 000aa180 74 78 74 65 64 69 74 5f 6e 65 77 0a 53 79 6e 74 |txtedit_new.Synt| 000aa190 61 78 3a 09 3c 74 78 74 65 64 69 74 5f 73 74 61 |ax:.<txtedit_sta| 000aa1a0 74 65 3e 20 2a 74 78 74 65 64 69 74 5f 6e 65 77 |te> *txtedit_new| 000aa1b0 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 | (char *name);.H| 000aa1c0 65 61 64 65 72 3a 09 3c 74 78 74 65 64 69 74 2e |eader:.<txtedit.| 000aa1d0 68 3d 3e 74 78 74 65 64 69 74 3e 0a 0a 52 65 74 |h=>txtedit>..Ret| 000aa1e0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000aa1f0 20 74 68 65 20 73 74 61 74 65 2e 0a 0a 54 68 69 | the state...Thi| 000aa200 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 |s function creat| 000aa210 65 73 20 61 20 6e 65 77 20 74 65 78 74 20 6f 62 |es a new text ob| 000aa220 6a 65 63 74 2c 20 6c 6f 61 64 73 20 74 68 65 20 |ject, loads the | 000aa230 66 69 6c 65 20 77 68 6f 73 65 20 6e 61 6d 65 20 |file whose name | 000aa240 69 73 20 67 69 76 65 6e 20 69 6e 74 6f 20 69 74 |is given into it| 000aa250 2c 20 61 6e 64 20 6d 61 6b 65 73 20 69 74 20 65 |, and makes it e| 000aa260 64 69 74 61 62 6c 65 2e 20 49 66 20 74 68 65 20 |ditable. If the | 000aa270 66 69 6c 65 20 63 61 6e 6e 6f 74 20 62 65 20 6c |file cannot be l| 000aa280 6f 61 64 65 64 2c 20 69 74 20 72 65 74 75 72 6e |oaded, it return| 000aa290 20 30 20 61 6e 64 20 6e 6f 20 74 65 78 74 20 69 | 0 and no text i| 000aa2a0 73 20 63 72 65 61 74 65 64 2e 20 49 66 20 2f 6e |s created. If /n| 000aa2b0 61 6d 65 2f 20 69 73 20 61 20 6e 75 6c 6c 20 70 |ame/ is a null p| 000aa2c0 6f 69 6e 74 65 72 20 74 68 65 6e 20 61 20 65 6d |ointer then a em| 000aa2d0 70 74 79 20 74 65 78 74 20 69 73 20 63 72 65 61 |pty text is crea| 000aa2e0 74 65 64 2e 20 49 66 20 74 68 65 20 66 69 6c 65 |ted. If the file| 000aa2f0 20 69 73 20 61 6c 72 65 61 64 79 20 62 65 69 6e | is already bein| 000aa300 67 20 65 64 69 74 65 64 2c 20 74 68 65 20 65 78 |g edited, the ex| 000aa310 69 73 74 69 6e 67 20 73 74 61 74 65 20 69 73 20 |isting state is | 000aa320 72 65 74 75 72 6e 65 64 2e 00 00 00 44 41 54 41 |returned....DATA| 000aa330 41 01 00 00 74 78 74 65 64 69 74 5f 6f 70 65 6e |A...txtedit_open| 000aa340 5f 68 61 6e 64 6c 65 72 0a 54 68 69 73 20 74 79 |_handler.This ty| 000aa350 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000aa360 20 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 78 74 | <txtedit.h=>txt| 000aa370 65 64 69 74 3e 2e 20 49 74 20 69 73 20 61 20 66 |edit>. It is a f| 000aa380 75 6e 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 |unction of the f| 000aa390 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 |orm:..{fCode;ali| 000aa3a0 67 6e 20 63 65 6e 74 72 65 7d 76 6f 69 64 20 6d |gn centre}void m| 000aa3b0 79 66 75 6e 63 20 28 63 68 61 72 20 2a 66 69 6c |yfunc (char *fil| 000aa3c0 65 6e 61 6d 65 2c 20 3c 74 78 74 65 64 69 74 5f |ename, <txtedit_| 000aa3d0 73 74 61 74 65 3e 20 2a 73 2c 20 76 6f 69 64 20 |state> *s, void | 000aa3e0 2a 68 61 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 |*handle);{f;alig| 000aa3f0 6e 7d 0a 0a 2f 68 61 6e 64 6c 65 2f 20 69 73 20 |n}../handle/ is | 000aa400 74 68 65 20 76 61 6c 75 65 20 70 61 73 73 65 64 |the value passed| 000aa410 20 77 68 65 6e 20 72 65 67 69 73 74 65 72 69 6e | when registerin| 000aa420 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 20 |g the function. | 000aa430 2f 66 69 6c 65 6e 61 6d 65 2f 20 69 73 20 74 68 |/filename/ is th| 000aa440 65 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 74 68 |e filename of th| 000aa450 65 20 74 65 78 74 2c 20 61 6e 64 20 2f 73 2f 20 |e text, and /s/ | 000aa460 69 73 20 69 74 73 20 73 74 61 74 65 2e 00 00 00 |is its state....| 000aa470 44 41 54 41 1a 01 00 00 74 78 74 65 64 69 74 5f |DATA....txtedit_| 000aa480 70 72 65 71 75 69 74 0a 53 79 6e 74 61 78 3a 09 |prequit.Syntax:.| 000aa490 76 6f 69 64 20 74 78 74 65 64 69 74 5f 70 72 65 |void txtedit_pre| 000aa4a0 71 75 69 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 |quit (void);.Hea| 000aa4b0 64 65 72 3a 09 3c 74 78 74 65 64 69 74 2e 68 3d |der:.<txtedit.h=| 000aa4c0 3e 74 78 74 65 64 69 74 3e 0a 0a 54 68 69 73 20 |>txtedit>..This | 000aa4d0 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 |function is inte| 000aa4e0 6e 64 65 64 20 74 6f 20 64 65 61 6c 20 77 69 74 |nded to deal wit| 000aa4f0 68 20 61 20 3c 4d 65 73 73 61 67 65 5f 50 72 65 |h a <Message_Pre| 000aa500 51 75 69 74 3d 3e 53 57 49 3a 57 69 6d 70 5f 75 |Quit=>SWI:Wimp_u| 000aa510 6d 38 3e 2e 20 49 74 20 63 61 6c 6c 73 20 3c 74 |m8>. It calls <t| 000aa520 78 74 65 64 69 74 5f 6d 61 79 71 75 69 74 3e 2c |xtedit_mayquit>,| 000aa530 20 61 6e 64 20 69 66 20 77 65 20 6d 61 79 20 74 | and if we may t| 000aa540 68 65 6e 20 69 74 20 64 69 73 70 6f 73 65 73 20 |hen it disposes | 000aa550 6f 66 20 61 6c 6c 20 74 65 78 74 73 20 61 6e 64 |of all texts and| 000aa560 20 74 65 6c 6c 73 20 74 68 65 20 54 61 73 6b 20 | tells the Task | 000aa570 4d 61 6e 61 67 65 72 20 77 65 27 72 65 20 63 6c |Manager we're cl| 000aa580 65 61 72 20 74 6f 20 67 6f 2e 00 00 44 41 54 41 |ear to go...DATA| 000aa590 43 01 00 00 74 78 74 65 64 69 74 5f 72 65 67 69 |C...txtedit_regi| 000aa5a0 73 74 65 72 5f 63 6c 6f 73 65 5f 68 61 6e 64 6c |ster_close_handl| 000aa5b0 65 72 0a 53 79 6e 74 61 78 3a 09 3c 74 78 74 65 |er.Syntax:.<txte| 000aa5c0 64 69 74 5f 63 6c 6f 73 65 5f 68 61 6e 64 6c 65 |dit_close_handle| 000aa5d0 72 3e 20 74 78 74 65 64 69 74 5f 72 65 67 69 73 |r> txtedit_regis| 000aa5e0 74 65 72 5f 63 6c 6f 73 65 5f 68 61 6e 64 6c 65 |ter_close_handle| 000aa5f0 72 20 28 74 78 74 65 64 69 74 5f 63 6c 6f 73 65 |r (txtedit_close| 000aa600 5f 68 61 6e 64 6c 65 72 20 68 2c 20 76 6f 69 64 |_handler h, void| 000aa610 20 2a 68 61 6e 64 6c 65 29 3b 0a 48 65 61 64 65 | *handle);.Heade| 000aa620 72 3a 09 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 |r:.<txtedit.h=>t| 000aa630 78 74 65 64 69 74 3e 0a 0a 52 65 74 75 72 6e 73 |xtedit>..Returns| 000aa640 3a 09 54 68 65 20 6f 6c 64 20 68 61 6e 64 6c 65 |:.The old handle| 000aa650 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 000aa660 6e 20 72 65 67 69 73 74 65 72 73 20 61 20 68 61 |n registers a ha| 000aa670 6e 64 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c |ndler to be call| 000aa680 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 74 65 |ed whenever a te| 000aa690 78 74 20 77 69 6e 64 6f 77 20 69 73 20 63 6c 6f |xt window is clo| 000aa6a0 73 65 64 2e 20 49 66 20 7b 2f 7d 68 3d 3d 30 7b |sed. If {/}h==0{| 000aa6b0 2f 7d 20 74 68 65 6e 20 74 68 65 20 68 61 6e 64 |/} then the hand| 000aa6c0 6c 65 72 20 69 73 20 72 65 6d 6f 76 65 64 2e 00 |ler is removed..| 000aa6d0 44 41 54 41 46 01 00 00 74 78 74 65 64 69 74 5f |DATAF...txtedit_| 000aa6e0 72 65 67 69 73 74 65 72 5f 6f 70 65 6e 5f 68 61 |register_open_ha| 000aa6f0 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 3c 74 |ndler.Syntax:.<t| 000aa700 78 74 65 64 69 74 5f 6f 70 65 6e 5f 68 61 6e 64 |xtedit_open_hand| 000aa710 6c 65 72 3e 20 74 78 74 65 64 69 74 5f 72 65 67 |ler> txtedit_reg| 000aa720 69 73 74 65 72 5f 6f 70 65 6e 5f 68 61 6e 64 6c |ister_open_handl| 000aa730 65 72 20 28 74 78 74 65 64 69 74 5f 6f 70 65 6e |er (txtedit_open| 000aa740 5f 68 61 6e 64 6c 65 72 20 68 2c 20 76 6f 69 64 |_handler h, void| 000aa750 20 2a 68 61 6e 64 6c 65 29 3b 0a 48 65 61 64 65 | *handle);.Heade| 000aa760 72 3a 09 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 |r:.<txtedit.h=>t| 000aa770 78 74 65 64 69 74 3e 0a 0a 52 65 74 75 72 6e 73 |xtedit>..Returns| 000aa780 3a 09 54 68 65 20 6f 6c 64 20 68 61 6e 64 6c 65 |:.The old handle| 000aa790 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 000aa7a0 6e 20 72 65 67 69 73 74 65 72 73 20 61 20 68 61 |n registers a ha| 000aa7b0 6e 64 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c |ndler to be call| 000aa7c0 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 6e 65 |ed whenever a ne| 000aa7d0 77 20 65 64 69 74 61 62 6c 65 20 74 65 78 74 20 |w editable text | 000aa7e0 69 73 20 63 72 65 61 74 65 64 2e 20 49 66 20 7b |is created. If {| 000aa7f0 2f 7d 68 3d 3d 30 7b 2f 7d 20 74 68 65 6e 20 74 |/}h==0{/} then t| 000aa800 68 65 20 68 61 6e 64 6c 65 72 20 69 73 20 72 65 |he handler is re| 000aa810 6d 6f 76 65 64 2e 00 00 44 41 54 41 48 01 00 00 |moved...DATAH...| 000aa820 74 78 74 65 64 69 74 5f 72 65 67 69 73 74 65 72 |txtedit_register| 000aa830 5f 73 61 76 65 5f 68 61 6e 64 6c 65 72 0a 53 79 |_save_handler.Sy| 000aa840 6e 74 61 78 3a 09 3c 74 78 74 65 64 69 74 5f 73 |ntax:.<txtedit_s| 000aa850 61 76 65 5f 68 61 6e 64 6c 65 72 3e 20 74 78 74 |ave_handler> txt| 000aa860 65 64 69 74 5f 72 65 67 69 73 74 65 72 5f 73 61 |edit_register_sa| 000aa870 76 65 5f 68 61 6e 64 6c 65 72 20 28 74 78 74 65 |ve_handler (txte| 000aa880 64 69 74 5f 73 61 76 65 5f 68 61 6e 64 6c 65 72 |dit_save_handler| 000aa890 20 68 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 | h, void *handle| 000aa8a0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 65 |);.Header:.<txte| 000aa8b0 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a |dit.h=>txtedit>.| 000aa8c0 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 6f 6c |.Returns:.The ol| 000aa8d0 64 20 68 61 6e 64 6c 65 72 2e 0a 0a 54 68 69 73 |d handler...This| 000aa8e0 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 | function regist| 000aa8f0 65 72 73 20 61 20 68 61 6e 64 6c 65 72 20 74 6f |ers a handler to| 000aa900 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 65 | be called whene| 000aa910 76 65 72 20 61 20 74 65 78 74 20 77 69 6e 64 6f |ver a text windo| 000aa920 77 20 69 73 20 73 61 76 65 64 20 74 6f 20 61 20 |w is saved to a | 000aa930 66 69 6c 65 2e 20 49 66 20 7b 2f 7d 68 3d 3d 30 |file. If {/}h==0| 000aa940 7b 2f 7d 20 74 68 65 6e 20 74 68 65 20 68 61 6e |{/} then the han| 000aa950 64 6c 65 72 20 69 73 20 72 65 6d 6f 76 65 64 2e |dler is removed.| 000aa960 44 41 54 41 8a 01 00 00 74 78 74 65 64 69 74 5f |DATA....txtedit_| 000aa970 73 61 76 65 5f 68 61 6e 64 6c 65 72 0a 54 68 69 |save_handler.Thi| 000aa980 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000aa990 64 20 69 6e 20 3c 74 78 74 65 64 69 74 2e 68 3d |d in <txtedit.h=| 000aa9a0 3e 74 78 74 65 64 69 74 3e 2e 20 49 74 20 69 73 |>txtedit>. It is| 000aa9b0 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 74 | a function of t| 000aa9c0 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 |he form:..{fCode| 000aa9d0 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c 42 |;align centre}<B| 000aa9e0 4f 4f 4c 3e 20 6d 79 66 75 6e 63 20 28 63 68 61 |OOL> myfunc (cha| 000aa9f0 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 3c 74 78 |r *filename, <tx| 000aaa00 74 65 64 69 74 5f 73 74 61 74 65 3e 20 2a 73 2c |tedit_state> *s,| 000aaa10 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b 7b | void *handle);{| 000aaa20 66 3b 61 6c 69 67 6e 7d 0a 0a 2f 68 61 6e 64 6c |f;align}../handl| 000aaa30 65 2f 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 |e/ is the value | 000aaa40 70 61 73 73 65 64 20 77 68 65 6e 20 72 65 67 69 |passed when regi| 000aaa50 73 74 65 72 69 6e 67 20 74 68 65 20 66 75 6e 63 |stering the func| 000aaa60 74 69 6f 6e 2e 20 2f 66 69 6c 65 6e 61 6d 65 2f |tion. /filename/| 000aaa70 20 69 73 20 74 68 65 20 77 69 6e 64 6f 77 20 74 | is the window t| 000aaa80 69 74 6c 65 20 66 69 6c 65 6e 61 6d 65 2c 20 61 |itle filename, a| 000aaa90 6e 64 20 2f 73 2f 20 69 73 20 74 68 65 20 74 65 |nd /s/ is the te| 000aaaa0 78 74 20 73 74 61 74 65 2e 20 54 68 69 73 20 66 |xt state. This f| 000aaab0 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 72 |unction should r| 000aaac0 65 74 75 72 6e 20 3c 46 41 4c 53 45 3e 20 74 6f |eturn <FALSE> to| 000aaad0 20 61 62 6f 72 74 20 74 68 65 20 73 61 76 65 20 | abort the save | 000aaae0 6f 70 65 72 61 74 69 6f 6e 2e 00 00 44 41 54 41 |operation...DATA| 000aaaf0 c9 00 00 00 74 78 74 65 64 69 74 5f 73 65 6c 74 |....txtedit_selt| 000aab00 79 70 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ype.This type is| 000aab10 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 74 78 74 | defined in <txt| 000aab20 65 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e |edit.h=>txtedit>| 000aab30 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 000aab40 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |as the following| 000aab50 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 | enumerated type| 000aab60 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 74 78 74 65 |:.. \{. txte| 000aab70 64 69 74 5f 43 48 41 52 53 45 4c 09 3d 20 31 2c |dit_CHARSEL.= 1,| 000aab80 0a 20 20 20 20 74 78 74 65 64 69 74 5f 57 4f 52 |. txtedit_WOR| 000aab90 44 53 45 4c 09 3d 20 32 2c 0a 20 20 20 20 74 78 |DSEL.= 2,. tx| 000aaba0 74 65 64 69 74 5f 4c 49 4e 45 53 45 4c 09 3d 20 |tedit_LINESEL.= | 000aabb0 34 0a 20 20 7d 00 00 00 44 41 54 41 f3 00 00 00 |4. }...DATA....| 000aabc0 74 78 74 65 64 69 74 5f 73 68 75 74 64 6f 77 6e |txtedit_shutdown| 000aabd0 5f 68 61 6e 64 6c 65 72 0a 54 68 69 73 20 74 79 |_handler.This ty| 000aabe0 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000aabf0 20 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 78 74 | <txtedit.h=>txt| 000aac00 65 64 69 74 3e 2e 20 49 74 20 69 73 20 61 20 66 |edit>. It is a f| 000aac10 75 6e 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 |unction of the f| 000aac20 6f 72 6d 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a |orm:.{wrap off}.| 000aac30 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 000aac40 74 72 65 7d 76 6f 69 64 20 6d 79 66 75 6e 63 20 |tre}void myfunc | 000aac50 28 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b 7b |(void *handle);{| 000aac60 66 3b 61 6c 69 67 6e 7d 0a 7b 77 72 61 70 7d 0a |f;align}.{wrap}.| 000aac70 2f 68 61 6e 64 6c 65 2f 20 69 73 20 74 68 65 20 |/handle/ is the | 000aac80 76 61 6c 75 65 20 70 61 73 73 65 64 20 77 68 65 |value passed whe| 000aac90 6e 20 72 65 67 69 73 74 65 72 69 6e 67 20 74 68 |n registering th| 000aaca0 65 20 66 75 6e 63 74 69 6f 6e 2e 00 44 41 54 41 |e function..DATA| 000aacb0 f0 01 00 00 74 78 74 65 64 69 74 5f 73 74 61 74 |....txtedit_stat| 000aacc0 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |e.This type is d| 000aacd0 65 66 69 6e 65 64 20 69 6e 20 3c 74 78 74 65 64 |efined in <txted| 000aace0 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 20 61 |it.h=>txtedit> a| 000aacf0 73 20 61 20 74 79 70 65 20 68 6f 6c 64 69 6e 67 |s a type holding| 000aad00 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f | information abo| 000aad10 75 74 20 61 6e 20 65 64 69 74 61 62 6c 65 20 74 |ut an editable t| 000aad20 65 78 74 2e 20 49 74 20 69 73 20 64 65 66 69 6e |ext. It is defin| 000aad30 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 |ed as the follow| 000aad40 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a |ing structure:..| 000aad50 20 20 5c 7b 0a 20 20 20 20 3c 74 78 74 3e 09 09 | \{. <txt>..| 000aad60 74 3b 0a 20 20 20 20 3c 74 78 74 5f 6d 61 72 6b |t;. <txt_mark| 000aad70 65 72 3e 09 73 65 6c 70 69 76 6f 74 3b 0a 20 20 |er>.selpivot;. | 000aad80 20 20 3c 74 78 74 65 64 69 74 5f 73 65 6c 74 79 | <txtedit_selty| 000aad90 70 65 3e 09 73 65 6c 74 79 70 65 3b 0a 20 20 20 |pe>.seltype;. | 000aada0 20 69 6e 74 09 09 09 73 65 6c 65 63 74 72 65 63 | int...selectrec| 000aadb0 65 6e 74 3b 0a 20 20 20 20 69 6e 74 09 09 09 73 |ent;. int...s| 000aadc0 65 6c 65 63 74 63 74 6c 3b 0a 20 20 20 20 63 68 |electctl;. ch| 000aadd0 61 72 09 09 66 69 6c 65 6e 61 6d 65 5b 32 35 36 |ar..filename[256| 000aade0 5d 3b 0a 20 20 20 20 3c 74 79 70 64 61 74 3e 09 |];. <typdat>.| 000aadf0 09 74 79 3b 0a 20 20 20 20 69 6e 74 09 09 09 64 |.ty;. int...d| 000aae00 65 6c 65 74 65 70 65 6e 64 69 6e 67 3b 0a 20 20 |eletepending;. | 000aae10 20 20 3c 74 78 74 65 64 69 74 5f 73 74 61 74 65 | <txtedit_state| 000aae20 3e 09 2a 6e 65 78 74 3b 0a 20 20 20 20 3c 42 4f |>.*next;. <BO| 000aae30 4f 4c 3e 09 09 6f 76 65 72 77 72 69 74 65 3b 0a |OL>..overwrite;.| 000aae40 20 20 20 20 42 4f 4f 4c 09 09 77 6f 72 64 74 61 | BOOL..wordta| 000aae50 62 3b 0a 20 20 20 20 42 4f 4f 4c 09 09 77 6f 72 |b;. BOOL..wor| 000aae60 64 77 72 61 70 3b 0a 20 20 7d 0a 0a 54 68 65 20 |dwrap;. }..The | 000aae70 66 69 65 6c 64 73 20 61 72 65 20 70 72 65 74 74 |fields are prett| 000aae80 79 20 73 65 6c 66 2d 65 78 70 6c 61 6e 61 74 6f |y self-explanato| 000aae90 72 79 2c 20 49 20 74 68 69 6e 6b 2e 44 41 54 41 |ry, I think.DATA| 000aaea0 45 01 00 00 74 78 74 65 64 69 74 5f 75 6e 64 6f |E...txtedit_undo| 000aaeb0 66 61 69 6c 5f 68 61 6e 64 6c 65 72 0a 54 68 69 |fail_handler.Thi| 000aaec0 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000aaed0 64 20 69 6e 20 3c 74 78 74 65 64 69 74 2e 68 3d |d in <txtedit.h=| 000aaee0 3e 74 78 74 65 64 69 74 3e 2e 20 49 74 20 69 73 |>txtedit>. It is| 000aaef0 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 74 | a function of t| 000aaf00 68 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 |he form:..{fCode| 000aaf10 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 76 6f |;align centre}vo| 000aaf20 69 64 20 6d 79 66 75 6e 63 20 28 63 68 61 72 20 |id myfunc (char | 000aaf30 2a 66 69 6c 65 6e 61 6d 65 2c 20 3c 74 78 74 65 |*filename, <txte| 000aaf40 64 69 74 5f 73 74 61 74 65 3e 20 2a 73 2c 20 76 |dit_state> *s, v| 000aaf50 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b 7b 66 3b |oid *handle);{f;| 000aaf60 61 6c 69 67 6e 7d 0a 0a 2f 68 61 6e 64 6c 65 2f |align}../handle/| 000aaf70 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 70 61 | is the value pa| 000aaf80 73 73 65 64 20 77 68 65 6e 20 72 65 67 69 73 74 |ssed when regist| 000aaf90 65 72 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 |ering the functi| 000aafa0 6f 6e 2e 20 2f 66 69 6c 65 6e 61 6d 65 2f 20 69 |on. /filename/ i| 000aafb0 73 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 6f |s the filename o| 000aafc0 66 20 74 68 65 20 74 65 78 74 2c 20 61 6e 64 20 |f the text, and | 000aafd0 2f 73 2f 20 69 73 20 69 74 73 20 73 74 61 74 65 |/s/ is its state| 000aafe0 2e 00 00 00 44 41 54 41 8c 01 00 00 74 78 74 65 |....DATA....txte| 000aaff0 64 69 74 5f 75 70 64 61 74 65 5f 68 61 6e 64 6c |dit_update_handl| 000ab000 65 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |er.This type is | 000ab010 64 65 66 69 6e 65 64 20 69 6e 20 3c 74 78 74 65 |defined in <txte| 000ab020 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 2e |dit.h=>txtedit>.| 000ab030 20 49 74 20 69 73 20 61 20 66 75 6e 63 74 69 6f | It is a functio| 000ab040 6e 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 0a |n of the form:..| 000ab050 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e |{fCode;align cen| 000ab060 74 72 65 7d 3c 42 4f 4f 4c 3e 20 6d 79 66 75 6e |tre}<BOOL> myfun| 000ab070 63 20 28 63 68 61 72 20 2a 66 69 6c 65 6e 61 6d |c (char *filenam| 000ab080 65 2c 20 3c 74 78 74 65 64 69 74 5f 73 74 61 74 |e, <txtedit_stat| 000ab090 65 3e 20 2a 73 2c 76 6f 69 64 20 2a 68 61 6e 64 |e> *s,void *hand| 000ab0a0 6c 65 29 3b 7b 66 3b 61 6c 69 67 6e 7d 0a 0a 2f |le);{f;align}../| 000ab0b0 68 61 6e 64 6c 65 2f 20 69 73 20 74 68 65 20 76 |handle/ is the v| 000ab0c0 61 6c 75 65 20 70 61 73 73 65 64 20 77 68 65 6e |alue passed when| 000ab0d0 20 72 65 67 69 73 74 65 72 69 6e 67 20 74 68 65 | registering the| 000ab0e0 20 66 75 6e 63 74 69 6f 6e 2e 20 2f 66 69 6c 65 | function. /file| 000ab0f0 6e 61 6d 65 2f 20 69 73 20 74 68 65 20 77 69 6e |name/ is the win| 000ab100 64 6f 77 20 74 69 74 6c 65 20 66 69 6c 65 6e 61 |dow title filena| 000ab110 6d 65 2c 20 61 6e 64 20 2f 73 2f 20 69 73 20 74 |me, and /s/ is t| 000ab120 68 65 20 74 65 78 74 20 73 74 61 74 65 2e 20 54 |he text state. T| 000ab130 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 |he function shou| 000ab140 6c 64 20 72 65 74 75 72 6e 20 3c 46 41 4c 53 45 |ld return <FALSE| 000ab150 3e 20 74 6f 20 75 6e 64 6f 20 74 68 65 20 6c 61 |> to undo the la| 000ab160 73 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2e |st modification.| 000ab170 44 41 54 41 66 01 00 00 74 78 74 65 64 69 74 5f |DATAf...txtedit_| 000ab180 72 65 67 69 73 74 65 72 5f 75 70 64 61 74 65 5f |register_update_| 000ab190 68 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 |handler.Syntax:.| 000ab1a0 3c 74 78 74 65 64 69 74 5f 75 70 64 61 74 65 5f |<txtedit_update_| 000ab1b0 68 61 6e 64 6c 65 72 3e 20 74 78 74 65 64 69 74 |handler> txtedit| 000ab1c0 5f 72 65 67 69 73 74 65 72 5f 75 70 64 61 74 65 |_register_update| 000ab1d0 5f 68 61 6e 64 6c 65 72 20 28 74 78 74 65 64 69 |_handler (txtedi| 000ab1e0 74 5f 75 70 64 61 74 65 5f 68 61 6e 64 6c 65 72 |t_update_handler| 000ab1f0 20 68 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 | h, void *handle| 000ab200 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 65 |);.Header:.<txte| 000ab210 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a |dit.h=>txtedit>.| 000ab220 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 6f 6c |.Returns:.The ol| 000ab230 64 20 68 61 6e 64 6c 65 72 2e 0a 0a 54 68 69 73 |d handler...This| 000ab240 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 | function regist| 000ab250 65 72 73 20 61 20 68 61 6e 64 6c 65 72 20 74 6f |ers a handler to| 000ab260 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 65 | be called whene| 000ab270 76 65 72 20 61 20 74 65 78 74 20 77 69 6e 64 6f |ver a text windo| 000ab280 77 20 69 73 20 6d 6f 64 69 66 69 65 64 20 69 65 |w is modified ie| 000ab290 20 77 68 65 6e 65 76 65 72 20 74 68 65 20 74 69 | whenever the ti| 000ab2a0 74 6c 65 20 63 68 61 6e 67 65 73 2e 20 49 66 20 |tle changes. If | 000ab2b0 7b 2f 7d 68 3d 30 7b 2f 7d 20 74 68 65 6e 20 74 |{/}h=0{/} then t| 000ab2c0 68 65 20 68 61 6e 64 6c 65 72 20 69 73 20 72 65 |he handler is re| 000ab2d0 6d 6f 76 65 64 2e 00 00 44 41 54 41 78 01 00 00 |moved...DATAx...| 000ab2e0 74 78 74 65 64 69 74 5f 72 65 67 69 73 74 65 72 |txtedit_register| 000ab2f0 5f 73 68 75 74 64 6f 77 6e 5f 68 61 6e 64 6c 65 |_shutdown_handle| 000ab300 72 0a 53 79 6e 74 61 78 3a 09 3c 74 78 74 65 64 |r.Syntax:.<txted| 000ab310 69 74 5f 73 68 75 74 64 6f 77 6e 5f 68 61 6e 64 |it_shutdown_hand| 000ab320 6c 65 72 3e 20 74 78 74 65 64 69 74 5f 72 65 67 |ler> txtedit_reg| 000ab330 69 73 74 65 72 5f 73 68 75 74 64 6f 77 6e 5f 68 |ister_shutdown_h| 000ab340 61 6e 64 6c 65 72 20 28 74 78 74 65 64 69 74 5f |andler (txtedit_| 000ab350 73 68 75 74 64 6f 77 6e 5f 68 61 6e 64 6c 65 72 |shutdown_handler| 000ab360 20 68 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 | h, void *handle| 000ab370 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 65 |);.Header:.<txte| 000ab380 64 69 74 2e 68 3d 3e 74 78 74 65 64 69 74 3e 0a |dit.h=>txtedit>.| 000ab390 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 6f 6c |.Returns:.The ol| 000ab3a0 64 20 68 61 6e 64 6c 65 72 2e 0a 0a 54 68 69 73 |d handler...This| 000ab3b0 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 | function regist| 000ab3c0 65 72 73 20 61 20 68 61 6e 64 6c 65 72 20 74 6f |ers a handler to| 000ab3d0 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 65 | be called whene| 000ab3e0 76 65 72 20 3c 74 78 74 65 64 69 74 5f 70 72 65 |ver <txtedit_pre| 000ab3f0 71 75 69 74 3e 20 69 73 20 63 61 6c 6c 65 64 20 |quit> is called | 000ab400 61 6e 64 20 61 20 73 68 75 74 64 6f 77 6e 20 69 |and a shutdown i| 000ab410 73 20 61 6c 6c 6f 77 65 64 20 74 6f 20 70 72 6f |s allowed to pro| 000ab420 63 65 65 64 2e 20 49 66 20 7b 2f 7d 68 3d 3d 30 |ceed. If {/}h==0| 000ab430 7b 2f 7d 20 74 68 65 6e 20 74 68 65 20 68 61 6e |{/} then the han| 000ab440 64 6c 65 72 20 69 73 20 72 65 6d 6f 76 65 64 2e |dler is removed.| 000ab450 44 41 54 41 98 01 00 00 74 78 74 65 64 69 74 5f |DATA....txtedit_| 000ab460 72 65 67 69 73 74 65 72 5f 75 6e 64 6f 66 61 69 |register_undofai| 000ab470 6c 5f 68 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 |l_handler.Syntax| 000ab480 3a 09 3c 74 78 74 65 64 69 74 5f 75 6e 64 6f 66 |:.<txtedit_undof| 000ab490 61 69 6c 5f 68 61 6e 64 6c 65 72 3e 20 74 78 74 |ail_handler> txt| 000ab4a0 65 64 69 74 5f 72 65 67 69 73 74 65 72 5f 75 6e |edit_register_un| 000ab4b0 64 6f 66 61 69 6c 5f 68 61 6e 64 6c 65 72 20 28 |dofail_handler (| 000ab4c0 74 78 74 65 64 69 74 5f 75 6e 64 6f 66 61 69 6c |txtedit_undofail| 000ab4d0 5f 68 61 6e 64 6c 65 72 20 68 2c 20 76 6f 69 64 |_handler h, void| 000ab4e0 20 2a 68 61 6e 64 6c 65 29 3b 0a 48 65 61 64 65 | *handle);.Heade| 000ab4f0 72 3a 09 3c 74 78 74 65 64 69 74 2e 68 3d 3e 74 |r:.<txtedit.h=>t| 000ab500 78 74 65 64 69 74 3e 0a 0a 52 65 74 75 72 6e 73 |xtedit>..Returns| 000ab510 3a 09 54 68 65 20 6f 6c 64 20 68 61 6e 64 6c 65 |:.The old handle| 000ab520 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 000ab530 6e 20 72 65 67 69 73 74 65 72 73 20 61 20 68 61 |n registers a ha| 000ab540 6e 64 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c |ndler to be call| 000ab550 65 64 20 77 68 65 6e 65 76 65 72 20 74 68 65 20 |ed whenever the | 000ab560 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6d 61 64 |modification mad| 000ab570 65 20 74 6f 20 61 6e 20 65 64 69 74 65 64 20 66 |e to an edited f| 000ab580 69 6c 65 20 63 61 6e 6e 6f 74 20 62 65 20 75 6e |ile cannot be un| 000ab590 64 6f 6e 65 20 28 69 6e 20 63 6f 6e 6a 75 6e 63 |done (in conjunc| 000ab5a0 74 69 6f 6e 20 77 69 74 68 20 61 6e 20 75 70 64 |tion with an upd| 000ab5b0 61 74 65 20 68 61 6e 64 6c 65 72 29 2e 20 49 66 |ate handler). If| 000ab5c0 20 7b 2f 7d 68 3d 3d 30 7b 2f 7d 20 74 68 65 6e | {/}h==0{/} then| 000ab5d0 20 74 68 65 20 68 61 6e 64 6c 65 72 20 69 73 20 | the handler is | 000ab5e0 72 65 6d 6f 76 65 64 2e 44 41 54 41 95 00 00 00 |removed.DATA....| 000ab5f0 74 78 74 6f 70 74 2e 68 0a 54 68 69 73 20 68 65 |txtopt.h.This he| 000ab600 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 74 77 |ader declares tw| 000ab610 6f 20 66 75 6e 63 74 69 6f 6e 73 20 64 65 61 6c |o functions deal| 000ab620 69 6e 67 20 77 69 74 68 20 74 65 78 74 20 65 64 |ing with text ed| 000ab630 69 74 69 6e 67 20 6f 70 74 69 6f 6e 73 2e 0a 0a |iting options...| 000ab640 46 75 6e 63 74 69 6f 6e 73 3a 0a 7b 61 6c 69 67 |Functions:.{alig| 000ab650 6e 20 63 65 6e 74 72 65 7d 0a 3c 74 78 74 6f 70 |n centre}.<txtop| 000ab660 74 5f 73 65 74 5f 6e 61 6d 65 3e 0a 3c 74 78 74 |t_set_name>.<txt| 000ab670 6f 70 74 5f 67 65 74 5f 6e 61 6d 65 3e 00 00 00 |opt_get_name>...| 000ab680 44 49 52 24 54 00 00 00 54 00 00 00 d4 b6 0a 00 |DIR$T...T.......| 000ab690 46 ff ff ff 91 da e5 24 3c 01 00 00 13 00 00 00 |F......$<.......| 000ab6a0 00 00 00 00 67 65 74 5f 6e 61 6d 65 00 00 00 00 |....get_name....| 000ab6b0 10 b8 0a 00 46 ff ff ff 4f d5 e5 24 08 01 00 00 |....F...O..$....| 000ab6c0 13 00 00 00 00 00 00 00 73 65 74 5f 6e 61 6d 65 |........set_name| 000ab6d0 00 00 00 00 44 41 54 41 3c 01 00 00 74 78 74 6f |....DATA<...txto| 000ab6e0 70 74 5f 67 65 74 5f 6e 61 6d 65 0a 53 79 6e 74 |pt_get_name.Synt| 000ab6f0 61 78 3a 09 63 68 61 72 20 2a 74 78 74 6f 70 74 |ax:.char *txtopt| 000ab700 5f 67 65 74 5f 6e 61 6d 65 20 28 76 6f 69 64 29 |_get_name (void)| 000ab710 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 6f 70 |;.Header:.<txtop| 000ab720 74 2e 68 3d 3e 74 78 74 6f 70 74 3e 0a 0a 52 65 |t.h=>txtopt>..Re| 000ab730 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000ab740 6f 20 74 68 65 20 6e 61 6d 65 2e 0a 0a 54 68 69 |o the name...Thi| 000ab750 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 |s function gets | 000ab760 74 68 65 20 66 69 72 73 74 20 70 61 72 74 20 6f |the first part o| 000ab770 66 20 74 68 65 20 6e 61 6d 65 20 75 73 65 64 20 |f the name used | 000ab780 61 73 20 61 20 73 79 73 74 65 6d 20 76 61 72 69 |as a system vari| 000ab790 61 62 6c 65 20 66 6f 72 20 73 65 74 74 69 6e 67 |able for setting| 000ab7a0 20 74 65 78 74 20 65 64 69 74 69 6e 67 20 6f 70 | text editing op| 000ab7b0 74 69 6f 6e 73 20 28 74 68 65 20 6c 61 73 74 20 |tions (the last | 000ab7c0 70 61 72 74 20 62 65 69 6e 67 20 22 24 4f 70 74 |part being "$Opt| 000ab7d0 69 6f 6e 73 22 29 2e 20 49 74 20 64 65 66 61 75 |ions"). It defau| 000ab7e0 6c 74 73 20 74 6f 20 22 45 64 69 74 22 20 69 65 |lts to "Edit" ie| 000ab7f0 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 | the variable is| 000ab800 20 22 45 64 69 74 24 4f 70 74 69 6f 6e 73 22 2e | "Edit$Options".| 000ab810 44 41 54 41 08 01 00 00 74 78 74 6f 70 74 5f 73 |DATA....txtopt_s| 000ab820 65 74 5f 6e 61 6d 65 0a 53 79 6e 74 61 78 3a 09 |et_name.Syntax:.| 000ab830 76 6f 69 64 20 74 78 74 6f 70 74 5f 73 65 74 5f |void txtopt_set_| 000ab840 6e 61 6d 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 |name (char *name| 000ab850 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 6f |);.Header:.<txto| 000ab860 70 74 2e 68 3d 3e 74 78 74 6f 70 74 3e 0a 0a 54 |pt.h=>txtopt>..T| 000ab870 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 000ab880 73 20 74 68 65 20 66 69 72 73 74 20 70 61 72 74 |s the first part| 000ab890 20 6f 66 20 74 68 65 20 6e 61 6d 65 20 75 73 65 | of the name use| 000ab8a0 64 20 61 73 20 61 20 73 79 73 74 65 6d 20 76 61 |d as a system va| 000ab8b0 72 69 61 62 6c 65 20 66 6f 72 20 73 65 74 74 69 |riable for setti| 000ab8c0 6e 67 20 74 65 78 74 20 65 64 69 74 69 6e 67 20 |ng text editing | 000ab8d0 6f 70 74 69 6f 6e 73 20 28 74 68 65 20 6c 61 73 |options (the las| 000ab8e0 74 20 70 61 72 74 20 62 65 69 6e 67 20 22 24 4f |t part being "$O| 000ab8f0 70 74 69 6f 6e 73 22 29 2e 20 49 74 20 64 65 66 |ptions"). It def| 000ab900 61 75 6c 74 73 20 74 6f 20 22 45 64 69 74 24 4f |aults to "Edit$O| 000ab910 70 74 69 6f 6e 73 22 2e 44 41 54 41 b5 00 00 00 |ptions".DATA....| 000ab920 74 78 74 73 63 72 61 70 2e 68 0a 54 68 69 73 20 |txtscrap.h.This | 000ab930 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 |header declares | 000ab940 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 6f 6f |functions to coo| 000ab950 72 64 69 6e 61 74 65 20 61 20 75 6e 69 71 75 65 |rdinate a unique| 000ab960 20 74 78 74 20 73 65 6c 65 63 74 69 6f 6e 20 61 | txt selection a| 000ab970 6d 6f 6e 67 20 6d 61 6e 74 20 74 78 74 20 6f 62 |mong mant txt ob| 000ab980 6a 65 63 74 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e |jects...Function| 000ab990 73 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |s:.{align centre| 000ab9a0 7d 0a 3c 74 78 74 73 63 72 61 70 5f 73 65 74 73 |}.<txtscrap_sets| 000ab9b0 65 6c 65 63 74 3e 0a 3c 74 78 74 73 63 72 61 70 |elect>.<txtscrap| 000ab9c0 5f 73 65 6c 65 63 74 6f 77 6e 65 72 3e 00 00 00 |_selectowner>...| 000ab9d0 44 49 52 24 54 00 00 00 54 00 00 00 24 ba 0a 00 |DIR$T...T...$...| 000ab9e0 46 ff ff ff 93 07 e6 24 df 00 00 00 13 00 00 00 |F......$........| 000ab9f0 00 00 00 00 73 65 6c 65 63 74 6f 77 6e 65 72 00 |....selectowner.| 000aba00 04 bb 0a 00 46 ff ff ff 12 f9 e5 24 b3 01 00 00 |....F......$....| 000aba10 13 00 00 00 00 00 00 00 73 65 74 73 65 6c 65 63 |........setselec| 000aba20 74 00 00 00 44 41 54 41 df 00 00 00 74 78 74 73 |t...DATA....txts| 000aba30 63 72 61 70 5f 73 65 6c 65 63 74 6f 77 6e 65 72 |crap_selectowner| 000aba40 0a 53 79 6e 74 61 78 3a 09 3c 74 78 74 3e 20 74 |.Syntax:.<txt> t| 000aba50 78 74 73 63 72 61 70 5f 73 65 6c 65 63 74 6f 77 |xtscrap_selectow| 000aba60 6e 65 72 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 |ner (void);.Head| 000aba70 65 72 3a 09 3c 74 78 74 73 63 72 61 70 2e 68 3d |er:.<txtscrap.h=| 000aba80 3e 74 78 74 73 63 72 61 70 3e 0a 0a 52 65 74 75 |>txtscrap>..Retu| 000aba90 72 6e 73 3a 09 48 61 6e 64 6c 65 20 6f 66 20 74 |rns:.Handle of t| 000abaa0 68 65 20 74 78 74 20 68 6f 6c 64 69 6e 67 20 73 |he txt holding s| 000abab0 65 6c 65 63 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 |election...This | 000abac0 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 000abad0 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 6f 6c | the current hol| 000abae0 64 65 72 20 6f 66 20 74 68 65 20 73 65 6c 65 63 |der of the selec| 000abaf0 74 69 6f 6e 2c 20 6f 72 20 30 20 69 66 20 6e 6f |tion, or 0 if no| 000abb00 6e 65 2e 00 44 41 54 41 b3 01 00 00 74 78 74 73 |ne..DATA....txts| 000abb10 63 72 61 70 5f 73 65 74 73 65 6c 65 63 74 0a 53 |crap_setselect.S| 000abb20 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 74 73 |yntax:.void txts| 000abb30 63 72 61 70 5f 73 65 74 73 65 6c 65 63 74 20 28 |crap_setselect (| 000abb40 3c 74 78 74 3e 20 74 2c 20 3c 74 78 74 5f 69 6e |<txt> t, <txt_in| 000abb50 64 65 78 3e 20 66 72 6f 6d 2c 20 74 78 74 5f 69 |dex> from, txt_i| 000abb60 6e 64 65 78 20 74 6f 29 3b 0a 48 65 61 64 65 72 |ndex to);.Header| 000abb70 3a 09 3c 74 78 74 73 63 72 61 70 2e 68 3d 3e 74 |:.<txtscrap.h=>t| 000abb80 78 74 73 63 72 61 70 3e 0a 0a 54 68 69 73 20 66 |xtscrap>..This f| 000abb90 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 7b 66 |unction calls {f| 000abba0 43 6f 64 65 7d 3c 74 78 74 5f 73 65 74 73 65 6c |Code}<txt_setsel| 000abbb0 65 63 74 3e 28 74 2c 66 72 6f 6d 2c 74 6f 29 7b |ect>(t,from,to){| 000abbc0 66 7d 20 61 6e 64 20 72 65 6d 65 6d 62 65 72 73 |f} and remembers| 000abbd0 20 2f 74 2f 2e 20 49 66 20 61 6e 6f 74 68 65 72 | /t/. If another| 000abbe0 20 74 78 74 20 6f 62 6a 65 63 74 20 63 75 72 72 | txt object curr| 000abbf0 65 6e 74 6c 79 20 68 6f 6c 64 73 20 74 68 65 20 |ently holds the | 000abc00 73 65 6c 65 63 74 69 6f 6e 20 74 68 65 6e 20 74 |selection then t| 000abc10 68 69 73 20 69 73 20 66 69 72 73 74 20 63 6c 65 |his is first cle| 000abc20 61 72 65 64 2e 20 49 66 20 2f 66 72 6f 6d 2f 20 |ared. If /from/ | 000abc30 3e 3d 20 2f 74 6f 2f 20 74 68 65 6e 20 74 68 65 |>= /to/ then the| 000abc40 20 73 65 6c 65 63 74 69 6f 6e 20 77 69 6c 6c 20 | selection will | 000abc50 62 65 20 75 6e 73 65 74 20 61 6e 64 20 2f 74 2f |be unset and /t/| 000abc60 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 72 65 6d | will not be rem| 000abc70 65 6d 62 65 72 65 64 2e 20 41 20 74 78 74 20 6d |embered. A txt m| 000abc80 75 73 74 20 62 65 20 6e 6f 74 20 64 65 73 74 72 |ust be not destr| 000abc90 6f 79 65 64 20 77 68 69 6c 65 20 73 74 69 6c 6c |oyed while still| 000abca0 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 73 65 6c | holding the sel| 000abcb0 65 63 74 69 6f 6e 2e 00 44 41 54 41 d5 00 00 00 |ection..DATA....| 000abcc0 74 78 74 77 69 6e 2e 68 0a 54 68 69 73 20 68 65 |txtwin.h.This he| 000abcd0 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 75 |ader declares fu| 000abce0 6e 63 74 69 6f 6e 73 20 66 6f 72 20 6d 75 6c 74 |nctions for mult| 000abcf0 69 70 6c 65 20 77 69 6e 64 6f 77 73 20 63 6f 6e |iple windows con| 000abd00 74 61 69 6e 69 6e 67 20 74 68 65 20 73 61 6d 65 |taining the same| 000abd10 20 74 65 78 74 20 6f 62 6a 65 63 74 2e 0a 0a 46 | text object...F| 000abd20 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 74 61 62 6c |unctions:..#tabl| 000abd30 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 74 78 74 |e columns 2.<txt| 000abd40 77 69 6e 5f 6e 65 77 3e 0a 3c 74 78 74 77 69 6e |win_new>.<txtwin| 000abd50 5f 6e 75 6d 62 65 72 3e 0a 3c 74 78 74 77 69 6e |_number>.<txtwin| 000abd60 5f 64 69 73 70 6f 73 65 3e 0a 3c 74 78 74 77 69 |_dispose>.<txtwi| 000abd70 6e 5f 73 65 74 63 75 72 72 65 6e 74 77 69 6e 64 |n_setcurrentwind| 000abd80 6f 77 3e 0a 23 65 6e 64 74 61 62 6c 65 00 00 00 |ow>.#endtable...| 000abd90 44 49 52 24 94 00 00 00 94 00 00 00 24 be 0a 00 |DIR$........$...| 000abda0 46 ff ff ff 7e 2a e6 24 bd 00 00 00 13 00 00 00 |F...~*.$........| 000abdb0 00 00 00 00 64 69 73 70 6f 73 65 00 e4 be 0a 00 |....dispose.....| 000abdc0 46 ff ff ff 78 1f e6 24 10 01 00 00 13 00 00 00 |F...x..$........| 000abdd0 00 00 00 00 6e 65 77 00 f4 bf 0a 00 46 ff ff ff |....new.....F...| 000abde0 c2 24 e6 24 c4 00 00 00 13 00 00 00 00 00 00 00 |.$.$............| 000abdf0 6e 75 6d 62 65 72 00 00 b8 c0 0a 00 46 ff ff ff |number......F...| 000abe00 95 2f e6 24 59 01 00 00 13 00 00 00 00 00 00 00 |./.$Y...........| 000abe10 73 65 74 63 75 72 72 65 6e 74 77 69 6e 64 6f 77 |setcurrentwindow| 000abe20 00 00 00 00 44 41 54 41 bd 00 00 00 74 78 74 77 |....DATA....txtw| 000abe30 69 6e 5f 64 69 73 70 6f 73 65 0a 53 79 6e 74 61 |in_dispose.Synta| 000abe40 78 3a 09 76 6f 69 64 20 74 78 74 77 69 6e 5f 64 |x:.void txtwin_d| 000abe50 69 73 70 6f 73 65 20 28 3c 74 78 74 3e 20 74 29 |ispose (<txt> t)| 000abe60 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 77 69 |;.Header:.<txtwi| 000abe70 6e 2e 68 3d 3e 74 78 74 77 69 6e 3e 0a 0a 54 68 |n.h=>txtwin>..Th| 000abe80 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f |is function remo| 000abe90 76 65 73 20 61 20 77 69 6e 64 6f 77 20 6f 6e 20 |ves a window on | 000abea0 74 68 65 20 74 65 78 74 20 2f 74 2f 2e 20 49 74 |the text /t/. It| 000abeb0 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 69 | has no effect i| 000abec0 66 20 6f 6e 6c 79 20 6f 6e 65 20 77 69 6e 64 6f |f only one windo| 000abed0 77 20 69 73 20 6c 65 66 74 20 6f 6e 20 2f 74 2f |w is left on /t/| 000abee0 2e 00 00 00 44 41 54 41 10 01 00 00 74 78 74 77 |....DATA....txtw| 000abef0 69 6e 5f 6e 65 77 0a 53 79 6e 74 61 78 3a 09 76 |in_new.Syntax:.v| 000abf00 6f 69 64 20 74 78 74 77 69 6e 5f 6e 65 77 20 28 |oid txtwin_new (| 000abf10 3c 74 78 74 3e 20 74 29 3b 0a 48 65 61 64 65 72 |<txt> t);.Header| 000abf20 3a 09 3c 74 78 74 77 69 6e 2e 68 3d 3e 74 78 74 |:.<txtwin.h=>txt| 000abf30 77 69 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |win>..This funct| 000abf40 69 6f 6e 20 63 72 65 61 74 65 73 20 61 6e 20 65 |ion creates an e| 000abf50 78 74 72 61 20 77 69 6e 64 6f 77 20 6f 6e 20 61 |xtra window on a| 000abf60 20 67 69 76 65 6e 20 74 65 78 74 20 6f 62 6a 65 | given text obje| 000abf70 63 74 2e 20 54 68 65 20 63 72 65 61 74 65 64 20 |ct. The created | 000abf80 77 69 6e 64 6f 77 20 77 69 6c 6c 20 62 65 20 69 |window will be i| 000abf90 6e 20 74 68 65 20 73 61 6d 65 20 73 74 79 6c 65 |n the same style| 000abfa0 20 61 73 20 66 6f 72 20 3c 74 78 74 5f 6e 65 77 | as for <txt_new| 000abfb0 3e 2c 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 |>, with the same| 000abfc0 20 74 69 74 6c 65 20 69 6e 66 6f 72 6d 61 74 69 | title informati| 000abfd0 6f 6e 2e 20 54 68 65 20 77 69 6e 64 6f 77 20 77 |on. The window w| 000abfe0 69 6c 6c 20 62 65 20 6d 61 64 65 20 76 69 73 69 |ill be made visi| 000abff0 62 6c 65 2e 44 41 54 41 c4 00 00 00 74 78 74 77 |ble.DATA....txtw| 000ac000 69 6e 5f 6e 75 6d 62 65 72 0a 53 79 6e 74 61 78 |in_number.Syntax| 000ac010 3a 09 69 6e 74 20 74 78 74 77 69 6e 5f 6e 75 6d |:.int txtwin_num| 000ac020 62 65 72 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 |ber (<txt> t);.H| 000ac030 65 61 64 65 72 3a 09 3c 74 78 74 77 69 6e 2e 68 |eader:.<txtwin.h| 000ac040 3d 3e 74 78 74 77 69 6e 3e 0a 0a 52 65 74 75 72 |=>txtwin>..Retur| 000ac050 6e 73 3a 09 4e 75 6d 62 65 72 20 6f 66 20 77 69 |ns:.Number of wi| 000ac060 6e 64 6f 77 73 2e 0a 0a 54 68 69 73 20 66 75 6e |ndows...This fun| 000ac070 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 73 20 79 6f |ction informs yo| 000ac080 75 20 6f 66 20 74 68 65 20 6e 75 6d 62 65 72 20 |u of the number | 000ac090 6f 66 20 77 69 6e 64 6f 77 20 63 75 72 72 65 6e |of window curren| 000ac0a0 74 6c 79 20 6f 6e 20 61 20 67 69 76 65 6e 20 74 |tly on a given t| 000ac0b0 65 78 74 20 2f 74 2f 2e 44 41 54 41 59 01 00 00 |ext /t/.DATAY...| 000ac0c0 74 78 74 77 69 6e 5f 73 65 74 63 75 72 72 65 6e |txtwin_setcurren| 000ac0d0 74 77 69 6e 64 6f 77 0a 53 79 6e 74 61 78 3a 09 |twindow.Syntax:.| 000ac0e0 76 6f 69 64 20 74 78 74 77 69 6e 5f 73 65 74 63 |void txtwin_setc| 000ac0f0 75 72 72 65 6e 74 77 69 6e 64 6f 77 20 28 3c 74 |urrentwindow (<t| 000ac100 78 74 3e 20 74 29 3b 0a 48 65 61 64 65 72 3a 09 |xt> t);.Header:.| 000ac110 3c 74 78 74 77 69 6e 2e 68 3d 3e 74 78 74 77 69 |<txtwin.h=>txtwi| 000ac120 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |n>..This functio| 000ac130 6e 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 74 |n ensures that t| 000ac140 68 65 20 6c 61 73 74 20 77 69 6e 64 6f 77 20 74 |he last window t| 000ac150 6f 20 77 68 69 63 68 20 74 68 65 20 6c 61 73 74 |o which the last| 000ac160 20 65 76 65 6e 74 20 77 61 73 20 64 65 6c 69 76 | event was deliv| 000ac170 65 72 65 64 20 69 73 20 74 68 65 20 63 75 72 72 |ered is the curr| 000ac180 65 6e 74 20 77 69 6e 64 6f 77 20 6f 6e 20 74 68 |ent window on th| 000ac190 65 20 67 69 76 65 6e 20 74 65 78 74 2e 20 54 68 |e given text. Th| 000ac1a0 69 73 20 73 68 6f 75 6c 64 20 62 65 20 63 61 6c |is should be cal| 000ac1b0 6c 65 64 20 77 68 65 6e 20 6d 61 6b 69 6e 67 20 |led when making | 000ac1c0 6d 65 6e 75 73 2c 20 73 69 6e 63 65 20 74 68 65 |menus, since the| 000ac1d0 20 73 61 6d 65 20 6d 65 6e 75 20 73 74 72 75 63 | same menu struc| 000ac1e0 74 75 72 65 20 69 73 20 61 74 74 61 63 68 65 64 |ture is attached| 000ac1f0 20 74 6f 20 61 6c 6c 20 77 69 6e 64 6f 77 73 20 | to all windows | 000ac200 6f 6e 20 74 68 65 20 73 61 6d 65 20 74 65 78 74 |on the same text| 000ac210 2e 00 00 00 44 49 52 24 84 07 00 00 84 07 00 00 |....DIR$........| 000ac220 98 c9 0a 00 46 ff ff ff f5 a2 55 26 be 00 00 00 |....F.....U&....| 000ac230 13 00 00 00 00 00 00 00 41 4e 44 5f 53 50 52 00 |........AND_SPR.| 000ac240 58 ca 0a 00 46 ff ff ff be 2b e4 24 95 01 00 00 |X...F....+.$....| 000ac250 13 00 00 00 00 00 00 00 61 72 72 61 79 73 65 67 |........arrayseg| 000ac260 00 00 00 00 f0 cb 0a 00 46 ff ff ff 1a 23 e3 24 |........F....#.$| 000ac270 ed 00 00 00 13 00 00 00 00 00 00 00 62 75 66 73 |............bufs| 000ac280 69 7a 65 00 e0 cc 0a 00 46 ff ff ff 77 93 e3 24 |ize.....F...w..$| 000ac290 e8 00 00 00 13 00 00 00 00 00 00 00 63 68 61 72 |............char| 000ac2a0 61 74 00 00 c8 cd 0a 00 46 ff ff ff 92 8f e3 24 |at......F......$| 000ac2b0 a5 00 00 00 13 00 00 00 00 00 00 00 63 68 61 72 |............char| 000ac2c0 61 74 64 6f 74 00 00 00 70 ce 0a 00 46 ff ff ff |atdot...p...F...| 000ac2d0 8a 41 e4 24 1f 01 00 00 13 00 00 00 00 00 00 00 |.A.$............| 000ac2e0 63 68 61 72 6f 70 74 69 6f 6e 00 00 90 cf 0a 00 |charoption......| 000ac2f0 46 ff ff ff be 2c e3 24 87 00 00 00 13 00 00 00 |F....,.$........| 000ac300 00 00 00 00 63 68 61 72 6f 70 74 69 6f 6e 73 00 |....charoptions.| 000ac310 18 d0 0a 00 46 ff ff ff f0 a3 e3 24 40 01 00 00 |....F......$@...| 000ac320 13 00 00 00 00 00 00 00 63 68 61 72 73 61 74 64 |........charsatd| 000ac330 6f 74 00 00 58 d1 0a 00 46 ff ff ff 93 7f e3 24 |ot..X...F......$| 000ac340 91 00 00 00 13 00 00 00 00 00 00 00 64 65 6c 65 |............dele| 000ac350 74 65 00 00 ec d1 0a 00 46 ff ff ff 79 1e e3 24 |te......F...y..$| 000ac360 91 00 00 00 13 00 00 00 00 00 00 00 64 69 73 70 |............disp| 000ac370 6f 73 65 00 80 d2 0a 00 46 ff ff ff 70 dc e3 24 |ose.....F...p..$| 000ac380 f6 00 00 00 13 00 00 00 00 00 00 00 64 69 73 70 |............disp| 000ac390 6f 73 65 6d 61 72 6b 65 72 00 00 00 78 d3 0a 00 |osemarker...x...| 000ac3a0 46 ff ff ff 6e 6a e3 24 f6 00 00 00 13 00 00 00 |F...nj.$........| 000ac3b0 00 00 00 00 64 6f 74 00 70 d4 0a 00 46 ff ff ff |....dot.p...F...| 000ac3c0 91 75 e4 24 d1 00 00 00 13 00 00 00 00 00 00 00 |.u.$............| 000ac3d0 65 76 65 6e 74 5f 70 72 6f 63 00 00 44 d5 0a 00 |event_proc..D...| 000ac3e0 46 ff ff ff 2d 59 e4 24 49 00 00 00 13 00 00 00 |F...-Y.$I.......| 000ac3f0 00 00 00 00 65 76 65 6e 74 63 6f 64 65 00 00 00 |....eventcode...| 000ac400 90 d5 0a 00 46 ff ff ff f4 0c e4 24 71 01 00 00 |....F......$q...| 000ac410 13 00 00 00 00 00 00 00 65 76 65 6e 74 68 61 6e |........eventhan| 000ac420 64 6c 65 72 00 00 00 00 04 d7 0a 00 46 ff ff ff |dler........F...| 000ac430 f2 f9 e3 24 f3 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000ac440 67 65 74 00 f8 d7 0a 00 46 ff ff ff f9 ed e2 24 |get.....F......$| 000ac450 2d 04 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |-...........h...| 000ac460 28 dc 0a 00 46 ff ff ff 9a 17 e3 24 7e 00 00 00 |(...F......$~...| 000ac470 13 00 00 00 00 00 00 00 68 69 64 65 00 00 00 00 |........hide....| 000ac480 a8 dc 0a 00 46 ff ff ff 51 49 e4 24 82 00 00 00 |....F...QI.$....| 000ac490 13 00 00 00 00 00 00 00 69 6e 64 65 78 00 00 00 |........index...| 000ac4a0 2c dd 0a 00 46 ff ff ff 67 d8 e3 24 d9 00 00 00 |,...F...g..$....| 000ac4b0 13 00 00 00 00 00 00 00 69 6e 64 65 78 6f 66 6d |........indexofm| 000ac4c0 61 72 6b 65 72 00 00 00 08 de 0a 00 46 ff ff ff |arker.......F...| 000ac4d0 cf 20 b6 22 81 00 00 00 13 00 00 00 00 00 00 00 |. ."............| 000ac4e0 69 6e 69 74 00 00 00 00 8c de 0a 00 46 ff ff ff |init........F...| 000ac4f0 79 78 e3 24 a3 00 00 00 13 00 00 00 00 00 00 00 |yx.$............| 000ac500 69 6e 73 65 72 74 63 68 61 72 00 00 30 df 0a 00 |insertchar..0...| 000ac510 46 ff ff ff 8e 7b e3 24 a0 00 00 00 13 00 00 00 |F....{.$........| 000ac520 00 00 00 00 69 6e 73 65 72 74 73 74 72 69 6e 67 |....insertstring| 000ac530 00 00 00 00 d0 df 0a 00 46 ff ff ff ff 48 e3 24 |........F....H.$| 000ac540 78 00 00 00 13 00 00 00 00 00 00 00 6c 61 73 74 |x...........last| 000ac550 72 65 66 00 48 e0 0a 00 46 ff ff ff ee 50 e4 24 |ref.H...F....P.$| 000ac560 8e 01 00 00 13 00 00 00 00 00 00 00 6d 61 72 6b |............mark| 000ac570 65 72 00 00 d8 e1 0a 00 46 ff ff ff 87 66 e4 24 |er......F....f.$| 000ac580 a3 01 00 00 13 00 00 00 00 00 00 00 6d 6f 75 73 |............mous| 000ac590 65 65 76 65 6e 74 66 6c 61 67 00 00 7c e3 0a 00 |eeventflag..|...| 000ac5a0 46 ff ff ff 28 75 e3 24 ef 00 00 00 13 00 00 00 |F...(u.$........| 000ac5b0 00 00 00 00 6d 6f 76 65 64 6f 74 00 6c e4 0a 00 |....movedot.l...| 000ac5c0 46 ff ff ff 99 d2 e3 24 a4 00 00 00 13 00 00 00 |F......$........| 000ac5d0 00 00 00 00 6d 6f 76 65 64 6f 74 74 6f 6d 61 72 |....movedottomar| 000ac5e0 6b 65 72 00 10 e5 0a 00 46 ff ff ff fa bc e3 24 |ker.....F......$| 000ac5f0 d6 00 00 00 13 00 00 00 00 00 00 00 6d 6f 76 65 |............move| 000ac600 68 6f 72 69 7a 6f 6e 74 61 6c 00 00 e8 e5 0a 00 |horizontal......| 000ac610 46 ff ff ff 17 21 b6 22 04 01 00 00 13 00 00 00 |F....!."........| 000ac620 00 00 00 00 6d 6f 76 65 6d 61 72 6b 65 72 00 00 |....movemarker..| 000ac630 ec e6 0a 00 46 ff ff ff bd b6 e3 24 29 01 00 00 |....F......$)...| 000ac640 13 00 00 00 00 00 00 00 6d 6f 76 65 76 65 72 74 |........movevert| 000ac650 69 63 61 6c 00 00 00 00 18 e8 0a 00 46 ff ff ff |ical........F...| 000ac660 1f 0e e3 24 76 01 00 00 13 00 00 00 00 00 00 00 |...$v...........| 000ac670 6e 65 77 00 90 e9 0a 00 46 ff ff ff d3 cc e3 24 |new.....F......$| 000ac680 d4 00 00 00 13 00 00 00 00 00 00 00 6e 65 77 6d |............newm| 000ac690 61 72 6b 65 72 00 00 00 64 ea 0a 00 46 ff ff ff |arker...d...F...| 000ac6a0 22 9d 55 26 b5 00 00 00 13 00 00 00 00 00 00 00 |".U&............| 000ac6b0 4f 4e 4c 59 00 00 00 00 1c eb 0a 00 46 ff ff ff |ONLY........F...| 000ac6c0 2d fd e3 24 c6 00 00 00 13 00 00 00 00 00 00 00 |-..$............| 000ac6d0 71 75 65 75 65 00 00 00 e4 eb 0a 00 46 ff ff ff |queue.......F...| 000ac6e0 8b 1b e4 24 40 01 00 00 13 00 00 00 00 00 00 00 |...$@...........| 000ac6f0 72 65 61 64 65 76 65 6e 74 68 61 6e 64 6c 65 72 |readeventhandler| 000ac700 00 00 00 00 24 ed 0a 00 46 ff ff ff 9a ac e3 24 |....$...F......$| 000ac710 ed 00 00 00 13 00 00 00 00 00 00 00 72 65 70 6c |............repl| 000ac720 61 63 65 61 74 65 6e 64 00 00 00 00 14 ee 0a 00 |aceatend........| 000ac730 46 ff ff ff 8d 87 e3 24 1e 01 00 00 13 00 00 00 |F......$........| 000ac740 00 00 00 00 72 65 70 6c 61 63 65 63 68 61 72 73 |....replacechars| 000ac750 00 00 00 00 34 ef 0a 00 46 ff ff ff 50 e8 e3 24 |....4...F...P..$| 000ac760 d0 00 00 00 13 00 00 00 00 00 00 00 73 65 6c 65 |............sele| 000ac770 63 74 65 6e 64 00 00 00 04 f0 0a 00 46 ff ff ff |ctend.......F...| 000ac780 08 e0 e3 24 c4 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000ac790 73 65 6c 65 63 74 73 65 74 00 00 00 c8 f0 0a 00 |selectset.......| 000ac7a0 46 ff ff ff 25 e4 e3 24 d8 00 00 00 13 00 00 00 |F...%..$........| 000ac7b0 00 00 00 00 73 65 6c 65 63 74 73 74 61 72 74 00 |....selectstart.| 000ac7c0 a0 f1 0a 00 46 ff ff ff 5b 29 e3 24 2e 01 00 00 |....F...[).$....| 000ac7d0 13 00 00 00 00 00 00 00 73 65 74 62 75 66 73 69 |........setbufsi| 000ac7e0 7a 65 00 00 d0 f2 0a 00 46 ff ff ff 62 39 e3 24 |ze......F...b9.$| 000ac7f0 f9 00 00 00 13 00 00 00 00 00 00 00 73 65 74 63 |............setc| 000ac800 68 61 72 6f 70 74 69 6f 6e 73 00 00 cc f3 0a 00 |haroptions......| 000ac810 46 ff ff ff 4d 66 e3 24 e4 00 00 00 13 00 00 00 |F...Mf.$........| 000ac820 00 00 00 00 73 65 74 64 69 73 70 6c 61 79 6f 6b |....setdisplayok| 000ac830 00 00 00 00 b0 f4 0a 00 46 ff ff ff 92 21 b6 22 |........F....!."| 000ac840 01 01 00 00 13 00 00 00 00 00 00 00 73 65 74 64 |............setd| 000ac850 6f 74 00 00 b4 f5 0a 00 46 ff ff ff 5d 5c e3 24 |ot......F...]\.$| 000ac860 d9 00 00 00 13 00 00 00 00 00 00 00 73 65 74 6c |............setl| 000ac870 61 73 74 72 65 66 00 00 90 f6 0a 00 46 ff ff ff |astref......F...| 000ac880 3a f4 e3 24 16 01 00 00 13 00 00 00 00 00 00 00 |:..$............| 000ac890 73 65 74 73 65 6c 65 63 74 00 00 00 a8 f7 0a 00 |setselect.......| 000ac8a0 46 ff ff ff f0 1a e3 24 d8 00 00 00 13 00 00 00 |F......$........| 000ac8b0 00 00 00 00 73 65 74 74 69 74 6c 65 00 00 00 00 |....settitle....| 000ac8c0 80 f8 0a 00 46 ff ff ff ef 13 e3 24 c8 00 00 00 |....F......$....| 000ac8d0 13 00 00 00 00 00 00 00 73 68 6f 77 00 00 00 00 |........show....| 000ac8e0 48 f9 0a 00 46 ff ff ff b0 70 e3 24 00 01 00 00 |H...F....p.$....| 000ac8f0 13 00 00 00 00 00 00 00 73 69 7a 65 00 00 00 00 |........size....| 000ac900 48 fa 0a 00 46 ff ff ff 26 33 e4 24 c2 00 00 00 |H...F...&3.$....| 000ac910 13 00 00 00 00 00 00 00 73 79 73 68 61 6e 64 6c |........syshandl| 000ac920 65 00 00 00 0c fb 0a 00 46 ff ff ff 93 01 e4 24 |e.......F......$| 000ac930 b9 00 00 00 13 00 00 00 00 00 00 00 75 6e 67 65 |............unge| 000ac940 74 00 00 00 c8 fb 0a 00 46 ff ff ff 00 c7 e3 24 |t.......F......$| 000ac950 2a 01 00 00 13 00 00 00 00 00 00 00 76 69 73 69 |*...........visi| 000ac960 62 6c 65 63 6f 6c 63 6f 75 6e 74 00 f4 fc 0a 00 |blecolcount.....| 000ac970 46 ff ff ff 9b c0 e3 24 0c 01 00 00 13 00 00 00 |F......$........| 000ac980 00 00 00 00 76 69 73 69 62 6c 65 6c 69 6e 65 63 |....visiblelinec| 000ac990 6f 75 6e 74 00 00 00 00 44 41 54 41 be 00 00 00 |ount....DATA....| 000ac9a0 54 58 54 5f 41 4e 44 5f 53 50 52 0a 54 68 69 73 |TXT_AND_SPR.This| 000ac9b0 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 | macro is define| 000ac9c0 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 49 63 |d in <TimsLib:Ic| 000ac9d0 6f 6e 2e 68 3d 3e 49 63 6f 6e 5f 54 4c 3e 2e 20 |on.h=>Icon_TL>. | 000ac9e0 49 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 |It is the value | 000ac9f0 74 68 65 20 72 65 74 75 72 6e 65 64 20 62 79 20 |the returned by | 000aca00 3c 49 43 4f 4e 5f 54 59 50 45 3e 20 77 68 65 6e |<ICON_TYPE> when| 000aca10 20 74 68 65 20 69 63 6f 6e 20 69 6e 20 71 75 65 | the icon in que| 000aca20 73 74 69 6f 6e 20 69 73 20 61 20 27 74 65 78 74 |stion is a 'text| 000aca30 20 61 6e 64 20 73 70 72 69 74 65 27 20 69 63 6f | and sprite' ico| 000aca40 6e 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |n. It is defined| 000aca50 20 61 73 20 33 2e 00 00 44 41 54 41 95 01 00 00 | as 3...DATA....| 000aca60 74 78 74 5f 61 72 72 61 79 73 65 67 0a 53 79 6e |txt_arrayseg.Syn| 000aca70 74 61 78 3a 09 76 6f 69 64 20 74 78 74 5f 61 72 |tax:.void txt_ar| 000aca80 72 61 79 73 65 67 20 28 3c 74 78 74 3e 20 74 2c |rayseg (<txt> t,| 000aca90 20 3c 74 78 74 5f 69 6e 64 65 78 3e 20 61 74 2c | <txt_index> at,| 000acaa0 20 63 68 61 72 20 2a 2a 61 2c 20 69 6e 74 20 2a | char **a, int *| 000acab0 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 |n);.Header:.<txt| 000acac0 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 |.h=>txt_h>..This| 000acad0 20 66 75 6e 63 74 69 6f 6e 20 67 69 76 65 73 20 | function gives | 000acae0 61 20 64 69 72 65 63 74 20 70 6f 69 6e 74 65 72 |a direct pointer| 000acaf0 20 69 6e 74 6f 20 74 68 65 20 6d 65 6d 6f 72 79 | into the memory| 000acb00 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 | used to hold th| 000acb10 65 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 |e characters in | 000acb20 61 20 74 65 78 74 2e 20 2f 61 74 2f 20 69 73 20 |a text. /at/ is | 000acb30 74 68 65 20 69 6e 64 65 78 20 69 6e 74 6f 20 74 |the index into t| 000acb40 68 65 20 74 65 78 74 2c 20 7b 2f 7d 2a 61 7b 2f |he text, {/}*a{/| 000acb50 7d 20 77 69 6c 6c 20 70 6f 69 6e 74 20 61 74 20 |} will point at | 000acb60 74 68 65 20 63 68 61 72 61 63 74 65 72 20 77 68 |the character wh| 000acb70 6f 73 65 20 69 6e 64 65 78 20 69 6e 20 74 68 65 |ose index in the| 000acb80 20 74 65 78 74 20 69 73 20 2f 61 74 2f 2c 20 61 | text is /at/, a| 000acb90 6e 64 20 7b 2f 7d 2a 6e 7b 2f 7d 20 77 69 6c 6c |nd {/}*n{/} will| 000acba0 20 63 6f 6e 74 61 69 6e 20 74 68 65 20 6e 75 6d | contain the num| 000acbb0 62 65 72 20 6f 66 20 63 6f 6e 74 69 67 75 6f 75 |ber of contiguou| 000acbc0 73 20 62 79 74 65 73 20 61 66 74 65 72 20 2f 61 |s bytes after /a| 000acbd0 74 2f 2e 20 59 6f 75 20 6d 61 79 20 61 6c 74 65 |t/. You may alte| 000acbe0 72 20 74 68 65 20 74 65 78 74 2e 2e 2e 00 00 00 |r the text......| 000acbf0 44 41 54 41 ed 00 00 00 74 78 74 5f 62 75 66 73 |DATA....txt_bufs| 000acc00 69 7a 65 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |ize.Syntax:.int | 000acc10 74 78 74 5f 62 75 66 73 69 7a 65 20 28 3c 74 78 |txt_bufsize (<tx| 000acc20 74 3e 20 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c |t> t);.Header:.<| 000acc30 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 52 |txt.h=>txt_h>..R| 000acc40 65 74 75 72 6e 73 3a 09 53 69 7a 65 20 6f 66 20 |eturns:.Size of | 000acc50 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 |the buffer...Thi| 000acc60 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f 72 |s function infor| 000acc70 6d 73 20 79 6f 75 20 68 6f 77 20 6d 61 6e 79 20 |ms you how many | 000acc80 63 68 61 72 61 63 74 65 72 73 20 63 61 6e 20 62 |characters can b| 000acc90 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 |e stored in the | 000acca0 62 75 66 66 65 72 2c 20 62 65 66 6f 72 65 20 6d |buffer, before m| 000accb0 6f 72 65 20 6d 65 6d 6f 72 79 20 6e 65 65 64 73 |ore memory needs| 000accc0 20 74 6f 20 62 65 20 72 65 71 75 65 73 74 65 64 | to be requested| 000accd0 20 66 72 6f 6d 20 74 68 65 20 4f 53 2e 00 00 00 | from the OS....| 000acce0 44 41 54 41 e8 00 00 00 74 78 74 5f 63 68 61 72 |DATA....txt_char| 000accf0 61 74 0a 53 79 6e 74 61 78 3a 09 63 68 61 72 20 |at.Syntax:.char | 000acd00 74 78 74 5f 63 68 61 72 61 74 20 28 3c 74 78 74 |txt_charat (<txt| 000acd10 3e 20 74 2c 20 3c 74 78 74 5f 69 6e 64 65 78 3e |> t, <txt_index>| 000acd20 20 69 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 | i);.Header:.<tx| 000acd30 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 52 65 74 |t.h=>txt_h>..Ret| 000acd40 75 72 6e 73 3a 09 54 68 65 20 63 68 61 72 61 63 |urns:.The charac| 000acd50 74 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ter...This funct| 000acd60 69 6f 6e 20 72 65 61 64 73 20 74 68 65 20 63 68 |ion reads the ch| 000acd70 61 72 61 63 74 65 72 20 61 74 20 74 68 65 20 67 |aracter at the g| 000acd80 69 76 65 6e 20 69 6e 64 65 78 20 69 6e 20 74 68 |iven index in th| 000acd90 65 20 61 72 72 61 79 2e 20 49 74 20 72 65 74 75 |e array. It retu| 000acda0 72 6e 73 20 30 20 69 66 20 74 68 65 20 69 6e 64 |rns 0 if the ind| 000acdb0 65 78 20 69 73 20 61 74 2f 62 65 79 6f 6e 64 20 |ex is at/beyond | 000acdc0 74 68 65 20 65 6e 64 2e 44 41 54 41 a5 00 00 00 |the end.DATA....| 000acdd0 74 78 74 5f 63 68 61 72 61 74 64 6f 74 0a 53 79 |txt_charatdot.Sy| 000acde0 6e 74 61 78 3a 09 63 68 61 72 20 74 78 74 5f 63 |ntax:.char txt_c| 000acdf0 68 61 72 61 74 64 6f 74 20 28 3c 74 78 74 3e 20 |haratdot (<txt> | 000ace00 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 |t);.Header:.<txt| 000ace10 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 52 65 74 75 |.h=>txt_h>..Retu| 000ace20 72 6e 73 3a 09 54 68 65 20 63 68 61 72 61 63 74 |rns:.The charact| 000ace30 65 72 20 61 74 20 22 64 6f 74 22 2e 0a 0a 54 68 |er at "dot"...Th| 000ace40 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 |is function read| 000ace50 73 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 |s the character | 000ace60 61 74 20 74 68 65 20 22 64 6f 74 22 2e 00 00 00 |at the "dot"....| 000ace70 44 41 54 41 1f 01 00 00 74 78 74 5f 63 68 61 72 |DATA....txt_char| 000ace80 6f 70 74 69 6f 6e 0a 54 68 69 73 20 74 79 70 65 |option.This type| 000ace90 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000acea0 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 2e 20 49 |txt.h=>txt_h>. I| 000aceb0 74 20 69 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 |t is the followi| 000acec0 6e 67 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 |ng enumerated ty| 000aced0 70 65 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 5c |pe:.{wrap off}.\| 000acee0 7b 0a 20 20 74 78 74 5f 44 49 53 50 4c 41 59 09 |{. txt_DISPLAY.| 000acef0 3d 20 31 2c 09 2f 2a 20 64 69 73 70 6c 61 79 20 |= 1,./* display | 000acf00 63 68 61 6e 67 65 73 20 61 73 20 6d 61 64 65 20 |changes as made | 000acf10 2a 2f 0a 20 20 74 78 74 5f 43 41 52 45 54 09 3d |*/. txt_CARET.=| 000acf20 20 32 2c 09 2f 2a 20 64 69 73 70 6c 61 79 20 63 | 2,./* display c| 000acf30 75 72 72 65 6e 74 20 74 65 78 74 70 6f 73 20 2a |urrent textpos *| 000acf40 2f 0a 20 20 74 78 74 5f 55 50 44 41 54 45 44 09 |/. txt_UPDATED.| 000acf50 3d 20 34 09 2f 2a 20 73 65 74 20 69 66 20 63 68 |= 4./* set if ch| 000acf60 61 6e 67 65 64 20 2a 2f 0a 7d 0a 0a 49 74 20 64 |anged */.}..It d| 000acf70 65 66 69 6e 65 73 20 74 68 65 20 76 61 6c 75 65 |efines the value| 000acf80 73 20 6f 66 20 66 6c 61 67 20 62 69 74 73 2e 00 |s of flag bits..| 000acf90 44 41 54 41 87 00 00 00 74 78 74 5f 63 68 61 72 |DATA....txt_char| 000acfa0 6f 70 74 69 6f 6e 73 0a 53 79 6e 74 61 78 3a 09 |options.Syntax:.| 000acfb0 3c 74 78 74 5f 63 68 61 72 6f 70 74 69 6f 6e 3e |<txt_charoption>| 000acfc0 20 74 78 74 5f 63 68 61 72 6f 70 74 69 6f 6e 73 | txt_charoptions| 000acfd0 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 65 61 64 | (<txt> t);.Head| 000acfe0 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f |er:.<txt.h=>txt_| 000acff0 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 54 68 65 |h>..Returns: The| 000ad000 20 63 75 72 72 65 6e 74 6c 79 20 73 65 74 20 6f | currently set o| 000ad010 70 74 69 6f 6e 73 2e 00 44 41 54 41 40 01 00 00 |ptions..DATA@...| 000ad020 74 78 74 5f 63 68 61 72 73 61 74 64 6f 74 0a 53 |txt_charsatdot.S| 000ad030 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 74 5f |yntax:.void txt_| 000ad040 63 68 61 72 73 61 74 64 6f 74 20 28 3c 74 78 74 |charsatdot (<txt| 000ad050 3e 20 74 2c 20 63 68 61 72 20 2a 62 75 66 66 65 |> t, char *buffe| 000ad060 72 2c 20 69 6e 74 20 2a 6e 29 3b 0a 48 65 61 64 |r, int *n);.Head| 000ad070 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f |er:.<txt.h=>txt_| 000ad080 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 |h>..Returns:.The| 000ad090 20 63 68 61 72 61 63 74 65 72 2e 0a 0a 54 68 69 | character...Thi| 000ad0a0 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 69 65 |s function copie| 000ad0b0 73 20 61 74 20 6d 6f 73 74 20 7b 2f 7d 2a 6e 7b |s at most {/}*n{| 000ad0c0 2f 7d 20 63 68 61 72 61 63 74 65 72 73 20 66 72 |/} characters fr| 000ad0d0 6f 6d 20 74 68 65 20 22 64 6f 74 22 20 69 6e 20 |om the "dot" in | 000ad0e0 74 68 65 20 61 72 72 61 79 2c 20 69 6e 74 6f 20 |the array, into | 000ad0f0 61 20 73 75 70 70 6c 69 65 64 20 62 75 66 66 65 |a supplied buffe| 000ad100 72 2e 20 49 66 20 7b 2f 7d 2a 6e 7b 2f 7d 20 63 |r. If {/}*n{/} c| 000ad110 68 61 72 61 63 74 65 72 73 20 63 61 6e 6e 6f 74 |haracters cannot| 000ad120 20 62 65 20 63 6f 70 69 65 64 2c 20 7b 2f 7d 2a | be copied, {/}*| 000ad130 6e 7b 2f 7d 20 69 73 20 75 70 64 61 74 65 64 20 |n{/} is updated | 000ad140 74 6f 20 72 65 70 6f 72 74 20 68 6f 77 20 6d 61 |to report how ma| 000ad150 6e 79 20 77 65 72 65 2e 44 41 54 41 91 00 00 00 |ny were.DATA....| 000ad160 74 78 74 5f 64 65 6c 65 74 65 0a 53 79 6e 74 61 |txt_delete.Synta| 000ad170 78 3a 09 76 6f 69 64 20 74 78 74 5f 64 65 6c 65 |x:.void txt_dele| 000ad180 74 65 20 28 3c 74 78 74 3e 20 74 2c 20 69 6e 74 |te (<txt> t, int| 000ad190 20 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 | n);.Header:.<tx| 000ad1a0 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 |t.h=>txt_h>..Thi| 000ad1b0 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c 65 74 |s function delet| 000ad1c0 65 73 20 2f 6e 2f 20 63 68 61 72 61 63 74 65 72 |es /n/ character| 000ad1d0 73 20 66 72 6f 6d 20 74 68 65 20 22 64 6f 74 22 |s from the "dot"| 000ad1e0 20 6f 6e 77 61 72 64 73 2e 00 00 00 44 41 54 41 | onwards....DATA| 000ad1f0 91 00 00 00 74 78 74 5f 64 69 73 70 6f 73 65 0a |....txt_dispose.| 000ad200 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 74 |Syntax:.void txt| 000ad210 5f 64 69 73 70 6f 73 65 20 28 3c 74 78 74 3e 20 |_dispose (<txt> | 000ad220 2a 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 |*t);.Header:.<tx| 000ad230 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 |t.h=>txt_h>..Thi| 000ad240 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 74 72 |s function destr| 000ad250 6f 79 73 20 61 20 74 65 78 74 20 61 6e 64 20 74 |oys a text and t| 000ad260 68 65 20 77 69 6e 64 6f 77 20 61 73 73 6f 63 69 |he window associ| 000ad270 61 74 65 64 20 77 69 74 68 20 69 74 2e 00 00 00 |ated with it....| 000ad280 44 41 54 41 f6 00 00 00 74 78 74 5f 64 69 73 70 |DATA....txt_disp| 000ad290 6f 73 65 6d 61 72 6b 65 72 0a 53 79 6e 74 61 78 |osemarker.Syntax| 000ad2a0 3a 09 76 6f 69 64 20 74 78 74 5f 64 69 73 70 6f |:.void txt_dispo| 000ad2b0 73 65 6d 61 72 6b 65 72 20 28 3c 74 78 74 3e 20 |semarker (<txt> | 000ad2c0 74 2c 20 3c 74 78 74 5f 6d 61 72 6b 65 72 3e 20 |t, <txt_marker> | 000ad2d0 2a 6d 61 72 6b 29 3b 0a 48 65 61 64 65 72 3a 09 |*mark);.Header:.| 000ad2e0 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a |<txt.h=>txt_h>..| 000ad2f0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 69 |This function di| 000ad300 73 70 6f 73 65 73 20 6f 66 20 74 68 65 20 67 69 |sposes of the gi| 000ad310 76 65 6e 20 6d 61 72 6b 65 72 2e 20 54 68 69 73 |ven marker. This| 000ad320 20 4d 55 53 54 20 62 65 20 64 6f 6e 65 20 77 68 | MUST be done wh| 000ad330 65 6e 20 74 68 65 20 6d 61 72 6b 65 72 20 69 73 |en the marker is| 000ad340 20 6e 6f 20 6c 6f 6e 67 65 72 20 69 6e 20 75 73 | no longer in us| 000ad350 65 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 |e, otherwise it | 000ad360 77 69 6c 6c 20 73 74 69 6c 6c 20 62 65 20 75 70 |will still be up| 000ad370 64 61 74 65 64 2e 00 00 44 41 54 41 f6 00 00 00 |dated...DATA....| 000ad380 74 78 74 5f 64 6f 74 0a 53 79 6e 74 61 78 3a 09 |txt_dot.Syntax:.| 000ad390 3c 74 78 74 5f 69 6e 64 65 78 3e 20 74 78 74 5f |<txt_index> txt_| 000ad3a0 64 6f 74 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 |dot (<txt> t);.H| 000ad3b0 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 |eader:.<txt.h=>t| 000ad3c0 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |xt_h>..Returns:.| 000ad3d0 49 6e 64 65 78 20 69 6e 74 6f 20 74 68 65 20 63 |Index into the c| 000ad3e0 68 61 72 61 63 74 65 72 20 61 72 72 61 79 2e 0a |haracter array..| 000ad3f0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000ad400 65 74 75 72 6e 73 20 74 68 65 20 70 6f 73 69 74 |eturns the posit| 000ad410 69 6f 6e 20 6f 66 20 74 68 65 20 22 64 6f 74 22 |ion of the "dot"| 000ad420 20 69 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 | ie the current | 000ad430 65 64 69 74 69 6e 67 20 70 6f 73 69 74 69 6f 6e |editing position| 000ad440 20 6f 66 20 74 68 65 20 74 65 78 74 2e 20 30 20 | of the text. 0 | 000ad450 69 73 20 62 65 66 6f 72 65 20 74 68 65 20 66 69 |is before the fi| 000ad460 72 73 74 20 63 68 61 72 61 63 74 65 72 2e 00 00 |rst character...| 000ad470 44 41 54 41 d1 00 00 00 74 78 74 5f 65 76 65 6e |DATA....txt_even| 000ad480 74 5f 70 72 6f 63 0a 54 68 69 73 20 74 79 70 65 |t_proc.This type| 000ad490 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000ad4a0 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 2e 20 49 |txt.h=>txt_h>. I| 000ad4b0 74 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f |t is the functio| 000ad4c0 6e 20 74 79 70 65 20 66 6f 72 20 74 65 78 74 20 |n type for text | 000ad4d0 65 76 65 6e 74 20 68 61 6e 64 6c 65 72 73 2e 20 |event handlers. | 000ad4e0 46 75 6e 63 74 69 6f 6e 73 20 73 68 6f 75 6c 64 |Functions should| 000ad4f0 20 62 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a | be of the form:| 000ad500 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f |.{wrap off}.{fCo| 000ad510 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d |de;align centre}| 000ad520 76 6f 69 64 20 6d 79 66 75 6e 63 20 28 3c 74 78 |void myfunc (<tx| 000ad530 74 3e 20 74 2c 20 76 6f 69 64 20 2a 68 6e 64 29 |t> t, void *hnd)| 000ad540 3b 00 00 00 44 41 54 41 49 00 00 00 74 78 74 5f |;...DATAI...txt_| 000ad550 65 76 65 6e 74 63 6f 64 65 0a 54 68 69 73 20 74 |eventcode.This t| 000ad560 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000ad570 6e 20 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e |n <txt.h=>txt_h>| 000ad580 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 00 | as an /int/....| 000ad590 44 41 54 41 71 01 00 00 74 78 74 5f 65 76 65 6e |DATAq...txt_even| 000ad5a0 74 68 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a |thandler.Syntax:| 000ad5b0 09 76 6f 69 64 20 74 78 74 5f 65 76 65 6e 74 68 |.void txt_eventh| 000ad5c0 61 6e 64 6c 65 72 20 28 3c 74 78 74 3e 20 74 2c |andler (<txt> t,| 000ad5d0 20 3c 74 78 74 5f 65 76 65 6e 74 5f 70 72 6f 63 | <txt_event_proc| 000ad5e0 3e 20 66 75 6e 63 2c 20 76 6f 69 64 20 2a 68 6e |> func, void *hn| 000ad5f0 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 |d);.Header:.<txt| 000ad600 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 |.h=>txt_h>..This| 000ad610 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 | function regist| 000ad620 65 72 73 20 61 6e 20 65 76 65 6e 74 68 61 6e 64 |ers an eventhand| 000ad630 6c 65 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 |ler function for| 000ad640 20 61 20 67 69 76 65 6e 20 74 65 78 74 2c 20 77 | a given text, w| 000ad650 68 69 63 68 20 77 69 6c 6c 20 62 65 20 63 61 6c |hich will be cal| 000ad660 6c 65 64 20 77 68 65 6e 65 76 65 72 20 74 68 65 |led whenever the| 000ad670 72 65 20 69 73 20 61 20 76 61 6c 75 65 20 72 65 |re is a value re| 000ad680 61 64 79 20 77 68 69 63 68 20 63 61 6e 20 62 65 |ady which can be| 000ad690 20 70 69 63 6b 65 64 20 75 70 20 62 79 20 3c 74 | picked up by <t| 000ad6a0 78 74 5f 67 65 74 3e 2e 20 2f 68 6e 64 2f 20 69 |xt_get>. /hnd/ i| 000ad6b0 73 20 70 61 73 73 65 64 20 73 74 72 61 69 67 68 |s passed straigh| 000ad6c0 74 20 74 6f 20 74 68 65 20 68 61 6e 64 6c 65 72 |t to the handler| 000ad6d0 2e 20 49 66 20 7b 2f 7d 66 75 6e 63 3d 30 7b 2f |. If {/}func=0{/| 000ad6e0 7d 20 74 68 65 6e 20 6e 6f 20 66 75 6e 63 74 69 |} then no functi| 000ad6f0 6f 6e 20 69 73 20 72 65 67 69 73 74 65 72 65 64 |on is registered| 000ad700 2e 00 00 00 44 41 54 41 f3 00 00 00 74 78 74 5f |....DATA....txt_| 000ad710 67 65 74 0a 53 79 6e 74 61 78 3a 09 3c 74 78 74 |get.Syntax:.<txt| 000ad720 5f 65 76 65 6e 74 63 6f 64 65 3e 20 74 78 74 5f |_eventcode> txt_| 000ad730 67 65 74 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 |get (<txt> t);.H| 000ad740 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 |eader:.<txt.h=>t| 000ad750 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |xt_h>..Returns:.| 000ad760 54 68 65 20 65 76 65 6e 74 20 63 6f 64 65 2e 0a |The event code..| 000ad770 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 |.This function g| 000ad780 69 76 65 73 20 74 68 65 20 6e 65 78 74 20 75 73 |ives the next us| 000ad790 65 72 20 65 76 65 6e 74 20 63 6f 64 65 20 74 6f |er event code to| 000ad7a0 20 74 68 65 20 63 61 6c 6c 65 72 2e 20 54 68 65 | the caller. The| 000ad7b0 20 72 65 74 75 72 6e 65 64 20 63 6f 64 65 20 63 | returned code c| 000ad7c0 61 6e 20 62 65 20 41 53 43 49 49 2c 20 6f 72 20 |an be ASCII, or | 000ad7d0 76 61 72 69 6f 75 73 20 6f 74 68 65 72 20 76 61 |various other va| 000ad7e0 6c 75 65 73 20 66 6f 72 20 66 75 6e 63 74 69 6f |lues for functio| 000ad7f0 6e 20 6b 65 79 73 2e 00 44 41 54 41 2d 04 00 00 |n keys..DATA-...| 000ad800 74 78 74 2e 68 0a 54 68 69 73 20 68 65 61 64 65 |txt.h.This heade| 000ad810 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 |r declares funct| 000ad820 69 6f 6e 73 20 66 6f 72 20 68 61 6e 64 6c 69 6e |ions for handlin| 000ad830 67 20 74 65 78 74 73 2c 20 69 65 20 77 69 6e 64 |g texts, ie wind| 000ad840 6f 77 73 20 6c 69 6b 65 20 21 45 64 69 74 27 73 |ows like !Edit's| 000ad850 2c 20 6f 72 20 6f 74 68 65 72 20 73 69 6d 69 6c |, or other simil| 000ad860 61 72 20 73 6c 6f 77 20 74 65 78 74 20 64 69 73 |ar slow text dis| 000ad870 70 6c 61 79 73 20 28 62 75 74 20 6e 6f 74 20 6e |plays (but not n| 000ad880 69 63 65 20 66 61 73 74 20 6f 6e 65 73 20 6c 69 |ice fast ones li| 000ad890 6b 65 20 21 53 74 72 6f 6e 67 45 44 21 29 2e 0a |ke !StrongED!)..| 000ad8a0 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 54 61 |.Functions:..#Ta| 000ad8b0 62 6c 65 20 31 35 0a 3c 74 78 74 5f 6e 65 77 3e |ble 15.<txt_new>| 000ad8c0 0a 3c 74 78 74 5f 73 68 6f 77 3e 0a 3c 74 78 74 |.<txt_show>.<txt| 000ad8d0 5f 68 69 64 65 3e 0a 3c 74 78 74 5f 73 65 74 74 |_hide>.<txt_sett| 000ad8e0 69 74 6c 65 3e 0a 3c 74 78 74 5f 64 69 73 70 6f |itle>.<txt_dispo| 000ad8f0 73 65 3e 0a 3c 74 78 74 5f 62 75 66 73 69 7a 65 |se>.<txt_bufsize| 000ad900 3e 0a 3c 74 78 74 5f 73 65 74 62 75 66 73 69 7a |>.<txt_setbufsiz| 000ad910 65 3e 0a 3c 74 78 74 5f 63 68 61 72 6f 70 74 69 |e>.<txt_charopti| 000ad920 6f 6e 73 3e 0a 3c 74 78 74 5f 73 65 74 63 68 61 |ons>.<txt_setcha| 000ad930 72 6f 70 74 69 6f 6e 73 3e 0a 3c 74 78 74 5f 6c |roptions>.<txt_l| 000ad940 61 73 74 72 65 66 3e 0a 3c 74 78 74 5f 73 65 74 |astref>.<txt_set| 000ad950 6c 61 73 74 72 65 66 3e 0a 3c 74 78 74 5f 73 65 |lastref>.<txt_se| 000ad960 74 64 69 73 70 6c 61 79 6f 6b 3e 0a 3c 74 78 74 |tdisplayok>.<txt| 000ad970 5f 64 6f 74 3e 0a 3c 74 78 74 5f 73 69 7a 65 3e |_dot>.<txt_size>| 000ad980 0a 3c 74 78 74 5f 73 65 74 64 6f 74 3e 0a 3c 74 |.<txt_setdot>.<t| 000ad990 78 74 5f 6d 6f 76 65 64 6f 74 3e 0a 3c 74 78 74 |xt_movedot>.<txt| 000ad9a0 5f 69 6e 73 65 72 74 63 68 61 72 3e 0a 3c 74 78 |_insertchar>.<tx| 000ad9b0 74 5f 69 6e 73 65 72 74 73 74 72 69 6e 67 3e 0a |t_insertstring>.| 000ad9c0 3c 74 78 74 5f 64 65 6c 65 74 65 3e 0a 3c 74 78 |<txt_delete>.<tx| 000ad9d0 74 5f 72 65 70 6c 61 63 65 63 68 61 72 73 3e 0a |t_replacechars>.| 000ad9e0 3c 74 78 74 5f 63 68 61 72 61 74 64 6f 74 3e 0a |<txt_charatdot>.| 000ad9f0 3c 74 78 74 5f 63 68 61 72 61 74 3e 0a 3c 74 78 |<txt_charat>.<tx| 000ada00 74 5f 63 68 61 72 73 61 74 64 6f 74 3e 0a 3c 74 |t_charsatdot>.<t| 000ada10 78 74 5f 72 65 70 6c 61 63 65 61 74 65 6e 64 3e |xt_replaceatend>| 000ada20 0a 3c 74 78 74 5f 6d 6f 76 65 76 65 72 74 69 63 |.<txt_movevertic| 000ada30 61 6c 3e 0a 3c 74 78 74 5f 6d 6f 76 65 68 6f 72 |al>.<txt_movehor| 000ada40 69 7a 6f 6e 74 61 6c 3e 0a 3c 74 78 74 5f 76 69 |izontal>.<txt_vi| 000ada50 73 69 62 6c 65 6c 69 6e 65 63 6f 75 6e 74 3e 0a |siblelinecount>.| 000ada60 3c 74 78 74 5f 76 69 73 69 62 6c 65 63 6f 6c 63 |<txt_visiblecolc| 000ada70 6f 75 6e 74 3e 0a 3c 74 78 74 5f 6e 65 77 6d 61 |ount>.<txt_newma| 000ada80 72 6b 65 72 3e 0a 3c 74 78 74 5f 6d 6f 76 65 6d |rker>.<txt_movem| 000ada90 61 72 6b 65 72 3e 0a 3c 74 78 74 5f 6d 6f 76 65 |arker>.<txt_move| 000adaa0 64 6f 74 74 6f 6d 61 72 6b 65 72 3e 0a 3c 74 78 |dottomarker>.<tx| 000adab0 74 5f 69 6e 64 65 78 6f 66 6d 61 72 6b 65 72 3e |t_indexofmarker>| 000adac0 0a 3c 74 78 74 5f 64 69 73 70 6f 73 65 6d 61 72 |.<txt_disposemar| 000adad0 6b 65 72 3e 0a 3c 74 78 74 5f 73 65 6c 65 63 74 |ker>.<txt_select| 000adae0 73 65 74 3e 0a 3c 74 78 74 5f 73 65 6c 65 63 74 |set>.<txt_select| 000adaf0 73 74 61 72 74 3e 0a 3c 74 78 74 5f 73 65 6c 65 |start>.<txt_sele| 000adb00 63 74 65 6e 64 3e 0a 3c 74 78 74 5f 73 65 74 73 |ctend>.<txt_sets| 000adb10 65 6c 65 63 74 3e 0a 3c 74 78 74 5f 67 65 74 3e |elect>.<txt_get>| 000adb20 0a 3c 74 78 74 5f 71 75 65 75 65 3e 0a 3c 74 78 |.<txt_queue>.<tx| 000adb30 74 5f 75 6e 67 65 74 3e 0a 3c 74 78 74 5f 65 76 |t_unget>.<txt_ev| 000adb40 65 6e 74 68 61 6e 64 6c 65 72 3e 0a 3c 74 78 74 |enthandler>.<txt| 000adb50 5f 72 65 61 64 65 76 65 6e 74 68 61 6e 64 6c 65 |_readeventhandle| 000adb60 72 3e 0a 3c 74 78 74 5f 61 72 72 61 79 73 65 67 |r>.<txt_arrayseg| 000adb70 3e 0a 3c 74 78 74 5f 73 79 73 68 61 6e 64 6c 65 |>.<txt_syshandle| 000adb80 3e 0a 3c 74 78 74 5f 69 6e 69 74 3e 0a 23 45 6e |>.<txt_init>.#En| 000adb90 64 54 61 62 6c 65 0a 0a 54 79 70 65 73 3a 0a 0a |dTable..Types:..| 000adba0 23 69 6e 64 65 6e 74 20 35 0a 23 54 61 62 6c 65 |#indent 5.#Table| 000adbb0 20 33 20 32 31 0a 3c 74 78 74 3e 0a 3c 74 78 74 | 3 21.<txt>.<txt| 000adbc0 5f 63 68 61 72 6f 70 74 69 6f 6e 3e 0a 3c 74 78 |_charoption>.<tx| 000adbd0 74 5f 69 6e 64 65 78 3e 0a 3c 74 78 74 5f 6d 61 |t_index>.<txt_ma| 000adbe0 72 6b 65 72 3e 0a 3c 74 78 74 5f 65 76 65 6e 74 |rker>.<txt_event| 000adbf0 63 6f 64 65 3e 0a 3c 74 78 74 5f 6d 6f 75 73 65 |code>.<txt_mouse| 000adc00 65 76 65 6e 74 66 6c 61 67 3e 0a 3c 74 78 74 5f |eventflag>.<txt_| 000adc10 65 76 65 6e 74 5f 70 72 6f 63 3e 0a 23 45 6e 64 |event_proc>.#End| 000adc20 54 61 62 6c 65 00 00 00 44 41 54 41 7e 00 00 00 |Table...DATA~...| 000adc30 74 78 74 5f 68 69 64 65 0a 53 79 6e 74 61 78 3a |txt_hide.Syntax:| 000adc40 09 76 6f 69 64 20 74 78 74 5f 68 69 64 65 20 28 |.void txt_hide (| 000adc50 3c 74 78 74 3e 20 74 29 3b 0a 48 65 61 64 65 72 |<txt> t);.Header| 000adc60 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e |:.<txt.h=>txt_h>| 000adc70 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000adc80 68 69 64 65 73 20 61 20 74 65 78 74 20 77 68 69 |hides a text whi| 000adc90 63 68 20 68 61 73 20 62 65 65 6e 20 64 69 73 70 |ch has been disp| 000adca0 6c 61 79 65 64 2e 00 00 44 41 54 41 82 00 00 00 |layed...DATA....| 000adcb0 74 78 74 5f 69 6e 64 65 78 0a 54 68 69 73 20 74 |txt_index.This t| 000adcc0 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000adcd0 6e 20 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e |n <txt.h=>txt_h>| 000adce0 20 61 73 20 61 6e 20 69 6e 64 65 78 20 69 6e 74 | as an index int| 000adcf0 6f 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 |o the character | 000add00 61 72 72 61 79 2e 20 49 74 20 69 73 20 61 63 74 |array. It is act| 000add10 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 61 73 |ually defined as| 000add20 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 44 41 54 41 | an /int/...DATA| 000add30 d9 00 00 00 74 78 74 5f 69 6e 64 65 78 6f 66 6d |....txt_indexofm| 000add40 61 72 6b 65 72 0a 53 79 6e 74 61 78 3a 09 3c 74 |arker.Syntax:.<t| 000add50 78 74 5f 69 6e 64 65 78 3e 20 74 78 74 5f 69 6e |xt_index> txt_in| 000add60 64 65 78 6f 66 6d 61 72 6b 65 72 20 28 3c 74 78 |dexofmarker (<tx| 000add70 74 3e 20 74 2c 20 3c 74 78 74 5f 6d 61 72 6b 65 |t> t, <txt_marke| 000add80 72 3e 20 2a 6d 61 72 6b 29 3b 0a 48 65 61 64 65 |r> *mark);.Heade| 000add90 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 |r:.<txt.h=>txt_h| 000adda0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 49 6e 64 65 |>..Returns:.Inde| 000addb0 78 20 6f 66 20 6d 61 72 6b 65 72 2e 0a 0a 54 68 |x of marker...Th| 000addc0 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 69 76 65 |is function give| 000addd0 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 6e |s the current in| 000adde0 64 65 78 20 69 6e 74 6f 20 74 68 65 20 61 72 72 |dex into the arr| 000addf0 61 79 20 6f 66 20 61 20 67 69 76 65 6e 20 6d 61 |ay of a given ma| 000ade00 72 6b 65 72 2e 00 00 00 44 41 54 41 81 00 00 00 |rker....DATA....| 000ade10 74 78 74 5f 69 6e 69 74 0a 53 79 6e 74 61 78 3a |txt_init.Syntax:| 000ade20 20 20 76 6f 69 64 20 74 78 74 5f 69 6e 69 74 20 | void txt_init | 000ade30 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 20 |(void);.Header: | 000ade40 20 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a | <txt.h=>txt_h>.| 000ade50 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 |.This function i| 000ade60 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 20 74 |nitialises the t| 000ade70 78 74 20 6d 6f 64 75 6c 65 20 6f 66 20 74 68 65 |xt module of the| 000ade80 0a 6c 69 62 72 61 72 79 2e 00 00 00 44 41 54 41 |.library....DATA| 000ade90 a3 00 00 00 74 78 74 5f 69 6e 73 65 72 74 63 68 |....txt_insertch| 000adea0 61 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |ar.Syntax:.void | 000adeb0 74 78 74 5f 69 6e 73 65 72 74 63 68 61 72 20 28 |txt_insertchar (| 000adec0 3c 74 78 74 3e 20 74 2c 20 63 68 61 72 20 63 29 |<txt> t, char c)| 000aded0 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 |;.Header:.<txt.h| 000adee0 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 20 66 |=>txt_h>..This f| 000adef0 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 |unction inserts | 000adf00 61 20 63 68 61 72 61 63 74 65 72 20 69 6e 74 6f |a character into| 000adf10 20 74 68 65 20 74 65 78 74 20 6a 75 73 74 20 61 | the text just a| 000adf20 66 74 65 72 20 74 68 65 20 22 64 6f 74 22 2e 00 |fter the "dot"..| 000adf30 44 41 54 41 a0 00 00 00 74 78 74 5f 69 6e 73 65 |DATA....txt_inse| 000adf40 72 74 73 74 72 69 6e 67 0a 53 79 6e 74 61 78 3a |rtstring.Syntax:| 000adf50 09 76 6f 69 64 20 74 78 74 5f 69 6e 73 65 72 74 |.void txt_insert| 000adf60 73 74 72 69 6e 67 20 28 3c 74 78 74 3e 20 74 2c |string (<txt> t,| 000adf70 20 63 68 61 72 20 2a 73 29 3b 0a 48 65 61 64 65 | char *s);.Heade| 000adf80 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 |r:.<txt.h=>txt_h| 000adf90 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000adfa0 20 69 6e 73 65 72 74 73 20 74 68 65 20 67 69 76 | inserts the giv| 000adfb0 65 6e 20 63 68 61 72 61 63 74 65 72 20 73 74 72 |en character str| 000adfc0 69 6e 67 20 69 6e 74 6f 20 61 20 74 65 78 74 2e |ing into a text.| 000adfd0 44 41 54 41 78 00 00 00 74 78 74 5f 6c 61 73 74 |DATAx...txt_last| 000adfe0 72 65 66 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |ref.Syntax:.int | 000adff0 74 78 74 5f 6c 61 73 74 72 65 66 20 28 3c 74 78 |txt_lastref (<tx| 000ae000 74 3e 20 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c |t> t);.Header:.<| 000ae010 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 52 |txt.h=>txt_h>..R| 000ae020 65 74 75 72 6e 73 3a 09 43 75 72 72 65 6e 74 20 |eturns:.Current | 000ae030 76 61 6c 75 65 20 6f 66 20 7b 2a 7d 6c 61 73 74 |value of {*}last| 000ae040 5f 72 65 66 7b 2a 7d 2e 44 41 54 41 8e 01 00 00 |_ref{*}.DATA....| 000ae050 74 78 74 5f 6d 61 72 6b 65 72 0a 54 68 69 73 20 |txt_marker.This | 000ae060 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000ae070 69 6e 20 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 |in <txt.h=>txt_h| 000ae080 3e 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 20 61 |>. It contains a| 000ae090 20 6d 61 72 6b 65 72 20 70 6f 73 69 74 69 6f 6e | marker position| 000ae0a0 2e 20 4d 61 72 6b 65 72 73 20 61 72 65 20 69 6e |. Markers are in| 000ae0b0 64 69 63 65 73 20 69 6e 74 6f 20 74 68 65 20 61 |dices into the a| 000ae0c0 72 72 61 79 2e 20 4f 6e 63 65 20 73 65 74 2c 20 |rray. Once set, | 000ae0d0 61 20 6d 61 72 6b 65 72 20 77 69 6c 6c 20 70 6f |a marker will po| 000ae0e0 69 6e 74 20 74 6f 20 74 68 65 20 73 61 6d 65 20 |int to the same | 000ae0f0 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 68 65 |character in the| 000ae100 20 61 72 72 61 79 20 72 65 67 61 72 64 6c 65 73 | array regardles| 000ae110 73 20 6f 66 20 69 6e 73 65 72 74 69 6f 6e 73 20 |s of insertions | 000ae120 6f 72 20 64 65 6c 65 74 69 6f 6e 73 2e 20 49 66 |or deletions. If| 000ae130 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 69 | the character i| 000ae140 73 20 64 65 6c 65 74 65 64 2c 20 74 68 65 20 6e |s deleted, the n| 000ae150 65 78 74 20 63 68 61 72 61 63 74 65 72 20 69 73 |ext character is| 000ae160 20 70 6f 69 6e 74 65 64 20 74 6f 2e 20 49 74 20 | pointed to. It | 000ae170 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 |is defined as th| 000ae180 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 |e following stru| 000ae190 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |cture:.. \{. | 000ae1a0 20 69 6e 74 20 61 3b 0a 20 20 20 20 69 6e 74 20 | int a;. int | 000ae1b0 62 3b 0a 20 20 7d 0a 0a 53 65 6c 66 2d 65 78 70 |b;. }..Self-exp| 000ae1c0 6c 61 6e 61 74 6f 72 79 20 49 20 74 68 69 6e 6b |lanatory I think| 000ae1d0 2e 20 4e 6f 74 2e 00 00 44 41 54 41 a3 01 00 00 |. Not...DATA....| 000ae1e0 74 78 74 5f 6d 6f 75 73 65 65 76 65 6e 74 66 6c |txt_mouseeventfl| 000ae1f0 61 67 0a 54 68 69 73 20 69 73 20 61 6e 20 65 6e |ag.This is an en| 000ae200 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 64 65 |umerated type de| 000ae210 66 69 6e 65 64 20 69 6e 20 3c 74 78 74 2e 68 3d |fined in <txt.h=| 000ae220 3e 74 78 74 5f 68 3e 20 61 73 20 66 6f 6c 6c 6f |>txt_h> as follo| 000ae230 77 73 3a 0a 0a 20 20 5c 7b 0a 20 20 a0 20 74 78 |ws:.. \{. . tx| 000ae240 74 5f 4d 53 45 4c 45 43 54 09 3d 20 20 30 78 30 |t_MSELECT.= 0x0| 000ae250 31 30 30 30 30 30 30 2c 0a 20 20 20 20 74 78 74 |1000000,. txt| 000ae260 5f 4d 45 58 54 45 4e 44 09 3d 20 20 30 78 30 32 |_MEXTEND.= 0x02| 000ae270 30 30 30 30 30 30 2c 0a 20 20 20 20 74 78 74 5f |000000,. txt_| 000ae280 4d 53 45 4c 4f 4c 44 09 3d 20 20 30 78 30 34 30 |MSELOLD.= 0x040| 000ae290 30 30 30 30 30 2c 0a 20 20 20 20 74 78 74 5f 4d |00000,. txt_M| 000ae2a0 45 58 54 4f 4c 44 09 3d 20 20 30 78 30 38 30 30 |EXTOLD.= 0x0800| 000ae2b0 30 30 30 30 2c 0a 20 20 20 20 74 78 74 5f 4d 45 |0000,. txt_ME| 000ae2c0 58 41 43 54 09 3d 20 20 30 78 31 30 30 30 30 30 |XACT.= 0x100000| 000ae2d0 30 30 2c 0a 20 20 20 20 74 78 74 5f 45 58 54 52 |00,. txt_EXTR| 000ae2e0 41 43 4f 44 45 09 3d 20 20 30 78 34 30 30 30 30 |ACODE.= 0x40000| 000ae2f0 30 30 30 2c 0a 20 20 20 20 74 78 74 5f 4d 4f 55 |000,. txt_MOU| 000ae300 53 45 43 4f 44 45 09 3d 20 7e 30 78 37 66 66 66 |SECODE.= ~0x7fff| 000ae310 66 66 66 66 0a 20 20 7d 0a 0a 41 20 6d 6f 75 73 |ffff. }..A mous| 000ae320 65 20 65 76 65 6e 74 20 70 72 6f 64 75 63 65 73 |e event produces| 000ae330 20 61 6e 20 65 76 65 6e 74 20 63 6f 64 65 20 77 | an event code w| 000ae340 69 74 68 20 62 69 74 20 33 31 20 73 65 74 20 61 |ith bit 31 set a| 000ae350 6e 64 20 62 69 74 73 20 32 34 2d 32 38 20 61 73 |nd bits 24-28 as| 000ae360 20 74 68 65 20 6d 6f 75 73 65 65 76 65 6e 74 66 | the mouseeventf| 000ae370 6c 61 67 73 20 76 61 6c 75 65 2e 00 44 41 54 41 |lags value..DATA| 000ae380 ef 00 00 00 74 78 74 5f 6d 6f 76 65 64 6f 74 0a |....txt_movedot.| 000ae390 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 74 |Syntax:.void txt| 000ae3a0 5f 6d 6f 76 65 64 6f 74 20 28 3c 74 78 74 3e 20 |_movedot (<txt> | 000ae3b0 74 2c 20 3c 74 78 74 5f 69 6e 64 65 78 3e 20 62 |t, <txt_index> b| 000ae3c0 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 |y);.Header:.<txt| 000ae3d0 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 |.h=>txt_h>..This| 000ae3e0 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 73 20 | function moves | 000ae3f0 74 68 65 20 22 64 6f 74 22 20 62 79 20 61 20 67 |the "dot" by a g| 000ae400 69 76 65 6e 20 64 69 73 74 61 6e 63 65 20 69 6e |iven distance in| 000ae410 20 74 68 65 20 61 72 72 61 79 2e 20 49 74 20 74 | the array. It t| 000ae420 68 65 20 72 65 73 75 6c 74 61 6e 74 20 70 6f 73 |he resultant pos| 000ae430 69 74 69 6f 6e 20 69 73 20 6f 75 74 73 69 64 65 |ition is outside| 000ae440 20 74 68 65 20 61 72 72 61 79 2c 20 69 74 20 69 | the array, it i| 000ae450 73 20 73 65 74 20 74 6f 20 74 68 65 20 62 65 67 |s set to the beg| 000ae460 69 6e 6e 69 6e 67 2f 65 6e 64 2e 00 44 41 54 41 |inning/end..DATA| 000ae470 a4 00 00 00 74 78 74 5f 6d 6f 76 65 64 6f 74 74 |....txt_movedott| 000ae480 6f 6d 61 72 6b 65 72 0a 53 79 6e 74 61 78 3a 09 |omarker.Syntax:.| 000ae490 76 6f 69 64 20 74 78 74 5f 6d 6f 76 65 64 6f 74 |void txt_movedot| 000ae4a0 74 6f 6d 61 72 6b 65 72 20 28 3c 74 78 74 3e 20 |tomarker (<txt> | 000ae4b0 74 2c 20 3c 74 78 74 5f 6d 61 72 6b 65 72 3e 20 |t, <txt_marker> | 000ae4c0 2a 6d 61 72 6b 29 3b 0a 48 65 61 64 65 72 3a 09 |*mark);.Header:.| 000ae4d0 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a |<txt.h=>txt_h>..| 000ae4e0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 6f |This function mo| 000ae4f0 76 65 73 20 74 68 65 20 22 64 6f 74 22 20 74 6f |ves the "dot" to| 000ae500 20 61 20 67 69 76 65 6e 20 6d 61 72 6b 65 72 2e | a given marker.| 000ae510 44 41 54 41 d6 00 00 00 74 78 74 5f 6d 6f 76 65 |DATA....txt_move| 000ae520 68 6f 72 69 7a 6f 6e 74 61 6c 0a 53 79 6e 74 61 |horizontal.Synta| 000ae530 78 3a 09 76 6f 69 64 20 74 78 74 5f 6d 6f 76 65 |x:.void txt_move| 000ae540 68 6f 72 69 7a 6f 6e 74 61 6c 20 28 3c 74 78 74 |horizontal (<txt| 000ae550 3e 20 74 2c 20 69 6e 74 20 62 79 29 3b 0a 48 65 |> t, int by);.He| 000ae560 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 |ader:.<txt.h=>tx| 000ae570 74 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |t_h>..This funct| 000ae580 69 6f 6e 20 6d 6f 76 65 73 20 74 68 65 20 22 64 |ion moves the "d| 000ae590 6f 74 22 20 62 79 20 61 20 73 70 65 63 69 66 69 |ot" by a specifi| 000ae5a0 65 64 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c |ed number of col| 000ae5b0 75 6d 6e 73 2c 20 6b 65 65 70 69 6e 67 20 74 68 |umns, keeping th| 000ae5c0 65 20 63 61 72 65 74 20 69 6e 20 74 68 65 20 73 |e caret in the s| 000ae5d0 61 6d 65 20 76 65 72 74 69 63 61 6c 20 70 6f 73 |ame vertical pos| 000ae5e0 69 74 69 6f 6e 2e 00 00 44 41 54 41 04 01 00 00 |ition...DATA....| 000ae5f0 74 78 74 5f 6d 6f 76 65 6d 61 72 6b 65 72 0a 53 |txt_movemarker.S| 000ae600 79 6e 74 61 78 3a 20 20 76 6f 69 64 20 74 78 74 |yntax: void txt| 000ae610 5f 6d 6f 76 65 6d 61 72 6b 65 72 20 28 3c 74 78 |_movemarker (<tx| 000ae620 74 3e 20 74 2c 0a 20 20 20 20 20 20 20 20 20 3c |t> t,. <| 000ae630 74 78 74 5f 6d 61 72 6b 65 72 3e 20 2a 6d 61 72 |txt_marker> *mar| 000ae640 6b 2c 20 3c 74 78 74 5f 69 6e 64 65 78 3e 20 74 |k, <txt_index> t| 000ae650 6f 29 3b 0a 48 65 61 64 65 72 3a 20 20 3c 74 78 |o);.Header: <tx| 000ae660 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 |t.h=>txt_h>..Thi| 000ae670 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 |s function chang| 000ae680 65 73 20 61 6e 20 65 78 69 73 69 74 69 6e 67 20 |es an exisiting | 000ae690 6d 61 72 6b 65 72 20 74 6f 0a 70 6f 69 6e 74 20 |marker to.point | 000ae6a0 74 6f 20 27 74 6f 27 2e 20 54 68 65 20 6d 61 72 |to 'to'. The mar| 000ae6b0 6b 65 72 20 6d 75 73 74 20 68 61 76 65 20 62 65 |ker must have be| 000ae6c0 65 6e 0a 69 6e 69 74 69 61 6c 69 73 65 64 20 74 |en.initialised t| 000ae6d0 6f 20 70 6f 69 6e 74 20 61 74 20 74 68 69 73 20 |o point at this | 000ae6e0 74 65 78 74 20 6f 62 6a 65 63 74 2e 44 41 54 41 |text object.DATA| 000ae6f0 29 01 00 00 74 78 74 5f 6d 6f 76 65 76 65 72 74 |)...txt_movevert| 000ae700 69 63 61 6c 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |ical.Syntax:.voi| 000ae710 64 20 74 78 74 5f 6d 6f 76 65 76 65 72 74 69 63 |d txt_movevertic| 000ae720 61 6c 20 28 3c 74 78 74 3e 20 74 2c 20 69 6e 74 |al (<txt> t, int| 000ae730 20 62 79 2c 20 69 6e 74 20 6d 6f 76 65 74 65 78 | by, int movetex| 000ae740 74 29 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e |t).Header:.<txt.| 000ae750 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 20 |h=>txt_h>..This | 000ae760 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 73 20 74 |function moves t| 000ae770 68 65 20 22 64 6f 74 22 20 62 79 20 61 20 73 70 |he "dot" by a sp| 000ae780 65 63 69 66 69 65 64 20 6e 75 6d 62 65 72 20 6f |ecified number o| 000ae790 66 20 74 65 78 74 20 6c 69 6e 65 73 2c 20 6b 65 |f text lines, ke| 000ae7a0 65 70 69 6e 67 20 74 68 65 20 63 61 72 65 74 20 |eping the caret | 000ae7b0 69 6e 20 74 68 65 20 73 61 6d 65 20 68 6f 72 69 |in the same hori| 000ae7c0 7a 6f 6e 74 61 6c 20 70 6f 73 69 74 69 6f 6e 2e |zontal position.| 000ae7d0 20 49 66 20 2f 6d 6f 76 65 74 65 78 74 2f 20 69 | If /movetext/ i| 000ae7e0 73 20 6e 6f 6e 2d 7a 65 72 6f 20 74 68 65 6e 20 |s non-zero then | 000ae7f0 74 68 65 20 74 65 78 74 20 6d 6f 76 65 73 20 72 |the text moves r| 000ae800 61 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 63 |ather than the c| 000ae810 61 72 65 74 2e 00 00 00 44 41 54 41 76 01 00 00 |aret....DATAv...| 000ae820 74 78 74 5f 6e 65 77 0a 53 79 6e 74 61 78 3a 09 |txt_new.Syntax:.| 000ae830 09 3c 74 78 74 3e 20 74 78 74 5f 6e 65 77 20 28 |.<txt> txt_new (| 000ae840 63 68 61 72 20 2a 74 69 74 6c 65 29 3b 0a 48 65 |char *title);.He| 000ae850 61 64 65 72 3a 09 09 3c 74 78 74 2e 68 3d 3e 74 |ader:..<txt.h=>t| 000ae860 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |xt_h>..Returns:.| 000ae870 50 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 6e |Pointer to the n| 000ae880 65 77 6c 79 20 63 72 65 61 74 65 64 20 74 65 78 |ewly created tex| 000ae890 74 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |t...This functio| 000ae8a0 6e 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 |n creates a new | 000ae8b0 74 65 78 74 20 6f 62 6a 65 63 74 2c 20 63 6f 6e |text object, con| 000ae8c0 74 61 69 6e 69 6e 67 20 6e 6f 20 63 68 61 72 61 |taining no chara| 000ae8d0 63 74 65 72 73 2c 20 77 69 74 68 20 61 20 67 69 |cters, with a gi| 000ae8e0 76 65 6e 20 74 69 74 6c 65 20 28 74 6f 20 61 70 |ven title (to ap| 000ae8f0 70 65 61 72 20 69 6e 20 69 74 73 20 77 69 6e 64 |pear in its wind| 000ae900 6f 77 29 2e 20 54 68 69 73 20 66 75 6e 63 74 69 |ow). This functi| 000ae910 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 72 65 73 75 |on does not resu| 000ae920 6c 74 20 69 6e 20 74 68 65 20 74 65 78 74 20 62 |lt in the text b| 000ae930 65 69 6e 67 20 64 69 73 70 6c 61 79 65 64 20 6f |eing displayed o| 000ae940 6e 20 74 68 65 20 73 63 72 65 65 6e 2e 20 30 20 |n the screen. 0 | 000ae950 69 73 20 72 65 74 75 72 6e 65 64 20 69 66 20 74 |is returned if t| 000ae960 68 65 72 65 20 69 73 20 6e 6f 74 20 65 6e 6f 75 |here is not enou| 000ae970 67 68 20 73 70 61 63 65 20 74 6f 20 63 72 65 61 |gh space to crea| 000ae980 74 65 20 74 68 65 20 6f 62 6a 65 63 74 2e 00 00 |te the object...| 000ae990 44 41 54 41 d4 00 00 00 74 78 74 5f 6e 65 77 6d |DATA....txt_newm| 000ae9a0 61 72 6b 65 72 0a 53 79 6e 74 61 78 3a 09 76 6f |arker.Syntax:.vo| 000ae9b0 69 64 20 74 78 74 5f 6e 65 77 6d 61 72 6b 65 72 |id txt_newmarker| 000ae9c0 20 28 3c 74 78 74 3e 20 74 2c 20 3c 74 78 74 5f | (<txt> t, <txt_| 000ae9d0 6d 61 72 6b 65 72 3e 20 2a 6d 61 72 6b 29 3b 0a |marker> *mark);.| 000ae9e0 48 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e |Header:.<txt.h=>| 000ae9f0 74 78 74 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e |txt_h>..This fun| 000aea00 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 73 65 |ction initialise| 000aea10 73 20 61 20 6e 65 77 20 6d 61 72 6b 65 72 2c 20 |s a new marker, | 000aea20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 6d |pointed to by /m| 000aea30 61 72 6b 2f 2e 20 49 74 20 69 73 20 73 65 74 20 |ark/. It is set | 000aea40 74 6f 20 62 65 20 61 74 20 74 68 65 20 63 75 72 |to be at the cur| 000aea50 72 65 6e 74 20 22 64 6f 74 22 20 70 6f 73 69 74 |rent "dot" posit| 000aea60 69 6f 6e 2e 44 41 54 41 b5 00 00 00 54 58 54 5f |ion.DATA....TXT_| 000aea70 4f 4e 4c 59 0a 54 68 69 73 20 6d 61 63 72 6f 20 |ONLY.This macro | 000aea80 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 |is defined in <T| 000aea90 69 6d 73 4c 69 62 3a 49 63 6f 6e 2e 68 3d 3e 49 |imsLib:Icon.h=>I| 000aeaa0 63 6f 6e 5f 54 4c 3e 2e 20 49 74 20 69 73 20 74 |con_TL>. It is t| 000aeab0 68 65 20 76 61 6c 75 65 20 74 68 65 20 72 65 74 |he value the ret| 000aeac0 75 72 6e 65 64 20 62 79 20 3c 49 43 4f 4e 5f 54 |urned by <ICON_T| 000aead0 59 50 45 3e 20 77 68 65 6e 20 74 68 65 20 69 63 |YPE> when the ic| 000aeae0 6f 6e 20 69 6e 20 71 75 65 73 74 69 6f 6e 20 69 |on in question i| 000aeaf0 73 20 61 20 27 74 65 78 74 20 6f 6e 6c 79 27 20 |s a 'text only' | 000aeb00 69 63 6f 6e 2e 20 49 74 20 69 73 20 64 65 66 69 |icon. It is defi| 000aeb10 6e 65 64 20 61 73 20 31 2e 00 00 00 44 41 54 41 |ned as 1....DATA| 000aeb20 c6 00 00 00 74 78 74 5f 71 75 65 75 65 0a 53 79 |....txt_queue.Sy| 000aeb30 6e 74 61 78 3a 09 69 6e 74 20 74 78 74 5f 71 75 |ntax:.int txt_qu| 000aeb40 65 75 65 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 |eue (<txt> t);.H| 000aeb50 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 |eader:.<txt.h=>t| 000aeb60 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |xt_h>..Returns:.| 000aeb70 4e 75 6d 62 65 72 20 6f 66 20 62 75 66 66 65 72 |Number of buffer| 000aeb80 65 64 20 65 76 65 6e 74 20 63 6f 64 65 73 2e 0a |ed event codes..| 000aeb90 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000aeba0 65 61 64 73 20 68 6f 77 20 6d 61 6e 79 20 65 76 |eads how many ev| 000aebb0 65 6e 74 20 63 6f 64 65 73 20 61 72 65 20 63 75 |ent codes are cu| 000aebc0 72 72 65 6e 74 6c 79 20 62 75 66 66 65 72 65 64 |rrently buffered| 000aebd0 20 66 6f 72 20 61 20 67 69 76 65 6e 20 74 65 78 | for a given tex| 000aebe0 74 2e 00 00 44 41 54 41 40 01 00 00 74 78 74 5f |t...DATA@...txt_| 000aebf0 72 65 61 64 65 76 65 6e 74 68 61 6e 64 6c 65 72 |readeventhandler| 000aec00 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 |.Syntax:.void tx| 000aec10 74 5f 72 65 61 64 65 76 65 6e 74 68 61 6e 64 6c |t_readeventhandl| 000aec20 65 72 20 28 3c 74 78 74 3e 20 74 2c 20 3c 74 78 |er (<txt> t, <tx| 000aec30 74 5f 65 76 65 6e 74 5f 70 72 6f 63 3e 20 2a 66 |t_event_proc> *f| 000aec40 75 6e 63 2c 20 76 6f 69 64 20 2a 2a 68 6e 64 29 |unc, void **hnd)| 000aec50 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 |;.Header:.<txt.h| 000aec60 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 20 66 |=>txt_h>..This f| 000aec70 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 |unction reads th| 000aec80 65 20 63 75 72 72 65 6e 74 6c 79 20 72 65 67 69 |e currently regi| 000aec90 73 74 65 72 65 64 20 65 76 65 6e 74 68 61 6e 64 |stered eventhand| 000aeca0 6c 65 72 20 66 75 6e 63 74 69 6f 6e 20 61 73 73 |ler function ass| 000aecb0 6f 63 69 61 74 65 64 20 77 69 74 68 20 61 20 67 |ociated with a g| 000aecc0 69 76 65 6e 20 74 65 78 74 2c 20 61 6e 64 20 72 |iven text, and r| 000aecd0 65 74 75 72 6e 73 20 62 6f 74 68 20 69 74 73 20 |eturns both its | 000aece0 70 6f 69 6e 74 65 72 20 61 6e 64 20 69 74 73 20 |pointer and its | 000aecf0 68 61 6e 64 6c 65 20 28 69 6e 20 7b 2f 7d 2a 66 |handle (in {/}*f| 000aed00 75 6e 63 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 2a 68 |unc{/} and {/}*h| 000aed10 6e 64 7b 2f 7d 20 72 65 73 70 65 63 74 69 76 65 |nd{/} respective| 000aed20 6c 79 29 2e 44 41 54 41 ed 00 00 00 74 78 74 5f |ly).DATA....txt_| 000aed30 72 65 70 6c 61 63 65 61 74 65 6e 64 0a 53 79 6e |replaceatend.Syn| 000aed40 74 61 78 3a 09 76 6f 69 64 20 74 78 74 5f 72 65 |tax:.void txt_re| 000aed50 70 6c 61 63 65 61 74 65 6e 64 20 28 3c 74 78 74 |placeatend (<txt| 000aed60 3e 20 74 2c 20 69 6e 74 20 6e 74 6f 64 65 6c 2c |> t, int ntodel,| 000aed70 20 63 68 61 72 20 2a 73 2c 20 69 6e 74 20 6e 74 | char *s, int nt| 000aed80 6f 69 6e 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c |oins);.Header:.<| 000aed90 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 |txt.h=>txt_h>..T| 000aeda0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c |his function del| 000aedb0 65 74 65 73 20 2f 6e 74 6f 64 65 6c 2f 20 63 68 |etes /ntodel/ ch| 000aedc0 61 72 61 63 74 65 72 73 20 66 72 6f 6d 0a 74 68 |aracters from.th| 000aedd0 65 20 65 6e 64 20 6f 66 20 74 68 65 20 61 72 72 |e end of the arr| 000aede0 61 79 20 61 6e 64 20 74 68 65 6e 20 69 6e 73 65 |ay and then inse| 000aedf0 72 74 73 20 2f 6e 74 6f 69 6e 73 2f 0a 63 68 61 |rts /ntoins/.cha| 000aee00 72 61 63 74 65 72 73 20 66 72 6f 6d 20 2f 73 2f |racters from /s/| 000aee10 2e 00 00 00 44 41 54 41 1e 01 00 00 74 78 74 5f |....DATA....txt_| 000aee20 72 65 70 6c 61 63 65 63 68 61 72 73 0a 53 79 6e |replacechars.Syn| 000aee30 74 61 78 3a 09 76 6f 69 64 20 74 78 74 5f 72 65 |tax:.void txt_re| 000aee40 70 6c 61 63 65 63 68 61 72 73 20 28 3c 74 78 74 |placechars (<txt| 000aee50 3e 20 74 2c 20 69 6e 74 20 6e 74 6f 64 65 6c 2c |> t, int ntodel,| 000aee60 20 63 68 61 72 20 2a 61 2c 20 69 6e 74 20 6e 74 | char *a, int nt| 000aee70 6f 69 6e 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c |oins);.Header:.<| 000aee80 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 |txt.h=>txt_h>..T| 000aee90 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 65 6c |his function del| 000aeea0 65 74 65 73 20 2f 6e 74 6f 64 65 6c 2f 20 63 68 |etes /ntodel/ ch| 000aeeb0 61 72 61 63 74 65 72 73 20 66 72 6f 6d 20 74 68 |aracters from th| 000aeec0 65 20 22 64 6f 74 22 20 6f 6e 77 61 72 64 73 2c |e "dot" onwards,| 000aeed0 20 61 6e 64 20 69 6e 73 65 72 74 73 20 2f 6e 74 | and inserts /nt| 000aeee0 6f 69 6e 73 2f 20 63 68 61 72 61 63 74 65 72 73 |oins/ characters| 000aeef0 20 61 74 20 74 68 65 20 73 61 6d 65 20 70 6f 69 | at the same poi| 000aef00 6e 74 2e 20 54 68 65 20 69 6e 73 65 72 74 65 64 |nt. The inserted| 000aef10 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 | characters are | 000aef20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 61 |pointed to by /a| 000aef30 2f 2e 00 00 44 41 54 41 d0 00 00 00 74 78 74 5f |/...DATA....txt_| 000aef40 73 65 6c 65 63 74 65 6e 64 0a 53 79 6e 74 61 78 |selectend.Syntax| 000aef50 3a 09 3c 74 78 74 5f 69 6e 64 65 78 3e 20 74 78 |:.<txt_index> tx| 000aef60 74 5f 73 65 6c 65 63 74 65 6e 64 20 28 3c 74 78 |t_selectend (<tx| 000aef70 74 3e 20 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c |t> t);.Header:.<| 000aef80 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 52 |txt.h=>txt_h>..R| 000aef90 65 74 75 72 6e 73 3a 09 49 6e 64 65 78 20 6f 66 |eturns:.Index of| 000aefa0 20 61 20 73 65 6c 65 63 74 69 6f 6e 20 65 6e 64 | a selection end| 000aefb0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000aefc0 20 67 69 76 65 73 20 74 68 65 20 69 6e 64 65 78 | gives the index| 000aefd0 20 69 6e 74 6f 20 74 68 65 20 61 72 72 61 79 20 | into the array | 000aefe0 6f 66 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 |of the end of th| 000aeff0 65 20 63 75 72 72 65 6e 74 20 73 65 6c 65 63 74 |e current select| 000af000 69 6f 6e 2e 44 41 54 41 c4 00 00 00 74 78 74 5f |ion.DATA....txt_| 000af010 73 65 6c 65 63 74 73 65 74 0a 53 79 6e 74 61 78 |selectset.Syntax| 000af020 3a 09 3c 42 4f 4f 4c 3e 20 74 78 74 5f 73 65 6c |:.<BOOL> txt_sel| 000af030 65 63 74 73 65 74 20 28 3c 74 78 74 3e 20 74 29 |ectset (<txt> t)| 000af040 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 |;.Header:.<txt.h| 000af050 3d 3e 74 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e |=>txt_h>..Return| 000af060 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 74 68 65 |s:.<TRUE> if the| 000af070 72 65 20 69 73 20 61 20 73 65 6c 65 63 74 69 6f |re is a selectio| 000af080 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |n...This functio| 000af090 6e 20 74 65 6c 6c 73 20 79 6f 75 20 77 68 65 74 |n tells you whet| 000af0a0 68 65 72 20 74 68 65 72 65 20 69 73 20 61 20 73 |her there is a s| 000af0b0 65 6c 65 63 74 69 6f 6e 20 6d 61 64 65 20 69 6e |election made in| 000af0c0 20 61 20 74 65 78 74 2e 44 41 54 41 d8 00 00 00 | a text.DATA....| 000af0d0 74 78 74 5f 73 65 6c 65 63 74 73 74 61 72 74 0a |txt_selectstart.| 000af0e0 53 79 6e 74 61 78 3a 09 3c 74 78 74 5f 69 6e 64 |Syntax:.<txt_ind| 000af0f0 65 78 3e 20 74 78 74 5f 73 65 6c 65 63 74 73 74 |ex> txt_selectst| 000af100 61 72 74 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 |art (<txt> t);.H| 000af110 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 |eader:.<txt.h=>t| 000af120 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |xt_h>..Returns:.| 000af130 49 6e 64 65 78 20 6f 66 20 61 20 73 65 6c 65 63 |Index of a selec| 000af140 74 69 6f 6e 20 73 74 61 72 74 2e 0a 0a 54 68 69 |tion start...Thi| 000af150 73 20 66 75 6e 63 74 69 6f 6e 20 67 69 76 65 73 |s function gives| 000af160 20 74 68 65 20 69 6e 64 65 78 20 69 6e 74 6f 20 | the index into | 000af170 74 68 65 20 61 72 72 61 79 20 6f 66 20 74 68 65 |the array of the| 000af180 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 63 75 | start of the cu| 000af190 72 72 65 6e 74 20 73 65 6c 65 63 74 69 6f 6e 2e |rrent selection.| 000af1a0 44 41 54 41 2e 01 00 00 74 78 74 5f 73 65 74 62 |DATA....txt_setb| 000af1b0 75 66 73 69 7a 65 0a 53 79 6e 74 61 78 3a 09 3c |ufsize.Syntax:.<| 000af1c0 42 4f 4f 4c 3e 20 74 78 74 5f 73 65 74 62 75 66 |BOOL> txt_setbuf| 000af1d0 73 69 7a 65 20 28 3c 74 78 74 3e 20 74 2c 20 69 |size (<txt> t, i| 000af1e0 6e 74 20 73 69 7a 65 29 3b 0a 48 65 61 64 65 72 |nt size);.Header| 000af1f0 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e |:.<txt.h=>txt_h>| 000af200 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 |..Returns:.<TRUE| 000af210 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e |> if successful.| 000af220 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000af230 61 6c 6c 6f 63 61 74 65 73 20 6d 6f 72 65 20 73 |allocates more s| 000af240 70 61 63 65 20 66 6f 72 20 74 68 65 20 74 65 78 |pace for the tex| 000af250 74 20 62 75 66 66 65 72 2e 20 49 74 20 69 6e 63 |t buffer. It inc| 000af260 72 65 61 73 65 73 20 74 68 65 20 62 75 66 66 65 |reases the buffe| 000af270 72 20 73 69 7a 65 2c 20 73 75 63 68 20 74 68 61 |r size, such tha| 000af280 74 20 61 74 20 6c 65 61 73 74 20 2f 73 69 7a 65 |t at least /size| 000af290 2f 20 63 68 61 72 61 63 74 65 72 73 20 63 61 6e |/ characters can| 000af2a0 20 62 65 20 73 74 6f 72 65 64 2c 20 62 65 66 6f | be stored, befo| 000af2b0 72 65 20 72 65 71 75 69 72 69 6e 67 20 6d 6f 72 |re requiring mor| 000af2c0 65 20 66 72 6f 6d 20 74 68 65 20 4f 53 2e 00 00 |e from the OS...| 000af2d0 44 41 54 41 f9 00 00 00 74 78 74 5f 73 65 74 63 |DATA....txt_setc| 000af2e0 68 61 72 6f 70 74 69 6f 6e 73 0a 53 79 6e 74 61 |haroptions.Synta| 000af2f0 78 3a 09 76 6f 69 64 20 74 78 74 5f 73 65 74 63 |x:.void txt_setc| 000af300 68 61 72 6f 70 74 69 6f 6e 73 20 28 3c 74 78 74 |haroptions (<txt| 000af310 3e 20 74 2c 20 3c 74 78 74 5f 63 68 61 72 6f 70 |> t, <txt_charop| 000af320 74 69 6f 6e 3e 20 6d 2c 20 74 78 74 5f 63 68 61 |tion> m, txt_cha| 000af330 72 6f 70 74 69 6f 6e 20 66 29 3b 0a 48 65 61 64 |roption f);.Head| 000af340 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f |er:.<txt.h=>txt_| 000af350 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |h>..This functio| 000af360 6e 20 73 65 74 73 20 74 68 65 20 63 75 72 72 65 |n sets the curre| 000af370 6e 74 20 6f 70 74 69 6f 6e 73 20 61 73 20 66 6f |nt options as fo| 000af380 6c 6c 6f 77 73 3a 0a 7b 77 72 61 70 20 6f 66 66 |llows:.{wrap off| 000af390 7d 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 63 |}.{fCode;align c| 000af3a0 65 6e 74 72 65 7d 43 75 72 72 65 6e 74 20 3d 20 |entre}Current = | 000af3b0 28 50 72 65 76 69 6f 75 73 20 26 20 7e 6d 29 20 |(Previous & ~m) | 000af3c0 7c 20 28 6d 20 26 20 66 29 00 00 00 44 41 54 41 || (m & f)...DATA| 000af3d0 e4 00 00 00 74 78 74 5f 73 65 74 64 69 73 70 6c |....txt_setdispl| 000af3e0 61 79 6f 6b 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |ayok.Syntax:.voi| 000af3f0 64 20 74 78 74 5f 73 65 74 64 69 73 70 6c 61 79 |d txt_setdisplay| 000af400 6f 6b 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 65 |ok (<txt> t);.He| 000af410 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 |ader:.<txt.h=>tx| 000af420 74 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |t_h>..This funct| 000af430 69 6f 6e 20 73 65 74 73 20 74 68 65 20 64 69 73 |ion sets the dis| 000af440 70 6c 61 79 20 66 6c 61 67 20 69 6e 20 63 68 61 |play flag in cha| 000af450 72 6f 70 74 69 6f 6e 73 20 66 6f 72 20 61 20 67 |roptions for a g| 000af460 69 76 65 6e 20 74 65 78 74 2e 20 59 6f 75 20 6d |iven text. You m| 000af470 61 79 20 68 61 76 65 20 75 6e 73 65 74 20 74 68 |ay have unset th| 000af480 65 20 64 69 73 70 6c 61 79 20 66 6c 61 67 20 64 |e display flag d| 000af490 75 72 69 6e 67 20 61 20 6c 6f 6e 67 20 75 70 64 |uring a long upd| 000af4a0 61 74 65 20 74 6f 20 74 68 65 20 74 65 78 74 2e |ate to the text.| 000af4b0 44 41 54 41 01 01 00 00 74 78 74 5f 73 65 74 64 |DATA....txt_setd| 000af4c0 6f 74 0a 53 79 6e 74 61 78 3a 20 20 76 6f 69 64 |ot.Syntax: void| 000af4d0 20 74 78 74 5f 73 65 74 64 6f 74 20 28 3c 74 78 | txt_setdot (<tx| 000af4e0 74 3e 20 74 2c 20 3c 74 78 74 5f 69 6e 64 65 78 |t> t, <txt_index| 000af4f0 3e 20 69 29 3b 0a 48 65 61 64 65 72 3a 20 20 3c |> i);.Header: <| 000af500 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 |txt.h=>txt_h>..T| 000af510 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 000af520 73 20 74 68 65 20 22 64 6f 74 22 20 61 74 20 61 |s the "dot" at a| 000af530 20 67 69 76 65 6e 20 69 6e 64 65 78 0a 69 6e 20 | given index.in | 000af540 74 68 65 20 61 72 72 61 79 20 6f 66 20 63 68 61 |the array of cha| 000af550 72 61 63 74 65 72 73 2e 20 49 66 20 27 69 27 20 |racters. If 'i' | 000af560 69 73 20 6f 75 74 73 69 64 65 0a 74 68 65 20 62 |is outside.the b| 000af570 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 61 72 72 |ounds of the arr| 000af580 61 79 20 69 74 20 69 73 20 73 65 74 20 74 6f 20 |ay it is set to | 000af590 74 68 65 0a 62 65 67 69 6e 6e 69 6e 67 2f 65 6e |the.beginning/en| 000af5a0 64 20 61 73 20 61 70 70 72 6f 70 72 69 61 74 65 |d as appropriate| 000af5b0 2e 00 00 00 44 41 54 41 d9 00 00 00 74 78 74 5f |....DATA....txt_| 000af5c0 73 65 74 6c 61 73 74 72 65 66 0a 53 79 6e 74 61 |setlastref.Synta| 000af5d0 78 3a 09 76 6f 69 64 20 74 78 74 5f 73 65 74 6c |x:.void txt_setl| 000af5e0 61 73 74 72 65 66 20 28 3c 74 78 74 3e 20 74 2c |astref (<txt> t,| 000af5f0 20 69 6e 74 20 78 29 3b 0a 48 65 61 64 65 72 3a | int x);.Header:| 000af600 09 3c 74 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a |.<txt.h=>txt_h>.| 000af610 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 |.This function s| 000af620 65 74 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 |ets the value of| 000af630 20 7b 2a 7d 6c 61 73 74 5f 72 65 66 7b 2a 7d 20 | {*}last_ref{*} | 000af640 74 6f 20 2f 78 2f 2e 20 41 20 73 75 62 73 65 71 |to /x/. A subseq| 000af650 75 65 6e 74 20 7b 2a 7d 4d 65 73 73 61 67 65 5f |uent {*}Message_| 000af660 44 61 74 61 53 61 76 65 64 7b 2a 7d 20 63 61 6e |DataSaved{*} can| 000af670 20 6d 61 72 6b 20 74 68 65 20 64 61 74 61 20 61 | mark the data a| 000af680 73 20 75 6e 6d 6f 64 69 66 69 65 64 2e 00 00 00 |s unmodified....| 000af690 44 41 54 41 16 01 00 00 74 78 74 5f 73 65 74 73 |DATA....txt_sets| 000af6a0 65 6c 65 63 74 0a 53 79 6e 74 61 78 3a 09 76 6f |elect.Syntax:.vo| 000af6b0 69 64 20 74 78 74 5f 73 65 74 73 65 6c 65 63 74 |id txt_setselect| 000af6c0 20 28 3c 74 78 74 3e 20 74 2c 20 3c 74 78 74 5f | (<txt> t, <txt_| 000af6d0 69 6e 64 65 78 3e 20 73 74 61 72 74 2c 20 74 78 |index> start, tx| 000af6e0 74 5f 69 6e 64 65 78 20 65 6e 64 29 3b 0a 48 65 |t_index end);.He| 000af6f0 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 |ader:.<txt.h=>tx| 000af700 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 49 |t_h>..Returns:.I| 000af710 6e 64 65 78 20 6f 66 20 61 20 73 65 6c 65 63 74 |ndex of a select| 000af720 69 6f 6e 20 65 6e 64 2e 0a 0a 54 68 69 73 20 66 |ion end...This f| 000af730 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 61 20 73 |unction sets a s| 000af740 65 6c 65 63 74 69 6f 6e 20 69 6e 20 61 20 67 69 |election in a gi| 000af750 76 65 6e 20 74 65 78 74 2c 20 66 72 6f 6d 20 2f |ven text, from /| 000af760 73 74 61 72 74 2f 20 74 6f 20 2f 65 6e 64 2f 2e |start/ to /end/.| 000af770 20 49 66 20 7b 2f 7d 73 74 61 72 74 3e 3d 65 6e | If {/}start>=en| 000af780 64 7b 2f 7d 20 74 68 65 6e 20 74 68 65 20 73 65 |d{/} then the se| 000af790 6c 65 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 |lection will be | 000af7a0 75 6e 73 65 74 2e 00 00 44 41 54 41 d8 00 00 00 |unset...DATA....| 000af7b0 74 78 74 5f 73 65 74 74 69 74 6c 65 0a 53 79 6e |txt_settitle.Syn| 000af7c0 74 61 78 3a 09 76 6f 69 64 20 74 78 74 5f 73 65 |tax:.void txt_se| 000af7d0 74 74 69 74 6c 65 20 28 3c 74 78 74 3e 20 74 2c |ttitle (<txt> t,| 000af7e0 20 63 68 61 72 20 2a 74 69 74 6c 65 29 3b 0a 48 | char *title);.H| 000af7f0 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 |eader:.<txt.h=>t| 000af800 78 74 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |xt_h>..This func| 000af810 74 69 6f 6e 20 63 68 61 6e 67 65 73 20 74 68 65 |tion changes the| 000af820 20 74 69 74 6c 65 20 6f 66 20 74 68 65 20 77 69 | title of the wi| 000af830 6e 64 6f 77 20 75 73 65 64 20 74 6f 20 64 69 73 |ndow used to dis| 000af840 70 6c 61 79 20 61 20 74 65 78 74 20 6f 62 6a 65 |play a text obje| 000af850 63 74 2e 20 4c 6f 6e 67 20 74 69 74 6c 65 73 20 |ct. Long titles | 000af860 6d 61 79 20 62 65 20 74 72 75 6e 63 61 74 65 64 |may be truncated| 000af870 20 77 68 65 6e 20 64 69 73 70 6c 61 79 65 64 2e | when displayed.| 000af880 44 41 54 41 c8 00 00 00 74 78 74 5f 73 68 6f 77 |DATA....txt_show| 000af890 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 |.Syntax:.void tx| 000af8a0 74 5f 73 68 6f 77 20 28 3c 74 78 74 3e 20 74 29 |t_show (<txt> t)| 000af8b0 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 |;.Header:.<txt.h| 000af8c0 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 69 73 20 66 |=>txt_h>..This f| 000af8d0 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 73 |unction displays| 000af8e0 20 61 20 67 69 76 65 6e 20 74 65 78 74 20 6f 62 | a given text ob| 000af8f0 6a 65 63 74 20 69 6e 20 61 20 66 72 65 65 20 73 |ject in a free s| 000af900 74 61 6e 64 69 6e 67 20 77 69 6e 64 6f 77 20 6f |tanding window o| 000af910 66 20 69 74 73 20 6f 77 6e 2e 20 2f 74 2f 20 73 |f its own. /t/ s| 000af920 68 6f 75 6c 64 20 68 61 76 65 20 62 65 65 6e 20 |hould have been | 000af930 63 72 65 61 74 65 64 20 75 73 69 6e 67 20 3c 74 |created using <t| 000af940 78 74 5f 6e 65 77 3e 2e 44 41 54 41 00 01 00 00 |xt_new>.DATA....| 000af950 74 78 74 5f 73 69 7a 65 0a 53 79 6e 74 61 78 3a |txt_size.Syntax:| 000af960 09 3c 74 78 74 5f 69 6e 64 65 78 3e 20 74 78 74 |.<txt_index> txt| 000af970 5f 73 69 7a 65 20 28 3c 74 78 74 3e 20 74 29 3b |_size (<txt> t);| 000af980 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d |.Header:.<txt.h=| 000af990 3e 74 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |>txt_h>..Returns| 000af9a0 3a 09 49 6e 64 65 78 20 69 6e 74 6f 20 74 68 65 |:.Index into the| 000af9b0 20 63 68 61 72 61 63 74 65 72 20 61 72 72 61 79 | character array| 000af9c0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000af9d0 20 72 65 74 75 72 6e 73 20 74 68 65 20 6d 61 78 | returns the max| 000af9e0 69 6d 75 6d 20 70 6f 73 69 74 69 6f 6e 20 6f 66 |imum position of| 000af9f0 20 74 68 65 20 22 64 6f 74 22 20 69 65 20 74 68 | the "dot" ie th| 000afa00 65 20 63 75 72 72 65 6e 74 20 65 64 69 74 69 6e |e current editin| 000afa10 67 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 |g position of th| 000afa20 65 20 74 65 78 74 2e 20 30 20 69 73 20 62 65 66 |e text. 0 is bef| 000afa30 6f 72 65 20 74 68 65 20 66 69 72 73 74 20 63 68 |ore the first ch| 000afa40 61 72 61 63 74 65 72 2e 44 41 54 41 c2 00 00 00 |aracter.DATA....| 000afa50 74 78 74 5f 73 79 73 68 61 6e 64 6c 65 0a 53 79 |txt_syshandle.Sy| 000afa60 6e 74 61 78 3a 09 69 6e 74 20 74 78 74 5f 73 79 |ntax:.int txt_sy| 000afa70 73 68 61 6e 64 6c 65 20 28 3c 74 78 74 3e 20 74 |shandle (<txt> t| 000afa80 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 78 74 2e |);.Header:.<txt.| 000afa90 68 3d 3e 74 78 74 5f 68 3e 0a 0a 52 65 74 75 72 |h=>txt_h>..Retur| 000afaa0 6e 73 3a 09 48 61 6e 64 6c 65 20 66 6f 72 20 74 |ns:.Handle for t| 000afab0 68 65 20 74 65 78 74 2e 0a 0a 54 68 69 73 20 66 |he text...This f| 000afac0 75 6e 63 74 69 6f 6e 20 6f 62 74 61 69 6e 73 20 |unction obtains | 000afad0 61 20 73 79 73 74 65 6d 2d 64 65 70 65 6e 64 65 |a system-depende| 000afae0 6e 74 20 68 61 6e 64 6c 65 20 6f 6e 20 74 68 65 |nt handle on the| 000afaf0 20 6f 62 6a 65 63 74 20 75 6e 64 65 72 6c 79 69 | object underlyi| 000afb00 6e 67 20 61 20 74 65 78 74 2e 00 00 44 41 54 41 |ng a text...DATA| 000afb10 b9 00 00 00 74 78 74 5f 75 6e 67 65 74 0a 53 79 |....txt_unget.Sy| 000afb20 6e 74 61 78 3a 09 76 6f 69 64 20 74 78 74 5f 75 |ntax:.void txt_u| 000afb30 6e 67 65 74 20 28 3c 74 78 74 3e 20 74 2c 20 3c |nget (<txt> t, <| 000afb40 74 78 74 5f 65 76 65 6e 74 63 6f 64 65 3e 20 63 |txt_eventcode> c| 000afb50 6f 64 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 74 |ode);.Header:.<t| 000afb60 78 74 2e 68 3d 3e 74 78 74 5f 68 3e 0a 0a 54 68 |xt.h=>txt_h>..Th| 000afb70 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 75 74 73 |is function puts| 000afb80 20 61 6e 20 65 76 65 6e 74 20 63 6f 64 65 20 62 | an event code b| 000afb90 61 63 6b 20 6f 6e 20 74 68 65 20 66 72 6f 6e 74 |ack on the front| 000afba0 20 6f 66 20 74 68 65 20 65 76 65 6e 74 20 71 75 | of the event qu| 000afbb0 65 75 65 20 66 6f 72 20 61 20 67 69 76 65 6e 20 |eue for a given | 000afbc0 74 65 78 74 2e 00 00 00 44 41 54 41 2a 01 00 00 |text....DATA*...| 000afbd0 74 78 74 5f 76 69 73 69 62 6c 65 63 6f 6c 63 6f |txt_visiblecolco| 000afbe0 75 6e 74 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 |unt.Syntax:.int | 000afbf0 74 78 74 5f 76 69 73 69 62 6c 65 63 6f 6c 63 6f |txt_visiblecolco| 000afc00 75 6e 74 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 |unt (<txt> t);.H| 000afc10 65 61 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 |eader:.<txt.h=>t| 000afc20 78 74 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |xt_h>..Returns:.| 000afc30 4e 75 6d 62 65 72 20 6f 66 20 76 69 73 69 62 6c |Number of visibl| 000afc40 65 20 63 6f 6c 75 6d 6e 73 2e 0a 0a 54 68 69 73 |e columns...This| 000afc50 20 66 75 6e 63 74 69 6f 6e 20 67 69 76 65 73 20 | function gives | 000afc60 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f |the number of co| 000afc70 6c 75 6d 6e 73 20 63 75 72 72 65 6e 74 6c 79 20 |lumns currently | 000afc80 76 69 73 69 62 6c 65 2e 20 49 66 20 61 20 66 69 |visible. If a fi| 000afc90 78 65 64 20 70 69 74 63 68 20 66 6f 6e 74 20 69 |xed pitch font i| 000afca0 73 20 69 6e 20 75 73 65 2c 20 74 68 65 6e 20 74 |s in use, then t| 000afcb0 68 69 73 20 61 63 74 75 61 6c 6c 79 20 72 65 74 |his actually ret| 000afcc0 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 |urns the number | 000afcd0 6f 66 20 63 6f 6c 75 6d 6e 73 2c 20 65 6c 73 65 |of columns, else| 000afce0 20 69 74 20 6d 61 6b 65 73 20 61 20 67 75 65 73 | it makes a gues| 000afcf0 73 21 00 00 44 41 54 41 0c 01 00 00 74 78 74 5f |s!..DATA....txt_| 000afd00 76 69 73 69 62 6c 65 6c 69 6e 65 63 6f 75 6e 74 |visiblelinecount| 000afd10 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 74 78 74 |.Syntax:.int txt| 000afd20 5f 76 69 73 69 62 6c 65 6c 69 6e 65 63 6f 75 6e |_visiblelinecoun| 000afd30 74 20 28 3c 74 78 74 3e 20 74 29 3b 0a 48 65 61 |t (<txt> t);.Hea| 000afd40 64 65 72 3a 09 3c 74 78 74 2e 68 3d 3e 74 78 74 |der:.<txt.h=>txt| 000afd50 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 4e 75 |_h>..Returns:.Nu| 000afd60 6d 62 65 72 20 6f 66 20 76 69 73 69 62 6c 65 20 |mber of visible | 000afd70 6c 69 6e 65 73 2e 0a 0a 54 68 69 73 20 66 75 6e |lines...This fun| 000afd80 63 74 69 6f 6e 20 67 69 76 65 73 20 74 68 65 20 |ction gives the | 000afd90 6e 75 6d 62 65 72 20 6f 66 20 6c 69 6e 65 73 20 |number of lines | 000afda0 76 69 73 69 62 6c 65 20 6f 72 20 70 61 72 74 69 |visible or parti| 000afdb0 61 6c 6c 79 20 76 69 73 69 62 6c 65 20 6f 6e 20 |ally visible on | 000afdc0 74 68 65 20 64 69 73 70 6c 61 79 2e 20 49 74 20 |the display. It | 000afdd0 74 61 6b 65 73 20 69 6e 74 6f 20 61 63 63 6f 75 |takes into accou| 000afde0 6e 74 20 74 68 65 20 77 69 6e 64 6f 77 20 73 69 |nt the window si| 000afdf0 7a 65 20 61 6e 64 20 66 6f 6e 74 20 65 74 63 2e |ze and font etc.| 000afe00 44 41 54 41 8c 00 00 00 74 79 70 64 61 74 2e 68 |DATA....typdat.h| 000afe10 0a 54 68 69 73 20 64 65 66 69 6e 65 73 20 6a 75 |.This defines ju| 000afe20 73 74 20 6f 6e 65 20 74 79 70 65 3a 20 2a 74 79 |st one type: *ty| 000afe30 70 64 61 74 2a 2e 20 49 74 20 69 73 20 61 20 6c |pdat*. It is a l| 000afe40 6f 61 64 2f 65 78 65 63 75 74 65 20 61 64 64 72 |oad/execute addr| 000afe50 65 73 73 20 70 61 69 72 20 61 73 20 66 6f 6c 6c |ess pair as foll| 000afe60 6f 77 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 |ows:.. \{. i| 000afe70 6e 74 20 65 78 3b 0a 20 20 20 20 69 6e 74 20 6c |nt ex;. int l| 000afe80 64 3b 0a 20 20 7d 0a 0a 57 6f 77 2e 44 41 54 41 |d;. }..Wow.DATA| 000afe90 c1 01 00 00 74 79 70 65 64 65 66 0a 49 6e 20 61 |....typedef.In a| 000afea0 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 62 |ddition to the b| 000afeb0 75 69 6c 74 20 69 6e 20 74 79 70 65 73 2c 20 79 |uilt in types, y| 000afec0 6f 75 20 63 61 6e 20 64 65 66 69 6e 65 20 79 6f |ou can define yo| 000afed0 75 72 20 6f 77 6e 20 77 69 74 68 20 2f 74 79 70 |ur own with /typ| 000afee0 65 64 65 66 2f 2e 20 53 69 6d 70 6c 79 20 70 72 |edef/. Simply pr| 000afef0 65 66 69 78 20 61 20 6e 6f 72 6d 61 6c 20 76 61 |efix a normal va| 000aff00 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 |riable declarati| 000aff10 6f 6e 20 77 69 74 68 20 2f 74 79 70 65 64 65 66 |on with /typedef| 000aff20 2f 20 61 6e 64 20 61 20 6e 65 77 20 74 79 70 65 |/ and a new type| 000aff30 20 69 73 20 64 65 66 69 6e 65 64 20 77 69 74 68 | is defined with| 000aff40 20 74 68 65 20 6e 61 6d 65 20 6e 6f 72 6d 61 6c | the name normal| 000aff50 6c 79 20 75 73 65 64 20 61 73 20 74 68 65 20 76 |ly used as the v| 000aff60 61 72 69 61 62 6c 65 20 6e 61 6d 65 2e 0a 0a 65 |ariable name...e| 000aff70 67 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e 20 |g..{fCode;align | 000aff80 63 65 6e 74 72 65 7d 74 79 70 65 64 65 66 20 69 |centre}typedef i| 000aff90 6e 74 20 62 6c 6f 63 6b 5b 36 5d 3b 7b 66 3b 61 |nt block[6];{f;a| 000affa0 6c 69 67 6e 7d 0a 0a 2f 62 6c 6f 63 6b 2f 20 69 |lign}../block/ i| 000affb0 73 20 6e 6f 77 20 61 20 6e 65 77 20 64 65 66 69 |s now a new defi| 000affc0 6e 65 64 20 61 73 20 61 6e 20 61 72 72 61 79 20 |ned as an array | 000affd0 6f 66 20 36 20 69 6e 74 65 67 65 72 73 2e 20 49 |of 6 integers. I| 000affe0 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 6e |t can be used an| 000afff0 79 74 69 6d 65 20 65 67 3a 0a 0a 7b 66 43 6f 64 |ytime eg:..{fCod| 000b0000 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 62 |e;align centre}b| 000b0010 6c 6f 63 6b 20 61 2c 62 2c 63 3b 7b 66 3b 61 6c |lock a,b,c;{f;al| 000b0020 69 67 6e 7d 0a 0a 44 65 63 6c 61 72 65 73 20 74 |ign}..Declares t| 000b0030 68 72 65 65 20 62 6c 6f 63 6b 73 20 2f 61 2f 2c |hree blocks /a/,| 000b0040 20 2f 62 2f 20 61 6e 64 20 2f 63 2f 2e 00 00 00 | /b/ and /c/....| 000b0050 44 49 52 24 2c 01 00 00 2c 01 00 00 7c 01 0b 00 |DIR$,...,...|...| 000b0060 46 fd ff ff 93 ef 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 000b0070 00 00 00 00 55 43 48 41 52 5f 00 00 94 02 0b 00 |....UCHAR_......| 000b0080 46 fd ff ff b8 ef 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 000b0090 00 00 00 00 55 49 4e 54 5f 00 00 00 90 03 0b 00 |....UINT_.......| 000b00a0 46 fd ff ff d8 ef 84 2f 28 00 00 00 13 01 00 00 |F....../(.......| 000b00b0 00 00 00 00 55 4c 4f 4e 47 5f 00 00 90 04 0b 00 |....ULONG_......| 000b00c0 46 ff ff ff ae 9b e5 22 ae 00 00 00 13 00 00 00 |F......"........| 000b00d0 00 00 00 00 75 6e 64 65 66 00 00 00 40 05 0b 00 |....undef...@...| 000b00e0 46 ff ff ff d0 cf c2 22 12 02 00 00 13 00 00 00 |F......"........| 000b00f0 00 00 00 00 75 6e 67 65 74 63 00 00 54 07 0b 00 |....ungetc..T...| 000b0100 46 ff ff ff a3 ea e3 22 af 01 00 00 13 00 00 00 |F......"........| 000b0110 00 00 00 00 75 6e 69 6f 6e 00 00 00 04 09 0b 00 |....union.......| 000b0120 46 ff ff ff af bc f1 24 3d 01 00 00 13 00 00 00 |F......$=.......| 000b0130 00 00 00 00 55 4e 55 53 45 44 00 00 44 0a 0b 00 |....UNUSED..D...| 000b0140 46 fd ff ff 46 f0 84 2f 28 00 00 00 13 01 00 00 |F...F../(.......| 000b0150 00 00 00 00 55 4e 55 53 45 44 5f 00 bc 0b 0b 00 |....UNUSED_.....| 000b0160 46 fd ff ff 6b f0 84 2f 28 00 00 00 13 01 00 00 |F...k../(.......| 000b0170 00 00 00 00 55 53 48 52 54 5f 00 00 44 49 52 24 |....USHRT_..DIR$| 000b0180 28 00 00 00 28 00 00 00 a4 01 0b 00 46 ff ff ff |(...(.......F...| 000b0190 62 eb bc 22 ef 00 00 00 13 00 00 00 00 00 00 00 |b.."............| 000b01a0 4d 41 58 00 44 41 54 41 ef 00 00 00 55 43 48 41 |MAX.DATA....UCHA| 000b01b0 52 5f 4d 41 58 0a 54 68 69 73 20 6d 61 63 72 6f |R_MAX.This macro| 000b01c0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000b01d0 6c 69 6d 69 74 73 2e 68 3e 20 61 6e 64 20 72 65 |limits.h> and re| 000b01e0 70 72 65 73 65 6e 74 73 20 74 68 65 20 6d 61 78 |presents the max| 000b01f0 69 6d 75 6d 20 76 61 6c 75 65 20 77 68 69 63 68 |imum value which| 000b0200 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 | can be stored i| 000b0210 6e 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 63 68 |n an unsigned ch| 000b0220 61 72 20 28 74 68 65 20 6d 69 6e 69 6d 75 6d 20 |ar (the minimum | 000b0230 76 61 6c 75 65 20 77 68 69 63 68 20 63 61 6e 20 |value which can | 000b0240 62 65 20 73 74 6f 72 65 64 20 69 6e 20 61 6e 20 |be stored in an | 000b0250 75 6e 73 69 67 6e 65 64 20 63 68 61 72 20 69 73 |unsigned char is| 000b0260 20 61 6c 77 61 79 73 20 30 29 2e 20 49 6e 20 45 | always 0). In E| 000b0270 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 |asy C it is defi| 000b0280 6e 65 64 20 61 73 20 30 78 66 66 55 20 28 32 35 |ned as 0xffU (25| 000b0290 35 29 2e 00 44 49 52 24 28 00 00 00 28 00 00 00 |5)..DIR$(...(...| 000b02a0 bc 02 0b 00 46 ff ff ff bd 0d bd 22 d2 00 00 00 |....F......"....| 000b02b0 13 00 00 00 00 00 00 00 4d 41 58 00 44 41 54 41 |........MAX.DATA| 000b02c0 d2 00 00 00 55 49 4e 54 5f 4d 41 58 0a 54 68 69 |....UINT_MAX.Thi| 000b02d0 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 000b02e0 65 64 20 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e |ed in <limits.h>| 000b02f0 20 61 6e 64 20 72 65 70 72 65 73 65 6e 74 73 20 | and represents | 000b0300 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 |the maximum valu| 000b0310 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 73 |e which can be s| 000b0320 74 6f 72 65 64 20 69 6e 20 61 6e 20 75 6e 73 69 |tored in an unsi| 000b0330 67 6e 65 64 20 69 6e 74 20 28 74 68 65 20 6d 69 |gned int (the mi| 000b0340 6e 69 6d 75 6d 20 76 61 6c 75 65 20 69 73 20 61 |nimum value is a| 000b0350 6c 77 61 79 73 20 30 29 2e 20 49 6e 20 45 61 73 |lways 0). In Eas| 000b0360 79 20 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 |y C it is define| 000b0370 64 20 61 73 20 30 78 66 66 66 66 66 66 66 66 55 |d as 0xffffffffU| 000b0380 20 28 34 32 39 34 39 36 37 32 39 35 29 2e 00 00 | (4294967295)...| 000b0390 44 49 52 24 28 00 00 00 28 00 00 00 b8 03 0b 00 |DIR$(...(.......| 000b03a0 46 ff ff ff d2 17 bd 22 d8 00 00 00 13 00 00 00 |F......"........| 000b03b0 00 00 00 00 4d 41 58 00 44 41 54 41 d8 00 00 00 |....MAX.DATA....| 000b03c0 55 4c 4f 4e 47 5f 4d 41 58 0a 54 68 69 73 20 6d |ULONG_MAX.This m| 000b03d0 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 |acro is defined | 000b03e0 69 6e 20 3c 6c 69 6d 69 74 73 2e 68 3e 20 61 6e |in <limits.h> an| 000b03f0 64 20 72 65 70 72 65 73 65 6e 74 73 20 74 68 65 |d represents the| 000b0400 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 77 | maximum value w| 000b0410 68 69 63 68 20 63 61 6e 20 62 65 20 73 74 6f 72 |hich can be stor| 000b0420 65 64 20 69 6e 20 61 6e 20 75 6e 73 69 67 6e 65 |ed in an unsigne| 000b0430 64 20 6c 6f 6e 67 20 69 6e 74 20 28 74 68 65 20 |d long int (the | 000b0440 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 69 73 |minimum value is| 000b0450 20 61 6c 77 61 79 73 20 30 29 2e 20 49 6e 20 45 | always 0). In E| 000b0460 61 73 79 20 43 20 69 74 20 69 73 20 64 65 66 69 |asy C it is defi| 000b0470 6e 65 64 20 61 73 20 30 78 66 66 66 66 66 66 66 |ned as 0xfffffff| 000b0480 66 55 20 28 34 32 39 34 39 36 37 32 39 35 29 2e |fU (4294967295).| 000b0490 44 41 54 41 ae 00 00 00 23 75 6e 64 65 66 0a 54 |DATA....#undef.T| 000b04a0 68 69 73 20 64 69 72 65 63 74 69 76 65 20 75 6e |his directive un| 000b04b0 64 65 66 69 6e 65 73 20 61 20 6d 61 63 72 6f 2e |defines a macro.| 000b04c0 20 41 6e 79 20 66 75 74 75 72 65 20 72 65 66 65 | Any future refe| 000b04d0 72 65 6e 63 65 73 20 74 6f 20 74 68 69 73 20 6d |rences to this m| 000b04e0 61 63 72 6f 20 77 69 6c 6c 20 74 68 72 6f 77 20 |acro will throw | 000b04f0 75 70 20 65 72 72 6f 72 73 20 28 65 78 63 65 70 |up errors (excep| 000b0500 74 20 6f 66 20 63 6f 75 72 73 65 20 3c 23 69 66 |t of course <#if| 000b0510 3d 3e 69 66 5f 3e 2c 20 3c 23 69 66 64 65 66 3d |=>if_>, <#ifdef=| 000b0520 3e 69 66 64 65 66 3e 20 61 6e 64 20 3c 23 69 66 |>ifdef> and <#if| 000b0530 6e 64 65 66 3d 3e 69 66 6e 64 65 66 3e 2e 00 00 |ndef=>ifndef>...| 000b0540 44 41 54 41 12 02 00 00 75 6e 67 65 74 63 0a 53 |DATA....ungetc.S| 000b0550 79 6e 74 61 78 3a 09 69 6e 74 20 75 6e 67 65 74 |yntax:.int unget| 000b0560 63 20 28 69 6e 74 20 63 2c 20 3c 46 49 4c 45 3e |c (int c, <FILE>| 000b0570 20 2a 73 74 72 65 61 6d 29 3b 0a 48 65 61 64 65 | *stream);.Heade| 000b0580 72 3a 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 |r:.<stdio.h=>std| 000b0590 69 6f 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 2f 63 |io>..Returns:./c| 000b05a0 2f 2c 20 6f 72 20 3c 45 4f 46 3e 20 69 66 20 74 |/, or <EOF> if t| 000b05b0 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f 72 |here is an error| 000b05c0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000b05d0 20 70 75 73 68 65 73 20 74 68 65 20 63 68 61 72 | pushes the char| 000b05e0 61 63 74 65 72 20 69 6e 20 2f 63 2f 20 62 61 63 |acter in /c/ bac| 000b05f0 6b 20 6f 6e 74 6f 20 74 68 65 20 69 6e 70 75 74 |k onto the input| 000b0600 20 73 74 72 65 61 6d 20 73 70 65 63 69 66 69 65 | stream specifie| 000b0610 64 2e 20 41 6e 79 20 73 75 62 73 65 71 75 65 6e |d. Any subsequen| 000b0620 74 20 72 65 61 64 20 6f 70 65 72 61 74 69 6f 6e |t read operation| 000b0630 73 20 6f 6e 20 74 68 61 74 20 73 74 72 65 61 6d |s on that stream| 000b0640 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 | will return the| 000b0650 20 63 68 61 72 61 63 74 65 72 73 20 70 75 73 68 | characters push| 000b0660 65 64 20 62 61 63 6b 20 28 69 6e 20 72 65 76 65 |ed back (in reve| 000b0670 72 73 65 20 6f 72 64 65 72 29 2e 20 49 66 20 79 |rse order). If y| 000b0680 6f 75 20 63 61 6c 6c 20 61 20 66 69 6c 65 20 70 |ou call a file p| 000b0690 6f 73 69 74 69 6f 6e 69 6e 67 20 66 75 6e 63 74 |ositioning funct| 000b06a0 69 6f 6e 20 28 3c 66 73 65 65 6b 3e 2c 20 3c 66 |ion (<fseek>, <f| 000b06b0 73 65 74 70 6f 73 3e 20 6f 72 20 3c 72 65 77 69 |setpos> or <rewi| 000b06c0 6e 64 3e 29 20 74 68 65 20 70 75 73 68 65 64 20 |nd>) the pushed | 000b06d0 62 61 63 6b 20 63 68 61 72 61 63 74 65 72 73 20 |back characters | 000b06e0 61 72 65 20 64 69 73 63 61 72 64 65 64 2e 20 59 |are discarded. Y| 000b06f0 6f 75 20 6d 75 73 74 6e 27 74 20 63 61 6c 6c 20 |ou mustn't call | 000b0700 2f 75 6e 67 65 74 63 2f 20 74 6f 6f 20 6d 61 6e |/ungetc/ too man| 000b0710 79 20 74 69 6d 65 73 20 69 6e 20 73 75 63 63 65 |y times in succe| 000b0720 73 73 69 6f 6e 20 6f 72 20 69 74 20 77 69 6c 6c |ssion or it will| 000b0730 20 66 61 69 6c 2e 0a 0a 4e 42 20 2f 63 2f 20 6d | fail...NB /c/ m| 000b0740 75 73 74 20 6e 6f 74 20 65 71 75 61 6c 20 45 4f |ust not equal EO| 000b0750 46 2e 00 00 44 41 54 41 af 01 00 00 75 6e 69 6f |F...DATA....unio| 000b0760 6e 0a 41 20 75 6e 69 6f 6e 20 69 73 20 73 69 6d |n.A union is sim| 000b0770 69 6c 61 72 20 74 6f 20 61 20 3c 73 74 72 75 63 |ilar to a <struc| 000b0780 74 75 72 65 3d 3e 73 74 72 75 63 74 3e 2e 20 49 |ture=>struct>. I| 000b0790 74 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |t is defined in | 000b07a0 74 68 65 20 73 61 6d 65 20 77 61 79 2c 20 62 75 |the same way, bu| 000b07b0 74 20 61 6c 6c 20 76 61 72 69 61 62 6c 65 73 20 |t all variables | 000b07c0 61 72 65 20 6d 61 70 70 65 64 20 69 6e 74 6f 20 |are mapped into | 000b07d0 74 68 65 20 73 61 6d 65 20 6d 65 6d 6f 72 79 20 |the same memory | 000b07e0 73 70 61 63 65 2e 20 54 68 69 73 20 6d 65 61 6e |space. This mean| 000b07f0 73 20 79 6f 75 20 63 61 6e 20 61 63 63 65 73 73 |s you can access| 000b0800 20 61 20 76 61 6c 75 65 20 69 6e 20 64 69 66 66 | a value in diff| 000b0810 65 72 65 6e 74 20 77 61 79 73 20 65 67 2e 0a 0a |erent ways eg...| 000b0820 20 20 75 6e 69 6f 6e 0a 20 20 5c 7b 0a 20 20 20 | union. \{. | 000b0830 20 69 6e 74 20 20 20 77 6f 72 64 20 3a 20 31 36 | int word : 16| 000b0840 3b 0a 20 20 20 20 63 68 61 72 20 20 62 79 74 65 |;. char byte| 000b0850 5b 32 5d 3b 0a 20 20 7d 20 6d 79 5f 75 6e 69 6f |[2];. } my_unio| 000b0860 6e 3b 0a 0a 54 68 69 73 20 64 65 63 6c 61 72 65 |n;..This declare| 000b0870 73 20 7b 2f 7d 6d 79 5f 75 6e 69 6f 6e 2e 77 6f |s {/}my_union.wo| 000b0880 72 64 7b 2f 7d 20 61 73 20 61 20 31 36 2d 62 69 |rd{/} as a 16-bi| 000b0890 74 20 69 6e 74 65 67 65 72 2e 20 54 68 65 20 74 |t integer. The t| 000b08a0 77 6f 20 94 38 2d 62 69 74 95 20 70 61 72 74 73 |wo .8-bit. parts| 000b08b0 20 63 61 6e 20 62 65 20 61 63 63 65 73 73 65 64 | can be accessed| 000b08c0 20 61 73 20 7b 2f 7d 6d 79 5f 75 6e 69 6f 6e 2e | as {/}my_union.| 000b08d0 62 79 74 65 5b 30 5d 7b 2f 7d 20 61 6e 64 20 7b |byte[0]{/} and {| 000b08e0 2f 7d 6d 79 5f 75 6e 69 6f 6e 2e 62 79 74 65 5b |/}my_union.byte[| 000b08f0 31 5d 7b 2f 7d 20 72 65 73 70 65 63 74 69 76 65 |1]{/} respective| 000b0900 6c 79 2e 00 44 41 54 41 3d 01 00 00 55 4e 55 53 |ly..DATA=...UNUS| 000b0910 45 44 0a 54 68 65 20 6d 61 63 72 6f 20 2a 55 4e |ED.The macro *UN| 000b0920 55 53 45 44 2a 20 69 73 20 64 65 66 69 6e 65 64 |USED* is defined| 000b0930 20 69 6e 20 3c 54 69 6d 73 4c 69 62 3a 43 6f 72 | in <TimsLib:Cor| 000b0940 65 2e 68 3d 3e 43 6f 72 65 5f 54 4c 3e 20 61 6e |e.h=>Core_TL> an| 000b0950 64 20 3c 44 65 73 6b 4c 69 62 3a 43 6f 72 65 2e |d <DeskLib:Core.| 000b0960 68 3d 3e 43 6f 72 65 3e 2e 20 49 74 20 69 73 20 |h=>Core>. It is | 000b0970 75 73 65 64 20 74 6f 20 61 76 6f 69 64 20 63 6f |used to avoid co| 000b0980 6d 70 69 6c 65 72 20 77 61 72 6e 69 6e 67 73 20 |mpiler warnings | 000b0990 77 68 65 6e 20 79 6f 75 20 64 6f 6e 27 74 20 61 |when you don't a| 000b09a0 63 74 75 61 6c 6c 79 20 75 73 65 20 6f 6e 65 20 |ctually use one | 000b09b0 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 |of the parameter| 000b09c0 73 20 70 61 73 73 65 64 20 74 6f 20 61 20 66 75 |s passed to a fu| 000b09d0 6e 63 74 69 6f 6e 2c 20 65 67 3a 0a 7b 77 72 61 |nction, eg:.{wra| 000b09e0 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 7d 3c 42 |p off}.{fCode}<B| 000b09f0 4f 4f 4c 3e 20 6d 6f 75 73 65 63 6c 69 63 6b 20 |OOL> mouseclick | 000b0a00 28 3c 65 76 65 6e 74 5f 70 6f 6c 6c 62 6c 6f 63 |(<event_pollbloc| 000b0a10 6b 3e 20 2a 65 2c 20 76 6f 69 64 20 2a 72 65 66 |k> *e, void *ref| 000b0a20 29 0a 5c 7b 0a 20 20 20 20 20 55 4e 55 53 45 44 |).\{. UNUSED| 000b0a30 28 72 65 66 29 3b 0a 20 20 20 20 20 2e 2e 2e 0a |(ref);. ....| 000b0a40 7d 00 00 00 44 49 52 24 28 00 00 00 28 00 00 00 |}...DIR$(...(...| 000b0a50 6c 0a 0b 00 46 ff ff ff 67 ae f1 24 4d 01 00 00 |l...F...g..$M...| 000b0a60 13 00 00 00 00 00 00 00 41 52 47 00 44 41 54 41 |........ARG.DATA| 000b0a70 4d 01 00 00 55 4e 55 53 45 44 5f 41 52 47 0a 54 |M...UNUSED_ARG.T| 000b0a80 68 65 20 6d 61 63 72 6f 20 7b 2a 7d 55 4e 55 53 |he macro {*}UNUS| 000b0a90 45 44 5f 41 52 47 7b 2a 7d 20 69 73 20 64 65 66 |ED_ARG{*} is def| 000b0aa0 69 6e 65 64 20 69 6e 20 3c 54 69 6d 73 4c 69 62 |ined in <TimsLib| 000b0ab0 3a 43 6f 72 65 2e 68 3d 3e 43 6f 72 65 5f 54 4c |:Core.h=>Core_TL| 000b0ac0 3e 20 61 6e 64 20 3c 44 65 73 6b 4c 69 62 3a 43 |> and <DeskLib:C| 000b0ad0 6f 72 65 2e 68 3d 3e 43 6f 72 65 3e 2e 20 49 74 |ore.h=>Core>. It| 000b0ae0 20 69 73 20 75 73 65 64 20 74 6f 20 61 76 6f 69 | is used to avoi| 000b0af0 64 20 63 6f 6d 70 69 6c 65 72 20 77 61 72 6e 69 |d compiler warni| 000b0b00 6e 67 73 20 77 68 65 6e 20 79 6f 75 20 64 6f 6e |ngs when you don| 000b0b10 27 74 20 61 63 74 75 61 6c 6c 79 20 75 73 65 20 |'t actually use | 000b0b20 6f 6e 65 20 6f 66 20 74 68 65 20 70 61 72 61 6d |one of the param| 000b0b30 65 74 65 72 73 20 70 61 73 73 65 64 20 74 6f 20 |eters passed to | 000b0b40 61 20 66 75 6e 63 74 69 6f 6e 2c 20 65 67 3a 0a |a function, eg:.| 000b0b50 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 |{wrap off}.{fCod| 000b0b60 65 7d 3c 42 4f 4f 4c 3e 20 6d 6f 75 73 65 63 6c |e}<BOOL> mousecl| 000b0b70 69 63 6b 20 28 3c 65 76 65 6e 74 5f 70 6f 6c 6c |ick (<event_poll| 000b0b80 62 6c 6f 63 6b 3e 20 2a 65 2c 20 76 6f 69 64 20 |block> *e, void | 000b0b90 2a 72 65 66 29 0a 5c 7b 0a 20 20 20 20 20 55 4e |*ref).\{. UN| 000b0ba0 55 53 45 44 5f 41 52 47 28 72 65 66 29 3b 0a 20 |USED_ARG(ref);. | 000b0bb0 20 20 20 20 2e 2e 2e 0a 7d 00 00 00 44 49 52 24 | ....}...DIR$| 000b0bc0 28 00 00 00 28 00 00 00 e4 0b 0b 00 46 ff ff ff |(...(.......F...| 000b0bd0 13 04 bd 22 d9 00 00 00 13 00 00 00 00 00 00 00 |..."............| 000b0be0 4d 41 58 00 44 41 54 41 d9 00 00 00 55 53 48 52 |MAX.DATA....USHR| 000b0bf0 54 5f 4d 41 58 0a 54 68 69 73 20 6d 61 63 72 6f |T_MAX.This macro| 000b0c00 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000b0c10 6c 69 6d 69 74 73 2e 68 3e 20 61 6e 64 20 72 65 |limits.h> and re| 000b0c20 70 72 65 73 65 6e 74 73 20 74 68 65 20 6d 61 78 |presents the max| 000b0c30 69 6d 75 6d 20 76 61 6c 75 65 20 77 68 69 63 68 |imum value which| 000b0c40 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64 20 69 | can be stored i| 000b0c50 6e 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 73 68 |n an unsigned sh| 000b0c60 6f 72 74 20 69 6e 74 20 28 74 68 65 20 6d 69 6e |ort int (the min| 000b0c70 69 6d 75 6d 20 76 61 6c 75 65 20 69 73 20 61 6c |imum value is al| 000b0c80 77 61 79 73 20 30 29 2e 20 49 6e 20 45 61 73 79 |ways 0). In Easy| 000b0c90 20 43 20 69 74 20 69 73 20 64 65 66 69 6e 65 64 | C it is defined| 000b0ca0 20 61 73 20 30 78 66 66 66 66 66 66 66 66 55 20 | as 0xffffffffU | 000b0cb0 28 34 32 39 34 39 36 37 32 39 35 29 2e 00 00 00 |(4294967295)....| 000b0cc0 44 49 52 24 80 01 00 00 80 01 00 00 40 0e 0b 00 |DIR$........@...| 000b0cd0 46 ff ff ff 55 7b 54 26 5d 01 00 00 13 00 00 00 |F...U{T&].......| 000b0ce0 00 00 00 00 56 41 4c 49 44 00 00 00 a0 0f 0b 00 |....VALID.......| 000b0cf0 46 ff ff ff 19 1f 37 26 92 00 00 00 13 00 00 00 |F.....7&........| 000b0d00 00 00 00 00 56 61 6c 69 64 61 74 69 6f 6e 00 00 |....Validation..| 000b0d10 34 10 0b 00 46 fd ff ff d2 f0 84 2f 30 00 00 00 |4...F....../0...| 000b0d20 13 01 00 00 00 00 00 00 56 61 6c 69 64 61 74 69 |........Validati| 000b0d30 6f 6e 5f 00 ec 11 0b 00 46 fd ff ff f6 f0 84 2f |on_.....F....../| 000b0d40 84 00 00 00 13 01 00 00 00 00 00 00 76 61 5f 00 |............va_.| 000b0d50 60 17 0b 00 46 ff ff ff 81 57 54 26 74 01 00 00 |`...F....WT&t...| 000b0d60 13 00 00 00 00 00 00 00 56 45 52 49 46 59 00 00 |........VERIFY..| 000b0d70 d4 18 0b 00 46 fd ff ff 64 f1 84 2f 2c 00 00 00 |....F...d../,...| 000b0d80 13 01 00 00 00 00 00 00 56 45 52 49 46 59 5f 00 |........VERIFY_.| 000b0d90 4c 1a 0b 00 46 ff ff ff 15 17 c4 22 4b 01 00 00 |L...F......"K...| 000b0da0 13 00 00 00 00 00 00 00 76 66 70 72 69 6e 74 66 |........vfprintf| 000b0db0 00 00 00 00 98 1b 0b 00 46 ff ff ff 8e 3c e6 24 |........F....<.$| 000b0dc0 c5 00 00 00 13 00 00 00 00 00 00 00 76 69 73 64 |............visd| 000b0dd0 65 6c 61 79 00 00 00 00 60 1c 0b 00 46 fd ff ff |elay....`...F...| 000b0de0 b5 f1 84 2f 88 00 00 00 13 01 00 00 00 00 00 00 |.../............| 000b0df0 76 69 73 64 65 6c 61 79 5f 00 00 00 d0 20 0b 00 |visdelay_.... ..| 000b0e00 46 ff ff ff cf 1d c4 22 38 01 00 00 13 00 00 00 |F......"8.......| 000b0e10 00 00 00 00 76 70 72 69 6e 74 66 00 08 22 0b 00 |....vprintf.."..| 000b0e20 46 ff ff ff 8f 24 c4 22 46 01 00 00 13 00 00 00 |F....$."F.......| 000b0e30 00 00 00 00 76 73 70 72 69 6e 74 66 00 00 00 00 |....vsprintf....| 000b0e40 44 41 54 41 5d 01 00 00 56 41 4c 49 44 0a 53 79 |DATA]...VALID.Sy| 000b0e50 6e 74 61 78 3a 09 42 4f 4f 4c 20 56 41 4c 49 44 |ntax:.BOOL VALID| 000b0e60 20 28 76 6f 69 64 20 2a 70 6f 69 6e 74 65 72 29 | (void *pointer)| 000b0e70 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 000b0e80 69 62 3a 43 68 65 63 6b 2e 68 3d 3e 43 68 65 63 |ib:Check.h=>Chec| 000b0e90 6b 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 |k>..Returns:.<TR| 000b0ea0 55 45 3e 20 69 66 20 74 68 65 20 70 6f 69 6e 74 |UE> if the point| 000b0eb0 65 72 20 69 73 20 76 61 6c 69 64 2e 0a 0a 2f 70 |er is valid.../p| 000b0ec0 6f 69 6e 74 65 72 2f 20 69 73 20 63 68 65 63 6b |ointer/ is check| 000b0ed0 65 64 20 61 6e 64 20 69 66 20 69 74 20 69 73 20 |ed and if it is | 000b0ee0 6e 6f 74 20 76 61 6c 69 64 20 28 69 65 20 6d 65 |not valid (ie me| 000b0ef0 6d 6f 72 79 20 63 61 6e 20 6e 6f 74 20 62 65 20 |mory can not be | 000b0f00 72 65 61 64 2f 77 72 69 74 74 65 6e 20 61 74 20 |read/written at | 000b0f10 74 68 69 73 20 6c 6f 63 61 74 69 6f 6e 29 20 74 |this location) t| 000b0f20 68 65 6e 20 3c 46 41 4c 53 45 3e 20 69 73 20 72 |hen <FALSE> is r| 000b0f30 65 74 75 72 6e 65 64 2e 20 49 66 20 7b 2a 7d 5f |eturned. If {*}_| 000b0f40 44 45 42 55 47 7b 2a 7d 20 69 73 20 64 65 66 69 |DEBUG{*} is defi| 000b0f50 6e 65 64 20 74 68 65 6e 20 74 68 65 20 3c 54 72 |ned then the <Tr| 000b0f60 61 63 65 3d 3e 54 72 61 63 65 5f 54 4c 3e 20 6d |ace=>Trace_TL> m| 000b0f70 6f 64 75 6c 65 20 69 73 20 75 73 65 64 20 74 6f |odule is used to| 000b0f80 20 70 72 6f 64 75 63 65 20 68 65 6c 70 66 75 6c | produce helpful| 000b0f90 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 00 00 00 | information....| 000b0fa0 44 41 54 41 92 00 00 00 44 65 73 6b 4c 69 62 3a |DATA....DeskLib:| 000b0fb0 56 61 6c 69 64 61 74 69 6f 6e 2e 68 0a 56 65 72 |Validation.h.Ver| 000b0fc0 73 69 6f 6e 3a 20 31 2e 30 30 20 28 32 32 20 4d |sion: 1.00 (22 M| 000b0fd0 61 72 20 31 39 39 32 29 0a 23 6c 69 6e 65 0a 54 |ar 1992).#line.T| 000b0fe0 68 69 73 20 68 65 61 64 65 72 20 66 69 6c 65 20 |his header file | 000b0ff0 64 65 63 6c 61 72 65 73 20 6a 75 73 74 20 6f 6e |declares just on| 000b1000 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a 7b 61 6c |e function:..{al| 000b1010 69 67 6e 20 63 65 6e 74 72 65 7d 3c 56 61 6c 69 |ign centre}<Vali| 000b1020 64 61 74 69 6f 6e 5f 53 63 61 6e 53 74 72 69 6e |dation_ScanStrin| 000b1030 67 3e 00 00 44 49 52 24 30 00 00 00 30 00 00 00 |g>..DIR$0...0...| 000b1040 64 10 0b 00 46 ff ff ff 3c 26 37 26 85 01 00 00 |d...F...<&7&....| 000b1050 13 00 00 00 00 00 00 00 53 63 61 6e 53 74 72 69 |........ScanStri| 000b1060 6e 67 00 00 44 41 54 41 85 01 00 00 56 61 6c 69 |ng..DATA....Vali| 000b1070 64 61 74 69 6f 6e 5f 53 63 61 6e 53 74 72 69 6e |dation_ScanStrin| 000b1080 67 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 56 61 |g.Syntax:.int Va| 000b1090 6c 69 64 61 74 69 6f 6e 5f 53 63 61 6e 53 74 72 |lidation_ScanStr| 000b10a0 69 6e 67 20 28 63 68 61 72 20 2a 73 74 72 69 6e |ing (char *strin| 000b10b0 67 2c 20 63 68 61 72 20 74 61 67 29 3b 0a 48 65 |g, char tag);.He| 000b10c0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 56 |ader:.<DeskLib:V| 000b10d0 61 6c 69 64 61 74 69 6f 6e 2e 68 3d 3e 56 61 6c |alidation.h=>Val| 000b10e0 69 64 61 74 69 6f 6e 3e 0a 0a 52 65 74 75 72 6e |idation>..Return| 000b10f0 73 3a 09 4f 66 66 73 65 74 20 77 69 74 68 69 6e |s:.Offset within| 000b1100 20 73 74 72 69 6e 67 2c 20 30 20 69 66 20 6e 6f | string, 0 if no| 000b1110 74 20 66 6f 75 6e 64 2e 0a 0a 54 68 69 73 20 66 |t found...This f| 000b1120 75 6e 63 74 69 6f 6e 20 73 63 61 6e 73 20 74 68 |unction scans th| 000b1130 65 20 73 74 72 69 6e 67 20 66 6f 72 20 74 68 65 |e string for the| 000b1140 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 2f 74 | character in /t| 000b1150 61 67 2f 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 |ag/, and returns| 000b1160 20 74 68 65 20 6f 66 66 73 65 74 20 6f 66 20 74 | the offset of t| 000b1170 68 65 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 |he next characte| 000b1180 72 2e 20 54 68 65 20 74 61 67 20 63 68 61 72 61 |r. The tag chara| 000b1190 63 74 65 72 20 6d 75 73 74 20 62 65 20 65 69 74 |cter must be eit| 000b11a0 68 65 72 20 74 68 65 20 66 69 72 73 74 20 63 68 |her the first ch| 000b11b0 61 72 61 63 74 65 72 20 69 6e 20 74 68 65 20 73 |aracter in the s| 000b11c0 74 72 69 6e 67 2c 20 6f 72 20 69 6d 6d 65 64 69 |tring, or immedi| 000b11d0 61 74 65 6c 79 20 66 6f 6c 6c 6f 77 20 61 20 73 |ately follow a s| 000b11e0 65 6d 69 63 6f 6c 6f 6e 2e 00 00 00 44 49 52 24 |emicolon....DIR$| 000b11f0 84 00 00 00 84 00 00 00 70 12 0b 00 46 ff ff ff |........p...F...| 000b1200 e8 97 bf 22 87 01 00 00 13 00 00 00 00 00 00 00 |..."............| 000b1210 61 72 67 00 f8 13 0b 00 46 ff ff ff a7 a1 bf 22 |arg.....F......"| 000b1220 ea 00 00 00 13 00 00 00 00 00 00 00 65 6e 64 00 |............end.| 000b1230 e4 14 0b 00 46 ff ff ff 74 b9 bf 22 9d 01 00 00 |....F...t.."....| 000b1240 13 00 00 00 00 00 00 00 73 74 61 72 74 00 00 00 |........start...| 000b1250 84 16 0b 00 46 ff ff ff 2b 36 c0 22 da 00 00 00 |....F...+6."....| 000b1260 13 00 00 00 00 00 00 00 6c 69 73 74 00 00 00 00 |........list....| 000b1270 44 41 54 41 87 01 00 00 76 61 5f 61 72 67 0a 53 |DATA....va_arg.S| 000b1280 79 6e 74 61 78 3a 09 74 79 70 65 20 76 61 5f 61 |yntax:.type va_a| 000b1290 72 67 20 28 3c 76 61 5f 6c 69 73 74 3e 20 61 70 |rg (<va_list> ap| 000b12a0 2c 20 74 79 70 65 29 3b 0a 48 65 61 64 65 72 3a |, type);.Header:| 000b12b0 09 3c 73 74 64 61 72 67 2e 68 3d 3e 73 74 64 61 |.<stdarg.h=>stda| 000b12c0 72 67 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 |rg>..Returns:.Th| 000b12d0 65 20 61 72 67 75 6d 65 6e 74 20 66 65 74 63 68 |e argument fetch| 000b12e0 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ed...This functi| 000b12f0 6f 6e 20 28 77 68 69 63 68 20 69 73 20 61 63 74 |on (which is act| 000b1300 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 61 73 |ually defined as| 000b1310 20 61 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 | a function-like| 000b1320 20 6d 61 63 72 6f 29 2c 20 66 65 74 63 68 65 73 | macro), fetches| 000b1330 20 74 68 65 20 6e 65 78 74 20 61 72 67 75 6d 65 | the next argume| 000b1340 6e 74 20 66 72 6f 6d 20 74 68 65 20 76 61 72 69 |nt from the vari| 000b1350 61 62 6c 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 |able argument li| 000b1360 73 74 2e 20 2f 61 70 2f 20 69 73 20 74 68 65 20 |st. /ap/ is the | 000b1370 73 61 6d 65 20 61 73 20 69 74 20 77 61 73 20 66 |same as it was f| 000b1380 6f 72 20 74 68 65 20 3c 76 61 5f 73 74 61 72 74 |or the <va_start| 000b1390 3e 20 63 61 6c 6c 2e 20 2f 74 79 70 65 2f 20 69 |> call. /type/ i| 000b13a0 6e 64 69 63 61 74 65 73 20 74 68 65 20 65 78 70 |ndicates the exp| 000b13b0 65 63 74 65 64 20 74 79 70 65 20 6f 66 20 74 68 |ected type of th| 000b13c0 65 20 6e 65 78 74 20 61 72 67 75 6d 65 6e 74 2c |e next argument,| 000b13d0 20 61 6e 64 20 69 73 20 74 68 65 20 74 79 70 65 | and is the type| 000b13e0 20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 72 65 | of the value re| 000b13f0 74 75 72 6e 65 64 2e 00 44 41 54 41 ea 00 00 00 |turned..DATA....| 000b1400 76 61 5f 65 6e 64 0a 53 79 6e 74 61 78 3a 09 76 |va_end.Syntax:.v| 000b1410 6f 69 64 20 76 61 5f 65 6e 64 20 28 3c 76 61 5f |oid va_end (<va_| 000b1420 6c 69 73 74 3e 20 61 70 29 3b 0a 48 65 61 64 65 |list> ap);.Heade| 000b1430 72 3a 09 3c 73 74 64 61 72 67 2e 68 3d 3e 73 74 |r:.<stdarg.h=>st| 000b1440 64 61 72 67 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |darg>..This func| 000b1450 74 69 6f 6e 20 28 77 68 69 63 68 20 69 73 20 61 |tion (which is a| 000b1460 63 74 75 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 |ctually defined | 000b1470 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 |as a function-li| 000b1480 6b 65 20 6d 61 63 72 6f 29 2c 20 66 69 6e 69 73 |ke macro), finis| 000b1490 68 65 73 20 61 72 67 75 6d 65 6e 74 20 6c 69 6e |hes argument lin| 000b14a0 65 20 70 72 6f 63 65 73 73 69 6e 67 2e 20 2f 61 |e processing. /a| 000b14b0 70 2f 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 |p/ should be the| 000b14c0 20 73 61 6d 65 20 61 73 20 77 61 73 20 70 61 73 | same as was pas| 000b14d0 73 65 64 20 74 6f 20 3c 76 61 5f 73 74 61 72 74 |sed to <va_start| 000b14e0 3e 2e 00 00 44 41 54 41 9d 01 00 00 76 61 5f 73 |>...DATA....va_s| 000b14f0 74 61 72 74 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |tart.Syntax:.voi| 000b1500 64 20 76 61 5f 73 74 61 72 74 20 28 3c 76 61 5f |d va_start (<va_| 000b1510 6c 69 73 74 3e 20 61 70 2c 20 61 72 67 29 3b 0a |list> ap, arg);.| 000b1520 48 65 61 64 65 72 3a 09 3c 73 74 64 61 72 67 2e |Header:.<stdarg.| 000b1530 68 3d 3e 73 74 64 61 72 67 3e 0a 0a 54 68 69 73 |h=>stdarg>..This| 000b1540 20 66 75 6e 63 74 69 6f 6e 20 28 77 68 69 63 68 | function (which| 000b1550 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 65 66 | is actually def| 000b1560 69 6e 65 64 20 61 73 20 61 20 66 75 6e 63 74 69 |ined as a functi| 000b1570 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 29 2c 20 |on-like macro), | 000b1580 73 65 74 73 20 75 70 20 61 72 67 75 6d 65 6e 74 |sets up argument| 000b1590 20 6c 69 6e 65 20 70 72 6f 63 65 73 73 69 6e 67 | line processing| 000b15a0 2e 20 2f 61 70 2f 20 69 73 20 75 73 65 64 20 61 |. /ap/ is used a| 000b15b0 73 20 77 6f 72 6b 73 70 61 63 65 20 66 6f 72 20 |s workspace for | 000b15c0 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 |the function and| 000b15d0 20 73 75 62 73 65 71 75 65 6e 74 20 63 61 6c 6c | subsequent call| 000b15e0 73 2e 20 2f 61 72 67 2f 20 69 73 20 74 68 65 20 |s. /arg/ is the | 000b15f0 61 72 67 75 6d 65 6e 74 20 62 65 66 6f 72 65 20 |argument before | 000b1600 74 68 65 20 76 61 72 69 61 62 6c 65 20 61 72 67 |the variable arg| 000b1610 75 6d 65 6e 74 20 6c 69 73 74 2e 0a 0a 45 78 61 |ument list...Exa| 000b1620 6d 70 6c 65 3a 0a 0a 7b 66 43 6f 64 65 7d 69 6e |mple:..{fCode}in| 000b1630 74 20 70 72 69 6e 74 66 20 28 63 68 61 72 20 2a |t printf (char *| 000b1640 66 6f 72 6d 61 74 2c 20 2e 2e 2e 29 0a 5c 7b 0a |format, ...).\{.| 000b1650 76 61 5f 6c 69 73 74 20 61 70 3b 0a 20 20 20 20 |va_list ap;. | 000b1660 76 61 5f 73 74 61 72 74 28 61 70 2c 66 6f 72 6d |va_start(ap,form| 000b1670 61 74 29 3b 0a 20 20 20 20 2e 2e 2e 0a 7d 7b 66 |at);. ....}{f| 000b1680 7d 00 00 00 44 41 54 41 da 00 00 00 76 61 5f 6c |}...DATA....va_l| 000b1690 69 73 74 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ist.This type is| 000b16a0 20 64 65 9e 6e 65 64 20 69 6e 20 3c 73 74 64 61 | de.ned in <stda| 000b16b0 72 67 2e 68 3d 3e 73 74 64 61 72 67 3e 20 61 6e |rg.h=>stdarg> an| 000b16c0 64 20 69 73 20 75 73 65 64 20 74 6f 20 61 6c 6c |d is used to all| 000b16d0 6f 77 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 |ow the compiler | 000b16e0 74 6f 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 |to keep track of| 000b16f0 20 77 68 65 72 65 20 69 74 20 69 73 20 69 6e 20 | where it is in | 000b1700 76 61 72 69 61 62 6c 65 20 61 72 67 75 6d 65 6e |variable argumen| 000b1710 74 20 6c 69 73 74 73 2e 20 49 6e 20 45 61 73 79 |t lists. In Easy| 000b1720 20 43 20 69 74 20 69 73 20 64 65 9e 6e 65 64 3a | C it is de.ned:| 000b1730 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 3b 66 |.{align centre;f| 000b1740 43 6f 64 65 7d 74 79 70 65 64 65 66 20 63 68 61 |Code}typedef cha| 000b1750 72 20 2a 76 61 5f 6c 69 73 74 5b 31 5d 3b 00 00 |r *va_list[1];..| 000b1760 44 41 54 41 74 01 00 00 56 45 52 49 46 59 0a 53 |DATAt...VERIFY.S| 000b1770 79 6e 74 61 78 3a 09 56 45 52 49 46 59 20 28 3c |yntax:.VERIFY (<| 000b1780 42 4f 4f 4c 3e 20 65 78 70 72 29 3b 0a 48 65 61 |BOOL> expr);.Hea| 000b1790 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 |der:.<TimsLib:Ch| 000b17a0 65 63 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 49 |eck.h=>Check>..I| 000b17b0 66 20 74 68 65 20 6d 61 63 72 6f 20 7b 2a 7d 5f |f the macro {*}_| 000b17c0 44 45 42 55 47 7b 2a 7d 20 69 73 20 6e 6f 74 20 |DEBUG{*} is not | 000b17d0 64 65 66 69 6e 65 64 2c 20 2f 65 78 70 72 2f 20 |defined, /expr/ | 000b17e0 69 73 20 65 76 61 6c 75 61 74 65 64 20 62 75 74 |is evaluated but| 000b17f0 20 6e 6f 20 66 75 72 74 68 65 72 20 61 63 74 69 | no further acti| 000b1800 6f 6e 20 69 73 20 74 61 6b 65 6e 2e 20 4f 74 68 |on is taken. Oth| 000b1810 65 72 77 69 73 65 2c 20 2f 65 78 70 72 2f 20 69 |erwise, /expr/ i| 000b1820 73 20 65 76 61 6c 75 61 74 65 64 20 61 6e 64 20 |s evaluated and | 000b1830 69 66 20 69 74 20 69 73 20 3c 46 41 4c 53 45 3e |if it is <FALSE>| 000b1840 20 74 68 65 6e 20 61 6e 20 65 72 72 6f 72 20 62 | then an error b| 000b1850 6f 78 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 |ox is displayed | 000b1860 64 65 74 61 69 6c 69 6e 67 20 74 68 65 20 61 73 |detailing the as| 000b1870 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 2e |sertion failure.| 000b1880 0a 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c |..This is useful| 000b1890 20 69 66 20 2f 65 78 70 72 2f 20 63 6f 6e 74 61 | if /expr/ conta| 000b18a0 69 6e 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 |ins a function c| 000b18b0 61 6c 6c 20 77 68 69 63 68 20 6d 75 73 74 20 62 |all which must b| 000b18c0 65 20 6d 61 64 65 2c 20 66 6f 72 20 65 78 61 6d |e made, for exam| 000b18d0 70 6c 65 2e 44 49 52 24 2c 00 00 00 2c 00 00 00 |ple.DIR$,...,...| 000b18e0 00 19 0b 00 46 ff ff ff c9 66 54 26 4b 01 00 00 |....F....fT&K...| 000b18f0 13 00 00 00 00 00 00 00 56 41 4c 49 44 00 00 00 |........VALID...| 000b1900 44 41 54 41 4b 01 00 00 56 45 52 49 46 59 5f 56 |DATAK...VERIFY_V| 000b1910 41 4c 49 44 0a 53 79 6e 74 61 78 3a 09 56 45 52 |ALID.Syntax:.VER| 000b1920 49 46 59 5f 56 41 4c 49 44 20 28 76 6f 69 64 20 |IFY_VALID (void | 000b1930 2a 70 6f 69 6e 74 65 72 29 3b 0a 48 65 61 64 65 |*pointer);.Heade| 000b1940 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 43 68 65 63 |r:.<TimsLib:Chec| 000b1950 6b 2e 68 3d 3e 43 68 65 63 6b 3e 0a 0a 2f 70 6f |k.h=>Check>../po| 000b1960 69 6e 74 65 72 2f 20 69 73 20 63 68 65 63 6b 65 |inter/ is checke| 000b1970 64 20 61 6e 64 20 69 66 20 69 74 20 69 73 20 6e |d and if it is n| 000b1980 6f 74 20 76 61 6c 69 64 20 28 69 65 20 6d 65 6d |ot valid (ie mem| 000b1990 6f 72 79 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 |ory can not be r| 000b19a0 65 61 64 2f 77 72 69 74 74 65 6e 20 61 74 20 74 |ead/written at t| 000b19b0 68 69 73 20 6c 6f 63 61 74 69 6f 6e 29 20 74 68 |his location) th| 000b19c0 65 6e 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 |en an assertion | 000b19d0 66 61 69 6c 75 72 65 20 6f 63 63 75 72 73 2e 20 |failure occurs. | 000b19e0 49 66 20 74 68 65 20 6d 61 63 72 6f 20 7b 2a 7d |If the macro {*}| 000b19f0 5f 44 45 42 55 47 7b 2a 7d 20 69 73 20 6e 6f 74 |_DEBUG{*} is not| 000b1a00 20 64 65 66 69 6e 65 64 20 74 68 65 6e 20 77 6f | defined then wo| 000b1a10 72 64 69 6e 67 20 6d 6f 72 65 20 61 70 70 72 6f |rding more appro| 000b1a20 70 72 69 61 74 65 20 74 6f 20 61 20 70 75 62 6c |priate to a publ| 000b1a30 69 63 20 72 65 6c 65 61 73 65 20 76 65 72 73 69 |ic release versi| 000b1a40 6f 6e 20 69 73 20 75 73 65 64 2e 00 44 41 54 41 |on is used..DATA| 000b1a50 4b 01 00 00 76 66 70 72 69 6e 74 66 0a 53 79 6e |K...vfprintf.Syn| 000b1a60 74 61 78 3a 09 69 6e 74 20 76 66 70 72 69 6e 74 |tax:.int vfprint| 000b1a70 66 20 28 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 |f (<FILE> *strea| 000b1a80 6d 2c 20 63 68 61 72 20 2a 66 6f 72 6d 61 74 2c |m, char *format,| 000b1a90 20 3c 76 61 5f 6c 69 73 74 3e 20 61 72 67 73 29 | <va_list> args)| 000b1aa0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 69 6f |;.Header:.<stdio| 000b1ab0 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 74 75 |.h=>stdio>..Retu| 000b1ac0 72 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 72 20 |rns:.The number | 000b1ad0 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 6f 75 |of characters ou| 000b1ae0 74 70 75 74 2c 20 6f 72 20 61 20 6e 65 67 61 74 |tput, or a negat| 000b1af0 69 76 65 20 76 61 6c 75 65 20 69 66 20 74 68 65 |ive value if the| 000b1b00 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72 2e |re was an error.| 000b1b10 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000b1b20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 |is identical to | 000b1b30 3c 66 70 72 69 6e 74 66 3e 2c 20 62 75 74 20 74 |<fprintf>, but t| 000b1b40 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 |he arguments are| 000b1b50 20 72 65 70 6c 61 63 65 64 20 62 79 20 2f 61 72 | replaced by /ar| 000b1b60 67 73 2f 2c 20 77 68 69 63 68 20 73 68 6f 75 6c |gs/, which shoul| 000b1b70 64 20 68 61 76 65 20 62 65 65 6e 20 69 6e 69 74 |d have been init| 000b1b80 69 61 6c 69 73 65 64 20 62 79 20 3c 76 61 5f 73 |ialised by <va_s| 000b1b90 74 61 72 74 3e 2e 20 00 44 41 54 41 c5 00 00 00 |tart>. .DATA....| 000b1ba0 76 69 73 64 65 6c 61 79 2e 68 0a 54 68 65 20 5c |visdelay.h.The \| 000b1bb0 3c 76 69 73 64 65 6c 61 79 2e 68 3e 20 68 65 61 |<visdelay.h> hea| 000b1bc0 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e |der declares fun| 000b1bd0 63 74 69 6f 6e 73 20 66 6f 72 20 68 61 6e 64 6c |ctions for handl| 000b1be0 69 6e 67 20 74 68 65 20 3c 48 6f 75 72 67 6c 61 |ing the <Hourgla| 000b1bf0 73 73 3d 3e 53 57 49 3a 48 6f 75 72 67 6c 61 73 |ss=>SWI:Hourglas| 000b1c00 73 5f 3e 2e 0a 0a 23 54 61 62 6c 65 20 32 0a 3c |s_>...#Table 2.<| 000b1c10 76 69 73 64 65 6c 61 79 5f 62 65 67 69 6e 3e 0a |visdelay_begin>.| 000b1c20 3c 76 69 73 64 65 6c 61 79 5f 65 6e 64 3e 0a 3c |<visdelay_end>.<| 000b1c30 76 69 73 64 65 6c 61 79 5f 69 6e 69 74 3e 0a 3c |visdelay_init>.<| 000b1c40 76 69 73 64 65 6c 61 79 5f 70 65 72 63 65 6e 74 |visdelay_percent| 000b1c50 3e 20 20 0a 23 45 6e 64 54 61 62 6c 65 00 00 00 |> .#EndTable...| 000b1c60 44 49 52 24 88 00 00 00 88 00 00 00 e8 1c 0b 00 |DIR$............| 000b1c70 46 ff ff ff a4 42 e6 24 fe 00 00 00 13 00 00 00 |F....B.$........| 000b1c80 00 00 00 00 62 65 67 69 6e 00 00 00 e8 1d 0b 00 |....begin.......| 000b1c90 46 ff ff ff b6 46 e6 24 d5 00 00 00 13 00 00 00 |F....F.$........| 000b1ca0 00 00 00 00 65 6e 64 00 c0 1e 0b 00 46 ff ff ff |....end.....F...| 000b1cb0 e7 4a e6 24 04 01 00 00 13 00 00 00 00 00 00 00 |.J.$............| 000b1cc0 69 6e 69 74 00 00 00 00 c4 1f 0b 00 46 ff ff ff |init........F...| 000b1cd0 d6 51 e6 24 0c 01 00 00 13 00 00 00 00 00 00 00 |.Q.$............| 000b1ce0 70 65 72 63 65 6e 74 00 44 41 54 41 fe 00 00 00 |percent.DATA....| 000b1cf0 76 69 73 64 65 6c 61 79 5f 62 65 67 69 6e 0a 53 |visdelay_begin.S| 000b1d00 79 6e 74 61 78 3a 09 76 6f 69 64 20 76 69 73 64 |yntax:.void visd| 000b1d10 65 6c 61 79 5f 62 65 67 69 6e 20 28 76 6f 69 64 |elay_begin (void| 000b1d20 29 3b 0a 48 65 61 64 65 72 3a 09 3c 76 69 73 64 |);.Header:.<visd| 000b1d30 65 6c 61 79 2e 68 3d 3e 76 69 73 64 65 6c 61 79 |elay.h=>visdelay| 000b1d40 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000b1d50 20 63 68 61 6e 67 65 73 20 74 68 65 20 6d 6f 75 | changes the mou| 000b1d60 73 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 73 68 |se pointer to sh| 000b1d70 6f 77 20 74 68 65 20 75 73 65 20 74 68 61 74 20 |ow the use that | 000b1d80 73 6f 6d 65 20 64 65 6c 61 79 20 77 69 6c 6c 20 |some delay will | 000b1d90 6f 63 63 75 72 2e 20 41 74 20 74 68 65 20 6d 6f |occur. At the mo| 000b1da0 6d 65 6e 74 20 69 74 20 70 65 72 66 6f 72 6d 73 |ment it performs| 000b1db0 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 | the same as the| 000b1dc0 20 53 57 49 20 3c 48 6f 75 72 67 6c 61 73 73 5f | SWI <Hourglass_| 000b1dd0 4f 6e 3d 3e 53 57 49 3a 48 6f 75 72 67 6c 61 73 |On=>SWI:Hourglas| 000b1de0 73 5f 4f 6e 3e 2e 00 00 44 41 54 41 d5 00 00 00 |s_On>...DATA....| 000b1df0 76 69 73 64 65 6c 61 79 5f 65 6e 64 0a 53 79 6e |visdelay_end.Syn| 000b1e00 74 61 78 3a 09 76 6f 69 64 20 76 69 73 64 65 6c |tax:.void visdel| 000b1e10 61 79 5f 65 6e 64 20 28 76 6f 69 64 29 3b 0a 48 |ay_end (void);.H| 000b1e20 65 61 64 65 72 3a 09 3c 76 69 73 64 65 6c 61 79 |eader:.<visdelay| 000b1e30 2e 68 3d 3e 76 69 73 64 65 6c 61 79 3e 0a 0a 54 |.h=>visdelay>..T| 000b1e40 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d |his function rem| 000b1e50 6f 76 65 73 20 74 68 65 20 69 6e 64 69 63 61 74 |oves the indicat| 000b1e60 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 6c 61 79 |ion of the delay| 000b1e70 2e 20 41 74 20 74 68 65 20 6d 6f 6d 65 6e 74 20 |. At the moment | 000b1e80 69 74 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 |it is the same a| 000b1e90 73 20 74 68 65 20 53 57 49 20 3c 48 6f 75 72 67 |s the SWI <Hourg| 000b1ea0 6c 61 73 73 5f 4f 66 66 3d 3e 53 57 49 3a 48 6f |lass_Off=>SWI:Ho| 000b1eb0 75 72 67 6c 61 73 73 5f 4f 66 66 3e 2e 00 00 00 |urglass_Off>....| 000b1ec0 44 41 54 41 04 01 00 00 76 69 73 64 65 6c 61 79 |DATA....visdelay| 000b1ed0 5f 69 6e 69 74 0a 53 79 6e 74 61 78 3a 09 76 6f |_init.Syntax:.vo| 000b1ee0 69 64 20 76 69 73 64 65 6c 61 79 5f 69 6e 69 74 |id visdelay_init| 000b1ef0 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000b1f00 09 3c 76 69 73 64 65 6c 61 79 2e 68 3d 3e 76 69 |.<visdelay.h=>vi| 000b1f10 73 64 65 6c 61 79 3e 0a 0a 54 68 69 73 20 66 75 |sdelay>..This fu| 000b1f20 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 73 |nction initialis| 000b1f30 65 73 20 74 68 65 20 76 69 73 64 65 6c 61 79 20 |es the visdelay | 000b1f40 73 79 73 74 65 6d 2e 20 41 74 20 74 68 65 20 6d |system. At the m| 000b1f50 6f 6d 65 6e 74 20 69 74 20 64 6f 65 73 20 61 62 |oment it does ab| 000b1f60 73 6f 6c 75 74 65 6c 79 20 6e 6f 74 68 69 6e 67 |solutely nothing| 000b1f70 2c 20 61 73 20 74 68 65 20 48 6f 75 72 67 6c 61 |, as the Hourgla| 000b1f80 73 73 20 6e 65 65 64 73 20 6e 6f 20 69 6e 69 74 |ss needs no init| 000b1f90 69 61 6c 69 73 61 74 69 6f 6e 2e 20 48 6f 77 65 |ialisation. Howe| 000b1fa0 76 65 72 2c 20 69 74 20 61 6c 6c 6f 77 73 20 66 |ver, it allows f| 000b1fb0 6f 72 20 66 75 74 75 72 65 20 65 78 70 61 6e 73 |or future expans| 000b1fc0 69 6f 6e 2e 44 41 54 41 0c 01 00 00 76 69 73 64 |ion.DATA....visd| 000b1fd0 65 6c 61 79 5f 70 65 72 63 65 6e 74 0a 53 79 6e |elay_percent.Syn| 000b1fe0 74 61 78 3a 09 76 6f 69 64 20 76 69 73 64 65 6c |tax:.void visdel| 000b1ff0 61 79 5f 70 65 72 63 65 6e 74 20 28 69 6e 74 20 |ay_percent (int | 000b2000 70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 76 69 73 |p);.Header:.<vis| 000b2010 64 65 6c 61 79 2e 68 3d 3e 76 69 73 64 65 6c 61 |delay.h=>visdela| 000b2020 79 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |y>..This functio| 000b2030 6e 20 69 6e 64 69 63 61 74 65 73 20 74 6f 20 74 |n indicates to t| 000b2040 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 |he user that the| 000b2050 20 64 65 6c 61 79 20 69 73 20 2f 70 2f 20 70 65 | delay is /p/ pe| 000b2060 72 63 65 6e 74 20 63 6f 6d 70 6c 65 74 65 64 2e |rcent completed.| 000b2070 20 41 74 20 74 68 65 20 6d 6f 6d 65 6e 74 20 69 | At the moment i| 000b2080 74 20 70 65 72 66 6f 72 6d 73 20 74 68 65 20 73 |t performs the s| 000b2090 61 6d 65 20 61 73 20 74 68 65 20 53 57 49 20 3c |ame as the SWI <| 000b20a0 48 6f 75 72 67 6c 61 73 73 5f 50 65 72 63 65 6e |Hourglass_Percen| 000b20b0 74 61 67 65 3d 3e 53 57 49 3a 48 6f 75 72 67 6c |tage=>SWI:Hourgl| 000b20c0 61 73 73 5f 50 65 72 63 65 6e 74 61 67 65 3e 2e |ass_Percentage>.| 000b20d0 44 41 54 41 38 01 00 00 76 70 72 69 6e 74 66 0a |DATA8...vprintf.| 000b20e0 53 79 6e 74 61 78 3a 09 69 6e 74 20 76 70 72 69 |Syntax:.int vpri| 000b20f0 6e 74 66 20 28 63 68 61 72 20 2a 66 6f 72 6d 61 |ntf (char *forma| 000b2100 74 2c 20 3c 76 61 5f 6c 69 73 74 3e 20 61 72 67 |t, <va_list> arg| 000b2110 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |s);.Header:.<std| 000b2120 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 |io.h=>stdio>..Re| 000b2130 74 75 72 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 |turns:.The numbe| 000b2140 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 |r of characters | 000b2150 6f 75 74 70 75 74 2c 20 6f 72 20 61 20 6e 65 67 |output, or a neg| 000b2160 61 74 69 76 65 20 76 61 6c 75 65 20 69 66 20 74 |ative value if t| 000b2170 68 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f |here was an erro| 000b2180 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |r...This functio| 000b2190 6e 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 |n is identical t| 000b21a0 6f 20 3c 70 72 69 6e 74 66 3e 2c 20 62 75 74 20 |o <printf>, but | 000b21b0 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 |the arguments ar| 000b21c0 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 2f 61 |e replaced by /a| 000b21d0 72 67 73 2f 2c 20 77 68 69 63 68 20 73 68 6f 75 |rgs/, which shou| 000b21e0 6c 64 20 68 61 76 65 20 62 65 65 6e 20 69 6e 69 |ld have been ini| 000b21f0 74 69 61 6c 69 73 65 64 20 62 79 20 3c 76 61 5f |tialised by <va_| 000b2200 73 74 61 72 74 3e 2e 20 44 41 54 41 46 01 00 00 |start>. DATAF...| 000b2210 76 73 70 72 69 6e 74 66 0a 53 79 6e 74 61 78 3a |vsprintf.Syntax:| 000b2220 09 69 6e 74 20 76 73 70 72 69 6e 74 66 20 28 63 |.int vsprintf (c| 000b2230 68 61 72 20 2a 6f 75 74 2c 20 63 68 61 72 20 2a |har *out, char *| 000b2240 66 6f 72 6d 61 74 2c 20 3c 76 61 5f 6c 69 73 74 |format, <va_list| 000b2250 3e 20 61 72 67 73 29 3b 0a 48 65 61 64 65 72 3a |> args);.Header:| 000b2260 09 3c 73 74 64 69 6f 2e 68 3d 3e 73 74 64 69 6f |.<stdio.h=>stdio| 000b2270 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 54 68 65 20 |>..Returns:.The | 000b2280 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 |number of charac| 000b2290 74 65 72 73 20 6f 75 74 70 75 74 2c 20 6f 72 20 |ters output, or | 000b22a0 61 20 6e 65 67 61 74 69 76 65 20 76 61 6c 75 65 |a negative value| 000b22b0 20 69 66 20 74 68 65 72 65 20 77 61 73 20 61 6e | if there was an| 000b22c0 20 65 72 72 6f 72 2e 0a 0a 54 68 69 73 20 66 75 | error...This fu| 000b22d0 6e 63 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 |nction is identi| 000b22e0 63 61 6c 20 74 6f 20 3c 73 70 72 69 6e 74 66 3e |cal to <sprintf>| 000b22f0 2c 20 62 75 74 20 74 68 65 20 61 72 67 75 6d 65 |, but the argume| 000b2300 6e 74 73 20 61 72 65 20 72 65 70 6c 61 63 65 64 |nts are replaced| 000b2310 20 62 79 20 2f 61 72 67 73 2f 2c 20 77 68 69 63 | by /args/, whic| 000b2320 68 20 73 68 6f 75 6c 64 20 68 61 76 65 20 62 65 |h should have be| 000b2330 65 6e 20 69 6e 69 74 69 61 6c 69 73 65 64 20 62 |en initialised b| 000b2340 79 20 3c 76 61 5f 73 74 61 72 74 3e 2e 20 00 00 |y <va_start>. ..| 000b2350 44 49 52 24 50 02 00 00 50 02 00 00 a0 25 0b 00 |DIR$P...P....%..| 000b2360 46 ff ff ff 38 8f 66 25 74 01 00 00 13 00 00 00 |F...8.f%t.......| 000b2370 00 00 00 00 57 41 73 73 65 72 74 00 14 27 0b 00 |....WAssert..'..| 000b2380 46 fd ff ff 67 f2 84 2f 28 00 00 00 13 01 00 00 |F...g../(.......| 000b2390 00 00 00 00 77 63 68 61 72 5f 00 00 4c 28 0b 00 |....wchar_..L(..| 000b23a0 46 ff ff ff 0e e9 de 22 45 02 00 00 13 00 00 00 |F......"E.......| 000b23b0 00 00 00 00 77 63 73 74 6f 6d 62 73 00 00 00 00 |....wcstombs....| 000b23c0 94 2a 0b 00 46 ff ff ff a6 bd de 22 34 02 00 00 |.*..F......"4...| 000b23d0 13 00 00 00 00 00 00 00 77 63 74 6f 6d 62 00 00 |........wctomb..| 000b23e0 c8 2c 0b 00 46 ff ff ff d9 61 e6 24 0d 01 00 00 |.,..F....a.$....| 000b23f0 13 00 00 00 00 00 00 00 77 65 72 72 00 00 00 00 |........werr....| 000b2400 d8 2d 0b 00 46 ff ff ff 1b 2a e4 22 6b 02 00 00 |.-..F....*."k...| 000b2410 13 00 00 00 00 00 00 00 77 68 69 6c 65 00 00 00 |........while...| 000b2420 44 30 0b 00 46 ff ff ff 5e b4 47 26 bf 01 00 00 |D0..F...^.G&....| 000b2430 13 00 00 00 00 00 00 00 57 69 6d 70 00 00 00 00 |........Wimp....| 000b2440 04 32 0b 00 46 ff ff ff fd 67 58 26 af 01 00 00 |.2..F....gX&....| 000b2450 13 00 00 00 00 00 00 00 57 69 6d 70 45 78 74 00 |........WimpExt.| 000b2460 b4 33 0b 00 46 fd ff ff ff f2 84 2f 98 00 00 00 |.3..F....../....| 000b2470 13 01 00 00 00 00 00 00 57 69 6d 70 45 78 74 5f |........WimpExt_| 000b2480 00 00 00 00 e0 38 0b 00 46 ff ff ff f6 cb 48 26 |.....8..F.....H&| 000b2490 e7 04 00 00 13 00 00 00 00 00 00 00 57 69 6d 70 |............Wimp| 000b24a0 53 57 49 73 00 00 00 00 c8 3d 0b 00 46 ff ff ff |SWIs.....=..F...| 000b24b0 03 e8 ea 24 88 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000b24c0 77 69 6d 70 74 00 00 00 50 3f 0b 00 46 fd ff ff |wimpt...P?..F...| 000b24d0 92 f3 84 2f 50 02 00 00 13 01 00 00 00 00 00 00 |.../P...........| 000b24e0 77 69 6d 70 74 5f 00 00 dc 4f 0b 00 46 fd ff ff |wimpt_...O..F...| 000b24f0 46 f5 84 2f 48 18 00 00 13 01 00 00 00 00 00 00 |F../H...........| 000b2500 57 69 6d 70 5f 00 00 00 78 39 0c 00 46 ff ff ff |Wimp_...x9..F...| 000b2510 d6 c4 eb 24 69 02 00 00 13 00 00 00 00 00 00 00 |...$i...........| 000b2520 77 69 6e 00 e4 3b 0c 00 46 ff ff ff 57 45 4c 26 |win..;..F...WEL&| 000b2530 2e 02 00 00 13 00 00 00 00 00 00 00 57 69 6e 64 |............Wind| 000b2540 6f 77 00 00 14 3e 0c 00 46 fd ff ff 86 02 85 2f |ow...>..F....../| 000b2550 c8 04 00 00 13 01 00 00 00 00 00 00 57 69 6e 64 |............Wind| 000b2560 6f 77 5f 00 8c 70 0c 00 46 fd ff ff 42 05 85 2f |ow_..p..F...B../| 000b2570 70 03 00 00 13 01 00 00 00 00 00 00 77 69 6e 5f |p...........win_| 000b2580 00 00 00 00 ec 88 0c 00 46 fd ff ff ee 06 85 2f |........F....../| 000b2590 f0 02 00 00 13 01 00 00 00 00 00 00 77 5f 00 00 |............w_..| 000b25a0 44 41 54 41 74 01 00 00 44 65 73 6b 4c 69 62 3a |DATAt...DeskLib:| 000b25b0 57 41 73 73 65 72 74 2e 68 0a 56 65 72 73 69 6f |WAssert.h.Versio| 000b25c0 6e 3a 20 31 2e 30 31 20 28 31 39 20 4a 75 6c 20 |n: 1.01 (19 Jul | 000b25d0 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 |1994).#line.This| 000b25e0 20 68 65 61 64 65 72 20 69 73 20 74 68 65 20 57 | header is the W| 000b25f0 69 6d 70 20 76 65 72 73 69 6f 6e 20 6f 66 20 3c |imp version of <| 000b2600 61 73 73 65 72 74 2e 68 3d 3e 61 73 73 65 72 74 |assert.h=>assert| 000b2610 3e 2e 0a 0a 49 74 20 64 65 63 6c 61 72 65 73 20 |>...It declares | 000b2620 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 2c 20 61 73 |one function, as| 000b2630 73 65 72 74 2c 20 77 68 69 63 68 20 69 73 20 69 |sert, which is i| 000b2640 64 65 6e 74 69 63 61 6c 20 69 6e 20 75 73 65 20 |dentical in use | 000b2650 74 6f 20 74 68 65 20 41 4e 53 49 20 76 65 72 73 |to the ANSI vers| 000b2660 69 6f 6e 2e 0a 0a 54 68 69 73 20 68 61 73 20 61 |ion...This has a| 000b2670 63 74 75 61 6c 6c 79 20 62 65 65 6e 20 66 69 78 |ctually been fix| 000b2680 65 64 20 6e 6f 77 20 61 6e 64 20 74 68 65 20 66 |ed now and the f| 000b2690 75 6e 63 74 69 6f 6e 20 6f 6e 6c 79 20 77 6f 72 |unction only wor| 000b26a0 6b 73 20 69 66 20 74 68 65 20 6d 61 63 72 6f 20 |ks if the macro | 000b26b0 5f 44 45 42 55 47 20 69 73 20 64 65 66 69 6e 65 |_DEBUG is define| 000b26c0 64 20 77 68 65 6e 20 79 6f 75 20 69 6e 63 6c 75 |d when you inclu| 000b26d0 64 65 20 74 68 69 73 20 68 65 61 64 65 72 2c 20 |de this header, | 000b26e0 72 61 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 |rather than the | 000b26f0 6f 70 70 6f 73 69 74 65 20 77 61 79 20 72 6f 75 |opposite way rou| 000b2700 6e 64 20 61 73 20 69 74 20 77 61 73 20 62 65 66 |nd as it was bef| 000b2710 6f 72 65 2e 44 49 52 24 28 00 00 00 28 00 00 00 |ore.DIR$(...(...| 000b2720 3c 27 0b 00 46 ff ff ff 46 93 c0 22 0d 01 00 00 |<'..F...F.."....| 000b2730 13 00 00 00 00 00 00 00 74 00 00 00 44 41 54 41 |........t...DATA| 000b2740 0d 01 00 00 77 63 68 61 72 5f 74 0a 54 68 65 20 |....wchar_t.The | 000b2750 74 79 70 65 20 7b 2f 7d 77 63 68 61 72 5f 74 7b |type {/}wchar_t{| 000b2760 2f 7d 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |/} is defined in| 000b2770 20 3c 73 74 64 64 65 66 2e 68 3d 3e 73 74 64 64 | <stddef.h=>stdd| 000b2780 65 66 3e 2c 20 61 6e 64 20 3c 73 74 64 6c 69 62 |ef>, and <stdlib| 000b2790 2e 68 3d 3e 73 74 64 6c 69 62 3e 20 61 73 20 61 |.h=>stdlib> as a| 000b27a0 6e 20 6f 62 6a 65 63 74 20 63 61 70 61 62 6c 65 |n object capable| 000b27b0 20 6f 66 20 68 6f 6c 64 69 6e 67 20 64 69 73 74 | of holding dist| 000b27c0 69 6e 63 74 20 63 6f 64 65 73 20 66 6f 72 20 61 |inct codes for a| 000b27d0 6c 6c 20 6d 65 6d 62 65 72 20 6f 66 20 74 68 65 |ll member of the| 000b27e0 20 6c 61 72 67 65 73 74 20 65 78 74 65 6e 64 65 | largest extende| 000b27f0 64 20 63 68 61 72 61 63 74 65 72 20 73 75 70 70 |d character supp| 000b2800 6f 72 74 65 64 20 62 79 20 74 68 65 20 63 6f 6d |orted by the com| 000b2810 70 69 6c 65 72 2e 20 49 6e 20 45 61 73 79 20 43 |piler. In Easy C| 000b2820 20 61 6e 64 20 44 65 73 6b 74 6f 70 20 43 20 69 | and Desktop C i| 000b2830 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 |t is defined as | 000b2840 61 6e 20 2f 69 6e 74 2f 2e 00 00 00 44 41 54 41 |an /int/....DATA| 000b2850 45 02 00 00 77 63 73 74 6f 6d 62 73 0a 53 79 6e |E...wcstombs.Syn| 000b2860 74 61 78 3a 09 3c 73 69 7a 65 5f 74 3e 20 77 63 |tax:.<size_t> wc| 000b2870 73 74 6f 6d 62 73 20 28 63 68 61 72 20 2a 73 2c |stombs (char *s,| 000b2880 20 3c 77 63 68 61 72 5f 74 3e 20 2a 70 77 63 73 | <wchar_t> *pwcs| 000b2890 2c 20 73 69 7a 65 5f 74 20 6e 29 3b 0a 48 65 61 |, size_t n);.Hea| 000b28a0 64 65 72 3a 09 3c 73 74 64 6c 69 62 2e 68 3d 3e |der:.<stdlib.h=>| 000b28b0 73 74 64 6c 69 62 3e 0a 0a 52 65 74 75 72 6e 73 |stdlib>..Returns| 000b28c0 3a 09 53 65 65 20 62 65 6c 6f 77 2e 0a 0a 43 6f |:.See below...Co| 000b28d0 6e 76 65 72 74 73 20 61 20 73 65 71 75 65 6e 63 |nverts a sequenc| 000b28e0 65 20 6f 66 20 63 6f 64 65 73 20 74 68 61 74 20 |e of codes that | 000b28f0 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 6d 75 |correspond to mu| 000b2900 6c 74 69 62 79 74 65 20 63 68 61 72 61 63 74 65 |ltibyte characte| 000b2910 72 73 20 66 72 6f 6d 20 74 68 65 20 61 72 72 61 |rs from the arra| 000b2920 79 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 |y pointed to by | 000b2930 2f 70 77 63 73 2f 20 69 6e 74 6f 20 61 20 73 65 |/pwcs/ into a se| 000b2940 71 75 65 6e 63 65 20 6f 66 20 6d 75 6c 74 69 62 |quence of multib| 000b2950 79 74 65 20 63 68 61 72 61 63 74 65 72 73 20 69 |yte characters i| 000b2960 6e 74 6f 20 74 68 65 20 61 72 72 61 79 20 70 6f |nto the array po| 000b2970 69 6e 74 65 64 20 74 6f 20 62 79 20 2f 73 2f 2c |inted to by /s/,| 000b2980 20 73 74 6f 70 70 69 6e 67 20 69 66 20 61 20 6d | stopping if a m| 000b2990 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 63 74 |ultibyte charact| 000b29a0 65 72 20 77 6f 75 6c 64 20 65 78 63 65 65 64 20 |er would exceed | 000b29b0 74 68 65 20 6c 69 6d 69 74 20 6f 66 20 2f 6e 2f |the limit of /n/| 000b29c0 20 74 6f 74 61 6c 20 62 79 74 65 73 20 6f 72 20 | total bytes or | 000b29d0 69 66 20 61 20 6e 75 6c 6c 20 63 68 61 72 61 63 |if a null charac| 000b29e0 74 65 72 20 69 73 20 73 74 6f 72 65 64 2e 20 45 |ter is stored. E| 000b29f0 61 63 68 20 63 6f 64 65 20 69 73 20 63 6f 6e 76 |ach code is conv| 000b2a00 65 72 74 65 64 20 61 73 20 69 66 20 62 79 20 61 |erted as if by a| 000b2a10 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 3c 77 63 | call to the <wc| 000b2a20 74 6f 6d 62 3e 20 66 75 6e 63 74 69 6f 6e 2e 0a |tomb> function..| 000b2a30 0a 49 66 20 61 6e 20 69 6e 76 61 6c 69 64 20 63 |.If an invalid c| 000b2a40 6f 64 65 20 69 73 20 66 6f 75 6e 64 2c 20 74 68 |ode is found, th| 000b2a50 69 73 20 72 65 74 75 72 6e 73 20 2d 31 2c 20 6f |is returns -1, o| 000b2a60 74 68 65 72 77 69 73 65 20 69 74 20 72 65 74 75 |therwise it retu| 000b2a70 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f |rns the number o| 000b2a80 66 20 62 79 74 65 73 20 6d 6f 64 69 66 69 65 64 |f bytes modified| 000b2a90 2e 00 00 00 44 41 54 41 34 02 00 00 77 63 74 6f |....DATA4...wcto| 000b2aa0 6d 62 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 77 |mb.Syntax:.int w| 000b2ab0 63 74 6f 6d 62 20 28 63 68 61 72 20 2a 73 2c 20 |ctomb (char *s, | 000b2ac0 3c 77 63 68 61 72 5f 74 3e 20 77 63 68 61 72 29 |<wchar_t> wchar)| 000b2ad0 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 6c 69 |;.Header:.<stdli| 000b2ae0 62 2e 68 3d 3e 73 74 64 6c 69 62 3e 0a 0a 52 65 |b.h=>stdlib>..Re| 000b2af0 74 75 72 6e 73 3a 09 53 65 65 20 62 65 6c 6f 77 |turns:.See below| 000b2b00 2e 0a 0a 49 66 20 2f 73 2f 20 69 73 20 6e 6f 74 |...If /s/ is not| 000b2b10 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 2c | a null pointer,| 000b2b20 20 74 68 65 6e 20 74 68 69 73 20 66 75 6e 63 74 | then this funct| 000b2b30 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 73 20 74 |ion determines t| 000b2b40 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 |he number of byt| 000b2b50 65 73 20 6e 65 65 64 65 64 20 74 6f 20 72 65 70 |es needed to rep| 000b2b60 72 65 73 65 6e 74 20 74 68 65 20 6d 75 6c 74 69 |resent the multi| 000b2b70 62 79 74 65 20 63 68 61 72 61 63 74 65 72 20 63 |byte character c| 000b2b80 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 |orresponding to | 000b2b90 74 68 65 20 63 6f 64 65 20 77 68 6f 73 65 20 76 |the code whose v| 000b2ba0 61 6c 75 65 20 69 73 20 2f 77 63 68 61 72 2f 20 |alue is /wchar/ | 000b2bb0 61 6e 64 20 73 74 6f 72 65 73 20 74 68 65 20 6d |and stores the m| 000b2bc0 75 6c 74 69 62 79 74 65 20 63 68 61 72 61 63 74 |ultibyte charact| 000b2bd0 65 72 20 69 6e 20 2f 73 2f 2c 20 69 66 20 2f 73 |er in /s/, if /s| 000b2be0 2f 20 69 73 20 6e 6f 74 20 3c 4e 55 4c 4c 3e 2e |/ is not <NULL>.| 000b2bf0 20 49 66 20 2f 73 2f 20 69 73 20 6e 6f 74 20 61 | If /s/ is not a| 000b2c00 20 76 61 6c 69 64 20 6d 75 6c 74 69 62 79 74 65 | valid multibyte| 000b2c10 20 63 68 61 72 61 63 74 65 72 20 69 74 20 72 65 | character it re| 000b2c20 74 75 72 6e 73 20 2d 31 2c 20 6f 74 68 65 72 77 |turns -1, otherw| 000b2c30 69 73 65 20 69 74 20 72 65 74 75 72 6e 73 20 74 |ise it returns t| 000b2c40 68 65 20 6c 65 6e 67 74 68 2e 0a 0a 49 66 20 2f |he length...If /| 000b2c50 73 2f 20 69 73 20 61 20 6e 75 6c 6c 20 70 6f 69 |s/ is a null poi| 000b2c60 6e 74 65 72 2c 20 74 68 69 73 20 66 75 6e 63 74 |nter, this funct| 000b2c70 69 6f 6e 20 72 65 74 75 72 6e 73 20 7a 65 72 6f |ion returns zero| 000b2c80 20 69 66 20 6d 75 6c 74 69 62 79 74 65 20 63 68 | if multibyte ch| 000b2c90 61 72 61 63 74 65 72 20 65 6e 63 6f 64 69 6e 67 |aracter encoding| 000b2ca0 73 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 73 74 |s do not have st| 000b2cb0 61 74 65 2d 64 65 70 65 6e 64 65 6e 74 20 65 6e |ate-dependent en| 000b2cc0 63 6f 64 69 6e 67 73 2e 44 41 54 41 0d 01 00 00 |codings.DATA....| 000b2cd0 77 65 72 72 2e 68 0a 54 68 69 73 20 68 65 61 64 |werr.h.This head| 000b2ce0 65 72 20 64 65 63 6c 61 72 65 73 20 6a 75 73 74 |er declares just| 000b2cf0 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a | one function:..| 000b2d00 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 65 72 |Syntax:.void wer| 000b2d10 72 20 28 69 6e 74 20 66 61 74 61 6c 2c 20 63 68 |r (int fatal, ch| 000b2d20 61 72 20 2a 66 6f 72 6d 61 74 2c 20 2e 2e 2e 29 |ar *format, ...)| 000b2d30 3b 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |;..This function| 000b2d40 20 72 65 70 6f 72 74 73 20 61 6e 20 65 72 72 6f | reports an erro| 000b2d50 72 20 74 6f 20 74 68 65 20 75 73 65 72 2c 20 75 |r to the user, u| 000b2d60 6e 64 65 72 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 |nder control of | 000b2d70 74 68 65 20 3c 66 6f 72 6d 61 74 20 73 74 72 69 |the <format stri| 000b2d80 6e 67 3d 3e 70 66 6f 72 6d 5f 3e 2c 20 2f 66 6f |ng=>pform_>, /fo| 000b2d90 72 6d 61 74 2f 2e 20 49 66 20 2f 66 61 74 61 6c |rmat/. If /fatal| 000b2da0 2f 20 69 73 20 6e 6f 6e 2d 7a 65 72 6f 20 74 68 |/ is non-zero th| 000b2db0 65 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 20 65 |en the program e| 000b2dc0 78 69 74 73 20 61 66 74 65 72 20 74 68 65 20 65 |xits after the e| 000b2dd0 72 72 6f 72 2e 00 00 00 44 41 54 41 6b 02 00 00 |rror....DATAk...| 000b2de0 77 68 69 6c 65 0a 54 68 69 73 20 63 6f 6d 6d 61 |while.This comma| 000b2df0 6e 64 20 64 65 66 69 6e 65 73 20 61 20 2f 77 68 |nd defines a /wh| 000b2e00 69 6c 65 2f 20 6c 6f 6f 70 2e 20 49 74 20 69 73 |ile/ loop. It is| 000b2e10 20 61 6c 73 6f 20 75 73 65 64 20 61 73 20 70 61 | also used as pa| 000b2e20 72 74 20 6f 66 20 61 20 3c 64 6f 3e 20 6c 6f 6f |rt of a <do> loo| 000b2e30 70 2e 20 41 20 2f 77 68 69 6c 65 2f 20 6c 6f 6f |p. A /while/ loo| 000b2e40 70 20 68 61 73 20 74 68 65 20 67 65 6e 65 72 61 |p has the genera| 000b2e50 6c 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b |l form:..{fCode;| 000b2e60 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 77 68 69 |align centre}whi| 000b2e70 6c 65 20 28 5c 3c 63 6f 6e 64 69 74 69 6f 6e 3e |le (\<condition>| 000b2e80 29 20 5c 3c 73 74 61 74 65 6d 65 6e 74 3e 3b 7b |) \<statement>;{| 000b2e90 66 3b 61 6c 69 67 6e 7d 0a 0a 5c 3c 63 6f 6e 64 |f;align}..\<cond| 000b2ea0 69 74 69 6f 6e 3e 09 69 73 20 65 76 61 6c 75 61 |ition>.is evalua| 000b2eb0 74 65 64 20 65 61 63 68 20 74 69 6d 65 2c 20 61 |ted each time, a| 000b2ec0 6e 64 20 69 66 20 69 74 20 65 76 61 6c 75 61 74 |nd if it evaluat| 000b2ed0 65 73 20 74 6f 20 61 20 6e 6f 6e 2d 7a 65 72 6f |es to a non-zero| 000b2ee0 20 76 61 6c 75 65 2c 20 69 65 20 69 73 20 74 72 | value, ie is tr| 000b2ef0 75 65 2c 20 74 68 65 20 5c 3c 73 74 61 74 65 6d |ue, the \<statem| 000b2f00 65 6e 74 3e 20 69 73 20 65 78 65 63 75 74 65 64 |ent> is executed| 000b2f10 2e 20 54 68 69 73 20 72 65 70 65 61 74 65 64 20 |. This repeated | 000b2f20 75 6e 74 69 6c 20 74 68 65 20 63 6f 6e 64 69 74 |until the condit| 000b2f30 69 6f 6e 20 69 73 20 66 61 6c 73 65 2e 0a 0a 5c |ion is false...\| 000b2f40 3c 73 74 61 74 65 6d 65 6e 74 3e 09 69 73 20 74 |<statement>.is t| 000b2f50 68 65 20 63 6f 6d 6d 61 6e 64 20 65 78 65 63 75 |he command execu| 000b2f60 74 65 64 20 77 69 74 68 69 6e 20 74 68 65 20 6c |ted within the l| 000b2f70 6f 6f 70 2e 20 49 74 20 63 61 6e 20 62 65 20 61 |oop. It can be a| 000b2f80 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65 6d | compound statem| 000b2f90 65 6e 74 20 69 65 20 73 65 76 65 72 61 6c 20 73 |ent ie several s| 000b2fa0 74 61 74 65 6d 65 6e 74 73 20 65 6e 63 6c 6f 73 |tatements enclos| 000b2fb0 65 64 20 69 6e 20 62 72 61 63 65 73 20 5c 7b 7d |ed in braces \{}| 000b2fc0 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 |, in which case | 000b2fd0 74 68 65 72 65 20 69 73 20 6e 6f 20 66 69 6e 61 |there is no fina| 000b2fe0 6c 20 73 65 6d 69 63 6f 6c 6f 6e 2e 0a 0a 65 67 |l semicolon...eg| 000b2ff0 20 66 6f 72 20 61 6e 20 69 6e 66 69 6e 69 74 65 | for an infinite| 000b3000 20 6c 6f 6f 70 3a 0a 0a 7b 66 43 6f 64 65 3b 61 | loop:..{fCode;a| 000b3010 6c 69 67 6e 20 63 65 6e 74 72 65 7d 77 68 69 6c |lign centre}whil| 000b3020 65 20 28 31 29 20 3c 70 75 74 73 3e 28 22 49 6e |e (1) <puts>("In| 000b3030 66 69 6e 69 74 65 21 22 29 3b 7b 66 3b 61 6c 69 |finite!");{f;ali| 000b3040 67 6e 7d 00 44 41 54 41 bf 01 00 00 44 65 73 6b |gn}.DATA....Desk| 000b3050 4c 69 62 3a 57 69 6d 70 2e 68 0a 56 65 72 73 69 |Lib:Wimp.h.Versi| 000b3060 6f 6e 3a 20 31 2e 31 32 20 28 32 36 20 4a 75 6e |on: 1.12 (26 Jun| 000b3070 20 31 39 39 33 29 0a 23 6c 69 6e 65 0a 54 68 69 | 1993).#line.Thi| 000b3080 73 20 68 65 61 64 65 72 20 64 65 66 69 6e 65 73 |s header defines| 000b3090 20 4c 4f 54 53 20 6f 66 20 74 79 70 65 73 20 66 | LOTS of types f| 000b30a0 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 |or handling the | 000b30b0 57 69 6d 70 2e 0a 0a 23 54 61 62 6c 65 20 36 20 |Wimp...#Table 6 | 000b30c0 32 33 0a 3c 57 69 6d 70 20 63 6f 6c 6f 75 72 73 |23.<Wimp colours| 000b30d0 2f 70 61 6c 65 74 74 65 73 3d 3e 77 5f 63 6f 6c |/palettes=>w_col| 000b30e0 70 61 6c 5f 3e 0a 3c 57 69 6d 70 20 69 63 6f 6e |pal_>.<Wimp icon| 000b30f0 20 64 61 74 61 3d 3e 77 5f 69 63 6f 6e 64 61 74 | data=>w_icondat| 000b3100 5f 3e 0a 3c 57 69 6e 64 6f 77 20 64 61 74 61 3d |_>.<Window data=| 000b3110 3e 77 5f 77 69 6e 64 61 74 5f 3e 0a 3c 4d 6f 75 |>w_windat_>.<Mou| 000b3120 73 65 2f 70 6f 69 6e 74 65 72 20 69 6e 66 6f 3d |se/pointer info=| 000b3130 3e 77 5f 6d 6f 75 73 65 69 6e 66 5f 3e 0a 3c 57 |>w_mouseinf_>.<W| 000b3140 69 6d 70 20 64 72 61 67 20 64 61 74 61 20 3d 3e |imp drag data =>| 000b3150 77 5f 64 72 61 67 64 61 74 5f 3e 0a 3c 57 69 6d |w_dragdat_>.<Wim| 000b3160 70 20 65 72 72 6f 72 73 3d 3e 77 5f 77 69 6d 70 |p errors=>w_wimp| 000b3170 65 72 72 5f 3e 0a 3c 4d 65 6e 75 73 3d 3e 77 5f |err_>.<Menus=>w_| 000b3180 6d 65 6e 75 73 5f 3e 0a 3c 43 61 72 65 74 2f 6b |menus_>.<Caret/k| 000b3190 65 79 70 72 65 73 73 20 64 61 74 61 3d 3e 77 5f |eypress data=>w_| 000b31a0 63 61 72 65 74 5f 3e 0a 3c 57 69 6d 70 20 6d 65 |caret_>.<Wimp me| 000b31b0 73 73 61 67 65 20 64 61 74 61 3d 3e 77 5f 6d 65 |ssage data=>w_me| 000b31c0 73 73 64 61 74 5f 3e 0a 3c 57 69 6d 70 20 65 76 |ssdat_>.<Wimp ev| 000b31d0 65 6e 74 73 3d 3e 77 5f 65 76 65 6e 74 73 5f 3e |ents=>w_events_>| 000b31e0 0a 3c 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 3d |.<Miscellaneous=| 000b31f0 3e 77 5f 6d 69 73 63 5f 3e 0a 23 45 6e 64 54 61 |>w_misc_>.#EndTa| 000b3200 62 6c 65 00 44 41 54 41 af 01 00 00 54 69 6d 73 |ble.DATA....Tims| 000b3210 4c 69 62 3a 57 69 6d 70 45 78 74 2e 68 0a 23 70 |Lib:WimpExt.h.#p| 000b3220 61 72 65 6e 74 20 72 6f 5f 74 6c 69 62 5f 0a 54 |arent ro_tlib_.T| 000b3230 68 69 73 20 68 65 61 64 65 72 20 64 65 66 69 6e |his header defin| 000b3240 65 73 20 66 6f 75 72 20 66 75 6e 63 74 69 6f 6e |es four function| 000b3250 2d 6c 69 6b 65 20 6d 61 63 72 6f 73 20 66 6f 72 |-like macros for| 000b3260 20 61 63 63 65 73 73 69 6e 67 20 73 6f 6d 65 20 | accessing some | 000b3270 57 69 6d 70 45 78 74 65 6e 73 69 6f 6e 20 53 57 |WimpExtension SW| 000b3280 49 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 2d 6c 69 |Is...Function-li| 000b3290 6b 65 20 6d 61 63 72 6f 73 3a 0a 0a 23 69 6e 64 |ke macros:..#ind| 000b32a0 65 6e 74 20 34 0a 23 74 61 62 6c 65 20 63 6f 6c |ent 4.#table col| 000b32b0 75 6d 6e 73 20 32 0a 3c 57 69 6d 70 45 78 74 5f |umns 2.<WimpExt_| 000b32c0 49 6e 69 74 69 61 6c 69 73 65 3e 0a 3c 57 69 6d |Initialise>.<Wim| 000b32d0 70 45 78 74 5f 43 6c 6f 73 65 64 6f 77 6e 3e 0a |pExt_Closedown>.| 000b32e0 3c 57 69 6d 70 45 78 74 5f 52 65 64 72 61 77 3e |<WimpExt_Redraw>| 000b32f0 0a 3c 57 69 6d 70 45 78 74 5f 50 6c 6f 74 42 6f |.<WimpExt_PlotBo| 000b3300 72 64 65 72 3e 0a 23 65 6e 64 74 61 62 6c 65 0a |rder>.#endtable.| 000b3310 23 69 6e 64 65 6e 74 0a 0a 57 69 6d 70 45 78 74 |#indent..WimpExt| 000b3320 65 6e 73 69 6f 6e 20 69 73 20 61 20 50 44 20 6d |ension is a PD m| 000b3330 6f 64 75 6c 65 20 70 72 6f 64 75 63 65 64 20 62 |odule produced b| 000b3340 79 20 44 6f 67 67 79 53 6f 66 74 20 77 68 69 63 |y DoggySoft whic| 000b3350 68 20 70 72 6f 76 69 64 65 73 20 6d 61 6e 79 20 |h provides many | 000b3360 75 73 65 66 75 6c 20 66 75 6e 63 74 69 6f 6e 73 |useful functions| 000b3370 20 66 6f 72 20 57 69 6d 70 20 70 72 6f 67 72 61 | for Wimp progra| 000b3380 6d 6d 69 6e 67 2e 20 48 6f 77 65 76 65 72 2c 20 |mming. However, | 000b3390 57 69 6d 70 45 78 74 65 6e 73 69 6f 6e 20 32 20 |WimpExtension 2 | 000b33a0 69 73 20 6e 6f 77 20 61 76 61 69 6c 61 62 6c 65 |is now available| 000b33b0 2e 2e 2e 00 44 49 52 24 98 00 00 00 98 00 00 00 |....DIR$........| 000b33c0 4c 34 0b 00 46 ff ff ff 07 72 58 26 13 01 00 00 |L4..F....rX&....| 000b33d0 13 00 00 00 00 00 00 00 43 6c 6f 73 65 64 6f 77 |........Closedow| 000b33e0 6e 00 00 00 60 35 0b 00 46 ff ff ff d5 6d 58 26 |n...`5..F....mX&| 000b33f0 20 01 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 | ...........Init| 000b3400 69 61 6c 69 73 65 00 00 80 36 0b 00 46 ff ff ff |ialise...6..F...| 000b3410 9c 7a 58 26 39 01 00 00 13 00 00 00 00 00 00 00 |.zX&9...........| 000b3420 50 6c 6f 74 42 6f 72 64 65 72 00 00 bc 37 0b 00 |PlotBorder...7..| 000b3430 46 ff ff ff da 75 58 26 22 01 00 00 13 00 00 00 |F....uX&".......| 000b3440 00 00 00 00 52 65 64 72 61 77 00 00 44 41 54 41 |....Redraw..DATA| 000b3450 13 01 00 00 57 69 6d 70 45 78 74 5f 43 6c 6f 73 |....WimpExt_Clos| 000b3460 65 64 6f 77 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f |edown.Syntax:.<o| 000b3470 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 45 78 |s_error> *WimpEx| 000b3480 74 5f 43 6c 6f 73 65 64 6f 77 6e 20 28 76 6f 69 |t_Closedown (voi| 000b3490 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d |d);.Header:.<Tim| 000b34a0 73 4c 69 62 3a 57 69 6d 70 45 78 74 2e 68 3d 3e |sLib:WimpExt.h=>| 000b34b0 57 69 6d 70 45 78 74 3e 0a 0a 52 65 74 75 72 6e |WimpExt>..Return| 000b34c0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000b34d0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000b34e0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000b34f0 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 68 65 |nction calls the| 000b3500 20 53 57 49 20 57 69 6d 70 45 78 74 5f 43 6c 6f | SWI WimpExt_Clo| 000b3510 73 65 64 6f 77 6e 2e 20 46 6f 72 20 6d 6f 72 65 |sedown. For more| 000b3520 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 65 | information see| 000b3530 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 | the documentati| 000b3540 6f 6e 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 |on provided with| 000b3550 20 57 69 6d 70 45 78 74 65 6e 73 69 6f 6e 2e 00 | WimpExtension..| 000b3560 44 41 54 41 20 01 00 00 57 69 6d 70 45 78 74 5f |DATA ...WimpExt_| 000b3570 49 6e 69 74 69 61 6c 69 73 65 0a 53 79 6e 74 61 |Initialise.Synta| 000b3580 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 |x:.<os_error> *W| 000b3590 69 6d 70 45 78 74 5f 49 6e 69 74 69 61 6c 69 73 |impExt_Initialis| 000b35a0 65 20 28 75 6e 73 69 67 6e 65 64 20 66 6c 61 67 |e (unsigned flag| 000b35b0 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d |s);.Header:.<Tim| 000b35c0 73 4c 69 62 3a 57 69 6d 70 45 78 74 2e 68 3d 3e |sLib:WimpExt.h=>| 000b35d0 57 69 6d 70 45 78 74 3e 0a 0a 52 65 74 75 72 6e |WimpExt>..Return| 000b35e0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000b35f0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000b3600 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000b3610 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 68 65 |nction calls the| 000b3620 20 53 57 49 20 57 69 6d 70 45 78 74 5f 49 6e 69 | SWI WimpExt_Ini| 000b3630 74 69 61 6c 69 73 65 2e 20 46 6f 72 20 6d 6f 72 |tialise. For mor| 000b3640 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 |e information se| 000b3650 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 |e the documentat| 000b3660 69 6f 6e 20 70 72 6f 76 69 64 65 64 20 77 69 74 |ion provided wit| 000b3670 68 20 57 69 6d 70 45 78 74 65 6e 73 69 6f 6e 2e |h WimpExtension.| 000b3680 44 41 54 41 39 01 00 00 57 69 6d 70 45 78 74 5f |DATA9...WimpExt_| 000b3690 50 6c 6f 74 42 6f 72 64 65 72 0a 53 79 6e 74 61 |PlotBorder.Synta| 000b36a0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 |x:.<os_error> *W| 000b36b0 69 6d 70 45 78 74 5f 50 6c 6f 74 42 6f 72 64 65 |impExt_PlotBorde| 000b36c0 72 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |r (<window_handl| 000b36d0 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 62 6c |e> win, <icon_bl| 000b36e0 6f 63 6b 3e 20 2a 69 63 6f 6e 29 3b 0a 48 65 61 |ock> *icon);.Hea| 000b36f0 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 57 69 |der:.<TimsLib:Wi| 000b3700 6d 70 45 78 74 2e 68 3d 3e 57 69 6d 70 45 78 74 |mpExt.h=>WimpExt| 000b3710 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000b3720 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000b3730 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000b3740 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000b3750 63 61 6c 6c 73 20 74 68 65 20 53 57 49 20 57 69 |calls the SWI Wi| 000b3760 6d 70 45 78 74 5f 50 6c 6f 74 42 6f 72 64 65 72 |mpExt_PlotBorder| 000b3770 2e 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 |. For more infor| 000b3780 6d 61 74 69 6f 6e 20 73 65 65 20 74 68 65 20 64 |mation see the d| 000b3790 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 70 72 6f |ocumentation pro| 000b37a0 76 69 64 65 64 20 77 69 74 68 20 57 69 6d 70 45 |vided with WimpE| 000b37b0 78 74 65 6e 73 69 6f 6e 2e 00 00 00 44 41 54 41 |xtension....DATA| 000b37c0 22 01 00 00 57 69 6d 70 45 78 74 5f 52 65 64 72 |"...WimpExt_Redr| 000b37d0 61 77 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |aw.Syntax:.<os_e| 000b37e0 72 72 6f 72 3e 20 2a 57 69 6d 70 45 78 74 5f 52 |rror> *WimpExt_R| 000b37f0 65 64 72 61 77 20 28 3c 77 69 6e 64 6f 77 5f 72 |edraw (<window_r| 000b3800 65 64 72 61 77 62 6c 6f 63 6b 3e 20 2a 72 65 64 |edrawblock> *red| 000b3810 72 61 77 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 |raw);.Header:.<T| 000b3820 69 6d 73 4c 69 62 3a 57 69 6d 70 45 78 74 2e 68 |imsLib:WimpExt.h| 000b3830 3d 3e 57 69 6d 70 45 78 74 3e 0a 0a 52 65 74 75 |=>WimpExt>..Retu| 000b3840 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000b3850 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000b3860 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000b3870 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 74 |function calls t| 000b3880 68 65 20 53 57 49 20 57 69 6d 70 45 78 74 5f 52 |he SWI WimpExt_R| 000b3890 65 64 72 61 77 2e 20 46 6f 72 20 6d 6f 72 65 20 |edraw. For more | 000b38a0 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 65 20 |information see | 000b38b0 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f |the documentatio| 000b38c0 6e 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 |n provided with | 000b38d0 57 69 6d 70 45 78 74 65 6e 73 69 6f 6e 2e 00 00 |WimpExtension...| 000b38e0 44 41 54 41 e7 04 00 00 44 65 73 6b 4c 69 62 3a |DATA....DeskLib:| 000b38f0 57 69 6d 70 53 57 49 73 2e 68 0a 56 65 72 73 69 |WimpSWIs.h.Versi| 000b3900 6f 6e 3a 20 31 2e 30 37 20 28 32 32 20 4f 63 74 |on: 1.07 (22 Oct| 000b3910 20 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 | 1994).#line.Thi| 000b3920 73 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 |s header declare| 000b3930 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 |s functions for | 000b3940 6c 6f 77 2d 6c 65 76 65 6c 20 68 61 6e 64 6c 69 |low-level handli| 000b3950 6e 67 20 6f 66 20 74 68 65 20 57 69 6d 70 2e 20 |ng of the Wimp. | 000b3960 46 6f 72 20 6d 6f 73 74 20 66 65 61 74 75 72 65 |For most feature| 000b3970 73 2c 20 61 6e 20 65 61 73 69 65 72 2d 74 6f 2d |s, an easier-to-| 000b3980 75 73 65 20 68 69 67 68 2d 6c 65 76 65 6c 20 66 |use high-level f| 000b3990 75 6e 63 74 69 6f 6e 20 69 73 20 61 76 61 69 6c |unction is avail| 000b39a0 61 62 6c 65 2e 20 54 68 65 73 65 20 63 61 6c 6c |able. These call| 000b39b0 73 20 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 |s are equivalent| 000b39c0 20 74 6f 20 74 68 65 20 3c 53 57 49 73 3d 3e 53 | to the <SWIs=>S| 000b39d0 57 49 3a 57 69 6d 70 5f 3e 20 6f 66 20 74 68 65 |WI:Wimp_> of the| 000b39e0 20 73 61 6d 65 20 6e 61 6d 65 2e 0a 0a 23 54 61 | same name...#Ta| 000b39f0 62 6c 65 20 31 37 20 32 32 0a 3c 57 69 6d 70 5f |ble 17 22.<Wimp_| 000b3a00 49 6e 69 74 69 61 6c 69 73 65 3e 0a 3c 57 69 6d |Initialise>.<Wim| 000b3a10 70 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 3e 0a |p_CreateWindow>.| 000b3a20 3c 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e |<Wimp_CreateIcon| 000b3a30 3e 0a 3c 57 69 6d 70 5f 44 65 6c 65 74 65 57 69 |>.<Wimp_DeleteWi| 000b3a40 6e 64 6f 77 3e 0a 3c 57 69 6d 70 5f 44 65 6c 65 |ndow>.<Wimp_Dele| 000b3a50 74 65 49 63 6f 6e 3e 0a 3c 57 69 6d 70 5f 4f 70 |teIcon>.<Wimp_Op| 000b3a60 65 6e 57 69 6e 64 6f 77 3e 0a 3c 57 69 6d 70 5f |enWindow>.<Wimp_| 000b3a70 43 6c 6f 73 65 57 69 6e 64 6f 77 3e 0a 3c 57 69 |CloseWindow>.<Wi| 000b3a80 6d 70 5f 50 6f 6c 6c 3e 0a 3c 57 69 6d 70 5f 50 |mp_Poll>.<Wimp_P| 000b3a90 6f 6c 6c 33 3e 0a 3c 57 69 6d 70 5f 52 65 64 72 |oll3>.<Wimp_Redr| 000b3aa0 61 77 57 69 6e 64 6f 77 3e 0a 3c 57 69 6d 70 5f |awWindow>.<Wimp_| 000b3ab0 55 70 64 61 74 65 57 69 6e 64 6f 77 3e 0a 3c 57 |UpdateWindow>.<W| 000b3ac0 69 6d 70 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 |imp_GetRectangle| 000b3ad0 3e 0a 3c 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |>.<Wimp_GetWindo| 000b3ae0 77 53 74 61 74 65 3e 0a 3c 57 69 6d 70 5f 47 65 |wState>.<Wimp_Ge| 000b3af0 74 57 69 6e 64 6f 77 49 6e 66 6f 3e 0a 3c 57 69 |tWindowInfo>.<Wi| 000b3b00 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 3e |mp_SetIconState>| 000b3b10 0a 3c 57 69 6d 70 5f 47 65 74 49 63 6f 6e 53 74 |.<Wimp_GetIconSt| 000b3b20 61 74 65 3e 0a 3c 57 69 6d 70 5f 47 65 74 50 6f |ate>.<Wimp_GetPo| 000b3b30 69 6e 74 65 72 49 6e 66 6f 3e 0a 3c 57 69 6d 70 |interInfo>.<Wimp| 000b3b40 5f 44 72 61 67 42 6f 78 3e 0a 3c 57 69 6d 70 5f |_DragBox>.<Wimp_| 000b3b50 46 6f 72 63 65 52 65 64 72 61 77 3e 0a 3c 57 69 |ForceRedraw>.<Wi| 000b3b60 6d 70 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 |mp_SetCaretPosit| 000b3b70 69 6f 6e 3e 0a 3c 57 69 6d 70 5f 47 65 74 43 61 |ion>.<Wimp_GetCa| 000b3b80 72 65 74 50 6f 73 69 74 69 6f 6e 3e 0a 3c 57 69 |retPosition>.<Wi| 000b3b90 6d 70 5f 43 72 65 61 74 65 4d 65 6e 75 3e 0a 3c |mp_CreateMenu>.<| 000b3ba0 57 69 6d 70 5f 44 65 63 6f 64 65 4d 65 6e 75 3e |Wimp_DecodeMenu>| 000b3bb0 0a 3c 57 69 6d 70 5f 57 68 69 63 68 49 63 6f 6e |.<Wimp_WhichIcon| 000b3bc0 3e 0a 3c 57 69 6d 70 5f 53 65 74 45 78 74 65 6e |>.<Wimp_SetExten| 000b3bd0 74 3e 0a 3c 57 69 6d 70 5f 53 65 74 50 6f 69 6e |t>.<Wimp_SetPoin| 000b3be0 74 65 72 53 68 61 70 65 3e 0a 3c 57 69 6d 70 5f |terShape>.<Wimp_| 000b3bf0 4f 70 65 6e 54 65 6d 70 6c 61 74 65 3e 0a 3c 57 |OpenTemplate>.<W| 000b3c00 69 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 6c 61 74 |imp_CloseTemplat| 000b3c10 65 3e 0a 3c 57 69 6d 70 5f 4c 6f 61 64 54 65 6d |e>.<Wimp_LoadTem| 000b3c20 70 6c 61 74 65 3e 0a 3c 57 69 6d 70 5f 50 72 6f |plate>.<Wimp_Pro| 000b3c30 63 65 73 73 4b 65 79 3e 0a 3c 57 69 6d 70 5f 43 |cessKey>.<Wimp_C| 000b3c40 6c 6f 73 65 44 6f 77 6e 3e 0a 3c 57 69 6d 70 5f |loseDown>.<Wimp_| 000b3c50 53 74 61 72 74 54 61 73 6b 3e 0a 3c 57 69 6d 70 |StartTask>.<Wimp| 000b3c60 5f 52 65 70 6f 72 74 45 72 72 6f 72 3e 0a 3c 57 |_ReportError>.<W| 000b3c70 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 4f 75 74 |imp_GetWindowOut| 000b3c80 6c 69 6e 65 3e 0a 3c 57 69 6d 70 5f 50 6f 6c 6c |line>.<Wimp_Poll| 000b3c90 49 64 6c 65 3e 0a 3c 57 69 6d 70 5f 50 6f 6c 6c |Idle>.<Wimp_Poll| 000b3ca0 49 64 6c 65 33 3e 0a 3c 57 69 6d 70 5f 50 6c 6f |Idle3>.<Wimp_Plo| 000b3cb0 74 49 63 6f 6e 3e 0a 3c 57 69 6d 70 5f 53 65 74 |tIcon>.<Wimp_Set| 000b3cc0 4d 6f 64 65 3e 0a 3c 57 69 6d 70 5f 53 65 74 50 |Mode>.<Wimp_SetP| 000b3cd0 61 6c 65 74 74 65 3e 0a 3c 57 69 6d 70 5f 52 65 |alette>.<Wimp_Re| 000b3ce0 61 64 50 61 6c 65 74 74 65 3e 0a 3c 57 69 6d 70 |adPalette>.<Wimp| 000b3cf0 5f 53 65 74 43 6f 6c 6f 75 72 3e 0a 3c 57 69 6d |_SetColour>.<Wim| 000b3d00 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 3e 0a 3c |p_SendMessage>.<| 000b3d10 57 69 6d 70 5f 43 72 65 61 74 65 53 75 62 4d 65 |Wimp_CreateSubMe| 000b3d20 6e 75 3e 0a 3c 57 69 6d 70 5f 53 70 72 69 74 65 |nu>.<Wimp_Sprite| 000b3d30 4f 70 3e 0a 3c 57 69 6d 70 5f 42 61 73 65 4f 66 |Op>.<Wimp_BaseOf| 000b3d40 53 70 72 69 74 65 73 3e 0a 3c 57 69 6d 70 5f 42 |Sprites>.<Wimp_B| 000b3d50 6c 6f 63 6b 43 6f 70 79 3e 0a 3c 57 69 6d 70 5f |lockCopy>.<Wimp_| 000b3d60 53 6c 6f 74 53 69 7a 65 3e 0a 3c 57 69 6d 70 5f |SlotSize>.<Wimp_| 000b3d70 52 65 61 64 50 69 78 54 72 61 6e 73 3e 0a 3c 57 |ReadPixTrans>.<W| 000b3d80 69 6d 70 5f 43 6f 6d 6d 61 6e 64 57 69 6e 64 6f |imp_CommandWindo| 000b3d90 77 3e 0a 3c 57 69 6d 70 5f 54 72 61 6e 73 66 65 |w>.<Wimp_Transfe| 000b3da0 72 42 6c 6f 63 6b 3e 0a 3c 57 69 6d 70 5f 53 65 |rBlock>.<Wimp_Se| 000b3db0 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 3e 0a 23 45 |tFontColours>.#E| 000b3dc0 6e 64 54 61 62 6c 65 00 44 41 54 41 88 01 00 00 |ndTable.DATA....| 000b3dd0 77 69 6d 70 74 2e 68 0a 54 68 69 73 20 68 65 61 |wimpt.h.This hea| 000b3de0 64 65 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e |der declares fun| 000b3df0 63 74 69 6f 6e 73 20 66 6f 72 20 6c 6f 77 2d 6c |ctions for low-l| 000b3e00 65 76 65 6c 20 57 69 6d 70 20 68 61 6e 64 6c 69 |evel Wimp handli| 000b3e10 6e 67 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a |ng...Functions:.| 000b3e20 0a 23 54 61 62 6c 65 20 39 20 32 31 0a 3c 77 69 |.#Table 9 21.<wi| 000b3e30 6d 70 74 5f 62 70 70 3e 0a 3c 77 69 6d 70 74 5f |mpt_bpp>.<wimpt_| 000b3e40 63 68 65 63 6b 6d 6f 64 65 3e 0a 3c 77 69 6d 70 |checkmode>.<wimp| 000b3e50 74 5f 63 6f 6d 70 6c 61 69 6e 3e 0a 3c 77 69 6d |t_complain>.<wim| 000b3e60 70 74 5f 64 78 3e 0a 3c 77 69 6d 70 74 5f 64 79 |pt_dx>.<wimpt_dy| 000b3e70 3e 0a 3c 77 69 6d 70 74 5f 66 61 6b 65 5f 65 76 |>.<wimpt_fake_ev| 000b3e80 65 6e 74 3e 0a 3c 77 69 6d 70 74 5f 66 6f 72 63 |ent>.<wimpt_forc| 000b3e90 65 72 65 64 72 61 77 3e 0a 3c 77 69 6d 70 74 5f |eredraw>.<wimpt_| 000b3ea0 69 6e 69 74 3e 0a 3c 77 69 6d 70 74 5f 6c 61 73 |init>.<wimpt_las| 000b3eb0 74 5f 65 76 65 6e 74 3e 0a 3c 77 69 6d 70 74 5f |t_event>.<wimpt_| 000b3ec0 6c 61 73 74 5f 65 76 65 6e 74 5f 77 61 73 5f 61 |last_event_was_a| 000b3ed0 5f 6b 65 79 3e 0a 3c 77 69 6d 70 74 5f 6d 6f 64 |_key>.<wimpt_mod| 000b3ee0 65 3e 0a 3c 77 69 6d 70 74 5f 6e 6f 65 72 72 3e |e>.<wimpt_noerr>| 000b3ef0 0a 3c 77 69 6d 70 74 5f 70 6f 6c 6c 3e 0a 3c 77 |.<wimpt_poll>.<w| 000b3f00 69 6d 70 74 5f 70 72 6f 67 72 61 6d 6e 61 6d 65 |impt_programname| 000b3f10 3e 0a 3c 77 69 6d 70 74 5f 72 65 70 6f 72 74 65 |>.<wimpt_reporte| 000b3f20 72 72 6f 72 3e 0a 3c 77 69 6d 70 74 5f 74 61 73 |rror>.<wimpt_tas| 000b3f30 6b 3e 0a 3c 77 69 6d 70 74 5f 77 69 6d 70 76 65 |k>.<wimpt_wimpve| 000b3f40 72 73 69 6f 6e 3e 0a 23 45 6e 64 54 61 62 6c 65 |rsion>.#EndTable| 000b3f50 44 49 52 24 50 02 00 00 50 02 00 00 a0 41 0b 00 |DIR$P...P....A..| 000b3f60 46 ff ff ff 72 f1 ea 24 b3 00 00 00 13 00 00 00 |F...r..$........| 000b3f70 00 00 00 00 62 70 70 00 54 42 0b 00 46 ff ff ff |....bpp.TB..F...| 000b3f80 81 f5 ea 24 cc 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b3f90 63 68 65 63 6b 6d 6f 64 65 00 00 00 20 43 0b 00 |checkmode... C..| 000b3fa0 46 ff ff ff 50 fb ea 24 fd 00 00 00 13 00 00 00 |F...P..$........| 000b3fb0 00 00 00 00 63 6f 6d 70 6c 61 69 6e 00 00 00 00 |....complain....| 000b3fc0 20 44 0b 00 46 ff ff ff 6d ff ea 24 b9 00 00 00 | D..F...m..$....| 000b3fd0 13 00 00 00 00 00 00 00 64 78 00 00 dc 44 0b 00 |........dx...D..| 000b3fe0 46 ff ff ff 74 03 eb 24 b9 00 00 00 13 00 00 00 |F...t..$........| 000b3ff0 00 00 00 00 64 79 00 00 98 45 0b 00 46 ff ff ff |....dy...E..F...| 000b4000 89 07 eb 24 a6 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b4010 66 61 6b 65 5f 65 76 65 6e 74 00 00 40 46 0b 00 |fake_event..@F..| 000b4020 46 ff ff ff df 0a eb 24 8d 00 00 00 13 00 00 00 |F......$........| 000b4030 00 00 00 00 66 6f 72 63 65 72 65 64 72 61 77 00 |....forceredraw.| 000b4040 d0 46 0b 00 46 ff ff ff b3 11 eb 24 50 01 00 00 |.F..F......$P...| 000b4050 13 00 00 00 00 00 00 00 69 6e 69 74 00 00 00 00 |........init....| 000b4060 20 48 0b 00 46 ff ff ff ef 19 eb 24 bf 00 00 00 | H..F......$....| 000b4070 13 00 00 00 00 00 00 00 6c 61 73 74 5f 65 76 65 |........last_eve| 000b4080 6e 74 00 00 e0 48 0b 00 46 ff ff ff 7c 1d eb 24 |nt...H..F...|..$| 000b4090 f2 00 00 00 13 00 00 00 00 00 00 00 6c 61 73 74 |............last| 000b40a0 5f 65 76 65 6e 74 5f 77 61 73 5f 61 5f 6b 65 79 |_event_was_a_key| 000b40b0 00 00 00 00 d4 49 0b 00 46 ff ff ff 94 21 eb 24 |.....I..F....!.$| 000b40c0 dd 00 00 00 13 00 00 00 00 00 00 00 6d 6f 64 65 |............mode| 000b40d0 00 00 00 00 b4 4a 0b 00 46 ff ff ff 0b 27 eb 24 |.....J..F....'.$| 000b40e0 9e 00 00 00 13 00 00 00 00 00 00 00 6e 6f 65 72 |............noer| 000b40f0 72 00 00 00 54 4b 0b 00 46 ff ff ff bd 31 eb 24 |r...TK..F....1.$| 000b4100 3d 01 00 00 13 00 00 00 00 00 00 00 70 6f 6c 6c |=...........poll| 000b4110 00 00 00 00 94 4c 0b 00 46 ff ff ff ce 36 eb 24 |.....L..F....6.$| 000b4120 bd 00 00 00 13 00 00 00 00 00 00 00 70 72 6f 67 |............prog| 000b4130 72 61 6d 6e 61 6d 65 00 54 4d 0b 00 46 ff ff ff |ramname.TM..F...| 000b4140 4a 3b eb 24 02 01 00 00 13 00 00 00 00 00 00 00 |J;.$............| 000b4150 72 65 70 6f 72 74 65 72 72 6f 72 00 58 4e 0b 00 |reporterror.XN..| 000b4160 46 ff ff ff 2f 3f eb 24 9a 00 00 00 13 00 00 00 |F.../?.$........| 000b4170 00 00 00 00 74 61 73 6b 00 00 00 00 f4 4e 0b 00 |....task.....N..| 000b4180 46 ff ff ff c0 42 eb 24 e6 00 00 00 13 00 00 00 |F....B.$........| 000b4190 00 00 00 00 77 69 6d 70 76 65 72 73 69 6f 6e 00 |....wimpversion.| 000b41a0 44 41 54 41 b3 00 00 00 77 69 6d 70 74 5f 62 70 |DATA....wimpt_bp| 000b41b0 70 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 77 69 |p.Syntax:.int wi| 000b41c0 6d 70 74 5f 62 70 70 20 28 76 6f 69 64 29 3b 0a |mpt_bpp (void);.| 000b41d0 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 74 2e 68 |Header:.<wimpt.h| 000b41e0 3d 3e 77 69 6d 70 74 3e 0a 0a 52 65 74 75 72 6e |=>wimpt>..Return| 000b41f0 73 3a 09 42 69 74 73 20 70 65 72 20 73 63 72 65 |s:.Bits per scre| 000b4200 65 6e 20 70 69 78 65 6c 2e 0a 0a 54 68 65 20 76 |en pixel...The v| 000b4210 61 6c 75 65 20 69 73 20 6f 6e 6c 79 20 76 61 6c |alue is only val| 000b4220 69 64 20 69 66 20 3c 77 69 6d 70 74 5f 63 68 65 |id if <wimpt_che| 000b4230 63 6b 6d 6f 64 65 3e 20 69 73 20 63 61 6c 6c 65 |ckmode> is calle| 000b4240 64 20 61 74 20 72 65 64 72 61 77 20 65 76 65 6e |d at redraw even| 000b4250 74 73 2e 00 44 41 54 41 cc 00 00 00 77 69 6d 70 |ts..DATA....wimp| 000b4260 74 5f 63 68 65 63 6b 6d 6f 64 65 0a 53 79 6e 74 |t_checkmode.Synt| 000b4270 61 78 3a 09 09 3c 42 4f 4f 4c 3e 20 77 69 6d 70 |ax:..<BOOL> wimp| 000b4280 74 5f 63 68 65 63 6b 6d 6f 64 65 20 28 76 6f 69 |t_checkmode (voi| 000b4290 64 29 3b 0a 48 65 61 64 65 72 3a 3c 77 69 6d 70 |d);.Header:<wimp| 000b42a0 74 2e 68 3d 3e 77 69 6d 70 74 3e 0a 0a 52 65 74 |t.h=>wimpt>..Ret| 000b42b0 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 69 66 20 |urns:.<TRUE> if | 000b42c0 73 63 72 65 65 6e 20 6d 6f 64 65 20 68 61 73 20 |screen mode has | 000b42d0 63 68 61 6e 67 65 64 2e 0a 0a 54 68 69 73 20 66 |changed...This f| 000b42e0 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 |unction register| 000b42f0 73 20 77 69 74 68 20 74 68 65 20 77 69 6d 70 74 |s with the wimpt| 000b4300 20 6d 6f 64 75 6c 65 20 74 68 65 20 63 75 72 72 | module the curr| 000b4310 65 6e 74 20 73 63 72 65 65 6e 20 6d 6f 64 65 2e |ent screen mode.| 000b4320 44 41 54 41 fd 00 00 00 77 69 6d 70 74 5f 63 6f |DATA....wimpt_co| 000b4330 6d 70 6c 61 69 6e 0a 53 79 6e 74 61 78 3a 09 3c |mplain.Syntax:.<| 000b4340 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 74 |os_error> *wimpt| 000b4350 5f 63 6f 6d 70 6c 61 69 6e 20 28 6f 73 5f 65 72 |_complain (os_er| 000b4360 72 6f 72 20 2a 65 29 3b 0a 48 65 61 64 65 72 3a |ror *e);.Header:| 000b4370 09 3c 77 69 6d 70 74 2e 68 3d 3e 77 69 6d 70 74 |.<wimpt.h=>wimpt| 000b4380 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000b4390 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000b43a0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000b43b0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000b43c0 72 65 70 6f 72 74 73 20 74 68 65 20 65 72 72 6f |reports the erro| 000b43d0 72 20 69 66 20 7b 2f 7d 65 21 3d 30 7b 2f 7d 2c |r if {/}e!=0{/},| 000b43e0 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 2e | and returns it.| 000b43f0 20 55 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 | Use this functi| 000b4400 6f 6e 20 69 66 20 74 68 65 20 65 72 72 6f 72 20 |on if the error | 000b4410 69 73 20 6e 6f 74 20 66 61 74 61 6c 2e 00 00 00 |is not fatal....| 000b4420 44 41 54 41 b9 00 00 00 77 69 6d 70 74 5f 64 78 |DATA....wimpt_dx| 000b4430 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 77 69 6d |.Syntax:.int wim| 000b4440 70 74 5f 64 78 20 28 76 6f 69 64 29 3b 0a 48 65 |pt_dx (void);.He| 000b4450 61 64 65 72 3a 09 3c 77 69 6d 70 74 2e 68 3d 3e |ader:.<wimpt.h=>| 000b4460 77 69 6d 70 74 3e 0a 0a 52 65 74 75 72 6e 73 3a |wimpt>..Returns:| 000b4470 09 4f 53 20 75 6e 69 74 73 20 70 65 72 20 73 63 |.OS units per sc| 000b4480 72 65 65 6e 20 70 69 78 65 6c 20 28 58 29 2e 0a |reen pixel (X)..| 000b4490 0a 54 68 65 20 76 61 6c 75 65 20 69 73 20 6f 6e |.The value is on| 000b44a0 6c 79 20 76 61 6c 69 64 20 69 66 20 3c 77 69 6d |ly valid if <wim| 000b44b0 70 74 5f 63 68 65 63 6b 6d 6f 64 65 3e 20 69 73 |pt_checkmode> is| 000b44c0 20 63 61 6c 6c 65 64 20 61 74 20 72 65 64 72 61 | called at redra| 000b44d0 77 20 65 76 65 6e 74 73 2e 00 00 00 44 41 54 41 |w events....DATA| 000b44e0 b9 00 00 00 77 69 6d 70 74 5f 64 79 0a 53 79 6e |....wimpt_dy.Syn| 000b44f0 74 61 78 3a 09 69 6e 74 20 77 69 6d 70 74 5f 64 |tax:.int wimpt_d| 000b4500 79 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |y (void);.Header| 000b4510 3a 09 3c 77 69 6d 70 74 2e 68 3d 3e 77 69 6d 70 |:.<wimpt.h=>wimp| 000b4520 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 4f 53 20 |t>..Returns:.OS | 000b4530 75 6e 69 74 73 20 70 65 72 20 73 63 72 65 65 6e |units per screen| 000b4540 20 70 69 78 65 6c 20 28 59 29 2e 0a 0a 54 68 65 | pixel (Y)...The| 000b4550 20 76 61 6c 75 65 20 69 73 20 6f 6e 6c 79 20 76 | value is only v| 000b4560 61 6c 69 64 20 69 66 20 3c 77 69 6d 70 74 5f 63 |alid if <wimpt_c| 000b4570 68 65 63 6b 6d 6f 64 65 3e 20 69 73 20 63 61 6c |heckmode> is cal| 000b4580 6c 65 64 20 61 74 20 72 65 64 72 61 77 20 65 76 |led at redraw ev| 000b4590 65 6e 74 73 2e 00 00 00 44 41 54 41 a6 00 00 00 |ents....DATA....| 000b45a0 77 69 6d 70 74 5f 66 61 6b 65 5f 65 76 65 6e 74 |wimpt_fake_event| 000b45b0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 |.Syntax:.void wi| 000b45c0 6d 70 74 5f 66 61 6b 65 5f 65 76 65 6e 74 20 28 |mpt_fake_event (| 000b45d0 3c 77 69 6d 70 5f 65 76 65 6e 74 73 74 72 3e 20 |<wimp_eventstr> | 000b45e0 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c |*blk);.Header:.<| 000b45f0 77 69 6d 70 74 2e 68 3d 3e 77 69 6d 70 74 3e 0a |wimpt.h=>wimpt>.| 000b4600 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 |.This function p| 000b4610 6f 73 74 73 20 61 6e 20 65 76 65 6e 74 20 74 6f |osts an event to| 000b4620 20 62 65 20 63 6f 6c 6c 65 63 74 65 64 20 62 79 | be collected by| 000b4630 20 3c 77 69 6d 70 74 5f 70 6f 6c 6c 3e 2e 00 00 | <wimpt_poll>...| 000b4640 44 41 54 41 8d 00 00 00 77 69 6d 70 74 5f 66 6f |DATA....wimpt_fo| 000b4650 72 63 65 72 65 64 72 61 77 0a 53 79 6e 74 61 78 |rceredraw.Syntax| 000b4660 3a 09 76 6f 69 64 20 77 69 6d 70 74 5f 66 6f 72 |:.void wimpt_for| 000b4670 63 65 72 65 64 72 61 77 20 28 76 6f 69 64 29 3b |ceredraw (void);| 000b4680 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 74 2e |.Header:.<wimpt.| 000b4690 68 3d 3e 77 69 6d 70 74 3e 0a 0a 54 68 69 73 20 |h=>wimpt>..This | 000b46a0 66 75 6e 63 74 69 6f 6e 20 66 6f 72 63 65 73 20 |function forces | 000b46b0 61 20 72 65 64 72 61 77 20 6f 66 20 74 68 65 20 |a redraw of the | 000b46c0 77 68 6f 6c 65 20 73 63 72 65 65 6e 2e 00 00 00 |whole screen....| 000b46d0 44 41 54 41 50 01 00 00 77 69 6d 70 74 5f 69 6e |DATAP...wimpt_in| 000b46e0 69 74 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 77 |it.Syntax:.int w| 000b46f0 69 6d 70 74 5f 69 6e 69 74 20 28 63 68 61 72 20 |impt_init (char | 000b4700 2a 70 72 6f 67 72 61 6d 6e 61 6d 65 29 3b 0a 48 |*programname);.H| 000b4710 65 61 64 65 72 3a 09 3c 77 69 6d 70 74 2e 68 3d |eader:.<wimpt.h=| 000b4720 3e 77 69 6d 70 74 3e 0a 0a 52 65 74 75 72 6e 73 |>wimpt>..Returns| 000b4730 3a 09 57 69 6d 70 20 76 65 72 73 69 6f 6e 20 6e |:.Wimp version n| 000b4740 75 6d 62 65 72 20 2a 20 31 30 30 2e 0a 0a 54 68 |umber * 100...Th| 000b4750 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 |is function sets| 000b4760 20 75 70 20 79 6f 75 72 20 70 72 6f 67 72 61 6d | up your program| 000b4770 20 61 73 20 61 20 57 69 6d 70 20 74 61 73 6b 2e | as a Wimp task.| 000b4780 20 49 74 20 72 65 6d 65 6d 62 65 72 73 20 73 63 | It remembers sc| 000b4790 72 65 65 6e 20 6d 6f 64 65 20 61 6e 64 20 73 65 |reen mode and se| 000b47a0 74 73 20 75 70 20 73 69 67 6e 61 6c 20 68 61 6e |ts up signal han| 000b47b0 64 6c 65 72 73 20 73 6f 20 74 68 61 74 20 74 61 |dlers so that ta| 000b47c0 73 6b 20 65 78 69 74 73 20 63 6c 65 61 6e 6c 79 |sk exits cleanly| 000b47d0 2e 20 43 61 6c 6c 73 20 3c 77 69 6d 70 5f 74 61 |. Calls <wimp_ta| 000b47e0 73 6b 69 6e 69 74 3e 20 61 6e 64 20 73 74 6f 72 |skinit> and stor| 000b47f0 65 73 20 74 61 73 6b 5f 69 64 20 72 65 74 75 72 |es task_id retur| 000b4800 6e 65 64 2e 20 41 6c 73 6f 20 69 6e 73 74 61 6c |ned. Also instal| 000b4810 6c 73 20 65 78 69 74 2d 68 61 6e 64 6c 65 72 2e |ls exit-handler.| 000b4820 44 41 54 41 bf 00 00 00 77 69 6d 70 74 5f 6c 61 |DATA....wimpt_la| 000b4830 73 74 5f 65 76 65 6e 74 0a 53 79 6e 74 61 78 3a |st_event.Syntax:| 000b4840 09 3c 77 69 6d 70 5f 65 76 65 6e 74 73 74 72 3e |.<wimp_eventstr>| 000b4850 20 2a 77 69 6d 70 74 5f 6c 61 73 74 5f 65 76 65 | *wimpt_last_eve| 000b4860 6e 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |nt (void);.Heade| 000b4870 72 3a 09 3c 77 69 6d 70 74 2e 68 3d 3e 77 69 6d |r:.<wimpt.h=>wim| 000b4880 70 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |pt>..Returns:.Po| 000b4890 69 6e 74 65 72 20 74 6f 20 65 76 65 6e 74 2e 0a |inter to event..| 000b48a0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000b48b0 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 20 |eturns the last | 000b48c0 65 76 65 6e 74 20 72 65 74 75 72 6e 65 64 20 62 |event returned b| 000b48d0 79 20 3c 77 69 6d 70 74 5f 70 6f 6c 6c 3e 2e 00 |y <wimpt_poll>..| 000b48e0 44 41 54 41 f2 00 00 00 77 69 6d 70 74 5f 6c 61 |DATA....wimpt_la| 000b48f0 73 74 5f 65 76 65 6e 74 5f 77 61 73 5f 61 5f 6b |st_event_was_a_k| 000b4900 65 79 0a 53 79 6e 74 61 78 3a 09 69 6e 74 20 77 |ey.Syntax:.int w| 000b4910 69 6d 70 74 5f 6c 61 73 74 5f 65 76 65 6e 74 5f |impt_last_event_| 000b4920 77 61 73 5f 61 5f 6b 65 79 20 28 76 6f 69 64 29 |was_a_key (void)| 000b4930 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 74 |;.Header:.<wimpt| 000b4940 2e 68 3d 3e 77 69 6d 70 74 3e 0a 0a 52 65 74 75 |.h=>wimpt>..Retu| 000b4950 72 6e 73 3a 09 4e 6f 6e 2d 7a 65 72 6f 20 69 66 |rns:.Non-zero if| 000b4960 20 6c 61 73 74 20 65 76 65 6e 74 20 77 61 73 20 | last event was | 000b4970 6b 65 79 73 74 72 6f 6b 65 2e 0a 0a 54 68 69 73 |keystroke...This| 000b4980 20 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f 72 6d | function inform| 000b4990 73 20 79 6f 75 20 69 66 20 74 68 65 20 6c 61 73 |s you if the las| 000b49a0 74 20 65 76 65 6e 74 20 72 65 74 75 72 6e 65 64 |t event returned| 000b49b0 20 62 79 20 3c 77 69 6d 70 74 5f 70 6f 6c 6c 3e | by <wimpt_poll>| 000b49c0 20 77 61 73 20 61 20 6b 65 79 20 73 74 72 6f 6b | was a key strok| 000b49d0 65 2e 00 00 44 41 54 41 dd 00 00 00 77 69 6d 70 |e...DATA....wimp| 000b49e0 74 5f 6d 6f 64 65 0a 53 79 6e 74 61 78 3a 09 69 |t_mode.Syntax:.i| 000b49f0 6e 74 20 77 69 6d 70 74 5f 6d 6f 64 65 20 28 76 |nt wimpt_mode (v| 000b4a00 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |oid);.Header:.<w| 000b4a10 69 6d 70 74 2e 68 3d 3e 77 69 6d 70 74 3e 0a 0a |impt.h=>wimpt>..| 000b4a20 52 65 74 75 72 6e 73 3a 09 54 68 65 20 63 75 72 |Returns:.The cur| 000b4a30 72 65 6e 74 20 73 63 72 65 65 6e 20 6d 6f 64 65 |rent screen mode| 000b4a40 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000b4a50 20 72 65 61 64 73 20 74 68 65 20 63 75 72 72 65 | reads the curre| 000b4a60 6e 74 20 73 63 72 65 65 6e 20 6d 6f 64 65 2e 20 |nt screen mode. | 000b4a70 49 74 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 |It is only valid| 000b4a80 20 69 66 20 3c 77 69 6d 70 74 5f 63 68 65 63 6b | if <wimpt_check| 000b4a90 6d 6f 64 65 3e 20 69 73 20 63 61 6c 6c 65 64 20 |mode> is called | 000b4aa0 61 74 20 72 65 64 72 61 77 20 65 76 65 6e 74 73 |at redraw events| 000b4ab0 2e 00 00 00 44 41 54 41 9e 00 00 00 77 69 6d 70 |....DATA....wimp| 000b4ac0 74 5f 6e 6f 65 72 72 0a 53 79 6e 74 61 78 3a 09 |t_noerr.Syntax:.| 000b4ad0 76 6f 69 64 20 77 69 6d 70 74 5f 6e 6f 65 72 72 |void wimpt_noerr| 000b4ae0 20 28 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 65 29 | (<os_error> *e)| 000b4af0 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 74 |;.Header:.<wimpt| 000b4b00 2e 68 3d 3e 77 69 6d 70 74 3e 0a 0a 54 68 69 73 |.h=>wimpt>..This| 000b4b10 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6f 72 74 | function report| 000b4b20 73 20 74 68 65 20 65 72 72 6f 72 20 77 68 6f 73 |s the error whos| 000b4b30 65 20 70 6f 69 6e 74 65 72 20 69 73 20 67 69 76 |e pointer is giv| 000b4b40 65 6e 2c 20 69 66 20 7b 2f 7d 65 21 3d 30 7b 2f |en, if {/}e!=0{/| 000b4b50 7d 2e 00 00 44 41 54 41 3d 01 00 00 77 69 6d 70 |}...DATA=...wimp| 000b4b60 74 5f 70 6f 6c 6c 0a 53 79 6e 74 61 78 3a 09 3c |t_poll.Syntax:.<| 000b4b70 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 74 |os_error> *wimpt| 000b4b80 5f 70 6f 6c 6c 20 28 3c 77 69 6d 70 5f 65 6d 61 |_poll (<wimp_ema| 000b4b90 73 6b 3e 20 6d 61 73 6b 2c 20 3c 77 69 6d 70 5f |sk> mask, <wimp_| 000b4ba0 65 76 65 6e 74 73 74 72 3e 20 2a 72 65 73 75 6c |eventstr> *resul| 000b4bb0 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d |t);.Header:.<wim| 000b4bc0 70 74 2e 68 3d 3e 77 69 6d 70 74 3e 0a 0a 52 65 |pt.h=>wimpt>..Re| 000b4bd0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000b4be0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000b4bf0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000b4c00 73 20 66 75 6e 63 74 69 6f 6e 20 70 6f 6c 6c 73 |s function polls| 000b4c10 20 66 6f 72 20 61 6e 20 65 76 65 6e 74 20 66 72 | for an event fr| 000b4c20 6f 6d 20 74 68 65 20 57 69 6d 70 2e 20 59 6f 75 |om the Wimp. You| 000b4c30 20 73 68 6f 75 6c 64 20 75 73 65 20 74 68 69 73 | should use this| 000b4c40 20 72 61 74 68 65 72 20 74 68 61 6e 20 3c 77 69 | rather than <wi| 000b4c50 6d 70 5f 70 6f 6c 6c 3d 3e 77 69 6d 70 5f 70 6f |mp_poll=>wimp_po| 000b4c60 6c 6c 5f 3e 20 69 66 20 79 6f 75 20 5f 72 65 61 |ll_> if you _rea| 000b4c70 6c 6c 79 5f 20 6e 65 65 64 20 74 6f 20 75 73 65 |lly_ need to use| 000b4c80 20 6c 6f 77 2d 6c 65 76 65 6c 20 63 61 6c 6c 73 | low-level calls| 000b4c90 2e 00 00 00 44 41 54 41 bd 00 00 00 77 69 6d 70 |....DATA....wimp| 000b4ca0 74 5f 70 72 6f 67 72 61 6d 6e 61 6d 65 0a 53 79 |t_programname.Sy| 000b4cb0 6e 74 61 78 3a 09 63 68 61 72 20 2a 77 69 6d 70 |ntax:.char *wimp| 000b4cc0 74 5f 70 72 6f 67 72 61 6d 6e 61 6d 65 20 28 76 |t_programname (v| 000b4cd0 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |oid);.Header:.<w| 000b4ce0 69 6d 70 74 2e 68 3d 3e 77 69 6d 70 74 3e 0a 0a |impt.h=>wimpt>..| 000b4cf0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000b4d00 20 74 6f 20 70 72 6f 67 72 61 6d 20 6e 61 6d 65 | to program name| 000b4d10 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000b4d20 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72 6f | returns the pro| 000b4d30 67 72 61 6d 20 6e 61 6d 65 20 70 61 73 73 65 64 |gram name passed| 000b4d40 20 74 6f 20 3c 77 69 6d 70 74 5f 69 6e 69 74 3e | to <wimpt_init>| 000b4d50 2e 00 00 00 44 41 54 41 02 01 00 00 77 69 6d 70 |....DATA....wimp| 000b4d60 74 5f 72 65 70 6f 72 74 65 72 72 6f 72 0a 53 79 |t_reporterror.Sy| 000b4d70 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 6d 70 74 |ntax:.void wimpt| 000b4d80 5f 72 65 70 6f 72 74 65 72 72 6f 72 20 28 3c 6f |_reporterror (<o| 000b4d90 73 5f 65 72 72 6f 72 3e 20 2a 65 72 72 2c 20 3c |s_error> *err, <| 000b4da0 77 69 6d 70 5f 65 72 72 66 6c 61 67 73 3e 20 66 |wimp_errflags> f| 000b4db0 6c 61 67 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c |lags);.Header:.<| 000b4dc0 77 69 6d 70 74 2e 68 3d 3e 77 69 6d 70 74 3e 0a |wimpt.h=>wimpt>.| 000b4dd0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 |.This function r| 000b4de0 65 70 6f 72 74 73 20 61 6e 20 4f 53 20 65 72 72 |eports an OS err| 000b4df0 6f 72 20 69 6e 20 61 20 64 69 61 6c 6f 75 65 20 |or in a dialoue | 000b4e00 62 6f 78 2e 20 49 74 20 69 73 20 73 69 6d 69 6c |box. It is simil| 000b4e10 61 72 20 74 6f 20 3c 77 69 6d 70 5f 72 65 70 6f |ar to <wimp_repo| 000b4e20 72 74 65 72 72 6f 72 3e 2c 20 62 75 74 20 69 6e |rterror>, but in| 000b4e30 63 6c 75 64 65 73 20 74 68 65 20 70 72 6f 67 72 |cludes the progr| 000b4e40 61 6d 20 6e 61 6d 65 20 61 75 74 6f 6d 61 74 69 |am name automati| 000b4e50 63 61 6c 6c 79 2e 00 00 44 41 54 41 9a 00 00 00 |cally...DATA....| 000b4e60 77 69 6d 70 74 5f 74 61 73 6b 0a 53 79 6e 74 61 |wimpt_task.Synta| 000b4e70 78 3a 09 77 69 6d 70 5f 74 20 77 69 6d 70 74 5f |x:.wimp_t wimpt_| 000b4e80 74 61 73 6b 20 28 76 6f 69 64 29 3b 0a 48 65 61 |task (void);.Hea| 000b4e90 64 65 72 3a 09 3c 77 69 6d 70 74 2e 68 3d 3e 77 |der:.<wimpt.h=>w| 000b4ea0 69 6d 70 74 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |impt>..Returns:.| 000b4eb0 74 61 73 6b 20 68 61 6e 64 6c 65 2e 0a 0a 54 68 |task handle...Th| 000b4ec0 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 66 6f |is function info| 000b4ed0 72 6d 73 20 74 68 65 20 63 61 6c 6c 65 72 20 6f |rms the caller o| 000b4ee0 66 20 69 74 73 20 74 61 73 6b 20 68 61 6e 64 6c |f its task handl| 000b4ef0 65 2e 00 00 44 41 54 41 e6 00 00 00 77 69 6d 70 |e...DATA....wimp| 000b4f00 74 5f 77 69 6d 70 76 65 72 73 69 6f 6e 0a 53 79 |t_wimpversion.Sy| 000b4f10 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 6d 70 74 |ntax:.void wimpt| 000b4f20 5f 77 69 6d 70 76 65 72 73 69 6f 6e 20 28 69 6e |_wimpversion (in| 000b4f30 74 20 76 65 72 73 69 6f 6e 29 3b 0a 48 65 61 64 |t version);.Head| 000b4f40 65 72 3a 09 3c 77 69 6d 70 74 2e 68 3d 3e 77 69 |er:.<wimpt.h=>wi| 000b4f50 6d 70 74 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |mpt>..This funct| 000b4f60 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 63 61 |ion should be ca| 000b4f70 6c 6c 65 64 20 62 65 66 6f 72 65 20 63 61 6c 6c |lled before call| 000b4f80 69 6e 67 20 3c 77 69 6d 70 74 5f 69 6e 69 74 3e |ing <wimpt_init>| 000b4f90 2e 20 49 74 20 74 65 6c 6c 73 20 77 69 6d 70 74 |. It tells wimpt| 000b4fa0 20 77 68 61 74 20 76 65 72 73 69 6f 6e 20 6f 66 | what version of| 000b4fb0 20 74 68 65 20 57 69 6d 70 20 79 6f 75 20 77 61 | the Wimp you wa| 000b4fc0 6e 74 20 28 32 30 30 2c 20 33 30 30 2c 20 33 31 |nt (200, 300, 31| 000b4fd0 30 20 6f 72 20 33 31 31 29 2e 00 00 44 49 52 24 |0 or 311)...DIR$| 000b4fe0 48 18 00 00 48 18 00 00 24 68 0b 00 46 ff ff ff |H...H...$h..F...| 000b4ff0 d1 96 4a 26 b9 01 00 00 13 00 00 00 00 00 00 00 |..J&............| 000b5000 42 61 73 65 4f 66 53 70 72 69 74 65 73 00 00 00 |BaseOfSprites...| 000b5010 e0 69 0b 00 46 fd ff ff 3c 52 e9 24 c6 00 00 00 |.i..F...<R.$....| 000b5020 13 00 00 00 00 00 00 00 62 61 73 65 6f 66 73 70 |........baseofsp| 000b5030 72 69 74 65 73 5f 00 00 a8 6a 0b 00 46 ff ff ff |rites_...j..F...| 000b5040 ad bd e6 24 4f 01 00 00 13 00 00 00 00 00 00 00 |...$O...........| 000b5050 62 62 69 74 73 00 00 00 f8 6b 0b 00 46 ff ff ff |bbits....k..F...| 000b5060 fe ad 4a 26 f6 01 00 00 13 00 00 00 00 00 00 00 |..J&............| 000b5070 42 6c 6f 63 6b 43 6f 70 79 00 00 00 f0 6d 0b 00 |BlockCopy....m..| 000b5080 46 fd ff ff 5f 12 ea 24 f6 00 00 00 13 00 00 00 |F..._..$........| 000b5090 00 00 00 00 62 6c 6f 63 6b 63 6f 70 79 5f 00 00 |....blockcopy_..| 000b50a0 e8 6e 0b 00 46 ff ff ff 30 19 e8 24 f2 00 00 00 |.n..F...0..$....| 000b50b0 13 00 00 00 00 00 00 00 62 6f 78 00 dc 6f 0b 00 |........box..o..| 000b50c0 46 ff ff ff bc 3c e7 24 c9 00 00 00 13 00 00 00 |F....<.$........| 000b50d0 00 00 00 00 63 61 72 65 74 73 74 72 00 00 00 00 |....caretstr....| 000b50e0 a8 70 0b 00 46 ff ff ff d2 31 ea 24 cb 00 00 00 |.p..F....1.$....| 000b50f0 13 00 00 00 00 00 00 00 63 6c 6f 73 65 5f 74 65 |........close_te| 000b5100 6d 70 6c 61 74 65 00 00 74 71 0b 00 46 ff ff ff |mplate..tq..F...| 000b5110 3c bd e9 24 bc 00 00 00 13 00 00 00 00 00 00 00 |<..$............| 000b5120 63 6c 6f 73 65 5f 77 69 6e 64 00 00 30 72 0b 00 |close_wind..0r..| 000b5130 46 ff ff ff c1 d6 49 26 6b 01 00 00 13 00 00 00 |F.....I&k.......| 000b5140 00 00 00 00 43 6c 6f 73 65 44 6f 77 6e 00 00 00 |....CloseDown...| 000b5150 9c 73 0b 00 46 ff ff ff 57 38 e9 24 c0 00 00 00 |.s..F...W8.$....| 000b5160 13 00 00 00 00 00 00 00 63 6c 6f 73 65 64 6f 77 |........closedow| 000b5170 6e 5f 00 00 5c 74 0b 00 46 ff ff ff 5a c5 49 26 |n_..\t..F...Z.I&| 000b5180 f3 00 00 00 13 00 00 00 00 00 00 00 43 6c 6f 73 |............Clos| 000b5190 65 54 65 6d 70 6c 61 74 65 00 00 00 50 75 0b 00 |eTemplate...Pu..| 000b51a0 46 ff ff ff 5f 0e 49 26 1a 01 00 00 13 00 00 00 |F..._.I&........| 000b51b0 00 00 00 00 43 6c 6f 73 65 57 69 6e 64 6f 77 00 |....CloseWindow.| 000b51c0 6c 76 0b 00 46 ff ff ff f8 97 37 26 3d 01 00 00 |lv..F.....7&=...| 000b51d0 13 00 00 00 00 00 00 00 63 6f 6c 6f 75 72 00 00 |........colour..| 000b51e0 ac 77 0b 00 46 ff ff ff d5 29 b6 22 29 01 00 00 |.w..F....).")...| 000b51f0 13 00 00 00 00 00 00 00 63 6f 6d 6d 61 6e 64 5f |........command_| 000b5200 74 61 67 00 d8 78 0b 00 46 ff ff ff dd 29 b6 22 |tag..x..F....)."| 000b5210 ab 00 00 00 13 00 00 00 00 00 00 00 63 6f 6d 6d |............comm| 000b5220 61 6e 64 77 69 6e 64 00 84 79 0b 00 46 ff ff ff |andwind..y..F...| 000b5230 7e 03 4b 26 46 02 00 00 13 00 00 00 00 00 00 00 |~.K&F...........| 000b5240 43 6f 6d 6d 61 6e 64 57 69 6e 64 6f 77 00 00 00 |CommandWindow...| 000b5250 cc 7b 0b 00 46 fd ff ff 35 8d e9 24 e2 00 00 00 |.{..F...5..$....| 000b5260 13 00 00 00 00 00 00 00 63 6f 6d 6d 61 6e 64 77 |........commandw| 000b5270 69 6e 64 6f 77 5f 00 00 b0 7c 0b 00 46 ff ff ff |indow_...|..F...| 000b5280 b0 61 37 26 82 00 00 00 13 00 00 00 00 00 00 00 |.a7&............| 000b5290 63 6f 6f 72 64 00 00 00 34 7d 0b 00 46 ff ff ff |coord...4}..F...| 000b52a0 b4 99 e9 24 41 01 00 00 13 00 00 00 00 00 00 00 |...$A...........| 000b52b0 63 6f 72 72 75 70 74 5f 66 70 5f 73 74 61 74 65 |corrupt_fp_state| 000b52c0 5f 6f 6e 5f 70 6f 6c 6c 00 00 00 00 78 7e 0b 00 |_on_poll....x~..| 000b52d0 46 ff ff ff 0c 2a b6 22 0b 01 00 00 13 00 00 00 |F....*."........| 000b52e0 00 00 00 00 43 6f 72 72 75 70 74 46 50 53 74 61 |....CorruptFPSta| 000b52f0 74 65 4f 6e 50 6f 6c 6c 00 00 00 00 84 7f 0b 00 |teOnPoll........| 000b5300 46 ff ff ff 42 49 ea 24 fe 00 00 00 13 00 00 00 |F...BI.$........| 000b5310 00 00 00 00 63 72 65 61 74 65 5f 69 63 6f 6e 00 |....create_icon.| 000b5320 84 80 0b 00 46 ff ff ff 8f f1 e9 24 e6 00 00 00 |....F......$....| 000b5330 13 00 00 00 00 00 00 00 63 72 65 61 74 65 5f 6d |........create_m| 000b5340 65 6e 75 00 6c 81 0b 00 46 ff ff ff 12 20 ea 24 |enu.l...F.... .$| 000b5350 25 01 00 00 13 00 00 00 00 00 00 00 63 72 65 61 |%...........crea| 000b5360 74 65 5f 73 75 62 6d 65 6e 75 00 00 94 82 0b 00 |te_submenu......| 000b5370 46 ff ff ff d3 b1 e9 24 14 01 00 00 13 00 00 00 |F......$........| 000b5380 00 00 00 00 63 72 65 61 74 65 5f 77 69 6e 64 00 |....create_wind.| 000b5390 a8 83 0b 00 46 ff ff ff 1c f9 48 26 42 01 00 00 |....F.....H&B...| 000b53a0 13 00 00 00 00 00 00 00 43 72 65 61 74 65 49 63 |........CreateIc| 000b53b0 6f 6e 00 00 ec 84 0b 00 46 ff ff ff 33 8e 49 26 |on......F...3.I&| 000b53c0 53 01 00 00 13 00 00 00 00 00 00 00 43 72 65 61 |S...........Crea| 000b53d0 74 65 4d 65 6e 75 00 00 40 86 0b 00 46 ff ff ff |teMenu..@...F...| 000b53e0 d4 76 4a 26 7d 01 00 00 13 00 00 00 00 00 00 00 |.vJ&}...........| 000b53f0 43 72 65 61 74 65 53 75 62 4d 65 6e 75 00 00 00 |CreateSubMenu...| 000b5400 c0 87 0b 00 46 ff ff ff 2e f0 48 26 52 01 00 00 |....F.....H&R...| 000b5410 13 00 00 00 00 00 00 00 43 72 65 61 74 65 57 69 |........CreateWi| 000b5420 6e 64 6f 77 00 00 00 00 14 89 0b 00 46 ff ff ff |ndow........F...| 000b5430 d2 fa e9 24 4b 01 00 00 13 00 00 00 00 00 00 00 |...$K...........| 000b5440 64 65 63 6f 64 65 5f 6d 65 6e 75 00 60 8a 0b 00 |decode_menu.`...| 000b5450 46 ff ff ff 29 9c 49 26 b4 01 00 00 13 00 00 00 |F...).I&........| 000b5460 00 00 00 00 44 65 63 6f 64 65 4d 65 6e 75 00 00 |....DecodeMenu..| 000b5470 14 8c 0b 00 46 ff ff ff 2a 4d ea 24 cc 00 00 00 |....F...*M.$....| 000b5480 13 00 00 00 00 00 00 00 64 65 6c 65 74 65 5f 69 |........delete_i| 000b5490 63 6f 6e 00 e0 8c 0b 00 46 ff ff ff 02 b5 e9 24 |con.....F......$| 000b54a0 bd 00 00 00 13 00 00 00 00 00 00 00 64 65 6c 65 |............dele| 000b54b0 74 65 5f 77 69 6e 64 00 a0 8d 0b 00 46 ff ff ff |te_wind.....F...| 000b54c0 d9 03 49 26 f7 01 00 00 13 00 00 00 00 00 00 00 |..I&............| 000b54d0 44 65 6c 65 74 65 49 63 6f 6e 00 00 98 8f 0b 00 |DeleteIcon......| 000b54e0 46 ff ff ff 8a fe 48 26 3a 01 00 00 13 00 00 00 |F.....H&:.......| 000b54f0 00 00 00 00 44 65 6c 65 74 65 57 69 6e 64 6f 77 |....DeleteWindow| 000b5500 00 00 00 00 d4 90 0b 00 46 ff ff ff e6 6c ea 24 |........F....l.$| 000b5510 c8 00 00 00 13 00 00 00 00 00 00 00 64 72 61 67 |............drag| 000b5520 5f 62 6f 78 00 00 00 00 9c 91 0b 00 46 ff ff ff |_box........F...| 000b5530 a9 66 49 26 aa 01 00 00 13 00 00 00 00 00 00 00 |.fI&............| 000b5540 44 72 61 67 42 6f 78 00 48 93 0b 00 46 ff ff ff |DragBox.H...F...| 000b5550 ab cf e7 24 d8 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b5560 64 72 61 67 73 74 72 00 20 94 0b 00 46 ff ff ff |dragstr. ...F...| 000b5570 22 14 e8 24 20 01 00 00 13 00 00 00 00 00 00 00 |"..$ ...........| 000b5580 64 72 61 67 74 79 70 65 00 00 00 00 40 95 0b 00 |dragtype....@...| 000b5590 46 ff ff ff ca 34 e8 24 d2 01 00 00 13 00 00 00 |F....4.$........| 000b55a0 00 00 00 00 65 6d 61 73 6b 00 00 00 14 97 0b 00 |....emask.......| 000b55b0 46 ff ff ff bb 2a b6 22 d7 00 00 00 13 00 00 00 |F....*."........| 000b55c0 00 00 00 00 65 72 72 66 6c 61 67 73 00 00 00 00 |....errflags....| 000b55d0 ec 97 0b 00 46 ff ff ff 83 2e e7 24 b7 01 00 00 |....F......$....| 000b55e0 13 00 00 00 00 00 00 00 65 74 79 70 65 00 00 00 |........etype...| 000b55f0 a4 99 0b 00 46 ff ff ff a4 97 e8 24 d1 01 00 00 |....F......$....| 000b5600 13 00 00 00 00 00 00 00 65 76 65 6e 74 64 61 74 |........eventdat| 000b5610 61 00 00 00 78 9b 0b 00 46 ff ff ff af b5 e7 24 |a...x...F......$| 000b5620 af 00 00 00 13 00 00 00 00 00 00 00 65 76 65 6e |............even| 000b5630 74 73 74 72 00 00 00 00 28 9c 0b 00 46 ff ff ff |tstr....(...F...| 000b5640 b6 db e8 24 8b 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b5650 66 6f 6e 74 5f 61 72 72 61 79 00 00 b4 9c 0b 00 |font_array......| 000b5660 46 ff ff ff 11 ea e9 24 0b 01 00 00 13 00 00 00 |F......$........| 000b5670 00 00 00 00 66 6f 72 63 65 5f 72 65 64 72 61 77 |....force_redraw| 000b5680 00 00 00 00 c0 9d 0b 00 46 ff ff ff b9 72 49 26 |........F....rI&| 000b5690 de 01 00 00 13 00 00 00 00 00 00 00 46 6f 72 63 |............Forc| 000b56a0 65 52 65 64 72 61 77 00 a0 9f 0b 00 46 ff ff ff |eRedraw.....F...| 000b56b0 61 d2 ea 24 d4 00 00 00 13 00 00 00 00 00 00 00 |a..$............| 000b56c0 67 65 74 5f 63 61 72 65 74 5f 70 6f 73 00 00 00 |get_caret_pos...| 000b56d0 74 a0 0b 00 46 ff ff ff 6a 67 ea 24 1a 01 00 00 |t...F...jg.$....| 000b56e0 13 00 00 00 00 00 00 00 67 65 74 5f 69 63 6f 6e |........get_icon| 000b56f0 5f 69 6e 66 6f 00 00 00 90 a1 0b 00 46 ff ff ff |_info.......F...| 000b5700 73 2f e9 24 f3 00 00 00 13 00 00 00 00 00 00 00 |s/.$............| 000b5710 67 65 74 5f 70 6f 69 6e 74 5f 69 6e 66 6f 00 00 |get_point_info..| 000b5720 84 a2 0b 00 46 ff ff ff ba d1 e9 24 11 01 00 00 |....F......$....| 000b5730 13 00 00 00 00 00 00 00 67 65 74 5f 72 65 63 74 |........get_rect| 000b5740 61 6e 67 6c 65 00 00 00 98 a3 0b 00 46 ff ff ff |angle.......F...| 000b5750 f1 e1 e9 24 02 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000b5760 67 65 74 5f 77 69 6e 64 5f 69 6e 66 6f 00 00 00 |get_wind_info...| 000b5770 9c a4 0b 00 46 ff ff ff 0b d9 e9 24 04 01 00 00 |....F......$....| 000b5780 13 00 00 00 00 00 00 00 67 65 74 5f 77 69 6e 64 |........get_wind| 000b5790 5f 73 74 61 74 65 00 00 a0 a5 0b 00 46 ff ff ff |_state......F...| 000b57a0 93 88 49 26 3b 01 00 00 13 00 00 00 00 00 00 00 |..I&;...........| 000b57b0 47 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e |GetCaretPosition| 000b57c0 00 00 00 00 dc a6 0b 00 46 ff ff ff 7d 56 49 26 |........F...}VI&| 000b57d0 36 01 00 00 13 00 00 00 00 00 00 00 47 65 74 49 |6...........GetI| 000b57e0 63 6f 6e 53 74 61 74 65 00 00 00 00 14 a8 0b 00 |conState........| 000b57f0 46 ff ff ff 02 5d 49 26 6d 01 00 00 13 00 00 00 |F....]I&m.......| 000b5800 00 00 00 00 47 65 74 50 6f 69 6e 74 65 72 49 6e |....GetPointerIn| 000b5810 66 6f 00 00 84 a9 0b 00 46 ff ff ff f0 3b 49 26 |fo......F....;I&| 000b5820 29 01 00 00 13 00 00 00 00 00 00 00 47 65 74 52 |)...........GetR| 000b5830 65 63 74 61 6e 67 6c 65 00 00 00 00 b0 aa 0b 00 |ectangle........| 000b5840 46 ff ff ff d1 46 49 26 fc 00 00 00 13 00 00 00 |F....FI&........| 000b5850 00 00 00 00 47 65 74 57 69 6e 64 6f 77 49 6e 66 |....GetWindowInf| 000b5860 6f 00 00 00 ac ab 0b 00 46 ff ff ff 2a f8 49 26 |o.......F...*.I&| 000b5870 9b 01 00 00 13 00 00 00 00 00 00 00 47 65 74 57 |............GetW| 000b5880 69 6e 64 6f 77 4f 75 74 6c 69 6e 65 00 00 00 00 |indowOutline....| 000b5890 48 ad 0b 00 46 ff ff ff d0 09 ea 24 13 01 00 00 |H...F......$....| 000b58a0 13 00 00 00 00 00 00 00 67 65 74 77 69 6e 64 6f |........getwindo| 000b58b0 77 6f 75 74 6c 69 6e 65 5f 00 00 00 5c ae 0b 00 |woutline_...\...| 000b58c0 46 ff ff ff 08 43 49 26 fb 00 00 00 13 00 00 00 |F....CI&........| 000b58d0 00 00 00 00 47 65 74 57 69 6e 64 6f 77 53 74 61 |....GetWindowSta| 000b58e0 74 65 00 00 58 af 0b 00 46 ff ff ff 79 75 e6 24 |te..X...F...yu.$| 000b58f0 2b 01 00 00 13 00 00 00 00 00 00 00 68 00 00 00 |+...........h...| 000b5900 84 b0 0b 00 46 ff ff ff 14 d7 e8 24 8f 00 00 00 |....F......$....| 000b5910 13 00 00 00 00 00 00 00 69 00 00 00 14 b1 0b 00 |........i.......| 000b5920 46 ff ff ff cf f8 e7 24 af 01 00 00 13 00 00 00 |F......$........| 000b5930 00 00 00 00 69 62 74 79 70 65 00 00 c4 b2 0b 00 |....ibtype......| 000b5940 46 ff ff ff 09 13 e7 24 c0 00 00 00 13 00 00 00 |F......$........| 000b5950 00 00 00 00 69 63 6f 6e 00 00 00 00 84 b3 0b 00 |....icon........| 000b5960 46 ff ff ff 12 e8 e6 24 7f 01 00 00 13 00 00 00 |F......$........| 000b5970 00 00 00 00 69 63 6f 6e 64 61 74 61 00 00 00 00 |....icondata....| 000b5980 04 b5 0b 00 46 ff ff ff b3 b0 e6 24 de 01 00 00 |....F......$....| 000b5990 13 00 00 00 00 00 00 00 69 63 6f 6e 66 6c 61 67 |........iconflag| 000b59a0 73 00 00 00 e4 b6 0b 00 46 ff ff ff 7b 26 e8 24 |s.......F...{&.$| 000b59b0 c5 00 00 00 13 00 00 00 00 00 00 00 69 63 72 65 |............icre| 000b59c0 61 74 65 00 ac b7 0b 00 46 ff ff ff db e7 48 26 |ate.....F.....H&| 000b59d0 10 03 00 00 13 00 00 00 00 00 00 00 49 6e 69 74 |............Init| 000b59e0 69 61 6c 69 73 65 00 00 bc ba 0b 00 46 fd ff ff |ialise......F...| 000b59f0 07 0e e9 24 e5 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b5a00 69 6e 69 74 69 61 6c 69 73 65 5f 00 a4 bb 0b 00 |initialise_.....| 000b5a10 46 ff ff ff 1b 35 ea 24 ed 00 00 00 13 00 00 00 |F....5.$........| 000b5a20 00 00 00 00 6c 6f 61 64 5f 74 65 6d 70 6c 61 74 |....load_templat| 000b5a30 65 00 00 00 94 bc 0b 00 46 ff ff ff 73 cb 49 26 |e.......F...s.I&| 000b5a40 21 01 00 00 13 00 00 00 00 00 00 00 4c 6f 61 64 |!...........Load| 000b5a50 54 65 6d 70 6c 61 74 65 00 00 00 00 b8 bd 0b 00 |Template........| 000b5a60 46 ff ff ff 0c 50 37 26 ad 00 00 00 13 00 00 00 |F....P7&........| 000b5a70 00 00 00 00 4d 41 58 4e 41 4d 45 00 68 be 0b 00 |....MAXNAME.h...| 000b5a80 46 ff ff ff 46 bf e7 24 07 01 00 00 13 00 00 00 |F...F..$........| 000b5a90 00 00 00 00 6d 65 6e 75 66 6c 61 67 73 00 00 00 |....menuflags...| 000b5aa0 70 bf 0b 00 46 ff ff ff e2 a2 e8 24 03 01 00 00 |p...F......$....| 000b5ab0 13 00 00 00 00 00 00 00 6d 65 6e 75 68 64 72 00 |........menuhdr.| 000b5ac0 74 c0 0b 00 46 ff ff ff b5 c7 e7 24 e7 00 00 00 |t...F......$....| 000b5ad0 13 00 00 00 00 00 00 00 6d 65 6e 75 69 74 65 6d |........menuitem| 000b5ae0 00 00 00 00 5c c1 0b 00 46 ff ff ff 6d a7 e8 24 |....\...F...m..$| 000b5af0 63 00 00 00 13 00 00 00 00 00 00 00 6d 65 6e 75 |c...........menu| 000b5b00 70 74 72 00 c0 c1 0b 00 46 ff ff ff 89 ac e8 24 |ptr.....F......$| 000b5b10 d8 00 00 00 13 00 00 00 00 00 00 00 6d 65 6e 75 |............menu| 000b5b20 73 74 72 00 98 c2 0b 00 46 ff ff ff 99 41 e8 24 |str.....F....A.$| 000b5b30 e5 00 00 00 13 00 00 00 00 00 00 00 6d 6f 75 73 |............mous| 000b5b40 65 73 74 72 00 00 00 00 80 c3 0b 00 46 ff ff ff |estr........F...| 000b5b50 3d 49 e8 24 19 03 00 00 13 00 00 00 00 00 00 00 |=I.$............| 000b5b60 6d 73 67 61 63 74 69 6f 6e 00 00 00 9c c6 0b 00 |msgaction.......| 000b5b70 46 ff ff ff 62 65 e8 24 f8 00 00 00 13 00 00 00 |F...be.$........| 000b5b80 00 00 00 00 6d 73 67 64 61 74 61 6c 6f 61 64 00 |....msgdataload.| 000b5b90 94 c7 0b 00 46 ff ff ff 83 6e e7 24 b5 00 00 00 |....F....n.$....| 000b5ba0 13 00 00 00 00 00 00 00 6d 73 67 64 61 74 61 6f |........msgdatao| 000b5bb0 70 65 6e 00 4c c8 0b 00 46 ff ff ff d5 58 e8 24 |pen.L...F....X.$| 000b5bc0 fb 00 00 00 13 00 00 00 00 00 00 00 6d 73 67 64 |............msgd| 000b5bd0 61 74 61 73 61 76 65 00 48 c9 0b 00 46 ff ff ff |atasave.H...F...| 000b5be0 40 5d e7 24 00 01 00 00 13 00 00 00 00 00 00 00 |@].$............| 000b5bf0 6d 73 67 64 61 74 61 73 61 76 65 6f 6b 00 00 00 |msgdatasaveok...| 000b5c00 48 ca 0b 00 46 ff ff ff b5 2c b6 22 da 00 00 00 |H...F....,."....| 000b5c10 13 00 00 00 00 00 00 00 6d 73 67 64 65 76 69 63 |........msgdevic| 000b5c20 65 00 00 00 24 cb 0b 00 46 ff ff ff d4 48 e7 24 |e...$...F....H.$| 000b5c30 df 00 00 00 13 00 00 00 00 00 00 00 6d 73 67 68 |............msgh| 000b5c40 64 72 00 00 04 cc 0b 00 46 ff ff ff 93 96 e7 24 |dr......F......$| 000b5c50 b1 00 00 00 13 00 00 00 00 00 00 00 6d 73 67 68 |............msgh| 000b5c60 65 6c 70 72 65 70 6c 79 00 00 00 00 b8 cc 0b 00 |elpreply........| 000b5c70 46 ff ff ff d1 79 e8 24 b7 00 00 00 13 00 00 00 |F....y.$........| 000b5c80 00 00 00 00 6d 73 67 68 65 6c 70 72 65 71 75 65 |....msghelpreque| 000b5c90 73 74 00 00 70 cd 0b 00 46 ff ff ff 7c 82 e8 24 |st..p...F...|..$| 000b5ca0 bf 00 00 00 13 00 00 00 00 00 00 00 6d 73 67 70 |............msgp| 000b5cb0 72 69 6e 74 00 00 00 00 30 ce 0b 00 46 ff ff ff |rint....0...F...| 000b5cc0 70 6f e8 24 b9 00 00 00 13 00 00 00 00 00 00 00 |po.$............| 000b5cd0 6d 73 67 72 61 6d 66 65 74 63 68 00 ec ce 0b 00 |msgramfetch.....| 000b5ce0 46 ff ff ff 3e 87 e7 24 c6 00 00 00 13 00 00 00 |F...>..$........| 000b5cf0 00 00 00 00 6d 73 67 72 61 6d 74 72 61 6e 73 6d |....msgramtransm| 000b5d00 69 74 00 00 b4 cf 0b 00 46 ff ff ff 0c 2d b6 22 |it......F....-."| 000b5d10 9e 00 00 00 13 00 00 00 00 00 00 00 6d 73 67 73 |............msgs| 000b5d20 61 76 65 64 65 73 6b 00 54 d0 0b 00 46 ff ff ff |avedesk.T...F...| 000b5d30 7a aa e7 24 2b 02 00 00 13 00 00 00 00 00 00 00 |z..$+...........| 000b5d40 6d 73 67 73 74 72 00 00 80 d2 0b 00 46 ff ff ff |msgstr......F...| 000b5d50 cf 29 48 26 80 00 00 00 13 00 00 00 00 00 00 00 |.)H&............| 000b5d60 4e 55 4d 42 45 52 4f 46 45 56 45 4e 54 53 00 00 |NUMBEROFEVENTS..| 000b5d70 00 d3 0b 00 46 ff ff ff 4b 2e ea 24 f0 00 00 00 |....F...K..$....| 000b5d80 13 00 00 00 00 00 00 00 6f 70 65 6e 5f 74 65 6d |........open_tem| 000b5d90 70 6c 61 74 65 00 00 00 f0 d3 0b 00 46 ff ff ff |plate.......F...| 000b5da0 bd b9 e9 24 c0 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b5db0 6f 70 65 6e 5f 77 69 6e 64 00 00 00 b0 d4 0b 00 |open_wind.......| 000b5dc0 46 ff ff ff ba 17 e7 24 bf 00 00 00 13 00 00 00 |F......$........| 000b5dd0 00 00 00 00 6f 70 65 6e 73 74 72 00 70 d5 0b 00 |....openstr.p...| 000b5de0 46 ff ff ff f0 c1 49 26 94 01 00 00 13 00 00 00 |F.....I&........| 000b5df0 00 00 00 00 4f 70 65 6e 54 65 6d 70 6c 61 74 65 |....OpenTemplate| 000b5e00 00 00 00 00 04 d7 0b 00 46 ff ff ff e9 07 49 26 |........F.....I&| 000b5e10 01 01 00 00 13 00 00 00 00 00 00 00 4f 70 65 6e |............Open| 000b5e20 57 69 6e 64 6f 77 00 00 08 d8 0b 00 46 ff ff ff |Window......F...| 000b5e30 5f ed e7 24 02 01 00 00 13 00 00 00 00 00 00 00 |_..$............| 000b5e40 70 61 6c 65 74 74 65 73 74 72 00 00 0c d9 0b 00 |palettestr......| 000b5e50 46 ff ff ff f1 e1 e8 24 e8 00 00 00 13 00 00 00 |F......$........| 000b5e60 00 00 00 00 70 61 6c 65 74 74 65 77 6f 72 64 00 |....paletteword.| 000b5e70 f4 d9 0b 00 46 ff ff ff ac 23 4a 26 1a 02 00 00 |....F....#J&....| 000b5e80 13 00 00 00 00 00 00 00 50 6c 6f 74 49 63 6f 6e |........PlotIcon| 000b5e90 00 00 00 00 10 dc 0b 00 46 fd ff ff 9b 89 ea 24 |........F......$| 000b5ea0 f2 00 00 00 13 00 00 00 00 00 00 00 70 6c 6f 74 |............plot| 000b5eb0 69 63 6f 6e 5f 00 00 00 04 dd 0b 00 46 ff ff ff |icon_.......F...| 000b5ec0 04 58 37 26 9c 00 00 00 13 00 00 00 00 00 00 00 |.X7&............| 000b5ed0 70 6f 69 6e 74 00 00 00 a0 dd 0b 00 46 ff ff ff |point.......F...| 000b5ee0 cf 04 56 26 ff 00 00 00 13 00 00 00 00 00 00 00 |..V&............| 000b5ef0 70 6f 69 6e 74 65 72 00 a0 de 0b 00 46 ff ff ff |pointer.....F...| 000b5f00 99 15 49 26 c1 01 00 00 13 00 00 00 00 00 00 00 |..I&............| 000b5f10 50 6f 6c 6c 00 00 00 00 64 e0 0b 00 46 ff ff ff |Poll....d...F...| 000b5f20 85 1f 49 26 e2 01 00 00 13 00 00 00 00 00 00 00 |..I&............| 000b5f30 50 6f 6c 6c 33 00 00 00 48 e2 0b 00 46 fd ff ff |Poll3...H...F...| 000b5f40 94 22 e9 24 39 01 00 00 13 00 00 00 00 00 00 00 |.".$9...........| 000b5f50 70 6f 6c 6c 5f 00 00 00 84 e3 0b 00 46 ff ff ff |poll_.......F...| 000b5f60 3f 00 4a 26 2d 02 00 00 13 00 00 00 00 00 00 00 |?.J&-...........| 000b5f70 50 6f 6c 6c 49 64 6c 65 00 00 00 00 b4 e5 0b 00 |PollIdle........| 000b5f80 46 ff ff ff e0 12 4a 26 52 02 00 00 13 00 00 00 |F.....J&R.......| 000b5f90 00 00 00 00 50 6f 6c 6c 49 64 6c 65 33 00 00 00 |....PollIdle3...| 000b5fa0 08 e8 0b 00 46 fd ff ff 71 28 e9 24 3f 01 00 00 |....F...q(.$?...| 000b5fb0 13 00 00 00 00 00 00 00 70 6f 6c 6c 69 64 6c 65 |........pollidle| 000b5fc0 5f 00 00 00 48 e9 0b 00 46 ff ff ff 95 7f ea 24 |_...H...F......$| 000b5fd0 63 02 00 00 13 00 00 00 00 00 00 00 50 72 6f 63 |c...........Proc| 000b5fe0 65 73 73 4b 65 79 00 00 ac eb 0b 00 46 ff ff ff |essKey......F...| 000b5ff0 ff d5 e7 24 da 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b6000 70 73 68 61 70 65 73 74 72 00 00 00 88 ec 0b 00 |pshapestr.......| 000b6010 46 ff ff ff 1a 35 4a 26 34 01 00 00 13 00 00 00 |F....5J&4.......| 000b6020 00 00 00 00 52 65 61 64 50 61 6c 65 74 74 65 00 |....ReadPalette.| 000b6030 bc ed 0b 00 46 fd ff ff 5d 9d ea 24 d7 00 00 00 |....F...]..$....| 000b6040 13 00 00 00 00 00 00 00 72 65 61 64 70 61 6c 65 |........readpale| 000b6050 74 74 65 5f 00 00 00 00 94 ee 0b 00 46 ff ff ff |tte_........F...| 000b6060 2b ea 4a 26 4b 03 00 00 13 00 00 00 00 00 00 00 |+.J&K...........| 000b6070 52 65 61 64 50 69 78 54 72 61 6e 73 00 00 00 00 |ReadPixTrans....| 000b6080 e0 f1 0b 00 46 fd ff ff f8 8e ea 24 21 01 00 00 |....F......$!...| 000b6090 13 00 00 00 00 00 00 00 72 65 61 64 70 69 78 74 |........readpixt| 000b60a0 72 61 6e 73 5f 00 00 00 04 f3 0b 00 46 ff ff ff |rans_.......F...| 000b60b0 55 66 37 26 bf 00 00 00 13 00 00 00 00 00 00 00 |Uf7&............| 000b60c0 72 65 63 74 00 00 00 00 c4 f3 0b 00 46 ff ff ff |rect........F...| 000b60d0 c5 c2 e9 24 3b 01 00 00 13 00 00 00 00 00 00 00 |...$;...........| 000b60e0 72 65 64 72 61 77 5f 77 69 6e 64 00 00 f5 0b 00 |redraw_wind.....| 000b60f0 46 ff ff ff 05 36 e7 24 d1 00 00 00 13 00 00 00 |F....6.$........| 000b6100 00 00 00 00 72 65 64 72 61 77 73 74 72 00 00 00 |....redrawstr...| 000b6110 d4 f5 0b 00 46 ff ff ff 2c 2a 49 26 80 02 00 00 |....F...,*I&....| 000b6120 13 00 00 00 00 00 00 00 52 65 64 72 61 77 57 69 |........RedrawWi| 000b6130 6e 64 6f 77 00 00 00 00 54 f8 0b 00 46 ff ff ff |ndow....T...F...| 000b6140 8e ec 49 26 33 02 00 00 13 00 00 00 00 00 00 00 |..I&3...........| 000b6150 52 65 70 6f 72 74 45 72 72 6f 72 00 88 fa 0b 00 |ReportError.....| 000b6160 46 fd ff ff c0 59 e9 24 05 01 00 00 13 00 00 00 |F....Y.$........| 000b6170 00 00 00 00 72 65 70 6f 72 74 65 72 72 6f 72 5f |....reporterror_| 000b6180 00 00 00 00 90 fb 0b 00 46 ff ff ff b2 2e b6 22 |........F......"| 000b6190 2d 01 00 00 13 00 00 00 00 00 00 00 52 65 70 6f |-...........Repo| 000b61a0 72 74 45 72 72 6f 72 52 00 00 00 00 c0 fc 0b 00 |rtErrorR........| 000b61b0 46 ff ff ff c1 92 e9 24 4c 01 00 00 13 00 00 00 |F......$L.......| 000b61c0 00 00 00 00 73 61 76 65 5f 66 70 5f 73 74 61 74 |....save_fp_stat| 000b61d0 65 5f 6f 6e 5f 70 6f 6c 6c 00 00 00 0c fe 0b 00 |e_on_poll.......| 000b61e0 46 ff ff ff c3 2e b6 22 01 01 00 00 13 00 00 00 |F......"........| 000b61f0 00 00 00 00 53 61 76 65 46 50 53 74 61 74 65 4f |....SaveFPStateO| 000b6200 6e 50 6f 6c 6c 00 00 00 10 ff 0b 00 46 ff ff ff |nPoll.......F...| 000b6210 c8 68 4a 26 94 02 00 00 13 00 00 00 00 00 00 00 |.hJ&............| 000b6220 53 65 6e 64 4d 65 73 73 61 67 65 00 a4 01 0c 00 |SendMessage.....| 000b6230 46 fd ff ff ba 61 e9 24 1b 01 00 00 13 00 00 00 |F....a.$........| 000b6240 00 00 00 00 73 65 6e 64 6d 65 73 73 61 67 65 5f |....sendmessage_| 000b6250 00 00 00 00 c0 02 0c 00 46 ff ff ff d5 69 e9 24 |........F....i.$| 000b6260 2b 01 00 00 13 00 00 00 00 00 00 00 73 65 6e 64 |+...........send| 000b6270 77 6d 65 73 73 61 67 65 00 00 00 00 ec 03 0c 00 |wmessage........| 000b6280 46 ff ff ff 51 cd ea 24 c9 00 00 00 13 00 00 00 |F...Q..$........| 000b6290 00 00 00 00 73 65 74 5f 63 61 72 65 74 5f 70 6f |....set_caret_po| 000b62a0 73 00 00 00 b8 04 0c 00 46 ff ff ff 5c 01 ea 24 |s.......F...\..$| 000b62b0 d9 00 00 00 13 00 00 00 00 00 00 00 73 65 74 5f |............set_| 000b62c0 65 78 74 65 6e 74 00 00 94 05 0c 00 46 ff ff ff |extent......F...| 000b62d0 50 56 ea 24 4c 01 00 00 13 00 00 00 00 00 00 00 |PV.$L...........| 000b62e0 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 00 00 |set_icon_state..| 000b62f0 e0 06 0c 00 46 ff ff ff 50 35 e9 24 d1 00 00 00 |....F...P5.$....| 000b6300 13 00 00 00 00 00 00 00 73 65 74 5f 70 6f 69 6e |........set_poin| 000b6310 74 5f 73 68 61 70 65 00 b4 07 0c 00 46 ff ff ff |t_shape.....F...| 000b6320 91 81 49 26 f6 01 00 00 13 00 00 00 00 00 00 00 |..I&............| 000b6330 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e |SetCaretPosition| 000b6340 00 00 00 00 ac 09 0c 00 46 ff ff ff 85 5c 4a 26 |........F....\J&| 000b6350 00 02 00 00 13 00 00 00 00 00 00 00 53 65 74 43 |............SetC| 000b6360 6f 6c 6f 75 72 00 00 00 ac 0b 0c 00 46 fd ff ff |olour.......F...| 000b6370 c4 a6 ea 24 b9 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b6380 73 65 74 63 6f 6c 6f 75 72 5f 00 00 68 0c 0c 00 |setcolour_..h...| 000b6390 46 ff ff ff 3d b8 49 26 19 01 00 00 13 00 00 00 |F...=.I&........| 000b63a0 00 00 00 00 53 65 74 45 78 74 65 6e 74 00 00 00 |....SetExtent...| 000b63b0 84 0d 0c 00 46 ff ff ff b1 c3 ea 24 99 01 00 00 |....F......$....| 000b63c0 13 00 00 00 00 00 00 00 53 65 74 46 6f 6e 74 43 |........SetFontC| 000b63d0 6f 6c 6f 75 72 73 00 00 20 0f 0c 00 46 ff ff ff |olours.. ...F...| 000b63e0 2f 4e 49 26 60 01 00 00 13 00 00 00 00 00 00 00 |/NI&`...........| 000b63f0 53 65 74 49 63 6f 6e 53 74 61 74 65 00 00 00 00 |SetIconState....| 000b6400 80 10 0c 00 46 ff ff ff fb 28 4a 26 63 01 00 00 |....F....(J&c...| 000b6410 13 00 00 00 00 00 00 00 53 65 74 4d 6f 64 65 00 |........SetMode.| 000b6420 e4 11 0c 00 46 fd ff ff d1 43 e9 24 ae 00 00 00 |....F....C.$....| 000b6430 13 00 00 00 00 00 00 00 73 65 74 6d 6f 64 65 5f |........setmode_| 000b6440 00 00 00 00 94 12 0c 00 46 ff ff ff 78 2f 4a 26 |........F...x/J&| 000b6450 76 01 00 00 13 00 00 00 00 00 00 00 53 65 74 50 |v...........SetP| 000b6460 61 6c 65 74 74 65 00 00 0c 14 0c 00 46 fd ff ff |alette......F...| 000b6470 8d a3 ea 24 d4 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b6480 73 65 74 70 61 6c 65 74 74 65 5f 00 e0 14 0c 00 |setpalette_.....| 000b6490 46 ff ff ff 87 bc 49 26 43 01 00 00 13 00 00 00 |F.....I&C.......| 000b64a0 00 00 00 00 53 65 74 50 6f 69 6e 74 65 72 53 68 |....SetPointerSh| 000b64b0 61 70 65 00 24 16 0c 00 46 ff ff ff cd 83 e9 24 |ape.$...F......$| 000b64c0 58 02 00 00 13 00 00 00 00 00 00 00 53 6c 6f 74 |X...........Slot| 000b64d0 53 69 7a 65 00 00 00 00 7c 18 0c 00 46 ff ff ff |Size....|...F...| 000b64e0 b6 55 b4 24 d2 00 00 00 13 00 00 00 00 00 00 00 |.U.$............| 000b64f0 73 70 72 69 74 65 61 72 65 61 00 00 50 19 0c 00 |spritearea..P...| 000b6500 46 ff ff ff 97 88 4a 26 38 02 00 00 13 00 00 00 |F.....J&8.......| 000b6510 00 00 00 00 53 70 72 69 74 65 4f 70 00 00 00 00 |....SpriteOp....| 000b6520 88 1b 0c 00 46 fd ff ff 2b 48 e9 24 da 00 00 00 |....F...+H.$....| 000b6530 13 00 00 00 00 00 00 00 73 70 72 69 74 65 6f 70 |........spriteop| 000b6540 5f 00 00 00 64 1c 0c 00 46 ff ff ff f7 4c e9 24 |_...d...F....L.$| 000b6550 da 00 00 00 13 00 00 00 00 00 00 00 73 70 72 69 |............spri| 000b6560 74 65 6f 70 5f 66 75 6c 6c 00 00 00 40 1d 0c 00 |teop_full...@...| 000b6570 46 ff ff ff 91 dd 49 26 bf 01 00 00 13 00 00 00 |F.....I&........| 000b6580 00 00 00 00 53 74 61 72 74 54 61 73 6b 00 00 00 |....StartTask...| 000b6590 00 1f 0c 00 46 fd ff ff d1 40 e9 24 d1 00 00 00 |....F....@.$....| 000b65a0 13 00 00 00 00 00 00 00 73 74 61 72 74 74 61 73 |........starttas| 000b65b0 6b 5f 00 00 d4 1f 0c 00 46 ff ff ff 91 30 b6 22 |k_......F....0."| 000b65c0 8f 00 00 00 13 00 00 00 00 00 00 00 74 00 00 00 |............t...| 000b65d0 64 20 0c 00 46 ff ff ff 24 3d e9 24 dd 00 00 00 |d ..F...$=.$....| 000b65e0 13 00 00 00 00 00 00 00 74 61 73 6b 63 6c 6f 73 |........taskclos| 000b65f0 65 00 00 00 44 21 0c 00 46 ff ff ff 43 1b e9 24 |e...D!..F...C..$| 000b6600 a3 01 00 00 13 00 00 00 00 00 00 00 74 61 73 6b |............task| 000b6610 69 6e 69 74 00 00 00 00 e8 22 0c 00 46 ff ff ff |init....."..F...| 000b6620 6a e1 e7 24 0c 01 00 00 13 00 00 00 00 00 00 00 |j..$............| 000b6630 74 65 6d 70 6c 61 74 65 00 00 00 00 f4 23 0c 00 |template.....#..| 000b6640 46 ff ff ff ab 13 4b 26 39 02 00 00 13 00 00 00 |F.....K&9.......| 000b6650 00 00 00 00 54 72 61 6e 73 66 65 72 42 6c 6f 63 |....TransferBloc| 000b6660 6b 00 00 00 30 26 0c 00 46 ff ff ff 77 89 e9 24 |k...0&..F...w..$| 000b6670 60 01 00 00 13 00 00 00 00 00 00 00 74 72 61 6e |`...........tran| 000b6680 73 66 65 72 62 6c 6f 63 6b 5f 00 00 90 27 0c 00 |sferblock_...'..| 000b6690 46 fd ff ff c0 20 e7 24 1a 03 00 00 13 00 00 00 |F.... .$........| 000b66a0 00 00 00 00 74 79 70 65 73 5f 00 00 ac 2a 0c 00 |....types_...*..| 000b66b0 46 ff ff ff d4 c8 e9 24 5b 01 00 00 13 00 00 00 |F......$[.......| 000b66c0 00 00 00 00 75 70 64 61 74 65 5f 77 69 6e 64 00 |....update_wind.| 000b66d0 08 2c 0c 00 46 ff ff ff 03 37 49 26 1a 02 00 00 |.,..F....7I&....| 000b66e0 13 00 00 00 00 00 00 00 55 70 64 61 74 65 57 69 |........UpdateWi| 000b66f0 6e 64 6f 77 00 00 00 00 24 2e 0c 00 46 ff ff ff |ndow....$...F...| 000b6700 83 cf e8 24 91 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b6710 77 00 00 00 b8 2e 0c 00 46 ff ff ff 81 f3 e7 24 |w.......F......$| 000b6720 47 01 00 00 13 00 00 00 00 00 00 00 77 63 6f 6c |G...........wcol| 000b6730 6f 75 72 73 00 00 00 00 00 30 0c 00 46 ff ff ff |ours.....0..F...| 000b6740 33 31 b6 22 1d 02 00 00 13 00 00 00 00 00 00 00 |31."............| 000b6750 77 66 6c 61 67 73 00 00 20 32 0c 00 46 ff ff ff |wflags.. 2..F...| 000b6760 84 b5 e8 24 c1 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000b6770 77 68 69 63 68 5f 62 6c 6f 63 6b 00 e4 32 0c 00 |which_block..2..| 000b6780 46 ff ff ff 6e 72 ea 24 06 01 00 00 13 00 00 00 |F...nr.$........| 000b6790 00 00 00 00 77 68 69 63 68 5f 69 63 6f 6e 00 00 |....which_icon..| 000b67a0 ec 33 0c 00 46 ff ff ff c0 7e 0b 2e 0d 02 00 00 |.3..F....~......| 000b67b0 13 00 00 00 00 00 00 00 57 68 69 63 68 49 63 6f |........WhichIco| 000b67c0 6e 00 00 00 fc 35 0c 00 46 ff ff ff 57 06 e7 24 |n....5..F...W..$| 000b67d0 fc 01 00 00 13 00 00 00 00 00 00 00 77 69 6e 64 |............wind| 000b67e0 00 00 00 00 f8 37 0c 00 46 ff ff ff a0 1f e8 24 |.....7..F......$| 000b67f0 d7 00 00 00 13 00 00 00 00 00 00 00 77 69 6e 66 |............winf| 000b6800 6f 00 00 00 d0 38 0c 00 46 ff ff ff a2 2b e8 24 |o....8..F....+.$| 000b6810 a5 00 00 00 13 00 00 00 00 00 00 00 77 73 74 61 |............wsta| 000b6820 74 65 00 00 44 41 54 41 b9 01 00 00 57 69 6d 70 |te..DATA....Wimp| 000b6830 5f 42 61 73 65 4f 66 53 70 72 69 74 65 73 0a 53 |_BaseOfSprites.S| 000b6840 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000b6850 3e 20 2a 57 69 6d 70 5f 42 61 73 65 4f 66 53 70 |> *Wimp_BaseOfSp| 000b6860 72 69 74 65 73 20 28 76 6f 69 64 20 2a 2a 72 6f |rites (void **ro| 000b6870 6d 5f 62 61 73 65 2c 20 76 6f 69 64 20 2a 2a 72 |m_base, void **r| 000b6880 61 6d 5f 62 61 73 65 29 3b 0a 48 65 61 64 65 72 |am_base);.Header| 000b6890 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 |:.<DeskLib:WimpS| 000b68a0 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e |WIs.h=>WimpSWIs>| 000b68b0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000b68c0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000b68d0 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 000b68e0 0a 44 65 73 6b 74 6f 70 20 43 3a 20 53 65 65 20 |.Desktop C: See | 000b68f0 3c 77 69 6d 70 5f 62 61 73 65 6f 66 73 70 72 69 |<wimp_baseofspri| 000b6900 74 65 73 3d 3e 77 69 6d 70 5f 62 61 73 65 6f 66 |tes=>wimp_baseof| 000b6910 73 70 72 69 74 65 73 5f 3e 0a 0a 54 68 69 73 20 |sprites_>..This | 000b6920 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 |function returns| 000b6930 20 74 68 65 20 61 64 64 72 65 73 73 65 73 20 6f | the addresses o| 000b6940 66 20 74 68 65 20 52 4f 4d 20 61 6e 64 20 52 41 |f the ROM and RA| 000b6950 4d 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 57 |M parts of the W| 000b6960 69 6d 70 20 73 70 72 69 74 65 20 70 6f 6f 6c 2e |imp sprite pool.| 000b6970 20 54 68 65 20 52 41 4d 20 61 64 64 72 65 73 73 | The RAM address| 000b6980 20 6d 6f 76 65 73 20 61 72 6f 75 6e 64 20 61 73 | moves around as| 000b6990 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 20 63 68 | its contents ch| 000b69a0 61 6e 67 65 2e 0a 0a 41 63 6f 72 6e 20 72 65 63 |ange...Acorn rec| 000b69b0 6f 6d 6d 65 6e 64 20 74 68 61 74 20 79 6f 75 20 |ommend that you | 000b69c0 73 68 6f 75 6c 64 20 6e 6f 74 20 75 73 65 20 74 |should not use t| 000b69d0 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 00 00 00 |his function....| 000b69e0 44 41 54 41 c6 00 00 00 77 69 6d 70 5f 62 61 73 |DATA....wimp_bas| 000b69f0 65 6f 66 73 70 72 69 74 65 73 0a 53 79 6e 74 61 |eofsprites.Synta| 000b6a00 78 3a 09 76 6f 69 64 20 2a 77 69 6d 70 5f 62 61 |x:.void *wimp_ba| 000b6a10 73 65 6f 66 73 70 72 69 74 65 73 20 28 76 6f 69 |seofsprites (voi| 000b6a20 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d |d);.Header:.<wim| 000b6a30 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 |p.h=>wimp_h>..Re| 000b6a40 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000b6a50 6f 20 57 69 6d 70 20 73 70 72 69 74 65 20 61 72 |o Wimp sprite ar| 000b6a60 65 61 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ea...This functi| 000b6a70 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 |on returns the s| 000b6a80 70 72 69 74 65 20 70 6f 69 6e 74 65 72 20 6f 66 |prite pointer of| 000b6a90 20 74 68 65 20 57 69 6d 70 20 73 70 72 69 74 65 | the Wimp sprite| 000b6aa0 20 61 72 65 61 2e 00 00 44 41 54 41 4f 01 00 00 | area...DATAO...| 000b6ab0 77 69 6d 70 5f 62 62 69 74 73 0a 54 68 69 73 20 |wimp_bbits.This | 000b6ac0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000b6ad0 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 |in <wimp.h=>wimp| 000b6ae0 5f 68 3e 2e 20 49 74 20 69 73 20 61 6e 20 65 6e |_h>. It is an en| 000b6af0 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 63 6f |umerated type co| 000b6b00 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 76 61 6c |ntaining the val| 000b6b10 75 65 73 20 6f 66 20 74 68 65 20 57 69 6d 70 20 |ues of the Wimp | 000b6b20 62 75 74 74 6f 6e 20 73 74 61 74 65 20 62 69 74 |button state bit| 000b6b30 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 77 69 6d |s:.. \{. wim| 000b6b40 70 5f 42 52 49 47 48 54 09 3d 20 30 78 30 30 31 |p_BRIGHT.= 0x001| 000b6b50 2c 0a 20 20 20 20 77 69 6d 70 5f 42 4d 49 44 09 |,. wimp_BMID.| 000b6b60 3d 20 30 78 30 30 32 2c 0a 20 20 20 20 77 69 6d |= 0x002,. wim| 000b6b70 70 5f 42 4c 45 46 54 09 3d 20 30 78 30 30 34 2c |p_BLEFT.= 0x004,| 000b6b80 0a 20 20 20 20 77 69 6d 70 5f 42 44 52 41 47 52 |. wimp_BDRAGR| 000b6b90 49 47 48 54 09 3d 20 30 78 30 31 30 2c 0a 20 20 |IGHT.= 0x010,. | 000b6ba0 20 20 77 69 6d 70 5f 42 44 52 41 47 4c 45 46 54 | wimp_BDRAGLEFT| 000b6bb0 09 3d 20 30 78 30 34 30 2c 0a 20 20 20 20 77 69 |.= 0x040,. wi| 000b6bc0 6d 70 5f 42 43 4c 49 43 4b 52 49 47 48 54 09 3d |mp_BCLICKRIGHT.=| 000b6bd0 20 30 78 31 30 30 2c 0a 20 20 20 20 77 69 6d 70 | 0x100,. wimp| 000b6be0 5f 42 43 4c 49 43 4b 4c 45 46 54 09 3d 20 30 78 |_BCLICKLEFT.= 0x| 000b6bf0 34 30 30 0a 20 20 7d 00 44 41 54 41 f6 01 00 00 |400. }.DATA....| 000b6c00 57 69 6d 70 5f 42 6c 6f 63 6b 43 6f 70 79 0a 53 |Wimp_BlockCopy.S| 000b6c10 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000b6c20 3e 20 2a 57 69 6d 70 5f 42 6c 6f 63 6b 43 6f 70 |> *Wimp_BlockCop| 000b6c30 79 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |y (<window_handl| 000b6c40 65 3e 20 77 69 6e 2c 20 3c 77 69 6d 70 5f 62 6f |e> win, <wimp_bo| 000b6c50 78 3e 20 2a 73 6f 75 72 63 65 2c 20 69 6e 74 20 |x> *source, int | 000b6c60 78 2c 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 |x, int y);.Heade| 000b6c70 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |r:.<DeskLib:Wimp| 000b6c80 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 |SWIs.h=>WimpSWIs| 000b6c90 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000b6ca0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000b6cb0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000b6cc0 0a 0a 44 65 73 6b 74 6f 70 20 43 3a 20 53 65 65 |..Desktop C: See| 000b6cd0 20 3c 77 69 6d 70 5f 62 6c 6f 63 6b 63 6f 70 79 | <wimp_blockcopy| 000b6ce0 3d 3e 77 69 6d 70 5f 62 6c 6f 63 6b 63 6f 70 79 |=>wimp_blockcopy| 000b6cf0 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |_>...This functi| 000b6d00 6f 6e 20 63 6f 70 69 65 73 20 61 20 62 6c 6f 63 |on copies a bloc| 000b6d10 6b 20 6f 66 20 77 6f 72 6b 20 61 72 65 61 20 73 |k of work area s| 000b6d20 70 61 63 65 20 28 64 65 66 69 6e 65 64 20 62 79 |pace (defined by| 000b6d30 20 2f 77 69 6e 2f 20 61 6e 64 20 7b 2f 7d 73 6f | /win/ and {/}so| 000b6d40 75 72 63 65 7b 2f 7d 29 20 74 6f 20 61 6e 6f 74 |urce{/}) to anot| 000b6d50 68 65 72 20 70 6f 73 69 74 69 6f 6e 20 7b 2f 7d |her position {/}| 000b6d60 28 78 2c 79 29 7b 2f 7d 2e 20 4e 6f 74 65 20 74 |(x,y){/}. Note t| 000b6d70 68 61 74 20 74 68 65 20 73 70 61 63 65 20 63 6f |hat the space co| 000b6d80 70 69 65 64 20 64 6f 65 73 20 6e 6f 74 20 61 63 |pied does not ac| 000b6d90 74 75 61 6c 6c 79 20 68 61 76 65 20 74 6f 20 62 |tually have to b| 000b6da0 65 20 76 69 73 69 62 6c 65 20 2d 20 74 68 65 20 |e visible - the | 000b6db0 57 69 6d 70 20 77 69 6c 6c 20 61 73 6b 20 79 6f |Wimp will ask yo| 000b6dc0 75 20 74 6f 20 72 65 64 72 61 77 20 62 69 74 73 |u to redraw bits| 000b6dd0 20 74 68 61 74 20 69 74 20 63 61 6e 6e 6f 74 20 | that it cannot | 000b6de0 63 6f 70 79 20 64 69 72 65 63 74 6c 79 2e 00 00 |copy directly...| 000b6df0 44 41 54 41 f6 00 00 00 77 69 6d 70 5f 62 6c 6f |DATA....wimp_blo| 000b6e00 63 6b 63 6f 70 79 0a 53 79 6e 74 61 78 3a 09 3c |ckcopy.Syntax:.<| 000b6e10 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f |os_error> *wimp_| 000b6e20 62 6c 6f 63 6b 63 6f 70 79 20 28 3c 77 69 6d 70 |blockcopy (<wimp| 000b6e30 5f 77 3e 20 77 69 6e 2c 20 3c 77 69 6d 70 5f 62 |_w> win, <wimp_b| 000b6e40 6f 78 3e 20 2a 73 72 63 2c 20 69 6e 74 20 78 2c |ox> *src, int x,| 000b6e50 20 69 6e 74 20 79 29 3b 0a 48 65 61 64 65 72 3a | int y);.Header:| 000b6e60 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 |.<wimp.h=>wimp_h| 000b6e70 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000b6e80 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000b6e90 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000b6ea0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000b6eb0 63 6f 70 69 65 73 20 61 20 62 6c 6f 63 6b 20 6f |copies a block o| 000b6ec0 66 20 77 6f 72 6b 20 61 72 65 61 20 66 72 6f 6d |f work area from| 000b6ed0 20 2f 73 72 63 2f 20 74 6f 20 7b 2f 7d 28 78 2c | /src/ to {/}(x,| 000b6ee0 79 29 7b 2f 7d 2e 00 00 44 41 54 41 f2 00 00 00 |y){/}...DATA....| 000b6ef0 77 69 6d 70 5f 62 6f 78 0a 54 68 69 73 20 74 79 |wimp_box.This ty| 000b6f00 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000b6f10 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 | <wimp.h=>wimp_h| 000b6f20 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 20 61 6e |> (Desktop C) an| 000b6f30 64 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e |d <DeskLib:Wimp.| 000b6f40 68 3d 3e 57 69 6d 70 3e 20 61 73 20 61 20 74 79 |h=>Wimp> as a ty| 000b6f50 70 65 20 68 6f 6c 64 69 6e 67 20 61 20 62 6f 78 |pe holding a box| 000b6f60 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 74 77 6f | in terms of two| 000b6f70 20 63 6f 72 6e 65 72 73 2e 20 49 74 20 69 73 20 | corners. It is | 000b6f80 64 65 66 69 6e 65 64 20 69 6e 20 44 65 73 6b 74 |defined in Deskt| 000b6f90 6f 70 20 43 20 61 73 3a 0a 0a 20 20 5c 7b 0a 20 |op C as:.. \{. | 000b6fa0 20 20 20 69 6e 74 20 20 78 30 2c 79 30 2c 78 31 | int x0,y0,x1| 000b6fb0 2c 79 31 3b 0a 20 20 7d 0a 0a 61 6e 64 20 69 6e |,y1;. }..and in| 000b6fc0 20 44 65 73 6b 4c 69 62 20 61 73 20 61 20 3c 77 | DeskLib as a <w| 000b6fd0 69 6d 70 5f 72 65 63 74 3e 2e 00 00 44 41 54 41 |imp_rect>...DATA| 000b6fe0 c9 00 00 00 77 69 6d 70 5f 63 61 72 65 74 73 74 |....wimp_caretst| 000b6ff0 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |r.This type is d| 000b7000 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e |efined in <wimp.| 000b7010 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 |h=>wimp_h>. It i| 000b7020 73 20 61 20 73 74 72 75 63 74 75 72 65 20 75 73 |s a structure us| 000b7030 65 64 20 74 6f 20 68 6f 6c 64 20 61 20 63 61 72 |ed to hold a car| 000b7040 65 74 20 70 6f 73 69 74 69 6f 6e 3a 0a 0a 20 20 |et position:.. | 000b7050 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 |\{. <wimp_w>.| 000b7060 77 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 69 3e 09 |w;. <wimp_i>.| 000b7070 69 3b 0a 20 20 20 20 69 6e 74 09 09 78 2c 79 3b |i;. int..x,y;| 000b7080 0a 20 20 20 20 69 6e 74 09 09 68 65 69 67 68 74 |. int..height| 000b7090 3b 0a 20 20 20 20 69 6e 74 09 09 69 6e 64 65 78 |;. int..index| 000b70a0 3b 0a 20 20 7d 00 00 00 44 41 54 41 cb 00 00 00 |;. }...DATA....| 000b70b0 77 69 6d 70 5f 63 6c 6f 73 65 5f 74 65 6d 70 6c |wimp_close_templ| 000b70c0 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ate.Syntax:.<os_| 000b70d0 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 63 6c 6f |error> *wimp_clo| 000b70e0 73 65 5f 74 65 6d 70 6c 61 74 65 20 28 76 6f 69 |se_template (voi| 000b70f0 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d |d);.Header:.<wim| 000b7100 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 |p.h=>wimp_h>..Re| 000b7110 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000b7120 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000b7130 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000b7140 73 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 |s function close| 000b7150 73 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 |s the currently | 000b7160 6f 70 65 6e 20 74 65 6d 70 6c 61 74 65 20 66 69 |open template fi| 000b7170 6c 65 2e 00 44 41 54 41 bc 00 00 00 77 69 6d 70 |le..DATA....wimp| 000b7180 5f 63 6c 6f 73 65 5f 77 69 6e 64 0a 53 79 6e 74 |_close_wind.Synt| 000b7190 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000b71a0 77 69 6d 70 5f 63 6c 6f 73 65 5f 77 69 6e 64 20 |wimp_close_wind | 000b71b0 28 3c 77 69 6d 70 5f 77 3e 20 77 69 6e 29 3b 0a |(<wimp_w> win);.| 000b71c0 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d |Header:.<wimp.h=| 000b71d0 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e |>wimp_h>..Return| 000b71e0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000b71f0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000b7200 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000b7210 6e 63 74 69 6f 6e 73 20 63 6c 6f 73 65 73 20 74 |nctions closes t| 000b7220 68 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e |he given window.| 000b7230 44 41 54 41 6b 01 00 00 57 69 6d 70 5f 43 6c 6f |DATAk...Wimp_Clo| 000b7240 73 65 44 6f 77 6e 0a 53 79 6e 74 61 78 3a 09 3c |seDown.Syntax:.<| 000b7250 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f |os_error> *Wimp_| 000b7260 43 6c 6f 73 65 44 6f 77 6e 20 28 3c 74 61 73 6b |CloseDown (<task| 000b7270 5f 68 61 6e 64 6c 65 3e 20 74 61 73 6b 29 3b 0a |_handle> task);.| 000b7280 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000b7290 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d |:WimpSWIs.h=>Wim| 000b72a0 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a |pSWIs>..Returns:| 000b72b0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000b72c0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000b72d0 6e 6f 6e 65 2e 0a 0a 53 65 65 20 74 68 65 20 44 |none...See the D| 000b72e0 65 73 6b 74 6f 70 20 43 20 66 75 6e 63 74 69 6f |esktop C functio| 000b72f0 6e 2c 20 3c 77 69 6d 70 5f 63 6c 6f 73 65 64 6f |n, <wimp_closedo| 000b7300 77 6e 3d 3e 77 69 6d 70 5f 63 6c 6f 73 65 64 6f |wn=>wimp_closedo| 000b7310 77 6e 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |wn_>...This func| 000b7320 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 63 61 6c |tion must be cal| 000b7330 6c 65 64 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 |led immediately | 000b7340 62 65 66 6f 72 65 20 74 68 65 20 70 72 6f 67 72 |before the progr| 000b7350 61 6d 20 66 69 6e 69 73 68 65 73 2e 20 2f 74 61 |am finishes. /ta| 000b7360 73 6b 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |sk/ contains the| 000b7370 20 74 61 73 6b 20 68 61 6e 64 6c 65 20 72 65 74 | task handle ret| 000b7380 75 72 6e 65 64 20 62 79 20 3c 57 69 6d 70 5f 49 |urned by <Wimp_I| 000b7390 6e 69 74 69 61 6c 69 73 65 3e 2e 00 44 41 54 41 |nitialise>..DATA| 000b73a0 c0 00 00 00 77 69 6d 70 5f 63 6c 6f 73 65 64 6f |....wimp_closedo| 000b73b0 77 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |wn.Syntax:.<os_e| 000b73c0 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 63 6c 6f 73 |rror> *wimp_clos| 000b73d0 65 64 6f 77 6e 20 28 76 6f 69 64 29 3b 0a 48 65 |edown (void);.He| 000b73e0 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 |ader:.<wimp.h=>w| 000b73f0 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a |imp_h>..Returns:| 000b7400 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000b7410 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000b7420 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000b7430 74 69 6f 6e 20 64 65 72 65 67 69 73 74 65 72 73 |tion deregisters| 000b7440 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 20 77 69 | your program wi| 000b7450 74 68 20 74 68 65 20 57 69 6d 70 2e 44 41 54 41 |th the Wimp.DATA| 000b7460 f3 00 00 00 57 69 6d 70 5f 43 6c 6f 73 65 54 65 |....Wimp_CloseTe| 000b7470 6d 70 6c 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c |mplate.Syntax:.<| 000b7480 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f |os_error> *Wimp_| 000b7490 43 6c 6f 73 65 54 65 6d 70 6c 61 74 65 20 28 76 |CloseTemplate (v| 000b74a0 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |oid);.Header:.<D| 000b74b0 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e |eskLib:WimpSWIs.| 000b74c0 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 |h=>WimpSWIs>..Re| 000b74d0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000b74e0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000b74f0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000b7500 73 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 |s function close| 000b7510 73 20 74 68 65 20 74 65 6d 70 6c 61 74 65 20 66 |s the template f| 000b7520 69 6c 65 20 70 72 65 76 69 6f 75 73 6c 79 20 6f |ile previously o| 000b7530 70 65 6e 65 64 20 77 69 74 68 20 3c 57 69 6d 70 |pened with <Wimp| 000b7540 5f 4f 70 65 6e 54 65 6d 70 6c 61 74 65 3e 2e 00 |_OpenTemplate>..| 000b7550 44 41 54 41 1a 01 00 00 57 69 6d 70 5f 43 6c 6f |DATA....Wimp_Clo| 000b7560 73 65 57 69 6e 64 6f 77 0a 53 79 6e 74 61 78 3a |seWindow.Syntax:| 000b7570 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d |.<os_error> *Wim| 000b7580 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 20 28 3c |p_CloseWindow (<| 000b7590 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 |window_handle> w| 000b75a0 69 6e 64 6f 77 29 3b 0a 48 65 61 64 65 72 3a 09 |indow);.Header:.| 000b75b0 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 |<DeskLib:WimpSWI| 000b75c0 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a |s.h=>WimpSWIs>..| 000b75d0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000b75e0 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000b75f0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000b7600 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d |his function rem| 000b7610 6f 76 65 73 20 74 68 65 20 73 70 65 63 69 66 69 |oves the specifi| 000b7620 65 64 20 77 69 6e 64 6f 77 20 66 72 6f 6d 20 74 |ed window from t| 000b7630 68 65 20 6c 69 73 74 20 6f 66 20 61 63 74 69 76 |he list of activ| 000b7640 65 20 77 69 6e 64 6f 77 73 20 28 6f 6e 65 73 20 |e windows (ones | 000b7650 74 68 61 74 20 61 72 65 20 74 6f 20 62 65 20 64 |that are to be d| 000b7660 69 73 70 6c 61 79 65 64 29 2e 00 00 44 41 54 41 |isplayed)...DATA| 000b7670 3d 01 00 00 77 69 6d 70 5f 63 6f 6c 6f 75 72 0a |=...wimp_colour.| 000b7680 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 000b7690 69 6e 65 64 20 69 6e 20 44 65 73 6b 4c 69 62 3a |ined in DeskLib:| 000b76a0 57 69 6d 70 2e 68 20 61 73 20 74 68 65 20 66 6f |Wimp.h as the fo| 000b76b0 6c 6c 6f 77 69 6e 67 20 75 6e 69 6f 6e 3a 0a 0a |llowing union:..| 000b76c0 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 20 20 69 | \{. i| 000b76d0 6e 74 20 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 |nt value;. | 000b76e0 20 20 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 | struct. | 000b76f0 20 5c 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | \{. | 000b7700 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 77 69 6d |unsigned int wim| 000b7710 70 63 6f 6c 6f 75 72 09 3a 20 34 3b 0a 20 20 20 |pcolour.: 4;. | 000b7720 20 20 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 | unsigne| 000b7730 64 20 69 6e 74 20 67 63 6f 6c 61 63 74 69 6f 6e |d int gcolaction| 000b7740 09 3a 20 33 3b 0a 20 20 20 20 20 20 20 20 20 20 |.: 3;. | 000b7750 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 | unsigned int f| 000b7760 6f 72 65 62 61 63 6b 09 3a 20 31 3b 0a 20 20 20 |oreback.: 1;. | 000b7770 20 20 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 | unsigne| 000b7780 64 20 69 6e 74 20 70 61 64 64 69 6e 67 09 3a 20 |d int padding.: | 000b7790 32 34 3b 0a 20 20 20 20 20 20 20 20 7d 20 64 61 |24;. } da| 000b77a0 74 61 3b 0a 20 20 20 20 7d 00 00 00 44 41 54 41 |ta;. }...DATA| 000b77b0 29 01 00 00 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 |)...wimp_command| 000b77c0 5f 74 61 67 0a 54 68 69 73 20 74 79 70 65 20 69 |_tag.This type i| 000b77d0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000b77e0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000b77f0 74 20 69 73 20 61 6e 0a 65 6e 75 6d 65 72 61 74 |t is an.enumerat| 000b7800 65 64 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 |ed type containi| 000b7810 6e 67 20 74 68 65 20 76 61 6c 75 65 73 20 66 6f |ng the values fo| 000b7820 72 0a 3c 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 77 |r.<wimp_commandw| 000b7830 69 6e 64 6f 77 3d 3e 77 69 6d 70 5f 63 6f 6d 6d |indow=>wimp_comm| 000b7840 61 6e 64 77 69 6e 64 6f 77 5f 3e 3a 0a 0a 20 20 |andwindow_>:.. | 000b7850 7b 0a 20 20 20 20 77 69 6d 70 5f 63 6f 6d 6d 61 |{. wimp_comma| 000b7860 6e 64 5f 54 49 54 4c 45 20 3d 20 30 2c 0a 20 20 |nd_TITLE = 0,. | 000b7870 20 20 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 5f 41 | wimp_command_A| 000b7880 43 54 49 56 45 20 3d 20 31 2c 0a 20 20 20 20 77 |CTIVE = 1,. w| 000b7890 69 6d 70 5f 63 6f 6d 6d 61 6e 64 5f 43 4c 4f 53 |imp_command_CLOS| 000b78a0 45 5f 50 52 4f 4d 50 54 20 3d 20 32 2c 0a 20 20 |E_PROMPT = 2,. | 000b78b0 20 20 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 5f 43 | wimp_command_C| 000b78c0 4c 4f 53 45 5f 4e 4f 50 52 4f 4d 50 54 20 3d 20 |LOSE_NOPROMPT = | 000b78d0 33 0a 20 20 7d 00 00 00 44 41 54 41 ab 00 00 00 |3. }...DATA....| 000b78e0 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 77 69 6e 64 |wimp_commandwind| 000b78f0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 000b7900 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 |fined in <wimp.h| 000b7910 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 |=>wimp_h>. It is| 000b7920 20 61 0a 73 74 72 75 63 74 75 72 65 20 66 6f 72 | a.structure for| 000b7930 20 63 6f 6d 6d 61 6e 64 20 77 69 6e 64 6f 77 73 | command windows| 000b7940 3a 0a 0a 20 20 7b 0a 20 20 20 20 3c 77 69 6d 70 |:.. {. <wimp| 000b7950 5f 63 6f 6d 6d 61 6e 64 5f 74 61 67 3e 20 74 61 |_command_tag> ta| 000b7960 67 3b 0a 20 20 20 20 63 68 61 72 20 20 20 20 20 |g;. char | 000b7970 20 20 20 20 20 20 20 20 2a 74 69 74 6c 65 3b 0a | *title;.| 000b7980 20 20 7d 00 44 41 54 41 46 02 00 00 57 69 6d 70 | }.DATAF...Wimp| 000b7990 5f 43 6f 6d 6d 61 6e 64 57 69 6e 64 6f 77 0a 53 |_CommandWindow.S| 000b79a0 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000b79b0 3e 20 2a 57 69 6d 70 5f 43 6f 6d 6d 61 6e 64 57 |> *Wimp_CommandW| 000b79c0 69 6e 64 6f 77 20 28 69 6e 74 20 78 29 3b 0a 48 |indow (int x);.H| 000b79d0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000b79e0 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 |WimpSWIs.h=>Wimp| 000b79f0 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |SWIs>..Returns:.| 000b7a00 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000b7a10 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000b7a20 6f 6e 65 2e 0a 0a 44 65 73 6b 74 6f 70 20 43 3a |one...Desktop C:| 000b7a30 20 53 65 65 20 3c 77 69 6d 70 5f 63 6f 6d 6d 61 | See <wimp_comma| 000b7a40 6e 64 77 69 6e 64 6f 77 3d 3e 77 69 6d 70 5f 63 |ndwindow=>wimp_c| 000b7a50 6f 6d 6d 61 6e 64 77 69 6e 64 6f 77 5f 3e 2e 0a |ommandwindow_>..| 000b7a60 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6f |.This function o| 000b7a70 70 65 6e 73 20 61 20 74 65 78 74 20 77 69 6e 64 |pens a text wind| 000b7a80 6f 77 20 69 6e 20 77 68 69 63 68 20 56 44 55 a0 |ow in which VDU.| 000b7a90 34 2d 74 79 70 65 20 6f 75 74 70 75 74 20 63 61 |4-type output ca| 000b7aa0 6e 20 62 65 20 64 69 73 70 6c 61 79 65 64 2e 20 |n be displayed. | 000b7ab0 54 68 65 20 65 78 61 63 74 20 61 63 74 69 6f 6e |The exact action| 000b7ac0 20 64 65 70 65 6e 64 73 20 6f 6e 20 2f 78 2f 3a | depends on /x/:| 000b7ad0 0a 7b 74 61 62 7d 0a 78 3e 31 09 78 20 69 73 20 |.{tab}.x>1.x is | 000b7ae0 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 |a pointer to the| 000b7af0 20 77 69 6e 64 6f 77 20 74 69 74 6c 65 2e 20 54 | window title. T| 000b7b00 68 65 20 63 6f 6d 6d 61 6e 64 20 77 69 6e 64 6f |he command windo| 000b7b10 77 20 69 73 20 6f 70 65 6e 65 64 20 74 68 65 20 |w is opened the | 000b7b20 6e 65 78 74 20 74 69 6d 65 20 61 20 63 68 61 72 |next time a char| 000b7b30 61 63 74 65 72 20 69 73 20 70 72 69 6e 74 65 64 |acter is printed| 000b7b40 20 6f 6e 20 74 68 65 20 73 63 72 65 65 6e 2e 0a | on the screen..| 000b7b50 78 3d 3d 31 09 77 69 6e 64 6f 77 20 62 65 63 6f |x==1.window beco| 000b7b60 6d 65 73 20 61 63 74 69 76 65 20 62 75 74 20 69 |mes active but i| 000b7b70 73 20 6e 6f 74 20 64 72 61 77 6e 2e 0a 78 3d 3d |s not drawn..x==| 000b7b80 30 09 77 69 6e 64 6f 77 20 69 73 20 63 6c 6f 73 |0.window is clos| 000b7b90 65 64 20 77 69 74 68 20 61 20 70 72 6f 6d 70 74 |ed with a prompt| 000b7ba0 2e 0a 78 3d 3d 2d 31 09 77 69 6e 64 6f 77 20 69 |..x==-1.window i| 000b7bb0 73 20 63 6c 6f 73 65 64 20 77 69 74 68 6f 75 74 |s closed without| 000b7bc0 20 61 20 70 72 6f 6d 70 74 2e 00 00 44 41 54 41 | a prompt...DATA| 000b7bd0 e2 00 00 00 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 |....wimp_command| 000b7be0 77 69 6e 64 6f 77 0a 53 79 6e 74 61 78 3a 09 3c |window.Syntax:.<| 000b7bf0 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f |os_error> *wimp_| 000b7c00 63 6f 6d 6d 61 6e 64 77 69 6e 64 6f 77 20 28 3c |commandwindow (<| 000b7c10 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 77 69 6e 64 |wimp_commandwind| 000b7c20 3e 20 63 6f 6d 6d 61 6e 64 77 69 6e 64 6f 77 29 |> commandwindow)| 000b7c30 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e |;.Header:.<wimp.| 000b7c40 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 |h=>wimp_h>..Retu| 000b7c50 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000b7c60 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000b7c70 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000b7c80 66 75 6e 63 74 69 6f 6e 73 20 6f 70 65 6e 73 20 |functions opens | 000b7c90 61 20 74 65 78 74 20 77 69 6e 64 6f 77 20 66 6f |a text window fo| 000b7ca0 72 20 56 44 55 34 20 6f 75 74 70 75 74 2e 00 00 |r VDU4 output...| 000b7cb0 44 41 54 41 82 00 00 00 77 69 6d 70 5f 63 6f 6f |DATA....wimp_coo| 000b7cc0 72 64 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |rd.This type is | 000b7cd0 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 000b7ce0 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 |Lib:Wimp.h=>Wimp| 000b7cf0 3e 20 61 73 20 61 20 74 79 70 65 20 68 6f 6c 64 |> as a type hold| 000b7d00 69 6e 67 20 61 20 63 6f 6f 72 64 69 6e 61 74 65 |ing a coordinate| 000b7d10 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 000b7d20 61 73 20 61 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 |as a <wimp_point| 000b7d30 3e 2e 00 00 44 41 54 41 41 01 00 00 77 69 6d 70 |>...DATAA...wimp| 000b7d40 5f 63 6f 72 72 75 70 74 5f 66 70 5f 73 74 61 74 |_corrupt_fp_stat| 000b7d50 65 5f 6f 6e 5f 70 6f 6c 6c 0a 53 79 6e 74 61 78 |e_on_poll.Syntax| 000b7d60 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 |:.<os_error> *wi| 000b7d70 6d 70 5f 63 6f 72 72 75 70 74 5f 66 70 5f 73 74 |mp_corrupt_fp_st| 000b7d80 61 74 65 5f 6f 6e 5f 70 6f 6c 6c 20 28 76 6f 69 |ate_on_poll (voi| 000b7d90 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d |d);.Header:.<wim| 000b7da0 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 |p.h=>wimp_h>..Re| 000b7db0 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000b7dc0 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000b7dd0 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000b7de0 73 20 66 75 6e 63 74 69 6f 6e 73 20 64 69 73 61 |s functions disa| 000b7df0 62 6c 65 73 20 73 61 76 69 6e 67 20 6f 66 20 46 |bles saving of F| 000b7e00 50 20 73 74 61 74 65 20 6f 6e 20 63 61 6c 6c 73 |P state on calls| 000b7e10 20 74 6f 20 3c 77 69 6d 70 5f 70 6f 6c 6c 3d 3e | to <wimp_poll=>| 000b7e20 77 69 6d 70 5f 70 6f 6c 6c 5f 3e 20 61 6e 64 20 |wimp_poll_> and | 000b7e30 3c 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 3d 3e |<wimp_pollidle=>| 000b7e40 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 5f 3e 3b |wimp_pollidle_>;| 000b7e50 20 75 73 65 20 6f 6e 6c 79 20 69 66 20 79 6f 75 | use only if you| 000b7e60 20 6e 65 76 65 72 20 75 73 65 20 46 50 20 61 74 | never use FP at| 000b7e70 20 61 6c 6c 2e 00 00 00 44 41 54 41 0b 01 00 00 | all....DATA....| 000b7e80 57 69 6d 70 5f 43 6f 72 72 75 70 74 46 50 53 74 |Wimp_CorruptFPSt| 000b7e90 61 74 65 4f 6e 50 6f 6c 6c 0a 53 79 6e 74 61 78 |ateOnPoll.Syntax| 000b7ea0 3a 20 20 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 |: <os_error> *W| 000b7eb0 69 6d 70 5f 43 6f 72 72 75 70 74 46 50 53 74 61 |imp_CorruptFPSta| 000b7ec0 74 65 4f 6e 50 6f 6c 6c 28 76 6f 69 64 29 3b 0a |teOnPoll(void);.| 000b7ed0 48 65 61 64 65 72 3a 20 20 3c 44 65 73 6b 4c 69 |Header: <DeskLi| 000b7ee0 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 |b:WimpSWIs.h=>Wi| 000b7ef0 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 |mpSWIs>..Returns| 000b7f00 3a 20 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |: Pointer to err| 000b7f10 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000b7f20 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000b7f30 63 74 69 6f 6e 20 74 65 6c 6c 73 20 44 65 73 6b |ction tells Desk| 000b7f40 4c 69 62 20 6e 6f 74 20 74 6f 20 73 61 76 65 20 |Lib not to save | 000b7f50 74 68 65 0a 66 6c 6f 61 74 69 6e 67 20 70 6f 69 |the.floating poi| 000b7f60 6e 74 20 73 74 61 74 75 73 20 77 68 65 6e 20 63 |nt status when c| 000b7f70 61 6c 6c 69 6e 67 20 3c 57 69 6d 70 5f 50 6f 6c |alling <Wimp_Pol| 000b7f80 6c 3e 2e 00 44 41 54 41 fe 00 00 00 77 69 6d 70 |l>..DATA....wimp| 000b7f90 5f 63 72 65 61 74 65 5f 69 63 6f 6e 0a 53 79 6e |_create_icon.Syn| 000b7fa0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000b7fb0 2a 77 69 6d 70 5f 63 72 65 61 74 65 5f 69 63 6f |*wimp_create_ico| 000b7fc0 6e 20 28 3c 77 69 6d 70 5f 69 63 72 65 61 74 65 |n (<wimp_icreate| 000b7fd0 3e 20 2a 62 6c 6b 2c 20 3c 77 69 6d 70 5f 69 3e |> *blk, <wimp_i>| 000b7fe0 20 2a 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a | *icon);.Header:| 000b7ff0 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 |.<wimp.h=>wimp_h| 000b8000 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000b8010 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000b8020 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000b8030 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 |..This functions| 000b8040 20 63 72 65 61 74 65 73 20 61 6e 20 69 63 6f 6e | creates an icon| 000b8050 20 66 72 6f 6d 20 2f 62 6c 6b 2f 20 61 6e 64 20 | from /blk/ and | 000b8060 72 65 74 75 72 6e 73 20 74 68 65 20 68 61 6e 64 |returns the hand| 000b8070 6c 65 20 69 6e 20 7b 2f 7d 2a 69 63 6f 6e 7b 2f |le in {/}*icon{/| 000b8080 7d 2e 00 00 44 41 54 41 e6 00 00 00 77 69 6d 70 |}...DATA....wimp| 000b8090 5f 63 72 65 61 74 65 5f 6d 65 6e 75 0a 53 79 6e |_create_menu.Syn| 000b80a0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000b80b0 2a 77 69 6d 70 5f 63 72 65 61 74 65 5f 6d 65 6e |*wimp_create_men| 000b80c0 75 20 28 3c 77 69 6d 70 5f 6d 65 6e 75 73 74 72 |u (<wimp_menustr| 000b80d0 3e 20 2a 6d 2c 20 69 6e 74 20 78 2c 20 69 6e 74 |> *m, int x, int| 000b80e0 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 | y);.Header:.<wi| 000b80f0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 |mp.h=>wimp_h>..R| 000b8100 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000b8110 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000b8120 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000b8130 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 |is function disp| 000b8140 6c 61 79 73 20 74 68 65 20 6d 65 6e 75 20 2f 6d |lays the menu /m| 000b8150 2f 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 7b 2f |/ at position {/| 000b8160 7d 28 78 2c 79 29 7b 2f 7d 2e 00 00 44 41 54 41 |}(x,y){/}...DATA| 000b8170 25 01 00 00 77 69 6d 70 5f 63 72 65 61 74 65 5f |%...wimp_create_| 000b8180 73 75 62 6d 65 6e 75 0a 53 79 6e 74 61 78 3a 09 |submenu.Syntax:.| 000b8190 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 |<os_error> *wimp| 000b81a0 5f 63 72 65 61 74 65 5f 73 75 62 6d 65 6e 75 20 |_create_submenu | 000b81b0 28 3c 77 69 6d 70 5f 6d 65 6e 75 73 74 72 3e 20 |(<wimp_menustr> | 000b81c0 2a 73 75 62 2c 20 69 6e 74 20 78 2c 20 69 6e 79 |*sub, int x, iny| 000b81d0 20 79 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 | y);.Header:.<wi| 000b81e0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 |mp.h=>wimp_h>..R| 000b81f0 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000b8200 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000b8210 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000b8220 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 |is function crea| 000b8230 74 65 73 20 74 68 65 20 6d 65 6e 75 20 2f 73 75 |tes the menu /su| 000b8240 62 2f 20 61 73 20 61 20 73 75 62 6d 65 6e 75 2e |b/ as a submenu.| 000b8250 20 43 61 6c 6c 65 64 20 69 6e 20 72 65 73 70 6f | Called in respo| 000b8260 6e 73 65 20 74 6f 20 61 20 3c 4d 65 73 73 61 67 |nse to a <Messag| 000b8270 65 5f 4d 65 6e 75 57 61 72 6e 69 6e 67 3d 3e 53 |e_MenuWarning=>S| 000b8280 57 49 3a 77 69 6d 70 5f 75 6d 34 30 30 63 30 3e |WI:wimp_um400c0>| 000b8290 2e 00 00 00 44 41 54 41 14 01 00 00 77 69 6d 70 |....DATA....wimp| 000b82a0 5f 63 72 65 61 74 65 5f 77 69 6e 64 0a 53 79 6e |_create_wind.Syn| 000b82b0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000b82c0 2a 77 69 6d 70 5f 63 72 65 61 74 65 5f 77 69 6e |*wimp_create_win| 000b82d0 64 20 28 3c 77 69 6d 70 5f 77 69 6e 64 3e 20 2a |d (<wimp_wind> *| 000b82e0 62 6c 6b 2c 20 3c 77 69 6d 70 5f 77 3e 20 2a 77 |blk, <wimp_w> *w| 000b82f0 69 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 |in);.Header:.<wi| 000b8300 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 |mp.h=>wimp_h>..R| 000b8310 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000b8320 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000b8330 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000b8340 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 63 72 65 |is functions cre| 000b8350 61 74 65 73 20 61 20 77 69 6e 64 6f 77 20 77 68 |ates a window wh| 000b8360 6f 73 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 |ose definition i| 000b8370 73 20 69 6e 20 2f 62 6c 6b 2f 2e 20 54 68 65 20 |s in /blk/. The | 000b8380 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 69 73 |window handle is| 000b8390 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b 2f 7d | returned in {/}| 000b83a0 2a 77 69 6e 7b 2f 7d 2e 44 41 54 41 42 01 00 00 |*win{/}.DATAB...| 000b83b0 57 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 0a |Wimp_CreateIcon.| 000b83c0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000b83d0 72 3e 20 2a 57 69 6d 70 5f 43 72 65 61 74 65 49 |r> *Wimp_CreateI| 000b83e0 63 6f 6e 20 28 3c 69 63 6f 6e 5f 63 72 65 61 74 |con (<icon_creat| 000b83f0 65 62 6c 6f 63 6b 3e 20 2a 62 6c 6f 63 6b 2c 20 |eblock> *block, | 000b8400 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 2a 69 |<icon_handle> *i| 000b8410 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |con);.Header:.<D| 000b8420 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e |eskLib:WimpSWIs.| 000b8430 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 |h=>WimpSWIs>..Re| 000b8440 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000b8450 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000b8460 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 |L> if none...Thi| 000b8470 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 6c 6c 73 |s function tells| 000b8480 20 74 68 65 20 57 69 6d 70 20 77 68 61 74 20 74 | the Wimp what t| 000b8490 68 65 20 63 68 61 72 61 63 74 65 72 69 73 74 69 |he characteristi| 000b84a0 63 73 20 6f 66 20 61 6e 20 69 63 6f 6e 20 61 72 |cs of an icon ar| 000b84b0 65 20 28 69 6e 20 7b 2f 7d 62 6c 6f 63 6b 7b 2f |e (in {/}block{/| 000b84c0 7d 29 2e 20 54 68 65 20 69 63 6f 6e 20 68 61 6e |}). The icon han| 000b84d0 64 6c 65 20 69 73 20 72 65 74 75 72 6e 65 64 20 |dle is returned | 000b84e0 69 6e 20 2f 69 63 6f 6e 2f 2e 00 00 44 41 54 41 |in /icon/...DATA| 000b84f0 53 01 00 00 57 69 6d 70 5f 43 72 65 61 74 65 4d |S...Wimp_CreateM| 000b8500 65 6e 75 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |enu.Syntax:.<os_| 000b8510 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 43 72 65 |error> *Wimp_Cre| 000b8520 61 74 65 4d 65 6e 75 20 28 3c 6d 65 6e 75 5f 62 |ateMenu (<menu_b| 000b8530 6c 6f 63 6b 3e 20 2a 6d 65 6e 75 2c 20 69 6e 74 |lock> *menu, int| 000b8540 20 78 70 6f 73 2c 20 69 6e 74 20 79 70 6f 73 29 | xpos, int ypos)| 000b8550 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000b8560 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 |ib:WimpSWIs.h=>W| 000b8570 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e |impSWIs>..Return| 000b8580 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000b8590 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000b85a0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000b85b0 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 |nction is used t| 000b85c0 6f 20 63 72 65 61 74 65 20 61 20 6d 65 6e 75 20 |o create a menu | 000b85d0 73 74 72 75 63 74 75 72 65 2e 20 54 68 65 20 74 |structure. The t| 000b85e0 6f 70 2d 6c 65 76 65 6c 20 6d 65 6e 75 20 69 73 |op-level menu is| 000b85f0 20 69 6e 69 74 69 61 6c 6c 79 20 64 69 73 70 6c | initially displ| 000b8600 61 79 65 64 20 62 79 20 74 68 65 20 57 69 6d 70 |ayed by the Wimp| 000b8610 20 77 69 74 68 20 69 74 73 20 74 6f 70 2d 6c 65 | with its top-le| 000b8620 66 74 20 63 6f 72 6e 65 72 20 61 74 20 7b 2f 7d |ft corner at {/}| 000b8630 28 78 70 6f 73 2c 79 70 6f 73 29 7b 2f 7d 2e 00 |(xpos,ypos){/}..| 000b8640 44 41 54 41 7d 01 00 00 57 69 6d 70 5f 43 72 65 |DATA}...Wimp_Cre| 000b8650 61 74 65 53 75 62 4d 65 6e 75 0a 53 79 6e 74 61 |ateSubMenu.Synta| 000b8660 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 |x:.<os_error> *W| 000b8670 69 6d 70 5f 43 72 65 61 74 65 53 75 62 4d 65 6e |imp_CreateSubMen| 000b8680 75 20 28 3c 6d 65 6e 75 5f 62 6c 6f 63 6b 3e 20 |u (<menu_block> | 000b8690 2a 6d 65 6e 75 2c 20 69 6e 74 20 78 70 6f 73 2c |*menu, int xpos,| 000b86a0 20 69 6e 74 20 79 70 6f 73 29 3b 0a 48 65 61 64 | int ypos);.Head| 000b86b0 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d |er:.<DeskLib:Wim| 000b86c0 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 |pSWIs.h=>WimpSWI| 000b86d0 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |s>..Returns:.Poi| 000b86e0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000b86f0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000b8700 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000b8710 20 69 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 | is called when | 000b8720 61 20 4d 65 6e 75 57 61 72 6e 69 6e 67 20 6d 65 |a MenuWarning me| 000b8730 73 73 61 67 65 20 69 73 20 72 65 63 65 69 76 65 |ssage is receive| 000b8740 64 2e 20 54 68 65 20 74 68 72 65 65 20 61 72 67 |d. The three arg| 000b8750 75 6d 65 6e 74 73 20 75 73 65 64 20 63 61 6e 20 |uments used can | 000b8760 62 65 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d |be obtained from| 000b8770 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e | the information| 000b8780 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 69 | returned by thi| 000b8790 73 20 6d 65 73 73 61 67 65 2c 20 6f 72 20 79 6f |s message, or yo| 000b87a0 75 20 63 61 6e 20 61 6c 74 65 72 20 74 68 65 6d |u can alter them| 000b87b0 20 69 66 20 72 65 71 75 69 72 65 64 2e 00 00 00 | if required....| 000b87c0 44 41 54 41 52 01 00 00 57 69 6d 70 5f 43 72 65 |DATAR...Wimp_Cre| 000b87d0 61 74 65 57 69 6e 64 6f 77 0a 53 79 6e 74 61 78 |ateWindow.Syntax| 000b87e0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000b87f0 6d 70 5f 43 72 65 61 74 65 57 69 6e 64 6f 77 20 |mp_CreateWindow | 000b8800 28 3c 77 69 6e 64 6f 77 5f 62 6c 6f 63 6b 3e 20 |(<window_block> | 000b8810 2a 62 6c 6b 2c 20 3c 77 69 6e 64 6f 77 5f 68 61 |*blk, <window_ha| 000b8820 6e 64 6c 65 3e 20 2a 77 29 3b 0a 48 65 61 64 65 |ndle> *w);.Heade| 000b8830 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |r:.<DeskLib:Wimp| 000b8840 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 |SWIs.h=>WimpSWIs| 000b8850 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000b8860 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000b8870 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000b8880 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000b8890 74 65 6c 6c 73 20 74 68 65 20 57 69 6d 70 20 77 |tells the Wimp w| 000b88a0 68 61 74 20 74 68 65 20 63 68 61 72 61 63 74 65 |hat the characte| 000b88b0 72 69 73 74 69 63 73 20 6f 66 20 61 20 77 69 6e |ristics of a win| 000b88c0 64 6f 77 20 61 72 65 2e 20 54 68 65 20 77 69 6e |dow are. The win| 000b88d0 64 6f 77 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 |dow definition i| 000b88e0 73 20 68 65 6c 64 20 69 6e 20 2f 62 6c 6b 2f 20 |s held in /blk/ | 000b88f0 61 6e 64 20 74 68 65 20 68 61 6e 64 6c 65 20 69 |and the handle i| 000b8900 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 2f 77 |s returned in /w| 000b8910 2f 2e 00 00 44 41 54 41 4b 01 00 00 77 69 6d 70 |/...DATAK...wimp| 000b8920 5f 64 65 63 6f 64 65 5f 6d 65 6e 75 0a 53 79 6e |_decode_menu.Syn| 000b8930 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000b8940 2a 77 69 6d 70 5f 64 65 63 6f 64 65 5f 6d 65 6e |*wimp_decode_men| 000b8950 75 20 28 3c 77 69 6d 70 5f 6d 65 6e 75 73 74 72 |u (<wimp_menustr| 000b8960 3e 20 2a 6d 2c 20 76 6f 69 64 20 2a 73 65 6c 2c |> *m, void *sel,| 000b8970 20 76 6f 69 64 20 2a 62 75 66 29 3b 0a 48 65 61 | void *buf);.Hea| 000b8980 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 |der:.<wimp.h=>wi| 000b8990 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |mp_h>..Returns:.| 000b89a0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000b89b0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000b89c0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000b89d0 69 6f 6e 20 74 61 6b 65 73 20 61 20 6c 69 73 74 |ion takes a list| 000b89e0 20 6f 66 20 6d 65 6e 75 20 73 65 6c 65 63 74 69 | of menu selecti| 000b89f0 6f 6e 73 20 69 6e 20 2f 73 65 6c 2f 2c 20 61 6e |ons in /sel/, an| 000b8a00 64 20 61 20 6d 65 6e 75 20 64 65 66 69 6e 69 74 |d a menu definit| 000b8a10 69 6f 6e 20 69 6e 20 2f 6d 2f 2c 20 61 6e 64 20 |ion in /m/, and | 000b8a20 63 72 65 61 74 65 73 20 61 20 74 65 78 74 75 61 |creates a textua| 000b8a30 6c 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 |l version of the| 000b8a40 20 73 65 6c 65 63 74 69 6f 6e 73 2c 20 73 65 70 | selections, sep| 000b8a50 61 72 61 74 65 64 20 62 79 20 64 6f 74 73 2e 00 |arated by dots..| 000b8a60 44 41 54 41 b4 01 00 00 57 69 6d 70 5f 44 65 63 |DATA....Wimp_Dec| 000b8a70 6f 64 65 4d 65 6e 75 0a 53 79 6e 74 61 78 3a 09 |odeMenu.Syntax:.| 000b8a80 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 |<os_error> *Wimp| 000b8a90 5f 44 65 63 6f 64 65 4d 65 6e 75 20 28 3c 6d 65 |_DecodeMenu (<me| 000b8aa0 6e 75 5f 62 6c 6f 63 6b 3e 20 2a 6d 65 6e 75 2c |nu_block> *menu,| 000b8ab0 20 69 6e 74 20 2a 73 65 6c 65 63 74 69 6f 6e 73 | int *selections| 000b8ac0 2c 20 63 68 61 72 20 2a 72 65 73 75 6c 74 29 3b |, char *result);| 000b8ad0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000b8ae0 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 |b:WimpSWIs.h=>Wi| 000b8af0 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 |mpSWIs>..Returns| 000b8b00 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000b8b10 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000b8b20 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000b8b30 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 73 20 61 |ction converts a| 000b8b40 20 6c 69 73 74 20 6f 66 20 6d 65 6e 75 20 73 65 | list of menu se| 000b8b50 6c 65 63 74 69 6f 6e 73 20 28 70 6f 69 6e 74 65 |lections (pointe| 000b8b60 64 20 74 6f 20 62 79 20 2f 73 65 6c 65 63 74 69 |d to by /selecti| 000b8b70 6f 6e 73 2f 29 20 66 6f 72 20 61 20 67 69 76 65 |ons/) for a give| 000b8b80 6e 20 6d 65 6e 75 2c 20 74 6f 20 61 20 74 65 78 |n menu, to a tex| 000b8b90 74 20 73 74 72 69 6e 67 20 6f 66 20 74 68 65 20 |t string of the | 000b8ba0 66 6f 72 6d 3a 0a 7b 77 72 61 70 20 6f 66 66 7d |form:.{wrap off}| 000b8bb0 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 53 |.{align centre}S| 000b8bc0 65 6c 65 63 74 69 6f 6e 31 2e 53 65 6c 65 63 74 |election1.Select| 000b8bd0 69 6f 6e 32 2e 53 65 6c 65 63 74 69 6f 6e 33 7b |ion2.Selection3{| 000b8be0 61 6c 69 67 6e 7d 0a 7b 77 72 61 70 7d 0a 65 67 |align}.{wrap}.eg| 000b8bf0 20 22 4f 70 74 69 6f 6e 73 2e 43 6f 6e 66 69 72 | "Options.Confir| 000b8c00 6d 22 20 66 6f 72 20 61 20 46 69 6c 65 72 20 6d |m" for a Filer m| 000b8c10 65 6e 75 2e 44 41 54 41 cc 00 00 00 77 69 6d 70 |enu.DATA....wimp| 000b8c20 5f 64 65 6c 65 74 65 5f 69 63 6f 6e 0a 53 79 6e |_delete_icon.Syn| 000b8c30 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000b8c40 2a 77 69 6d 70 5f 64 65 6c 65 74 65 5f 69 63 6f |*wimp_delete_ico| 000b8c50 6e 20 28 3c 77 69 6d 70 5f 77 3e 20 77 69 6e 2c |n (<wimp_w> win,| 000b8c60 20 3c 77 69 6d 70 5f 69 3e 20 69 63 6f 6e 29 3b | <wimp_i> icon);| 000b8c70 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 |.Header:.<wimp.h| 000b8c80 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 |=>wimp_h>..Retur| 000b8c90 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000b8ca0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000b8cb0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000b8cc0 75 6e 63 74 69 6f 6e 73 20 64 65 6c 65 74 65 73 |unctions deletes| 000b8cd0 20 74 68 65 20 67 69 76 65 6e 20 69 63 6f 6e 2e | the given icon.| 000b8ce0 44 41 54 41 bd 00 00 00 77 69 6d 70 5f 64 65 6c |DATA....wimp_del| 000b8cf0 65 74 65 5f 77 69 6e 64 0a 53 79 6e 74 61 78 3a |ete_wind.Syntax:| 000b8d00 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d |.<os_error> *wim| 000b8d10 70 5f 64 65 6c 65 74 65 5f 77 69 6e 64 20 28 3c |p_delete_wind (<| 000b8d20 77 69 6d 70 5f 77 3e 20 77 29 3b 0a 48 65 61 64 |wimp_w> w);.Head| 000b8d30 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d |er:.<wimp.h=>wim| 000b8d40 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |p_h>..Returns:.P| 000b8d50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000b8d60 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000b8d70 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 000b8d80 6f 6e 73 20 64 65 6c 65 74 65 73 20 74 68 65 20 |ons deletes the | 000b8d90 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e 00 00 00 |given window....| 000b8da0 44 41 54 41 f7 01 00 00 57 69 6d 70 5f 44 65 6c |DATA....Wimp_Del| 000b8db0 65 74 65 49 63 6f 6e 0a 53 79 6e 74 61 78 3a 09 |eteIcon.Syntax:.| 000b8dc0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 |<os_error> *Wimp| 000b8dd0 5f 44 65 6c 65 74 65 49 63 6f 6e 20 28 3c 77 69 |_DeleteIcon (<wi| 000b8de0 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e |ndow_handle> win| 000b8df0 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 |, <icon_handle> | 000b8e00 69 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c |icon);.Header:.<| 000b8e10 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 |DeskLib:WimpSWIs| 000b8e20 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 |.h=>WimpSWIs>..R| 000b8e30 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000b8e40 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000b8e50 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000b8e60 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f |is function remo| 000b8e70 76 65 73 20 74 68 65 20 64 65 66 69 6e 69 74 69 |ves the definiti| 000b8e80 6f 6e 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 |on of the specif| 000b8e90 69 65 64 20 69 63 6f 6e 2e 20 49 66 20 69 74 20 |ied icon. If it | 000b8ea0 69 73 20 6e 6f 74 20 74 68 65 20 6c 61 73 74 20 |is not the last | 000b8eb0 69 63 6f 6e 20 69 6e 20 74 68 61 74 20 77 69 6e |icon in that win| 000b8ec0 64 6f 77 20 69 74 20 69 73 20 6a 75 73 74 20 6d |dow it is just m| 000b8ed0 61 72 6b 65 64 20 61 73 20 64 65 6c 65 74 65 64 |arked as deleted| 000b8ee0 2c 20 62 75 74 20 69 66 20 69 74 20 69 73 20 74 |, but if it is t| 000b8ef0 68 65 20 6c 61 73 74 20 6f 6e 65 20 74 68 65 6e |he last one then| 000b8f00 20 74 68 65 20 73 70 61 63 65 20 6f 63 63 75 70 | the space occup| 000b8f10 69 65 64 20 62 79 20 69 74 20 69 73 20 66 72 65 |ied by it is fre| 000b8f20 65 64 2e 0a 0a 54 68 69 73 20 63 61 6c 6c 20 64 |ed...This call d| 000b8f30 6f 65 73 20 6e 6f 74 20 61 66 66 65 63 74 20 74 |oes not affect t| 000b8f40 68 65 20 73 63 72 65 65 6e 2c 20 75 6e 6c 65 73 |he screen, unles| 000b8f50 73 20 64 65 6c 65 74 69 6e 67 20 61 6e 20 69 63 |s deleting an ic| 000b8f60 6f 6e 20 66 72 6f 6d 20 74 68 65 20 69 63 6f 6e |on from the icon| 000b8f70 20 62 61 72 2e 20 59 6f 75 20 6d 75 73 74 20 63 | bar. You must c| 000b8f80 61 6c 6c 20 3c 57 69 6d 70 5f 46 6f 72 63 65 52 |all <Wimp_ForceR| 000b8f90 65 64 72 61 77 3e 2e 00 44 41 54 41 3a 01 00 00 |edraw>..DATA:...| 000b8fa0 57 69 6d 70 5f 44 65 6c 65 74 65 57 69 6e 64 6f |Wimp_DeleteWindo| 000b8fb0 77 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |w.Syntax:.<os_er| 000b8fc0 72 6f 72 3e 20 2a 57 69 6d 70 5f 44 65 6c 65 74 |ror> *Wimp_Delet| 000b8fd0 65 57 69 6e 64 6f 77 20 28 3c 77 69 6e 64 6f 77 |eWindow (<window| 000b8fe0 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 64 6f 77 29 |_handle> window)| 000b8ff0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000b9000 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 |ib:WimpSWIs.h=>W| 000b9010 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e |impSWIs>..Return| 000b9020 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000b9030 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000b9040 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000b9050 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 73 20 74 68 |nction closes th| 000b9060 65 20 73 70 65 63 69 66 69 65 64 20 77 69 6e 64 |e specified wind| 000b9070 6f 77 20 28 69 66 20 69 74 20 69 73 20 73 74 69 |ow (if it is sti| 000b9080 6c 6c 20 6f 70 65 6e 29 2c 20 61 6e 64 20 74 68 |ll open), and th| 000b9090 65 6e 20 72 65 6d 6f 76 65 73 20 74 68 65 20 64 |en removes the d| 000b90a0 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 74 68 65 |efinition of the| 000b90b0 20 77 69 6e 64 6f 77 2e 20 54 68 65 20 6d 65 6d | window. The mem| 000b90c0 6f 72 79 20 75 73 65 64 20 69 73 20 66 72 65 65 |ory used is free| 000b90d0 64 2e 00 00 44 41 54 41 c8 00 00 00 77 69 6d 70 |d...DATA....wimp| 000b90e0 5f 64 72 61 67 5f 62 6f 78 0a 53 79 6e 74 61 78 |_drag_box.Syntax| 000b90f0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 |:.<os_error> *wi| 000b9100 6d 70 5f 64 72 61 67 5f 62 6f 78 20 28 3c 77 69 |mp_drag_box (<wi| 000b9110 6d 70 5f 64 72 61 67 73 74 72 3e 20 2a 72 65 73 |mp_dragstr> *res| 000b9120 75 6c 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |ult);.Header:.<w| 000b9130 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a |imp.h=>wimp_h>..| 000b9140 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000b9150 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000b9160 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000b9170 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 |his function sta| 000b9180 72 74 73 20 74 68 65 20 57 69 6d 70 20 64 72 61 |rts the Wimp dra| 000b9190 67 67 69 6e 67 20 61 20 62 6f 78 2e 44 41 54 41 |gging a box.DATA| 000b91a0 aa 01 00 00 57 69 6d 70 5f 44 72 61 67 42 6f 78 |....Wimp_DragBox| 000b91b0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 000b91c0 6f 72 3e 20 2a 57 69 6d 70 5f 44 72 61 67 42 6f |or> *Wimp_DragBo| 000b91d0 78 20 28 3c 64 72 61 67 5f 62 6c 6f 63 6b 3e 20 |x (<drag_block> | 000b91e0 2a 64 72 61 67 69 6e 66 6f 29 3b 0a 48 65 61 64 |*draginfo);.Head| 000b91f0 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d |er:.<DeskLib:Wim| 000b9200 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 |pSWIs.h=>WimpSWI| 000b9210 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |s>..Returns:.Poi| 000b9220 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000b9230 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000b9240 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000b9250 20 69 6e 69 74 69 61 74 65 73 20 61 20 64 72 61 | initiates a dra| 000b9260 67 67 69 6e 67 20 6f 70 65 72 61 74 69 6f 6e 2e |gging operation.| 000b9270 20 2f 64 72 61 67 69 6e 66 6f 2e 77 69 6e 64 6f | /draginfo.windo| 000b9280 77 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 |w/ contains the | 000b9290 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 28 74 |window handle (t| 000b92a0 79 70 65 73 20 31 2d 34 29 2c 20 2f 64 72 61 67 |ypes 1-4), /drag| 000b92b0 69 6e 66 6f 2e 74 79 70 65 2f 20 63 6f 6e 74 61 |info.type/ conta| 000b92c0 69 6e 73 20 74 68 65 20 64 72 61 67 20 74 79 70 |ins the drag typ| 000b92d0 65 2c 20 2f 64 72 61 67 69 6e 66 6f 2e 73 63 72 |e, /draginfo.scr| 000b92e0 65 65 6e 72 65 63 74 2f 20 63 6f 6e 74 61 69 6e |eenrect/ contain| 000b92f0 73 20 74 68 65 20 62 6f 78 20 74 6f 20 62 65 20 |s the box to be | 000b9300 64 72 61 67 67 65 64 2c 20 61 6e 64 20 2f 64 72 |dragged, and /dr| 000b9310 61 67 69 6e 66 6f 2e 70 61 72 65 6e 74 2f 20 63 |aginfo.parent/ c| 000b9320 6f 6e 74 61 69 6e 73 20 74 68 65 20 62 6f 75 6e |ontains the boun| 000b9330 64 69 6e 67 20 62 6f 78 20 28 74 79 70 65 73 20 |ding box (types | 000b9340 35 2d 31 31 29 2e 00 00 44 41 54 41 d8 00 00 00 |5-11)...DATA....| 000b9350 77 69 6d 70 5f 64 72 61 67 73 74 72 0a 54 68 69 |wimp_dragstr.Thi| 000b9360 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000b9370 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 |d in <wimp.h=>wi| 000b9380 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 73 |mp_h>. It is a s| 000b9390 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 6f |tructure used to| 000b93a0 20 68 6f 6c 64 20 75 73 65 72 20 64 72 61 67 20 | hold user drag | 000b93b0 62 6f 78 20 64 61 74 61 3a 0a 0a 20 20 5c 7b 0a |box data:.. \{.| 000b93c0 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 09 77 69 | <wimp_w>..wi| 000b93d0 6e 64 6f 77 3b 0a 20 20 20 20 3c 77 69 6d 70 5f |ndow;. <wimp_| 000b93e0 64 72 61 67 74 79 70 65 3e 09 74 79 70 65 3b 0a |dragtype>.type;.| 000b93f0 20 20 20 20 3c 77 69 6d 70 5f 62 6f 78 3e 09 09 | <wimp_box>..| 000b9400 62 6f 78 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 62 |box;. <wimp_b| 000b9410 6f 78 3e 09 09 70 61 72 65 6e 74 3b 0a 20 20 7d |ox>..parent;. }| 000b9420 44 41 54 41 20 01 00 00 77 69 6d 70 5f 64 72 61 |DATA ...wimp_dra| 000b9430 67 74 79 70 65 0a 54 68 69 73 20 74 79 70 65 20 |gtype.This type | 000b9440 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 |is defined in <w| 000b9450 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 |imp.h=>wimp_h>. | 000b9460 49 74 20 69 73 20 61 6e 20 65 6e 75 6d 65 72 61 |It is an enumera| 000b9470 74 65 64 20 74 79 70 65 20 63 6f 6e 74 61 69 6e |ted type contain| 000b9480 69 6e 67 20 74 68 65 20 76 61 6c 75 65 73 20 6f |ing the values o| 000b9490 66 20 74 68 65 20 57 69 6d 70 20 64 72 61 67 20 |f the Wimp drag | 000b94a0 74 79 70 65 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |types:.. \{. | 000b94b0 20 77 69 6d 70 5f 4d 4f 56 45 5f 57 49 4e 44 2c | wimp_MOVE_WIND,| 000b94c0 0a 20 20 20 20 77 69 6d 70 5f 53 49 5a 45 5f 57 |. wimp_SIZE_W| 000b94d0 49 4e 44 2c 0a 20 20 20 20 77 69 6d 70 5f 44 52 |IND,. wimp_DR| 000b94e0 41 47 5f 48 42 41 52 2c 0a 20 20 20 20 77 69 6d |AG_HBAR,. wim| 000b94f0 70 5f 44 52 41 47 5f 56 42 41 52 2c 0a 20 20 20 |p_DRAG_VBAR,. | 000b9500 20 77 69 6d 70 5f 55 53 45 52 5f 46 49 58 45 44 | wimp_USER_FIXED| 000b9510 2c 0a 20 20 20 20 77 69 6d 70 5f 55 53 45 52 5f |,. wimp_USER_| 000b9520 52 55 42 42 45 52 2c 0a 20 20 20 20 77 69 6d 70 |RUBBER,. wimp| 000b9530 5f 55 53 45 52 5f 48 49 44 44 45 4e 0a 20 20 7d |_USER_HIDDEN. }| 000b9540 44 41 54 41 d2 01 00 00 77 69 6d 70 5f 65 6d 61 |DATA....wimp_ema| 000b9550 73 6b 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |sk.This type is | 000b9560 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 |defined in <wimp| 000b9570 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 |.h=>wimp_h>. It | 000b9580 69 73 20 61 6e 20 65 6e 75 6d 65 72 61 74 65 64 |is an enumerated| 000b9590 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e 67 | type containing| 000b95a0 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 | the values of t| 000b95b0 68 65 20 62 69 74 73 20 69 6e 20 74 68 65 20 57 |he bits in the W| 000b95c0 69 6d 70 20 65 76 65 6e 74 20 6d 61 73 6b 3a 0a |imp event mask:.| 000b95d0 0a 20 20 5c 7b 0a 20 20 20 20 77 69 6d 70 5f 45 |. \{. wimp_E| 000b95e0 4d 4e 55 4c 4c 2c 0a 20 20 20 20 77 69 6d 70 5f |MNULL,. wimp_| 000b95f0 45 4d 52 45 44 52 41 57 2c 0a 20 20 20 20 77 69 |EMREDRAW,. wi| 000b9600 6d 70 5f 45 4d 4f 50 45 4e 2c 0a 20 20 20 20 77 |mp_EMOPEN,. w| 000b9610 69 6d 70 5f 45 4d 43 4c 4f 53 45 2c 0a 20 20 20 |imp_EMCLOSE,. | 000b9620 20 77 69 6d 70 5f 45 4d 50 54 52 4c 45 41 56 45 | wimp_EMPTRLEAVE| 000b9630 2c 0a 20 20 20 20 77 69 6d 70 5f 45 4d 50 54 52 |,. wimp_EMPTR| 000b9640 45 4e 54 45 52 2c 0a 20 20 20 20 77 69 6d 70 5f |ENTER,. wimp_| 000b9650 45 4d 42 55 54 2c 0a 20 20 20 20 77 69 6d 70 5f |EMBUT,. wimp_| 000b9660 45 4d 55 53 45 52 44 52 41 47 2c 0a 20 20 20 20 |EMUSERDRAG,. | 000b9670 77 69 6d 70 5f 45 4d 4b 45 59 2c 0a 20 20 20 20 |wimp_EMKEY,. | 000b9680 77 69 6d 70 5f 45 4d 4d 45 4e 55 2c 0a 20 20 20 |wimp_EMMENU,. | 000b9690 20 77 69 6d 70 5f 45 4d 53 43 52 4f 4c 4c 2c 0a | wimp_EMSCROLL,.| 000b96a0 20 20 20 20 77 69 6d 70 5f 45 4d 4c 4f 53 45 43 | wimp_EMLOSEC| 000b96b0 41 52 45 54 2c 0a 20 20 20 20 77 69 6d 70 5f 45 |ARET,. wimp_E| 000b96c0 4d 47 41 49 4e 43 41 52 45 54 2c 0a 20 20 20 20 |MGAINCARET,. | 000b96d0 77 69 6d 70 5f 45 4d 53 45 4e 44 09 09 3d 20 31 |wimp_EMSEND..= 1| 000b96e0 37 2c 0a 20 20 20 20 77 69 6d 70 5f 45 4d 53 45 |7,. wimp_EMSE| 000b96f0 4e 44 57 41 4e 54 41 43 4b 09 3d 20 31 38 2c 0a |NDWANTACK.= 18,.| 000b9700 20 20 20 20 77 69 6d 70 5f 45 4d 41 43 4b 0a 20 | wimp_EMACK. | 000b9710 20 7d 00 00 44 41 54 41 d7 00 00 00 77 69 6d 70 | }..DATA....wimp| 000b9720 5f 65 72 72 66 6c 61 67 73 0a 54 68 69 73 20 74 |_errflags.This t| 000b9730 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000b9740 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |n <wimp.h=>wimp_| 000b9750 68 3e 2e 20 49 74 20 69 73 20 61 6e 0a 65 6e 75 |h>. It is an.enu| 000b9760 6d 65 72 61 74 65 64 20 74 79 70 65 20 63 6f 6e |merated type con| 000b9770 74 61 69 6e 69 6e 67 20 74 68 65 20 76 61 6c 75 |taining the valu| 000b9780 65 73 20 6f 66 20 74 68 65 0a 57 69 6d 70 20 65 |es of the.Wimp e| 000b9790 72 72 6f 72 20 66 6c 61 67 73 3a 0a 0a 20 20 7b |rror flags:.. {| 000b97a0 0a 20 20 20 20 77 69 6d 70 5f 45 4f 4b 20 20 20 |. wimp_EOK | 000b97b0 20 20 20 20 3d 20 31 2c 0a 20 20 20 20 77 69 6d | = 1,. wim| 000b97c0 70 5f 45 43 41 4e 43 45 4c 20 20 20 3d 20 32 2c |p_ECANCEL = 2,| 000b97d0 0a 20 20 20 20 77 69 6d 70 5f 45 48 49 43 41 4e |. wimp_EHICAN| 000b97e0 43 45 4c 20 3d 20 34 0a 20 20 7d 00 44 41 54 41 |CEL = 4. }.DATA| 000b97f0 b7 01 00 00 77 69 6d 70 5f 65 74 79 70 65 0a 54 |....wimp_etype.T| 000b9800 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000b9810 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e |ned in <wimp.h=>| 000b9820 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 |wimp_h>. It is a| 000b9830 6e 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 |n enumerated typ| 000b9840 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 |e containing the| 000b9850 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 57 | values of the W| 000b9860 69 6d 70 20 65 76 65 6e 74 20 74 79 70 65 73 3a |imp event types:| 000b9870 0a 0a 20 20 5c 7b 0a 20 20 20 20 77 69 6d 70 5f |.. \{. wimp_| 000b9880 45 4e 55 4c 4c 2c 0a 20 20 20 20 77 69 6d 70 5f |ENULL,. wimp_| 000b9890 45 52 45 44 52 41 57 2c 0a 20 20 20 20 77 69 6d |EREDRAW,. wim| 000b98a0 70 5f 45 4f 50 45 4e 2c 0a 20 20 20 20 77 69 6d |p_EOPEN,. wim| 000b98b0 70 5f 45 43 4c 4f 53 45 2c 0a 20 20 20 20 77 69 |p_ECLOSE,. wi| 000b98c0 6d 70 5f 45 50 54 52 4c 45 41 56 45 2c 0a 20 20 |mp_EPTRLEAVE,. | 000b98d0 20 20 77 69 6d 70 5f 45 50 54 52 45 4e 54 45 52 | wimp_EPTRENTER| 000b98e0 2c 0a 20 20 20 20 77 69 6d 70 5f 45 42 55 54 2c |,. wimp_EBUT,| 000b98f0 0a 20 20 20 20 77 69 6d 70 5f 45 55 53 45 52 44 |. wimp_EUSERD| 000b9900 52 41 47 2c 0a 20 20 20 20 77 69 6d 70 5f 45 4b |RAG,. wimp_EK| 000b9910 45 59 2c 0a 20 20 20 20 77 69 6d 70 5f 45 4d 45 |EY,. wimp_EME| 000b9920 4e 55 2c 0a 20 20 20 20 77 69 6d 70 5f 45 53 43 |NU,. wimp_ESC| 000b9930 52 4f 4c 4c 2c 0a 20 20 20 20 77 69 6d 70 5f 45 |ROLL,. wimp_E| 000b9940 4c 4f 53 45 43 41 52 45 54 2c 0a 20 20 20 20 77 |LOSECARET,. w| 000b9950 69 6d 70 5f 45 47 41 49 4e 43 41 52 45 54 2c 0a |imp_EGAINCARET,.| 000b9960 20 20 20 20 77 69 6d 70 5f 45 53 45 4e 44 09 09 | wimp_ESEND..| 000b9970 3d 20 31 37 2c 0a 20 20 20 20 77 69 6d 70 5f 45 |= 17,. wimp_E| 000b9980 53 45 4e 44 57 41 4e 54 41 43 4b 09 3d 20 31 38 |SENDWANTACK.= 18| 000b9990 2c 0a 20 20 20 20 77 69 6d 70 5f 45 41 43 4b 0a |,. wimp_EACK.| 000b99a0 20 20 7d 00 44 41 54 41 d1 01 00 00 77 69 6d 70 | }.DATA....wimp| 000b99b0 5f 65 76 65 6e 74 64 61 74 61 0a 54 68 69 73 20 |_eventdata.This | 000b99c0 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000b99d0 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 |in <wimp.h=>wimp| 000b99e0 5f 68 3e 2e 20 49 74 20 69 73 20 61 0a 75 6e 69 |_h>. It is a.uni| 000b99f0 6f 6e 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 |on used to hold | 000b9a00 64 61 74 61 20 72 65 74 75 72 6e 65 64 20 62 79 |data returned by| 000b9a10 20 74 68 65 20 57 69 6d 70 2e 0a 0a 20 20 5c 7b | the Wimp... \{| 000b9a20 0a 20 20 20 20 3c 77 69 6d 70 5f 6f 70 65 6e 73 |. <wimp_opens| 000b9a30 74 72 3e 09 6f 3b 0a 20 20 20 20 3c 77 69 6d 70 |tr>.o;. <wimp| 000b9a40 5f 62 6f 78 3e 09 09 64 72 61 67 62 6f 78 3b 0a |_box>..dragbox;.| 000b9a50 20 20 20 20 69 6e 74 09 09 09 6d 65 6e 75 5b 31 | int...menu[1| 000b9a60 30 5d 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 63 61 |0];. <wimp_ca| 000b9a70 72 65 74 73 74 72 3e 09 63 3b 0a 20 20 20 20 3c |retstr>.c;. <| 000b9a80 77 69 6d 70 5f 6d 73 67 73 74 72 3e 09 6d 73 67 |wimp_msgstr>.msg| 000b9a90 3b 0a 0a 20 20 20 20 73 74 72 75 63 74 0a 20 20 |;.. struct. | 000b9aa0 20 20 5c 7b 0a 20 20 20 20 20 20 3c 77 69 6d 70 | \{. <wimp| 000b9ab0 5f 6d 6f 75 73 65 73 74 72 3e 09 6d 3b 0a 20 20 |_mousestr>.m;. | 000b9ac0 20 20 20 20 3c 77 69 6d 70 5f 62 62 69 74 73 3e | <wimp_bbits>| 000b9ad0 09 62 3b 0a 20 20 20 20 7d 20 62 75 74 3b 0a 0a |.b;. } but;..| 000b9ae0 20 20 20 20 73 74 72 75 63 74 0a 20 20 20 20 5c | struct. \| 000b9af0 7b 0a 20 20 20 20 20 20 3c 77 69 6d 70 5f 63 61 |{. <wimp_ca| 000b9b00 72 65 74 73 74 72 3e 09 63 3b 0a 20 20 20 20 20 |retstr>.c;. | 000b9b10 20 69 6e 74 09 09 63 68 63 6f 64 65 3b 0a 20 20 | int..chcode;. | 000b9b20 20 20 7d 20 6b 65 79 3b 0a 0a 20 20 20 20 73 74 | } key;.. st| 000b9b30 72 75 63 74 0a 20 20 20 20 5c 7b 0a 20 20 20 20 |ruct. \{. | 000b9b40 20 20 3c 77 69 6d 70 5f 6f 70 65 6e 73 74 72 3e | <wimp_openstr>| 000b9b50 09 6f 3b 0a 20 20 20 20 20 20 69 6e 74 09 09 78 |.o;. int..x| 000b9b60 2c 79 3b 0a 20 20 20 20 7d 20 73 63 72 6f 6c 6c |,y;. } scroll| 000b9b70 3b 0a 20 20 7d 00 00 00 44 41 54 41 af 00 00 00 |;. }...DATA....| 000b9b80 77 69 6d 70 5f 65 76 65 6e 74 73 74 72 0a 54 68 |wimp_eventstr.Th| 000b9b90 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000b9ba0 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 |ed in <wimp.h=>w| 000b9bb0 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 |imp_h>. It is a | 000b9bc0 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 |structure used t| 000b9bd0 6f 20 68 6f 6c 64 20 61 6e 20 65 76 65 6e 74 20 |o hold an event | 000b9be0 74 79 70 65 20 61 6e 64 20 64 61 74 61 2e 0a 0a |type and data...| 000b9bf0 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 65 | \{. <wimp_e| 000b9c00 74 79 70 65 3e 09 65 3b 0a 20 20 20 20 3c 77 69 |type>.e;. <wi| 000b9c10 6d 70 5f 65 76 65 6e 74 64 61 74 61 3e 09 64 61 |mp_eventdata>.da| 000b9c20 74 61 3b 0a 20 20 7d 00 44 41 54 41 8b 00 00 00 |ta;. }.DATA....| 000b9c30 77 69 6d 70 5f 66 6f 6e 74 5f 61 72 72 61 79 0a |wimp_font_array.| 000b9c40 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 000b9c50 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d |ined in <wimp.h=| 000b9c60 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 |>wimp_h>. It is | 000b9c70 61 20 73 74 72 75 63 74 75 72 65 20 75 73 65 64 |a structure used| 000b9c80 20 74 6f 20 68 6f 6c 64 20 61 20 66 6f 6e 74 20 | to hold a font | 000b9c90 61 72 72 61 79 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |array:.. \{. | 000b9ca0 20 63 68 61 72 20 20 20 66 5b 32 35 36 5d 3b 0a | char f[256];.| 000b9cb0 20 20 7d 00 44 41 54 41 0b 01 00 00 77 69 6d 70 | }.DATA....wimp| 000b9cc0 5f 66 6f 72 63 65 5f 72 65 64 72 61 77 0a 53 79 |_force_redraw.Sy| 000b9cd0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000b9ce0 20 2a 77 69 6d 70 5f 66 6f 72 63 65 5f 72 65 64 | *wimp_force_red| 000b9cf0 72 61 77 20 28 3c 77 69 6d 70 5f 72 65 64 72 61 |raw (<wimp_redra| 000b9d00 77 73 74 72 3e 20 2a 72 65 64 72 61 77 29 3b 0a |wstr> *redraw);.| 000b9d10 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d |Header:.<wimp.h=| 000b9d20 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e |>wimp_h>..Return| 000b9d30 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000b9d40 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000b9d50 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000b9d60 6e 63 74 69 6f 6e 20 6d 61 72 6b 73 20 61 6e 20 |nction marks an | 000b9d70 61 72 65 61 20 6f 66 20 61 20 77 69 6e 64 6f 77 |area of a window| 000b9d80 20 61 73 20 69 6e 76 61 6c 69 64 2e 20 49 66 20 | as invalid. If | 000b9d90 7b 2f 7d 72 65 64 72 61 77 2d 3e 77 3d 2d 31 7b |{/}redraw->w=-1{| 000b9da0 2f 7d 20 74 68 65 6e 20 75 73 65 20 73 63 72 65 |/} then use scre| 000b9db0 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65 73 2e 00 |en coordinates..| 000b9dc0 44 41 54 41 de 01 00 00 57 69 6d 70 5f 46 6f 72 |DATA....Wimp_For| 000b9dd0 63 65 52 65 64 72 61 77 0a 53 79 6e 74 61 78 3a |ceRedraw.Syntax:| 000b9de0 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d |.<os_error> *Wim| 000b9df0 70 5f 46 6f 72 63 65 52 65 64 72 61 77 20 28 3c |p_ForceRedraw (<| 000b9e00 77 69 6e 64 6f 77 5f 72 65 64 72 61 77 62 6c 6f |window_redrawblo| 000b9e10 63 6b 3e 20 2a 62 6c 6f 63 6b 29 3b 0a 48 65 61 |ck> *block);.Hea| 000b9e20 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 |der:.<DeskLib:Wi| 000b9e30 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000b9e40 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |Is>..Returns:.Po| 000b9e50 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000b9e60 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000b9e70 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000b9e80 6e 20 66 6f 72 63 65 73 20 61 6e 20 61 72 65 61 |n forces an area| 000b9e90 20 6f 66 20 73 63 72 65 65 6e 20 74 6f 20 62 65 | of screen to be| 000b9ea0 20 72 65 64 72 61 77 20 6c 61 74 65 72 20 75 73 | redraw later us| 000b9eb0 69 6e 67 20 52 65 64 72 61 77 5f 57 69 6e 64 6f |ing Redraw_Windo| 000b9ec0 77 5f 52 65 71 75 65 73 74 20 65 76 65 6e 74 73 |w_Request events| 000b9ed0 2e 20 7b 2f 7d 62 6c 6f 63 6b 2d 3e 77 69 6e 64 |. {/}block->wind| 000b9ee0 6f 77 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 20 74 |ow{/} contains t| 000b9ef0 68 65 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |he window handle| 000b9f00 2c 20 61 6e 64 20 7b 2f 7d 62 6c 6f 63 6b 2d 3e |, and {/}block->| 000b9f10 72 65 63 74 7b 2f 7d 20 63 6f 6e 74 61 69 6e 73 |rect{/} contains| 000b9f20 20 74 68 65 20 61 72 65 61 20 6f 66 20 77 6f 72 | the area of wor| 000b9f30 6b 20 61 72 65 61 20 74 6f 20 72 65 64 72 61 77 |k area to redraw| 000b9f40 2e 20 49 66 20 7b 2f 7d 62 6c 6f 63 6b 2d 3e 77 |. If {/}block->w| 000b9f50 69 6e 64 6f 77 7b 2f 7d 20 63 6f 6e 74 61 69 6e |indow{/} contain| 000b9f60 73 20 2d 31 2c 20 74 68 65 6e 20 7b 2f 7d 62 6c |s -1, then {/}bl| 000b9f70 6f 63 6b 2d 3e 72 65 63 74 7b 2f 7d 20 63 6f 6e |ock->rect{/} con| 000b9f80 74 61 69 6e 73 20 61 20 73 63 72 65 65 6e 20 61 |tains a screen a| 000b9f90 72 65 61 20 74 6f 20 72 65 64 72 61 77 2e 00 00 |rea to redraw...| 000b9fa0 44 41 54 41 d4 00 00 00 77 69 6d 70 5f 67 65 74 |DATA....wimp_get| 000b9fb0 5f 63 61 72 65 74 5f 70 6f 73 0a 53 79 6e 74 61 |_caret_pos.Synta| 000b9fc0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 |x:.<os_error> *w| 000b9fd0 69 6d 70 5f 67 65 74 5f 63 61 72 65 74 5f 70 6f |imp_get_caret_po| 000b9fe0 73 20 28 3c 77 69 6d 70 5f 63 61 72 65 74 73 74 |s (<wimp_caretst| 000b9ff0 72 3e 20 2a 62 6c 6b 29 3b 0a 48 65 61 64 65 72 |r> *blk);.Header| 000ba000 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000ba010 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000ba020 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000ba030 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000ba040 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000ba050 20 67 65 74 73 20 74 68 65 20 63 61 72 65 74 20 | gets the caret | 000ba060 70 6f 73 69 74 69 6f 6e 20 69 6e 74 6f 20 2f 62 |position into /b| 000ba070 6c 6b 2f 2e 44 41 54 41 1a 01 00 00 77 69 6d 70 |lk/.DATA....wimp| 000ba080 5f 67 65 74 5f 69 63 6f 6e 5f 69 6e 66 6f 0a 53 |_get_icon_info.S| 000ba090 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000ba0a0 3e 20 2a 77 69 6d 70 5f 67 65 74 5f 69 63 6f 6e |> *wimp_get_icon| 000ba0b0 5f 69 6e 66 6f 20 28 3c 77 69 6d 70 5f 77 3e 20 |_info (<wimp_w> | 000ba0c0 77 69 6e 2c 20 3c 77 69 6d 70 5f 69 3e 20 69 63 |win, <wimp_i> ic| 000ba0d0 6f 6e 2c 20 3c 77 69 6d 70 5f 69 63 6f 6e 3e 20 |on, <wimp_icon> | 000ba0e0 2a 72 65 73 75 6c 74 29 3b 0a 48 65 61 64 65 72 |*result);.Header| 000ba0f0 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000ba100 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000ba110 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000ba120 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000ba130 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000ba140 20 67 65 74 73 20 74 68 65 20 63 75 72 72 65 6e | gets the curren| 000ba150 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 73 |t state of the s| 000ba160 70 65 63 69 66 69 65 64 20 69 63 6f 6e 20 61 6e |pecified icon an| 000ba170 64 20 72 65 74 75 72 6e 73 20 69 74 20 69 6e 20 |d returns it in | 000ba180 7b 2f 7d 2a 72 65 73 75 6c 74 7b 2f 7d 2e 00 00 |{/}*result{/}...| 000ba190 44 41 54 41 f3 00 00 00 77 69 6d 70 5f 67 65 74 |DATA....wimp_get| 000ba1a0 5f 70 6f 69 6e 74 5f 69 6e 66 6f 0a 53 79 6e 74 |_point_info.Synt| 000ba1b0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000ba1c0 77 69 6d 70 5f 67 65 74 5f 70 6f 69 6e 74 5f 69 |wimp_get_point_i| 000ba1d0 6e 66 6f 20 28 3c 77 69 6d 70 5f 6d 6f 75 73 65 |nfo (<wimp_mouse| 000ba1e0 73 74 72 3e 20 2a 72 65 73 75 6c 74 29 3b 0a 48 |str> *result);.H| 000ba1f0 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e |eader:.<wimp.h=>| 000ba200 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |wimp_h>..Returns| 000ba210 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000ba220 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000ba230 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000ba240 63 74 69 6f 6e 20 67 65 74 73 20 74 68 65 20 63 |ction gets the c| 000ba250 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20 |urrent state of | 000ba260 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 |the mouse pointe| 000ba270 72 20 69 6e 20 7b 2f 7d 2a 72 65 73 75 6c 74 7b |r in {/}*result{| 000ba280 2f 7d 2e 00 44 41 54 41 11 01 00 00 77 69 6d 70 |/}..DATA....wimp| 000ba290 5f 67 65 74 5f 72 65 63 74 61 6e 67 6c 65 0a 53 |_get_rectangle.S| 000ba2a0 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000ba2b0 3e 20 2a 77 69 6d 70 5f 67 65 74 5f 72 65 63 74 |> *wimp_get_rect| 000ba2c0 61 6e 67 6c 65 20 28 3c 77 69 6d 70 5f 72 65 64 |angle (<wimp_red| 000ba2d0 72 61 77 73 74 72 3e 20 2a 62 6c 6b 2c 20 3c 42 |rawstr> *blk, <B| 000ba2e0 4f 4f 4c 3e 20 2a 6d 6f 72 65 29 3b 0a 48 65 61 |OOL> *more);.Hea| 000ba2f0 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 |der:.<wimp.h=>wi| 000ba300 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |mp_h>..Returns:.| 000ba310 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000ba320 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000ba330 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000ba340 69 6f 6e 73 20 72 65 74 75 72 6e 73 20 3c 54 52 |ions returns <TR| 000ba350 55 45 3e 20 69 6e 20 7b 2f 7d 2a 6d 6f 72 65 7b |UE> in {/}*more{| 000ba360 2f 7d 20 69 66 20 74 68 65 72 65 20 69 73 20 6d |/} if there is m| 000ba370 6f 72 65 20 74 6f 20 62 65 20 64 72 61 77 6e 20 |ore to be drawn | 000ba380 3c 77 69 6d 70 5f 67 65 74 5f 72 65 63 74 61 6e |<wimp_get_rectan| 000ba390 67 6c 65 3e 2e 00 00 00 44 41 54 41 02 01 00 00 |gle>....DATA....| 000ba3a0 77 69 6d 70 5f 67 65 74 5f 77 69 6e 64 5f 69 6e |wimp_get_wind_in| 000ba3b0 66 6f 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |fo.Syntax:.<os_e| 000ba3c0 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 67 65 74 5f |rror> *wimp_get_| 000ba3d0 77 69 6e 64 5f 69 6e 66 6f 20 28 3c 77 69 6d 70 |wind_info (<wimp| 000ba3e0 5f 77 69 6e 66 6f 3e 20 2a 72 65 73 75 6c 74 29 |_winfo> *result)| 000ba3f0 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e |;.Header:.<wimp.| 000ba400 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 |h=>wimp_h>..Retu| 000ba410 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000ba420 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000ba430 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000ba440 66 75 6e 63 74 69 6f 6e 73 20 67 65 74 73 20 74 |functions gets t| 000ba450 68 65 20 63 6f 6d 70 6c 65 74 65 20 64 65 66 69 |he complete defi| 000ba460 6e 69 74 69 6f 6e 20 6f 66 20 7b 2f 7d 72 65 73 |nition of {/}res| 000ba470 75 6c 74 2d 3e 77 7b 2f 7d 20 61 6e 64 20 72 65 |ult->w{/} and re| 000ba480 74 75 72 6e 73 20 69 74 20 69 6e 20 7b 2f 7d 2a |turns it in {/}*| 000ba490 72 65 73 75 6c 74 7b 2f 7d 2e 00 00 44 41 54 41 |result{/}...DATA| 000ba4a0 04 01 00 00 77 69 6d 70 5f 67 65 74 5f 77 69 6e |....wimp_get_win| 000ba4b0 64 5f 73 74 61 74 65 0a 53 79 6e 74 61 78 3a 09 |d_state.Syntax:.| 000ba4c0 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 |<os_error> *wimp| 000ba4d0 5f 67 65 74 5f 77 69 6e 64 5f 73 74 61 74 65 20 |_get_wind_state | 000ba4e0 28 3c 77 69 6d 70 5f 77 3e 20 77 69 6e 2c 20 77 |(<wimp_w> win, w| 000ba4f0 69 6d 70 5f 77 73 74 61 74 65 20 2a 72 65 73 75 |imp_wstate *resu| 000ba500 6c 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 |lt);.Header:.<wi| 000ba510 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 |mp.h=>wimp_h>..R| 000ba520 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 |eturns:.Pointer | 000ba530 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 |to error, or <NU| 000ba540 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 |LL> if none...Th| 000ba550 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 67 65 74 |is functions get| 000ba560 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 |s the state of t| 000ba570 68 65 20 77 69 6e 64 6f 77 20 2f 77 69 6e 2f 20 |he window /win/ | 000ba580 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 20 69 |and returns it i| 000ba590 6e 20 7b 2f 7d 2a 72 65 73 75 6c 74 7b 2f 7d 2e |n {/}*result{/}.| 000ba5a0 44 41 54 41 3b 01 00 00 57 69 6d 70 5f 47 65 74 |DATA;...Wimp_Get| 000ba5b0 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 0a 53 79 |CaretPosition.Sy| 000ba5c0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000ba5d0 20 2a 57 69 6d 70 5f 47 65 74 43 61 72 65 74 50 | *Wimp_GetCaretP| 000ba5e0 6f 73 69 74 69 6f 6e 20 28 3c 63 61 72 65 74 5f |osition (<caret_| 000ba5f0 62 6c 6f 63 6b 3e 20 2a 63 61 72 65 74 29 3b 0a |block> *caret);.| 000ba600 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000ba610 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d |:WimpSWIs.h=>Wim| 000ba620 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a |pSWIs>..Returns:| 000ba630 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000ba640 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000ba650 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000ba660 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 64 65 74 |tion returns det| 000ba670 61 69 6c 73 20 6f 66 20 74 68 65 20 63 61 72 65 |ails of the care| 000ba680 74 27 73 20 73 74 61 74 65 20 69 6e 20 74 68 65 |t's state in the| 000ba690 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 | block pointed t| 000ba6a0 6f 20 62 79 20 2f 63 61 72 65 74 2f 2e 0a 0a 7b |o by /caret/...{| 000ba6b0 2f 7d 63 61 72 65 74 2d 3e 68 65 69 67 68 74 7b |/}caret->height{| 000ba6c0 2f 7d 20 69 73 20 2d 31 20 66 6f 72 20 6e 6f 74 |/} is -1 for not| 000ba6d0 20 64 69 73 70 6c 61 79 65 64 2e 00 44 41 54 41 | displayed..DATA| 000ba6e0 36 01 00 00 57 69 6d 70 5f 47 65 74 49 63 6f 6e |6...Wimp_GetIcon| 000ba6f0 53 74 61 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6f |State.Syntax:.<o| 000ba700 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 47 |s_error> *Wimp_G| 000ba710 65 74 49 63 6f 6e 53 74 61 74 65 20 28 3c 77 69 |etIconState (<wi| 000ba720 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e |ndow_handle> win| 000ba730 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 |, <icon_handle> | 000ba740 69 63 6f 6e 2c 20 3c 69 63 6f 6e 5f 62 6c 6f 63 |icon, <icon_bloc| 000ba750 6b 3e 20 2a 69 63 6f 6e 69 6e 66 6f 29 3b 0a 48 |k> *iconinfo);.H| 000ba760 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000ba770 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 |WimpSWIs.h=>Wimp| 000ba780 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |SWIs>..Returns:.| 000ba790 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000ba7a0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000ba7b0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000ba7c0 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 |ion returns the | 000ba7d0 73 70 65 63 69 66 69 65 64 20 69 63 6f 6e 27 73 |specified icon's| 000ba7e0 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 20 74 | definition in t| 000ba7f0 68 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 |he block pointed| 000ba800 20 74 6f 20 62 79 20 2f 69 63 6f 6e 69 6e 66 6f | to by /iconinfo| 000ba810 2f 2e 00 00 44 41 54 41 6d 01 00 00 57 69 6d 70 |/...DATAm...Wimp| 000ba820 5f 47 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 0a |_GetPointerInfo.| 000ba830 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000ba840 72 3e 20 2a 57 69 6d 70 5f 47 65 74 50 6f 69 6e |r> *Wimp_GetPoin| 000ba850 74 65 72 49 6e 66 6f 20 28 3c 6d 6f 75 73 65 5f |terInfo (<mouse_| 000ba860 62 6c 6f 63 6b 3e 20 2a 70 74 72 69 6e 66 6f 29 |block> *ptrinfo)| 000ba870 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000ba880 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 |ib:WimpSWIs.h=>W| 000ba890 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e |impSWIs>..Return| 000ba8a0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000ba8b0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000ba8c0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000ba8d0 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 69 |nction returns i| 000ba8e0 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 |nformation about| 000ba8f0 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 | the position of| 000ba900 20 74 68 65 20 70 6f 69 6e 74 65 72 20 61 6e 64 | the pointer and| 000ba910 20 74 68 65 20 69 6e 73 74 61 6e 74 61 6e 65 6f | the instantaneo| 000ba920 75 73 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 |us state of the | 000ba930 6d 6f 75 73 65 20 62 75 74 74 6f 6e 73 2e 20 54 |mouse buttons. T| 000ba940 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 |he information i| 000ba950 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 74 68 |s returned in th| 000ba960 65 20 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e |e structure poin| 000ba970 74 65 64 20 62 79 20 2f 70 74 72 69 6e 66 6f 2f |ted by /ptrinfo/| 000ba980 2e 00 00 00 44 41 54 41 29 01 00 00 57 69 6d 70 |....DATA)...Wimp| 000ba990 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 0a 53 79 |_GetRectangle.Sy| 000ba9a0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000ba9b0 20 2a 57 69 6d 70 5f 47 65 74 52 65 63 74 61 6e | *Wimp_GetRectan| 000ba9c0 67 6c 65 20 28 3c 77 69 6e 64 6f 77 5f 72 65 64 |gle (<window_red| 000ba9d0 72 61 77 62 6c 6f 63 6b 3e 20 2a 62 6c 6b 2c 20 |rawblock> *blk, | 000ba9e0 3c 42 4f 4f 4c 3e 20 2a 6d 6f 72 65 29 3b 0a 48 |<BOOL> *more);.H| 000ba9f0 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000baa00 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 |WimpSWIs.h=>Wimp| 000baa10 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |SWIs>..Returns:.| 000baa20 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000baa30 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000baa40 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000baa50 69 6f 6e 20 69 73 20 75 73 65 64 20 72 65 70 65 |ion is used repe| 000baa60 61 74 65 64 6c 79 20 66 6f 6c 6c 6f 77 69 6e 67 |atedly following| 000baa70 20 61 20 63 61 6c 6c 20 74 6f 20 65 69 74 68 65 | a call to eithe| 000baa80 72 20 3c 57 69 6d 70 5f 52 65 64 72 61 77 57 69 |r <Wimp_RedrawWi| 000baa90 6e 64 6f 77 3e 20 6f 72 20 3c 57 69 6d 70 5f 55 |ndow> or <Wimp_U| 000baaa0 70 64 61 74 65 57 69 6e 64 6f 77 3e 2e 00 00 00 |pdateWindow>....| 000baab0 44 41 54 41 fc 00 00 00 57 69 6d 70 5f 47 65 74 |DATA....Wimp_Get| 000baac0 57 69 6e 64 6f 77 49 6e 66 6f 0a 53 79 6e 74 61 |WindowInfo.Synta| 000baad0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 |x:.<os_error> *W| 000baae0 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 |imp_GetWindowInf| 000baaf0 6f 20 28 3c 77 69 6e 64 6f 77 5f 69 6e 66 6f 3e |o (<window_info>| 000bab00 20 2a 69 6e 66 6f 29 3b 0a 48 65 61 64 65 72 3a | *info);.Header:| 000bab10 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 |.<DeskLib:WimpSW| 000bab20 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a |Is.h=>WimpSWIs>.| 000bab30 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000bab40 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000bab50 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000bab60 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 000bab70 74 75 72 6e 73 20 74 68 65 20 67 69 76 65 6e 20 |turns the given | 000bab80 77 69 6e 64 6f 77 27 73 20 63 6f 6d 70 6c 65 74 |window's complet| 000bab90 65 20 73 74 61 74 65 20 69 6e 63 6c 75 64 69 6e |e state includin| 000baba0 67 20 61 6c 6c 20 69 63 6f 6e 73 2e 44 41 54 41 |g all icons.DATA| 000babb0 9b 01 00 00 57 69 6d 70 5f 47 65 74 57 69 6e 64 |....Wimp_GetWind| 000babc0 6f 77 4f 75 74 6c 69 6e 65 0a 53 79 6e 74 61 78 |owOutline.Syntax| 000babd0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000babe0 6d 70 5f 47 65 74 57 69 6e 64 6f 77 4f 75 74 6c |mp_GetWindowOutl| 000babf0 69 6e 65 20 28 3c 77 69 6e 64 6f 77 5f 6f 75 74 |ine (<window_out| 000bac00 6c 69 6e 65 3e 20 2a 6f 75 74 6c 69 6e 65 29 3b |line> *outline);| 000bac10 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000bac20 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 |b:WimpSWIs.h=>Wi| 000bac30 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 |mpSWIs>..Returns| 000bac40 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000bac50 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000bac60 20 6e 6f 6e 65 2e 0a 0a 44 65 73 6b 74 6f 70 20 | none...Desktop | 000bac70 43 3a 20 53 65 65 20 3c 77 69 6d 70 5f 67 65 74 |C: See <wimp_get| 000bac80 77 69 6e 64 6f 77 6f 75 74 6c 69 6e 65 3d 3e 77 |windowoutline=>w| 000bac90 69 6d 70 5f 67 65 74 77 69 6e 64 6f 77 6f 75 74 |imp_getwindowout| 000baca0 6c 69 6e 65 5f 3e 0a 0a 54 68 69 73 20 66 75 6e |line_>..This fun| 000bacb0 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 |ction returns th| 000bacc0 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 27 73 |e given window's| 000bacd0 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 20 69 65 | bounding box ie| 000bace0 20 74 68 65 20 62 6f 78 20 77 68 69 63 68 20 63 | the box which c| 000bacf0 6f 6d 70 6c 65 74 65 6c 79 20 63 6f 76 65 72 73 |ompletely covers| 000bad00 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 77 | the specified w| 000bad10 69 6e 64 6f 77 2c 20 69 6e 63 6c 75 64 69 6e 67 |indow, including| 000bad20 20 69 74 73 20 62 6f 72 64 65 72 2e 20 54 68 65 | its border. The| 000bad30 20 77 69 6e 64 6f 77 20 6d 75 73 74 20 62 65 20 | window must be | 000bad40 6f 70 65 6e 2e 2e 2e 00 44 41 54 41 13 01 00 00 |open....DATA....| 000bad50 77 69 6d 70 5f 67 65 74 77 69 6e 64 6f 77 6f 75 |wimp_getwindowou| 000bad60 74 6c 69 6e 65 0a 53 79 6e 74 61 78 3a 09 3c 6f |tline.Syntax:.<o| 000bad70 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 67 |s_error> *wimp_g| 000bad80 65 74 77 69 6e 64 6f 77 6f 75 74 6c 69 6e 65 20 |etwindowoutline | 000bad90 28 3c 77 69 6d 70 5f 72 65 64 72 61 77 73 74 72 |(<wimp_redrawstr| 000bada0 3e 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c |> *r);.Header:.<| 000badb0 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a |wimp.h=>wimp_h>.| 000badc0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000badd0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000bade0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000badf0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 65 |This function ge| 000bae00 74 73 20 74 68 65 20 6f 75 74 6c 69 6e 65 20 6f |ts the outline o| 000bae10 66 20 74 68 65 20 77 69 6e 64 6f 77 20 70 61 73 |f the window pas| 000bae20 73 65 64 20 69 6e 20 7b 2f 7d 72 2d 3e 77 7b 2f |sed in {/}r->w{/| 000bae30 7d 2e 20 54 68 65 20 6f 75 74 6c 69 6e 65 20 69 |}. The outline i| 000bae40 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 7b 2f |s returned in {/| 000bae50 7d 72 2d 3e 62 6f 78 7b 2f 7d 2e 00 44 41 54 41 |}r->box{/}..DATA| 000bae60 fb 00 00 00 57 69 6d 70 5f 47 65 74 57 69 6e 64 |....Wimp_GetWind| 000bae70 6f 77 53 74 61 74 65 0a 53 79 6e 74 61 78 3a 09 |owState.Syntax:.| 000bae80 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 |<os_error> *Wimp| 000bae90 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 20 |_GetWindowState | 000baea0 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |(<window_handle>| 000baeb0 20 77 69 6e 64 6f 77 2c 20 3c 77 69 6e 64 6f 77 | window, <window| 000baec0 5f 73 74 61 74 65 3e 20 2a 73 74 61 74 65 29 3b |_state> *state);| 000baed0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000baee0 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 |b:WimpSWIs.h=>Wi| 000baef0 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 |mpSWIs>..Returns| 000baf00 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000baf10 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000baf20 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000baf30 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 |ction returns th| 000baf40 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 27 73 |e given window's| 000baf50 20 73 74 61 74 65 2e 00 44 41 54 41 2b 01 00 00 | state..DATA+...| 000baf60 77 69 6d 70 2e 68 0a 54 68 65 20 5c 3c 77 69 6d |wimp.h.The \<wim| 000baf70 70 2e 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c |p.h> header decl| 000baf80 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 |ares functions a| 000baf90 6e 64 20 3c 74 79 70 65 73 3d 3e 77 69 6d 70 5f |nd <types=>wimp_| 000bafa0 74 79 70 65 73 5f 3e 20 66 6f 72 20 68 61 6e 64 |types_> for hand| 000bafb0 6c 69 6e 67 20 74 68 65 20 57 69 6d 70 2e 0a 0a |ling the Wimp...| 000bafc0 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 74 61 62 |Functions:..#tab| 000bafd0 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 4d 69 |le columns 2.<Mi| 000bafe0 73 63 65 6c 6c 61 6e 65 6f 75 73 3d 3e 77 5f 69 |scellaneous=>w_i| 000baff0 6e 69 74 5f 3e 0a 3c 57 69 6e 64 6f 77 20 48 61 |nit_>.<Window Ha| 000bb000 6e 64 6c 69 6e 67 3d 3e 77 5f 6f 70 65 6e 5f 3e |ndling=>w_open_>| 000bb010 0a 3c 54 65 6d 70 6c 61 74 65 20 48 61 6e 64 6c |.<Template Handl| 000bb020 69 6e 67 3d 3e 77 5f 74 65 6d 70 5f 3e 0a 3c 49 |ing=>w_temp_>.<I| 000bb030 63 6f 6e 20 48 61 6e 64 6c 69 6e 67 3d 3e 77 5f |con Handling=>w_| 000bb040 69 63 6f 6e 5f 3e 0a 3c 43 6f 6c 6f 75 72 20 48 |icon_>.<Colour H| 000bb050 61 6e 64 6c 69 6e 67 3d 3e 77 5f 63 6f 6c 5f 3e |andling=>w_col_>| 000bb060 0a 3c 46 6f 6e 74 20 48 61 6e 64 6c 69 6e 67 3d |.<Font Handling=| 000bb070 3e 77 5f 66 6f 6e 74 5f 3e 0a 23 65 6e 64 74 61 |>w_font_>.#endta| 000bb080 62 6c 65 00 44 41 54 41 8f 00 00 00 77 69 6d 70 |ble.DATA....wimp| 000bb090 5f 69 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |_i.This type is | 000bb0a0 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 |defined in <wimp| 000bb0b0 2e 68 3d 3e 77 69 6d 70 5f 68 3e 20 61 73 20 61 |.h=>wimp_h> as a| 000bb0c0 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 000bb0d0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 69 | containing a Wi| 000bb0e0 6d 70 20 69 63 6f 6e 20 68 61 6e 64 6c 65 2e 20 |mp icon handle. | 000bb0f0 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 20 64 |It is actually d| 000bb100 65 66 69 6e 65 64 20 61 73 20 61 6e 20 2f 69 6e |efined as an /in| 000bb110 74 2f 2e 00 44 41 54 41 af 01 00 00 77 69 6d 70 |t/..DATA....wimp| 000bb120 5f 69 62 74 79 70 65 0a 54 68 69 73 20 74 79 70 |_ibtype.This typ| 000bb130 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000bb140 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e |<wimp.h=>wimp_h>| 000bb150 2e 20 49 74 20 69 73 20 61 6e 20 65 6e 75 6d 65 |. It is an enume| 000bb160 72 61 74 65 64 20 74 79 70 65 20 63 6f 6e 74 61 |rated type conta| 000bb170 69 6e 69 6e 67 20 74 68 65 20 76 61 6c 75 65 73 |ining the values| 000bb180 20 6f 66 20 74 68 65 20 57 69 6d 70 20 69 63 6f | of the Wimp ico| 000bb190 6e 20 62 75 74 74 6f 6e 20 74 79 70 65 73 3a 0a |n button types:.| 000bb1a0 0a 20 20 5c 7b 0a 20 20 20 20 77 69 6d 70 5f 42 |. \{. wimp_B| 000bb1b0 49 47 4e 4f 52 45 2c 0a 20 20 20 20 77 69 6d 70 |IGNORE,. wimp| 000bb1c0 5f 42 4e 4f 54 49 46 59 2c 0a 20 20 20 20 77 69 |_BNOTIFY,. wi| 000bb1d0 6d 70 5f 42 43 4c 49 43 4b 41 55 54 4f 2c 0a 20 |mp_BCLICKAUTO,. | 000bb1e0 20 20 20 77 69 6d 70 5f 42 43 4c 49 43 4b 44 45 | wimp_BCLICKDE| 000bb1f0 42 4f 55 4e 43 45 2c 0a 20 20 20 20 77 69 6d 70 |BOUNCE,. wimp| 000bb200 5f 42 53 45 4c 52 45 4c 2c 0a 20 20 20 20 77 69 |_BSELREL,. wi| 000bb210 6d 70 5f 42 53 45 4c 44 4f 55 42 4c 45 2c 0a 20 |mp_BSELDOUBLE,. | 000bb220 20 20 20 77 69 6d 70 5f 42 44 45 42 4f 55 4e 43 | wimp_BDEBOUNC| 000bb230 45 44 52 41 47 2c 0a 20 20 20 20 77 69 6d 70 5f |EDRAG,. wimp_| 000bb240 42 52 45 4c 45 41 53 45 44 52 41 47 2c 0a 20 20 |BRELEASEDRAG,. | 000bb250 20 20 77 69 6d 70 5f 42 44 4f 55 42 4c 45 44 52 | wimp_BDOUBLEDR| 000bb260 41 47 2c 0a 20 20 20 20 77 69 6d 70 5f 42 53 45 |AG,. wimp_BSE| 000bb270 4c 4e 4f 54 49 46 59 2c 0a 20 20 20 20 77 69 6d |LNOTIFY,. wim| 000bb280 70 5f 42 43 4c 49 43 4b 44 52 41 47 44 4f 55 42 |p_BCLICKDRAGDOUB| 000bb290 4c 45 2c 0a 20 20 20 20 77 69 6d 70 5f 42 43 4c |LE,. wimp_BCL| 000bb2a0 49 43 4b 53 45 4c 2c 0a 20 20 20 20 77 69 6d 70 |ICKSEL,. wimp| 000bb2b0 5f 42 57 52 49 54 41 42 4c 45 20 3d 20 31 35 0a |_BWRITABLE = 15.| 000bb2c0 20 20 7d 00 44 41 54 41 c0 00 00 00 77 69 6d 70 | }.DATA....wimp| 000bb2d0 5f 69 63 6f 6e 0a 54 68 69 73 20 74 79 70 65 20 |_icon.This type | 000bb2e0 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 |is defined in <w| 000bb2f0 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 |imp.h=>wimp_h>. | 000bb300 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 |It is a structur| 000bb310 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 |e containing an | 000bb320 69 63 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 3a |icon definition:| 000bb330 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 |.. \{. <wimp| 000bb340 5f 62 6f 78 3e 09 62 6f 78 3b 0a 20 20 20 20 3c |_box>.box;. <| 000bb350 77 69 6d 70 5f 69 63 6f 6e 66 6c 61 67 73 3e 09 |wimp_iconflags>.| 000bb360 66 6c 61 67 73 3b 0a 20 20 20 20 3c 77 69 6d 70 |flags;. <wimp| 000bb370 5f 69 63 6f 6e 64 61 74 61 3e 09 64 61 74 61 3b |_icondata>.data;| 000bb380 0a 20 20 7d 44 41 54 41 7f 01 00 00 77 69 6d 70 |. }DATA....wimp| 000bb390 5f 69 63 6f 6e 64 61 74 61 0a 54 68 69 73 20 74 |_icondata.This t| 000bb3a0 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000bb3b0 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |n <wimp.h=>wimp_| 000bb3c0 68 3e 2e 20 49 74 20 69 73 20 61 20 75 6e 69 6f |h>. It is a unio| 000bb3d0 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 57 69 6d |n containing Wim| 000bb3e0 70 20 69 63 6f 6e 20 64 61 74 61 20 66 6f 72 20 |p icon data for | 000bb3f0 61 6c 6c 20 69 63 6f 6e 20 74 79 70 65 73 3a 0a |all icon types:.| 000bb400 0a 20 20 5c 7b 0a 20 20 09 63 68 61 72 09 20 09 |. \{. .char. .| 000bb410 74 65 78 74 5b 31 32 5d 3b 0a 20 20 09 63 68 61 |text[12];. .cha| 000bb420 72 09 20 09 73 70 72 69 74 65 5f 6e 61 6d 65 5b |r. .sprite_name[| 000bb430 31 32 5d 3b 0a 20 20 20 20 0a 20 20 09 73 74 72 |12];. . .str| 000bb440 75 63 74 0a 20 20 09 5c 7b 0a 20 20 09 20 09 63 |uct. .\{. . .c| 000bb450 68 61 72 09 2a 6e 61 6d 65 3b 0a 20 20 09 20 09 |har.*name;. . .| 000bb460 76 6f 69 64 09 2a 73 70 72 69 74 65 61 72 65 61 |void.*spritearea| 000bb470 3b 0a 20 20 09 20 09 3c 42 4f 4f 4c 3e 09 6e 61 |;. . .<BOOL>.na| 000bb480 6d 65 69 73 6e 61 6d 65 3b 0a 20 20 09 7d 20 69 |meisname;. .} i| 000bb490 6e 64 69 72 65 63 74 73 70 72 69 74 65 3b 0a 0a |ndirectsprite;..| 000bb4a0 20 20 09 73 74 72 75 63 74 0a 20 20 09 5c 7b 0a | .struct. .\{.| 000bb4b0 20 20 09 20 09 63 68 61 72 09 2a 62 75 66 66 65 | . .char.*buffe| 000bb4c0 72 3b 0a 20 20 09 20 09 63 68 61 72 09 2a 76 61 |r;. . .char.*va| 000bb4d0 6c 69 64 73 74 72 69 6e 67 3b 0a 20 20 09 20 09 |lidstring;. . .| 000bb4e0 69 6e 74 09 62 75 66 66 6c 65 6e 3b 0a 20 20 09 |int.bufflen;. .| 000bb4f0 7d 20 69 6e 64 69 72 65 63 74 74 65 78 74 3b 0a |} indirecttext;.| 000bb500 20 20 7d 00 44 41 54 41 de 01 00 00 77 69 6d 70 | }.DATA....wimp| 000bb510 5f 69 63 6f 6e 66 6c 61 67 73 0a 54 68 69 73 20 |_iconflags.This | 000bb520 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000bb530 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 |in <wimp.h=>wimp| 000bb540 5f 68 3e 2e 20 49 74 20 69 73 20 61 6e 20 65 6e |_h>. It is an en| 000bb550 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 63 6f |umerated type co| 000bb560 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 76 61 6c |ntaining the val| 000bb570 75 65 73 20 6f 66 20 74 68 65 20 57 69 6d 70 20 |ues of the Wimp | 000bb580 69 63 6f 6e 20 66 6c 61 67 73 3a 0a 0a 20 20 5c |icon flags:.. \| 000bb590 7b 0a 20 20 20 20 77 69 6d 70 5f 49 54 45 58 54 |{. wimp_ITEXT| 000bb5a0 2c 0a 20 20 20 20 77 69 6d 70 5f 49 53 50 52 49 |,. wimp_ISPRI| 000bb5b0 54 45 2c 0a 20 20 20 20 77 69 6d 70 5f 49 42 4f |TE,. wimp_IBO| 000bb5c0 52 44 45 52 2c 0a 20 20 20 20 77 69 6d 70 5f 49 |RDER,. wimp_I| 000bb5d0 48 43 45 4e 54 52 45 2c 0a 20 20 20 20 77 69 6d |HCENTRE,. wim| 000bb5e0 70 5f 49 56 43 45 4e 54 52 45 2c 0a 20 20 20 20 |p_IVCENTRE,. | 000bb5f0 77 69 6d 70 5f 49 46 49 4c 4c 45 44 2c 0a 20 20 |wimp_IFILLED,. | 000bb600 20 20 77 69 6d 70 5f 49 46 4f 4e 54 2c 0a 20 20 | wimp_IFONT,. | 000bb610 20 20 77 69 6d 70 5f 49 52 45 44 52 41 57 2c 0a | wimp_IREDRAW,.| 000bb620 20 20 20 20 77 69 6d 70 5f 49 4e 44 49 52 45 43 | wimp_INDIREC| 000bb630 54 2c 0a 20 20 20 20 77 69 6d 70 5f 49 52 4a 55 |T,. wimp_IRJU| 000bb640 53 54 2c 0a 20 20 20 20 77 69 6d 70 5f 49 45 53 |ST,. wimp_IES| 000bb650 47 5f 4e 4f 43 2c 0a 20 20 20 20 77 69 6d 70 5f |G_NOC,. wimp_| 000bb660 49 48 41 4c 56 45 53 50 52 49 54 45 2c 0a 20 20 |IHALVESPRITE,. | 000bb670 20 20 77 69 6d 70 5f 49 42 54 59 50 45 2c 0a 20 | wimp_IBTYPE,. | 000bb680 20 20 20 77 69 6d 70 5f 49 53 45 4c 45 43 54 45 | wimp_ISELECTE| 000bb690 44 2c 0a 20 20 20 20 77 69 6d 70 5f 49 4e 4f 53 |D,. wimp_INOS| 000bb6a0 45 4c 45 43 54 2c 0a 20 20 20 20 77 69 6d 70 5f |ELECT,. wimp_| 000bb6b0 49 44 45 4c 45 54 45 44 2c 0a 20 20 20 20 77 69 |IDELETED,. wi| 000bb6c0 6d 70 5f 49 46 4f 52 45 43 4f 4c 2c 0a 20 20 20 |mp_IFORECOL,. | 000bb6d0 20 77 69 6d 70 5f 49 42 41 43 4b 43 4f 4c 0a 20 | wimp_IBACKCOL. | 000bb6e0 20 7d 00 00 44 41 54 41 c5 00 00 00 77 69 6d 70 | }..DATA....wimp| 000bb6f0 5f 69 63 72 65 61 74 65 0a 54 68 69 73 20 74 79 |_icreate.This ty| 000bb700 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000bb710 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 | <wimp.h=>wimp_h| 000bb720 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 000bb730 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 |ture containing | 000bb740 64 61 74 61 20 66 6f 72 20 74 68 65 20 66 75 6e |data for the fun| 000bb750 63 74 69 6f 6e 20 3c 77 69 6d 70 5f 63 72 65 61 |ction <wimp_crea| 000bb760 74 65 5f 69 63 6f 6e 3d 3e 77 69 6d 70 5f 63 72 |te_icon=>wimp_cr| 000bb770 65 61 74 65 5f 69 63 6f 6e 5f 3e 2e 0a 0a 20 20 |eate_icon_>... | 000bb780 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 |\{. <wimp_w>.| 000bb790 77 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 69 63 6f |w;. <wimp_ico| 000bb7a0 6e 3e 09 69 3b 0a 20 20 7d 00 00 00 44 41 54 41 |n>.i;. }...DATA| 000bb7b0 10 03 00 00 57 69 6d 70 5f 49 6e 69 74 69 61 6c |....Wimp_Initial| 000bb7c0 69 73 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ise.Syntax:.<os_| 000bb7d0 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 49 6e 69 |error> *Wimp_Ini| 000bb7e0 74 69 61 6c 69 73 65 20 28 75 6e 73 69 67 6e 65 |tialise (unsigne| 000bb7f0 64 20 69 6e 74 20 2a 76 65 72 73 69 6f 6e 2c 20 |d int *version, | 000bb800 63 68 61 72 20 2a 6e 61 6d 65 2c 20 3c 74 61 73 |char *name, <tas| 000bb810 6b 5f 68 61 6e 64 6c 65 3e 20 2a 74 61 73 6b 2c |k_handle> *task,| 000bb820 20 69 6e 74 20 2a 6d 65 73 73 29 3b 0a 48 65 61 | int *mess);.Hea| 000bb830 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 |der:.<DeskLib:Wi| 000bb840 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000bb850 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |Is>..Returns:.Po| 000bb860 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000bb870 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000bb880 65 2e 0a 0a 53 65 65 20 74 68 65 20 44 65 73 6b |e...See the Desk| 000bb890 74 6f 70 20 43 20 66 75 6e 63 74 69 6f 6e 20 3c |top C function <| 000bb8a0 77 69 6d 70 5f 69 6e 69 74 69 61 6c 69 73 65 3d |wimp_initialise=| 000bb8b0 3e 77 69 6d 70 5f 69 6e 69 74 69 61 6c 69 73 65 |>wimp_initialise| 000bb8c0 5f 3e 2e 20 0a 0a 54 68 69 73 20 66 75 6e 63 74 |_>. ..This funct| 000bb8d0 69 6f 6e 20 72 65 67 69 73 74 65 72 73 20 61 20 |ion registers a | 000bb8e0 74 61 73 6b 20 77 69 74 68 20 74 68 65 20 57 69 |task with the Wi| 000bb8f0 6d 70 2c 20 61 6e 64 20 6d 75 73 74 20 62 65 20 |mp, and must be | 000bb900 63 61 6c 6c 65 64 20 4f 4e 43 45 20 77 68 65 6e |called ONCE when| 000bb910 20 74 68 65 20 74 61 73 6b 20 73 74 61 72 74 73 | the task starts| 000bb920 20 75 70 2e 0a 0a 2f 76 65 72 73 69 6f 6e 2f 20 | up.../version/ | 000bb930 70 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 6d 69 |points to the mi| 000bb940 6e 69 6d 75 6d 20 57 69 6d 70 20 76 65 72 73 69 |nimum Wimp versi| 000bb950 6f 6e 20 74 68 69 73 20 74 61 73 6b 20 69 73 20 |on this task is | 000bb960 66 6f 72 20 28 69 6e 20 74 68 65 20 66 6f 72 6d |for (in the form| 000bb970 20 76 65 72 73 69 6f 6e 20 2a 20 31 30 30 29 2e | version * 100).| 000bb980 20 2f 6e 61 6d 65 2f 20 70 6f 69 6e 74 73 20 74 | /name/ points t| 000bb990 6f 20 61 20 73 68 6f 72 74 20 64 65 73 63 72 69 |o a short descri| 000bb9a0 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 61 73 |ption of the tas| 000bb9b0 6b 20 28 32 30 20 63 68 61 72 61 63 74 65 72 73 |k (20 characters| 000bb9c0 29 2e 20 2f 6d 65 73 73 2f 20 70 6f 69 6e 74 73 |). /mess/ points| 000bb9d0 20 74 6f 20 61 6e 20 61 72 72 61 79 20 6f 66 20 | to an array of | 000bb9e0 6d 65 73 73 61 67 65 20 6e 75 6d 62 65 72 73 20 |message numbers | 000bb9f0 74 68 65 20 74 61 73 6b 20 77 61 6e 74 73 20 74 |the task wants t| 000bba00 6f 20 72 65 63 65 69 76 65 20 28 6f 6e 6c 79 20 |o receive (only | 000bba10 69 66 20 76 65 72 73 69 6f 6e 3e 3d 33 30 30 29 |if version>=300)| 000bba20 2e 20 49 66 20 2f 76 65 72 73 69 6f 6e 2f 20 69 |. If /version/ i| 000bba30 73 20 6e 6f 74 20 33 30 30 20 74 68 65 6e 20 30 |s not 300 then 0| 000bba40 20 6d 65 61 6e 73 20 61 6c 6c 20 6d 65 73 73 61 | means all messa| 000bba50 67 65 73 20 61 72 65 20 69 6d 70 6f 72 74 61 6e |ges are importan| 000bba60 74 2e 0a 0a 4f 6e 20 65 78 69 74 2c 20 74 68 65 |t...On exit, the| 000bba70 20 61 63 74 75 61 6c 20 57 69 6d 70 20 76 65 72 | actual Wimp ver| 000bba80 73 69 6f 6e 20 69 73 20 72 65 74 75 72 6e 65 64 |sion is returned| 000bba90 20 69 6e 20 2f 76 65 72 73 69 6f 6e 2f 20 61 6e | in /version/ an| 000bbaa0 64 20 74 68 65 20 74 61 73 6b 20 68 61 6e 64 6c |d the task handl| 000bbab0 65 20 69 6e 20 2f 74 61 73 6b 2f 2e 44 41 54 41 |e in /task/.DATA| 000bbac0 e5 00 00 00 77 69 6d 70 5f 69 6e 69 74 69 61 6c |....wimp_initial| 000bbad0 69 73 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |ise.Syntax:.<os_| 000bbae0 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 69 6e 69 |error> *wimp_ini| 000bbaf0 74 69 61 6c 69 73 65 20 28 69 6e 74 20 2a 76 29 |tialise (int *v)| 000bbb00 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e |;.Header:.<wimp.| 000bbb10 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 |h=>wimp_h>..Retu| 000bbb20 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000bbb30 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000bbb40 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000bbb50 66 75 6e 63 74 69 6f 6e 73 20 63 6c 6f 73 65 73 |functions closes| 000bbb60 20 61 6e 64 20 64 65 6c 65 74 65 73 20 61 6c 6c | and deletes all| 000bbb70 20 77 69 6e 64 6f 77 73 2c 20 72 65 74 75 72 6e | windows, return| 000bbb80 69 6e 67 20 74 68 65 20 57 69 6d 70 20 76 65 72 |ing the Wimp ver| 000bbb90 73 69 6f 6e 20 69 6e 20 7b 2f 7d 2a 76 7b 2f 7d |sion in {/}*v{/}| 000bbba0 2e 00 00 00 44 41 54 41 ed 00 00 00 77 69 6d 70 |....DATA....wimp| 000bbbb0 5f 6c 6f 61 64 5f 74 65 6d 70 6c 61 74 65 0a 53 |_load_template.S| 000bbbc0 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000bbbd0 3e 20 2a 77 69 6d 70 5f 6c 6f 61 64 5f 74 65 6d |> *wimp_load_tem| 000bbbe0 70 6c 61 74 65 20 28 3c 77 69 6d 70 5f 74 65 6d |plate (<wimp_tem| 000bbbf0 70 6c 61 74 65 3e 20 2a 74 65 6d 70 6c 61 74 65 |plate> *template| 000bbc00 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 |);.Header:.<wimp| 000bbc10 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 |.h=>wimp_h>..Ret| 000bbc20 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000bbc30 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000bbc40 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 000bbc50 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 73 20 | function loads | 000bbc60 61 20 74 65 6d 70 6c 61 74 65 20 66 72 6f 6d 20 |a template from | 000bbc70 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 6f 70 |the currently op| 000bbc80 65 6e 20 74 65 6d 70 6c 61 74 65 20 66 69 6c 65 |en template file| 000bbc90 2e 00 00 00 44 41 54 41 21 01 00 00 57 69 6d 70 |....DATA!...Wimp| 000bbca0 5f 4c 6f 61 64 54 65 6d 70 6c 61 74 65 0a 53 79 |_LoadTemplate.Sy| 000bbcb0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000bbcc0 20 2a 57 69 6d 70 5f 4c 6f 61 64 54 65 6d 70 6c | *Wimp_LoadTempl| 000bbcd0 61 74 65 20 28 3c 74 65 6d 70 6c 61 74 65 5f 62 |ate (<template_b| 000bbce0 6c 6f 63 6b 3e 20 2a 74 65 6d 70 6c 61 74 65 29 |lock> *template)| 000bbcf0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000bbd00 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 |ib:WimpSWIs.h=>W| 000bbd10 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e |impSWIs>..Return| 000bbd20 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000bbd30 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000bbd40 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000bbd50 6e 63 74 69 6f 6e 20 6c 6f 61 64 73 20 61 20 74 |nction loads a t| 000bbd60 65 6d 70 6c 61 74 65 2e 20 59 6f 75 20 6d 75 73 |emplate. You mus| 000bbd70 74 20 70 72 65 76 69 6f 75 73 6c 79 20 68 61 76 |t previously hav| 000bbd80 65 20 63 61 6c 6c 65 64 20 3c 57 69 6d 70 5f 4f |e called <Wimp_O| 000bbd90 70 65 6e 54 65 6d 70 6c 61 74 65 3e 20 74 6f 20 |penTemplate> to | 000bbda0 6f 70 65 6e 20 61 20 74 65 6d 70 6c 61 74 65 20 |open a template | 000bbdb0 66 69 6c 65 2e 00 00 00 44 41 54 41 ad 00 00 00 |file....DATA....| 000bbdc0 77 69 6d 70 5f 4d 41 58 4e 41 4d 45 0a 54 68 69 |wimp_MAXNAME.Thi| 000bbdd0 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 000bbde0 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 |ed in <DeskLib:W| 000bbdf0 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 74 |imp.h=>Wimp>. It| 000bbe00 20 69 73 20 61 20 76 61 6c 75 65 20 72 65 70 72 | is a value repr| 000bbe10 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6c 65 6e |esenting the len| 000bbe20 67 74 68 20 6f 66 20 77 69 6d 70 20 6e 61 6d 65 |gth of wimp name| 000bbe30 73 20 28 69 63 6f 6e 20 74 65 78 74 2c 20 73 70 |s (icon text, sp| 000bbe40 72 69 74 65 20 6e 61 6d 65 73 20 65 74 63 29 2e |rite names etc).| 000bbe50 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 61 | It is defined a| 000bbe60 73 20 31 32 2e 00 00 00 44 41 54 41 07 01 00 00 |s 12....DATA....| 000bbe70 77 69 6d 70 5f 6d 65 6e 75 66 6c 61 67 73 0a 54 |wimp_menuflags.T| 000bbe80 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000bbe90 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e |ned in <wimp.h=>| 000bbea0 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 |wimp_h>. It is a| 000bbeb0 6e 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 |n enumerated typ| 000bbec0 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 |e containing the| 000bbed0 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 6d | values of the m| 000bbee0 65 6e 75 20 66 6c 61 67 20 62 69 74 73 3a 0a 0a |enu flag bits:..| 000bbef0 20 20 5c 7b 0a 20 20 20 20 77 69 6d 70 5f 4d 54 | \{. wimp_MT| 000bbf00 49 43 4b 09 09 3d 20 31 2c 0a 20 20 20 20 77 69 |ICK..= 1,. wi| 000bbf10 6d 70 5f 4d 53 45 50 41 52 41 54 45 09 3d 20 32 |mp_MSEPARATE.= 2| 000bbf20 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 57 52 49 54 |,. wimp_MWRIT| 000bbf30 45 41 42 4c 45 09 3d 20 34 2c 0a 20 20 20 20 77 |EABLE.= 4,. w| 000bbf40 69 6d 70 5f 4d 53 55 42 4c 49 4e 4b 4d 53 47 09 |imp_MSUBLINKMSG.| 000bbf50 3d 20 38 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 4c |= 8,. wimp_ML| 000bbf60 41 53 54 09 09 3d 20 30 78 38 30 0a 20 20 7d 00 |AST..= 0x80. }.| 000bbf70 44 41 54 41 03 01 00 00 77 69 6d 70 5f 6d 65 6e |DATA....wimp_men| 000bbf80 75 68 64 72 0a 54 68 69 73 20 74 79 70 65 20 69 |uhdr.This type i| 000bbf90 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000bbfa0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000bbfb0 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000bbfc0 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 20 | used to hold a | 000bbfd0 57 69 6d 70 20 6d 65 6e 75 20 68 65 61 64 65 72 |Wimp menu header| 000bbfe0 2e 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 |... \{. char| 000bbff0 09 74 69 74 6c 65 5b 31 32 5d 3b 0a 20 20 20 20 |.title[12];. | 000bc000 63 68 61 72 09 74 69 74 5f 66 63 6f 6c 3b 0a 20 |char.tit_fcol;. | 000bc010 20 20 20 63 68 61 72 09 74 69 74 5f 62 63 6f 6c | char.tit_bcol| 000bc020 3b 0a 20 20 20 20 63 68 61 72 09 77 6f 72 6b 5f |;. char.work_| 000bc030 66 63 6f 6c 3b 0a 20 20 20 20 63 68 61 72 09 77 |fcol;. char.w| 000bc040 6f 72 6b 5f 62 63 6f 6c 3b 0a 20 20 20 20 69 6e |ork_bcol;. in| 000bc050 74 09 09 77 69 64 74 68 2c 20 68 65 69 67 68 74 |t..width, height| 000bc060 3b 0a 20 20 20 20 69 6e 74 09 09 67 61 70 3b 0a |;. int..gap;.| 000bc070 20 20 7d 00 44 41 54 41 e7 00 00 00 77 69 6d 70 | }.DATA....wimp| 000bc080 5f 6d 65 6e 75 69 74 65 6d 0a 54 68 69 73 20 74 |_menuitem.This t| 000bc090 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000bc0a0 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |n <wimp.h=>wimp_| 000bc0b0 68 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 |h>. It is a stru| 000bc0c0 63 74 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f |cture used to ho| 000bc0d0 6c 64 20 61 20 6d 65 6e 75 20 69 74 65 6d 3a 0a |ld a menu item:.| 000bc0e0 0a 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f |. \{. <wimp_| 000bc0f0 6d 65 6e 75 66 6c 61 67 73 3e 09 66 6c 61 67 73 |menuflags>.flags| 000bc100 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 6d 65 6e 75 |;. <wimp_menu| 000bc110 70 74 72 3e 09 73 75 62 6d 65 6e 75 3b 0a 20 20 |ptr>.submenu;. | 000bc120 20 20 3c 77 69 6d 70 5f 69 63 6f 6e 66 6c 61 67 | <wimp_iconflag| 000bc130 73 3e 09 69 63 6f 6e 66 6c 61 67 73 3b 0a 20 20 |s>.iconflags;. | 000bc140 20 20 3c 77 69 6d 70 5f 69 63 6f 6e 64 61 74 61 | <wimp_icondata| 000bc150 3e 09 64 61 74 61 3b 0a 20 20 7d 00 44 41 54 41 |>.data;. }.DATA| 000bc160 63 00 00 00 77 69 6d 70 5f 6d 65 6e 75 70 74 72 |c...wimp_menuptr| 000bc170 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 000bc180 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 |fined in <wimp.h| 000bc190 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 |=>wimp_h>. It is| 000bc1a0 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 | a pointer to a | 000bc1b0 3c 77 69 6d 70 5f 6d 65 6e 75 73 74 72 3e 2e 00 |<wimp_menustr>..| 000bc1c0 44 41 54 41 d8 00 00 00 77 69 6d 70 5f 6d 65 6e |DATA....wimp_men| 000bc1d0 75 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |ustr.This type i| 000bc1e0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000bc1f0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000bc200 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000bc210 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 20 | used to hold a | 000bc220 6d 65 6e 75 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 |menu:.. \{. | 000bc230 3c 77 69 6d 70 5f 6d 65 6e 75 68 64 72 3e 20 20 |<wimp_menuhdr> | 000bc240 68 64 72 3b 0a 20 20 7d 0a 0a 54 68 69 73 20 69 |hdr;. }..This i| 000bc250 73 20 66 6f 6c 6c 6f 77 65 64 20 69 6e 20 6d 65 |s followed in me| 000bc260 6d 6f 72 79 20 69 6d 6d 65 64 69 61 74 65 6c 79 |mory immediately| 000bc270 20 62 79 20 74 68 65 20 6d 65 6e 75 20 69 74 65 | by the menu ite| 000bc280 6d 73 2c 20 61 73 20 3c 77 69 6d 70 5f 6d 65 6e |ms, as <wimp_men| 000bc290 75 69 74 65 6d 3e 73 2e 44 41 54 41 e5 00 00 00 |uitem>s.DATA....| 000bc2a0 77 69 6d 70 5f 6d 6f 75 73 65 73 74 72 0a 54 68 |wimp_mousestr.Th| 000bc2b0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000bc2c0 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 |ed in <wimp.h=>w| 000bc2d0 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 |imp_h>. It is a | 000bc2e0 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 |structure used t| 000bc2f0 6f 20 68 6f 6c 64 20 6d 6f 75 73 65 20 64 61 74 |o hold mouse dat| 000bc300 61 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 |a:.. \{. int| 000bc310 09 09 09 78 2c 79 3b 09 0a 20 20 20 20 3c 77 69 |...x,y;.. <wi| 000bc320 6d 70 5f 62 62 69 74 73 3e 09 62 62 69 74 73 3b |mp_bbits>.bbits;| 000bc330 09 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 09 |.. <wimp_w>..| 000bc340 77 3b 09 2f 2a 20 77 69 6e 64 6f 77 20 68 61 6e |w;./* window han| 000bc350 64 6c 65 20 2a 2f 0a 20 20 20 20 3c 77 69 6d 70 |dle */. <wimp| 000bc360 5f 69 3e 09 09 69 3b 09 2f 2a 20 69 63 6f 6e 20 |_i>..i;./* icon | 000bc370 68 61 6e 64 6c 65 20 2a 2f 0a 20 20 7d 00 00 00 |handle */. }...| 000bc380 44 41 54 41 19 03 00 00 77 69 6d 70 5f 6d 73 67 |DATA....wimp_msg| 000bc390 61 63 74 69 6f 6e 0a 54 68 69 73 20 74 79 70 65 |action.This type| 000bc3a0 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000bc3b0 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e |wimp.h=>wimp_h>.| 000bc3c0 20 49 74 20 69 73 20 61 6e 20 65 6e 75 6d 65 72 | It is an enumer| 000bc3d0 61 74 65 64 20 74 79 70 65 20 63 6f 6e 74 61 69 |ated type contai| 000bc3e0 6e 69 6e 67 20 74 68 65 20 76 61 6c 75 65 73 20 |ning the values | 000bc3f0 6f 66 20 74 68 65 20 57 69 6d 70 20 6d 65 73 73 |of the Wimp mess| 000bc400 61 67 65 20 74 79 70 65 73 3a 0a 0a 20 20 5c 7b |age types:.. \{| 000bc410 0a 20 20 20 20 77 69 6d 70 5f 4d 43 4c 4f 53 45 |. wimp_MCLOSE| 000bc420 44 4f 57 4e 2c 0a 20 20 20 20 77 69 6d 70 5f 4d |DOWN,. wimp_M| 000bc430 44 41 54 41 53 41 56 45 2c 0a 20 20 20 20 77 69 |DATASAVE,. wi| 000bc440 6d 70 5f 4d 44 41 54 41 53 41 56 45 4f 4b 2c 0a |mp_MDATASAVEOK,.| 000bc450 20 20 20 20 77 69 6d 70 5f 4d 44 41 54 41 4c 4f | wimp_MDATALO| 000bc460 41 44 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 44 41 |AD,. wimp_MDA| 000bc470 54 41 4c 4f 41 44 4f 4b 2c 0a 20 20 20 20 77 69 |TALOADOK,. wi| 000bc480 6d 70 5f 4d 44 41 54 41 4f 50 45 4e 2c 0a 20 20 |mp_MDATAOPEN,. | 000bc490 20 20 77 69 6d 70 5f 4d 52 41 4d 46 45 54 43 48 | wimp_MRAMFETCH| 000bc4a0 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 52 41 4d 54 |,. wimp_MRAMT| 000bc4b0 52 41 4e 53 4d 49 54 2c 0a 20 20 20 20 77 69 6d |RANSMIT,. wim| 000bc4c0 70 5f 4d 50 52 45 51 55 49 54 2c 0a 20 20 20 20 |p_MPREQUIT,. | 000bc4d0 77 69 6d 70 5f 50 41 4c 45 54 54 45 43 48 41 4e |wimp_PALETTECHAN| 000bc4e0 47 45 2c 0a 20 20 20 20 77 69 6d 70 5f 53 41 56 |GE,. wimp_SAV| 000bc4f0 45 44 45 53 4b 2c 0a 20 20 20 20 77 69 6d 70 5f |EDESK,. wimp_| 000bc500 46 69 6c 65 72 4f 70 65 6e 44 69 72 2c 0a 20 20 |FilerOpenDir,. | 000bc510 20 20 77 69 6d 70 5f 46 69 6c 65 72 43 6c 6f 73 | wimp_FilerClos| 000bc520 65 44 69 72 2c 0a 20 20 20 20 77 69 6d 70 5f 4e |eDir,. wimp_N| 000bc530 6f 74 69 66 79 2c 0a 20 20 20 20 77 69 6d 70 5f |otify,. wimp_| 000bc540 4d 4d 45 4e 55 57 41 52 4e 2c 0a 20 20 20 20 77 |MMENUWARN,. w| 000bc550 69 6d 70 5f 4d 4d 4f 44 45 43 48 41 4e 47 45 2c |imp_MMODECHANGE,| 000bc560 0a 20 20 20 20 77 69 6d 70 5f 4d 49 4e 49 54 54 |. wimp_MINITT| 000bc570 41 53 4b 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 43 |ASK,. wimp_MC| 000bc580 4c 4f 53 45 54 41 53 4b 2c 0a 20 20 20 20 77 69 |LOSETASK,. wi| 000bc590 6d 70 5f 4d 53 4c 4f 54 43 48 41 4e 47 45 2c 0a |mp_MSLOTCHANGE,.| 000bc5a0 20 20 20 20 77 69 6d 70 5f 4d 53 45 54 53 4c 4f | wimp_MSETSLO| 000bc5b0 54 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 54 41 53 |T,. wimp_MTAS| 000bc5c0 4b 4e 41 4d 45 52 51 2c 0a 20 20 20 20 77 69 6d |KNAMERQ,. wim| 000bc5d0 70 5f 4d 54 41 53 4b 4e 41 4d 45 49 53 2c 0a 20 |p_MTASKNAMEIS,. | 000bc5e0 20 20 20 77 69 6d 70 5f 4d 54 41 53 4b 53 54 41 | wimp_MTASKSTA| 000bc5f0 52 54 45 44 2c 0a 20 20 20 20 77 69 6d 70 5f 4d |RTED,. wimp_M| 000bc600 48 45 4c 50 52 45 51 55 45 53 54 2c 0a 20 20 20 |HELPREQUEST,. | 000bc610 20 77 69 6d 70 5f 4d 48 45 4c 50 52 45 50 4c 59 | wimp_MHELPREPLY| 000bc620 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 50 72 69 6e |,. wimp_MPrin| 000bc630 74 46 69 6c 65 2c 0a 20 20 20 20 77 69 6d 70 5f |tFile,. wimp_| 000bc640 4d 57 69 6c 6c 50 72 69 6e 74 2c 0a 20 20 20 20 |MWillPrint,. | 000bc650 77 69 6d 70 5f 4d 50 72 69 6e 74 54 79 70 65 4f |wimp_MPrintTypeO| 000bc660 64 64 2c 0a 20 20 20 20 77 69 6d 70 5f 4d 50 72 |dd,. wimp_MPr| 000bc670 69 6e 74 54 79 70 65 4b 6e 6f 77 6e 2c 0a 20 20 |intTypeKnown,. | 000bc680 20 20 77 69 6d 70 5f 4d 50 72 69 6e 74 65 72 43 | wimp_MPrinterC| 000bc690 68 61 6e 67 65 0a 20 20 7d 00 00 00 44 41 54 41 |hange. }...DATA| 000bc6a0 f8 00 00 00 77 69 6d 70 5f 6d 73 67 64 61 74 61 |....wimp_msgdata| 000bc6b0 6c 6f 61 64 0a 54 68 69 73 20 74 79 70 65 20 69 |load.This type i| 000bc6c0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000bc6d0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000bc6e0 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000bc6f0 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 64 61 | used to hold da| 000bc700 74 61 20 66 6f 72 20 61 20 3c 4d 65 73 73 61 67 |ta for a <Messag| 000bc710 65 5f 44 61 74 61 4c 6f 61 64 3d 3e 53 57 49 3a |e_DataLoad=>SWI:| 000bc720 77 69 6d 70 5f 75 6d 33 3e 3a 0a 0a 20 20 5c 7b |wimp_um3>:.. \{| 000bc730 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 77 3b |. <wimp_w>.w;| 000bc740 0a 20 20 20 20 3c 77 69 6d 70 5f 69 3e 09 69 3b |. <wimp_i>.i;| 000bc750 0a 20 20 20 20 69 6e 74 09 09 78 2c 79 3b 0a 20 |. int..x,y;. | 000bc760 20 20 20 69 6e 74 09 09 73 69 7a 65 3b 0a 20 20 | int..size;. | 000bc770 20 20 69 6e 74 09 09 74 79 70 65 3b 0a 20 20 20 | int..type;. | 000bc780 20 63 68 61 72 09 6e 61 6d 65 5b 32 31 32 5d 3b | char.name[212];| 000bc790 0a 20 20 7d 44 41 54 41 b5 00 00 00 77 69 6d 70 |. }DATA....wimp| 000bc7a0 5f 6d 73 67 64 61 74 61 6f 70 65 6e 0a 54 68 69 |_msgdataopen.Thi| 000bc7b0 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000bc7c0 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 |d in <wimp.h=>wi| 000bc7d0 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 73 |mp_h>. It is a s| 000bc7e0 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 6f |tructure used to| 000bc7f0 20 68 6f 6c 64 20 64 61 74 61 20 66 6f 72 20 61 | hold data for a| 000bc800 20 3c 4d 65 73 73 61 67 65 5f 44 61 74 61 4f 70 | <Message_DataOp| 000bc810 65 6e 3d 3e 53 57 49 3a 77 69 6d 70 5f 75 6d 35 |en=>SWI:wimp_um5| 000bc820 3e 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |>. It is defined| 000bc830 20 61 73 20 61 20 3c 77 69 6d 70 5f 6d 73 67 64 | as a <wimp_msgd| 000bc840 61 74 61 6c 6f 61 64 3e 2e 00 00 00 44 41 54 41 |ataload>....DATA| 000bc850 fb 00 00 00 77 69 6d 70 5f 6d 73 67 64 61 74 61 |....wimp_msgdata| 000bc860 73 61 76 65 0a 54 68 69 73 20 74 79 70 65 20 69 |save.This type i| 000bc870 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000bc880 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000bc890 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000bc8a0 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 64 61 | used to hold da| 000bc8b0 74 61 20 66 6f 72 20 61 20 3c 4d 65 73 73 61 67 |ta for a <Messag| 000bc8c0 65 5f 44 61 74 61 53 61 76 65 3d 3e 53 57 49 3a |e_DataSave=>SWI:| 000bc8d0 77 69 6d 70 5f 75 6d 31 3e 3a 0a 0a 20 20 5c 7b |wimp_um1>:.. \{| 000bc8e0 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 77 3b |. <wimp_w>.w;| 000bc8f0 0a 20 20 20 20 3c 77 69 6d 70 5f 69 3e 09 20 69 |. <wimp_i>. i| 000bc900 3b 0a 20 20 20 20 69 6e 74 09 09 78 2c 79 3b 0a |;. int..x,y;.| 000bc910 20 20 20 20 69 6e 74 09 09 65 73 74 73 69 7a 65 | int..estsize| 000bc920 3b 0a 20 20 20 20 69 6e 74 09 09 74 79 70 65 3b |;. int..type;| 000bc930 0a 20 20 20 20 63 68 61 72 09 6c 65 61 66 5b 31 |. char.leaf[1| 000bc940 32 5d 3b 0a 20 20 7d 00 44 41 54 41 00 01 00 00 |2];. }.DATA....| 000bc950 77 69 6d 70 5f 6d 73 67 64 61 74 61 73 61 76 65 |wimp_msgdatasave| 000bc960 6f 6b 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |ok.This type is | 000bc970 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 |defined in <wimp| 000bc980 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 |.h=>wimp_h>. It | 000bc990 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 75 |is a structure u| 000bc9a0 73 65 64 20 74 6f 20 68 6f 6c 64 20 64 61 74 61 |sed to hold data| 000bc9b0 20 66 6f 72 20 61 20 3c 4d 65 73 73 61 67 65 5f | for a <Message_| 000bc9c0 44 61 74 61 53 61 76 65 41 63 6b 3d 3e 53 57 49 |DataSaveAck=>SWI| 000bc9d0 3a 77 69 6d 70 5f 75 6d 32 3e 3a 0a 0a 20 20 5c |:wimp_um2>:.. \| 000bc9e0 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 77 |{. <wimp_w>.w| 000bc9f0 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 69 3e 09 69 |;. <wimp_i>.i| 000bca00 3b 0a 20 20 20 20 69 6e 74 09 09 78 2c 79 3b 0a |;. int..x,y;.| 000bca10 20 20 20 20 69 6e 74 09 09 65 73 74 73 69 7a 65 | int..estsize| 000bca20 3b 0a 20 20 20 20 69 6e 74 09 09 74 79 70 65 3b |;. int..type;| 000bca30 0a 20 20 20 20 63 68 61 72 09 6e 61 6d 65 5b 32 |. char.name[2| 000bca40 31 32 5d 3b 0a 20 20 7d 44 41 54 41 da 00 00 00 |12];. }DATA....| 000bca50 77 69 6d 70 5f 6d 73 67 64 65 76 69 63 65 0a 54 |wimp_msgdevice.T| 000bca60 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000bca70 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e |ned in <wimp.h=>| 000bca80 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 |wimp_h>. It is a| 000bca90 0a 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 |.structure used | 000bcaa0 74 6f 20 68 6f 6c 64 20 64 61 74 61 20 66 6f 72 |to hold data for| 000bcab0 20 61 0a 4d 65 73 73 61 67 65 5f 44 65 76 69 63 | a.Message_Devic| 000bcac0 65 43 6c 61 69 6d 20 6f 72 20 4d 65 73 73 61 67 |eClaim or Messag| 000bcad0 65 5f 44 65 76 69 63 65 49 6e 55 73 65 3a 0a 0a |e_DeviceInUse:..| 000bcae0 20 20 7b 0a 20 20 20 20 69 6e 74 20 20 6d 61 6a | {. int maj| 000bcaf0 6f 72 3b 0a 20 20 20 20 69 6e 74 20 20 6d 69 6e |or;. int min| 000bcb00 6f 72 3b 0a 20 20 20 20 63 68 61 72 20 69 6e 66 |or;. char inf| 000bcb10 6f 72 6d 61 74 69 6f 6e 5b 32 32 38 5d 3b 0a 20 |ormation[228];. | 000bcb20 20 7d 00 00 44 41 54 41 df 00 00 00 77 69 6d 70 | }..DATA....wimp| 000bcb30 5f 6d 73 67 68 64 72 0a 54 68 69 73 20 74 79 70 |_msghdr.This typ| 000bcb40 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000bcb50 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e |<wimp.h=>wimp_h>| 000bcb60 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 |. It is a struct| 000bcb70 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 |ure used to hold| 000bcb80 20 61 20 6d 65 73 73 61 67 65 20 68 65 61 64 65 | a message heade| 000bcb90 72 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 |r:.. \{. int| 000bcba0 09 09 09 73 69 7a 65 3b 0a 20 20 20 20 3c 77 69 |...size;. <wi| 000bcbb0 6d 70 5f 74 3e 09 09 74 61 73 6b 3b 0a 20 20 20 |mp_t>..task;. | 000bcbc0 20 69 6e 74 09 09 09 6d 79 5f 72 65 66 3b 0a 20 | int...my_ref;. | 000bcbd0 20 20 20 69 6e 74 09 09 09 79 6f 75 72 5f 72 65 | int...your_re| 000bcbe0 66 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 6d 73 67 |f;. <wimp_msg| 000bcbf0 61 63 74 69 6f 6e 3e 09 61 63 74 69 6f 6e 3b 0a |action>.action;.| 000bcc00 20 20 7d 00 44 41 54 41 b1 00 00 00 77 69 6d 70 | }.DATA....wimp| 000bcc10 5f 6d 73 67 68 65 6c 70 72 65 70 6c 79 0a 54 68 |_msghelpreply.Th| 000bcc20 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000bcc30 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 |ed in <wimp.h=>w| 000bcc40 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 |imp_h>. It is a | 000bcc50 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 |structure used t| 000bcc60 6f 20 68 6f 6c 64 20 64 61 74 61 20 66 6f 72 20 |o hold data for | 000bcc70 61 20 3c 4d 65 73 73 61 67 65 5f 48 65 6c 70 52 |a <Message_HelpR| 000bcc80 65 70 6c 79 3d 3e 53 57 49 3a 77 69 6d 70 5f 75 |eply=>SWI:wimp_u| 000bcc90 6d 35 30 33 3e 3a 0a 0a 20 20 5c 7b 0a 20 20 20 |m503>:.. \{. | 000bcca0 20 63 68 61 72 20 20 74 65 78 74 5b 32 30 30 5d | char text[200]| 000bccb0 3b 0a 20 20 7d 00 00 00 44 41 54 41 b7 00 00 00 |;. }...DATA....| 000bccc0 77 69 6d 70 5f 6d 73 67 68 65 6c 70 72 65 71 75 |wimp_msghelprequ| 000bccd0 65 73 74 0a 54 68 69 73 20 74 79 70 65 20 69 73 |est.This type is| 000bcce0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d | defined in <wim| 000bccf0 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 |p.h=>wimp_h>. It| 000bcd00 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 000bcd10 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 64 61 74 |used to hold dat| 000bcd20 61 20 66 6f 72 20 61 20 3c 4d 65 73 73 61 67 65 |a for a <Message| 000bcd30 5f 48 65 6c 70 52 65 71 75 65 73 74 3d 3e 73 77 |_HelpRequest=>sw| 000bcd40 69 3a 77 69 6d 70 5f 75 6d 35 30 32 3e 3a 0a 0a |i:wimp_um502>:..| 000bcd50 20 20 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 6d 6f | {. <wimp_mo| 000bcd60 75 73 65 73 74 72 3e 20 20 6d 3b 0a 20 20 7d 00 |usestr> m;. }.| 000bcd70 44 41 54 41 bf 00 00 00 77 69 6d 70 5f 6d 73 67 |DATA....wimp_msg| 000bcd80 70 72 69 6e 74 0a 54 68 69 73 20 74 79 70 65 20 |print.This type | 000bcd90 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 |is defined in <w| 000bcda0 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 |imp.h=>wimp_h>. | 000bcdb0 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 |It is a structur| 000bcdc0 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 64 |e used to hold d| 000bcdd0 61 74 61 20 66 6f 72 20 61 6c 6c 20 70 72 69 6e |ata for all prin| 000bcde0 74 20 6d 65 73 73 61 67 65 73 2e 0a 0a 20 20 5c |t messages... \| 000bcdf0 7b 0a 20 20 20 20 69 6e 74 09 09 66 69 6c 6c 65 |{. int..fille| 000bce00 72 5b 35 5d 3b 0a 20 20 20 20 69 6e 74 09 09 74 |r[5];. int..t| 000bce10 79 70 65 3b 0a 20 20 20 20 63 68 61 72 09 6e 61 |ype;. char.na| 000bce20 6d 65 5b 32 35 36 2d 34 34 5d 3b 0a 20 20 7d 00 |me[256-44];. }.| 000bce30 44 41 54 41 b9 00 00 00 77 69 6d 70 5f 6d 73 67 |DATA....wimp_msg| 000bce40 72 61 6d 66 65 74 63 68 0a 54 68 69 73 20 74 79 |ramfetch.This ty| 000bce50 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000bce60 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 | <wimp.h=>wimp_h| 000bce70 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 000bce80 74 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c |ture used to hol| 000bce90 64 20 64 61 74 61 20 66 6f 72 20 61 20 3c 4d 65 |d data for a <Me| 000bcea0 73 73 61 67 65 5f 52 41 4d 46 65 74 63 68 3d 3e |ssage_RAMFetch=>| 000bceb0 53 57 49 3a 57 69 6d 70 5f 75 6d 36 3e 3a 0a 0a |SWI:Wimp_um6>:..| 000bcec0 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 09 2a 61 | \{. char.*a| 000bced0 64 64 72 3b 0a 20 20 20 20 69 6e 74 09 09 6e 62 |ddr;. int..nb| 000bcee0 79 74 65 73 3b 0a 20 20 7d 00 00 00 44 41 54 41 |ytes;. }...DATA| 000bcef0 c6 00 00 00 77 69 6d 70 5f 6d 73 67 72 61 6d 74 |....wimp_msgramt| 000bcf00 72 61 6e 73 6d 69 74 0a 54 68 69 73 20 74 79 70 |ransmit.This typ| 000bcf10 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000bcf20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e |<wimp.h=>wimp_h>| 000bcf30 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 |. It is a struct| 000bcf40 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 |ure used to hold| 000bcf50 20 64 61 74 61 20 66 6f 72 20 61 20 3c 4d 65 73 | data for a <Mes| 000bcf60 73 61 67 65 5f 52 41 4d 54 72 61 6e 73 6d 69 74 |sage_RAMTransmit| 000bcf70 3d 3e 53 57 49 3a 77 69 6d 70 5f 75 6d 37 3e 3a |=>SWI:wimp_um7>:| 000bcf80 0a 0a 20 20 5c 7b 0a 20 20 20 20 63 68 61 72 09 |.. \{. char.| 000bcf90 2a 61 64 64 72 3b 0a 20 20 20 20 69 6e 74 09 09 |*addr;. int..| 000bcfa0 6e 62 79 74 65 73 77 72 69 74 74 65 6e 3b 0a 20 |nbyteswritten;. | 000bcfb0 20 7d 00 00 44 41 54 41 9e 00 00 00 77 69 6d 70 | }..DATA....wimp| 000bcfc0 5f 6d 73 67 73 61 76 65 64 65 73 6b 0a 54 68 69 |_msgsavedesk.Thi| 000bcfd0 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 |s type is define| 000bcfe0 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 |d in <wimp.h=>wi| 000bcff0 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 0a 73 |mp_h>. It is a.s| 000bd000 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 6f |tructure used to| 000bd010 20 68 6f 6c 64 20 64 61 74 61 20 66 6f 72 20 61 | hold data for a| 000bd020 0a 4d 65 73 73 61 67 65 5f 53 61 76 65 44 65 73 |.Message_SaveDes| 000bd030 6b 74 6f 70 3a 0a 0a 20 20 7b 0a 20 20 20 20 69 |ktop:.. {. i| 000bd040 6e 74 20 66 69 6c 65 68 61 6e 64 6c 65 3b 0a 20 |nt filehandle;. | 000bd050 20 7d 00 00 44 41 54 41 2b 02 00 00 77 69 6d 70 | }..DATA+...wimp| 000bd060 5f 6d 73 67 73 74 72 0a 54 68 69 73 20 74 79 70 |_msgstr.This typ| 000bd070 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000bd080 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e |<wimp.h=>wimp_h>| 000bd090 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 |. It is a struct| 000bd0a0 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 |ure used to hold| 000bd0b0 20 61 20 63 6f 6d 70 6c 65 74 65 20 57 69 6d 70 | a complete Wimp| 000bd0c0 20 6d 65 73 73 61 67 65 2e 0a 0a 20 20 5c 7b 0a | message... \{.| 000bd0d0 20 20 20 20 3c 77 69 6d 70 5f 6d 73 67 68 64 72 | <wimp_msghdr| 000bd0e0 3e 20 68 64 72 3b 0a 20 20 20 20 75 6e 69 6f 6e |> hdr;. union| 000bd0f0 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 63 68 |. \{. ch| 000bd100 61 72 09 09 09 63 68 61 72 73 5b 32 33 36 5d 3b |ar...chars[236];| 000bd110 0a 20 20 20 20 20 20 69 6e 74 09 09 09 77 6f 72 |. int...wor| 000bd120 64 73 5b 35 39 5d 3b 0a 20 20 20 20 20 20 3c 77 |ds[59];. <w| 000bd130 69 6d 70 5f 6d 73 67 64 61 74 61 73 61 76 65 3e |imp_msgdatasave>| 000bd140 09 64 61 74 61 73 61 76 65 3b 0a 20 20 20 20 20 |.datasave;. | 000bd150 20 3c 77 69 6d 70 5f 6d 73 67 64 61 74 61 73 61 | <wimp_msgdatasa| 000bd160 76 65 6f 6b 3e 09 64 61 74 61 73 61 76 65 6f 6b |veok>.datasaveok| 000bd170 3b 0a 20 20 20 20 20 20 3c 77 69 6d 70 5f 6d 73 |;. <wimp_ms| 000bd180 67 64 61 74 61 6c 6f 61 64 3e 09 64 61 74 61 6c |gdataload>.datal| 000bd190 6f 61 64 3b 0a 20 20 20 20 20 20 3c 77 69 6d 70 |oad;. <wimp| 000bd1a0 5f 6d 73 67 64 61 74 61 6f 70 65 6e 3e 09 64 61 |_msgdataopen>.da| 000bd1b0 74 61 6f 70 65 6e 3b 0a 20 20 20 20 20 20 3c 77 |taopen;. <w| 000bd1c0 69 6d 70 5f 6d 73 67 72 61 6d 66 65 74 63 68 3e |imp_msgramfetch>| 000bd1d0 09 72 61 6d 66 65 74 63 68 3b 0a 20 20 20 20 20 |.ramfetch;. | 000bd1e0 20 3c 77 69 6d 70 5f 6d 73 67 72 61 6d 74 72 61 | <wimp_msgramtra| 000bd1f0 6e 73 6d 69 74 3e 09 72 61 6d 74 72 61 6e 73 6d |nsmit>.ramtransm| 000bd200 69 74 3b 0a 20 20 20 20 20 20 3c 77 69 6d 70 5f |it;. <wimp_| 000bd210 6d 73 67 68 65 6c 70 72 65 71 75 65 73 74 3e 09 |msghelprequest>.| 000bd220 68 65 6c 70 72 65 71 75 65 73 74 3b 0a 20 20 20 |helprequest;. | 000bd230 20 20 20 3c 77 69 6d 70 5f 6d 73 67 68 65 6c 70 | <wimp_msghelp| 000bd240 72 65 70 6c 79 3e 09 68 65 6c 70 72 65 70 6c 79 |reply>.helpreply| 000bd250 3b 0a 20 20 20 20 20 20 3c 77 69 6d 70 5f 6d 73 |;. <wimp_ms| 000bd260 67 70 72 69 6e 74 3e 09 09 70 72 69 6e 74 3b 0a |gprint>..print;.| 000bd270 20 20 20 20 7d 20 64 61 74 61 3b 0a 20 20 7d 00 | } data;. }.| 000bd280 44 41 54 41 80 00 00 00 77 69 6d 70 5f 4e 55 4d |DATA....wimp_NUM| 000bd290 42 45 52 4f 46 45 56 45 4e 54 53 0a 54 68 69 73 |BEROFEVENTS.This| 000bd2a0 20 69 73 20 61 20 6d 61 63 72 6f 20 64 65 66 69 | is a macro defi| 000bd2b0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000bd2c0 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 |Wimp.h=>Wimp>. I| 000bd2d0 74 20 68 61 73 20 74 68 65 20 76 61 6c 75 65 20 |t has the value | 000bd2e0 32 30 2c 20 61 73 20 65 76 65 6e 74 73 20 61 72 |20, as events ar| 000bd2f0 65 20 6e 75 6d 62 65 72 65 64 20 30 2d 31 39 2e |e numbered 0-19.| 000bd300 44 41 54 41 f0 00 00 00 77 69 6d 70 5f 6f 70 65 |DATA....wimp_ope| 000bd310 6e 5f 74 65 6d 70 6c 61 74 65 0a 53 79 6e 74 61 |n_template.Synta| 000bd320 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 |x:.<os_error> *w| 000bd330 69 6d 70 5f 6f 70 65 6e 5f 74 65 6d 70 6c 61 74 |imp_open_templat| 000bd340 65 20 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b 0a |e (char *name);.| 000bd350 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d |Header:.<wimp.h=| 000bd360 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e |>wimp_h>..Return| 000bd370 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000bd380 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000bd390 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000bd3a0 6e 63 74 69 6f 6e 20 6f 70 65 6e 73 20 74 68 65 |nction opens the| 000bd3b0 20 6e 61 6d 65 64 20 74 65 6d 70 6c 61 74 65 20 | named template | 000bd3c0 66 69 6c 65 20 66 6f 72 20 73 75 62 73 65 71 75 |file for subsequ| 000bd3d0 65 6e 74 20 75 73 65 20 62 79 20 3c 77 69 6d 70 |ent use by <wimp| 000bd3e0 5f 6c 6f 61 64 5f 74 65 6d 70 6c 61 74 65 3e 2e |_load_template>.| 000bd3f0 44 41 54 41 c0 00 00 00 77 69 6d 70 5f 6f 70 65 |DATA....wimp_ope| 000bd400 6e 5f 77 69 6e 64 0a 53 79 6e 74 61 78 3a 09 3c |n_wind.Syntax:.<| 000bd410 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f |os_error> *wimp_| 000bd420 6f 70 65 6e 5f 77 69 6e 64 20 28 3c 77 69 6d 70 |open_wind (<wimp| 000bd430 5f 6f 70 65 6e 73 74 72 3e 20 2a 62 6c 6b 29 3b |_openstr> *blk);| 000bd440 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 |.Header:.<wimp.h| 000bd450 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 |=>wimp_h>..Retur| 000bd460 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000bd470 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000bd480 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000bd490 75 6e 63 74 69 6f 6e 73 20 6f 70 65 6e 73 20 74 |unctions opens t| 000bd4a0 68 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e |he given window.| 000bd4b0 44 41 54 41 bf 00 00 00 77 69 6d 70 5f 6f 70 65 |DATA....wimp_ope| 000bd4c0 6e 73 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 |nstr.This type i| 000bd4d0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000bd4e0 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000bd4f0 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000bd500 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 20 | used to hold a | 000bd510 77 69 6e 64 6f 77 20 70 6f 73 69 74 69 6f 6e 3a |window position:| 000bd520 0a 0a 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 |.. \{. <wimp| 000bd530 5f 77 3e 09 77 3b 0a 20 20 20 20 3c 77 69 6d 70 |_w>.w;. <wimp| 000bd540 5f 62 6f 78 3e 09 62 6f 78 3b 0a 20 20 20 20 69 |_box>.box;. i| 000bd550 6e 74 09 78 2c 79 3b 0a 20 20 20 20 3c 77 69 6d |nt.x,y;. <wim| 000bd560 70 5f 77 3e 62 65 68 69 6e 64 3b 0a 20 20 7d 00 |p_w>behind;. }.| 000bd570 44 41 54 41 94 01 00 00 57 69 6d 70 5f 4f 70 65 |DATA....Wimp_Ope| 000bd580 6e 54 65 6d 70 6c 61 74 65 0a 53 79 6e 74 61 78 |nTemplate.Syntax| 000bd590 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000bd5a0 6d 70 5f 4f 70 65 6e 54 65 6d 70 6c 61 74 65 20 |mp_OpenTemplate | 000bd5b0 28 63 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 |(char *name);.He| 000bd5c0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 |ader:.<DeskLib:W| 000bd5d0 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 |impSWIs.h=>WimpS| 000bd5e0 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |WIs>..Returns:.P| 000bd5f0 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000bd600 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000bd610 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |ne...This functi| 000bd620 6f 6e 20 6f 70 65 6e 73 20 74 68 65 20 73 70 65 |on opens the spe| 000bd630 63 69 66 69 65 64 20 74 65 6d 70 6c 61 74 65 20 |cified template | 000bd640 66 69 6c 65 20 61 6e 64 20 72 65 61 64 73 20 69 |file and reads i| 000bd650 6e 20 73 6f 6d 65 20 68 65 61 64 65 72 20 69 6e |n some header in| 000bd660 66 6f 72 6d 61 74 69 6f 6e 2e 20 4f 6e 6c 79 20 |formation. Only | 000bd670 6f 6e 65 20 74 65 6d 70 6c 61 74 65 20 66 69 6c |one template fil| 000bd680 65 20 6d 61 79 20 62 65 20 6f 70 65 6e 20 61 74 |e may be open at| 000bd690 20 61 20 74 69 6d 65 2e 20 59 6f 75 20 63 61 6e | a time. You can| 000bd6a0 20 6e 6f 77 20 63 61 6c 6c 20 3c 57 69 6d 70 5f | now call <Wimp_| 000bd6b0 4c 6f 61 64 54 65 6d 70 6c 61 74 65 3e 20 74 6f |LoadTemplate> to| 000bd6c0 20 6c 6f 61 64 20 65 61 63 68 20 74 65 6d 70 6c | load each templ| 000bd6d0 61 74 65 20 61 6e 64 20 74 68 65 6e 20 3c 57 69 |ate and then <Wi| 000bd6e0 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 6c 61 74 65 |mp_CloseTemplate| 000bd6f0 3e 20 74 6f 20 63 6c 6f 73 65 20 74 68 65 20 66 |> to close the f| 000bd700 69 6c 65 2e 44 41 54 41 01 01 00 00 57 69 6d 70 |ile.DATA....Wimp| 000bd710 5f 4f 70 65 6e 57 69 6e 64 6f 77 0a 53 79 6e 74 |_OpenWindow.Synt| 000bd720 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000bd730 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 20 |Wimp_OpenWindow | 000bd740 28 3c 77 69 6e 64 6f 77 5f 6f 70 65 6e 62 6c 6f |(<window_openblo| 000bd750 63 6b 3e 20 2a 62 6c 6f 63 6b 29 3b 0a 48 65 61 |ck> *block);.Hea| 000bd760 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 |der:.<DeskLib:Wi| 000bd770 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000bd780 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |Is>..Returns:.Po| 000bd790 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000bd7a0 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000bd7b0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000bd7c0 6e 20 75 70 64 61 74 65 73 20 74 68 65 20 6c 69 |n updates the li| 000bd7d0 73 74 20 6f 66 20 61 63 74 69 76 65 20 77 69 6e |st of active win| 000bd7e0 64 6f 77 73 20 28 6f 6e 65 73 20 74 68 61 74 20 |dows (ones that | 000bd7f0 61 72 65 20 74 6f 20 62 65 20 64 69 73 70 6c 61 |are to be displa| 000bd800 79 65 64 29 2e 00 00 00 44 41 54 41 02 01 00 00 |yed)....DATA....| 000bd810 77 69 6d 70 5f 70 61 6c 65 74 74 65 73 74 72 0a |wimp_palettestr.| 000bd820 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 |This type is def| 000bd830 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d |ined in <wimp.h=| 000bd840 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 |>wimp_h>. It is | 000bd850 61 20 73 74 72 75 63 74 75 72 65 20 75 73 65 64 |a structure used| 000bd860 20 74 6f 20 68 6f 6c 64 20 61 20 63 6f 6d 70 6c | to hold a compl| 000bd870 65 74 65 20 57 69 6d 70 20 70 61 6c 65 74 74 65 |ete Wimp palette| 000bd880 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 20 20 5c |:.{wrap off}. \| 000bd890 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 70 61 6c 65 |{. <wimp_pale| 000bd8a0 74 74 65 77 6f 72 64 3e 20 20 63 5b 31 36 5d 3b |tteword> c[16];| 000bd8b0 0a 20 20 20 20 3c 77 69 6d 70 5f 70 61 6c 65 74 |. <wimp_palet| 000bd8c0 74 65 77 6f 72 64 3e 20 20 73 63 72 65 65 6e 62 |teword> screenb| 000bd8d0 6f 72 64 65 72 3b 0a 20 20 20 20 3c 77 69 6d 70 |order;. <wimp| 000bd8e0 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e 20 20 6d |_paletteword> m| 000bd8f0 6f 75 73 65 31 2c 20 6d 6f 75 73 65 32 2c 20 6d |ouse1, mouse2, m| 000bd900 6f 75 73 65 33 3b 0a 20 20 7d 00 00 44 41 54 41 |ouse3;. }..DATA| 000bd910 e8 00 00 00 77 69 6d 70 5f 70 61 6c 65 74 74 65 |....wimp_palette| 000bd920 77 6f 72 64 0a 54 68 69 73 20 74 79 70 65 20 69 |word.This type i| 000bd930 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 |s defined in <wi| 000bd940 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 |mp.h=>wimp_h>. I| 000bd950 74 20 69 73 20 61 20 75 6e 69 6f 6e 20 75 73 65 |t is a union use| 000bd960 64 20 74 6f 20 68 6f 6c 64 20 61 20 70 61 6c 65 |d to hold a pale| 000bd970 74 74 65 20 77 6f 72 64 3a 0a 0a 20 20 5c 7b 0a |tte word:.. \{.| 000bd980 20 20 20 20 73 74 72 75 63 74 0a 20 20 20 20 5c | struct. \| 000bd990 7b 0a 20 20 20 20 20 20 63 68 61 72 09 67 63 6f |{. char.gco| 000bd9a0 6c 3b 0a 20 20 20 20 20 20 63 68 61 72 09 72 65 |l;. char.re| 000bd9b0 64 3b 0a 20 20 20 20 20 20 63 68 61 72 09 67 72 |d;. char.gr| 000bd9c0 65 65 6e 3b 0a 20 20 20 20 20 20 63 68 61 72 09 |een;. char.| 000bd9d0 62 6c 75 65 3b 0a 20 20 20 20 7d 20 62 79 74 65 |blue;. } byte| 000bd9e0 73 3b 0a 20 20 20 20 69 6e 74 20 77 6f 72 64 3b |s;. int word;| 000bd9f0 0a 20 20 7d 44 41 54 41 1a 02 00 00 57 69 6d 70 |. }DATA....Wimp| 000bda00 5f 50 6c 6f 74 49 63 6f 6e 0a 53 79 6e 74 61 78 |_PlotIcon.Syntax| 000bda10 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000bda20 6d 70 5f 50 6c 6f 74 49 63 6f 6e 20 28 3c 69 63 |mp_PlotIcon (<ic| 000bda30 6f 6e 5f 62 6c 6f 63 6b 3e 20 2a 66 61 6b 65 69 |on_block> *fakei| 000bda40 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |con);.Header:.<D| 000bda50 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e |eskLib:WimpSWIs.| 000bda60 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 |h=>WimpSWIs>..Re| 000bda70 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 |turns:.Pointer t| 000bda80 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c |o error, or <NUL| 000bda90 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 44 65 73 |L> if none...Des| 000bdaa0 6b 74 6f 70 20 43 3a 20 53 65 65 20 3c 77 69 6d |ktop C: See <wim| 000bdab0 70 5f 70 6c 6f 74 69 63 6f 6e 3d 3e 77 69 6d 70 |p_ploticon=>wimp| 000bdac0 5f 70 6c 6f 74 69 63 6f 6e 5f 3e 2e 0a 0a 54 68 |_ploticon_>...Th| 000bdad0 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 |is function can | 000bdae0 62 65 20 75 73 65 64 20 74 6f 20 70 6c 6f 74 20 |be used to plot | 000bdaf0 61 6e 20 69 63 6f 6e 20 69 6e 20 61 20 77 69 6e |an icon in a win| 000bdb00 64 6f 77 20 64 75 72 69 6e 67 20 61 20 77 69 6e |dow during a win| 000bdb10 64 6f 77 20 72 65 64 72 61 77 20 6f 72 20 75 70 |dow redraw or up| 000bdb20 64 61 74 65 20 6c 6f 6f 70 2e 20 54 68 65 20 69 |date loop. The i| 000bdb30 63 6f 6e 20 64 6f 65 73 6e 27 74 20 65 78 69 73 |con doesn't exis| 000bdb40 74 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 |t as part of the| 000bdb50 20 77 69 6e 64 6f 77 20 64 65 66 69 6e 69 74 69 | window definiti| 000bdb60 6f 6e 20 2d 20 69 6e 73 74 65 61 64 20 69 74 73 |on - instead its| 000bdb70 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 73 20 67 | definition is g| 000bdb80 69 76 65 6e 20 64 69 72 65 63 74 6c 79 2e 0a 0a |iven directly...| 000bdb90 49 6e 20 52 49 53 43 20 4f 53 20 33 20 74 68 69 |In RISC OS 3 thi| 000bdba0 73 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 |s can be called | 000bdbb0 6f 75 74 73 69 64 65 20 61 20 72 65 64 72 61 77 |outside a redraw| 000bdbc0 20 6c 6f 6f 70 20 2d 20 69 6e 20 77 68 69 63 68 | loop - in which| 000bdbd0 20 63 61 73 65 20 61 6c 6c 20 63 6f 6f 72 64 69 | case all coordi| 000bdbe0 6e 61 74 65 73 20 61 72 65 20 73 63 72 65 65 6e |nates are screen| 000bdbf0 20 63 6f 6f 72 64 73 2c 20 6e 6f 74 20 77 6f 72 | coords, not wor| 000bdc00 6b 20 61 72 65 61 20 63 6f 6f 72 64 73 2e 00 00 |k area coords...| 000bdc10 44 41 54 41 f2 00 00 00 77 69 6d 70 5f 70 6c 6f |DATA....wimp_plo| 000bdc20 74 69 63 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f |ticon.Syntax:.<o| 000bdc30 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 70 |s_error> *wimp_p| 000bdc40 6c 6f 74 69 63 6f 6e 20 28 3c 77 69 6d 70 5f 69 |loticon (<wimp_i| 000bdc50 63 6f 6e 3e 20 2a 69 63 6f 6e 29 3b 0a 48 65 61 |con> *icon);.Hea| 000bdc60 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 |der:.<wimp.h=>wi| 000bdc70 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |mp_h>..Returns:.| 000bdc80 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000bdc90 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000bdca0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000bdcb0 69 6f 6e 20 70 6c 6f 74 73 20 74 68 65 20 69 63 |ion plots the ic| 000bdcc0 6f 6e 20 77 68 6f 73 65 20 64 65 66 69 6e 69 74 |on whose definit| 000bdcd0 69 6f 6e 20 69 73 20 67 69 76 65 6e 2e 20 49 74 |ion is given. It| 000bdce0 20 69 73 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 | is not necessar| 000bdcf0 69 6c 79 20 61 20 72 65 61 6c 20 69 63 6f 6e 2e |ily a real icon.| 000bdd00 2e 2e 00 00 44 41 54 41 9c 00 00 00 77 69 6d 70 |....DATA....wimp| 000bdd10 5f 70 6f 69 6e 74 0a 54 68 69 73 20 74 79 70 65 |_point.This type| 000bdd20 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000bdd30 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e |DeskLib:Wimp.h=>| 000bdd40 57 69 6d 70 3e 20 61 73 20 61 20 73 74 72 75 63 |Wimp> as a struc| 000bdd50 74 75 72 65 20 66 6f 72 20 68 6f 6c 64 69 6e 67 |ture for holding| 000bdd60 20 20 61 6e 20 7b 2f 7d 28 78 2c 79 29 7b 2f 7d | an {/}(x,y){/}| 000bdd70 20 70 61 69 72 2e 20 49 74 20 69 73 20 64 65 66 | pair. It is def| 000bdd80 69 6e 65 64 20 61 73 3a 0a 0a 20 20 5c 7b 0a 20 |ined as:.. \{. | 000bdd90 20 20 20 69 6e 74 20 78 2c 20 79 3b 0a 20 20 7d | int x, y;. }| 000bdda0 44 41 54 41 ff 00 00 00 77 69 6d 70 5f 70 6f 69 |DATA....wimp_poi| 000bddb0 6e 74 65 72 0a 54 68 69 73 20 74 79 70 65 20 69 |nter.This type i| 000bddc0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 54 69 |s defined in <Ti| 000bddd0 6d 73 4c 69 62 3a 49 6e 74 65 72 66 61 63 65 2e |msLib:Interface.| 000bdde0 68 3d 3e 49 6e 74 65 72 66 61 63 65 3e 20 61 73 |h=>Interface> as| 000bddf0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 | the following s| 000bde00 74 72 75 63 74 75 72 65 3a 0a 0a 20 20 5c 7b 0a |tructure:.. \{.| 000bde10 20 20 20 20 69 6e 74 09 09 77 69 6e 64 6f 77 5f | int..window_| 000bde20 68 61 6e 64 6c 65 3b 0a 20 20 20 20 69 6e 74 09 |handle;. int.| 000bde30 09 78 30 2c 79 30 2c 78 31 2c 79 31 3b 0a 20 20 |.x0,y0,x1,y1;. | 000bde40 20 20 63 68 61 72 09 70 74 72 5f 76 61 6c 69 64 | char.ptr_valid| 000bde50 61 74 69 6f 6e 5b 32 34 5d 3b 0a 20 20 7d 0a 0a |ation[24];. }..| 000bde60 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 |See the document| 000bde70 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 20 77 |ation provided w| 000bde80 69 74 68 20 49 6e 74 65 72 66 61 63 65 20 66 6f |ith Interface fo| 000bde90 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 00 |r more details..| 000bdea0 44 41 54 41 c1 01 00 00 57 69 6d 70 5f 50 6f 6c |DATA....Wimp_Pol| 000bdeb0 6c 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |l.Syntax:.<os_er| 000bdec0 72 6f 72 3e 20 2a 57 69 6d 70 5f 50 6f 6c 6c 20 |ror> *Wimp_Poll | 000bded0 28 3c 65 76 65 6e 74 5f 70 6f 6c 6c 6d 61 73 6b |(<event_pollmask| 000bdee0 3e 20 6d 61 73 6b 2c 20 3c 65 76 65 6e 74 5f 70 |> mask, <event_p| 000bdef0 6f 6c 6c 62 6c 6f 63 6b 3e 20 2a 65 76 65 6e 74 |ollblock> *event| 000bdf00 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000bdf10 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e |Lib:WimpSWIs.h=>| 000bdf20 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 |WimpSWIs>..Retur| 000bdf30 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000bdf40 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000bdf50 69 66 20 6e 6f 6e 65 2e 0a 0a 53 65 65 20 61 6c |if none...See al| 000bdf60 73 6f 20 74 68 65 20 44 65 73 6b 74 6f 70 20 43 |so the Desktop C| 000bdf70 20 66 75 6e 63 74 69 6f 6e 2c 20 3c 77 69 6d 70 | function, <wimp| 000bdf80 5f 70 6f 6c 6c 3d 3e 77 69 6d 70 5f 70 6f 6c 6c |_poll=>wimp_poll| 000bdf90 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |_>...This functi| 000bdfa0 6f 6e 20 70 6f 6c 6c 73 20 74 68 65 20 57 69 6d |on polls the Wim| 000bdfb0 70 20 74 6f 20 73 65 65 20 77 68 65 74 68 65 72 |p to see whether| 000bdfc0 20 63 65 72 74 61 69 6e 20 65 76 65 6e 74 73 20 | certain events | 000bdfd0 68 61 76 65 20 6f 63 63 75 72 72 65 64 2e 20 59 |have occurred. Y| 000bdfe0 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 69 74 20 |ou must call it | 000bdff0 69 6e 20 74 68 65 20 6d 61 69 6e 20 6c 6f 6f 70 |in the main loop| 000be000 20 6f 66 20 61 6e 79 20 70 72 6f 67 72 61 6d 20 | of any program | 000be010 79 6f 75 20 77 72 69 74 65 20 74 6f 20 72 75 6e |you write to run| 000be020 20 75 6e 64 65 72 20 74 68 65 20 57 69 6d 70 2e | under the Wimp.| 000be030 20 54 68 65 20 72 65 73 75 6c 74 73 20 6f 66 20 | The results of | 000be040 74 68 65 20 70 6f 6c 6c 20 61 72 65 20 72 65 74 |the poll are ret| 000be050 75 72 6e 65 64 20 69 6e 20 2f 65 76 65 6e 74 2f |urned in /event/| 000be060 2e 00 00 00 44 41 54 41 e2 01 00 00 57 69 6d 70 |....DATA....Wimp| 000be070 5f 50 6f 6c 6c 33 0a 53 79 6e 74 61 78 3a 09 3c |_Poll3.Syntax:.<| 000be080 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f |os_error> *Wimp_| 000be090 50 6f 6c 6c 33 20 28 3c 65 76 65 6e 74 5f 70 6f |Poll3 (<event_po| 000be0a0 6c 6c 6d 61 73 6b 3e 20 6d 61 73 6b 2c 20 3c 65 |llmask> mask, <e| 000be0b0 76 65 6e 74 5f 70 6f 6c 6c 62 6c 6f 63 6b 3e 20 |vent_pollblock> | 000be0c0 2a 65 76 65 6e 74 2c 20 76 6f 69 64 20 2a 77 6f |*event, void *wo| 000be0d0 72 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |rd);.Header:.<De| 000be0e0 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 |skLib:WimpSWIs.h| 000be0f0 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 |=>WimpSWIs>..Ret| 000be100 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000be110 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000be120 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 000be130 20 66 75 6e 63 74 69 6f 6e 20 70 6f 6c 6c 73 20 | function polls | 000be140 74 68 65 20 57 69 6d 70 20 74 6f 20 73 65 65 20 |the Wimp to see | 000be150 77 68 65 74 68 65 72 20 63 65 72 74 61 69 6e 20 |whether certain | 000be160 65 76 65 6e 74 73 20 68 61 76 65 20 6f 63 63 75 |events have occu| 000be170 72 72 65 64 2e 20 59 6f 75 20 6d 75 73 74 20 63 |rred. You must c| 000be180 61 6c 6c 20 69 74 20 69 6e 20 74 68 65 20 6d 61 |all it in the ma| 000be190 69 6e 20 6c 6f 6f 70 20 6f 66 20 61 6e 79 20 70 |in loop of any p| 000be1a0 72 6f 67 72 61 6d 20 79 6f 75 20 77 72 69 74 65 |rogram you write| 000be1b0 20 74 6f 20 72 75 6e 20 75 6e 64 65 72 20 74 68 | to run under th| 000be1c0 65 20 57 69 6d 70 2e 20 54 68 65 20 72 65 73 75 |e Wimp. The resu| 000be1d0 6c 74 73 20 6f 66 20 74 68 65 20 70 6f 6c 6c 20 |lts of the poll | 000be1e0 61 72 65 20 72 65 74 75 72 6e 65 64 20 69 6e 20 |are returned in | 000be1f0 2f 65 76 65 6e 74 2f 2e 20 2f 77 6f 72 64 2f 20 |/event/. /word/ | 000be200 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 70 6f 6c |contains the pol| 000be210 6c 20 77 6f 72 64 20 28 69 67 6e 6f 72 65 64 20 |l word (ignored | 000be220 69 66 20 6d 61 73 6b 2e 64 61 74 61 2e 72 33 69 |if mask.data.r3i| 000be230 73 70 6f 6c 6c 77 6f 72 64 70 74 72 20 69 73 20 |spollwordptr is | 000be240 7a 65 72 6f 29 2e 00 00 44 41 54 41 39 01 00 00 |zero)...DATA9...| 000be250 77 69 6d 70 5f 70 6f 6c 6c 0a 53 79 6e 74 61 78 |wimp_poll.Syntax| 000be260 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 |:.<os_error> *wi| 000be270 6d 70 5f 70 6f 6c 6c 20 28 3c 77 69 6d 70 5f 65 |mp_poll (<wimp_e| 000be280 6d 61 73 6b 3e 20 6d 61 73 6b 2c 20 3c 77 69 6d |mask> mask, <wim| 000be290 70 5f 65 76 65 6e 74 73 74 72 3e 20 2a 72 65 73 |p_eventstr> *res| 000be2a0 75 6c 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |ult);.Header:.<w| 000be2b0 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a |imp.h=>wimp_h>..| 000be2c0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000be2d0 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000be2e0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000be2f0 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 70 6f |his functions po| 000be300 6c 6c 73 20 74 68 65 20 6e 65 78 74 20 65 76 65 |lls the next eve| 000be310 6e 74 20 66 72 6f 6d 20 74 68 65 20 57 69 6d 70 |nt from the Wimp| 000be320 2e 20 2f 6d 61 73 6b 2f 20 6d 61 73 6b 73 20 6f |. /mask/ masks o| 000be330 75 74 20 74 68 65 20 65 76 65 6e 74 73 20 79 6f |ut the events yo| 000be340 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f |u do not want to| 000be350 20 72 65 63 65 69 76 65 2e 20 54 68 65 20 65 76 | receive. The ev| 000be360 65 6e 74 20 69 73 20 72 65 74 75 72 6e 65 64 20 |ent is returned | 000be370 69 6e 20 7b 2f 7d 2a 72 65 73 75 6c 74 7b 2f 7d |in {/}*result{/}| 000be380 2e 00 00 00 44 41 54 41 2d 02 00 00 57 69 6d 70 |....DATA-...Wimp| 000be390 5f 50 6f 6c 6c 49 64 6c 65 0a 53 79 6e 74 61 78 |_PollIdle.Syntax| 000be3a0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000be3b0 6d 70 5f 50 6f 6c 6c 49 64 6c 65 20 28 3c 65 76 |mp_PollIdle (<ev| 000be3c0 65 6e 74 5f 70 6f 6c 6c 6d 61 73 6b 3e 20 6d 61 |ent_pollmask> ma| 000be3d0 73 6b 2c 20 3c 65 76 65 6e 74 5f 70 6f 6c 6c 62 |sk, <event_pollb| 000be3e0 6c 6f 63 6b 3e 20 2a 62 6c 6f 63 6b 2c 20 69 6e |lock> *block, in| 000be3f0 74 20 65 61 72 6c 69 65 73 74 29 3b 0a 48 65 61 |t earliest);.Hea| 000be400 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 |der:.<DeskLib:Wi| 000be410 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000be420 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |Is>..Returns:.Po| 000be430 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000be440 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000be450 65 2e 0a 0a 53 65 65 20 74 68 65 20 44 65 73 6b |e...See the Desk| 000be460 74 6f 70 20 43 20 66 75 6e 63 74 69 6f 6e 2c 20 |top C function, | 000be470 3c 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 3d 3e |<wimp_pollidle=>| 000be480 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 5f 3e 0a |wimp_pollidle_>.| 000be490 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 |.This function p| 000be4a0 6f 6c 6c 73 20 74 68 65 20 57 69 6d 70 20 74 6f |olls the Wimp to| 000be4b0 20 73 65 65 20 77 68 65 74 68 65 72 20 63 65 72 | see whether cer| 000be4c0 74 61 69 6e 20 65 76 65 6e 74 73 20 68 61 76 65 |tain events have| 000be4d0 20 6f 63 63 75 72 72 65 64 2e 20 59 6f 75 20 6d | occurred. You m| 000be4e0 75 73 74 20 63 61 6c 6c 20 69 74 20 69 6e 20 74 |ust call it in t| 000be4f0 68 65 20 6d 61 69 6e 20 6c 6f 6f 70 20 6f 66 20 |he main loop of | 000be500 61 6e 79 20 70 72 6f 67 72 61 6d 20 79 6f 75 20 |any program you | 000be510 77 72 69 74 65 20 74 6f 20 72 75 6e 20 75 6e 64 |write to run und| 000be520 65 72 20 74 68 65 20 57 69 6d 70 2e 20 54 68 65 |er the Wimp. The| 000be530 20 72 65 73 75 6c 74 73 20 6f 66 20 74 68 65 20 | results of the | 000be540 70 6f 6c 6c 20 61 72 65 20 72 65 74 75 72 6e 65 |poll are returne| 000be550 64 20 69 6e 20 2f 65 76 65 6e 74 2f 2e 20 2f 65 |d in /event/. /e| 000be560 61 72 6c 69 65 73 74 2f 20 63 6f 6e 74 61 69 6e |arliest/ contain| 000be570 73 20 74 68 65 20 65 61 72 6c 69 65 73 74 20 6d |s the earliest m| 000be580 6f 6e 6f 74 6f 6e 69 63 20 74 69 6d 65 20 74 68 |onotonic time th| 000be590 61 74 20 61 20 6e 75 6c 6c 20 65 76 65 6e 74 20 |at a null event | 000be5a0 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 |will be returned| 000be5b0 2e 00 00 00 44 41 54 41 52 02 00 00 57 69 6d 70 |....DATAR...Wimp| 000be5c0 5f 50 6f 6c 6c 49 64 6c 65 33 0a 53 79 6e 74 61 |_PollIdle3.Synta| 000be5d0 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 |x:.<os_error> *W| 000be5e0 69 6d 70 5f 50 6f 6c 6c 49 64 6c 65 33 20 28 3c |imp_PollIdle3 (<| 000be5f0 65 76 65 6e 74 5f 70 6f 6c 6c 6d 61 73 6b 3e 20 |event_pollmask> | 000be600 6d 61 73 6b 2c 20 3c 65 76 65 6e 74 5f 70 6f 6c |mask, <event_pol| 000be610 6c 62 6c 6f 63 6b 3e 20 2a 62 6c 6f 63 6b 2c 20 |lblock> *block, | 000be620 69 6e 74 20 65 61 72 6c 69 65 73 74 2c 20 76 6f |int earliest, vo| 000be630 69 64 20 2a 77 6f 72 64 29 3b 0a 48 65 61 64 65 |id *word);.Heade| 000be640 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |r:.<DeskLib:Wimp| 000be650 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 |SWIs.h=>WimpSWIs| 000be660 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000be670 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000be680 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000be690 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000be6a0 70 6f 6c 6c 73 20 74 68 65 20 57 69 6d 70 20 74 |polls the Wimp t| 000be6b0 6f 20 73 65 65 20 77 68 65 74 68 65 72 20 63 65 |o see whether ce| 000be6c0 72 74 61 69 6e 20 65 76 65 6e 74 73 20 68 61 76 |rtain events hav| 000be6d0 65 20 6f 63 63 75 72 72 65 64 2e 20 59 6f 75 20 |e occurred. You | 000be6e0 6d 75 73 74 20 63 61 6c 6c 20 69 74 20 69 6e 20 |must call it in | 000be6f0 74 68 65 20 6d 61 69 6e 20 6c 6f 6f 70 20 6f 66 |the main loop of| 000be700 20 61 6e 79 20 70 72 6f 67 72 61 6d 20 79 6f 75 | any program you| 000be710 20 77 72 69 74 65 20 74 6f 20 72 75 6e 20 75 6e | write to run un| 000be720 64 65 72 20 74 68 65 20 57 69 6d 70 2e 20 54 68 |der the Wimp. Th| 000be730 65 20 72 65 73 75 6c 74 73 20 6f 66 20 74 68 65 |e results of the| 000be740 20 70 6f 6c 6c 20 61 72 65 20 72 65 74 75 72 6e | poll are return| 000be750 65 64 20 69 6e 20 2f 65 76 65 6e 74 2f 2e 20 2f |ed in /event/. /| 000be760 65 61 72 6c 69 65 73 74 2f 20 63 6f 6e 74 61 69 |earliest/ contai| 000be770 6e 73 20 74 68 65 20 65 61 72 6c 69 65 73 74 20 |ns the earliest | 000be780 6d 6f 6e 6f 74 6f 6e 69 63 20 74 69 6d 65 20 74 |monotonic time t| 000be790 68 61 74 20 61 20 6e 75 6c 6c 20 65 76 65 6e 74 |hat a null event| 000be7a0 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 | will be returne| 000be7b0 64 2e 20 2f 77 6f 72 64 2f 20 63 6f 6e 74 61 69 |d. /word/ contai| 000be7c0 6e 73 20 74 68 65 20 70 6f 6c 6c 20 77 6f 72 64 |ns the poll word| 000be7d0 20 28 69 67 6e 6f 72 65 64 20 69 66 20 7b 2f 7d | (ignored if {/}| 000be7e0 6d 61 73 6b 2e 64 61 74 61 2e 72 33 69 73 70 6f |mask.data.r3ispo| 000be7f0 6c 6c 77 6f 72 64 70 74 72 7b 2f 7d 20 69 73 20 |llwordptr{/} is | 000be800 7a 65 72 6f 29 2e 00 00 44 41 54 41 3f 01 00 00 |zero)...DATA?...| 000be810 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 0a 53 79 |wimp_pollidle.Sy| 000be820 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000be830 20 2a 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 20 | *wimp_pollidle | 000be840 28 3c 77 69 6d 70 5f 65 6d 61 73 6b 3e 20 2a 6d |(<wimp_emask> *m| 000be850 61 73 6b 2c 20 3c 77 69 6d 70 5f 65 76 65 6e 74 |ask, <wimp_event| 000be860 73 74 72 3e 20 2a 72 65 73 75 6c 74 2c 20 69 6e |str> *result, in| 000be870 74 20 65 61 72 6c 69 65 73 74 29 3b 0a 48 65 61 |t earliest);.Hea| 000be880 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 |der:.<wimp.h=>wi| 000be890 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |mp_h>..Returns:.| 000be8a0 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000be8b0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000be8c0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000be8d0 69 6f 6e 20 69 73 20 6c 69 6b 65 20 3c 77 69 6d |ion is like <wim| 000be8e0 70 5f 70 6f 6c 6c 3d 3e 77 69 6d 70 5f 70 6f 6c |p_poll=>wimp_pol| 000be8f0 6c 5f 3e 2c 20 62 75 74 20 64 6f 65 73 20 6e 6f |l_>, but does no| 000be900 74 20 72 65 74 75 72 6e 20 62 65 66 6f 72 65 20 |t return before | 000be910 74 68 65 20 6d 6f 6e 6f 74 6f 6e 69 63 20 74 69 |the monotonic ti| 000be920 6d 65 20 2f 65 61 72 6c 69 65 73 74 2f 20 75 6e |me /earliest/ un| 000be930 6c 65 73 73 20 73 6f 6d 65 74 68 69 6e 67 20 68 |less something h| 000be940 61 70 70 65 6e 73 2e 00 44 41 54 41 63 02 00 00 |appens..DATAc...| 000be950 57 69 6d 70 5f 50 72 6f 63 65 73 73 4b 65 79 2f |Wimp_ProcessKey/| 000be960 77 69 6d 70 5f 70 72 6f 63 65 73 73 6b 65 79 0a |wimp_processkey.| 000be970 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000be980 72 3e 20 2a 57 69 6d 70 5f 50 72 6f 63 65 73 73 |r> *Wimp_Process| 000be990 4b 65 79 20 28 69 6e 74 20 63 68 29 3b 0a 48 65 |Key (int ch);.He| 000be9a0 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 |ader:.<DeskLib:W| 000be9b0 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 |impSWIs.h=>WimpS| 000be9c0 57 49 73 3e 0a 09 3c 77 69 6d 70 2e 68 3d 3e 77 |WIs>..<wimp.h=>w| 000be9d0 69 6d 70 5f 68 3e 20 28 44 65 73 6b 74 6f 70 20 |imp_h> (Desktop | 000be9e0 43 29 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |C)..Returns:.Poi| 000be9f0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000bea00 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000bea10 2e 0a 0a 54 68 69 73 20 69 73 20 63 61 6c 6c 65 |...This is calle| 000bea20 64 20 7b 2a 7d 77 69 6d 70 5f 70 72 6f 63 65 73 |d {*}wimp_proces| 000bea30 73 6b 65 79 7b 2a 7d 20 69 6e 20 44 65 73 6b 74 |skey{*} in Deskt| 000bea40 6f 70 20 43 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |op C...This func| 000bea50 74 69 6f 6e 20 63 61 75 73 65 73 20 74 68 65 20 |tion causes the | 000bea60 57 69 6d 70 20 74 6f 20 6f 66 66 65 72 20 74 68 |Wimp to offer th| 000bea70 65 20 67 69 76 65 6e 20 63 68 61 72 61 63 74 65 |e given characte| 000bea80 72 20 74 6f 20 6f 74 68 65 72 20 61 70 70 6c 69 |r to other appli| 000bea90 63 61 74 69 6f 6e 73 2e 20 49 74 20 73 68 6f 75 |cations. It shou| 000beaa0 6c 64 20 62 65 20 75 73 65 64 20 66 6f 72 20 74 |ld be used for t| 000beab0 77 6f 20 70 75 72 70 6f 73 65 73 3a 0a 7b 74 61 |wo purposes:.{ta| 000beac0 62 7d 0a 8f 09 50 61 73 73 20 6f 6e 20 6b 65 79 |b}...Pass on key| 000bead0 70 72 65 73 73 65 73 20 79 6f 75 20 64 6f 6e 27 |presses you don'| 000beae0 74 20 75 6e 64 65 72 73 74 61 6e 64 2e 0a 8f 09 |t understand....| 000beaf0 49 6e 73 65 72 74 20 6b 65 79 70 72 65 73 73 65 |Insert keypresse| 000beb00 73 20 69 6e 74 6f 20 74 68 65 20 6b 65 79 70 72 |s into the keypr| 000beb10 65 73 73 20 62 75 66 66 65 72 2e 0a 0a 59 6f 75 |ess buffer...You| 000beb20 20 73 68 6f 75 6c 64 20 6e 6f 74 20 69 6e 73 65 | should not inse| 000beb30 72 74 20 6d 6f 72 65 20 74 68 61 6e 20 61 20 63 |rt more than a c| 000beb40 6f 75 70 6c 65 20 6f 66 20 63 68 61 72 61 63 74 |ouple of charact| 000beb50 65 72 73 20 61 74 20 61 20 74 69 6d 65 20 69 6e |ers at a time in| 000beb60 20 74 68 69 73 20 77 61 79 2e 20 54 68 65 73 65 | this way. These| 000beb70 20 63 68 61 72 61 63 74 65 72 73 20 74 61 6b 65 | characters take| 000beb80 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 | precedence over| 000beb90 20 63 68 61 72 61 63 74 65 72 73 20 61 63 74 75 | characters actu| 000beba0 61 6c 6c 79 20 74 79 70 65 64 2e 00 44 41 54 41 |ally typed..DATA| 000bebb0 da 00 00 00 77 69 6d 70 5f 70 73 68 61 70 65 73 |....wimp_pshapes| 000bebc0 74 72 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |tr.This type is | 000bebd0 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 |defined in <wimp| 000bebe0 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 20 |.h=>wimp_h>. It | 000bebf0 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 75 |is a structure u| 000bec00 73 65 64 20 74 6f 20 68 6f 6c 64 20 70 6f 69 6e |sed to hold poin| 000bec10 74 65 72 20 73 68 61 70 65 20 64 61 74 61 3a 0a |ter shape data:.| 000bec20 0a 20 20 5c 7b 0a 20 20 20 20 69 6e 74 09 09 73 |. \{. int..s| 000bec30 68 61 70 65 5f 6e 75 6d 3b 0a 20 20 20 20 63 68 |hape_num;. ch| 000bec40 61 72 09 2a 73 68 61 70 65 5f 64 61 74 61 3b 0a |ar.*shape_data;.| 000bec50 20 20 20 20 69 6e 74 09 09 77 69 64 74 68 2c 20 | int..width, | 000bec60 68 65 69 67 68 74 3b 0a 20 20 20 20 69 6e 74 09 |height;. int.| 000bec70 09 61 63 74 69 76 65 78 2c 20 61 63 74 69 76 65 |.activex, active| 000bec80 79 3b 0a 20 20 7d 00 00 44 41 54 41 34 01 00 00 |y;. }..DATA4...| 000bec90 57 69 6d 70 5f 52 65 61 64 50 61 6c 65 74 74 65 |Wimp_ReadPalette| 000beca0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 000becb0 6f 72 3e 20 2a 57 69 6d 70 5f 52 65 61 64 50 61 |or> *Wimp_ReadPa| 000becc0 6c 65 74 74 65 20 28 3c 70 61 6c 65 74 74 65 5f |lette (<palette_| 000becd0 62 6c 6f 63 6b 3e 20 2a 70 61 6c 65 74 74 65 29 |block> *palette)| 000bece0 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000becf0 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 |ib:WimpSWIs.h=>W| 000bed00 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e |impSWIs>..Return| 000bed10 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000bed20 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000bed30 66 20 6e 6f 6e 65 2e 0a 0a 44 65 73 6b 74 6f 70 |f none...Desktop| 000bed40 20 43 3a 20 53 65 65 20 3c 77 69 6d 70 5f 72 65 | C: See <wimp_re| 000bed50 61 64 70 61 6c 65 74 74 65 3d 3e 77 69 6d 70 5f |adpalette=>wimp_| 000bed60 72 65 61 64 70 61 6c 65 74 74 65 5f 3e 0a 0a 54 |readpalette_>..T| 000bed70 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 |his function rea| 000bed80 64 73 20 74 68 65 20 77 68 6f 6c 65 20 70 61 6c |ds the whole pal| 000bed90 65 74 74 65 20 69 6e 74 6f 20 74 68 65 20 62 6c |ette into the bl| 000beda0 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ock pointed to b| 000bedb0 79 20 2f 70 61 6c 65 74 74 65 2f 2e 44 41 54 41 |y /palette/.DATA| 000bedc0 d7 00 00 00 77 69 6d 70 5f 72 65 61 64 70 61 6c |....wimp_readpal| 000bedd0 65 74 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |ette.Syntax:.<os| 000bede0 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 72 65 |_error> *wimp_re| 000bedf0 61 64 70 61 6c 65 74 74 65 20 28 77 69 6d 70 5f |adpalette (wimp_| 000bee00 70 61 6c 65 74 74 65 73 74 72 20 2a 70 61 6c 29 |palettestr *pal)| 000bee10 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e |;.Header:.<wimp.| 000bee20 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 |h=>wimp_h>..Retu| 000bee30 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000bee40 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000bee50 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000bee60 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 |function reads t| 000bee70 68 65 20 63 75 72 72 65 6e 74 20 57 69 6d 70 20 |he current Wimp | 000bee80 70 61 6c 65 74 74 65 20 69 6e 74 6f 20 2f 70 61 |palette into /pa| 000bee90 6c 2f 2e 00 44 41 54 41 4b 03 00 00 57 69 6d 70 |l/..DATAK...Wimp| 000beea0 5f 52 65 61 64 50 69 78 54 72 61 6e 73 0a 53 79 |_ReadPixTrans.Sy| 000beeb0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000beec0 20 2a 57 69 6d 70 5f 52 65 61 64 50 69 78 54 72 | *Wimp_ReadPixTr| 000beed0 61 6e 73 20 28 69 6e 74 20 69 6e 64 65 78 2c 20 |ans (int index, | 000beee0 76 6f 69 64 20 2a 61 72 65 61 2c 20 76 6f 69 64 |void *area, void| 000beef0 20 2a 73 70 72 69 74 65 2c 20 3c 73 63 61 6c 65 | *sprite, <scale| 000bef00 5f 62 6c 6f 63 6b 3e 20 2a 73 63 61 6c 65 2c 20 |_block> *scale, | 000bef10 63 68 61 72 20 2a 74 72 61 6e 73 29 3b 0a 48 65 |char *trans);.He| 000bef20 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 |ader:.<DeskLib:W| 000bef30 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 |impSWIs.h=>WimpS| 000bef40 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 |WIs>..Returns:.P| 000bef50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c |ointer to error,| 000bef60 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f | or <NULL> if no| 000bef70 6e 65 2e 0a 0a 44 65 73 6b 74 6f 70 20 43 3a 20 |ne...Desktop C: | 000bef80 53 65 65 20 3c 77 69 6d 70 5f 72 65 61 64 70 69 |See <wimp_readpi| 000bef90 78 74 72 61 6e 73 3d 3e 77 69 6d 70 5f 72 65 61 |xtrans=>wimp_rea| 000befa0 64 70 69 78 74 72 61 6e 73 5f 3e 0a 0a 54 68 69 |dpixtrans_>..Thi| 000befb0 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 20 |s function find | 000befc0 6f 75 74 20 68 6f 77 20 74 68 65 20 57 69 6d 70 |out how the Wimp| 000befd0 20 77 6f 75 6c 64 20 70 6c 6f 74 20 74 68 65 20 | would plot the | 000befe0 67 69 76 65 6e 20 73 70 72 69 74 65 2e 20 46 6f |given sprite. Fo| 000beff0 72 20 68 69 67 68 20 71 75 61 6c 69 74 79 20 73 |r high quality s| 000bf000 70 72 69 74 65 20 70 6c 6f 74 74 69 6e 67 2c 20 |prite plotting, | 000bf010 79 6f 75 20 73 68 6f 75 6c 64 20 75 73 65 20 3c |you should use <| 000bf020 43 6f 6c 6f 75 72 54 72 61 6e 73 3d 3e 43 6f 6c |ColourTrans=>Col| 000bf030 6f 75 72 54 72 61 6e 3e 20 69 6e 73 74 65 61 64 |ourTran> instead| 000bf040 2e 0a 7b 74 61 62 7d 0a 30 09 5c 3c 3d 20 2f 69 |..{tab}.0.\<= /i| 000bf050 6e 64 65 78 2f 20 5c 3c 3d 20 32 35 35 09 3a 20 |ndex/ \<= 255.: | 000bf060 73 70 72 69 74 65 20 69 6e 20 73 79 73 74 65 6d |sprite in system| 000bf070 20 61 72 65 61 0a 32 35 36 09 5c 3c 3d 20 2f 69 | area.256.\<= /i| 000bf080 6e 64 65 78 2f 20 5c 3c 3d 20 35 31 31 09 3a 20 |ndex/ \<= 511.: | 000bf090 73 70 72 69 74 65 20 69 6e 20 75 73 65 72 20 61 |sprite in user a| 000bf0a0 72 65 61 2c 20 2f 73 70 72 69 74 65 2f 20 70 6f |rea, /sprite/ po| 000bf0b0 69 6e 74 73 20 74 6f 20 6e 61 6d 65 2e 0a 35 31 |ints to name..51| 000bf0c0 32 09 5c 3c 3d 20 2f 69 6e 64 65 78 2f 20 5c 3c |2.\<= /index/ \<| 000bf0d0 3d 20 37 36 37 09 3a 20 73 70 72 69 74 65 20 69 |= 767.: sprite i| 000bf0e0 6e 20 75 73 65 72 20 61 72 65 61 2c 20 2f 73 70 |n user area, /sp| 000bf0f0 72 69 74 65 2f 20 70 6f 69 6e 74 73 20 74 6f 20 |rite/ points to | 000bf100 73 70 72 69 74 65 0a 7b 74 61 62 7d 0a 2f 61 72 |sprite.{tab}./ar| 000bf110 65 61 2f 09 63 6f 6e 74 61 69 6e 73 20 74 68 65 |ea/.contains the| 000bf120 20 73 70 72 69 74 65 20 61 72 65 61 20 70 6f 69 | sprite area poi| 000bf130 6e 74 65 72 2c 20 31 20 66 6f 72 20 57 69 6d 70 |nter, 1 for Wimp| 000bf140 20 61 72 65 61 2c 20 6f 72 20 30 20 66 6f 72 20 | area, or 0 for | 000bf150 73 79 73 74 65 6d 20 61 72 65 61 2e 0a 0a 2f 73 |system area.../s| 000bf160 70 72 69 74 65 2f 09 63 6f 6e 74 61 69 6e 73 20 |prite/.contains | 000bf170 70 6f 69 6e 74 65 72 20 74 6f 20 73 70 72 69 74 |pointer to sprit| 000bf180 65 2e 0a 0a 4f 6e 20 65 78 69 74 2c 20 2f 73 63 |e...On exit, /sc| 000bf190 61 6c 65 2f 20 61 6e 64 20 2f 74 72 61 6e 73 2f |ale/ and /trans/| 000bf1a0 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20 69 6e | will contain in| 000bf1b0 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 68 6f 77 |formation on how| 000bf1c0 20 74 68 65 20 57 69 6d 70 20 77 69 6c 6c 20 70 | the Wimp will p| 000bf1d0 6c 6f 74 20 74 68 65 20 73 70 72 69 74 65 2e 00 |lot the sprite..| 000bf1e0 44 41 54 41 21 01 00 00 77 69 6d 70 5f 72 65 61 |DATA!...wimp_rea| 000bf1f0 64 70 69 78 74 72 61 6e 73 0a 53 79 6e 74 61 78 |dpixtrans.Syntax| 000bf200 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 |:.<os_error> *wi| 000bf210 6d 70 5f 72 65 61 64 70 69 78 74 72 61 6e 73 20 |mp_readpixtrans | 000bf220 28 3c 73 70 72 69 74 65 5f 61 72 65 61 3e 20 2a |(<sprite_area> *| 000bf230 61 72 65 61 2c 20 3c 73 70 72 69 74 65 5f 69 64 |area, <sprite_id| 000bf240 3e 20 2a 69 64 2c 20 3c 73 70 72 69 74 65 5f 66 |> *id, <sprite_f| 000bf250 61 63 74 6f 72 73 3e 20 2a 66 61 63 74 6f 72 73 |actors> *factors| 000bf260 2c 20 3c 73 70 72 69 74 65 5f 70 69 78 74 72 61 |, <sprite_pixtra| 000bf270 6e 73 3e 20 2a 70 69 78 74 72 61 6e 73 29 3b 0a |ns> *pixtrans);.| 000bf280 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d |Header:.<wimp.h=| 000bf290 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e |>wimp_h>..Return| 000bf2a0 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000bf2b0 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000bf2c0 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000bf2d0 6e 63 74 69 6f 6e 20 74 65 6c 6c 73 20 79 6f 75 |nction tells you| 000bf2e0 20 68 6f 77 20 74 68 65 20 57 69 6d 70 20 77 69 | how the Wimp wi| 000bf2f0 6c 6c 20 70 6c 6f 74 20 61 20 73 70 72 69 74 65 |ll plot a sprite| 000bf300 2e 00 00 00 44 41 54 41 bf 00 00 00 77 69 6d 70 |....DATA....wimp| 000bf310 5f 72 65 63 74 0a 54 68 69 73 20 74 79 70 65 20 |_rect.This type | 000bf320 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 |is defined in <D| 000bf330 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 |eskLib:Wimp.h=>W| 000bf340 69 6d 70 3e 20 61 73 20 61 20 74 79 70 65 20 68 |imp> as a type h| 000bf350 6f 6c 64 69 6e 67 20 61 20 72 65 63 74 61 6e 67 |olding a rectang| 000bf360 6c 65 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 74 |le in terms of t| 000bf370 77 6f 20 63 6f 72 6e 65 72 73 2e 20 49 74 20 69 |wo corners. It i| 000bf380 73 20 64 65 66 69 6e 65 64 20 61 73 3a 0a 0a 20 |s defined as:.. | 000bf390 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 70 6f | \{. <wimp_po| 000bf3a0 69 6e 74 3e 20 6d 69 6e 3b 0a 20 20 20 20 3c 77 |int> min;. <w| 000bf3b0 69 6d 70 5f 70 6f 69 6e 74 3e 20 6d 61 78 3b 0a |imp_point> max;.| 000bf3c0 20 20 7d 00 44 41 54 41 3b 01 00 00 77 69 6d 70 | }.DATA;...wimp| 000bf3d0 5f 72 65 64 72 61 77 5f 77 69 6e 64 0a 53 79 6e |_redraw_wind.Syn| 000bf3e0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000bf3f0 2a 77 69 6d 70 5f 72 65 64 72 61 77 5f 77 69 6e |*wimp_redraw_win| 000bf400 64 20 28 3c 77 69 6d 70 5f 72 65 64 72 61 77 73 |d (<wimp_redraws| 000bf410 74 72 3e 20 2a 62 6c 6b 2c 20 3c 42 4f 4f 4c 3e |tr> *blk, <BOOL>| 000bf420 20 2a 6d 6f 72 65 29 3b 0a 48 65 61 64 65 72 3a | *more);.Header:| 000bf430 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 |.<wimp.h=>wimp_h| 000bf440 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000bf450 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000bf460 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000bf470 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 |..This functions| 000bf480 20 72 65 64 72 61 77 73 20 74 68 65 20 77 69 6e | redraws the win| 000bf490 64 6f 77 20 6f 75 74 6c 69 6e 65 20 61 6e 64 20 |dow outline and | 000bf4a0 69 63 6f 6e 73 2e 20 49 74 20 72 65 74 75 72 6e |icons. It return| 000bf4b0 73 20 3c 54 52 55 45 3e 20 69 6e 20 7b 2f 7d 2a |s <TRUE> in {/}*| 000bf4c0 6d 6f 72 65 7b 2f 7d 20 69 66 20 74 68 65 72 65 |more{/} if there| 000bf4d0 20 69 73 20 6d 6f 72 65 20 74 6f 20 62 65 20 64 | is more to be d| 000bf4e0 72 61 77 6e 20 77 69 74 68 20 3c 77 69 6d 70 5f |rawn with <wimp_| 000bf4f0 67 65 74 5f 72 65 63 74 61 6e 67 6c 65 3e 2e 00 |get_rectangle>..| 000bf500 44 41 54 41 d1 00 00 00 77 69 6d 70 5f 72 65 64 |DATA....wimp_red| 000bf510 72 61 77 73 74 72 0a 54 68 69 73 20 74 79 70 65 |rawstr.This type| 000bf520 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c | is defined in <| 000bf530 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e |wimp.h=>wimp_h>.| 000bf540 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 | It is a structu| 000bf550 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 64 61 |re containing da| 000bf560 74 61 20 66 6f 72 20 3c 77 69 6d 70 5f 72 65 64 |ta for <wimp_red| 000bf570 72 61 77 5f 77 69 6e 64 3e 20 65 74 63 2e 0a 0a |raw_wind> etc...| 000bf580 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 77 | \{. <wimp_w| 000bf590 3e 09 77 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 62 |>.w;. <wimp_b| 000bf5a0 6f 78 3e 09 62 6f 78 3b 0a 20 20 20 20 69 6e 74 |ox>.box;. int| 000bf5b0 09 09 73 63 78 2c 20 73 63 79 3b 0a 20 20 20 20 |..scx, scy;. | 000bf5c0 3c 77 69 6d 70 5f 62 6f 78 3e 09 67 3b 0a 20 20 |<wimp_box>.g;. | 000bf5d0 7d 00 00 00 44 41 54 41 80 02 00 00 57 69 6d 70 |}...DATA....Wimp| 000bf5e0 5f 52 65 64 72 61 77 57 69 6e 64 6f 77 0a 53 79 |_RedrawWindow.Sy| 000bf5f0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000bf600 20 2a 57 69 6d 70 5f 52 65 64 72 61 77 57 69 6e | *Wimp_RedrawWin| 000bf610 64 6f 77 20 28 3c 77 69 6e 64 6f 77 5f 72 65 64 |dow (<window_red| 000bf620 72 61 77 62 6c 6f 63 6b 3e 20 2a 62 6c 6b 2c 20 |rawblock> *blk, | 000bf630 3c 42 4f 4f 4c 3e 20 2a 6d 6f 72 65 29 3b 0a 48 |<BOOL> *more);.H| 000bf640 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a |eader:.<DeskLib:| 000bf650 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 |WimpSWIs.h=>Wimp| 000bf660 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |SWIs>..Returns:.| 000bf670 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000bf680 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000bf690 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000bf6a0 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20 73 |ion is used to s| 000bf6b0 74 61 72 74 20 61 20 72 65 64 72 61 77 20 6f 66 |tart a redraw of| 000bf6c0 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 61 20 | the parts of a | 000bf6d0 77 69 6e 64 6f 77 20 74 68 61 74 20 61 72 65 20 |window that are | 000bf6e0 6e 6f 74 20 75 70 20 74 6f 20 64 61 74 65 2e 20 |not up to date. | 000bf6f0 49 74 20 6d 75 73 74 20 62 65 20 63 61 6c 6c 65 |It must be calle| 000bf700 64 20 61 73 20 74 68 65 20 66 69 72 73 74 20 57 |d as the first W| 000bf710 69 6d 70 20 6f 70 65 72 61 74 69 6f 6e 20 61 66 |imp operation af| 000bf720 74 65 72 20 74 68 65 20 57 69 6d 70 5f 50 6f 6c |ter the Wimp_Pol| 000bf730 6c 20 77 68 69 63 68 20 72 65 74 75 72 6e 65 64 |l which returned| 000bf740 20 61 20 52 65 64 72 61 77 5f 57 69 6e 64 6f 77 | a Redraw_Window| 000bf750 5f 52 65 71 75 65 73 74 2e 20 57 69 6d 70 5f 52 |_Request. Wimp_R| 000bf760 65 64 72 61 77 57 69 6e 64 6f 77 20 64 72 61 77 |edrawWindow draw| 000bf770 73 20 74 68 65 20 77 69 6e 64 6f 77 20 6f 75 74 |s the window out| 000bf780 6c 69 6e 65 2c 20 69 73 73 75 65 73 20 56 44 55 |line, issues VDU| 000bf790 20 35 2c 20 61 6e 64 20 74 68 65 6e 20 65 78 69 | 5, and then exi| 000bf7a0 74 73 20 76 69 61 20 3c 57 69 6d 70 5f 47 65 74 |ts via <Wimp_Get| 000bf7b0 52 65 63 74 61 6e 67 6c 65 3e 2c 20 77 68 69 63 |Rectangle>, whic| 000bf7c0 68 20 72 65 74 75 72 6e 73 20 74 68 65 20 63 6f |h returns the co| 000bf7d0 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 74 68 65 |ordinates of the| 000bf7e0 20 66 69 72 73 74 20 69 6e 76 61 6c 69 64 20 72 | first invalid r| 000bf7f0 65 63 74 61 6e 67 6c 65 20 6f 66 20 74 68 65 20 |ectangle of the | 000bf800 77 6f 72 6b 20 61 72 65 61 2e 20 49 74 20 61 6c |work area. It al| 000bf810 73 6f 20 72 65 74 75 72 6e 73 20 61 20 66 6c 61 |so returns a fla| 000bf820 67 20 2f 6d 6f 72 65 2f 20 73 61 79 69 6e 67 20 |g /more/ saying | 000bf830 77 68 65 74 68 65 72 20 74 68 65 72 65 20 69 73 |whether there is| 000bf840 20 61 6e 79 74 68 69 6e 67 20 74 6f 20 72 65 64 | anything to red| 000bf850 72 61 77 2e 44 41 54 41 33 02 00 00 57 69 6d 70 |raw.DATA3...Wimp| 000bf860 5f 52 65 70 6f 72 74 45 72 72 6f 72 0a 53 79 6e |_ReportError.Syn| 000bf870 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000bf880 2a 57 69 6d 70 5f 52 65 70 6f 72 74 45 72 72 6f |*Wimp_ReportErro| 000bf890 72 20 28 6f 73 5f 65 72 72 6f 72 20 2a 65 72 72 |r (os_error *err| 000bf8a0 2c 20 69 6e 74 20 66 6c 61 67 73 2c 20 63 68 61 |, int flags, cha| 000bf8b0 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 |r *name);.Header| 000bf8c0 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 |:.<DeskLib:WimpS| 000bf8d0 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e |WIs.h=>WimpSWIs>| 000bf8e0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000bf8f0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000bf900 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 000bf910 0a 44 65 73 6b 74 6f 70 20 43 3a 20 53 65 65 20 |.Desktop C: See | 000bf920 3c 77 69 6d 70 5f 72 65 70 6f 72 74 65 72 72 6f |<wimp_reporterro| 000bf930 72 3d 3e 77 69 6d 70 5f 72 65 70 6f 72 74 65 72 |r=>wimp_reporter| 000bf940 72 6f 72 5f 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |ror_>..This func| 000bf950 74 69 6f 6e 20 70 72 6f 76 69 64 65 73 20 61 20 |tion provides a | 000bf960 62 75 69 6c 74 2d 69 6e 20 6d 65 61 6e 73 20 66 |built-in means f| 000bf970 6f 72 20 72 65 70 6f 72 74 69 6e 67 20 65 72 72 |or reporting err| 000bf980 6f 72 73 20 74 68 61 74 20 6d 61 79 20 6f 63 63 |ors that may occ| 000bf990 75 72 20 28 62 75 74 20 3c 44 65 73 6b 4c 69 62 |ur (but <DeskLib| 000bf9a0 3a 4d 73 67 73 2e 68 3d 3e 4d 73 67 73 3e 20 68 |:Msgs.h=>Msgs> h| 000bf9b0 61 73 20 62 65 74 74 65 72 20 77 61 79 73 29 2e |as better ways).| 000bf9c0 20 54 68 65 20 65 72 72 6f 72 20 69 73 20 67 69 | The error is gi| 000bf9d0 76 65 6e 20 69 6e 20 2f 65 72 72 2f 2e 20 54 68 |ven in /err/. Th| 000bf9e0 65 20 66 6c 61 67 73 20 61 72 65 20 70 61 73 73 |e flags are pass| 000bf9f0 65 64 20 61 73 20 61 6e 20 2f 69 6e 74 2f 20 28 |ed as an /int/ (| 000bfa00 62 75 74 20 74 68 69 73 20 63 61 6e 20 62 65 20 |but this can be | 000bfa10 63 61 73 74 20 66 72 6f 6d 20 61 6e 20 3c 65 72 |cast from an <er| 000bfa20 72 6f 72 5f 66 6c 61 67 73 3e 29 2e 20 2f 6e 61 |ror_flags>). /na| 000bfa30 6d 65 2f 20 69 73 20 74 68 65 20 74 61 73 6b 20 |me/ is the task | 000bfa40 6e 61 6d 65 20 74 6f 20 62 65 20 70 6c 61 63 65 |name to be place| 000bfa50 64 20 69 6e 20 74 68 65 20 74 69 74 6c 65 20 62 |d in the title b| 000bfa60 61 72 20 61 6e 64 20 6d 75 73 74 20 62 65 20 6c |ar and must be l| 000bfa70 65 73 73 20 74 68 61 6e 20 32 30 20 63 68 61 72 |ess than 20 char| 000bfa80 61 63 74 65 72 73 2e 00 44 41 54 41 05 01 00 00 |acters..DATA....| 000bfa90 77 69 6d 70 5f 72 65 70 6f 72 74 65 72 72 6f 72 |wimp_reporterror| 000bfaa0 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 |.Syntax:.<os_err| 000bfab0 6f 72 3e 20 2a 77 69 6d 70 5f 72 65 70 6f 72 74 |or> *wimp_report| 000bfac0 65 72 72 6f 72 20 28 6f 73 5f 65 72 72 6f 72 20 |error (os_error | 000bfad0 2a 65 72 72 2c 20 3c 77 69 6d 70 5f 65 72 72 66 |*err, <wimp_errf| 000bfae0 6c 61 67 73 3e 20 66 6c 61 67 73 2c 20 63 68 61 |lags> flags, cha| 000bfaf0 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 |r *name);.Header| 000bfb00 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000bfb10 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000bfb20 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000bfb30 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000bfb40 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000bfb50 20 72 65 70 6f 72 74 73 20 74 68 65 20 65 72 72 | reports the err| 000bfb60 6f 72 20 69 6e 20 2f 65 72 72 2f 2e 20 2f 6e 61 |or in /err/. /na| 000bfb70 6d 65 2f 20 61 70 70 65 61 72 73 20 69 6e 20 74 |me/ appears in t| 000bfb80 68 65 20 74 69 74 6c 65 20 62 61 72 2e 00 00 00 |he title bar....| 000bfb90 44 41 54 41 2d 01 00 00 57 69 6d 70 5f 52 65 70 |DATA-...Wimp_Rep| 000bfba0 6f 72 74 45 72 72 6f 72 52 0a 53 79 6e 74 61 78 |ortErrorR.Syntax| 000bfbb0 3a 20 20 69 6e 74 20 57 69 6d 70 5f 52 65 70 6f |: int Wimp_Repo| 000bfbc0 72 74 45 72 72 6f 72 52 0a 20 20 20 20 20 20 20 |rtErrorR. | 000bfbd0 20 20 28 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 65 | (<os_error> *e| 000bfbe0 72 72 2c 20 69 6e 74 20 66 6c 61 67 73 2c 20 63 |rr, int flags, c| 000bfbf0 68 61 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 |har *name);.Head| 000bfc00 65 72 3a 20 20 3c 44 65 73 6b 4c 69 62 3a 57 69 |er: <DeskLib:Wi| 000bfc10 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000bfc20 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 49 63 |Is>..Returns: Ic| 000bfc30 6f 6e 20 73 65 6c 65 63 74 65 64 2c 20 30 20 66 |on selected, 0 f| 000bfc40 6f 72 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |or none...This f| 000bfc50 75 6e 63 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 |unction is ident| 000bfc60 69 63 61 6c 20 74 6f 20 3c 57 69 6d 70 5f 52 65 |ical to <Wimp_Re| 000bfc70 70 6f 72 74 45 72 72 6f 72 3e 0a 62 75 74 20 69 |portError>.but i| 000bfc80 6e 20 61 64 64 69 74 69 6f 6e 20 72 65 70 6f 72 |n addition repor| 000bfc90 74 73 20 77 68 65 74 68 65 72 20 4f 4b 20 28 31 |ts whether OK (1| 000bfca0 29 20 6f 72 0a 43 61 6e 63 65 6c 20 28 32 29 20 |) or.Cancel (2) | 000bfcb0 77 61 73 20 73 65 6c 65 63 74 65 64 2e 00 00 00 |was selected....| 000bfcc0 44 41 54 41 4c 01 00 00 77 69 6d 70 5f 73 61 76 |DATAL...wimp_sav| 000bfcd0 65 5f 66 70 5f 73 74 61 74 65 5f 6f 6e 5f 70 6f |e_fp_state_on_po| 000bfce0 6c 6c 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ll.Syntax:.<os_e| 000bfcf0 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 73 61 76 65 |rror> *wimp_save| 000bfd00 5f 66 70 5f 73 74 61 74 65 5f 6f 6e 5f 70 6f 6c |_fp_state_on_pol| 000bfd10 6c 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |l (void);.Header| 000bfd20 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000bfd30 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000bfd40 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000bfd50 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000bfd60 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000bfd70 73 20 61 63 74 69 76 61 74 65 73 20 73 61 76 69 |s activates savi| 000bfd80 6e 67 20 6f 66 20 46 50 20 73 74 61 74 65 20 6f |ng of FP state o| 000bfd90 6e 20 63 61 6c 6c 73 20 74 6f 20 3c 77 69 6d 70 |n calls to <wimp| 000bfda0 5f 70 6f 6c 6c 3d 3e 77 69 6d 70 5f 70 6f 6c 6c |_poll=>wimp_poll| 000bfdb0 5f 3e 20 61 6e 64 20 3c 77 69 6d 70 5f 70 6f 6c |_> and <wimp_pol| 000bfdc0 6c 69 64 6c 65 3d 3e 77 69 6d 70 5f 70 6f 6c 6c |lidle=>wimp_poll| 000bfdd0 69 64 6c 65 5f 3e 3b 20 74 68 69 73 20 69 73 20 |idle_>; this is | 000bfde0 6e 65 65 64 65 64 20 69 66 20 79 6f 75 20 75 73 |needed if you us| 000bfdf0 65 20 41 4e 59 20 66 6c 6f 61 74 69 6e 67 20 70 |e ANY floating p| 000bfe00 6f 69 6e 74 20 61 74 20 61 6c 6c 2e 44 41 54 41 |oint at all.DATA| 000bfe10 01 01 00 00 57 69 6d 70 5f 53 61 76 65 46 50 53 |....Wimp_SaveFPS| 000bfe20 74 61 74 65 4f 6e 50 6f 6c 6c 0a 53 79 6e 74 61 |tateOnPoll.Synta| 000bfe30 78 3a 20 20 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |x: <os_error> *| 000bfe40 57 69 6d 70 5f 53 61 76 65 46 50 53 74 61 74 65 |Wimp_SaveFPState| 000bfe50 4f 6e 50 6f 6c 6c 28 76 6f 69 64 29 3b 0a 48 65 |OnPoll(void);.He| 000bfe60 61 64 65 72 3a 20 20 3c 44 65 73 6b 4c 69 62 3a |ader: <DeskLib:| 000bfe70 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 |WimpSWIs.h=>Wimp| 000bfe80 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 |SWIs>..Returns: | 000bfe90 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000bfea0 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000bfeb0 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |one...This funct| 000bfec0 69 6f 6e 20 74 65 6c 6c 73 20 44 65 73 6b 4c 69 |ion tells DeskLi| 000bfed0 62 20 74 6f 20 73 61 76 65 20 74 68 65 0a 66 6c |b to save the.fl| 000bfee0 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 73 74 61 |oating point sta| 000bfef0 74 75 73 20 77 68 65 6e 20 63 61 6c 6c 69 6e 67 |tus when calling| 000bff00 20 3c 57 69 6d 70 5f 50 6f 6c 6c 3e 2e 00 00 00 | <Wimp_Poll>....| 000bff10 44 41 54 41 94 02 00 00 57 69 6d 70 5f 53 65 6e |DATA....Wimp_Sen| 000bff20 64 4d 65 73 73 61 67 65 0a 53 79 6e 74 61 78 3a |dMessage.Syntax:| 000bff30 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d |.<os_error> *Wim| 000bff40 70 5f 53 65 6e 64 4d 65 73 73 61 67 65 20 28 3c |p_SendMessage (<| 000bff50 65 76 65 6e 74 5f 74 79 70 65 3e 20 74 79 70 65 |event_type> type| 000bff60 2c 20 3c 6d 65 73 73 61 67 65 5f 62 6c 6f 63 6b |, <message_block| 000bff70 3e 20 2a 6d 73 67 2c 20 3c 6d 65 73 73 61 67 65 |> *msg, <message| 000bff80 5f 64 65 73 74 69 6e 65 65 3e 20 64 65 73 74 2c |_destinee> dest,| 000bff90 20 3c 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 20 69 | <icon_handle> i| 000bffa0 63 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |c);.Header:.<Des| 000bffb0 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d |kLib:WimpSWIs.h=| 000bffc0 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 |>WimpSWIs>..Retu| 000bffd0 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000bffe0 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000bfff0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 44 65 73 6b 74 | if none...Deskt| 000c0000 6f 70 20 43 3a 20 53 65 65 20 3c 77 69 6d 70 5f |op C: See <wimp_| 000c0010 73 65 6e 64 6d 65 73 73 61 67 65 3d 3e 77 69 6d |sendmessage=>wim| 000c0020 70 5f 73 65 6e 64 6d 65 73 73 61 67 65 5f 3e 2e |p_sendmessage_>.| 000c0030 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000c0040 73 65 6e 64 73 20 61 20 6d 65 73 73 61 67 65 20 |sends a message | 000c0050 74 6f 20 61 20 74 61 73 6b 20 6f 72 20 62 72 6f |to a task or bro| 000c0060 61 64 63 61 73 74 73 20 74 6f 20 61 6c 6c 20 74 |adcasts to all t| 000c0070 61 73 6b 73 2e 20 2f 74 79 70 65 2f 20 63 6f 6e |asks. /type/ con| 000c0080 74 61 69 6e 73 20 74 68 65 20 6d 65 73 73 61 67 |tains the messag| 000c0090 65 20 63 6f 64 65 2c 20 2f 6d 73 67 2f 20 63 6f |e code, /msg/ co| 000c00a0 6e 74 61 69 6e 73 20 74 68 65 20 6d 65 73 73 61 |ntains the messa| 000c00b0 67 65 20 64 61 74 61 2e 20 2f 64 65 73 74 2f 20 |ge data. /dest/ | 000c00c0 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 74 61 73 |contains the tas| 000c00d0 6b 20 68 61 6e 64 6c 65 2f 77 69 6e 64 6f 77 20 |k handle/window | 000c00e0 68 61 6e 64 6c 65 20 74 6f 20 73 65 6e 64 20 74 |handle to send t| 000c00f0 68 65 20 6d 65 73 73 61 67 65 20 74 6f 2c 20 6f |he message to, o| 000c0100 72 20 30 20 74 6f 20 62 72 6f 61 64 63 61 73 74 |r 0 to broadcast| 000c0110 20 69 74 2e 20 49 66 20 2f 64 65 73 74 2f 20 69 | it. If /dest/ i| 000c0120 73 20 74 68 65 20 69 63 6f 6e 20 62 61 72 20 74 |s the icon bar t| 000c0130 68 65 6e 20 2f 69 63 2f 20 63 6f 6e 74 61 69 6e |hen /ic/ contain| 000c0140 73 20 74 68 65 20 69 63 6f 6e 20 6e 75 6d 62 65 |s the icon numbe| 000c0150 72 2e 0a 0a 4f 66 74 65 6e 20 74 68 69 73 20 69 |r...Often this i| 000c0160 73 20 75 73 65 64 20 74 6f 20 73 65 6e 64 20 75 |s used to send u| 000c0170 73 65 72 20 6d 65 73 73 61 67 65 73 2c 20 62 75 |ser messages, bu| 000c0180 74 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 |t it can be used| 000c0190 20 66 6f 72 20 61 6e 79 20 57 49 4d 50 20 65 76 | for any WIMP ev| 000c01a0 65 6e 74 2e 44 41 54 41 1b 01 00 00 77 69 6d 70 |ent.DATA....wimp| 000c01b0 5f 73 65 6e 64 6d 65 73 73 61 67 65 0a 53 79 6e |_sendmessage.Syn| 000c01c0 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000c01d0 2a 77 69 6d 70 5f 73 65 6e 64 6d 65 73 73 61 67 |*wimp_sendmessag| 000c01e0 65 20 28 3c 77 69 6d 70 5f 65 74 79 70 65 3e 20 |e (<wimp_etype> | 000c01f0 63 6f 64 65 2c 20 3c 77 69 6d 70 5f 6d 73 67 73 |code, <wimp_msgs| 000c0200 74 72 3e 20 2a 6d 73 67 2c 20 3c 77 69 6d 70 5f |tr> *msg, <wimp_| 000c0210 74 3e 20 64 65 73 74 29 3b 0a 48 65 61 64 65 72 |t> dest);.Header| 000c0220 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000c0230 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000c0240 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000c0250 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000c0260 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000c0270 20 73 65 6e 64 20 74 68 65 20 6d 65 73 73 61 67 | send the messag| 000c0280 65 20 2f 6d 73 67 2f 20 74 6f 20 74 68 65 20 67 |e /msg/ to the g| 000c0290 69 76 65 6e 20 64 65 73 74 69 6e 61 74 69 6f 6e |iven destination| 000c02a0 20 77 69 74 68 20 74 68 65 20 65 76 65 6e 74 20 | with the event | 000c02b0 63 6f 64 65 20 73 70 65 63 69 66 69 65 64 2e 00 |code specified..| 000c02c0 44 41 54 41 2b 01 00 00 77 69 6d 70 5f 73 65 6e |DATA+...wimp_sen| 000c02d0 64 77 6d 65 73 73 61 67 65 0a 53 79 6e 74 61 78 |dwmessage.Syntax| 000c02e0 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 |:.<os_error> *wi| 000c02f0 6d 70 5f 73 65 6e 64 77 6d 65 73 73 61 67 65 20 |mp_sendwmessage | 000c0300 28 3c 77 69 6d 70 5f 65 74 79 70 65 3e 20 63 6f |(<wimp_etype> co| 000c0310 64 65 2c 20 3c 77 69 6d 70 5f 6d 73 67 73 74 72 |de, <wimp_msgstr| 000c0320 3e 20 2a 6d 73 67 2c 20 3c 77 69 6d 70 5f 77 3e |> *msg, <wimp_w>| 000c0330 20 77 69 6e 2c 20 3c 77 69 6d 70 5f 69 3e 20 69 | win, <wimp_i> i| 000c0340 63 6f 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |con);.Header:.<w| 000c0350 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a |imp.h=>wimp_h>..| 000c0360 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000c0370 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000c0380 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000c0390 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e |his function sen| 000c03a0 64 20 74 68 65 20 6d 65 73 73 61 67 65 20 2f 6d |d the message /m| 000c03b0 73 67 2f 20 74 6f 20 74 68 65 20 67 69 76 65 6e |sg/ to the given| 000c03c0 20 77 69 6e 64 6f 77 2f 69 63 6f 6e 20 77 69 74 | window/icon wit| 000c03d0 68 20 74 68 65 20 65 76 65 6e 74 20 63 6f 64 65 |h the event code| 000c03e0 20 73 70 65 63 69 66 69 65 64 2e 00 44 41 54 41 | specified..DATA| 000c03f0 c9 00 00 00 77 69 6d 70 5f 73 65 74 5f 63 61 72 |....wimp_set_car| 000c0400 65 74 5f 70 6f 73 0a 53 79 6e 74 61 78 3a 09 3c |et_pos.Syntax:.<| 000c0410 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f |os_error> *wimp_| 000c0420 73 65 74 5f 63 61 72 65 74 5f 70 6f 73 20 28 3c |set_caret_pos (<| 000c0430 77 69 6d 70 5f 63 61 72 65 74 73 74 72 3e 20 2a |wimp_caretstr> *| 000c0440 62 6c 6b 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |blk);.Header:.<w| 000c0450 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a |imp.h=>wimp_h>..| 000c0460 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000c0470 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000c0480 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000c0490 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 000c04a0 73 20 74 68 65 20 63 61 72 65 74 20 70 6f 73 69 |s the caret posi| 000c04b0 74 69 6f 6e 2e 00 00 00 44 41 54 41 d9 00 00 00 |tion....DATA....| 000c04c0 77 69 6d 70 5f 73 65 74 5f 65 78 74 65 6e 74 0a |wimp_set_extent.| 000c04d0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000c04e0 72 3e 20 2a 77 69 6d 70 5f 73 65 74 5f 65 78 74 |r> *wimp_set_ext| 000c04f0 65 6e 74 20 28 3c 77 69 6d 70 5f 72 65 64 72 61 |ent (<wimp_redra| 000c0500 77 73 74 72 3e 20 2a 72 65 64 72 61 77 29 3b 0a |wstr> *redraw);.| 000c0510 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d |Header:.<wimp.h=| 000c0520 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e |>wimp_h>..Return| 000c0530 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 |s:.Pointer to er| 000c0540 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 |ror, or <NULL> i| 000c0550 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 |f none...This fu| 000c0560 6e 63 74 69 6f 6e 20 61 6c 74 65 72 73 20 74 68 |nction alters th| 000c0570 65 20 65 78 74 65 6e 74 20 6f 66 20 61 20 77 69 |e extent of a wi| 000c0580 6e 64 6f 77 27 73 20 77 6f 72 6b 20 61 72 65 61 |ndow's work area| 000c0590 2e 00 00 00 44 41 54 41 4c 01 00 00 77 69 6d 70 |....DATAL...wimp| 000c05a0 5f 73 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 0a |_set_icon_state.| 000c05b0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000c05c0 72 3e 20 2a 77 69 6d 70 5f 73 65 74 5f 69 63 6f |r> *wimp_set_ico| 000c05d0 6e 5f 73 74 61 74 65 20 28 3c 77 69 6d 70 5f 77 |n_state (<wimp_w| 000c05e0 3e 20 77 69 6e 2c 20 3c 77 69 6d 70 5f 69 3e 20 |> win, <wimp_i> | 000c05f0 69 63 6f 6e 2c 20 3c 77 69 6d 70 5f 69 63 6f 6e |icon, <wimp_icon| 000c0600 66 6c 61 67 73 3e 20 76 2c 20 3c 77 69 6d 70 5f |flags> v, <wimp_| 000c0610 69 63 6f 6e 66 6c 61 67 73 3e 20 6d 29 3b 0a 48 |iconflags> m);.H| 000c0620 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e |eader:.<wimp.h=>| 000c0630 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 |wimp_h>..Returns| 000c0640 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000c0650 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000c0660 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e | none...This fun| 000c0670 63 74 69 6f 6e 73 20 73 65 74 73 20 74 68 65 20 |ctions sets the | 000c0680 69 63 6f 6e 20 73 74 61 74 65 20 6f 66 20 74 68 |icon state of th| 000c0690 65 20 67 69 76 65 6e 20 69 63 6f 6e 20 61 73 3a |e given icon as:| 000c06a0 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 |{wrap off}.{fCod| 000c06b0 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 6e |e;align centre}n| 000c06c0 65 77 5f 73 74 61 74 65 20 3d 20 28 6f 6c 64 5f |ew_state = (old_| 000c06d0 73 74 61 74 65 20 26 20 7e 6d 29 20 5e 20 76 3b |state & ~m) ^ v;| 000c06e0 44 41 54 41 d1 00 00 00 77 69 6d 70 5f 73 65 74 |DATA....wimp_set| 000c06f0 5f 70 6f 69 6e 74 5f 73 68 61 70 65 0a 53 79 6e |_point_shape.Syn| 000c0700 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000c0710 2a 77 69 6d 70 5f 73 65 74 5f 70 6f 69 6e 74 5f |*wimp_set_point_| 000c0720 73 68 61 70 65 20 28 3c 77 69 6d 70 5f 70 73 68 |shape (<wimp_psh| 000c0730 61 70 65 73 74 72 3e 20 2a 70 6f 69 6e 74 65 72 |apestr> *pointer| 000c0740 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 |);.Header:.<wimp| 000c0750 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 |.h=>wimp_h>..Ret| 000c0760 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000c0770 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000c0780 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 000c0790 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 | function sets t| 000c07a0 68 65 20 70 6f 69 6e 74 65 72 20 73 68 61 70 65 |he pointer shape| 000c07b0 2e 00 00 00 44 41 54 41 f6 01 00 00 57 69 6d 70 |....DATA....Wimp| 000c07c0 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f |_SetCaretPositio| 000c07d0 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |n.Syntax:.<os_er| 000c07e0 72 6f 72 3e 20 2a 57 69 6d 70 5f 53 65 74 43 61 |ror> *Wimp_SetCa| 000c07f0 72 65 74 50 6f 73 69 74 69 6f 6e 20 28 3c 63 61 |retPosition (<ca| 000c0800 72 65 74 5f 62 6c 6f 63 6b 3e 20 2a 63 61 72 65 |ret_block> *care| 000c0810 74 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |t);.Header:.<Des| 000c0820 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d |kLib:WimpSWIs.h=| 000c0830 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 |>WimpSWIs>..Retu| 000c0840 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000c0850 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000c0860 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000c0870 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 |function removes| 000c0880 20 74 68 65 20 63 61 72 65 74 20 66 72 6f 6d 20 | the caret from | 000c0890 69 74 73 20 6f 6c 64 20 70 6f 73 69 74 69 6f 6e |its old position| 000c08a0 20 61 6e 64 20 72 65 64 72 61 77 73 20 69 74 20 | and redraws it | 000c08b0 69 6e 20 61 20 6e 65 77 20 70 6f 73 69 74 69 6f |in a new positio| 000c08c0 6e 2c 20 61 73 20 64 65 66 69 6e 65 64 20 62 79 |n, as defined by| 000c08d0 20 2f 63 61 72 65 74 2f 2e 0a 0a 49 66 20 7b 2f | /caret/...If {/| 000c08e0 7d 63 61 72 65 74 2d 3e 68 65 69 67 68 74 7b 2f |}caret->height{/| 000c08f0 7d 20 69 73 20 2d 31 20 74 68 65 6e 20 74 68 65 |} is -1 then the| 000c0900 20 6f 66 66 73 65 74 20 61 6e 64 20 68 65 69 67 | offset and heig| 000c0910 68 74 20 61 72 65 20 63 61 6c 63 75 6c 61 74 65 |ht are calculate| 000c0920 64 20 66 72 6f 6d 20 74 68 65 20 77 69 6e 64 6f |d from the windo| 000c0930 77 2c 20 69 63 6f 6e 20 61 6e 64 20 69 6e 64 65 |w, icon and inde| 000c0940 78 2e 0a 0a 49 66 20 7b 2f 7d 63 61 72 65 74 2d |x...If {/}caret-| 000c0950 3e 69 6e 64 65 78 7b 2f 7d 20 69 73 20 2d 31 20 |>index{/} is -1 | 000c0960 74 68 65 6e 20 74 68 65 20 69 6e 64 65 78 20 61 |then the index a| 000c0970 6e 64 20 68 65 69 67 68 74 20 61 72 65 20 63 61 |nd height are ca| 000c0980 6c 63 75 6c 61 74 65 64 20 66 72 6f 6d 20 74 68 |lculated from th| 000c0990 65 20 77 69 6e 64 6f 77 2c 20 69 63 6f 6e 20 61 |e window, icon a| 000c09a0 6e 64 20 6f 66 66 73 65 74 2e 00 00 44 41 54 41 |nd offset...DATA| 000c09b0 00 02 00 00 57 69 6d 70 5f 53 65 74 43 6f 6c 6f |....Wimp_SetColo| 000c09c0 75 72 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ur.Syntax:.<os_e| 000c09d0 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 53 65 74 43 |rror> *Wimp_SetC| 000c09e0 6f 6c 6f 75 72 20 28 69 6e 74 20 63 6f 6c 29 3b |olour (int col);| 000c09f0 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 |.Header:.<DeskLi| 000c0a00 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 |b:WimpSWIs.h=>Wi| 000c0a10 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 |mpSWIs>..Returns| 000c0a20 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 |:.Pointer to err| 000c0a30 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 |or, or <NULL> if| 000c0a40 20 6e 6f 6e 65 2e 0a 0a 44 65 73 6b 74 6f 70 20 | none...Desktop | 000c0a50 43 3a 20 53 65 65 20 74 68 65 20 66 75 6e 74 69 |C: See the funti| 000c0a60 6f 6e 20 3c 77 69 6d 70 5f 73 65 74 63 6f 6c 6f |on <wimp_setcolo| 000c0a70 75 72 3d 3e 77 69 6d 70 5f 73 65 74 63 6f 6c 6f |ur=>wimp_setcolo| 000c0a80 75 72 5f 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |ur_>..This funct| 000c0a90 69 6f 6e 20 73 65 74 73 20 74 68 65 20 63 75 72 |ion sets the cur| 000c0aa0 72 65 6e 74 20 67 72 61 70 68 69 63 73 20 63 6f |rent graphics co| 000c0ab0 6c 6f 75 72 20 61 6e 64 20 70 6c 6f 74 20 61 63 |lour and plot ac| 000c0ac0 74 69 6f 6e 20 74 6f 20 6f 6e 65 20 6f 66 20 74 |tion to one of t| 000c0ad0 68 65 20 31 36 20 73 74 61 6e 64 61 72 64 20 57 |he 16 standard W| 000c0ae0 69 6d 70 20 63 6f 6c 6f 75 72 73 2e 0a 0a 2f 63 |imp colours.../c| 000c0af0 6f 6c 2f 20 68 61 73 20 74 68 65 20 66 6f 6c 6c |ol/ has the foll| 000c0b00 6f 77 69 6e 67 20 66 6f 72 6d 61 74 3a 0a 0a 5f |owing format:.._| 000c0b10 42 69 74 73 5f 09 5f 4d 65 61 6e 69 6e 67 5f 0a |Bits_._Meaning_.| 000c0b20 30 2d 33 09 57 69 6d 70 20 3c 63 6f 6c 6f 75 72 |0-3.Wimp <colour| 000c0b30 20 6e 75 6d 62 65 72 3d 3e 77 5f 63 6f 6c 70 61 | number=>w_colpa| 000c0b40 6c 5f 3e 0a 34 2d 36 09 47 43 4f 4c 20 3c 61 63 |l_>.4-6.GCOL <ac| 000c0b50 74 69 6f 6e 3d 3e 56 44 55 3a 31 38 61 3e 0a 37 |tion=>VDU:18a>.7| 000c0b60 09 30 3d 66 6f 72 65 67 72 6f 75 6e 64 2c 20 31 |.0=foreground, 1| 000c0b70 3d 62 61 63 6b 67 72 6f 75 6e 64 2e 0a 0a 43 61 |=background...Ca| 000c0b80 73 74 20 2f 63 6f 6c 2f 20 61 73 20 61 20 3c 77 |st /col/ as a <w| 000c0b90 69 6d 70 5f 63 6f 6c 6f 75 72 3e 20 66 6f 72 20 |imp_colour> for | 000c0ba0 65 61 73 65 20 6f 66 20 75 73 65 2e 44 41 54 41 |ease of use.DATA| 000c0bb0 b9 00 00 00 77 69 6d 70 5f 73 65 74 63 6f 6c 6f |....wimp_setcolo| 000c0bc0 75 72 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |ur.Syntax:.<os_e| 000c0bd0 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 73 65 74 63 |rror> *wimp_setc| 000c0be0 6f 6c 6f 75 72 20 28 69 6e 74 20 63 6f 6c 29 3b |olour (int col);| 000c0bf0 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 |.Header:.<wimp.h| 000c0c00 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 |=>wimp_h>..Retur| 000c0c10 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000c0c20 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000c0c30 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000c0c40 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 65 |unction sets the| 000c0c50 20 63 75 72 72 65 6e 74 20 57 69 6d 70 20 63 6f | current Wimp co| 000c0c60 6c 6f 75 72 2e 00 00 00 44 41 54 41 19 01 00 00 |lour....DATA....| 000c0c70 57 69 6d 70 5f 53 65 74 45 78 74 65 6e 74 0a 53 |Wimp_SetExtent.S| 000c0c80 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000c0c90 3e 20 2a 57 69 6d 70 5f 53 65 74 45 78 74 65 6e |> *Wimp_SetExten| 000c0ca0 74 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |t (<window_handl| 000c0cb0 65 3e 20 77 69 6e 64 6f 77 2c 20 3c 77 69 6d 70 |e> window, <wimp| 000c0cc0 5f 62 6f 78 3e 20 2a 65 78 74 29 3b 0a 48 65 61 |_box> *ext);.Hea| 000c0cd0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 |der:.<DeskLib:Wi| 000c0ce0 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000c0cf0 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |Is>..Returns:.Po| 000c0d00 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000c0d10 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000c0d20 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000c0d30 6e 20 73 65 74 73 20 74 68 65 20 77 6f 72 6b 20 |n sets the work | 000c0d40 61 72 65 61 20 65 78 74 65 6e 74 20 6f 66 20 74 |area extent of t| 000c0d50 68 65 20 73 70 65 63 69 66 69 65 64 20 77 69 6e |he specified win| 000c0d60 64 6f 77 20 74 6f 20 62 65 20 74 68 65 20 62 6f |dow to be the bo| 000c0d70 78 20 67 69 76 65 6e 20 69 6e 20 2f 65 78 74 2f |x given in /ext/| 000c0d80 2e 00 00 00 44 41 54 41 99 01 00 00 57 69 6d 70 |....DATA....Wimp| 000c0d90 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 0a |_SetFontColours.| 000c0da0 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f |Syntax:.<os_erro| 000c0db0 72 3e 20 2a 57 69 6d 70 5f 53 65 74 46 6f 6e 74 |r> *Wimp_SetFont| 000c0dc0 43 6f 6c 6f 75 72 73 20 28 69 6e 74 20 66 6f 72 |Colours (int for| 000c0dd0 65 67 72 6f 75 6e 64 2c 20 69 6e 74 20 62 61 63 |eground, int bac| 000c0de0 6b 67 72 6f 75 6e 64 29 3b 0a 48 65 61 64 65 72 |kground);.Header| 000c0df0 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 |:.<DeskLib:WimpS| 000c0e00 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e |WIs.h=>WimpSWIs>| 000c0e10 0a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |..<wimp.h=>wimp_| 000c0e20 68 3e 20 28 44 65 73 6b 74 6f 70 20 43 29 0a 0a |h> (Desktop C)..| 000c0e30 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000c0e40 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000c0e50 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 43 |ULL> if none...C| 000c0e60 61 6c 6c 65 64 20 7b 2a 7d 77 69 6d 70 5f 73 65 |alled {*}wimp_se| 000c0e70 74 66 6f 6e 74 63 6f 6c 6f 75 72 73 7b 2a 7d 20 |tfontcolours{*} | 000c0e80 69 6e 20 44 65 73 6b 74 6f 70 20 43 2e 0a 0a 54 |in Desktop C...T| 000c0e90 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 000c0ea0 73 20 74 68 65 20 61 6e 74 69 2d 61 6c 69 61 73 |s the anti-alias| 000c0eb0 65 64 20 66 6f 6e 74 20 63 6f 6c 6f 75 72 73 20 |ed font colours | 000c0ec0 66 72 6f 6d 20 74 68 65 20 74 77 6f 20 57 69 6d |from the two Wim| 000c0ed0 70 20 63 6f 6c 6f 75 72 73 20 67 69 76 65 6e 2e |p colours given.| 000c0ee0 20 54 68 65 20 63 6f 6c 6f 75 72 73 20 77 69 6c | The colours wil| 000c0ef0 6c 20 6e 6f 74 20 62 65 20 70 72 65 73 65 72 76 |l not be preserv| 000c0f00 65 64 20 6f 76 65 72 20 63 61 6c 6c 73 20 74 6f |ed over calls to| 000c0f10 20 3c 57 69 6d 70 5f 50 6f 6c 6c 3e 2e 00 00 00 | <Wimp_Poll>....| 000c0f20 44 41 54 41 60 01 00 00 57 69 6d 70 5f 53 65 74 |DATA`...Wimp_Set| 000c0f30 49 63 6f 6e 53 74 61 74 65 0a 53 79 6e 74 61 78 |IconState.Syntax| 000c0f40 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000c0f50 6d 70 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 20 |mp_SetIconState | 000c0f60 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |(<window_handle>| 000c0f70 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 61 6e 64 | win, <icon_hand| 000c0f80 6c 65 3e 20 69 63 6f 6e 2c 20 69 6e 74 20 76 61 |le> icon, int va| 000c0f90 6c 75 65 2c 20 69 6e 74 20 6d 61 73 6b 29 3b 0a |lue, int mask);.| 000c0fa0 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000c0fb0 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d |:WimpSWIs.h=>Wim| 000c0fc0 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a |pSWIs>..Returns:| 000c0fd0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000c0fe0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000c0ff0 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |none...This func| 000c1000 74 69 6f 6e 20 73 65 74 73 20 74 68 65 20 67 69 |tion sets the gi| 000c1010 76 65 6e 20 69 63 6f 6e 20 73 74 61 74 65 20 28 |ven icon state (| 000c1020 69 65 20 69 74 73 20 66 6c 61 67 73 29 20 61 73 |ie its flags) as| 000c1030 20 66 6f 6c 6c 6f 77 73 3a 0a 7b 77 72 61 70 20 | follows:.{wrap | 000c1040 6f 66 66 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |off;align centre| 000c1050 7d 0a 6e 65 77 2d 73 74 61 74 65 20 3d 20 28 6f |}.new-state = (o| 000c1060 6c 64 2d 73 74 61 74 65 20 41 4e 44 20 4e 4f 54 |ld-state AND NOT| 000c1070 20 6d 61 73 6b 29 20 45 4f 52 20 76 61 6c 75 65 | mask) EOR value| 000c1080 44 41 54 41 63 01 00 00 57 69 6d 70 5f 53 65 74 |DATAc...Wimp_Set| 000c1090 4d 6f 64 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |Mode.Syntax:.<os| 000c10a0 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 53 65 |_error> *Wimp_Se| 000c10b0 74 4d 6f 64 65 20 28 69 6e 74 20 3c 6d 6f 64 65 |tMode (int <mode| 000c10c0 3d 3e 56 44 55 2e 32 32 61 3e 29 3b 0a 48 65 61 |=>VDU.22a>);.Hea| 000c10d0 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 |der:.<DeskLib:Wi| 000c10e0 6d 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 |mpSWIs.h=>WimpSW| 000c10f0 49 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |Is>..Returns:.Po| 000c1100 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000c1110 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000c1120 65 2e 0a 0a 44 65 73 6b 74 6f 70 20 43 3a 20 53 |e...Desktop C: S| 000c1130 65 65 20 3c 77 69 6d 70 5f 73 65 74 6d 6f 64 65 |ee <wimp_setmode| 000c1140 3d 3e 77 69 6d 70 5f 73 65 74 6d 6f 64 65 5f 3e |=>wimp_setmode_>| 000c1150 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000c1160 63 68 61 6e 67 65 73 20 74 68 65 20 64 69 73 70 |changes the disp| 000c1170 6c 61 79 20 6d 6f 64 65 20 75 73 65 64 20 62 79 |lay mode used by| 000c1180 20 74 68 65 20 57 69 6d 70 2e 20 49 74 20 73 68 | the Wimp. It sh| 000c1190 6f 75 6c 64 20 6e 6f 74 20 62 65 20 75 73 65 64 |ould not be used| 000c11a0 20 75 6e 64 65 72 20 6e 6f 72 6d 61 6c 20 63 69 | under normal ci| 000c11b0 72 63 75 6d 73 74 61 6e 63 65 73 20 61 73 20 79 |rcumstances as y| 000c11c0 6f 75 72 20 70 72 6f 67 72 61 6d 20 73 68 6f 75 |our program shou| 000c11d0 6c 64 20 72 75 6e 20 69 6e 20 61 6e 79 20 6d 6f |ld run in any mo| 000c11e0 64 65 2e 00 44 41 54 41 ae 00 00 00 77 69 6d 70 |de..DATA....wimp| 000c11f0 5f 73 65 74 6d 6f 64 65 0a 53 79 6e 74 61 78 3a |_setmode.Syntax:| 000c1200 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d |.<os_error> *wim| 000c1210 70 5f 73 65 74 6d 6f 64 65 20 28 69 6e 74 20 6d |p_setmode (int m| 000c1220 6f 64 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 |ode);.Header:.<w| 000c1230 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a |imp.h=>wimp_h>..| 000c1240 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000c1250 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000c1260 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000c1270 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 |his function set| 000c1280 73 20 74 68 65 20 73 63 72 65 65 6e 20 6d 6f 64 |s the screen mod| 000c1290 65 2e 00 00 44 41 54 41 76 01 00 00 57 69 6d 70 |e...DATAv...Wimp| 000c12a0 5f 53 65 74 50 61 6c 65 74 74 65 0a 53 79 6e 74 |_SetPalette.Synt| 000c12b0 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000c12c0 57 69 6d 70 5f 53 65 74 50 61 6c 65 74 74 65 20 |Wimp_SetPalette | 000c12d0 28 3c 70 61 6c 65 74 74 65 5f 62 6c 6f 63 6b 3e |(<palette_block>| 000c12e0 20 2a 70 61 6c 65 74 74 65 29 3b 0a 48 65 61 64 | *palette);.Head| 000c12f0 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d |er:.<DeskLib:Wim| 000c1300 70 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 |pSWIs.h=>WimpSWI| 000c1310 73 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |s>..Returns:.Poi| 000c1320 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000c1330 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000c1340 2e 0a 0a 44 65 73 6b 74 6f 70 20 43 3a 20 53 65 |...Desktop C: Se| 000c1350 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c |e the function <| 000c1360 77 69 6d 70 5f 73 65 74 70 61 6c 65 74 74 65 3d |wimp_setpalette=| 000c1370 3e 77 69 6d 70 5f 73 65 74 70 61 6c 65 74 74 65 |>wimp_setpalette| 000c1380 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |_>...This functi| 000c1390 6f 6e 20 73 65 74 73 20 74 68 65 20 77 68 6f 6c |on sets the whol| 000c13a0 65 20 70 61 6c 65 74 74 65 20 66 72 6f 6d 20 74 |e palette from t| 000c13b0 68 65 20 62 6c 6f 63 6b 20 70 6f 69 6e 74 65 64 |he block pointed| 000c13c0 20 74 6f 20 62 79 20 2f 70 61 6c 65 74 74 65 2f | to by /palette/| 000c13d0 2e 20 49 6e 20 6e 6f 6e 2d 31 36 20 63 6f 6c 6f |. In non-16 colo| 000c13e0 75 72 20 6d 6f 64 65 73 2c 20 79 6f 75 20 6d 75 |ur modes, you mu| 000c13f0 73 74 20 61 6c 73 6f 20 72 65 64 72 61 77 20 74 |st also redraw t| 000c1400 68 65 20 73 63 72 65 65 6e 2e 00 00 44 41 54 41 |he screen...DATA| 000c1410 d4 00 00 00 77 69 6d 70 5f 73 65 74 70 61 6c 65 |....wimp_setpale| 000c1420 74 74 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f |tte.Syntax:.<os_| 000c1430 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 73 65 74 |error> *wimp_set| 000c1440 70 61 6c 65 74 74 65 20 28 3c 77 69 6d 70 5f 70 |palette (<wimp_p| 000c1450 61 6c 65 74 74 65 73 74 72 3e 20 2a 70 61 6c 29 |alettestr> *pal)| 000c1460 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e |;.Header:.<wimp.| 000c1470 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 |h=>wimp_h>..Retu| 000c1480 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 |rns:.Pointer to | 000c1490 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e |error, or <NULL>| 000c14a0 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 | if none...This | 000c14b0 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 68 |function sets th| 000c14c0 65 20 63 75 72 72 65 6e 74 20 57 69 6d 70 20 70 |e current Wimp p| 000c14d0 61 6c 65 74 74 65 20 74 6f 20 2f 70 61 6c 2f 2e |alette to /pal/.| 000c14e0 44 41 54 41 43 01 00 00 57 69 6d 70 5f 53 65 74 |DATAC...Wimp_Set| 000c14f0 50 6f 69 6e 74 65 72 53 68 61 70 65 0a 53 79 6e |PointerShape.Syn| 000c1500 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 |tax:.<os_error> | 000c1510 2a 57 69 6d 70 5f 53 65 74 50 6f 69 6e 74 65 72 |*Wimp_SetPointer| 000c1520 53 68 61 70 65 20 28 3c 70 6f 69 6e 74 65 72 5f |Shape (<pointer_| 000c1530 73 68 61 70 65 62 6c 6f 63 6b 3e 20 2a 73 68 61 |shapeblock> *sha| 000c1540 70 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |pe);.Header:.<De| 000c1550 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 |skLib:WimpSWIs.h| 000c1560 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 |=>WimpSWIs>..Ret| 000c1570 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000c1580 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000c1590 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 000c15a0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 74 | function sets t| 000c15b0 68 65 20 73 68 61 70 65 20 61 6e 64 20 61 63 74 |he shape and act| 000c15c0 69 76 65 20 70 6f 69 6e 74 20 6f 66 20 74 68 65 |ive point of the| 000c15d0 20 70 6f 69 6e 74 65 72 2e 20 59 6f 75 20 73 68 | pointer. You sh| 000c15e0 6f 75 6c 64 20 75 73 65 20 3c 57 69 6d 70 5f 53 |ould use <Wimp_S| 000c15f0 70 72 69 74 65 4f 70 3e 20 77 69 74 68 20 52 30 |priteOp> with R0| 000c1600 3d 33 36 20 69 6e 20 70 72 65 66 65 72 65 6e 63 |=36 in preferenc| 000c1610 65 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 |e to this functi| 000c1620 6f 6e 2e 00 44 41 54 41 58 02 00 00 57 69 6d 70 |on..DATAX...Wimp| 000c1630 5f 53 6c 6f 74 53 69 7a 65 0a 53 79 6e 74 61 78 |_SlotSize.Syntax| 000c1640 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 |:.<os_error> *Wi| 000c1650 6d 70 5f 53 6c 6f 74 53 69 7a 65 20 28 69 6e 74 |mp_SlotSize (int| 000c1660 20 2a 63 75 72 72 65 6e 74 2c 20 69 6e 74 20 2a | *current, int *| 000c1670 6e 65 78 74 2c 20 69 6e 74 20 2a 66 72 65 65 29 |next, int *free)| 000c1680 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000c1690 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e 57 |ib:WimpSWIs.h=>W| 000c16a0 69 6d 70 53 57 49 73 3e 0a 09 3c 77 69 6d 70 2e |impSWIs>..<wimp.| 000c16b0 68 3d 3e 77 69 6d 70 5f 68 3e 20 28 44 65 73 6b |h=>wimp_h> (Desk| 000c16c0 74 6f 70 20 43 29 0a 0a 52 65 74 75 72 6e 73 3a |top C)..Returns:| 000c16d0 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f |.Pointer to erro| 000c16e0 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 |r, or <NULL> if | 000c16f0 6e 6f 6e 65 2e 0a 0a 43 61 6c 6c 65 64 20 7b 2a |none...Called {*| 000c1700 7d 77 69 6d 70 5f 73 6c 6f 74 73 69 7a 65 7b 2a |}wimp_slotsize{*| 000c1710 7d 20 69 6e 20 44 65 73 6b 74 6f 70 20 43 2e 0a |} in Desktop C..| 000c1720 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 000c1730 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 |an be used to re| 000c1740 61 64 20 6f 72 20 73 65 74 20 74 68 65 20 73 69 |ad or set the si| 000c1750 7a 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e |ze of the curren| 000c1760 74 20 73 6c 6f 74 20 28 69 65 20 79 6f 75 72 20 |t slot (ie your | 000c1770 70 72 6f 67 72 61 6d 27 73 20 73 6c 6f 74 20 73 |program's slot s| 000c1780 69 7a 65 29 20 61 6e 64 20 74 68 65 20 6e 65 78 |ize) and the nex| 000c1790 74 20 73 6c 6f 74 20 28 74 68 65 20 64 65 66 61 |t slot (the defa| 000c17a0 75 6c 74 20 73 6c 6f 74 20 73 69 7a 65 29 2e 20 |ult slot size). | 000c17b0 54 6f 20 61 6c 74 65 72 20 6f 6e 65 20 6f 66 20 |To alter one of | 000c17c0 74 68 65 20 76 61 6c 75 65 73 2c 20 70 6c 61 63 |the values, plac| 000c17d0 65 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 20 |e the new value | 000c17e0 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 76 61 |in one of the va| 000c17f0 72 69 61 62 6c 65 73 20 77 68 6f 73 65 20 70 6f |riables whose po| 000c1800 69 6e 74 65 72 20 69 73 20 67 69 76 65 6e 20 28 |inter is given (| 000c1810 79 6f 75 20 63 61 6e 6e 6f 74 20 61 6c 74 65 72 |you cannot alter| 000c1820 20 74 68 65 20 66 72 65 65 20 73 70 61 63 65 29 | the free space)| 000c1830 2e 20 54 6f 20 6a 75 73 74 20 72 65 61 64 20 69 |. To just read i| 000c1840 74 2c 20 75 73 65 20 2d 31 20 69 6e 73 74 65 61 |t, use -1 instea| 000c1850 64 2e 20 4f 6e 20 65 78 69 74 2c 20 74 68 65 20 |d. On exit, the | 000c1860 6e 65 77 20 76 61 6c 75 65 73 20 77 69 6c 6c 20 |new values will | 000c1870 62 65 20 72 65 74 75 72 6e 65 64 2e 44 41 54 41 |be returned.DATA| 000c1880 d2 00 00 00 77 69 6d 70 5f 73 70 72 69 74 65 61 |....wimp_spritea| 000c1890 72 65 61 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 |rea.This macro i| 000c18a0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 70 6f |s defined in <po| 000c18b0 69 6e 74 65 72 2e 68 3d 3e 70 6f 69 6e 74 65 72 |inter.h=>pointer| 000c18c0 3e 2c 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 |>, for use with | 000c18d0 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 70 6f |the function <po| 000c18e0 69 6e 74 65 72 5f 73 65 74 5f 73 68 61 70 65 3e |inter_set_shape>| 000c18f0 2c 20 74 6f 20 73 65 6c 65 63 74 20 74 68 65 20 |, to select the | 000c1900 57 69 6d 70 20 73 70 72 69 74 65 20 61 72 65 61 |Wimp sprite area| 000c1910 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 000c1920 61 73 3a 0a 7b 66 43 6f 64 65 3b 61 6c 69 67 6e |as:.{fCode;align| 000c1930 20 63 65 6e 74 72 65 7d 28 28 3c 73 70 72 69 74 | centre}((<sprit| 000c1940 65 5f 61 72 65 61 3e 20 2a 29 20 2d 31 29 00 00 |e_area> *) -1)..| 000c1950 44 41 54 41 38 02 00 00 57 69 6d 70 5f 53 70 72 |DATA8...Wimp_Spr| 000c1960 69 74 65 4f 70 0a 53 79 6e 74 61 78 3a 09 3c 6f |iteOp.Syntax:.<o| 000c1970 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 53 |s_error> *Wimp_S| 000c1980 70 72 69 74 65 4f 70 20 28 3c 5f 6b 65 72 6e 65 |priteOp (<_kerne| 000c1990 6c 5f 73 77 69 5f 72 65 67 73 3e 20 2a 72 65 67 |l_swi_regs> *reg| 000c19a0 69 73 74 65 72 73 29 3b 0a 48 65 61 64 65 72 3a |isters);.Header:| 000c19b0 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 53 57 |.<DeskLib:WimpSW| 000c19c0 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 3e 0a |Is.h=>WimpSWIs>.| 000c19d0 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 |.Returns:.Pointe| 000c19e0 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c |r to error, or <| 000c19f0 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a |NULL> if none...| 000c1a00 44 65 73 6b 74 6f 70 20 43 3a 20 53 65 65 20 61 |Desktop C: See a| 000c1a10 6c 73 6f 20 3c 77 69 6d 70 5f 73 70 72 69 74 65 |lso <wimp_sprite| 000c1a20 6f 70 3d 3e 77 69 6d 70 5f 73 70 72 69 74 65 6f |op=>wimp_spriteo| 000c1a30 70 5f 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |p_>..This functi| 000c1a40 6f 6e 20 61 6c 6c 6f 77 73 20 6f 70 65 72 61 74 |on allows operat| 000c1a50 69 6f 6e 73 20 6f 6e 20 57 69 6d 70 20 73 70 72 |ions on Wimp spr| 000c1a60 69 74 65 73 20 77 69 74 68 6f 75 74 20 68 61 76 |ites without hav| 000c1a70 69 6e 67 20 74 6f 20 73 70 65 63 69 66 79 20 74 |ing to specify t| 000c1a80 68 65 20 73 70 72 69 74 65 20 61 72 65 61 20 70 |he sprite area p| 000c1a90 6f 69 6e 74 65 72 2e 20 7b 2f 7d 72 65 67 69 73 |ointer. {/}regis| 000c1aa0 74 65 72 73 2e 72 5b 30 5d 7b 2f 7d 20 63 6f 6e |ters.r[0]{/} con| 000c1ab0 74 61 69 6e 73 20 74 68 65 20 72 65 61 73 6f 6e |tains the reason| 000c1ac0 20 63 6f 64 65 2c 20 7b 2f 7d 72 5b 32 5d 7b 2f | code, {/}r[2]{/| 000c1ad0 7d 20 63 6f 6e 74 61 69 6e 73 20 61 20 70 6f 69 |} contains a poi| 000c1ae0 6e 74 65 72 20 74 6f 20 74 68 65 20 73 70 72 69 |nter to the spri| 000c1af0 74 65 20 6e 61 6d 65 2c 20 61 6e 64 20 7b 2f 7d |te name, and {/}| 000c1b00 72 5b 33 5d 7b 2f 7d 20 6f 6e 77 61 72 64 73 20 |r[3]{/} onwards | 000c1b10 63 6f 6e 74 61 69 6e 20 74 68 65 20 70 61 72 61 |contain the para| 000c1b20 6d 65 74 65 72 73 2e 20 4f 6e 6c 79 20 72 65 61 |meters. Only rea| 000c1b30 64 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 72 65 |d operations are| 000c1b40 20 61 6c 6c 6f 77 65 64 2e 0a 0a 54 68 69 73 20 | allowed...This | 000c1b50 63 61 6c 6c 20 69 73 20 62 61 73 65 64 20 6f 6e |call is based on| 000c1b60 20 74 68 65 20 53 57 49 20 3c 4f 53 5f 53 70 72 | the SWI <OS_Spr| 000c1b70 69 74 65 4f 70 3d 3e 53 57 49 3a 4f 53 5f 53 70 |iteOp=>SWI:OS_Sp| 000c1b80 72 69 74 65 4f 70 3e 2e 44 41 54 41 da 00 00 00 |riteOp>.DATA....| 000c1b90 77 69 6d 70 5f 73 70 72 69 74 65 6f 70 0a 53 79 |wimp_spriteop.Sy| 000c1ba0 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e |ntax:.<os_error>| 000c1bb0 20 2a 77 69 6d 70 5f 73 70 72 69 74 65 6f 70 20 | *wimp_spriteop | 000c1bc0 28 69 6e 74 20 72 65 61 73 6f 6e 2c 20 63 68 61 |(int reason, cha| 000c1bd0 72 20 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 72 |r *name);.Header| 000c1be0 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000c1bf0 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000c1c00 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000c1c10 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000c1c20 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000c1c30 20 63 61 6c 6c 73 20 74 68 65 20 53 57 49 20 3c | calls the SWI <| 000c1c40 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 3d 3e 53 |Wimp_SpriteOp=>S| 000c1c50 57 49 3a 57 69 6d 70 5f 53 70 72 69 74 65 4f 70 |WI:Wimp_SpriteOp| 000c1c60 3e 2e 00 00 44 41 54 41 da 00 00 00 77 69 6d 70 |>...DATA....wimp| 000c1c70 5f 73 70 72 69 74 65 6f 70 5f 66 75 6c 6c 0a 53 |_spriteop_full.S| 000c1c80 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000c1c90 3e 20 2a 77 69 6d 70 5f 73 70 72 69 74 65 6f 70 |> *wimp_spriteop| 000c1ca0 5f 66 75 6c 6c 20 28 6f 73 5f 72 65 67 73 65 74 |_full (os_regset| 000c1cb0 20 2a 72 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 | *r);.Header:.<w| 000c1cc0 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a |imp.h=>wimp_h>..| 000c1cd0 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 |Returns:.Pointer| 000c1ce0 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e | to error, or <N| 000c1cf0 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 |ULL> if none...T| 000c1d00 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c |his function cal| 000c1d10 6c 73 20 74 68 65 20 53 57 49 20 3c 57 69 6d 70 |ls the SWI <Wimp| 000c1d20 5f 53 70 72 69 74 65 4f 70 3d 3e 53 57 49 3a 57 |_SpriteOp=>SWI:W| 000c1d30 69 6d 70 5f 53 70 72 69 74 65 4f 70 3e 2e 00 00 |imp_SpriteOp>...| 000c1d40 44 41 54 41 bf 01 00 00 57 69 6d 70 5f 53 74 61 |DATA....Wimp_Sta| 000c1d50 72 74 54 61 73 6b 0a 53 79 6e 74 61 78 3a 09 3c |rtTask.Syntax:.<| 000c1d60 6f 73 5f 65 72 72 6f 72 3e 20 2a 57 69 6d 70 5f |os_error> *Wimp_| 000c1d70 53 74 61 72 74 54 61 73 6b 20 28 63 68 61 72 20 |StartTask (char | 000c1d80 2a 63 6f 6d 6d 61 6e 64 29 3b 0a 48 65 61 64 65 |*command);.Heade| 000c1d90 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |r:.<DeskLib:Wimp| 000c1da0 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 |SWIs.h=>WimpSWIs| 000c1db0 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000c1dc0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000c1dd0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000c1de0 0a 0a 44 65 73 6b 74 6f 70 20 43 3a 20 73 65 65 |..Desktop C: see| 000c1df0 20 3c 77 69 6d 70 5f 73 74 61 72 74 74 61 73 6b | <wimp_starttask| 000c1e00 3d 3e 77 69 6d 70 5f 73 74 61 72 74 74 61 73 6b |=>wimp_starttask| 000c1e10 5f 3e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |_>...This functi| 000c1e20 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20 73 74 |on is used to st| 000c1e30 61 72 74 20 61 20 74 61 73 6b 20 66 72 6f 6d 20 |art a task from | 000c1e40 77 69 74 68 69 6e 20 61 20 70 72 6f 67 72 61 6d |within a program| 000c1e50 2e 20 54 68 65 20 74 65 78 74 20 69 6e 20 2f 63 |. The text in /c| 000c1e60 6f 6d 6d 61 6e 64 2f 20 63 61 6e 20 62 65 20 61 |ommand/ can be a| 000c1e70 6e 79 20 2a 20 43 6f 6d 6d 61 6e 64 20 77 68 69 |ny * Command whi| 000c1e80 63 68 20 77 69 6c 6c 20 63 61 75 73 65 20 61 20 |ch will cause a | 000c1e90 57 69 6d 70 20 70 72 6f 67 72 61 6d 20 74 6f 20 |Wimp program to | 000c1ea0 62 65 20 65 78 65 63 75 74 65 64 2e 20 43 6f 6e |be executed. Con| 000c1eb0 74 72 6f 6c 20 77 69 6c 6c 20 72 65 74 75 72 6e |trol will return| 000c1ec0 20 74 6f 20 79 6f 75 72 20 70 72 6f 67 72 61 6d | to your program| 000c1ed0 20 77 68 65 6e 20 74 68 65 20 6e 65 77 20 74 61 | when the new ta| 000c1ee0 73 6b 20 65 78 69 74 73 2c 20 6f 72 20 63 61 6c |sk exits, or cal| 000c1ef0 6c 73 20 3c 57 69 6d 70 5f 50 6f 6c 6c 3e 2e 00 |ls <Wimp_Poll>..| 000c1f00 44 41 54 41 d1 00 00 00 77 69 6d 70 5f 73 74 61 |DATA....wimp_sta| 000c1f10 72 74 74 61 73 6b 0a 53 79 6e 74 61 78 3a 09 3c |rttask.Syntax:.<| 000c1f20 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f |os_error> *wimp_| 000c1f30 73 74 61 72 74 74 61 73 6b 20 28 63 68 61 72 20 |starttask (char | 000c1f40 2a 63 6f 6d 6d 61 6e 64 29 3b 0a 48 65 61 64 65 |*command);.Heade| 000c1f50 72 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 |r:.<wimp.h=>wimp| 000c1f60 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f |_h>..Returns:.Po| 000c1f70 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 |inter to error, | 000c1f80 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e |or <NULL> if non| 000c1f90 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000c1fa0 6e 20 65 78 65 63 75 74 65 73 20 74 68 65 20 67 |n executes the g| 000c1fb0 69 76 65 6e 20 73 74 61 72 20 63 6f 6d 6d 61 6e |iven star comman| 000c1fc0 64 20 61 73 20 61 20 57 69 6d 70 20 74 61 73 6b |d as a Wimp task| 000c1fd0 2e 00 00 00 44 41 54 41 8f 00 00 00 77 69 6d 70 |....DATA....wimp| 000c1fe0 5f 74 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |_t.This type is | 000c1ff0 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 |defined in <wimp| 000c2000 2e 68 3d 3e 77 69 6d 70 5f 68 3e 20 61 73 20 61 |.h=>wimp_h> as a| 000c2010 20 74 79 70 65 0a 63 61 70 61 62 6c 65 20 6f 66 | type.capable of| 000c2020 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 69 | containing a Wi| 000c2030 6d 70 20 74 61 73 6b 20 68 61 6e 64 6c 65 2e 20 |mp task handle. | 000c2040 49 74 20 69 73 0a 61 63 74 75 61 6c 6c 79 20 64 |It is.actually d| 000c2050 65 66 69 6e 65 64 20 61 73 20 61 6e 20 27 69 6e |efined as an 'in| 000c2060 74 27 2e 00 44 41 54 41 dd 00 00 00 77 69 6d 70 |t'..DATA....wimp| 000c2070 5f 74 61 73 6b 63 6c 6f 73 65 0a 53 79 6e 74 61 |_taskclose.Synta| 000c2080 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 |x:.<os_error> *w| 000c2090 69 6d 70 5f 74 61 73 6b 63 6c 6f 73 65 20 28 77 |imp_taskclose (w| 000c20a0 69 6d 70 5f 74 20 74 29 3b 0a 48 65 61 64 65 72 |imp_t t);.Header| 000c20b0 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000c20c0 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000c20d0 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000c20e0 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000c20f0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000c2100 20 64 65 72 65 67 69 73 74 65 72 73 20 79 6f 75 | deregisters you| 000c2110 72 20 70 72 6f 67 72 61 6d 20 77 69 74 68 20 74 |r program with t| 000c2120 68 65 20 57 69 6d 70 2e 20 2f 74 2f 20 69 73 20 |he Wimp. /t/ is | 000c2130 79 6f 75 72 20 74 61 73 6b 20 68 61 6e 64 6c 65 |your task handle| 000c2140 2e 00 00 00 44 41 54 41 a3 01 00 00 77 69 6d 70 |....DATA....wimp| 000c2150 5f 74 61 73 6b 69 6e 69 74 0a 53 79 6e 74 61 78 |_taskinit.Syntax| 000c2160 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 69 |:.<os_error> *wi| 000c2170 6d 70 5f 74 61 73 6b 69 6e 69 74 20 28 63 68 61 |mp_taskinit (cha| 000c2180 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 2a 76 65 |r *name, int *ve| 000c2190 72 73 69 6f 6e 2c 20 77 69 6d 70 5f 74 20 2a 74 |rsion, wimp_t *t| 000c21a0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 |);.Header:.<wimp| 000c21b0 2e 68 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 |.h=>wimp_h>..Ret| 000c21c0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000c21d0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000c21e0 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 |> if none...This| 000c21f0 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 67 69 73 | functions regis| 000c2200 74 65 72 73 20 79 6f 75 72 20 61 70 70 6c 69 63 |ters your applic| 000c2210 61 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 57 |ation with the W| 000c2220 69 6d 70 2e 20 2f 6e 61 6d 65 2f 20 69 73 20 74 |imp. /name/ is t| 000c2230 68 65 20 6e 61 6d 65 20 6f 66 20 79 6f 75 72 20 |he name of your | 000c2240 70 72 6f 67 72 61 6d 2c 20 7b 2f 7d 2a 76 65 72 |program, {/}*ver| 000c2250 73 69 6f 6e 7b 2f 7d 20 69 73 20 74 68 65 20 57 |sion{/} is the W| 000c2260 69 6d 70 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 |imp version numb| 000c2270 65 72 20 28 2a 20 31 30 30 29 20 79 6f 75 20 65 |er (* 100) you e| 000c2280 78 70 65 63 74 2e 20 4f 6e 20 65 78 69 74 2c 20 |xpect. On exit, | 000c2290 7b 2f 7d 2a 76 65 72 73 69 6f 6e 7b 2f 7d 20 63 |{/}*version{/} c| 000c22a0 6f 6e 74 61 69 6e 73 20 74 68 65 20 61 63 74 75 |ontains the actu| 000c22b0 61 6c 20 57 69 6d 70 20 76 65 72 73 69 6f 6e 20 |al Wimp version | 000c22c0 61 6e 64 20 7b 2f 7d 2a 74 7b 2f 7d 20 63 6f 6e |and {/}*t{/} con| 000c22d0 74 61 69 6e 73 20 79 6f 75 72 20 74 61 73 6b 20 |tains your task | 000c22e0 68 61 6e 64 6c 65 2e 00 44 41 54 41 0c 01 00 00 |handle..DATA....| 000c22f0 77 69 6d 70 5f 74 65 6d 70 6c 61 74 65 0a 54 68 |wimp_template.Th| 000c2300 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000c2310 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 |ed in <wimp.h=>w| 000c2320 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 |imp_h>. It is a | 000c2330 73 74 72 75 63 74 75 72 65 20 75 73 65 64 20 74 |structure used t| 000c2340 6f 20 68 6f 6c 64 20 74 65 6d 70 6c 61 74 65 20 |o hold template | 000c2350 64 61 74 61 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 |data:.. \{. | 000c2360 69 6e 74 09 09 09 72 65 73 65 72 76 65 64 3b 0a |int...reserved;.| 000c2370 20 20 20 20 3c 77 69 6d 70 5f 77 69 6e 64 3e 09 | <wimp_wind>.| 000c2380 09 2a 62 75 66 3b 0a 20 20 20 20 63 68 61 72 09 |.*buf;. char.| 000c2390 09 2a 77 6f 72 6b 5f 66 72 65 65 3b 0a 20 20 20 |.*work_free;. | 000c23a0 20 63 68 61 72 09 09 2a 77 6f 72 6b 5f 65 6e 64 | char..*work_end| 000c23b0 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 66 6f 6e 74 |;. <wimp_font| 000c23c0 5f 61 72 72 61 79 3e 09 2a 66 6f 6e 74 3b 0a 20 |_array>.*font;. | 000c23d0 20 20 20 63 68 61 72 09 09 2a 6e 61 6d 65 3b 0a | char..*name;.| 000c23e0 20 20 20 20 69 6e 74 09 09 09 69 6e 64 65 78 3b | int...index;| 000c23f0 0a 20 20 7d 44 41 54 41 39 02 00 00 57 69 6d 70 |. }DATA9...Wimp| 000c2400 5f 54 72 61 6e 73 66 65 72 42 6c 6f 63 6b 0a 53 |_TransferBlock.S| 000c2410 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 |yntax:.<os_error| 000c2420 3e 20 2a 57 69 6d 70 5f 54 72 61 6e 73 66 65 72 |> *Wimp_Transfer| 000c2430 42 6c 6f 63 6b 20 28 3c 74 61 73 6b 5f 68 61 6e |Block (<task_han| 000c2440 64 6c 65 20 3e 73 6f 75 72 63 65 2c 20 76 6f 69 |dle >source, voi| 000c2450 64 20 2a 73 6f 75 72 63 65 62 75 66 2c 20 74 61 |d *sourcebuf, ta| 000c2460 73 6b 5f 68 61 6e 64 6c 65 20 64 65 73 74 2c 20 |sk_handle dest, | 000c2470 76 6f 69 64 20 2a 64 65 73 74 62 75 66 2c 20 75 |void *destbuf, u| 000c2480 6e 73 69 67 6e 65 64 20 69 6e 74 20 6c 65 6e 67 |nsigned int leng| 000c2490 74 68 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 |th);.Header:.<De| 000c24a0 73 6b 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 |skLib:WimpSWIs.h| 000c24b0 3d 3e 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 |=>WimpSWIs>..Ret| 000c24c0 75 72 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f |urns:.Pointer to| 000c24d0 20 65 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c | error, or <NULL| 000c24e0 3e 20 69 66 20 6e 6f 6e 65 2e 0a 0a 44 65 73 6b |> if none...Desk| 000c24f0 74 6f 70 20 43 3a 20 53 65 65 20 74 68 65 20 66 |top C: See the f| 000c2500 75 6e 63 74 69 6f 6e 20 3c 77 69 6d 70 5f 74 72 |unction <wimp_tr| 000c2510 61 6e 73 66 65 72 62 6c 6f 63 6b 3d 3e 77 69 6d |ansferblock=>wim| 000c2520 70 5f 74 72 61 6e 73 66 65 72 62 6c 6f 63 6b 5f |p_transferblock_| 000c2530 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |>..This function| 000c2540 20 63 6f 70 69 65 73 20 61 20 62 6c 6f 63 6b 20 | copies a block | 000c2550 6f 66 20 6d 65 6d 6f 72 79 20 66 72 6f 6d 20 74 |of memory from t| 000c2560 68 65 20 73 6f 75 72 63 65 20 74 61 73 6b 27 73 |he source task's| 000c2570 20 61 64 64 72 65 73 73 20 73 70 61 63 65 20 28 | address space (| 000c2580 7b 2f 7d 73 6f 75 72 63 65 62 75 66 7b 2f 7d 29 |{/}sourcebuf{/})| 000c2590 20 74 6f 20 74 68 65 20 64 65 73 69 6e 61 74 69 | to the desinati| 000c25a0 6f 6e 20 74 61 73 6b 20 28 7b 2f 7d 64 65 73 74 |on task ({/}dest| 000c25b0 62 75 66 7b 2f 7d 29 2e 20 54 68 65 20 74 61 73 |buf{/}). The tas| 000c25c0 6b 20 68 61 6e 64 6c 65 73 20 61 72 65 20 67 69 |k handles are gi| 000c25d0 76 65 6e 20 69 6e 20 2f 73 6f 75 72 63 65 2f 20 |ven in /source/ | 000c25e0 61 6e 64 20 2f 64 65 73 74 2f 20 72 65 73 70 65 |and /dest/ respe| 000c25f0 63 74 69 76 65 6c 79 2e 20 54 68 65 20 6c 65 6e |ctively. The len| 000c2600 67 74 68 20 6f 66 20 64 61 74 61 20 74 6f 20 74 |gth of data to t| 000c2610 72 61 6e 73 66 65 72 20 69 73 20 67 69 76 65 6e |ransfer is given| 000c2620 20 69 6e 20 2f 6c 65 6e 67 74 68 2f 2e 00 00 00 | in /length/....| 000c2630 44 41 54 41 60 01 00 00 77 69 6d 70 5f 74 72 61 |DATA`...wimp_tra| 000c2640 6e 73 66 65 72 62 6c 6f 63 6b 0a 53 79 6e 74 61 |nsferblock.Synta| 000c2650 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a 77 |x:.<os_error> *w| 000c2660 69 6d 70 5f 74 72 61 6e 73 66 65 72 62 6c 6f 63 |imp_transferbloc| 000c2670 6b 20 28 3c 77 69 6d 70 5f 74 3e 20 73 6f 75 72 |k (<wimp_t> sour| 000c2680 63 65 74 61 73 6b 2c 20 63 68 61 72 20 2a 73 6f |cetask, char *so| 000c2690 75 72 63 65 62 75 66 2c 20 3c 77 69 6d 70 5f 74 |urcebuf, <wimp_t| 000c26a0 3e 20 64 65 73 74 74 61 73 6b 2c 20 63 68 61 72 |> desttask, char| 000c26b0 20 2a 64 65 73 74 62 75 66 2c 20 69 6e 74 20 62 | *destbuf, int b| 000c26c0 75 66 6c 65 6e 29 3b 0a 48 65 61 64 65 72 3a 09 |uflen);.Header:.| 000c26d0 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e |<wimp.h=>wimp_h>| 000c26e0 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000c26f0 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 20 |er to error, or | 000c2700 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e 0a |<NULL> if none..| 000c2710 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 |.This function t| 000c2720 72 61 6e 73 66 65 72 73 20 61 20 62 6c 6f 63 6b |ransfers a block| 000c2730 20 6f 66 20 6d 65 6d 6f 72 79 20 66 72 6f 6d 20 | of memory from | 000c2740 74 68 65 20 73 6f 75 72 63 65 20 74 6f 20 74 68 |the source to th| 000c2750 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 61 |e destination ta| 000c2760 73 6b 20 61 6e 64 20 62 75 66 66 65 72 73 2e 20 |sk and buffers. | 000c2770 54 68 65 20 6c 65 6e 67 74 68 20 69 73 20 67 69 |The length is gi| 000c2780 76 65 6e 20 69 6e 20 2f 62 75 66 6c 65 6e 2f 2e |ven in /buflen/.| 000c2790 44 41 54 41 1a 03 00 00 77 69 6d 70 2e 68 0a 54 |DATA....wimp.h.T| 000c27a0 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 3a |ype definitions:| 000c27b0 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 |..#table columns| 000c27c0 20 33 0a 77 69 6d 70 5f 66 6c 61 67 73 20 20 20 | 3.wimp_flags | 000c27d0 20 20 20 20 20 20 0a 3c 77 69 6d 70 5f 69 63 6f | .<wimp_ico| 000c27e0 6e 66 6c 61 67 73 3e 0a 3c 77 69 6d 70 5f 62 62 |nflags>.<wimp_bb| 000c27f0 69 74 73 3e 0a 3c 77 69 6d 70 5f 69 63 6f 6e 64 |its>.<wimp_icond| 000c2800 61 74 61 3e 0a 3c 77 69 6d 70 5f 77 69 6e 64 3e |ata>.<wimp_wind>| 000c2810 0a 3c 77 69 6d 70 5f 69 63 6f 6e 3e 0a 3c 77 69 |.<wimp_icon>.<wi| 000c2820 6d 70 5f 6f 70 65 6e 73 74 72 3e 0a 3c 77 69 6d |mp_openstr>.<wim| 000c2830 70 5f 65 74 79 70 65 3e 0a 3c 77 69 6d 70 5f 72 |p_etype>.<wimp_r| 000c2840 65 64 72 61 77 73 74 72 3e 0a 3c 77 69 6d 70 5f |edrawstr>.<wimp_| 000c2850 63 61 72 65 74 73 74 72 3e 0a 3c 77 69 6d 70 5f |caretstr>.<wimp_| 000c2860 6d 73 67 68 64 72 3e 0a 3c 77 69 6d 70 5f 6d 73 |msghdr>.<wimp_ms| 000c2870 67 64 61 74 61 73 61 76 65 6f 6b 3e 0a 3c 77 69 |gdatasaveok>.<wi| 000c2880 6d 70 5f 6d 73 67 64 61 74 61 6f 70 65 6e 3e 0a |mp_msgdataopen>.| 000c2890 3c 77 69 6d 70 5f 6d 73 67 72 61 6d 74 72 61 6e |<wimp_msgramtran| 000c28a0 73 6d 69 74 3e 0a 3c 77 69 6d 70 5f 6d 73 67 68 |smit>.<wimp_msgh| 000c28b0 65 6c 70 72 65 70 6c 79 3e 0a 3c 77 69 6d 70 5f |elpreply>.<wimp_| 000c28c0 6d 73 67 73 74 72 3e 0a 3c 77 69 6d 70 5f 65 76 |msgstr>.<wimp_ev| 000c28d0 65 6e 74 73 74 72 3e 0a 3c 77 69 6d 70 5f 6d 65 |entstr>.<wimp_me| 000c28e0 6e 75 66 6c 61 67 73 3e 0a 3c 77 69 6d 70 5f 6d |nuflags>.<wimp_m| 000c28f0 65 6e 75 69 74 65 6d 3e 0a 3c 77 69 6d 70 5f 64 |enuitem>.<wimp_d| 000c2900 72 61 67 73 74 72 3e 0a 3c 77 69 6d 70 5f 70 73 |ragstr>.<wimp_ps| 000c2910 68 61 70 65 73 74 72 3e 0a 3c 77 69 6d 70 5f 74 |hapestr>.<wimp_t| 000c2920 65 6d 70 6c 61 74 65 3e 0a 3c 77 69 6d 70 5f 70 |emplate>.<wimp_p| 000c2930 61 6c 65 74 74 65 73 74 72 3e 0a 3c 77 69 6d 70 |alettestr>.<wimp| 000c2940 5f 77 63 6f 6c 6f 75 72 73 3e 0a 3c 77 69 6d 70 |_wcolours>.<wimp| 000c2950 5f 69 62 74 79 70 65 3e 0a 3c 77 69 6d 70 5f 64 |_ibtype>.<wimp_d| 000c2960 72 61 67 74 79 70 65 3e 0a 3c 77 69 6d 70 5f 62 |ragtype>.<wimp_b| 000c2970 6f 78 3e 0a 3c 77 69 6d 70 5f 77 69 6e 66 6f 3e |ox>.<wimp_winfo>| 000c2980 0a 3c 77 69 6d 70 5f 69 63 72 65 61 74 65 3e 0a |.<wimp_icreate>.| 000c2990 3c 77 69 6d 70 5f 77 73 74 61 74 65 3e 0a 3c 77 |<wimp_wstate>.<w| 000c29a0 69 6d 70 5f 65 6d 61 73 6b 3e 0a 3c 77 69 6d 70 |imp_emask>.<wimp| 000c29b0 5f 6d 6f 75 73 65 73 74 72 3e 0a 3c 77 69 6d 70 |_mousestr>.<wimp| 000c29c0 5f 6d 73 67 61 63 74 69 6f 6e 3e 0a 3c 77 69 6d |_msgaction>.<wim| 000c29d0 70 5f 6d 73 67 64 61 74 61 73 61 76 65 3e 0a 3c |p_msgdatasave>.<| 000c29e0 77 69 6d 70 5f 6d 73 67 64 61 74 61 6c 6f 61 64 |wimp_msgdataload| 000c29f0 3e 0a 3c 77 69 6d 70 5f 6d 73 67 72 61 6d 66 65 |>.<wimp_msgramfe| 000c2a00 74 63 68 3e 0a 3c 77 69 6d 70 5f 6d 73 67 68 65 |tch>.<wimp_msghe| 000c2a10 6c 70 72 65 71 75 65 73 74 3e 0a 3c 77 69 6d 70 |lprequest>.<wimp| 000c2a20 5f 6d 73 67 70 72 69 6e 74 3e 0a 3c 77 69 6d 70 |_msgprint>.<wimp| 000c2a30 5f 65 76 65 6e 74 64 61 74 61 3e 0a 3c 77 69 6d |_eventdata>.<wim| 000c2a40 70 5f 6d 65 6e 75 68 64 72 3e 0a 3c 77 69 6d 70 |p_menuhdr>.<wimp| 000c2a50 5f 6d 65 6e 75 70 74 72 3e 0a 3c 77 69 6d 70 5f |_menuptr>.<wimp_| 000c2a60 6d 65 6e 75 73 74 72 3e 0a 3c 77 69 6d 70 5f 77 |menustr>.<wimp_w| 000c2a70 68 69 63 68 5f 62 6c 6f 63 6b 3e 0a 3c 77 69 6d |hich_block>.<wim| 000c2a80 70 5f 66 6f 6e 74 5f 61 72 72 61 79 3e 0a 3c 77 |p_font_array>.<w| 000c2a90 69 6d 70 5f 70 61 6c 65 74 74 65 77 6f 72 64 3e |imp_paletteword>| 000c2aa0 0a 23 65 6e 64 74 61 62 6c 65 00 00 44 41 54 41 |.#endtable..DATA| 000c2ab0 5b 01 00 00 77 69 6d 70 5f 75 70 64 61 74 65 5f |[...wimp_update_| 000c2ac0 77 69 6e 64 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 |wind.Syntax:.<os| 000c2ad0 5f 65 72 72 6f 72 3e 20 2a 77 69 6d 70 5f 72 65 |_error> *wimp_re| 000c2ae0 64 72 61 77 5f 77 69 6e 64 20 28 3c 77 69 6d 70 |draw_wind (<wimp| 000c2af0 5f 72 65 64 72 61 77 73 74 72 3e 20 2a 62 6c 6b |_redrawstr> *blk| 000c2b00 2c 20 3c 42 4f 4f 4c 3e 20 2a 6d 6f 72 65 29 3b |, <BOOL> *more);| 000c2b10 0a 48 65 61 64 65 72 3a 09 3c 77 69 6d 70 2e 68 |.Header:.<wimp.h| 000c2b20 3d 3e 77 69 6d 70 5f 68 3e 0a 0a 52 65 74 75 72 |=>wimp_h>..Retur| 000c2b30 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000c2b40 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000c2b50 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000c2b60 75 6e 63 74 69 6f 6e 73 20 72 65 64 72 61 77 73 |unctions redraws| 000c2b70 20 74 68 65 20 77 69 6e 64 6f 77 20 6f 75 74 6c | the window outl| 000c2b80 69 6e 65 20 61 6e 64 20 69 63 6f 6e 73 2e 20 49 |ine and icons. I| 000c2b90 74 20 72 65 74 75 72 6e 73 20 3c 54 52 55 45 3e |t returns <TRUE>| 000c2ba0 20 69 6e 20 7b 2f 7d 2a 6d 6f 72 65 7b 2f 7d 20 | in {/}*more{/} | 000c2bb0 69 66 20 74 68 65 72 65 20 69 73 20 6d 6f 72 65 |if there is more| 000c2bc0 20 74 6f 20 62 65 20 64 72 61 77 6e 20 77 69 74 | to be drawn wit| 000c2bd0 68 20 3c 77 69 6d 70 5f 67 65 74 5f 72 65 63 74 |h <wimp_get_rect| 000c2be0 61 6e 67 6c 65 3e 2e 20 54 68 69 73 20 63 61 6e |angle>. This can| 000c2bf0 20 62 65 20 63 61 6c 6c 65 64 20 61 74 20 61 6e | be called at an| 000c2c00 79 20 74 69 6d 65 2e 00 44 41 54 41 1a 02 00 00 |y time..DATA....| 000c2c10 57 69 6d 70 5f 55 70 64 61 74 65 57 69 6e 64 6f |Wimp_UpdateWindo| 000c2c20 77 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |w.Syntax:.<os_er| 000c2c30 72 6f 72 3e 20 2a 57 69 6d 70 5f 55 70 64 61 74 |ror> *Wimp_Updat| 000c2c40 65 57 69 6e 64 6f 77 20 28 3c 77 69 6e 64 6f 77 |eWindow (<window| 000c2c50 5f 72 65 64 72 61 77 62 6c 6f 63 6b 3e 20 2a 62 |_redrawblock> *b| 000c2c60 6c 6b 2c 20 3c 42 4f 4f 4c 3e 20 2a 6d 6f 72 65 |lk, <BOOL> *more| 000c2c70 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000c2c80 4c 69 62 3a 57 69 6d 70 53 57 49 73 2e 68 3d 3e |Lib:WimpSWIs.h=>| 000c2c90 57 69 6d 70 53 57 49 73 3e 0a 0a 52 65 74 75 72 |WimpSWIs>..Retur| 000c2ca0 6e 73 3a 09 50 6f 69 6e 74 65 72 20 74 6f 20 65 |ns:.Pointer to e| 000c2cb0 72 72 6f 72 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 |rror, or <NULL> | 000c2cc0 69 66 20 6e 6f 6e 65 2e 0a 0a 54 68 69 73 20 66 |if none...This f| 000c2cd0 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 |unction is used | 000c2ce0 74 6f 20 73 74 61 72 74 20 61 20 72 65 64 72 61 |to start a redra| 000c2cf0 77 20 6f 66 20 74 68 65 20 70 61 72 74 73 20 6f |w of the parts o| 000c2d00 66 20 61 20 77 69 6e 64 6f 77 20 74 68 61 74 20 |f a window that | 000c2d10 61 72 65 20 6e 6f 74 20 75 70 20 74 6f 20 64 61 |are not up to da| 000c2d20 74 65 2e 20 4f 6e 20 65 6e 74 72 79 2c 20 2f 62 |te. On entry, /b| 000c2d30 6c 6b 2f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 |lk/ contains the| 000c2d40 20 61 72 65 61 20 6f 66 20 77 69 6e 64 6f 77 20 | area of window | 000c2d50 74 6f 20 62 65 20 75 70 64 61 74 65 64 2e 20 54 |to be updated. T| 000c2d60 68 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 69 74 |he function exit| 000c2d70 73 20 76 69 61 20 3c 57 69 6d 70 5f 47 65 74 52 |s via <Wimp_GetR| 000c2d80 65 63 74 61 6e 67 6c 65 3e 2c 20 77 68 69 63 68 |ectangle>, which| 000c2d90 20 72 65 74 75 72 6e 73 20 74 68 65 20 63 6f 6f | returns the coo| 000c2da0 64 69 6e 61 74 65 73 20 6f 66 20 74 68 65 20 66 |dinates of the f| 000c2db0 69 72 73 74 20 76 69 73 69 62 6c 65 20 72 65 63 |irst visible rec| 000c2dc0 74 61 6e 67 6c 65 20 6f 66 20 74 68 65 20 77 6f |tangle of the wo| 000c2dd0 72 6b 20 61 72 65 61 2e 20 49 74 20 61 6c 73 6f |rk area. It also| 000c2de0 20 72 65 74 75 72 6e 73 20 61 20 66 6c 61 67 20 | returns a flag | 000c2df0 2f 6d 6f 72 65 2f 20 73 61 79 69 6e 67 20 77 68 |/more/ saying wh| 000c2e00 65 74 68 65 72 20 74 68 65 72 65 20 69 73 20 61 |ether there is a| 000c2e10 6e 79 74 68 69 6e 67 20 74 6f 20 72 65 64 72 61 |nything to redra| 000c2e20 77 2e 00 00 44 41 54 41 91 00 00 00 77 69 6d 70 |w...DATA....wimp| 000c2e30 5f 77 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |_w.This type is | 000c2e40 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d 70 |defined in <wimp| 000c2e50 2e 68 3d 3e 77 69 6d 70 5f 68 3e 20 61 73 20 61 |.h=>wimp_h> as a| 000c2e60 20 74 79 70 65 20 63 61 70 61 62 6c 65 20 6f 66 | type capable of| 000c2e70 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 69 | containing a Wi| 000c2e80 6d 70 20 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 |mp window handle| 000c2e90 2e 20 49 74 20 69 73 20 61 63 74 75 61 6c 6c 79 |. It is actually| 000c2ea0 20 64 65 66 69 6e 65 64 20 61 73 20 61 6e 20 2f | defined as an /| 000c2eb0 69 6e 74 2f 2e 00 00 00 44 41 54 41 47 01 00 00 |int/....DATAG...| 000c2ec0 77 69 6d 70 5f 77 63 6f 6c 6f 75 72 73 0a 54 68 |wimp_wcolours.Th| 000c2ed0 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000c2ee0 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 |ed in <wimp.h=>w| 000c2ef0 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 6e |imp_h>. It is an| 000c2f00 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 | enumerated type| 000c2f10 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 | containing the | 000c2f20 6e 75 6d 62 65 72 73 20 6f 66 20 74 68 65 20 57 |numbers of the W| 000c2f30 69 6d 70 20 77 69 6e 64 6f 77 20 63 6f 6c 6f 75 |imp window colou| 000c2f40 72 73 3a 0a 0a 20 20 5c 7b 0a 20 20 20 20 77 69 |rs:.. \{. wi| 000c2f50 6d 70 5f 57 43 54 49 54 4c 45 46 4f 52 45 2c 0a |mp_WCTITLEFORE,.| 000c2f60 20 20 20 20 77 69 6d 70 5f 57 43 54 49 54 4c 45 | wimp_WCTITLE| 000c2f70 42 41 43 4b 2c 0a 20 20 20 20 77 69 6d 70 5f 57 |BACK,. wimp_W| 000c2f80 43 57 4b 41 52 45 41 46 4f 52 45 2c 0a 20 20 20 |CWKAREAFORE,. | 000c2f90 20 77 69 6d 70 5f 57 43 57 4b 41 52 45 41 42 41 | wimp_WCWKAREABA| 000c2fa0 43 4b 2c 0a 20 20 20 20 77 69 6d 70 5f 57 43 53 |CK,. wimp_WCS| 000c2fb0 43 52 4f 4c 4c 4f 55 54 45 52 2c 0a 20 20 20 20 |CROLLOUTER,. | 000c2fc0 77 69 6d 70 5f 57 43 53 43 52 4f 4c 4c 49 4e 4e |wimp_WCSCROLLINN| 000c2fd0 45 52 2c 0a 20 20 20 20 77 69 6d 70 5f 57 43 54 |ER,. wimp_WCT| 000c2fe0 49 54 4c 45 48 49 2c 0a 20 20 20 20 77 69 6d 70 |ITLEHI,. wimp| 000c2ff0 5f 57 43 52 45 53 45 52 56 45 44 0a 20 20 7d 00 |_WCRESERVED. }.| 000c3000 44 41 54 41 1d 02 00 00 77 69 6d 70 5f 77 66 6c |DATA....wimp_wfl| 000c3010 61 67 73 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ags.This type is| 000c3020 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d | defined in <wim| 000c3030 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 |p.h=>wimp_h>. It| 000c3040 20 69 73 20 61 6e 0a 65 6e 75 6d 65 72 61 74 65 | is an.enumerate| 000c3050 64 20 74 79 70 65 20 63 6f 6e 74 61 69 6e 69 6e |d type containin| 000c3060 67 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 |g the values of | 000c3070 74 68 65 0a 57 69 6d 70 20 77 69 6e 64 6f 77 20 |the.Wimp window | 000c3080 66 6c 61 67 73 3a 0a 0a 20 20 7b 0a 20 20 20 20 |flags:.. {. | 000c3090 77 69 6d 70 5f 57 4d 4f 56 45 41 42 4c 45 2c 0a |wimp_WMOVEABLE,.| 000c30a0 20 20 20 20 77 69 6d 70 5f 52 45 44 52 41 57 5f | wimp_REDRAW_| 000c30b0 4f 4b 2c 0a 20 20 20 20 77 69 6d 70 5f 57 50 41 |OK,. wimp_WPA| 000c30c0 4e 45 2c 0a 20 20 20 20 77 69 6d 70 5f 57 54 52 |NE,. wimp_WTR| 000c30d0 45 53 50 41 53 53 2c 0a 20 20 20 20 77 69 6d 70 |ESPASS,. wimp| 000c30e0 5f 57 53 43 52 4f 4c 4c 5f 52 31 2c 0a 20 20 20 |_WSCROLL_R1,. | 000c30f0 20 77 69 6d 70 5f 53 43 52 4f 4c 4c 5f 52 32 2c | wimp_SCROLL_R2,| 000c3100 0a 20 20 20 20 77 69 6d 70 5f 52 45 41 4c 5f 43 |. wimp_REAL_C| 000c3110 4f 4c 4f 55 52 53 2c 0a 20 20 20 20 77 69 6d 70 |OLOURS,. wimp| 000c3120 5f 42 41 43 4b 5f 57 49 4e 44 4f 57 2c 0a 20 20 |_BACK_WINDOW,. | 000c3130 20 20 77 69 6d 70 5f 48 4f 54 5f 4b 45 59 53 2c | wimp_HOT_KEYS,| 000c3140 0a 20 20 20 20 77 69 6d 70 5f 57 4f 50 45 4e 2c |. wimp_WOPEN,| 000c3150 0a 20 20 20 20 77 69 6d 70 5f 57 54 4f 50 2c 0a |. wimp_WTOP,.| 000c3160 20 20 20 20 77 69 6d 70 5f 57 46 55 4c 4c 2c 0a | wimp_WFULL,.| 000c3170 20 20 20 20 77 69 6d 70 5f 57 43 4c 49 43 4b 5f | wimp_WCLICK_| 000c3180 54 4f 47 47 4c 45 2c 0a 20 20 20 20 77 69 6d 70 |TOGGLE,. wimp| 000c3190 5f 57 46 4f 43 55 53 2c 0a 20 20 20 20 77 69 6d |_WFOCUS,. wim| 000c31a0 70 5f 57 42 41 43 4b 2c 0a 20 20 20 20 77 69 6d |p_WBACK,. wim| 000c31b0 70 5f 57 51 55 49 54 2c 0a 20 20 20 20 77 69 6d |p_WQUIT,. wim| 000c31c0 70 5f 57 54 49 54 4c 45 2c 0a 20 20 20 20 77 69 |p_WTITLE,. wi| 000c31d0 6d 70 5f 57 54 4f 47 47 4c 45 2c 0a 20 20 20 20 |mp_WTOGGLE,. | 000c31e0 77 69 6d 70 5f 57 56 53 43 52 2c 0a 20 20 20 20 |wimp_WVSCR,. | 000c31f0 77 69 6d 70 5f 57 53 49 5a 45 2c 0a 20 20 20 20 |wimp_WSIZE,. | 000c3200 77 69 6d 70 5f 57 48 53 43 52 2c 0a 20 20 20 20 |wimp_WHSCR,. | 000c3210 77 69 6d 70 5f 57 4e 45 57 0a 20 20 7d 00 00 00 |wimp_WNEW. }...| 000c3220 44 41 54 41 c1 00 00 00 77 69 6d 70 5f 77 68 69 |DATA....wimp_whi| 000c3230 63 68 5f 62 6c 6f 63 6b 0a 54 68 69 73 20 74 79 |ch_block.This ty| 000c3240 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000c3250 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f 68 | <wimp.h=>wimp_h| 000c3260 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 63 |>. It is a struc| 000c3270 74 75 72 65 20 75 73 65 64 20 74 6f 20 68 6f 6c |ture used to hol| 000c3280 64 20 64 61 74 61 20 66 6f 72 20 3c 77 69 6d 70 |d data for <wimp| 000c3290 5f 77 68 69 63 68 5f 69 63 6f 6e 3e 3a 0a 0a 20 |_which_icon>:.. | 000c32a0 20 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 77 3e | \{. <wimp_w>| 000c32b0 09 77 69 6e 64 6f 77 3b 0a 20 20 20 20 69 6e 74 |.window;. int| 000c32c0 09 09 62 69 74 5f 6d 61 73 6b 3b 0a 20 20 20 20 |..bit_mask;. | 000c32d0 69 6e 74 09 09 62 69 74 5f 73 65 74 3b 0a 20 20 |int..bit_set;. | 000c32e0 7d 00 00 00 44 41 54 41 06 01 00 00 77 69 6d 70 |}...DATA....wimp| 000c32f0 5f 77 68 69 63 68 5f 69 63 6f 6e 0a 53 79 6e 74 |_which_icon.Synt| 000c3300 61 78 3a 09 3c 6f 73 5f 65 72 72 6f 72 3e 20 2a |ax:.<os_error> *| 000c3310 77 69 6d 70 5f 77 68 69 63 68 5f 69 63 6f 6e 20 |wimp_which_icon | 000c3320 28 3c 77 69 6d 70 5f 77 68 69 63 68 5f 62 6c 6f |(<wimp_which_blo| 000c3330 63 6b 3e 20 2a 62 6c 6b 2c 20 3c 77 69 6d 70 5f |ck> *blk, <wimp_| 000c3340 69 3e 20 2a 72 65 73 29 3b 0a 48 65 61 64 65 72 |i> *res);.Header| 000c3350 3a 09 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 5f |:.<wimp.h=>wimp_| 000c3360 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 |h>..Returns:.Poi| 000c3370 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f |nter to error, o| 000c3380 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 |r <NULL> if none| 000c3390 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000c33a0 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 69 63 | searches for ic| 000c33b0 6f 6e 73 20 77 68 69 63 68 20 6d 61 74 63 68 20 |ons which match | 000c33c0 61 20 67 69 76 65 6e 20 73 74 61 74 65 20 61 6e |a given state an| 000c33d0 64 20 63 72 65 61 74 65 73 20 61 20 6c 69 73 74 |d creates a list| 000c33e0 20 69 6e 20 2f 72 65 73 2f 2e 00 00 44 41 54 41 | in /res/...DATA| 000c33f0 0d 02 00 00 57 69 6d 70 5f 57 68 69 63 68 49 63 |....Wimp_WhichIc| 000c3400 6f 6e 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 |on.Syntax:.<os_e| 000c3410 72 72 6f 72 3e 20 2a 57 69 6d 70 5f 57 68 69 63 |rror> *Wimp_Whic| 000c3420 68 49 63 6f 6e 20 28 3c 77 69 6e 64 6f 77 5f 68 |hIcon (<window_h| 000c3430 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f |andle> win, <ico| 000c3440 6e 5f 68 61 6e 64 6c 65 3e 20 2a 69 63 6f 6e 73 |n_handle> *icons| 000c3450 2c 20 69 6e 74 20 6d 61 73 6b 2c 20 69 6e 74 20 |, int mask, int | 000c3460 73 65 74 74 69 6e 67 73 29 3b 0a 48 65 61 64 65 |settings);.Heade| 000c3470 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 |r:.<DeskLib:Wimp| 000c3480 53 57 49 73 2e 68 3d 3e 57 69 6d 70 53 57 49 73 |SWIs.h=>WimpSWIs| 000c3490 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e |>..Returns:.Poin| 000c34a0 74 65 72 20 74 6f 20 65 72 72 6f 72 2c 20 6f 72 |ter to error, or| 000c34b0 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e 6f 6e 65 2e | <NULL> if none.| 000c34c0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000c34d0 73 65 61 72 63 68 65 73 20 66 6f 72 20 69 63 6f |searches for ico| 000c34e0 6e 73 20 74 68 61 74 20 6d 61 74 63 68 20 61 20 |ns that match a | 000c34f0 67 69 76 65 6e 20 66 6c 61 67 20 77 6f 72 64 2e |given flag word.| 000c3500 20 41 6c 6c 20 69 63 6f 6e 73 20 69 6e 20 74 68 | All icons in th| 000c3510 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 20 77 |e given window w| 000c3520 69 6c 6c 20 62 65 20 63 68 65 63 6b 65 64 2c 20 |ill be checked, | 000c3530 61 6e 64 20 74 68 65 20 6c 69 73 74 20 70 6c 61 |and the list pla| 000c3540 63 65 64 20 69 6e 20 74 68 65 20 61 72 72 61 79 |ced in the array| 000c3550 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 2f | pointed to by /| 000c3560 69 63 6f 6e 73 2f 2e 20 2f 6d 61 73 6b 2f 20 64 |icons/. /mask/ d| 000c3570 65 74 65 72 6d 69 6e 65 73 20 77 68 69 63 68 20 |etermines which | 000c3580 62 69 74 73 20 61 72 65 20 74 6f 20 62 65 20 63 |bits are to be c| 000c3590 68 65 63 6b 65 64 2c 20 2f 73 65 74 74 69 6e 67 |hecked, /setting| 000c35a0 73 2f 20 73 61 79 73 20 77 68 61 74 20 73 68 6f |s/ says what sho| 000c35b0 75 6c 64 20 62 65 20 6c 6f 6f 6b 65 64 20 66 6f |uld be looked fo| 000c35c0 72 2e 0a 0a 43 68 65 63 6b 73 20 69 66 3a 20 7b |r...Checks if: {| 000c35d0 66 43 6f 64 65 7d 69 63 6f 6e 66 6c 61 67 73 20 |fCode}iconflags | 000c35e0 26 20 6d 61 73 6b 20 3d 3d 20 73 65 74 74 69 6e |& mask == settin| 000c35f0 67 73 20 26 20 6d 61 73 6b 00 00 00 44 41 54 41 |gs & mask...DATA| 000c3600 fc 01 00 00 77 69 6d 70 5f 77 69 6e 64 0a 54 68 |....wimp_wind.Th| 000c3610 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000c3620 65 64 20 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 |ed in <wimp.h=>w| 000c3630 69 6d 70 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 |imp_h>. It is a | 000c3640 73 74 72 75 63 74 75 72 65 20 63 6f 6e 74 61 69 |structure contai| 000c3650 6e 69 6e 67 20 61 20 77 69 6e 64 6f 77 20 64 65 |ning a window de| 000c3660 66 69 6e 69 74 69 6f 6e 3a 0a 0a 20 20 5c 7b 0a |finition:.. \{.| 000c3670 20 20 20 20 3c 77 69 6d 70 5f 62 6f 78 3e 09 09 | <wimp_box>..| 000c3680 62 6f 78 3b 0a 20 20 20 20 69 6e 74 09 09 09 73 |box;. int...s| 000c3690 63 78 2c 20 73 63 79 3b 0a 20 20 20 20 3c 77 69 |cx, scy;. <wi| 000c36a0 6d 70 5f 77 3e 09 09 62 65 68 69 6e 64 3b 0a 20 |mp_w>..behind;. | 000c36b0 20 20 20 3c 77 69 6d 70 5f 77 66 6c 61 67 73 3e | <wimp_wflags>| 000c36c0 09 66 6c 61 67 73 3b 0a 20 20 20 20 63 68 61 72 |.flags;. char| 000c36d0 09 09 63 6f 6c 6f 75 72 73 5b 38 5d 3b 0a 20 20 |..colours[8];. | 000c36e0 20 20 3c 77 69 6d 70 5f 62 6f 78 3e 09 09 65 78 | <wimp_box>..ex| 000c36f0 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 69 63 6f 6e |;. <wimp_icon| 000c3700 66 6c 61 67 73 3e 09 74 69 74 6c 65 66 6c 61 67 |flags>.titleflag| 000c3710 73 3b 0a 20 20 20 20 3c 77 69 6d 70 5f 69 63 6f |s;. <wimp_ico| 000c3720 6e 66 6c 61 67 73 3e 09 77 6f 72 6b 66 6c 61 67 |nflags>.workflag| 000c3730 73 3b 0a 20 20 20 20 76 6f 69 64 09 09 2a 73 70 |s;. void..*sp| 000c3740 72 69 74 65 61 72 65 61 3b 0a 20 20 20 20 69 6e |ritearea;. in| 000c3750 74 09 09 09 6d 69 6e 73 69 7a 65 3b 0a 20 20 20 |t...minsize;. | 000c3760 20 3c 77 69 6d 70 5f 69 63 6f 6e 64 61 74 61 3e | <wimp_icondata>| 000c3770 09 74 69 74 6c 65 3b 0a 20 20 20 20 69 6e 74 09 |.title;. int.| 000c3780 09 09 6e 69 63 6f 6e 73 3b 0a 20 20 7d 0a 0a 54 |..nicons;. }..T| 000c3790 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 66 6f |his should be fo| 000c37a0 6c 6c 6f 77 65 64 20 69 6e 20 6d 65 6d 6f 72 79 |llowed in memory| 000c37b0 20 62 79 20 74 68 65 20 69 63 6f 6e 20 64 65 66 | by the icon def| 000c37c0 69 6e 69 74 69 6f 6e 73 2e 20 2f 63 6f 6c 6f 75 |initions. /colou| 000c37d0 72 73 2f 20 63 61 6e 20 62 65 20 69 6e 64 65 78 |rs/ can be index| 000c37e0 65 64 20 77 69 74 68 20 3c 77 69 6d 70 5f 77 63 |ed with <wimp_wc| 000c37f0 6f 6c 6f 75 72 73 3e 2e 44 41 54 41 d7 00 00 00 |olours>.DATA....| 000c3800 77 69 6d 70 5f 77 69 6e 66 6f 0a 54 68 69 73 20 |wimp_winfo.This | 000c3810 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000c3820 69 6e 20 3c 77 69 6d 70 2e 68 3d 3e 77 69 6d 70 |in <wimp.h=>wimp| 000c3830 5f 68 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 |_h>. It is a str| 000c3840 75 63 74 75 72 65 20 68 6f 6c 64 69 6e 67 20 77 |ucture holding w| 000c3850 69 6e 64 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f |indow informatio| 000c3860 6e 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 |n as returned by| 000c3870 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 77 | the function <w| 000c3880 69 6d 70 5f 67 65 74 5f 77 69 6e 64 5f 69 6e 66 |imp_get_wind_inf| 000c3890 6f 3e 2e 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 |o>... \{. | 000c38a0 20 20 20 20 3c 77 69 6d 70 5f 77 3e 09 77 3b 0a | <wimp_w>.w;.| 000c38b0 20 20 20 20 20 20 20 20 3c 77 69 6d 70 5f 77 69 | <wimp_wi| 000c38c0 6e 64 3e 09 69 6e 66 6f 3b 0a 20 20 20 20 7d 00 |nd>.info;. }.| 000c38d0 44 41 54 41 a5 00 00 00 77 69 6d 70 5f 77 73 74 |DATA....wimp_wst| 000c38e0 61 74 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 |ate.This type is| 000c38f0 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 77 69 6d | defined in <wim| 000c3900 70 2e 68 3d 3e 77 69 6d 70 5f 68 3e 2e 20 49 74 |p.h=>wimp_h>. It| 000c3910 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 | is a structure | 000c3920 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 61 20 77 |used to hold a w| 000c3930 69 6e 64 6f 77 20 73 74 61 74 65 3a 0a 0a 20 20 |indow state:.. | 000c3940 5c 7b 0a 20 20 20 20 3c 77 69 6d 70 5f 6f 70 65 |\{. <wimp_ope| 000c3950 6e 73 74 72 3e 09 6f 3b 0a 20 20 20 20 3c 77 69 |nstr>.o;. <wi| 000c3960 6d 70 5f 77 66 6c 61 67 73 3e 09 66 6c 61 67 73 |mp_wflags>.flags| 000c3970 3b 0a 20 20 7d 00 00 00 44 41 54 41 69 02 00 00 |;. }...DATAi...| 000c3980 77 69 6e 2e 68 0a 54 68 69 73 20 68 65 61 64 65 |win.h.This heade| 000c3990 72 20 64 65 63 6c 61 72 65 73 20 66 75 6e 63 74 |r declares funct| 000c39a0 69 6f 6e 73 20 66 6f 72 20 63 65 6e 74 72 61 6c |ions for central| 000c39b0 20 6d 61 6e 61 67 65 6d 65 6e 74 20 6f 66 20 52 | management of R| 000c39c0 49 53 43 20 4f 53 20 77 69 6e 64 6f 77 73 2e 0a |ISC OS windows..| 000c39d0 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a 23 54 61 |.Functions:..#Ta| 000c39e0 62 6c 65 20 39 20 32 31 0a 3c 77 69 6e 5f 69 6e |ble 9 21.<win_in| 000c39f0 69 74 3e 0a 3c 77 69 6e 5f 73 65 74 6d 65 6e 75 |it>.<win_setmenu| 000c3a00 68 3e 0a 3c 77 69 6e 5f 67 65 74 6d 65 6e 75 68 |h>.<win_getmenuh| 000c3a10 3e 0a 3c 77 69 6e 5f 70 72 6f 63 65 73 73 65 76 |>.<win_processev| 000c3a20 65 6e 74 3e 0a 3c 77 69 6e 5f 61 63 74 69 76 65 |ent>.<win_active| 000c3a30 69 6e 63 3e 0a 3c 77 69 6e 5f 61 63 74 69 76 65 |inc>.<win_active| 000c3a40 64 65 63 3e 0a 3c 77 69 6e 5f 61 63 74 69 76 65 |dec>.<win_active| 000c3a50 6e 6f 3e 0a 3c 77 69 6e 5f 67 69 76 65 5f 61 77 |no>.<win_give_aw| 000c3a60 61 79 5f 63 61 72 65 74 3e 0a 3c 77 69 6e 5f 73 |ay_caret>.<win_s| 000c3a70 65 74 74 69 74 6c 65 3e 0a 3c 77 69 6e 5f 72 65 |ettitle>.<win_re| 000c3a80 61 64 5f 65 76 65 6e 74 5f 68 61 6e 64 6c 65 72 |ad_event_handler| 000c3a90 3e 0a 3c 77 69 6e 5f 63 6c 61 69 6d 5f 69 64 6c |>.<win_claim_idl| 000c3aa0 65 5f 65 76 65 6e 74 73 3e 0a 3c 77 69 6e 5f 69 |e_events>.<win_i| 000c3ab0 64 6c 65 5f 65 76 65 6e 74 5f 63 6c 61 69 6d 65 |dle_event_claime| 000c3ac0 72 3e 0a 3c 77 69 6e 5f 63 6c 61 69 6d 5f 75 6e |r>.<win_claim_un| 000c3ad0 6b 6e 6f 77 6e 5f 65 76 65 6e 74 73 3e 0a 3c 77 |known_events>.<w| 000c3ae0 69 6e 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 |in_unknown_event| 000c3af0 5f 63 6c 61 69 6d 65 72 3e 0a 3c 77 69 6e 5f 72 |_claimer>.<win_r| 000c3b00 65 67 69 73 74 65 72 5f 65 76 65 6e 74 5f 68 61 |egister_event_ha| 000c3b10 6e 64 6c 65 72 3e 0a 3c 77 69 6e 5f 61 64 64 5f |ndler>.<win_add_| 000c3b20 75 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 5f 70 72 |unknown_event_pr| 000c3b30 6f 63 65 73 73 6f 72 3e 0a 3c 77 69 6e 5f 72 65 |ocessor>.<win_re| 000c3b40 6d 6f 76 65 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 |move_unknown_eve| 000c3b50 6e 74 5f 70 72 6f 63 65 73 73 6f 72 3e 0a 23 45 |nt_processor>.#E| 000c3b60 6e 64 54 61 62 6c 65 0a 0a 23 54 61 62 6c 65 20 |ndTable..#Table | 000c3b70 34 20 32 31 0a 4d 61 63 72 6f 73 3a 0a 0a 3c 77 |4 21.Macros:..<w| 000c3b80 69 6e 5f 49 43 4f 4e 42 41 52 3e 0a 3c 77 69 6e |in_ICONBAR>.<win| 000c3b90 5f 49 43 4f 4e 42 41 52 4c 4f 41 44 3e 0a 54 79 |_ICONBARLOAD>.Ty| 000c3ba0 70 65 73 3a 0a 0a 3c 77 69 6e 5f 65 76 65 6e 74 |pes:..<win_event| 000c3bb0 5f 68 61 6e 64 6c 65 72 3e 0a 3c 77 69 6e 5f 75 |_handler>.<win_u| 000c3bc0 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 5f 70 72 6f |nknown_event_pro| 000c3bd0 63 65 73 73 6f 72 3e 0a 23 45 6e 64 54 61 62 6c |cessor>.#EndTabl| 000c3be0 65 00 00 00 44 41 54 41 2e 02 00 00 44 65 73 6b |e...DATA....Desk| 000c3bf0 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 0a 56 65 72 |Lib:Window.h.Ver| 000c3c00 73 69 6f 6e 3a 20 31 2e 31 30 20 28 44 65 63 20 |sion: 1.10 (Dec | 000c3c10 31 39 39 34 29 0a 23 6c 69 6e 65 0a 54 68 69 73 |1994).#line.This| 000c3c20 20 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 | header declares| 000c3c30 20 68 69 67 68 2d 6c 65 76 65 6c 20 66 75 6e 63 | high-level func| 000c3c40 74 69 6f 6e 73 20 66 6f 72 20 68 61 6e 64 6c 69 |tions for handli| 000c3c50 6e 67 20 77 69 6e 64 6f 77 73 2e 20 28 4f 68 2c |ng windows. (Oh,| 000c3c60 20 61 6e 64 20 6f 6e 65 20 74 79 70 65 20 74 6f | and one type to| 000c3c70 6f 21 29 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a |o!)..Functions:.| 000c3c80 0a 23 49 6e 64 65 6e 74 20 32 0a 23 54 61 62 6c |.#Indent 2.#Tabl| 000c3c90 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 57 69 6e |e columns 2.<Win| 000c3ca0 64 6f 77 5f 43 72 65 61 74 65 3e 0a 3c 57 69 6e |dow_Create>.<Win| 000c3cb0 64 6f 77 5f 53 68 6f 77 3e 0a 3c 57 69 6e 64 6f |dow_Show>.<Windo| 000c3cc0 77 5f 43 72 65 61 74 65 41 6e 64 53 68 6f 77 3e |w_CreateAndShow>| 000c3cd0 0a 3c 57 69 6e 64 6f 77 5f 48 69 64 65 3e 0a 3c |.<Window_Hide>.<| 000c3ce0 57 69 6e 64 6f 77 5f 44 65 6c 65 74 65 3e 0a 3c |Window_Delete>.<| 000c3cf0 57 69 6e 64 6f 77 5f 47 65 74 49 6e 66 6f 3e 0a |Window_GetInfo>.| 000c3d00 3c 57 69 6e 64 6f 77 5f 47 65 74 49 6e 66 6f 33 |<Window_GetInfo3| 000c3d10 3e 0a 3c 57 69 6e 64 6f 77 5f 50 61 72 65 6e 74 |>.<Window_Parent| 000c3d20 4e 61 6d 65 3e 0a 3c 57 69 6e 64 6f 77 5f 41 75 |Name>.<Window_Au| 000c3d30 74 6f 48 65 6c 70 3e 0a 3c 57 69 6e 64 6f 77 5f |toHelp>.<Window_| 000c3d40 48 65 6c 70 48 61 6e 64 6c 65 72 3e 0a 3c 57 69 |HelpHandler>.<Wi| 000c3d50 6e 64 6f 77 5f 4d 6f 64 65 43 68 61 6e 67 65 3e |ndow_ModeChange>| 000c3d60 0a 3c 57 69 6e 64 6f 77 5f 53 65 74 54 69 74 6c |.<Window_SetTitl| 000c3d70 65 3e 0a 3c 57 69 6e 64 6f 77 5f 42 72 69 6e 67 |e>.<Window_Bring| 000c3d80 54 6f 46 72 6f 6e 74 3e 0a 3c 57 69 6e 64 6f 77 |ToFront>.<Window| 000c3d90 5f 43 6f 6e 73 74 72 61 69 6e 4d 6f 75 73 65 3e |_ConstrainMouse>| 000c3da0 0a 3c 57 69 6e 64 6f 77 5f 53 65 74 45 78 74 65 |.<Window_SetExte| 000c3db0 6e 74 3e 0a 3c 57 69 6e 64 6f 77 5f 46 6f 72 63 |nt>.<Window_Forc| 000c3dc0 65 52 65 64 72 61 77 3e 0a 3c 57 69 6e 64 6f 77 |eRedraw>.<Window| 000c3dd0 5f 47 65 74 43 6f 6f 72 64 73 3e 0a 23 45 6e 64 |_GetCoords>.#End| 000c3de0 54 61 62 6c 65 0a 23 49 6e 64 65 6e 74 20 30 0a |Table.#Indent 0.| 000c3df0 0a 54 79 70 65 3a 0a 0a 23 69 6e 64 65 6e 74 20 |.Type:..#indent | 000c3e00 32 0a 3c 77 69 6e 64 6f 77 5f 6f 70 65 6e 70 6f |2.<window_openpo| 000c3e10 73 3e 00 00 44 49 52 24 c8 04 00 00 c8 04 00 00 |s>..DIR$........| 000c3e20 dc 42 0c 00 46 ff ff ff 72 f2 4b 26 c7 02 00 00 |.B..F...r.K&....| 000c3e30 13 00 00 00 00 00 00 00 41 75 74 6f 48 65 6c 70 |........AutoHelp| 000c3e40 00 00 00 00 a4 45 0c 00 46 ff ff ff 58 8c 41 26 |.....E..F...X.A&| 000c3e50 68 02 00 00 13 00 00 00 00 00 00 00 62 6c 6f 63 |h...........bloc| 000c3e60 6b 00 00 00 0c 48 0c 00 46 ff ff ff ae 77 41 26 |k....H..F....wA&| 000c3e70 27 01 00 00 13 00 00 00 00 00 00 00 63 6f 6c 6f |'...........colo| 000c3e80 75 72 69 6e 64 69 63 65 73 00 00 00 34 49 0c 00 |urindices...4I..| 000c3e90 46 ff ff ff 1f 6a 4b 26 88 01 00 00 13 00 00 00 |F....jK&........| 000c3ea0 00 00 00 00 43 72 65 61 74 65 00 00 bc 4a 0c 00 |....Create...J..| 000c3eb0 46 ff ff ff 9b 75 4b 26 fa 00 00 00 13 00 00 00 |F....uK&........| 000c3ec0 00 00 00 00 43 72 65 61 74 65 41 6e 64 53 68 6f |....CreateAndSho| 000c3ed0 77 00 00 00 b8 4b 0c 00 46 ff ff ff ba 86 4b 26 |w....K..F.....K&| 000c3ee0 4e 01 00 00 13 00 00 00 00 00 00 00 44 65 6c 65 |N...........Dele| 000c3ef0 74 65 00 00 08 4d 0c 00 46 ff ff ff a1 95 58 26 |te...M..F.....X&| 000c3f00 16 01 00 00 13 00 00 00 00 00 00 00 44 65 6c 65 |............Dele| 000c3f10 74 65 49 6e 63 4d 65 6e 75 73 00 00 20 4e 0c 00 |teIncMenus.. N..| 000c3f20 46 ff ff ff 01 60 41 26 d4 05 00 00 13 00 00 00 |F....`A&........| 000c3f30 00 00 00 00 66 6c 61 67 73 00 00 00 f4 53 0c 00 |....flags....S..| 000c3f40 46 ff ff ff 3a 9b 58 26 d6 00 00 00 13 00 00 00 |F...:.X&........| 000c3f50 00 00 00 00 46 6f 72 63 65 43 6f 6d 70 6c 65 74 |....ForceComplet| 000c3f60 65 52 65 64 72 61 77 00 cc 54 0c 00 46 ff ff ff |eRedraw..T..F...| 000c3f70 7a 9e 4b 26 6f 01 00 00 13 00 00 00 00 00 00 00 |z.K&o...........| 000c3f80 47 65 74 49 6e 66 6f 00 3c 56 0c 00 46 ff ff ff |GetInfo.<V..F...| 000c3f90 9e 6e 37 26 82 00 00 00 13 00 00 00 00 00 00 00 |.n7&............| 000c3fa0 68 61 6e 64 6c 65 00 00 c0 56 0c 00 46 ff ff ff |handle...V..F...| 000c3fb0 f4 14 4c 26 66 02 00 00 13 00 00 00 00 00 00 00 |..L&f...........| 000c3fc0 48 65 6c 70 48 61 6e 64 6c 65 72 00 28 59 0c 00 |HelpHandler.(Y..| 000c3fd0 46 ff ff ff fe 7f 4b 26 0a 01 00 00 13 00 00 00 |F.....K&........| 000c3fe0 00 00 00 00 48 69 64 65 00 00 00 00 34 5a 0c 00 |....Hide....4Z..| 000c3ff0 46 ff ff ff 3b e3 37 26 8c 00 00 00 13 00 00 00 |F...;.7&........| 000c4000 00 00 00 00 49 43 4f 4e 42 41 52 00 c0 5a 0c 00 |....ICONBAR..Z..| 000c4010 46 ff ff ff 63 a5 41 26 e6 00 00 00 13 00 00 00 |F...c.A&........| 000c4020 00 00 00 00 69 6e 66 6f 00 00 00 00 a8 5b 0c 00 |....info.....[..| 000c4030 46 ff ff ff 21 73 41 26 cf 00 00 00 13 00 00 00 |F...!sA&........| 000c4040 00 00 00 00 6d 69 6e 73 69 7a 65 00 78 5c 0c 00 |....minsize.x\..| 000c4050 46 ff ff ff 35 1d 4c 26 79 01 00 00 13 00 00 00 |F...5.L&y.......| 000c4060 00 00 00 00 4d 6f 64 65 43 68 61 6e 67 65 00 00 |....ModeChange..| 000c4070 f4 5d 0c 00 46 ff ff ff 0b 89 58 26 c6 00 00 00 |.]..F.....X&....| 000c4080 13 00 00 00 00 00 00 00 4d 6f 76 65 00 00 00 00 |........Move....| 000c4090 bc 5e 0c 00 46 ff ff ff ac 98 41 26 27 01 00 00 |.^..F.....A&'...| 000c40a0 13 00 00 00 00 00 00 00 6f 70 65 6e 62 6c 6f 63 |........openbloc| 000c40b0 6b 00 00 00 e4 5f 0c 00 46 ff ff ff b6 5a 4b 26 |k...._..F....ZK&| 000c40c0 a8 01 00 00 13 00 00 00 00 00 00 00 6f 70 65 6e |............open| 000c40d0 70 6f 73 00 8c 61 0c 00 46 ff ff ff ae b3 41 26 |pos..a..F.....A&| 000c40e0 d9 00 00 00 13 00 00 00 00 00 00 00 6f 75 74 6c |............outl| 000c40f0 69 6e 65 00 68 62 0c 00 46 ff ff ff 0e c0 4b 26 |ine.hb..F.....K&| 000c4100 59 01 00 00 13 00 00 00 00 00 00 00 50 61 72 65 |Y...........Pare| 000c4110 6e 74 4e 61 6d 65 00 00 c4 63 0c 00 46 ff ff ff |ntName...c..F...| 000c4120 6a ad 41 26 22 01 00 00 13 00 00 00 00 00 00 00 |j.A&"...........| 000c4130 72 65 64 72 61 77 62 6c 6f 63 6b 00 e8 64 0c 00 |redrawblock..d..| 000c4140 46 ff ff ff b7 8d 58 26 cc 00 00 00 13 00 00 00 |F.....X&........| 000c4150 00 00 00 00 52 65 73 69 7a 65 00 00 b4 65 0c 00 |....Resize...e..| 000c4160 46 ff ff ff f2 90 58 26 d0 00 00 00 13 00 00 00 |F.....X&........| 000c4170 00 00 00 00 53 63 72 6f 6c 6c 00 00 84 66 0c 00 |....Scroll...f..| 000c4180 46 ff ff ff d8 9e 58 26 db 00 00 00 13 00 00 00 |F.....X&........| 000c4190 00 00 00 00 53 65 74 46 6f 63 75 73 00 00 00 00 |....SetFocus....| 000c41a0 60 67 0c 00 46 ff ff ff 9c 26 4c 26 2a 01 00 00 |`g..F....&L&*...| 000c41b0 13 00 00 00 00 00 00 00 53 65 74 54 69 74 6c 65 |........SetTitle| 000c41c0 00 00 00 00 8c 68 0c 00 46 ff ff ff ea 6f 4b 26 |.....h..F....oK&| 000c41d0 0e 01 00 00 13 00 00 00 00 00 00 00 53 68 6f 77 |............Show| 000c41e0 00 00 00 00 9c 69 0c 00 46 ff ff ff 0a a0 41 26 |.....i..F.....A&| 000c41f0 d9 00 00 00 13 00 00 00 00 00 00 00 73 74 61 74 |............stat| 000c4200 65 00 00 00 78 6a 0c 00 46 fd ff ff 51 ab 58 26 |e...xj..F...Q.X&| 000c4210 0e 01 00 00 13 00 00 00 00 00 00 00 54 4c 00 00 |............TL..| 000c4220 88 6b 0c 00 46 ff ff ff 7e ac 4b 26 75 01 00 00 |.k..F...~.K&u...| 000c4230 13 00 00 00 00 00 00 00 47 65 74 49 6e 66 6f 33 |........GetInfo3| 000c4240 00 00 00 00 00 6d 0c 00 46 ff ff ff e1 61 4c 26 |.....m..F....aL&| 000c4250 b1 00 00 00 13 00 00 00 00 00 00 00 42 72 69 6e |............Brin| 000c4260 67 54 6f 46 72 6f 6e 74 00 00 00 00 b4 6d 0c 00 |gToFront.....m..| 000c4270 46 ff ff ff 59 81 4c 26 1c 01 00 00 13 00 00 00 |F...Y.L&........| 000c4280 00 00 00 00 43 6f 6e 73 74 72 61 69 6e 4d 6f 75 |....ConstrainMou| 000c4290 73 65 00 00 d0 6e 0c 00 46 ff ff ff 4e a2 4c 26 |se...n..F...N.L&| 000c42a0 f8 00 00 00 13 00 00 00 00 00 00 00 46 6f 72 63 |............Forc| 000c42b0 65 52 65 64 72 61 77 00 c8 6f 0c 00 46 ff ff ff |eRedraw..o..F...| 000c42c0 33 b5 4c 26 c2 00 00 00 13 00 00 00 00 00 00 00 |3.L&............| 000c42d0 47 65 74 43 6f 6f 72 64 73 00 00 00 44 41 54 41 |GetCoords...DATA| 000c42e0 c7 02 00 00 57 69 6e 64 6f 77 5f 41 75 74 6f 48 |....Window_AutoH| 000c42f0 65 6c 70 0a 53 79 6e 74 61 78 3a 09 3c 42 4f 4f |elp.Syntax:.<BOO| 000c4300 4c 3e 20 57 69 6e 64 6f 77 5f 41 75 74 6f 48 65 |L> Window_AutoHe| 000c4310 6c 70 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 |lp (<window_hand| 000c4320 6c 65 3e 20 77 69 6e 2c 20 3c 69 63 6f 6e 5f 68 |le> win, <icon_h| 000c4330 61 6e 64 6c 65 3e 20 69 63 6f 6e 29 3b 0a 48 65 |andle> icon);.He| 000c4340 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 |ader:.<DeskLib:W| 000c4350 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f 77 3e |indow.h=>Window>| 000c4360 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 |..Returns:.<TRUE| 000c4370 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e |> if successful.| 000c4380 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000c4390 61 64 64 73 20 61 6e 20 65 76 65 6e 74 20 68 61 |adds an event ha| 000c43a0 6e 64 6c 65 72 20 28 73 65 65 20 3c 45 76 65 6e |ndler (see <Even| 000c43b0 74 3e 29 20 66 6f 72 20 74 68 65 20 67 69 76 65 |t>) for the give| 000c43c0 6e 20 77 69 6e 64 6f 77 20 61 6e 64 20 69 63 6f |n window and ico| 000c43d0 6e 2e 20 45 76 65 72 79 20 48 65 6c 70 52 65 71 |n. Every HelpReq| 000c43e0 75 65 73 74 20 6d 65 73 73 61 67 65 20 77 69 6c |uest message wil| 000c43f0 6c 20 74 68 65 6e 20 62 79 20 61 6e 73 77 65 72 |l then by answer| 000c4400 20 62 79 20 67 65 74 74 69 6e 67 20 61 20 6d 65 | by getting a me| 000c4410 73 73 61 67 65 20 66 72 6f 6d 20 79 6f 75 72 20 |ssage from your | 000c4420 6d 65 73 73 61 67 65 20 66 69 6c 65 20 28 73 65 |message file (se| 000c4430 65 20 3c 4d 73 67 73 3e 29 2e 20 54 68 65 20 6d |e <Msgs>). The m| 000c4440 65 73 73 61 67 65 20 74 61 67 20 69 73 20 67 69 |essage tag is gi| 000c4450 76 65 6e 20 61 73 3a 0a 0a 7b 66 43 6f 64 65 7d |ven as:..{fCode}| 000c4460 20 20 20 20 74 65 6d 70 6c 61 74 65 6e 61 6d 65 | templatename| 000c4470 2e 69 63 6f 6e 6e 75 6d 62 65 72 7b 66 7d 0a 65 |.iconnumber{f}.e| 000c4480 67 7b 66 43 6f 64 65 7d 20 20 20 6d 61 69 6e 77 |g{fCode} mainw| 000c4490 69 6e 64 2e 2d 31 7b 66 7d 20 20 20 20 20 20 20 |ind.-1{f} | 000c44a0 20 20 20 20 20 20 28 6e 6f 20 69 63 6f 6e 29 2e | (no icon).| 000c44b0 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 61 6e |..You can use an| 000c44c0 20 69 63 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 20 | icon number of | 000c44d0 22 2a 22 20 69 6e 20 74 68 65 20 6d 65 73 73 61 |"*" in the messa| 000c44e0 67 65 73 20 66 69 6c 65 20 74 6f 20 72 65 73 70 |ges file to resp| 000c44f0 6f 6e 64 20 74 6f 20 61 6c 6c 20 68 65 6c 70 20 |ond to all help | 000c4500 72 65 71 75 65 73 74 73 20 77 69 74 68 6f 75 74 |requests without| 000c4510 20 73 70 65 63 69 66 69 63 20 68 65 6c 70 2e 0a | specific help..| 000c4520 0a 41 6c 6c 20 74 68 69 73 20 66 75 6e 63 74 69 |.All this functi| 000c4530 6f 6e 20 64 6f 65 73 20 69 73 3a 0a 0a 7b 66 43 |on does is:..{fC| 000c4540 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 |ode;align centre| 000c4550 7d 3c 45 76 65 6e 74 5f 43 6c 61 69 6d 3e 28 65 |}<Event_Claim>(e| 000c4560 76 65 6e 74 5f 55 53 45 52 4d 45 53 53 41 47 45 |vent_USERMESSAGE| 000c4570 52 45 43 4f 52 44 45 44 2c 20 77 69 6e 2c 20 69 |RECORDED, win, i| 000c4580 63 6f 6e 2c 20 3c 57 69 6e 64 6f 77 5f 48 65 6c |con, <Window_Hel| 000c4590 70 48 61 6e 64 6c 65 72 3e 2c 20 3c 4e 55 4c 4c |pHandler>, <NULL| 000c45a0 3e 29 3b 00 44 41 54 41 68 02 00 00 77 69 6e 64 |>);.DATAh...wind| 000c45b0 6f 77 5f 62 6c 6f 63 6b 0a 54 68 69 73 20 74 79 |ow_block.This ty| 000c45c0 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |pe is defined in| 000c45d0 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 | <DeskLib:Wimp.h| 000c45e0 3d 3e 57 69 6d 70 3e 2e 20 49 74 20 69 73 20 61 |=>Wimp>. It is a| 000c45f0 20 73 74 72 75 63 74 75 72 65 20 68 6f 6c 64 69 | structure holdi| 000c4600 6e 67 20 61 20 63 6f 6d 70 6c 65 74 65 20 77 69 |ng a complete wi| 000c4610 6e 64 6f 77 20 64 65 66 69 6e 69 74 69 6f 6e 20 |ndow definition | 000c4620 28 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 |(except for the | 000c4630 69 63 6f 6e 73 29 20 61 73 20 75 73 65 64 20 62 |icons) as used b| 000c4640 79 20 3c 57 69 6d 70 5f 43 72 65 61 74 65 57 69 |y <Wimp_CreateWi| 000c4650 6e 64 6f 77 3e 3a 0a 0a 20 20 20 5c 7b 0a 20 20 |ndow>:.. \{. | 000c4660 20 20 20 3c 77 69 6d 70 5f 62 6f 78 3e 09 09 73 | <wimp_box>..s| 000c4670 63 72 65 65 6e 72 65 63 74 3b 0a 20 20 20 20 20 |creenrect;. | 000c4680 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 09 73 63 72 |<wimp_point>.scr| 000c4690 6f 6c 6c 3b 0a 20 20 20 20 20 3c 77 69 6e 64 6f |oll;. <windo| 000c46a0 77 5f 68 61 6e 64 6c 65 3e 09 62 65 68 69 6e 64 |w_handle>.behind| 000c46b0 3b 0a 20 20 20 20 20 3c 77 69 6e 64 6f 77 5f 66 |;. <window_f| 000c46c0 6c 61 67 73 3e 09 66 6c 61 67 73 3b 0a 20 20 20 |lags>.flags;. | 000c46d0 20 20 63 68 61 72 09 09 63 6f 6c 6f 75 72 73 5b | char..colours[| 000c46e0 38 5d 3b 0a 20 20 20 20 20 3c 77 69 6d 70 5f 62 |8];. <wimp_b| 000c46f0 6f 78 3e 09 09 77 6f 72 6b 61 72 65 61 72 65 63 |ox>..workarearec| 000c4700 74 3b 0a 20 20 20 20 20 3c 69 63 6f 6e 5f 66 6c |t;. <icon_fl| 000c4710 61 67 73 3e 09 74 69 74 6c 65 66 6c 61 67 73 3b |ags>.titleflags;| 000c4720 0a 20 20 20 20 20 69 63 6f 6e 5f 66 6c 61 67 73 |. icon_flags| 000c4730 09 09 77 6f 72 6b 66 6c 61 67 73 3b 0a 20 20 20 |..workflags;. | 000c4740 20 20 76 6f 69 64 09 09 2a 73 70 72 69 74 65 61 | void..*spritea| 000c4750 72 65 61 3b 0a 20 20 20 20 20 3c 77 69 6e 64 6f |rea;. <windo| 000c4760 77 5f 6d 69 6e 73 69 7a 65 3e 09 6d 69 6e 73 69 |w_minsize>.minsi| 000c4770 7a 65 3b 0a 20 20 20 20 20 3c 69 63 6f 6e 5f 64 |ze;. <icon_d| 000c4780 61 74 61 3e 09 74 69 74 6c 65 3b 0a 20 20 20 20 |ata>.title;. | 000c4790 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 09 6e 75 | unsigned int.nu| 000c47a0 6d 69 63 6f 6e 73 3b 0a 20 20 20 7d 0a 0a 49 6d |micons;. }..Im| 000c47b0 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 |mediately after | 000c47c0 74 68 69 73 20 69 6e 20 6d 65 6d 6f 72 79 20 61 |this in memory a| 000c47d0 72 65 20 70 6c 61 63 65 64 20 74 68 65 20 69 63 |re placed the ic| 000c47e0 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 61 |on definitions a| 000c47f0 73 20 61 20 73 65 72 69 65 73 20 6f 66 20 3c 69 |s a series of <i| 000c4800 63 6f 6e 5f 62 6c 6f 63 6b 3e 73 2e 44 41 54 41 |con_block>s.DATA| 000c4810 27 01 00 00 77 69 6e 64 6f 77 5f 63 6f 6c 6f 75 |'...window_colou| 000c4820 72 69 6e 64 69 63 65 73 0a 54 68 69 73 20 65 6e |rindices.This en| 000c4830 75 6d 65 72 61 74 65 64 20 74 79 70 65 20 69 73 |umerated type is| 000c4840 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 | defined in <Des| 000c4850 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d |kLib:Wimp.h=>Wim| 000c4860 70 3e 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a |p> as follows:..| 000c4870 20 20 5c 7b 0a 20 20 20 20 20 77 69 6e 64 6f 77 | \{. window| 000c4880 63 6f 6c 5f 54 49 54 4c 45 46 4f 52 45 20 3d 20 |col_TITLEFORE = | 000c4890 30 2c 0a 20 20 20 20 20 77 69 6e 64 6f 77 63 6f |0,. windowco| 000c48a0 6c 5f 54 49 54 4c 45 42 41 43 4b 2c 0a 20 20 20 |l_TITLEBACK,. | 000c48b0 20 20 77 69 6e 64 6f 77 63 6f 6c 5f 57 4f 52 4b | windowcol_WORK| 000c48c0 46 4f 52 45 2c 0a 20 20 20 20 20 77 69 6e 64 6f |FORE,. windo| 000c48d0 77 63 6f 6c 5f 57 4f 52 4b 42 41 43 4b 2c 0a 20 |wcol_WORKBACK,. | 000c48e0 20 20 20 20 77 69 6e 64 6f 77 63 6f 6c 5f 53 43 | windowcol_SC| 000c48f0 52 4f 4c 4c 42 41 43 4b 2c 0a 20 20 20 20 20 77 |ROLLBACK,. w| 000c4900 69 6e 64 6f 77 63 6f 6c 5f 53 43 52 4f 4c 4c 46 |indowcol_SCROLLF| 000c4910 4f 52 45 2c 0a 20 20 20 20 20 77 69 6e 64 6f 77 |ORE,. window| 000c4920 63 6f 6c 5f 54 49 54 4c 45 48 49 4c 49 54 45 0a |col_TITLEHILITE.| 000c4930 20 20 7d 00 44 41 54 41 88 01 00 00 57 69 6e 64 | }.DATA....Wind| 000c4940 6f 77 5f 43 72 65 61 74 65 0a 53 79 6e 74 61 78 |ow_Create.Syntax| 000c4950 3a 09 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 |:.<window_handle| 000c4960 3e 20 57 69 6e 64 6f 77 5f 43 72 65 61 74 65 20 |> Window_Create | 000c4970 28 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 |(char *name, int| 000c4980 20 6d 61 78 74 69 74 6c 65 73 69 7a 65 29 3b 0a | maxtitlesize);.| 000c4990 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000c49a0 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f |:Window.h=>Windo| 000c49b0 77 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 57 69 6e |w>..Returns:.Win| 000c49c0 64 6f 77 20 68 61 6e 64 6c 65 20 6f 66 20 6e 65 |dow handle of ne| 000c49d0 77 20 77 69 6e 64 6f 77 2e 0a 0a 54 68 69 73 20 |w window...This | 000c49e0 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 20 74 |function finds t| 000c49f0 68 65 20 6e 61 6d 65 64 20 77 69 6e 64 6f 77 20 |he named window | 000c4a00 74 65 6d 70 6c 61 74 65 20 28 6c 6f 61 64 65 64 |template (loaded| 000c4a10 20 77 69 74 68 20 3c 54 65 6d 70 6c 61 74 65 5f | with <Template_| 000c4a20 4c 6f 61 64 46 69 6c 65 3e 29 20 61 6e 64 20 63 |LoadFile>) and c| 000c4a30 72 65 61 74 65 73 20 61 20 63 6f 70 79 20 6f 66 |reates a copy of| 000c4a40 20 74 68 65 20 77 69 6e 64 6f 77 20 77 68 69 63 | the window whic| 000c4a50 68 20 69 74 20 74 68 65 6e 20 70 61 73 73 65 73 |h it then passes| 000c4a60 20 74 6f 20 74 68 65 20 77 69 6d 70 20 75 73 69 | to the wimp usi| 000c4a70 6e 67 20 3c 57 69 6d 70 5f 43 72 65 61 74 65 57 |ng <Wimp_CreateW| 000c4a80 69 6e 64 6f 77 3e 2e 20 46 6f 72 20 64 65 74 61 |indow>. For deta| 000c4a90 69 6c 73 20 6f 66 20 2f 6d 61 78 74 69 74 6c 65 |ils of /maxtitle| 000c4aa0 73 69 7a 65 2f 2c 20 73 65 65 20 3c 54 65 6d 70 |size/, see <Temp| 000c4ab0 6c 61 74 65 5f 43 6c 6f 6e 65 3e 2e 44 41 54 41 |late_Clone>.DATA| 000c4ac0 fa 00 00 00 57 69 6e 64 6f 77 5f 43 72 65 61 74 |....Window_Creat| 000c4ad0 65 41 6e 64 53 68 6f 77 0a 53 79 6e 74 61 78 3a |eAndShow.Syntax:| 000c4ae0 09 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e |.<window_handle>| 000c4af0 20 57 69 6e 64 6f 77 5f 43 72 65 61 74 65 41 6e | Window_CreateAn| 000c4b00 64 53 68 6f 77 20 28 63 68 61 72 20 2a 6e 61 6d |dShow (char *nam| 000c4b10 65 2c 20 69 6e 74 20 6d 61 78 74 69 74 6c 65 73 |e, int maxtitles| 000c4b20 69 7a 65 2c 20 3c 77 69 6e 64 6f 77 5f 6f 70 65 |ize, <window_ope| 000c4b30 6e 70 6f 73 3e 20 70 6f 73 29 3b 0a 48 65 61 64 |npos> pos);.Head| 000c4b40 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6e |er:.<DeskLib:Win| 000c4b50 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a |dow.h=>Window>..| 000c4b60 52 65 74 75 72 6e 73 3a 09 4e 65 77 20 77 69 6e |Returns:.New win| 000c4b70 64 6f 77 20 68 61 6e 64 6c 65 2e 0a 0a 54 68 69 |dow handle...Thi| 000c4b80 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 |s function combi| 000c4b90 6e 65 73 20 3c 57 69 6e 64 6f 77 5f 43 72 65 61 |nes <Window_Crea| 000c4ba0 74 65 3e 20 61 6e 64 20 3c 57 69 6e 64 6f 77 5f |te> and <Window_| 000c4bb0 53 68 6f 77 3e 2e 00 00 44 41 54 41 4e 01 00 00 |Show>...DATAN...| 000c4bc0 57 69 6e 64 6f 77 5f 44 65 6c 65 74 65 0a 53 79 |Window_Delete.Sy| 000c4bd0 6e 74 61 78 3a 09 76 6f 69 64 20 57 69 6e 64 6f |ntax:.void Windo| 000c4be0 77 5f 44 65 6c 65 74 65 20 28 3c 77 69 6e 64 6f |w_Delete (<windo| 000c4bf0 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a |w_handle> win);.| 000c4c00 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c 69 62 |Header:.<DeskLib| 000c4c10 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f |:Window.h=>Windo| 000c4c20 77 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |w>..This functio| 000c4c30 6e 20 64 65 6c 65 74 65 73 20 61 6e 79 20 77 69 |n deletes any wi| 000c4c40 6e 64 6f 77 2e 20 49 66 20 74 68 65 20 77 69 6e |ndow. If the win| 000c4c50 64 6f 77 20 77 61 73 20 63 72 65 61 74 65 64 20 |dow was created | 000c4c60 77 69 74 68 20 3c 57 69 6e 64 6f 77 5f 43 72 65 |with <Window_Cre| 000c4c70 61 74 65 3e 2c 20 74 68 65 6e 20 74 68 65 20 6d |ate>, then the m| 000c4c80 65 6d 6f 72 79 20 75 73 65 64 20 62 79 20 74 68 |emory used by th| 000c4c90 65 20 77 69 6e 64 6f 77 20 69 73 20 66 72 65 65 |e window is free| 000c4ca0 64 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |d. This function| 000c4cb0 20 61 6c 73 6f 20 72 65 6d 6f 76 65 73 20 61 6e | also removes an| 000c4cc0 79 20 45 76 65 6e 74 20 68 61 6e 64 6c 65 72 20 |y Event handler | 000c4cd0 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 |attached to the | 000c4ce0 77 69 6e 64 6f 77 20 28 73 65 65 20 3c 44 65 73 |window (see <Des| 000c4cf0 6b 4c 69 62 3a 45 76 65 6e 74 2e 68 3d 3e 45 76 |kLib:Event.h=>Ev| 000c4d00 65 6e 74 3e 29 2e 00 00 44 41 54 41 16 01 00 00 |ent>)...DATA....| 000c4d10 57 69 6e 64 6f 77 5f 44 65 6c 65 74 65 49 6e 63 |Window_DeleteInc| 000c4d20 4d 65 6e 75 73 0a 53 79 6e 74 61 78 3a 09 76 6f |Menus.Syntax:.vo| 000c4d30 69 64 20 57 69 6e 64 6f 77 5f 44 65 6c 65 74 65 |id Window_Delete| 000c4d40 49 6e 63 4d 65 6e 75 73 20 28 3c 77 69 6e 64 6f |IncMenus (<windo| 000c4d50 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a |w_handle> win);.| 000c4d60 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 |Header:.<TimsLib| 000c4d70 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f |:Window.h=>Windo| 000c4d80 77 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |w_TL>..This func| 000c4d90 74 69 6f 6e 20 64 65 74 61 63 68 65 73 20 61 6c |tion detaches al| 000c4da0 6c 20 6d 65 6e 75 73 20 66 72 6f 6d 20 74 68 65 |l menus from the| 000c4db0 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 20 61 6e | given window an| 000c4dc0 64 20 74 68 65 6e 20 64 65 6c 65 74 65 73 20 74 |d then deletes t| 000c4dd0 68 65 20 77 69 6e 64 6f 77 2e 20 49 74 20 64 6f |he window. It do| 000c4de0 65 73 20 74 68 69 73 20 62 79 20 63 61 6c 6c 69 |es this by calli| 000c4df0 6e 67 20 3c 4d 65 6e 75 5f 44 65 74 61 63 68 4d |ng <Menu_DetachM| 000c4e00 65 6e 75 3e 20 61 6e 64 20 74 68 65 6e 20 3c 57 |enu> and then <W| 000c4e10 69 6e 64 6f 77 5f 44 65 6c 65 74 65 3e 2e 00 00 |indow_Delete>...| 000c4e20 44 41 54 41 d4 05 00 00 77 69 6e 64 6f 77 5f 66 |DATA....window_f| 000c4e30 6c 61 67 73 0a 54 68 69 73 20 74 79 70 65 20 69 |lags.This type i| 000c4e40 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 000c4e50 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 |skLib:Wimp.h=>Wi| 000c4e60 6d 70 3e 2e 20 49 74 20 70 72 6f 76 69 64 65 73 |mp>. It provides| 000c4e70 20 65 61 73 79 20 61 63 63 65 73 73 20 74 6f 20 | easy access to | 000c4e80 77 69 6e 64 6f 77 20 66 6c 61 67 73 2c 20 62 6f |window flags, bo| 000c4e90 74 68 20 61 73 20 69 6e 64 69 76 69 64 75 61 6c |th as individual| 000c4ea0 20 62 69 74 73 20 61 6e 64 20 74 6f 20 74 68 65 | bits and to the| 000c4eb0 69 72 20 6f 76 65 72 61 6c 6c 20 76 61 6c 75 65 |ir overall value| 000c4ec0 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 20 |. It is defined | 000c4ed0 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |as the following| 000c4ee0 20 75 6e 69 6f 6e 3a 0a 0a 20 20 5c 7b 0a 20 20 | union:.. \{. | 000c4ef0 20 20 73 74 72 75 63 74 0a 20 20 20 20 5c 7b 0a | struct. \{.| 000c4f00 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 000c4f10 6e 74 20 68 61 73 74 69 74 6c 65 09 3a 20 31 3b |nt hastitle.: 1;| 000c4f20 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 |. unsigned | 000c4f30 69 6e 74 20 6d 6f 76 65 61 62 6c 65 09 3a 20 31 |int moveable.: 1| 000c4f40 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 000c4f50 20 69 6e 74 20 68 61 73 76 73 63 72 6f 6c 6c 09 | int hasvscroll.| 000c4f60 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 |: 1;. unsig| 000c4f70 6e 65 64 20 69 6e 74 20 68 61 73 68 73 63 72 6f |ned int hashscro| 000c4f80 6c 6c 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |ll.: 1;. un| 000c4f90 73 69 67 6e 65 64 20 69 6e 74 20 61 75 74 6f 72 |signed int autor| 000c4fa0 65 64 72 61 77 09 3a 20 31 3b 0a 20 20 20 20 20 |edraw.: 1;. | 000c4fb0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 61 | unsigned int pa| 000c4fc0 6e 65 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |ne.: 1;. un| 000c4fd0 73 69 67 6e 65 64 20 69 6e 74 20 6e 6f 62 6f 75 |signed int nobou| 000c4fe0 6e 64 73 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |nds.: 1;. u| 000c4ff0 6e 73 69 67 6e 65 64 20 69 6e 74 20 6e 6f 62 61 |nsigned int noba| 000c5000 63 6b 63 6c 6f 73 65 09 3a 20 31 3b 20 0a 20 20 |ckclose.: 1; . | 000c5010 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 000c5020 20 73 63 72 6f 6c 6c 72 71 09 3a 20 31 3b 0a 20 | scrollrq.: 1;. | 000c5030 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e | unsigned in| 000c5040 74 20 73 63 72 6f 6c 6c 72 71 64 65 62 6f 75 6e |t scrollrqdeboun| 000c5050 63 65 64 20 3a 20 31 3b 0a 20 20 20 20 20 20 75 |ced : 1;. u| 000c5060 6e 73 69 67 6e 65 64 20 69 6e 74 20 72 65 61 6c |nsigned int real| 000c5070 63 6f 6c 6f 75 72 73 09 3a 20 31 3b 0a 20 20 20 |colours.: 1;. | 000c5080 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 000c5090 62 61 63 6b 77 69 6e 64 6f 77 09 3a 20 31 3b 0a |backwindow.: 1;.| 000c50a0 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 000c50b0 6e 74 20 68 6f 74 6b 65 79 73 09 3a 20 31 3b 0a |nt hotkeys.: 1;.| 000c50c0 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 | unsigned i| 000c50d0 6e 74 20 6b 65 65 70 6f 6e 73 63 72 65 65 6e 09 |nt keeponscreen.| 000c50e0 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 |: 1;. unsig| 000c50f0 6e 65 64 20 69 6e 74 20 69 67 6e 6f 72 65 72 69 |ned int ignoreri| 000c5100 67 68 74 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |ght.: 1;. u| 000c5110 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 67 6e 6f |nsigned int igno| 000c5120 72 65 62 6f 74 74 6f 6d 09 3a 20 31 3b 0a 20 20 |rebottom.: 1;. | 000c5130 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 000c5140 20 6f 70 65 6e 09 3a 20 31 3b 0a 20 20 20 20 20 | open.: 1;. | 000c5150 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 74 6f | unsigned int to| 000c5160 70 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 |p.: 1;. uns| 000c5170 69 67 6e 65 64 20 69 6e 74 20 66 75 6c 6c 73 69 |igned int fullsi| 000c5180 7a 65 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e |ze.: 1;. un| 000c5190 73 69 67 6e 65 64 20 69 6e 74 20 69 73 74 6f 67 |signed int istog| 000c51a0 67 6c 69 6e 67 09 3a 20 31 3b 0a 20 20 20 20 20 |gling.: 1;. | 000c51b0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 6f | unsigned int fo| 000c51c0 63 75 73 09 3a 20 31 3b 0a 20 20 20 20 20 20 75 |cus.: 1;. u| 000c51d0 6e 73 69 67 6e 65 64 20 69 6e 74 20 66 6f 72 63 |nsigned int forc| 000c51e0 65 6f 6e 63 65 09 3a 20 31 3b 0a 20 20 20 20 20 |eonce.: 1;. | 000c51f0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 75 | unsigned int du| 000c5200 6d 6d 79 32 32 09 3a 20 31 3b 0a 20 20 20 20 20 |mmy22.: 1;. | 000c5210 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 75 | unsigned int du| 000c5220 6d 6d 79 32 33 09 3a 20 31 3b 0a 20 20 20 20 20 |mmy23.: 1;. | 000c5230 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 61 | unsigned int ba| 000c5240 63 6b 69 63 6f 6e 09 3a 20 31 3b 0a 20 20 20 20 |ckicon.: 1;. | 000c5250 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 | unsigned int c| 000c5260 6c 6f 73 65 69 63 6f 6e 09 3a 20 31 3b 0a 20 20 |loseicon.: 1;. | 000c5270 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | unsigned int| 000c5280 20 74 69 74 6c 65 62 61 72 09 3a 20 31 3b 0a 20 | titlebar.: 1;. | 000c5290 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e | unsigned in| 000c52a0 74 20 74 6f 67 67 6c 65 69 63 6f 6e 09 3a 20 31 |t toggleicon.: 1| 000c52b0 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 000c52c0 20 69 6e 74 20 76 73 63 72 6f 6c 6c 09 3a 20 31 | int vscroll.: 1| 000c52d0 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 |;. unsigned| 000c52e0 20 69 6e 74 20 61 64 6a 75 73 74 69 63 6f 6e 09 | int adjusticon.| 000c52f0 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 |: 1;. unsig| 000c5300 6e 65 64 20 69 6e 74 20 68 73 63 72 6f 6c 6c 09 |ned int hscroll.| 000c5310 3a 20 31 3b 0a 20 20 20 20 20 20 75 6e 73 69 67 |: 1;. unsig| 000c5320 6e 65 64 20 69 6e 74 20 6e 65 77 66 6c 61 67 73 |ned int newflags| 000c5330 09 3a 20 31 3b 0a 20 20 20 20 7d 20 64 61 74 61 |.: 1;. } data| 000c5340 3b 0a 20 20 20 20 69 6e 74 20 76 61 6c 75 65 3b |;. int value;| 000c5350 0a 20 20 7d 0a 0a 4e 6f 74 65 20 74 68 61 74 20 |. }..Note that | 000c5360 7b 2f 7d 64 61 74 61 2e 6e 65 77 66 6c 61 67 73 |{/}data.newflags| 000c5370 7b 2f 7d 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 |{/} should alway| 000c5380 73 20 62 65 20 3c 54 52 55 45 3e 2c 20 61 6e 64 |s be <TRUE>, and| 000c5390 20 7b 2f 7d 64 61 74 61 2e 68 61 73 74 69 74 6c | {/}data.hastitl| 000c53a0 65 7b 2f 7d 2c 20 2f 68 61 73 76 73 63 72 6f 6c |e{/}, /hasvscrol| 000c53b0 6c 2f 2c 20 2f 68 61 73 68 73 63 72 6f 6c 6c 2f |l/, /hashscroll/| 000c53c0 2c 20 61 6e 64 20 2f 6e 6f 62 61 63 6b 63 6c 6f |, and /nobackclo| 000c53d0 73 65 2f 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 |se/ should not b| 000c53e0 65 20 75 73 65 64 20 69 6e 20 74 68 61 74 20 63 |e used in that c| 000c53f0 61 73 65 2e 44 41 54 41 d6 00 00 00 57 69 6e 64 |ase.DATA....Wind| 000c5400 6f 77 5f 46 6f 72 63 65 43 6f 6d 70 6c 65 74 65 |ow_ForceComplete| 000c5410 52 65 64 72 61 77 0a 53 79 6e 74 61 78 3a 09 76 |Redraw.Syntax:.v| 000c5420 6f 69 64 20 57 69 6e 64 6f 77 5f 46 6f 72 63 65 |oid Window_Force| 000c5430 43 6f 6d 70 6c 65 74 65 52 65 64 72 61 77 20 28 |CompleteRedraw (| 000c5440 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 000c5450 77 69 6e 64 6f 77 29 3b 0a 48 65 61 64 65 72 3a |window);.Header:| 000c5460 09 3c 54 69 6d 73 4c 69 62 3a 57 69 6e 64 6f 77 |.<TimsLib:Window| 000c5470 2e 68 3d 3e 57 69 6e 64 6f 77 5f 54 4c 3e 0a 0a |.h=>Window_TL>..| 000c5480 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 6f |This function fo| 000c5490 72 63 65 73 20 61 20 72 65 64 72 61 77 20 6f 66 |rces a redraw of| 000c54a0 20 74 68 65 20 65 6e 74 69 72 65 20 77 6f 72 6b | the entire work| 000c54b0 20 61 72 65 61 20 6f 66 20 74 68 65 20 67 69 76 | area of the giv| 000c54c0 65 6e 20 77 69 6e 64 6f 77 2e 00 00 44 41 54 41 |en window...DATA| 000c54d0 6f 01 00 00 57 69 6e 64 6f 77 5f 47 65 74 49 6e |o...Window_GetIn| 000c54e0 66 6f 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |fo.Syntax:.void | 000c54f0 57 69 6e 64 6f 77 5f 47 65 74 49 6e 66 6f 20 28 |Window_GetInfo (| 000c5500 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 000c5510 77 69 6e 2c 20 3c 77 69 6e 64 6f 77 5f 69 6e 66 |win, <window_inf| 000c5520 6f 3e 20 2a 72 65 73 29 3b 0a 48 65 61 64 65 72 |o> *res);.Header| 000c5530 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6e 64 6f |:.<DeskLib:Windo| 000c5540 77 2e 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a 54 68 |w.h=>Window>..Th| 000c5550 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 73 |is function is s| 000c5560 69 6d 70 6c 79 20 61 20 66 72 6f 6e 74 20 65 6e |imply a front en| 000c5570 64 20 74 6f 20 3c 57 69 6d 70 5f 47 65 74 57 69 |d to <Wimp_GetWi| 000c5580 6e 64 6f 77 49 6e 66 6f 3e 2e 20 48 6f 77 65 76 |ndowInfo>. Howev| 000c5590 65 72 2c 20 6e 6f 20 69 63 6f 6e 20 64 65 66 69 |er, no icon defi| 000c55a0 6e 69 74 69 6f 6e 73 20 61 72 65 20 72 65 74 75 |nitions are retu| 000c55b0 72 6e 65 64 2e 20 54 68 65 20 77 69 6e 64 6f 77 |rned. The window| 000c55c0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 | information is | 000c55d0 70 6c 61 63 65 64 20 69 6e 20 74 68 65 20 62 6c |placed in the bl| 000c55e0 6f 63 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 |ock pointed to b| 000c55f0 65 20 2f 72 65 73 2f 2e 0a 0a 4f 6e 20 52 49 53 |e /res/...On RIS| 000c5600 43 20 4f 53 20 33 20 79 6f 75 20 73 68 6f 75 6c |C OS 3 you shoul| 000c5610 64 20 75 73 65 20 74 68 65 20 62 65 74 74 65 72 |d use the better| 000c5620 20 3c 57 69 6e 64 6f 77 5f 47 65 74 49 6e 66 6f | <Window_GetInfo| 000c5630 33 3e 20 69 6e 73 74 65 61 64 2e 00 44 41 54 41 |3> instead..DATA| 000c5640 82 00 00 00 77 69 6e 64 6f 77 5f 68 61 6e 64 6c |....window_handl| 000c5650 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |e.This type is d| 000c5660 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c |efined in <DeskL| 000c5670 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e |ib:Wimp.h=>Wimp>| 000c5680 20 61 73 20 61 20 74 79 70 65 20 68 6f 6c 64 69 | as a type holdi| 000c5690 6e 67 20 61 20 77 69 6e 64 6f 77 20 68 61 6e 64 |ng a window hand| 000c56a0 6c 65 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 |le. It is define| 000c56b0 64 20 61 73 20 61 6e 20 2f 69 6e 74 2f 2e 00 00 |d as an /int/...| 000c56c0 44 41 54 41 66 02 00 00 57 69 6e 64 6f 77 5f 48 |DATAf...Window_H| 000c56d0 65 6c 70 48 61 6e 64 6c 65 72 0a 53 79 6e 74 61 |elpHandler.Synta| 000c56e0 78 3a 09 3c 42 4f 4f 4c 3e 20 57 69 6e 64 6f 77 |x:.<BOOL> Window| 000c56f0 5f 48 65 6c 70 48 61 6e 64 6c 65 72 20 28 3c 65 |_HelpHandler (<e| 000c5700 76 65 6e 74 5f 70 6f 6c 6c 62 6c 6f 63 6b 3e 20 |vent_pollblock> | 000c5710 2a 65 76 65 6e 74 2c 20 76 6f 69 64 20 2a 72 65 |*event, void *re| 000c5720 66 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |f);.Header:.<Des| 000c5730 6b 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 |kLib:Window.h=>W| 000c5740 69 6e 64 6f 77 3e 0a 0a 52 65 74 75 72 6e 73 3a |indow>..Returns:| 000c5750 09 3c 54 52 55 45 3e 20 69 66 20 61 20 68 65 6c |.<TRUE> if a hel| 000c5760 70 20 72 65 70 6c 79 20 73 65 6e 74 2e 0a 0a 54 |p reply sent...T| 000c5770 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 |his function is | 000c5780 61 6e 20 65 76 65 6e 74 20 68 61 6e 64 6c 65 72 |an event handler| 000c5790 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 | which can be us| 000c57a0 65 64 20 77 69 74 68 20 65 69 74 68 65 72 20 3c |ed with either <| 000c57b0 45 76 65 6e 74 5f 43 6c 61 69 6d 3e 20 6f 72 20 |Event_Claim> or | 000c57c0 3c 45 76 65 6e 74 4d 73 67 5f 43 6c 61 69 6d 3e |<EventMsg_Claim>| 000c57d0 2e 20 49 74 20 72 65 73 70 6f 6e 64 73 20 74 6f |. It responds to| 000c57e0 20 48 65 6c 70 52 65 71 75 65 73 74 20 6d 65 73 | HelpRequest mes| 000c57f0 73 61 67 65 73 20 62 79 20 67 65 74 74 69 6e 67 |sages by getting| 000c5800 20 61 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 | a message from | 000c5810 79 6f 75 72 20 6d 65 73 73 61 67 65 20 66 69 6c |your message fil| 000c5820 65 20 28 73 65 65 20 3c 4d 73 67 73 3e 29 2e 20 |e (see <Msgs>). | 000c5830 54 68 65 20 6d 65 73 73 61 67 65 20 74 61 67 20 |The message tag | 000c5840 69 73 20 67 69 76 65 6e 20 61 73 3a 0a 0a 7b 66 |is given as:..{f| 000c5850 43 6f 64 65 7d 20 20 20 20 74 65 6d 70 6c 61 74 |Code} templat| 000c5860 65 6e 61 6d 65 2e 69 63 6f 6e 6e 75 6d 62 65 72 |ename.iconnumber| 000c5870 7b 66 7d 0a 65 67 2e 0a 7b 66 43 6f 64 65 7d 20 |{f}.eg..{fCode} | 000c5880 20 20 20 69 6e 66 6f 77 69 6e 64 2e 34 0a 20 20 | infowind.4. | 000c5890 20 20 6d 61 69 6e 77 69 6e 64 2e 2d 31 7b 66 7d | mainwind.-1{f}| 000c58a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f | (no| 000c58b0 20 69 63 6f 6e 29 2e 0a 0a 59 6f 75 20 63 61 6e | icon)...You can| 000c58c0 20 75 73 65 20 61 6e 20 69 63 6f 6e 20 6e 75 6d | use an icon num| 000c58d0 62 65 72 20 6f 66 20 22 2a 22 20 69 6e 20 74 68 |ber of "*" in th| 000c58e0 65 20 6d 65 73 73 61 67 65 73 20 66 69 6c 65 20 |e messages file | 000c58f0 74 6f 20 72 65 73 70 6f 6e 64 20 74 6f 20 61 6c |to respond to al| 000c5900 6c 20 68 65 6c 70 20 72 65 71 75 65 73 74 73 20 |l help requests | 000c5910 77 69 74 68 6f 75 74 20 73 70 65 63 69 66 69 63 |without specific| 000c5920 20 68 65 6c 70 2e 00 00 44 41 54 41 0a 01 00 00 | help...DATA....| 000c5930 57 69 6e 64 6f 77 5f 48 69 64 65 0a 53 79 6e 74 |Window_Hide.Synt| 000c5940 61 78 3a 09 76 6f 69 64 20 57 69 6e 64 6f 77 5f |ax:.void Window_| 000c5950 48 69 64 65 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |Hide (<window_ha| 000c5960 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a 48 65 61 64 |ndle> win);.Head| 000c5970 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6e |er:.<DeskLib:Win| 000c5980 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a |dow.h=>Window>..| 000c5990 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 000c59a0 6d 6f 76 65 73 20 74 68 65 20 73 70 65 63 69 66 |moves the specif| 000c59b0 69 65 64 20 77 69 6e 64 6f 77 20 66 72 6f 6d 20 |ied window from | 000c59c0 74 68 65 20 64 69 73 70 6c 61 79 2c 20 62 75 74 |the display, but| 000c59d0 20 64 6f 65 73 20 6e 6f 74 20 64 65 6c 65 74 65 | does not delete| 000c59e0 20 69 74 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e | its definition.| 000c59f0 20 49 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e | It is equivalen| 000c5a00 74 20 28 61 6e 64 20 69 73 20 69 6e 20 66 61 63 |t (and is in fac| 000c5a10 74 20 61 20 6d 61 63 72 6f 20 66 6f 72 29 20 3c |t a macro for) <| 000c5a20 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 |Wimp_CloseWindow| 000c5a30 3e 2e 00 00 44 41 54 41 8c 00 00 00 77 69 6e 64 |>...DATA....wind| 000c5a40 6f 77 5f 49 43 4f 4e 42 41 52 0a 54 68 69 73 20 |ow_ICONBAR.This | 000c5a50 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e 65 64 |macro is defined| 000c5a60 20 69 6e 20 3c 57 69 6d 70 2e 68 3d 3e 57 69 6d | in <Wimp.h=>Wim| 000c5a70 70 3e 20 61 73 20 61 20 6d 61 63 72 6f 20 63 6f |p> as a macro co| 000c5a80 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 77 69 6e |ntaining the win| 000c5a90 64 6f 77 20 68 61 6e 64 6c 65 20 6f 66 20 74 68 |dow handle of th| 000c5aa0 65 20 69 63 6f 6e 20 62 61 72 2e 20 49 74 20 69 |e icon bar. It i| 000c5ab0 73 20 64 65 66 69 6e 65 64 20 61 73 20 2d 32 2e |s defined as -2.| 000c5ac0 44 41 54 41 e6 00 00 00 77 69 6e 64 6f 77 5f 69 |DATA....window_i| 000c5ad0 6e 66 6f 0a 54 68 69 73 20 74 79 70 65 20 69 73 |nfo.This type is| 000c5ae0 20 64 65 66 69 6e 65 64 20 62 79 20 3c 44 65 73 | defined by <Des| 000c5af0 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d |kLib:Wimp.h=>Wim| 000c5b00 70 3e 2e 20 49 74 20 69 73 20 61 20 73 74 72 75 |p>. It is a stru| 000c5b10 63 74 75 72 65 20 68 6f 6c 64 69 6e 67 20 77 69 |cture holding wi| 000c5b20 6e 64 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e |ndow information| 000c5b30 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 | as returned by | 000c5b40 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 57 69 |the function <Wi| 000c5b50 6d 70 5f 47 65 74 57 69 6e 64 6f 77 49 6e 66 6f |mp_GetWindowInfo| 000c5b60 3e 2e 0a 0a 20 20 20 5c 7b 0a 20 20 20 20 20 3c |>... \{. <| 000c5b70 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 |window_handle>.w| 000c5b80 69 6e 64 6f 77 3b 0a 20 20 20 20 20 3c 77 69 6e |indow;. <win| 000c5b90 64 6f 77 5f 62 6c 6f 63 6b 3e 09 62 6c 6f 63 6b |dow_block>.block| 000c5ba0 3b 0a 20 20 20 7d 00 00 44 41 54 41 cf 00 00 00 |;. }..DATA....| 000c5bb0 77 69 6e 64 6f 77 5f 6d 69 6e 73 69 7a 65 0a 54 |window_minsize.T| 000c5bc0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000c5bd0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000c5be0 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 |Wimp.h=>Wimp>. I| 000c5bf0 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000c5c00 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 6d 69 6e | holding the min| 000c5c10 69 6d 75 6d 20 77 69 64 74 68 2f 68 65 69 67 68 |imum width/heigh| 000c5c20 74 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 20 |t of the window | 000c5c30 61 73 20 31 36 2d 62 69 74 20 69 6e 74 65 67 65 |as 16-bit intege| 000c5c40 72 73 3a 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 |rs:.. \{. | 000c5c50 20 20 20 69 6e 74 20 78 20 3a 20 31 36 3b 0a 20 | int x : 16;. | 000c5c60 20 20 20 20 20 20 69 6e 74 20 79 20 3a 20 31 36 | int y : 16| 000c5c70 3b 0a 20 20 20 20 7d 00 44 41 54 41 79 01 00 00 |;. }.DATAy...| 000c5c80 57 69 6e 64 6f 77 5f 4d 6f 64 65 43 68 61 6e 67 |Window_ModeChang| 000c5c90 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 57 |e.Syntax:.void W| 000c5ca0 69 6e 64 6f 77 5f 4d 6f 64 65 43 68 61 6e 67 65 |indow_ModeChange| 000c5cb0 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000c5cc0 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6e 64 6f 77 |.<DeskLib:Window| 000c5cd0 2e 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a 54 68 69 |.h=>Window>..Thi| 000c5ce0 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 |s function will | 000c5cf0 67 6f 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 6f |go through all o| 000c5d00 66 20 79 6f 75 72 20 74 65 6d 70 6c 61 74 65 73 |f your templates| 000c5d10 20 28 77 68 69 63 68 20 6d 75 73 74 20 41 4c 4c | (which must ALL| 000c5d20 20 68 61 76 65 20 62 65 65 6e 20 63 72 65 61 74 | have been creat| 000c5d30 65 64 20 75 73 69 6e 67 20 3c 57 69 6e 64 6f 77 |ed using <Window| 000c5d40 5f 43 72 65 61 74 65 3e 29 20 61 6e 64 20 72 65 |_Create>) and re| 000c5d50 2d 66 69 6e 64 20 74 68 65 20 6f 75 74 6c 69 6e |-find the outlin| 000c5d60 65 20 66 6f 6e 74 73 2e 20 54 68 69 73 20 6e 65 |e fonts. This ne| 000c5d70 65 64 73 20 74 6f 20 62 65 20 64 6f 6e 65 20 6f |eds to be done o| 000c5d80 6e 20 61 20 6d 6f 64 65 20 63 68 61 6e 67 65 2e |n a mode change.| 000c5d90 20 46 6f 6e 74 73 20 69 6e 20 77 69 6e 64 6f 77 | Fonts in window| 000c5da0 20 74 69 74 6c 65 73 20 61 72 65 20 6e 6f 74 20 | titles are not | 000c5db0 66 69 78 65 64 20 77 69 74 68 20 74 68 69 73 20 |fixed with this | 000c5dc0 66 75 6e 63 74 69 6f 6e 2e 0a 0a 53 65 65 20 74 |function...See t| 000c5dd0 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 48 61 6e |he function <Han| 000c5de0 64 6c 65 72 5f 4d 6f 64 65 43 68 61 6e 67 65 3e |dler_ModeChange>| 000c5df0 2e 00 00 00 44 41 54 41 c6 00 00 00 57 69 6e 64 |....DATA....Wind| 000c5e00 6f 77 5f 4d 6f 76 65 0a 53 79 6e 74 61 78 3a 09 |ow_Move.Syntax:.| 000c5e10 76 6f 69 64 20 57 69 6e 64 6f 77 5f 4d 6f 76 65 |void Window_Move| 000c5e20 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 | (<window_handle| 000c5e30 3e 20 77 69 6e 29 3b 0a 48 65 61 64 65 72 3a 09 |> win);.Header:.| 000c5e40 3c 54 69 6d 73 4c 69 62 3a 57 69 6e 64 6f 77 2e |<TimsLib:Window.| 000c5e50 68 3d 3e 57 69 6e 64 6f 77 5f 54 4c 3e 0a 0a 54 |h=>Window_TL>..T| 000c5e60 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 75 |his function cau| 000c5e70 73 65 73 20 74 68 65 20 77 69 6e 64 6f 77 20 62 |ses the window b| 000c5e80 65 20 62 65 20 64 72 61 67 67 65 64 2c 20 61 73 |e be dragged, as| 000c5e90 20 69 66 20 74 68 65 20 75 73 65 72 20 68 61 64 | if the user had| 000c5ea0 20 64 72 61 67 67 65 64 20 6f 6e 20 74 68 65 20 | dragged on the | 000c5eb0 74 69 74 6c 65 20 62 61 72 2e 00 00 44 41 54 41 |title bar...DATA| 000c5ec0 27 01 00 00 77 69 6e 64 6f 77 5f 6f 70 65 6e 62 |'...window_openb| 000c5ed0 6c 6f 63 6b 0a 54 68 69 73 20 74 79 70 65 20 69 |lock.This type i| 000c5ee0 73 20 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 |s defined in <De| 000c5ef0 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 |skLib:Wimp.h=>Wi| 000c5f00 6d 70 3e 20 61 73 20 61 20 74 79 70 65 20 63 61 |mp> as a type ca| 000c5f10 70 61 62 6c 65 20 6f 66 20 68 6f 6c 64 69 6e 67 |pable of holding| 000c5f20 20 74 68 65 20 64 61 74 61 20 75 73 65 64 20 62 | the data used b| 000c5f30 79 20 3c 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 |y <Wimp_OpenWind| 000c5f40 6f 77 3e 2e 20 49 74 20 69 73 20 64 65 66 69 6e |ow>. It is defin| 000c5f50 65 64 20 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 |ed as the follow| 000c5f60 69 6e 67 20 73 74 72 75 63 74 75 72 65 3a 0a 0a |ing structure:..| 000c5f70 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6e 64 6f 77 | \{. <window| 000c5f80 5f 68 61 6e 64 6c 65 3e 09 77 69 6e 64 6f 77 3b |_handle>.window;| 000c5f90 0a 20 20 20 20 3c 77 69 6d 70 5f 62 6f 78 3e 09 |. <wimp_box>.| 000c5fa0 09 73 63 72 65 65 6e 72 65 63 74 3b 0a 20 20 20 |.screenrect;. | 000c5fb0 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 09 73 63 | <wimp_point>.sc| 000c5fc0 72 6f 6c 6c 3b 0a 20 20 20 20 77 69 6e 64 6f 77 |roll;. window| 000c5fd0 5f 68 61 6e 64 6c 65 09 62 65 68 69 6e 64 3b 0a |_handle.behind;.| 000c5fe0 20 20 7d 00 44 41 54 41 a8 01 00 00 77 69 6e 64 | }.DATA....wind| 000c5ff0 6f 77 5f 6f 70 65 6e 70 6f 73 0a 54 68 69 73 20 |ow_openpos.This | 000c6000 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 |type is defined | 000c6010 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6e 64 |in <DeskLib:Wind| 000c6020 6f 77 2e 68 3d 3e 57 69 6e 64 6f 77 2e 3e 2e 20 |ow.h=>Window.>. | 000c6030 49 74 20 69 73 20 61 6e 20 65 6e 75 6d 65 72 61 |It is an enumera| 000c6040 74 65 64 20 74 79 70 65 20 75 73 65 64 20 62 79 |ted type used by| 000c6050 20 44 65 73 6b 4c 69 62 20 66 75 6e 63 74 69 6f | DeskLib functio| 000c6060 6e 73 20 74 6f 20 64 65 63 69 64 65 20 77 68 65 |ns to decide whe| 000c6070 72 65 20 74 6f 20 6f 70 65 6e 20 61 20 77 69 6e |re to open a win| 000c6080 64 6f 77 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a |dow:.{wrap off}.| 000c6090 5c 7b 0a 20 20 6f 70 65 6e 5f 57 48 45 52 45 56 |\{. open_WHEREV| 000c60a0 45 52 2c 09 2f 2a 20 41 73 20 73 70 65 63 69 66 |ER,./* As specif| 000c60b0 69 65 64 20 69 6e 20 74 65 6d 70 6c 61 74 65 20 |ied in template | 000c60c0 2a 2f 0a 20 20 6f 70 65 6e 5f 43 45 4e 54 45 52 |*/. open_CENTER| 000c60d0 45 44 2c 0a 20 20 6f 70 65 6e 5f 43 45 4e 54 45 |ED,. open_CENTE| 000c60e0 52 45 44 55 4e 44 45 52 50 4f 49 4e 54 45 52 2c |REDUNDERPOINTER,| 000c60f0 0a 20 20 6f 70 65 6e 5f 4f 56 45 52 43 41 52 45 |. open_OVERCARE| 000c6100 54 2c 09 2f 2a 20 6f 76 65 72 20 74 68 65 20 63 |T,./* over the c| 000c6110 61 72 65 74 2c 20 66 61 69 6c 69 6e 67 20 74 68 |aret, failing th| 000c6120 61 74 20 74 68 65 6e 20 63 65 6e 74 72 65 64 20 |at then centred | 000c6130 2a 2f 0a 20 20 6f 70 65 6e 5f 55 4e 44 45 52 50 |*/. open_UNDERP| 000c6140 4f 49 4e 54 45 52 2c 0a 20 20 6f 70 65 6e 5f 4e |OINTER,. open_N| 000c6150 45 41 52 4c 41 53 54 09 09 2f 2a 20 53 6c 69 67 |EARLAST../* Slig| 000c6160 68 74 6c 79 20 6f 66 66 73 65 74 20 66 72 6f 6d |htly offset from| 000c6170 20 74 68 65 20 6c 61 73 74 20 77 69 6e 64 6f 77 | the last window| 000c6180 20 6f 70 65 6e 65 64 20 2a 2f 0a 7d 44 41 54 41 | opened */.}DATA| 000c6190 d9 00 00 00 77 69 6e 64 6f 77 5f 6f 75 74 6c 69 |....window_outli| 000c61a0 6e 65 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 |ne.This type is | 000c61b0 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 000c61c0 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 |Lib:Wimp.h=>Wimp| 000c61d0 3e 20 61 73 20 61 20 73 74 72 75 63 74 75 72 65 |> as a structure| 000c61e0 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 75 73 | suitable for us| 000c61f0 65 20 77 69 74 68 20 74 68 65 20 66 75 6e 63 74 |e with the funct| 000c6200 69 6f 6e 20 3c 57 69 6d 70 5f 47 65 74 57 69 6e |ion <Wimp_GetWin| 000c6210 64 6f 77 4f 75 74 6c 69 6e 65 3e 2e 0a 0a 20 20 |dowOutline>... | 000c6220 20 20 5c 7b 0a 20 20 20 20 20 20 3c 77 69 6e 64 | \{. <wind| 000c6230 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 69 6e 64 6f |ow_handle>.windo| 000c6240 77 3b 0a 20 20 20 20 20 20 3c 77 69 6d 70 5f 62 |w;. <wimp_b| 000c6250 6f 78 3e 09 73 63 72 65 65 6e 72 65 63 74 3b 0a |ox>.screenrect;.| 000c6260 20 20 20 20 7d 00 00 00 44 41 54 41 59 01 00 00 | }...DATAY...| 000c6270 57 69 6e 64 6f 77 5f 50 61 72 65 6e 74 4e 61 6d |Window_ParentNam| 000c6280 65 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 57 |e.Syntax:.void W| 000c6290 69 6e 64 6f 77 5f 50 61 72 65 6e 74 4e 61 6d 65 |indow_ParentName| 000c62a0 20 28 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 | (<window_handle| 000c62b0 3e 20 77 69 6e 2c 20 63 68 61 72 20 2a 6e 61 6d |> win, char *nam| 000c62c0 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |e);.Header:.<Des| 000c62d0 6b 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 |kLib:Window.h=>W| 000c62e0 69 6e 64 6f 77 3e 0a 0a 54 68 69 73 20 66 75 6e |indow>..This fun| 000c62f0 63 74 69 6f 6e 20 66 69 6e 64 73 20 74 68 65 20 |ction finds the | 000c6300 74 65 6d 70 6c 61 74 65 20 6e 61 6d 65 20 66 72 |template name fr| 000c6310 6f 6d 20 77 68 69 63 68 20 74 68 69 73 20 77 69 |om which this wi| 000c6320 6e 64 6f 77 20 77 61 73 20 63 72 65 61 74 65 64 |ndow was created| 000c6330 20 61 6e 64 20 70 6c 61 63 65 73 20 69 74 20 69 | and places it i| 000c6340 6e 20 74 68 65 20 62 75 66 66 65 72 20 70 6f 69 |n the buffer poi| 000c6350 6e 74 65 64 20 74 6f 20 62 79 20 2f 6e 61 6d 65 |nted to by /name| 000c6360 2f 2e 20 54 68 69 73 20 6f 6e 6c 79 20 77 6f 72 |/. This only wor| 000c6370 6b 73 20 69 66 20 74 68 65 20 77 69 6e 64 6f 77 |ks if the window| 000c6380 20 77 61 73 20 63 72 65 61 74 65 64 20 77 69 74 | was created wit| 000c6390 68 20 3c 57 69 6e 64 6f 77 5f 43 72 65 61 74 65 |h <Window_Create| 000c63a0 3e 2e 20 54 68 65 20 6e 61 6d 65 20 69 73 20 38 |>. The name is 8| 000c63b0 20 63 68 61 72 61 63 74 65 72 73 20 6f 6e 6c 79 | characters only| 000c63c0 2e 00 00 00 44 41 54 41 22 01 00 00 77 69 6e 64 |....DATA"...wind| 000c63d0 6f 77 5f 72 65 64 72 61 77 62 6c 6f 63 6b 0a 54 |ow_redrawblock.T| 000c63e0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000c63f0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000c6400 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 20 49 |Wimp.h=>Wimp>. I| 000c6410 74 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 |t is a structure| 000c6420 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 6e 66 6f | containing info| 000c6430 72 6d 61 74 69 6f 6e 20 73 75 69 74 61 62 6c 65 |rmation suitable| 000c6440 20 66 6f 72 20 3c 57 69 6d 70 5f 52 65 64 72 61 | for <Wimp_Redra| 000c6450 77 57 69 6e 64 6f 77 3e 20 61 6e 64 20 3c 57 69 |wWindow> and <Wi| 000c6460 6d 70 5f 47 65 74 52 65 63 74 61 6e 67 6c 65 3e |mp_GetRectangle>| 000c6470 2e 0a 0a 20 20 20 5c 7b 0a 20 20 20 20 20 3c 77 |... \{. <w| 000c6480 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 09 77 69 |indow_handle>.wi| 000c6490 6e 64 6f 77 3b 0a 20 20 20 20 20 3c 77 69 6d 70 |ndow;. <wimp| 000c64a0 5f 62 6f 78 3e 09 09 72 65 63 74 3b 0a 20 20 20 |_box>..rect;. | 000c64b0 20 20 3c 77 69 6d 70 5f 70 6f 69 6e 74 3e 09 73 | <wimp_point>.s| 000c64c0 63 72 6f 6c 6c 3b 0a 20 20 20 20 20 3c 77 69 6d |croll;. <wim| 000c64d0 70 5f 62 6f 78 3e 09 09 63 6c 69 70 72 65 63 74 |p_box>..cliprect| 000c64e0 3b 0a 20 20 20 7d 00 00 44 41 54 41 cc 00 00 00 |;. }..DATA....| 000c64f0 57 69 6e 64 6f 77 5f 52 65 73 69 7a 65 0a 53 79 |Window_Resize.Sy| 000c6500 6e 74 61 78 3a 09 76 6f 69 64 20 57 69 6e 64 6f |ntax:.void Windo| 000c6510 77 5f 52 65 73 69 7a 65 20 28 3c 77 69 6e 64 6f |w_Resize (<windo| 000c6520 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 29 3b 0a |w_handle> win);.| 000c6530 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 |Header:.<TimsLib| 000c6540 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f |:Window.h=>Windo| 000c6550 77 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |w_TL>..This func| 000c6560 74 69 6f 6e 20 63 61 75 73 65 73 20 74 68 65 20 |tion causes the | 000c6570 77 69 6e 64 6f 77 20 62 65 20 62 65 20 72 65 73 |window be be res| 000c6580 69 7a 65 64 2c 20 61 73 20 69 66 20 74 68 65 20 |ized, as if the | 000c6590 75 73 65 72 20 68 61 64 20 64 72 61 67 67 65 64 |user had dragged| 000c65a0 20 6f 6e 20 74 68 65 20 72 65 73 69 7a 65 20 69 | on the resize i| 000c65b0 63 6f 6e 2e 44 41 54 41 d0 00 00 00 57 69 6e 64 |con.DATA....Wind| 000c65c0 6f 77 5f 53 63 72 6f 6c 6c 0a 53 79 6e 74 61 78 |ow_Scroll.Syntax| 000c65d0 3a 09 76 6f 69 64 20 57 69 6e 64 6f 77 5f 53 63 |:.void Window_Sc| 000c65e0 72 6f 6c 6c 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |roll (<window_ha| 000c65f0 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c 73 63 72 6f |ndle> win, <scro| 000c6600 6c 6c 5f 74 79 70 65 3e 20 73 63 72 6f 6c 6c 29 |ll_type> scroll)| 000c6610 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 4c |;.Header:.<TimsL| 000c6620 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e |ib:Window.h=>Win| 000c6630 64 6f 77 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 |dow_TL>..This fu| 000c6640 6e 63 74 69 6f 6e 20 63 61 75 73 65 73 20 74 68 |nction causes th| 000c6650 65 20 77 69 6e 64 6f 77 20 62 65 20 62 65 20 64 |e window be be d| 000c6660 72 61 67 67 65 64 20 61 63 63 6f 72 64 69 6e 67 |ragged according| 000c6670 20 74 6f 20 74 68 65 20 73 63 72 6f 6c 6c 20 74 | to the scroll t| 000c6680 79 70 65 2e 44 41 54 41 db 00 00 00 57 69 6e 64 |ype.DATA....Wind| 000c6690 6f 77 5f 53 65 74 46 6f 63 75 73 0a 53 79 6e 74 |ow_SetFocus.Synt| 000c66a0 61 78 3a 09 76 6f 69 64 20 57 69 6e 64 6f 77 5f |ax:.void Window_| 000c66b0 53 65 74 46 6f 63 75 73 20 28 3c 77 69 6e 64 6f |SetFocus (<windo| 000c66c0 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 64 6f 77 |w_handle> window| 000c66d0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 6d 73 |);.Header:.<Tims| 000c66e0 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 |Lib:Window.h=>Wi| 000c66f0 6e 64 6f 77 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 |ndow_TL>..This f| 000c6700 75 6e 63 74 69 6f 6e 20 63 61 75 73 65 73 20 74 |unction causes t| 000c6710 68 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 20 |he given window | 000c6720 74 6f 20 67 61 69 6e 20 74 68 65 20 69 6e 70 75 |to gain the inpu| 000c6730 74 20 66 6f 63 75 73 2c 20 62 75 74 20 64 6f 65 |t focus, but doe| 000c6740 73 20 6e 6f 74 20 61 63 74 75 61 6c 6c 79 20 70 |s not actually p| 000c6750 6c 61 63 65 20 74 68 65 20 63 61 72 65 74 2e 00 |lace the caret..| 000c6760 44 41 54 41 2a 01 00 00 57 69 6e 64 6f 77 5f 53 |DATA*...Window_S| 000c6770 65 74 54 69 74 6c 65 0a 53 79 6e 74 61 78 3a 09 |etTitle.Syntax:.| 000c6780 76 6f 69 64 20 57 69 6e 64 6f 77 5f 53 65 74 54 |void Window_SetT| 000c6790 69 74 6c 65 20 28 3c 77 69 6e 64 6f 77 5f 68 61 |itle (<window_ha| 000c67a0 6e 64 6c 65 3e 20 77 69 6e 2c 20 63 68 61 72 20 |ndle> win, char | 000c67b0 2a 74 69 74 6c 65 29 3b 0a 48 65 61 64 65 72 3a |*title);.Header:| 000c67c0 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6e 64 6f 77 |.<DeskLib:Window| 000c67d0 2e 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a 54 68 69 |.h=>Window>..Thi| 000c67e0 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 61 6e 67 |s function chang| 000c67f0 65 73 20 74 68 65 20 74 69 74 6c 65 20 69 6e 20 |es the title in | 000c6800 74 68 65 20 67 69 76 65 6e 20 77 69 6e 64 6f 77 |the given window| 000c6810 20 74 6f 20 62 65 20 74 68 61 74 20 70 6f 69 6e | to be that poin| 000c6820 74 65 64 20 74 6f 20 62 79 20 2f 74 69 74 6c 65 |ted to by /title| 000c6830 2f 2e 20 49 66 20 74 68 65 20 74 69 74 6c 65 20 |/. If the title | 000c6840 69 73 20 6e 6f 74 20 69 6e 64 69 72 65 63 74 65 |is not indirecte| 000c6850 64 2c 20 74 68 65 20 74 65 78 74 20 63 61 6e 6e |d, the text cann| 000c6860 6f 74 20 62 65 20 63 68 61 6e 67 65 64 20 28 62 |ot be changed (b| 000c6870 75 74 20 6e 6f 20 65 72 72 6f 72 20 69 73 20 67 |ut no error is g| 000c6880 65 6e 65 72 61 74 65 64 29 2e 00 00 44 41 54 41 |enerated)...DATA| 000c6890 0e 01 00 00 57 69 6e 64 6f 77 5f 53 68 6f 77 0a |....Window_Show.| 000c68a0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 57 69 6e |Syntax:.void Win| 000c68b0 64 6f 77 5f 53 68 6f 77 20 28 3c 77 69 6e 64 6f |dow_Show (<windo| 000c68c0 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 2c 20 3c |w_handle> win, <| 000c68d0 77 69 6e 64 6f 77 5f 6f 70 65 6e 70 6f 73 3e 20 |window_openpos> | 000c68e0 70 6f 73 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 |pos);.Header:.<D| 000c68f0 65 73 6b 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d |eskLib:Window.h=| 000c6900 3e 57 69 6e 64 6f 77 3e 0a 0a 54 68 69 73 20 66 |>Window>..This f| 000c6910 75 6e 63 74 69 6f 6e 20 73 68 6f 77 73 20 74 68 |unction shows th| 000c6920 65 20 77 69 6e 64 6f 77 20 77 68 6f 73 65 20 68 |e window whose h| 000c6930 61 6e 64 6c 65 20 69 73 20 67 69 76 65 6e 20 6f |andle is given o| 000c6940 6e 20 74 68 65 20 73 63 72 65 65 6e 2e 20 49 74 |n the screen. It| 000c6950 20 63 61 6e 20 62 65 20 75 73 65 64 20 77 69 74 | can be used wit| 000c6960 68 20 61 6e 79 20 77 69 6e 64 6f 77 2c 20 6e 6f |h any window, no| 000c6970 74 20 6a 75 73 74 20 74 68 6f 73 65 20 63 72 65 |t just those cre| 000c6980 61 74 65 64 20 77 69 74 68 20 3c 57 69 6e 64 6f |ated with <Windo| 000c6990 77 5f 43 72 65 61 74 65 3e 2e 00 00 44 41 54 41 |w_Create>...DATA| 000c69a0 d9 00 00 00 77 69 6e 64 6f 77 5f 73 74 61 74 65 |....window_state| 000c69b0 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 65 |.This type is de| 000c69c0 66 69 6e 65 64 20 62 79 20 3c 44 65 73 6b 4c 69 |fined by <DeskLi| 000c69d0 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e |b:Wimp.h=>Wimp>.| 000c69e0 20 49 74 20 69 73 20 61 20 73 74 72 75 63 74 75 | It is a structu| 000c69f0 72 65 20 68 6f 6c 64 69 6e 67 20 61 20 77 69 6e |re holding a win| 000c6a00 64 6f 77 20 73 74 61 74 65 20 61 73 20 72 65 74 |dow state as ret| 000c6a10 75 72 6e 65 64 20 62 79 20 3c 57 69 6d 70 5f 47 |urned by <Wimp_G| 000c6a20 65 74 57 69 6e 64 6f 77 53 74 61 74 65 3e 2e 0a |etWindowState>..| 000c6a30 0a 20 20 5c 7b 0a 20 20 20 20 3c 77 69 6e 64 6f |. \{. <windo| 000c6a40 77 5f 6f 70 65 6e 62 6c 6f 63 6b 3e 09 6f 70 65 |w_openblock>.ope| 000c6a50 6e 62 6c 6f 63 6b 3b 0a 20 20 20 20 3c 77 69 6e |nblock;. <win| 000c6a60 64 6f 77 5f 66 6c 61 67 73 3e 09 66 6c 61 67 73 |dow_flags>.flags| 000c6a70 3b 0a 20 20 7d 00 00 00 44 41 54 41 0e 01 00 00 |;. }...DATA....| 000c6a80 54 69 6d 73 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 |TimsLib:Window.h| 000c6a90 0a 54 68 69 73 20 68 65 61 64 65 72 20 70 72 6f |.This header pro| 000c6aa0 76 69 64 65 73 20 61 20 66 65 77 20 68 61 6e 64 |vides a few hand| 000c6ab0 79 20 77 69 6e 64 6f 77 2d 62 61 73 65 64 20 66 |y window-based f| 000c6ac0 75 6e 63 74 69 6f 6e 73 2e 0a 0a 46 75 6e 63 74 |unctions...Funct| 000c6ad0 69 6f 6e 73 3a 0a 0a 23 54 61 62 6c 65 20 33 20 |ions:..#Table 3 | 000c6ae0 31 39 0a 3c 57 69 6e 64 6f 77 5f 4d 6f 76 65 3e |19.<Window_Move>| 000c6af0 0a 3c 57 69 6e 64 6f 77 5f 52 65 73 69 7a 65 3e |.<Window_Resize>| 000c6b00 0a 3c 57 69 6e 64 6f 77 5f 53 63 72 6f 6c 6c 3e |.<Window_Scroll>| 000c6b10 0a 3c 57 69 6e 64 6f 77 5f 44 65 6c 65 74 65 49 |.<Window_DeleteI| 000c6b20 6e 63 4d 65 6e 75 73 3e 0a 3c 57 69 6e 64 6f 77 |ncMenus>.<Window| 000c6b30 5f 46 6f 72 63 65 43 6f 6d 70 6c 65 74 65 52 65 |_ForceCompleteRe| 000c6b40 64 72 61 77 3e 0a 3c 57 69 6e 64 6f 77 5f 53 65 |draw>.<Window_Se| 000c6b50 74 46 6f 63 75 73 3e 0a 23 45 6e 64 54 61 62 6c |tFocus>.#EndTabl| 000c6b60 65 0a 0a 54 79 70 65 73 3a 0a 0a 7b 61 6c 69 67 |e..Types:..{alig| 000c6b70 6e 20 63 65 6e 74 72 65 7d 3c 73 63 72 6f 6c 6c |n centre}<scroll| 000c6b80 5f 74 79 70 65 3e 00 00 44 41 54 41 75 01 00 00 |_type>..DATAu...| 000c6b90 57 69 6e 64 6f 77 5f 47 65 74 49 6e 66 6f 33 0a |Window_GetInfo3.| 000c6ba0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 57 69 6e |Syntax:.void Win| 000c6bb0 64 6f 77 5f 47 65 74 49 6e 66 6f 33 20 28 3c 77 |dow_GetInfo3 (<w| 000c6bc0 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 |indow_handle> wi| 000c6bd0 6e 2c 20 3c 77 69 6e 64 6f 77 5f 69 6e 66 6f 3e |n, <window_info>| 000c6be0 20 2a 72 65 73 29 3b 0a 48 65 61 64 65 72 3a 09 | *res);.Header:.| 000c6bf0 3c 44 65 73 6b 4c 69 62 3a 57 69 6e 64 6f 77 2e |<DeskLib:Window.| 000c6c00 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a 54 68 69 73 |h=>Window>..This| 000c6c10 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 73 69 6d | function is sim| 000c6c20 70 6c 79 20 61 20 66 72 6f 6e 74 20 65 6e 64 20 |ply a front end | 000c6c30 74 6f 20 3c 57 69 6d 70 5f 47 65 74 57 69 6e 64 |to <Wimp_GetWind| 000c6c40 6f 77 49 6e 66 6f 3e 2e 20 48 6f 77 65 76 65 72 |owInfo>. However| 000c6c50 2c 20 6e 6f 20 69 63 6f 6e 20 64 65 66 69 6e 69 |, no icon defini| 000c6c60 74 69 6f 6e 73 20 61 72 65 20 72 65 74 75 72 6e |tions are return| 000c6c70 65 64 2e 20 54 68 65 20 77 69 6e 64 6f 77 20 69 |ed. The window i| 000c6c80 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 70 6c |nformation is pl| 000c6c90 61 63 65 64 20 69 6e 20 74 68 65 20 62 6c 6f 63 |aced in the bloc| 000c6ca0 6b 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 65 20 |k pointed to be | 000c6cb0 2f 72 65 73 2f 2e 0a 0a 54 68 69 73 20 69 73 20 |/res/...This is | 000c6cc0 74 68 65 20 66 61 73 74 20 76 65 72 73 69 6f 6e |the fast version| 000c6cd0 2c 20 6f 6e 20 52 49 53 43 20 4f 53 20 32 20 79 |, on RISC OS 2 y| 000c6ce0 6f 75 20 6d 75 73 74 20 75 73 65 20 3c 57 69 6e |ou must use <Win| 000c6cf0 64 6f 77 5f 47 65 74 49 6e 66 6f 3e 2e 00 00 00 |dow_GetInfo>....| 000c6d00 44 41 54 41 b1 00 00 00 57 69 6e 64 6f 77 5f 42 |DATA....Window_B| 000c6d10 72 69 6e 67 54 6f 46 72 6f 6e 74 0a 53 79 6e 74 |ringToFront.Synt| 000c6d20 61 78 3a 09 76 6f 69 64 20 57 69 6e 64 6f 77 5f |ax:.void Window_| 000c6d30 42 72 69 6e 67 54 6f 46 72 6f 6e 74 20 28 3c 77 |BringToFront (<w| 000c6d40 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 |indow_handle> wi| 000c6d50 6e 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 |n);.Header:.<Des| 000c6d60 6b 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 |kLib:Window.h=>W| 000c6d70 69 6e 64 6f 77 3e 0a 0a 42 72 69 6e 67 73 20 74 |indow>..Brings t| 000c6d80 68 65 20 77 69 6e 64 6f 77 20 2f 77 69 6e 2f 20 |he window /win/ | 000c6d90 74 6f 20 74 68 65 20 66 72 6f 6e 74 20 6f 66 20 |to the front of | 000c6da0 74 68 65 20 77 69 6e 64 6f 77 20 73 74 61 63 6b |the window stack| 000c6db0 2e 00 00 00 44 41 54 41 1c 01 00 00 57 69 6e 64 |....DATA....Wind| 000c6dc0 6f 77 5f 43 6f 6e 73 74 72 61 69 6e 4d 6f 75 73 |ow_ConstrainMous| 000c6dd0 65 0a 53 79 6e 74 61 78 3a 09 3c 6f 73 5f 65 72 |e.Syntax:.<os_er| 000c6de0 72 6f 72 3e 20 2a 57 69 6e 64 6f 77 5f 43 6f 6e |ror> *Window_Con| 000c6df0 73 74 72 61 69 6e 4d 6f 75 73 65 20 28 3c 77 69 |strainMouse (<wi| 000c6e00 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e |ndow_handle> win| 000c6e10 29 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b |);.Header:.<Desk| 000c6e20 4c 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 |Lib:Window.h=>Wi| 000c6e30 6e 64 6f 77 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |ndow>..Returns:.| 000c6e40 50 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 |Pointer to error| 000c6e50 2c 20 6f 72 20 3c 4e 55 4c 4c 3e 20 69 66 20 6e |, or <NULL> if n| 000c6e60 6f 6e 65 2e 0a 0a 52 65 73 74 72 69 63 74 73 20 |one...Restricts | 000c6e70 74 68 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 |the pointer to t| 000c6e80 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 77 69 6e |he bounds of win| 000c6e90 64 6f 77 20 2f 77 69 6e 2f 2e 20 41 63 74 75 61 |dow /win/. Actua| 000c6ea0 6c 6c 79 20 6a 75 73 74 20 61 20 6d 61 63 72 6f |lly just a macro| 000c6eb0 20 66 6f 72 20 3c 50 6f 69 6e 74 65 72 5f 52 65 | for <Pointer_Re| 000c6ec0 73 74 72 69 63 74 54 6f 57 69 6e 64 6f 77 3e 2e |strictToWindow>.| 000c6ed0 44 41 54 41 f8 00 00 00 57 69 6e 64 6f 77 5f 46 |DATA....Window_F| 000c6ee0 6f 72 63 65 52 65 64 72 61 77 0a 53 79 6e 74 61 |orceRedraw.Synta| 000c6ef0 78 3a 09 76 6f 69 64 20 57 69 6e 64 6f 77 5f 46 |x:.void Window_F| 000c6f00 6f 72 63 65 52 65 64 72 61 77 20 28 3c 77 69 6e |orceRedraw (<win| 000c6f10 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 69 6e 2c |dow_handle> win,| 000c6f20 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c | int x0, int y0,| 000c6f30 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 29 | int x1, int y1)| 000c6f40 3b 0a 48 65 61 64 65 72 3a 09 3c 44 65 73 6b 4c |;.Header:.<DeskL| 000c6f50 69 62 3a 57 69 6e 64 6f 77 2e 68 3d 3e 57 69 6e |ib:Window.h=>Win| 000c6f60 64 6f 77 3e 0a 0a 46 6f 72 63 65 73 20 61 20 72 |dow>..Forces a r| 000c6f70 65 64 72 61 77 20 6f 66 20 74 68 65 20 72 65 63 |edraw of the rec| 000c6f80 74 61 6e 67 6c 65 20 6f 66 20 74 68 65 20 77 69 |tangle of the wi| 000c6f90 6e 64 6f 77 20 2f 77 69 6e 2f 20 64 65 6c 69 6d |ndow /win/ delim| 000c6fa0 69 74 65 64 20 62 79 20 7b 2f 7d 28 78 30 2c 79 |ited by {/}(x0,y| 000c6fb0 30 29 7b 2f 7d 20 61 6e 64 20 7b 2f 7d 28 78 31 |0){/} and {/}(x1| 000c6fc0 2c 79 31 29 7b 2f 7d 2e 44 41 54 41 c2 00 00 00 |,y1){/}.DATA....| 000c6fd0 57 69 6e 64 6f 77 5f 47 65 74 43 6f 6f 72 64 73 |Window_GetCoords| 000c6fe0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 57 69 |.Syntax:.void Wi| 000c6ff0 6e 64 6f 77 5f 47 65 74 43 6f 6f 72 64 73 20 28 |ndow_GetCoords (| 000c7000 3c 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 |<window_handle> | 000c7010 77 69 6e 2c 20 3c 63 6f 6e 76 65 72 74 5f 62 6c |win, <convert_bl| 000c7020 6f 63 6b 3e 20 2a 62 6c 6b 29 3b 0a 48 65 61 64 |ock> *blk);.Head| 000c7030 65 72 3a 09 3c 44 65 73 6b 4c 69 62 3a 57 69 6e |er:.<DeskLib:Win| 000c7040 64 6f 77 2e 68 3d 3e 57 69 6e 64 6f 77 3e 0a 0a |dow.h=>Window>..| 000c7050 46 69 6c 6c 73 20 2f 62 6c 6b 2f 20 77 69 74 68 |Fills /blk/ with| 000c7060 20 74 68 65 20 63 6f 72 72 65 63 74 20 69 6e 66 | the correct inf| 000c7070 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 77 69 6e |ormation for win| 000c7080 64 6f 77 20 2f 77 69 6e 2f 2e 00 00 44 49 52 24 |dow /win/...DIR$| 000c7090 70 03 00 00 70 03 00 00 fc 73 0c 00 46 ff ff ff |p...p....s..F...| 000c70a0 ab 9c eb 24 de 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000c70b0 61 63 74 69 76 65 64 65 63 00 00 00 dc 74 0c 00 |activedec....t..| 000c70c0 46 ff ff ff ab 85 eb 24 67 01 00 00 13 00 00 00 |F......$g.......| 000c70d0 00 00 00 00 61 63 74 69 76 65 69 6e 63 00 00 00 |....activeinc...| 000c70e0 44 76 0c 00 46 ff ff ff 8f a2 eb 24 b9 00 00 00 |Dv..F......$....| 000c70f0 13 00 00 00 00 00 00 00 61 63 74 69 76 65 6e 6f |........activeno| 000c7100 00 00 00 00 00 77 0c 00 46 ff ff ff fd da eb 24 |.....w..F......$| 000c7110 d3 00 00 00 13 00 00 00 00 00 00 00 63 6c 61 69 |............clai| 000c7120 6d 5f 69 64 6c 65 5f 65 76 65 6e 74 73 00 00 00 |m_idle_events...| 000c7130 d4 77 0c 00 46 ff ff ff 76 e6 eb 24 dc 00 00 00 |.w..F...v..$....| 000c7140 13 00 00 00 00 00 00 00 63 6c 61 69 6d 5f 75 6e |........claim_un| 000c7150 6b 6e 6f 77 6e 5f 65 76 65 6e 74 73 00 00 00 00 |known_events....| 000c7160 b0 78 0c 00 46 ff ff ff 22 1f ec 24 09 01 00 00 |.x..F..."..$....| 000c7170 13 00 00 00 00 00 00 00 65 76 65 6e 74 5f 68 61 |........event_ha| 000c7180 6e 64 6c 65 72 00 00 00 bc 79 0c 00 46 ff ff ff |ndler....y..F...| 000c7190 b2 77 eb 24 b8 00 00 00 13 00 00 00 00 00 00 00 |.w.$............| 000c71a0 67 65 74 6d 65 6e 75 68 00 00 00 00 74 7a 0c 00 |getmenuh....tz..| 000c71b0 46 ff ff ff 62 a8 eb 24 80 01 00 00 13 00 00 00 |F...b..$........| 000c71c0 00 00 00 00 67 69 76 65 5f 61 77 61 79 5f 63 61 |....give_away_ca| 000c71d0 72 65 74 00 f4 7b 0c 00 46 ff ff ff d2 33 b6 22 |ret..{..F....3."| 000c71e0 42 00 00 00 13 00 00 00 00 00 00 00 49 43 4f 4e |B...........ICON| 000c71f0 42 41 52 00 38 7c 0c 00 46 ff ff ff d9 33 b6 22 |BAR.8|..F....3."| 000c7200 47 00 00 00 13 00 00 00 00 00 00 00 49 43 4f 4e |G...........ICON| 000c7210 42 41 52 4c 4f 41 44 00 80 7c 0c 00 46 ff ff ff |BARLOAD..|..F...| 000c7220 1e e1 eb 24 ca 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000c7230 69 64 6c 65 5f 65 76 65 6e 74 5f 63 6c 61 69 6d |idle_event_claim| 000c7240 65 72 00 00 4c 7d 0c 00 46 ff ff ff 89 6e eb 24 |er..L}..F....n.$| 000c7250 90 00 00 00 13 00 00 00 00 00 00 00 69 6e 69 74 |............init| 000c7260 00 00 00 00 dc 7d 0c 00 46 ff ff ff 6b 7d eb 24 |.....}..F...k}.$| 000c7270 f2 00 00 00 13 00 00 00 00 00 00 00 70 72 6f 63 |............proc| 000c7280 65 73 73 65 76 65 6e 74 00 00 00 00 d0 7e 0c 00 |essevent.....~..| 000c7290 46 ff ff ff 72 d1 eb 24 4e 01 00 00 13 00 00 00 |F...r..$N.......| 000c72a0 00 00 00 00 72 65 61 64 5f 65 76 65 6e 74 5f 68 |....read_event_h| 000c72b0 61 6e 64 6c 65 72 00 00 20 80 0c 00 46 ff ff ff |andler.. ...F...| 000c72c0 ef fb eb 24 e2 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000c72d0 72 65 67 69 73 74 65 72 5f 65 76 65 6e 74 5f 68 |register_event_h| 000c72e0 61 6e 64 6c 65 72 00 00 04 82 0c 00 46 ff ff ff |andler......F...| 000c72f0 04 74 eb 24 e5 00 00 00 13 00 00 00 00 00 00 00 |.t.$............| 000c7300 73 65 74 6d 65 6e 75 68 00 00 00 00 ec 82 0c 00 |setmenuh........| 000c7310 46 ff ff ff 8b b3 eb 24 2a 01 00 00 13 00 00 00 |F......$*.......| 000c7320 00 00 00 00 73 65 74 74 69 74 6c 65 00 00 00 00 |....settitle....| 000c7330 18 84 0c 00 46 ff ff ff 37 ea eb 24 da 00 00 00 |....F...7..$....| 000c7340 13 00 00 00 00 00 00 00 75 6e 6b 6e 6f 77 6e 5f |........unknown_| 000c7350 65 76 65 6e 74 5f 63 6c 61 69 6d 65 72 00 00 00 |event_claimer...| 000c7360 f4 84 0c 00 46 ff ff ff c1 29 ec 24 42 01 00 00 |....F....).$B...| 000c7370 13 00 00 00 00 00 00 00 75 6e 6b 6e 6f 77 6e 5f |........unknown_| 000c7380 65 76 65 6e 74 5f 70 72 6f 63 65 73 73 6f 72 00 |event_processor.| 000c7390 38 86 0c 00 46 ff ff ff 0a 0e ec 24 bb 01 00 00 |8...F......$....| 000c73a0 13 00 00 00 00 00 00 00 61 64 64 5f 75 6e 6b 6e |........add_unkn| 000c73b0 6f 77 6e 5f 65 76 65 6e 74 5f 70 72 6f 63 65 73 |own_event_proces| 000c73c0 73 6f 72 00 f4 87 0c 00 46 ff ff ff 35 14 ec 24 |sor.....F...5..$| 000c73d0 f8 00 00 00 13 00 00 00 00 00 00 00 72 65 6d 6f |............remo| 000c73e0 76 65 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 |ve_unknown_event| 000c73f0 5f 70 72 6f 63 65 73 73 6f 72 00 00 44 41 54 41 |_processor..DATA| 000c7400 de 00 00 00 77 69 6e 5f 61 63 74 69 76 65 64 65 |....win_activede| 000c7410 63 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 |c.Syntax:.void w| 000c7420 69 6e 5f 61 63 74 69 76 65 64 65 63 20 28 76 6f |in_activedec (vo| 000c7430 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 |id);.Header:.<wi| 000c7440 6e 2e 68 3d 3e 77 69 6e 3e 0a 0a 54 68 69 73 20 |n.h=>win>..This | 000c7450 66 75 6e 63 74 69 6f 6e 20 64 65 63 72 65 6d 65 |function decreme| 000c7460 6e 74 73 20 62 79 20 6f 6e 65 20 74 68 65 20 77 |nts by one the w| 000c7470 69 6e 20 6d 6f 64 75 6c 65 27 73 20 69 64 65 61 |in module's idea| 000c7480 20 6f 66 20 74 68 65 20 6e 75 6d 62 65 72 20 6f | of the number o| 000c7490 66 20 61 63 74 69 76 65 20 77 69 6e 64 6f 77 73 |f active windows| 000c74a0 2e 20 3c 65 76 65 6e 74 5f 70 72 6f 63 65 73 73 |. <event_process| 000c74b0 3e 28 29 20 63 61 6c 6c 73 20 3c 65 78 69 74 3e |>() calls <exit>| 000c74c0 28 29 20 77 68 65 6e 20 74 68 69 73 20 72 65 61 |() when this rea| 000c74d0 63 68 65 73 20 7a 65 72 6f 2e 00 00 44 41 54 41 |ches zero...DATA| 000c74e0 67 01 00 00 77 69 6e 5f 61 63 74 69 76 65 69 6e |g...win_activein| 000c74f0 63 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 |c.Syntax:.void w| 000c7500 69 6e 5f 61 63 74 69 76 65 69 6e 63 20 28 76 6f |in_activeinc (vo| 000c7510 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 |id);.Header:.<wi| 000c7520 6e 2e 68 3d 3e 77 69 6e 3e 0a 0a 54 68 69 73 20 |n.h=>win>..This | 000c7530 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 6d 65 |function increme| 000c7540 6e 74 73 20 62 79 20 6f 6e 65 20 74 68 65 20 77 |nts by one the w| 000c7550 69 6e 20 6d 6f 64 75 6c 65 27 73 20 69 64 65 61 |in module's idea| 000c7560 20 6f 66 20 74 68 65 20 6e 75 6d 62 65 72 20 6f | of the number o| 000c7570 66 20 61 63 74 69 76 65 20 77 69 6e 64 6f 77 73 |f active windows| 000c7580 2e 20 3c 65 76 65 6e 74 5f 70 72 6f 63 65 73 73 |. <event_process| 000c7590 3d 3e 65 76 65 6e 74 5f 70 72 6f 63 65 73 73 5f |=>event_process_| 000c75a0 3e 28 29 20 63 61 6c 6c 73 20 3c 65 78 69 74 3e |>() calls <exit>| 000c75b0 28 29 20 77 68 65 6e 20 74 68 69 73 20 72 65 61 |() when this rea| 000c75c0 63 68 65 73 20 7a 65 72 6f 2c 20 73 6f 20 69 66 |ches zero, so if| 000c75d0 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6d | you want to rem| 000c75e0 61 69 6e 20 72 75 6e 6e 69 6e 67 20 77 69 74 68 |ain running with| 000c75f0 20 6e 6f 20 61 63 74 69 76 65 20 77 69 6e 64 6f | no active windo| 000c7600 77 73 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 63 |ws, you must inc| 000c7610 72 65 6d 65 6e 74 20 69 74 20 79 6f 75 72 73 65 |rement it yourse| 000c7620 6c 66 2e 20 3c 62 61 72 69 63 6f 6e 3e 28 29 20 |lf. <baricon>() | 000c7630 63 61 6c 6c 73 20 74 68 69 73 20 66 6f 72 20 79 |calls this for y| 000c7640 6f 75 2e 00 44 41 54 41 b9 00 00 00 77 69 6e 5f |ou..DATA....win_| 000c7650 61 63 74 69 76 65 6e 6f 0a 53 79 6e 74 61 78 3a |activeno.Syntax:| 000c7660 09 69 6e 74 20 77 69 6e 5f 61 63 74 69 76 65 6e |.int win_activen| 000c7670 6f 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 |o (void);.Header| 000c7680 3a 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 0a 0a |:.<win.h=>win>..| 000c7690 52 65 74 75 72 6e 73 3a 09 4e 75 6d 62 65 72 20 |Returns:.Number | 000c76a0 6f 66 20 61 63 74 69 76 65 20 77 69 6e 64 6f 77 |of active window| 000c76b0 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |s...This functio| 000c76c0 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 |n returns the nu| 000c76d0 6d 62 65 72 20 6f 66 20 61 63 74 69 76 65 20 77 |mber of active w| 000c76e0 69 6e 64 6f 77 73 20 6f 77 6e 65 64 20 62 79 20 |indows owned by | 000c76f0 79 6f 75 72 20 70 72 6f 67 72 61 6d 2e 00 00 00 |your program....| 000c7700 44 41 54 41 d3 00 00 00 77 69 6e 5f 63 6c 61 69 |DATA....win_clai| 000c7710 6d 5f 69 64 6c 65 5f 65 76 65 6e 74 73 0a 53 79 |m_idle_events.Sy| 000c7720 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 6e 5f 63 |ntax:.void win_c| 000c7730 6c 61 69 6d 5f 69 64 6c 65 5f 65 76 65 6e 74 73 |laim_idle_events| 000c7740 20 28 3c 77 69 6d 70 5f 77 3e 20 77 29 3b 0a 48 | (<wimp_w> w);.H| 000c7750 65 61 64 65 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 |eader:.<win.h=>w| 000c7760 69 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 |in>..This functi| 000c7770 6f 6e 20 63 61 75 73 65 73 20 22 69 64 6c 65 22 |on causes "idle"| 000c7780 20 65 76 65 6e 74 73 20 74 6f 20 62 65 20 64 65 | events to be de| 000c7790 6c 69 76 65 72 65 64 20 74 6f 20 74 68 65 20 67 |livered to the g| 000c77a0 69 76 65 6e 20 77 69 6e 64 6f 77 2e 20 54 6f 20 |iven window. To | 000c77b0 63 61 6e 63 65 6c 20 74 68 69 73 2c 20 63 61 6c |cancel this, cal| 000c77c0 6c 20 69 74 20 77 69 74 68 20 2f 77 2f 20 3d 20 |l it with /w/ = | 000c77d0 2d 31 2e 00 44 41 54 41 dc 00 00 00 77 69 6e 5f |-1..DATA....win_| 000c77e0 63 6c 61 69 6d 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 |claim_unknown_ev| 000c77f0 65 6e 74 73 0a 53 79 6e 74 61 78 3a 09 76 6f 69 |ents.Syntax:.voi| 000c7800 64 20 77 69 6e 5f 63 6c 61 69 6d 5f 75 6e 6b 6e |d win_claim_unkn| 000c7810 6f 77 6e 5f 65 76 65 6e 74 73 20 28 3c 77 69 6d |own_events (<wim| 000c7820 70 5f 77 3e 20 77 29 3b 0a 48 65 61 64 65 72 3a |p_w> w);.Header:| 000c7830 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 0a 0a 43 |.<win.h=>win>..C| 000c7840 61 75 73 65 73 20 61 6e 79 20 75 6e 6b 6e 6f 77 |auses any unknow| 000c7850 6e 20 6f 72 20 6e 6f 6e 2d 77 69 6e 64 6f 77 2d |n or non-window-| 000c7860 73 70 65 63 69 66 69 63 20 65 76 65 6e 74 73 20 |specific events | 000c7870 74 6f 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 |to be passed to | 000c7880 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e 20 43 61 |given window. Ca| 000c7890 6c 6c 20 77 69 74 68 20 2f 77 2f 20 3d 20 2d 31 |ll with /w/ = -1| 000c78a0 20 74 6f 20 63 61 6e 63 65 6c 20 74 68 69 73 2e | to cancel this.| 000c78b0 44 41 54 41 09 01 00 00 77 69 6e 5f 65 76 65 6e |DATA....win_even| 000c78c0 74 5f 68 61 6e 64 6c 65 72 0a 54 68 69 73 20 74 |t_handler.This t| 000c78d0 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000c78e0 6e 20 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 2e 20 |n <win.h=>win>. | 000c78f0 49 74 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e |It is a function| 000c7900 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 | with the follow| 000c7910 69 6e 67 20 70 72 6f 74 6f 74 79 70 65 3a 0a 7b |ing prototype:.{| 000c7920 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 65 |wrap off}.{fCode| 000c7930 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 76 6f |;align centre}vo| 000c7940 69 64 20 6d 79 66 75 6e 63 20 28 3c 77 69 6d 70 |id myfunc (<wimp| 000c7950 5f 65 76 65 6e 74 73 74 72 3e 20 2a 65 2c 20 76 |_eventstr> *e, v| 000c7960 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b 7b 66 3b |oid *handle);{f;| 000c7970 61 6c 69 67 6e 7d 0a 7b 77 72 61 70 7d 0a 49 74 |align}.{wrap}.It| 000c7980 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 75 | is a function u| 000c7990 73 65 64 20 74 6f 20 70 72 6f 63 65 73 73 20 65 |sed to process e| 000c79a0 76 65 6e 74 73 20 66 6f 72 20 61 20 67 69 76 65 |vents for a give| 000c79b0 6e 20 77 69 6e 64 6f 77 2e 00 00 00 44 41 54 41 |n window....DATA| 000c79c0 b8 00 00 00 77 69 6e 5f 67 65 74 6d 65 6e 75 68 |....win_getmenuh| 000c79d0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 2a 77 |.Syntax:.void *w| 000c79e0 69 6e 5f 67 65 74 6d 65 6e 75 68 20 28 3c 77 69 |in_getmenuh (<wi| 000c79f0 6d 70 5f 77 3e 20 77 69 6e 29 3b 0a 48 65 61 64 |mp_w> win);.Head| 000c7a00 65 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e |er:.<win.h=>win>| 000c7a10 0a 0a 52 65 74 75 72 6e 73 3a 09 50 6f 69 6e 74 |..Returns:.Point| 000c7a20 65 72 20 74 6f 20 74 68 65 20 61 74 74 61 63 68 |er to the attach| 000c7a30 65 64 20 6d 65 6e 75 2e 0a 0a 54 68 69 73 20 66 |ed menu...This f| 000c7a40 75 6e 63 74 69 6f 6e 73 20 67 65 74 73 20 74 68 |unctions gets th| 000c7a50 65 20 6d 65 6e 75 20 61 74 74 61 63 68 65 64 20 |e menu attached | 000c7a60 74 6f 20 74 68 65 20 67 69 76 65 6e 20 77 69 6e |to the given win| 000c7a70 64 6f 77 2e 44 41 54 41 80 01 00 00 77 69 6e 5f |dow.DATA....win_| 000c7a80 67 69 76 65 5f 61 77 61 79 5f 63 61 72 65 74 0a |give_away_caret.| 000c7a90 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 6e |Syntax:.void win| 000c7aa0 5f 67 69 76 65 5f 61 77 61 79 5f 63 61 72 65 74 |_give_away_caret| 000c7ab0 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000c7ac0 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 0a 0a 54 |.<win.h=>win>..T| 000c7ad0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 67 69 76 |his function giv| 000c7ae0 65 73 20 74 68 65 20 63 61 72 65 74 20 61 77 61 |es the caret awa| 000c7af0 79 20 74 6f 20 74 68 65 20 6f 70 65 6e 20 77 69 |y to the open wi| 000c7b00 6e 64 6f 77 20 61 74 20 74 68 65 20 74 6f 70 20 |ndow at the top | 000c7b10 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 20 73 74 |of the window st| 000c7b20 61 63 6b 20 28 69 66 20 74 68 61 74 20 77 69 6e |ack (if that win| 000c7b30 64 6f 77 20 69 73 20 6f 77 6e 65 64 20 62 79 20 |dow is owned by | 000c7b40 79 6f 75 72 20 70 72 6f 67 72 61 6d 29 2e 20 49 |your program). I| 000c7b50 66 20 74 68 65 20 74 6f 70 20 77 69 6e 64 6f 77 |f the top window| 000c7b60 20 69 73 20 69 6e 74 65 72 65 73 74 65 64 20 69 | is interested i| 000c7b70 74 20 77 69 6c 6c 20 74 61 6b 65 20 74 68 65 20 |t will take the | 000c7b80 63 61 72 65 74 20 65 6c 73 65 20 6e 6f 74 68 69 |caret else nothi| 000c7b90 6e 67 20 68 61 70 70 65 6e 73 2e 20 50 6f 6c 6c |ng happens. Poll| 000c7ba0 69 6e 67 20 6d 75 73 74 20 62 65 20 64 6f 6e 65 |ing must be done| 000c7bb0 20 75 73 69 6e 67 20 3c 77 69 6d 70 74 3e 20 6f | using <wimpt> o| 000c7bc0 72 20 61 20 68 69 67 68 65 72 20 6c 65 76 65 6c |r a higher level| 000c7bd0 20 65 67 20 3c 65 76 65 6e 74 5f 70 72 6f 63 65 | eg <event_proce| 000c7be0 73 73 3d 3e 65 76 65 6e 74 5f 70 72 6f 63 65 73 |ss=>event_proces| 000c7bf0 73 5f 3e 2e 44 41 54 41 42 00 00 00 77 69 6e 5f |s_>.DATAB...win_| 000c7c00 49 43 4f 4e 42 41 52 0a 54 68 69 73 20 6d 61 63 |ICONBAR.This mac| 000c7c10 72 6f 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e |ro is defined in| 000c7c20 20 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 20 61 73 | <win.h=>win> as| 000c7c30 20 28 2d 33 29 2e 00 00 44 41 54 41 47 00 00 00 | (-3)...DATAG...| 000c7c40 77 69 6e 5f 49 43 4f 4e 42 41 52 4c 4f 41 44 0a |win_ICONBARLOAD.| 000c7c50 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 |This macro is de| 000c7c60 66 69 6e 65 64 20 69 6e 20 3c 77 69 6e 2e 68 3d |fined in <win.h=| 000c7c70 3e 77 69 6e 3e 20 61 73 20 28 2d 39 39 29 2e 00 |>win> as (-99)..| 000c7c80 44 41 54 41 ca 00 00 00 77 69 6e 5f 69 64 6c 65 |DATA....win_idle| 000c7c90 5f 65 76 65 6e 74 5f 63 6c 61 69 6d 65 72 0a 53 |_event_claimer.S| 000c7ca0 79 6e 74 61 78 3a 09 3c 77 69 6d 70 5f 77 3e 20 |yntax:.<wimp_w> | 000c7cb0 77 69 6e 5f 69 64 6c 65 5f 65 76 65 6e 74 5f 63 |win_idle_event_c| 000c7cc0 6c 61 69 6d 65 72 20 28 76 6f 69 64 29 3b 0a 48 |laimer (void);.H| 000c7cd0 65 61 64 65 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 |eader:.<win.h=>w| 000c7ce0 69 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 48 61 |in>..Returns:.Ha| 000c7cf0 6e 64 6c 65 20 6f 66 20 77 69 6e 64 6f 77 20 63 |ndle of window c| 000c7d00 6c 61 69 6d 69 6e 67 20 69 64 6c 65 20 65 76 65 |laiming idle eve| 000c7d10 6e 74 73 2e 0a 0a 2d 31 20 69 73 20 72 65 74 75 |nts...-1 is retu| 000c7d20 72 6e 65 64 20 69 66 20 6e 6f 20 77 69 6e 64 6f |rned if no windo| 000c7d30 77 20 69 73 20 63 6c 61 69 6d 69 6e 67 20 69 64 |w is claiming id| 000c7d40 6c 65 20 65 76 65 6e 74 73 2e 00 00 44 41 54 41 |le events...DATA| 000c7d50 90 00 00 00 77 69 6e 5f 69 6e 69 74 0a 53 79 6e |....win_init.Syn| 000c7d60 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 77 69 6e 5f |tax:.<BOOL> win_| 000c7d70 69 6e 69 74 20 28 76 6f 69 64 29 3b 0a 48 65 61 |init (void);.Hea| 000c7d80 64 65 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e |der:.<win.h=>win| 000c7d90 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 |>..Returns:.<TRU| 000c7da0 45 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 6c |E> if successful| 000c7db0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000c7dc0 20 69 6e 69 74 69 61 6c 69 73 65 73 20 74 68 65 | initialises the| 000c7dd0 20 77 69 6e 20 73 79 73 74 65 6d 2e 44 41 54 41 | win system.DATA| 000c7de0 f2 00 00 00 77 69 6e 5f 70 72 6f 63 65 73 73 65 |....win_processe| 000c7df0 76 65 6e 74 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |vent.Syntax:.<BO| 000c7e00 4f 4c 3e 20 77 69 6e 5f 70 72 6f 63 65 73 73 65 |OL> win_processe| 000c7e10 76 65 6e 74 20 28 3c 77 69 6d 70 5f 65 76 65 6e |vent (<wimp_even| 000c7e20 74 73 74 72 3e 20 2a 65 29 3b 0a 48 65 61 64 65 |tstr> *e);.Heade| 000c7e30 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 0a |r:.<win.h=>win>.| 000c7e40 0a 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e |.Returns:.<TRUE>| 000c7e50 20 69 66 20 65 76 65 6e 74 20 70 72 6f 63 65 73 | if event proces| 000c7e60 73 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |sed...This funct| 000c7e70 69 6f 6e 20 64 65 6c 69 76 65 72 73 20 61 6e 20 |ion delivers an | 000c7e80 65 76 65 6e 74 20 74 6f 20 69 74 73 20 72 65 6c |event to its rel| 000c7e90 65 76 61 6e 74 20 77 69 6e 64 6f 77 2e 20 49 74 |evant window. It| 000c7ea0 20 69 73 20 63 61 6c 6c 65 64 20 62 79 20 3c 65 | is called by <e| 000c7eb0 76 65 6e 74 5f 70 72 6f 63 65 73 73 3d 3e 65 76 |vent_process=>ev| 000c7ec0 65 6e 74 5f 70 72 6f 63 65 73 73 5f 3e 2e 00 00 |ent_process_>...| 000c7ed0 44 41 54 41 4e 01 00 00 77 69 6e 5f 72 65 61 64 |DATAN...win_read| 000c7ee0 5f 65 76 65 6e 74 5f 68 61 6e 64 6c 65 72 0a 53 |_event_handler.S| 000c7ef0 79 6e 74 61 78 3a 09 3c 42 4f 4f 4c 3e 20 77 69 |yntax:.<BOOL> wi| 000c7f00 6e 5f 72 65 61 64 5f 65 76 65 6e 74 5f 68 61 6e |n_read_event_han| 000c7f10 64 6c 65 72 20 28 3c 77 69 6d 70 5f 77 3e 20 77 |dler (<wimp_w> w| 000c7f20 69 6e 2c 20 3c 77 69 6e 5f 65 76 65 6e 74 5f 68 |in, <win_event_h| 000c7f30 61 6e 64 6c 65 72 3e 20 2a 66 75 6e 63 2c 20 76 |andler> *func, v| 000c7f40 6f 69 64 20 2a 2a 68 61 6e 64 6c 65 29 3b 0a 48 |oid **handle);.H| 000c7f50 65 61 64 65 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 |eader:.<win.h=>w| 000c7f60 69 6e 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 3c 54 |in>..Returns:.<T| 000c7f70 52 55 45 3e 20 69 66 20 74 68 65 20 67 69 76 65 |RUE> if the give| 000c7f80 6e 20 77 69 6e 64 6f 77 20 69 73 20 72 65 67 69 |n window is regi| 000c7f90 73 74 65 72 65 64 2e 0a 0a 54 68 69 73 20 66 75 |stered...This fu| 000c7fa0 6e 63 74 69 6f 6e 20 72 65 61 64 73 20 74 68 65 |nction reads the| 000c7fb0 20 65 76 65 6e 74 20 68 61 6e 64 6c 65 72 20 66 | event handler f| 000c7fc0 6f 72 20 61 20 67 69 76 65 6e 20 77 69 6e 64 6f |or a given windo| 000c7fd0 77 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 |w and returns it| 000c7fe0 20 61 6e 64 20 69 74 73 20 68 61 6e 64 6c 65 20 | and its handle | 000c7ff0 69 6e 20 7b 2f 7d 2a 66 75 6e 63 7b 2f 7d 20 61 |in {/}*func{/} a| 000c8000 6e 64 20 7b 2f 7d 2a 68 61 6e 64 6c 65 7b 2f 7d |nd {/}*handle{/}| 000c8010 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 00 00 | respectively...| 000c8020 44 41 54 41 e2 01 00 00 77 69 6e 5f 72 65 67 69 |DATA....win_regi| 000c8030 73 74 65 72 5f 65 76 65 6e 74 5f 68 61 6e 64 6c |ster_event_handl| 000c8040 65 72 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 |er.Syntax:.void | 000c8050 77 69 6e 5f 72 65 67 69 73 74 65 72 5f 65 76 65 |win_register_eve| 000c8060 6e 74 5f 68 61 6e 64 6c 65 72 20 28 3c 77 69 6d |nt_handler (<wim| 000c8070 70 5f 77 3e 20 77 69 6e 2c 20 3c 77 69 6e 5f 65 |p_w> win, <win_e| 000c8080 76 65 6e 74 5f 68 61 6e 64 6c 65 72 3e 20 66 75 |vent_handler> fu| 000c8090 6e 63 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 |nc, void *handle| 000c80a0 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6e 2e |);.Header:.<win.| 000c80b0 68 3d 3e 77 69 6e 3e 0a 0a 54 68 69 73 20 66 75 |h=>win>..This fu| 000c80c0 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 73 20 |nction installs | 000c80d0 61 6e 20 65 76 65 6e 74 20 68 61 6e 64 6c 65 72 |an event handler| 000c80e0 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 61 20 | function for a | 000c80f0 67 69 76 65 6e 20 77 69 6e 64 6f 77 2e 20 2f 68 |given window. /h| 000c8100 61 6e 64 6c 65 2f 20 69 73 20 70 61 73 73 65 64 |andle/ is passed| 000c8110 20 73 74 72 61 69 67 68 74 20 74 6f 20 74 68 65 | straight to the| 000c8120 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f | handler functio| 000c8130 6e 2e 20 54 6f 20 72 65 6d 6f 76 65 20 61 20 68 |n. To remove a h| 000c8140 61 6e 64 6c 65 72 2c 20 63 61 6c 6c 20 77 69 74 |andler, call wit| 000c8150 68 20 2f 66 75 6e 63 2f 20 3d 20 3c 4e 55 4c 4c |h /func/ = <NULL| 000c8160 3e 2e 20 54 6f 20 63 61 74 63 68 20 6b 65 79 20 |>. To catch key | 000c8170 65 76 65 6e 74 73 20 66 6f 72 20 69 63 6f 6e 20 |events for icon | 000c8180 62 61 72 20 69 63 6f 6e 73 2c 20 72 65 67 69 73 |bar icons, regis| 000c8190 74 65 72 20 61 20 68 61 6e 64 6c 65 72 20 66 6f |ter a handler fo| 000c81a0 72 20 74 68 65 20 77 69 6e 64 6f 77 20 3c 77 69 |r the window <wi| 000c81b0 6e 5f 49 43 4f 4e 42 41 52 3e 2e 20 54 6f 20 63 |n_ICONBAR>. To c| 000c81c0 61 74 63 68 20 6c 6f 61 64 20 65 76 65 6e 74 20 |atch load event | 000c81d0 66 6f 72 20 61 6e 20 69 63 6f 6e 20 6f 6e 20 74 |for an icon on t| 000c81e0 68 65 20 69 63 6f 6e 20 62 61 72 20 75 73 65 20 |he icon bar use | 000c81f0 3c 77 69 6e 5f 49 43 4f 4e 42 41 52 4c 4f 41 44 |<win_ICONBARLOAD| 000c8200 3e 2e 00 00 44 41 54 41 e5 00 00 00 77 69 6e 5f |>...DATA....win_| 000c8210 73 65 74 6d 65 6e 75 68 0a 53 79 6e 74 61 78 3a |setmenuh.Syntax:| 000c8220 09 76 6f 69 64 20 77 69 6e 5f 73 65 74 6d 65 6e |.void win_setmen| 000c8230 75 68 20 28 3c 77 69 6d 70 5f 77 3e 20 77 69 6e |uh (<wimp_w> win| 000c8240 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b |, void *handle);| 000c8250 0a 48 65 61 64 65 72 3a 09 3c 77 69 6e 2e 68 3d |.Header:.<win.h=| 000c8260 3e 77 69 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |>win>..This func| 000c8270 74 69 6f 6e 73 20 61 74 74 61 63 68 65 73 20 74 |tions attaches t| 000c8280 68 65 20 67 69 76 65 6e 20 6d 65 6e 75 20 73 74 |he given menu st| 000c8290 72 75 63 74 75 72 65 20 28 70 6f 69 6e 74 65 64 |ructure (pointed| 000c82a0 20 74 6f 20 62 79 20 2f 68 61 6e 64 6c 65 2f 29 | to by /handle/)| 000c82b0 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 77 69 | to the given wi| 000c82c0 6e 64 6f 77 2e 20 54 68 69 73 20 69 73 20 75 73 |ndow. This is us| 000c82d0 65 64 20 62 79 20 3c 65 76 65 6e 74 5f 61 74 74 |ed by <event_att| 000c82e0 61 63 68 6d 65 6e 75 3e 2e 00 00 00 44 41 54 41 |achmenu>....DATA| 000c82f0 2a 01 00 00 77 69 6e 5f 73 65 74 74 69 74 6c 65 |*...win_settitle| 000c8300 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 |.Syntax:.void wi| 000c8310 6e 5f 73 65 74 74 69 74 6c 65 20 28 3c 77 69 6d |n_settitle (<wim| 000c8320 70 5f 77 3e 20 77 69 6e 2c 20 63 68 61 72 20 2a |p_w> win, char *| 000c8330 6e 65 77 74 69 74 6c 65 29 3b 0a 48 65 61 64 65 |newtitle);.Heade| 000c8340 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 0a |r:.<win.h=>win>.| 000c8350 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 000c8360 68 61 6e 67 65 73 20 74 68 65 20 5f 49 4e 44 49 |hanges the _INDI| 000c8370 52 45 43 54 45 44 20 54 45 58 54 5f 20 74 69 74 |RECTED TEXT_ tit| 000c8380 6c 65 20 69 63 6f 6e 20 6f 66 20 74 68 65 20 67 |le icon of the g| 000c8390 69 76 65 6e 20 77 69 6e 64 6f 77 2e 20 41 6e 79 |iven window. Any| 000c83a0 20 77 69 6e 64 6f 77 73 20 63 72 65 61 74 65 64 | windows created| 000c83b0 20 66 72 6f 6d 20 74 68 65 20 73 61 6d 65 20 74 | from the same t| 000c83c0 65 6d 70 6c 61 74 65 20 77 69 6c 6c 20 68 61 76 |emplate will hav| 000c83d0 65 20 74 68 65 69 72 20 74 69 74 6c 65 73 20 63 |e their titles c| 000c83e0 68 61 6e 67 65 64 2c 20 75 6e 6c 65 73 73 20 74 |hanged, unless t| 000c83f0 68 65 79 20 77 65 72 65 20 63 6f 70 69 65 64 20 |hey were copied | 000c8400 75 73 69 6e 67 20 3c 74 65 6d 70 6c 61 74 65 5f |using <template_| 000c8410 63 6f 70 79 3e 2e 00 00 44 41 54 41 da 00 00 00 |copy>...DATA....| 000c8420 77 69 6e 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 6e |win_unknown_even| 000c8430 74 5f 63 6c 61 69 6d 65 72 0a 53 79 6e 74 61 78 |t_claimer.Syntax| 000c8440 3a 09 3c 77 69 6d 70 5f 77 3e 20 77 69 6e 5f 75 |:.<wimp_w> win_u| 000c8450 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 5f 63 6c 61 |nknown_event_cla| 000c8460 69 6d 65 72 20 28 76 6f 69 64 29 3b 0a 48 65 61 |imer (void);.Hea| 000c8470 64 65 72 3a 09 3c 77 69 6e 2e 68 3d 3e 77 69 6e |der:.<win.h=>win| 000c8480 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 48 61 6e 64 |>..Returns:.Hand| 000c8490 6c 65 20 6f 66 20 77 69 6e 64 6f 77 20 63 6c 61 |le of window cla| 000c84a0 69 6d 69 6e 67 20 65 76 65 6e 74 73 2e 0a 0a 54 |iming events...T| 000c84b0 65 6c 6c 73 20 79 6f 75 20 77 68 69 63 68 20 77 |ells you which w| 000c84c0 69 6e 64 6f 77 20 69 73 20 63 6c 61 69 6d 69 6e |indow is claimin| 000c84d0 67 20 75 6e 6b 6e 6f 77 6e 20 65 76 65 6e 74 73 |g unknown events| 000c84e0 20 28 6f 72 20 2d 31 20 66 6f 72 20 6e 6f 6e 65 | (or -1 for none| 000c84f0 29 2e 00 00 44 41 54 41 42 01 00 00 77 69 6e 5f |)...DATAB...win_| 000c8500 75 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 5f 70 72 |unknown_event_pr| 000c8510 6f 63 65 73 73 6f 72 0a 54 68 69 73 20 74 79 70 |ocessor.This typ| 000c8520 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 |e is defined in | 000c8530 3c 77 69 6e 2e 68 3d 3e 77 69 6e 3e 2e 20 49 74 |<win.h=>win>. It| 000c8540 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 75 | is a function u| 000c8550 73 65 64 20 66 6f 72 20 70 72 6f 63 65 73 73 69 |sed for processi| 000c8560 6e 67 20 75 6e 6b 6e 6f 77 6e 20 65 76 65 6e 74 |ng unknown event| 000c8570 73 20 28 53 68 6f 63 6b 21 20 48 6f 72 72 6f 72 |s (Shock! Horror| 000c8580 21 29 20 77 69 74 68 20 61 20 73 69 6d 69 6c 61 |!) with a simila| 000c8590 72 20 70 72 6f 74 6f 74 79 70 65 20 74 6f 3a 0a |r prototype to:.| 000c85a0 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 43 6f 64 |{wrap off}.{fCod| 000c85b0 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 3c |e;align centre}<| 000c85c0 42 4f 4f 4c 3e 20 6d 79 66 75 6e 63 20 28 3c 77 |BOOL> myfunc (<w| 000c85d0 69 6d 70 5f 65 76 65 6e 74 73 74 72 3e 20 2a 65 |imp_eventstr> *e| 000c85e0 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b |, void *handle);| 000c85f0 7b 66 3b 61 6c 69 67 6e 3b 77 72 61 70 7d 0a 0a |{f;align;wrap}..| 000c8600 49 74 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e |It should return| 000c8610 20 3c 54 52 55 45 3e 20 69 66 20 69 74 20 68 61 | <TRUE> if it ha| 000c8620 73 20 70 72 6f 63 65 73 73 65 64 20 74 68 65 20 |s processed the | 000c8630 65 76 65 6e 74 2e 00 00 44 41 54 41 bb 01 00 00 |event...DATA....| 000c8640 77 69 6e 5f 61 64 64 5f 75 6e 6b 6e 6f 77 6e 5f |win_add_unknown_| 000c8650 65 76 65 6e 74 5f 70 72 6f 63 65 73 73 6f 72 0a |event_processor.| 000c8660 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 6e |Syntax:.void win| 000c8670 5f 61 64 64 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 |_add_unknown_eve| 000c8680 6e 74 5f 70 72 6f 63 65 73 73 6f 72 20 28 3c 77 |nt_processor (<w| 000c8690 69 6e 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 6e 74 |in_unknown_event| 000c86a0 5f 70 72 6f 63 65 73 73 6f 72 3e 20 66 75 6e 63 |_processor> func| 000c86b0 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b |, void *handle);| 000c86c0 0a 48 65 61 64 65 72 3a 09 3c 77 69 6e 2e 68 3d |.Header:.<win.h=| 000c86d0 3e 77 69 6e 3e 0a 0a 54 68 69 73 20 66 75 6e 63 |>win>..This func| 000c86e0 74 69 6f 6e 20 61 64 64 73 20 61 20 68 61 6e 64 |tion adds a hand| 000c86f0 6c 65 72 20 66 6f 72 20 75 6e 6b 6e 6f 77 6e 20 |ler for unknown | 000c8700 65 76 65 6e 74 73 20 6f 6e 74 6f 20 74 68 65 20 |events onto the | 000c8710 66 72 6f 6e 74 20 6f 66 20 74 68 65 20 71 75 65 |front of the que| 000c8720 75 65 20 6f 66 20 73 75 63 68 20 68 61 6e 64 6c |ue of such handl| 000c8730 65 72 73 2e 20 4b 6e 6f 77 6e 20 65 76 65 6e 74 |ers. Known event| 000c8740 73 20 61 72 65 3a 20 45 4e 55 4c 4c 2c 20 45 52 |s are: ENULL, ER| 000c8750 45 44 52 41 57 2c 20 45 43 4c 4f 53 45 2c 20 45 |EDRAW, ECLOSE, E| 000c8760 4f 50 45 4e 2c 20 45 50 54 52 4c 45 41 56 45 2c |OPEN, EPTRLEAVE,| 000c8770 20 45 50 54 52 45 4e 54 45 52 2c 20 45 4b 45 59 | EPTRENTER, EKEY| 000c8780 2c 20 45 53 43 52 4f 4c 4c 2c 20 45 42 55 54 20 |, ESCROLL, EBUT | 000c8790 61 6e 64 20 45 53 45 4e 44 2f 45 53 45 4e 44 57 |and ESEND/ESENDW| 000c87a0 41 4e 54 41 43 4b 20 66 6f 72 20 74 68 65 20 66 |ANTACK for the f| 000c87b0 6f 6c 6c 6f 77 69 6e 67 20 6d 73 67 20 74 79 70 |ollowing msg typ| 000c87c0 65 73 3a 20 4d 43 4c 4f 53 45 44 4f 57 4e 2c 20 |es: MCLOSEDOWN, | 000c87d0 4d 44 41 54 41 53 41 56 45 2c 20 4d 44 41 54 41 |MDATASAVE, MDATA| 000c87e0 4c 4f 41 44 2c 20 4d 48 45 4c 50 52 45 51 55 45 |LOAD, MHELPREQUE| 000c87f0 53 54 2e 00 44 41 54 41 f8 00 00 00 77 69 6e 5f |ST..DATA....win_| 000c8800 72 65 6d 6f 76 65 5f 75 6e 6b 6e 6f 77 6e 5f 65 |remove_unknown_e| 000c8810 76 65 6e 74 5f 70 72 6f 63 65 73 73 6f 72 0a 53 |vent_processor.S| 000c8820 79 6e 74 61 78 3a 09 76 6f 69 64 20 77 69 6e 5f |yntax:.void win_| 000c8830 72 65 6d 6f 76 65 5f 75 6e 6b 6e 6f 77 6e 5f 65 |remove_unknown_e| 000c8840 76 65 6e 74 5f 70 72 6f 63 65 73 73 6f 72 20 28 |vent_processor (| 000c8850 3c 77 69 6e 5f 75 6e 6b 6e 6f 77 6e 5f 65 76 65 |<win_unknown_eve| 000c8860 6e 74 5f 70 72 6f 63 65 73 73 6f 72 3e 20 66 75 |nt_processor> fu| 000c8870 6e 63 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 |nc, void *handle| 000c8880 29 3b 0a 48 65 61 64 65 72 3a 09 3c 77 69 6e 2e |);.Header:.<win.| 000c8890 68 3d 3e 77 69 6e 3e 0a 0a 54 68 69 73 20 66 75 |h=>win>..This fu| 000c88a0 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 61 |nction removes a| 000c88b0 20 68 61 6e 64 6c 65 72 20 66 6f 72 20 75 6e 6b | handler for unk| 000c88c0 6e 6f 77 6e 20 65 76 65 6e 74 73 20 66 72 6f 6d |nown events from| 000c88d0 20 74 68 65 20 71 75 65 75 65 20 6f 66 20 73 75 | the queue of su| 000c88e0 63 68 20 68 61 6e 64 6c 65 72 73 2e 44 49 52 24 |ch handlers.DIR$| 000c88f0 f0 02 00 00 f0 02 00 00 dc 8b 0c 00 46 fd ff ff |............F...| 000c8900 d5 32 45 26 7a 00 00 00 13 00 00 00 00 00 00 00 |.2E&z...........| 000c8910 63 61 72 65 74 5f 00 00 58 8c 0c 00 46 fd ff ff |caret_..X...F...| 000c8920 13 98 ea 24 91 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000c8930 63 6f 6c 5f 00 00 00 00 ec 8c 0c 00 46 fd ff ff |col_........F...| 000c8940 7e fd 44 26 38 02 00 00 13 00 00 00 00 00 00 00 |~.D&8...........| 000c8950 63 6f 6c 70 61 6c 5f 00 24 8f 0c 00 46 fd ff ff |colpal_.$...F...| 000c8960 36 21 45 26 45 00 00 00 13 00 00 00 00 00 00 00 |6!E&E...........| 000c8970 64 72 61 67 64 61 74 5f 00 00 00 00 6c 8f 0c 00 |dragdat_....l...| 000c8980 46 fd ff ff c2 43 45 26 9a 00 00 00 13 00 00 00 |F....CE&........| 000c8990 00 00 00 00 65 76 65 6e 74 73 5f 00 08 90 0c 00 |....events_.....| 000c89a0 46 fd ff ff f0 b6 ea 24 64 00 00 00 13 00 00 00 |F......$d.......| 000c89b0 00 00 00 00 66 6f 6e 74 5f 00 00 00 6c 90 0c 00 |....font_...l...| 000c89c0 46 fd ff ff e3 41 ea 24 fd 00 00 00 13 00 00 00 |F....A.$........| 000c89d0 00 00 00 00 69 63 6f 6e 5f 00 00 00 6c 91 0c 00 |....icon_...l...| 000c89e0 46 fd ff ff ac 0f 45 26 52 01 00 00 13 00 00 00 |F.....E&R.......| 000c89f0 00 00 00 00 69 63 6f 6e 64 61 74 5f 00 00 00 00 |....icondat_....| 000c8a00 c0 92 0c 00 46 fd ff ff a4 38 38 26 fa 00 00 00 |....F....88&....| 000c8a10 13 00 00 00 00 00 00 00 69 64 5f 62 6f 72 64 5f |........id_bord_| 000c8a20 00 00 00 00 bc 93 0c 00 46 fd ff ff 2b d0 37 26 |........F...+.7&| 000c8a30 5a 02 00 00 13 00 00 00 00 00 00 00 69 64 5f 62 |Z...........id_b| 000c8a40 75 74 5f 00 18 96 0c 00 46 fd ff ff 73 12 38 26 |ut_.....F...s.8&| 000c8a50 f8 03 00 00 13 00 00 00 00 00 00 00 69 64 5f 66 |............id_f| 000c8a60 6c 61 67 5f 00 00 00 00 10 9a 0c 00 46 fd ff ff |lag_........F...| 000c8a70 40 2b 38 26 f5 00 00 00 13 00 00 00 00 00 00 00 |@+8&............| 000c8a80 69 64 5f 76 61 6c 5f 00 08 9b 0c 00 46 fd ff ff |id_val_.....F...| 000c8a90 d0 f5 e8 24 a4 02 00 00 13 00 00 00 00 00 00 00 |...$............| 000c8aa0 69 6e 69 74 5f 00 00 00 ac 9d 0c 00 46 fd ff ff |init_.......F...| 000c8ab0 e2 c6 45 26 84 00 00 00 13 00 00 00 00 00 00 00 |..E&............| 000c8ac0 6d 65 6e 75 73 5f 00 00 30 9e 0c 00 46 fd ff ff |menus_..0...F...| 000c8ad0 5a 3c 45 26 41 01 00 00 13 00 00 00 00 00 00 00 |Z<E&A...........| 000c8ae0 6d 65 73 73 64 61 74 5f 00 00 00 00 74 9f 0c 00 |messdat_....t...| 000c8af0 46 fd ff ff b5 4d 45 26 e3 00 00 00 13 00 00 00 |F....ME&........| 000c8b00 00 00 00 00 6d 69 73 63 5f 00 00 00 58 a0 0c 00 |....misc_...X...| 000c8b10 46 fd ff ff df cd 41 26 8b 00 00 00 13 00 00 00 |F.....A&........| 000c8b20 00 00 00 00 6d 6f 75 73 65 69 6e 66 5f 00 00 00 |....mouseinf_...| 000c8b30 e4 a0 0c 00 46 fd ff ff cc a4 e9 24 9a 01 00 00 |....F......$....| 000c8b40 13 00 00 00 00 00 00 00 6f 70 65 6e 5f 00 00 00 |........open_...| 000c8b50 80 a2 0c 00 46 fd ff ff d0 2a ea 24 59 00 00 00 |....F....*.$Y...| 000c8b60 13 00 00 00 00 00 00 00 74 65 6d 70 5f 00 00 00 |........temp_...| 000c8b70 dc a2 0c 00 46 fd ff ff 41 28 b6 22 3c 00 00 00 |....F...A(."<...| 000c8b80 13 00 00 00 00 00 00 00 77 69 6d 70 65 72 72 5f |........wimperr_| 000c8b90 00 00 00 00 18 a3 0c 00 46 fd ff ff 37 16 45 26 |........F...7.E&| 000c8ba0 cd 00 00 00 13 00 00 00 00 00 00 00 77 69 6e 64 |............wind| 000c8bb0 61 74 5f 00 e8 a3 0c 00 46 fd ff ff 09 f2 41 26 |at_.....F.....A&| 000c8bc0 db 00 00 00 13 00 00 00 00 00 00 00 6d 6f 75 73 |............mous| 000c8bd0 65 69 6e 66 5f 6d 61 63 00 00 00 00 44 41 54 41 |einf_mac....DATA| 000c8be0 7a 00 00 00 57 69 6d 70 20 63 61 72 65 74 2f 6b |z...Wimp caret/k| 000c8bf0 65 79 70 72 65 73 73 20 64 61 74 61 0a 54 79 70 |eypress data.Typ| 000c8c00 65 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f 6c 75 |es:..#table colu| 000c8c10 6d 6e 73 20 32 0a 3c 6b 65 79 5f 70 72 65 73 73 |mns 2.<key_press| 000c8c20 3e 0a 3c 63 61 72 65 74 5f 62 6c 6f 63 6b 3e 0a |>.<caret_block>.| 000c8c30 3c 6b 65 79 5f 62 6c 6f 63 6b 3e 0a 3c 70 6f 6c |<key_block>.<pol| 000c8c40 6c 77 6f 72 64 5f 62 6c 6f 63 6b 3e 0a 23 65 6e |lword_block>.#en| 000c8c50 64 74 61 62 6c 65 00 00 44 41 54 41 91 00 00 00 |dtable..DATA....| 000c8c60 43 6f 6c 6f 75 72 20 48 61 6e 64 6c 69 6e 67 0a |Colour Handling.| 000c8c70 23 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a 3c 77 |#align centre.<w| 000c8c80 69 6d 70 5f 72 65 61 64 70 61 6c 65 74 74 65 3d |imp_readpalette=| 000c8c90 3e 77 69 6d 70 5f 72 65 61 64 70 61 6c 65 74 74 |>wimp_readpalett| 000c8ca0 65 5f 3e 0a 3c 77 69 6d 70 5f 73 65 74 70 61 6c |e_>.<wimp_setpal| 000c8cb0 65 74 74 65 3d 3e 77 69 6d 70 5f 73 65 74 70 61 |ette=>wimp_setpa| 000c8cc0 6c 65 74 74 65 5f 3e 0a 3c 77 69 6d 70 5f 73 65 |lette_>.<wimp_se| 000c8cd0 74 63 6f 6c 6f 75 72 3d 3e 77 69 6d 70 5f 73 65 |tcolour=>wimp_se| 000c8ce0 74 63 6f 6c 6f 75 72 5f 3e 00 00 00 44 41 54 41 |tcolour_>...DATA| 000c8cf0 38 02 00 00 57 69 6d 70 20 63 6f 6c 6f 75 72 73 |8...Wimp colours| 000c8d00 2f 70 61 6c 65 74 74 65 73 0a 54 79 70 65 73 3a |/palettes.Types:| 000c8d10 0a 0a 23 69 6e 64 65 6e 74 20 36 0a 23 54 61 62 |..#indent 6.#Tab| 000c8d20 6c 65 20 63 6f 6c 75 6d 6e 73 20 33 0a 3c 77 69 |le columns 3.<wi| 000c8d30 6d 70 5f 63 6f 6c 6f 75 72 3e 0a 3c 70 61 6c 65 |mp_colour>.<pale| 000c8d40 74 74 65 5f 65 6e 74 72 79 3e 0a 3c 70 61 6c 65 |tte_entry>.<pale| 000c8d50 74 74 65 5f 62 6c 6f 63 6b 3e 0a 23 45 6e 64 54 |tte_block>.#EndT| 000c8d60 61 62 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 4d 61 |able.#indent..Ma| 000c8d70 63 72 6f 73 3a 0a 0a 54 68 65 20 66 6f 6c 6c 6f |cros:..The follo| 000c8d80 77 69 6e 67 20 6d 61 63 72 6f 73 20 61 72 65 20 |wing macros are | 000c8d90 64 65 66 69 6e 65 64 20 74 6f 20 72 65 70 72 65 |defined to repre| 000c8da0 73 65 6e 74 20 74 68 65 20 57 69 6d 70 20 63 6f |sent the Wimp co| 000c8db0 6c 6f 75 72 73 20 30 2d 31 35 2e 20 57 48 49 54 |lours 0-15. WHIT| 000c8dc0 45 20 61 6e 64 20 47 52 45 59 30 20 61 72 65 20 |E and GREY0 are | 000c8dd0 65 71 75 69 76 61 6c 65 6e 74 2c 20 61 73 20 61 |equivalent, as a| 000c8de0 72 65 20 42 4c 41 43 4b 20 41 4e 44 20 47 52 45 |re BLACK AND GRE| 000c8df0 59 37 2e 0a 0a 23 69 6e 64 65 6e 74 20 36 0a 23 |Y7...#indent 6.#| 000c8e00 54 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 20 32 0a |Table columns 2.| 000c8e10 63 6f 6c 6f 75 72 5f 57 48 49 54 45 0a 63 6f 6c |colour_WHITE.col| 000c8e20 6f 75 72 5f 47 52 45 59 30 0a 63 6f 6c 6f 75 72 |our_GREY0.colour| 000c8e30 5f 47 52 45 59 31 0a 63 6f 6c 6f 75 72 5f 47 52 |_GREY1.colour_GR| 000c8e40 45 59 32 0a 63 6f 6c 6f 75 72 5f 47 52 45 59 33 |EY2.colour_GREY3| 000c8e50 0a 63 6f 6c 6f 75 72 5f 47 52 45 59 34 0a 63 6f |.colour_GREY4.co| 000c8e60 6c 6f 75 72 5f 47 52 45 59 35 0a 63 6f 6c 6f 75 |lour_GREY5.colou| 000c8e70 72 5f 47 52 45 59 36 0a 63 6f 6c 6f 75 72 5f 47 |r_GREY6.colour_G| 000c8e80 52 45 59 37 0a 63 6f 6c 6f 75 72 5f 42 4c 41 43 |REY7.colour_BLAC| 000c8e90 4b 0a 63 6f 6c 6f 75 72 5f 44 41 52 4b 5f 42 4c |K.colour_DARK_BL| 000c8ea0 55 45 0a 63 6f 6c 6f 75 72 5f 59 45 4c 4c 4f 57 |UE.colour_YELLOW| 000c8eb0 0a 63 6f 6c 6f 75 72 5f 47 52 45 45 4e 0a 63 6f |.colour_GREEN.co| 000c8ec0 6c 6f 75 72 5f 52 45 44 0a 63 6f 6c 6f 75 72 5f |lour_RED.colour_| 000c8ed0 43 52 45 41 4d 0a 63 6f 6c 6f 75 72 5f 41 52 4d |CREAM.colour_ARM| 000c8ee0 59 5f 47 52 45 45 4e 0a 63 6f 6c 6f 75 72 5f 4f |Y_GREEN.colour_O| 000c8ef0 52 41 4e 47 45 0a 63 6f 6c 6f 75 72 5f 4c 49 47 |RANGE.colour_LIG| 000c8f00 48 54 5f 42 4c 55 45 0a 63 6f 6c 6f 75 72 5f 54 |HT_BLUE.colour_T| 000c8f10 52 41 4e 53 50 41 52 45 4e 54 0a 23 45 6e 64 54 |RANSPARENT.#EndT| 000c8f20 61 62 6c 65 44 41 54 41 45 00 00 00 57 69 6d 70 |ableDATAE...Wimp| 000c8f30 20 64 72 61 67 20 64 61 74 61 0a 54 79 70 65 73 | drag data.Types| 000c8f40 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d |:.{align centre}| 000c8f50 0a 3c 64 72 61 67 5f 74 79 70 65 3e 0a 3c 64 72 |.<drag_type>.<dr| 000c8f60 61 67 5f 62 6c 6f 63 6b 3e 00 00 00 44 41 54 41 |ag_block>...DATA| 000c8f70 9a 00 00 00 57 69 6d 70 20 65 76 65 6e 74 73 0a |....Wimp events.| 000c8f80 54 79 70 65 73 3a 0a 0a 23 54 61 62 6c 65 20 33 |Types:..#Table 3| 000c8f90 20 31 37 0a 3c 65 76 65 6e 74 5f 74 79 70 65 3e | 17.<event_type>| 000c8fa0 0a 3c 65 76 65 6e 74 5f 70 6f 6c 6c 6d 61 73 6b |.<event_pollmask| 000c8fb0 3e 0a 3c 73 63 72 6f 6c 6c 5f 72 71 3e 0a 3c 65 |>.<scroll_rq>.<e| 000c8fc0 76 65 6e 74 5f 64 61 74 61 3e 0a 3c 65 76 65 6e |vent_data>.<even| 000c8fd0 74 5f 70 6f 6c 6c 62 6c 6f 63 6b 3e 0a 23 45 6e |t_pollblock>.#En| 000c8fe0 64 54 61 62 6c 65 0a 0a 4d 61 63 72 6f 73 3a 0a |dTable..Macros:.| 000c8ff0 0a 3c 77 69 6d 70 5f 4e 55 4d 42 45 52 4f 46 45 |.<wimp_NUMBEROFE| 000c9000 56 45 4e 54 53 3e 00 00 44 41 54 41 64 00 00 00 |VENTS>..DATAd...| 000c9010 46 6f 6e 74 20 48 61 6e 64 6c 69 6e 67 0a 23 7b |Font Handling.#{| 000c9020 61 6c 69 67 6e 20 63 65 6e 74 72 65 0a 3c 77 69 |align centre.<wi| 000c9030 6d 70 5f 73 65 74 66 6f 6e 74 63 6f 6c 6f 75 72 |mp_setfontcolour| 000c9040 73 3e 0a 3c 77 69 6d 70 5f 73 65 74 5f 63 61 72 |s>.<wimp_set_car| 000c9050 65 74 5f 70 6f 73 3e 0a 3c 77 69 6d 70 5f 67 65 |et_pos>.<wimp_ge| 000c9060 74 5f 63 61 72 65 74 5f 70 6f 73 3e 44 41 54 41 |t_caret_pos>DATA| 000c9070 fd 00 00 00 49 63 6f 6e 20 48 61 6e 64 6c 69 6e |....Icon Handlin| 000c9080 67 0a 23 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 73 |g.#table columns| 000c9090 20 32 0a 3c 77 69 6d 70 5f 63 72 65 61 74 65 5f | 2.<wimp_create_| 000c90a0 69 63 6f 6e 3e 0a 3c 77 69 6d 70 5f 64 65 6c 65 |icon>.<wimp_dele| 000c90b0 74 65 5f 69 63 6f 6e 3e 0a 3c 77 69 6d 70 5f 73 |te_icon>.<wimp_s| 000c90c0 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 3e 0a 3c |et_icon_state>.<| 000c90d0 77 69 6d 70 5f 67 65 74 5f 69 63 6f 6e 5f 69 6e |wimp_get_icon_in| 000c90e0 66 6f 3e 0a 3c 77 69 6d 70 5f 64 72 61 67 5f 62 |fo>.<wimp_drag_b| 000c90f0 6f 78 3e 0a 3c 77 69 6d 70 5f 77 68 69 63 68 5f |ox>.<wimp_which_| 000c9100 69 63 6f 6e 3e 0a 3c 77 69 6d 70 5f 70 72 6f 63 |icon>.<wimp_proc| 000c9110 65 73 73 6b 65 79 3e 0a 3c 77 69 6d 70 5f 70 6c |esskey>.<wimp_pl| 000c9120 6f 74 69 63 6f 6e 3d 3e 77 69 6d 70 5f 70 6c 6f |oticon=>wimp_plo| 000c9130 74 69 63 6f 6e 5f 3e 0a 3c 77 69 6d 70 5f 72 65 |ticon_>.<wimp_re| 000c9140 61 64 70 69 78 74 72 61 6e 73 3d 3e 77 69 6d 70 |adpixtrans=>wimp| 000c9150 5f 72 65 61 64 70 69 78 74 72 61 6e 73 5f 3e 0a |_readpixtrans_>.| 000c9160 23 65 6e 64 74 61 62 6c 65 00 00 00 44 41 54 41 |#endtable...DATA| 000c9170 52 01 00 00 57 69 6d 70 20 69 63 6f 6e 20 64 61 |R...Wimp icon da| 000c9180 74 61 0a 54 79 70 65 73 3a 0a 0a 23 54 61 62 6c |ta.Types:..#Tabl| 000c9190 65 20 32 20 31 35 0a 3c 69 63 6f 6e 5f 66 6c 61 |e 2 15.<icon_fla| 000c91a0 67 73 3e 0a 3c 69 63 6f 6e 5f 69 6e 64 74 65 78 |gs>.<icon_indtex| 000c91b0 74 3e 0a 3c 69 63 6f 6e 5f 69 6e 64 73 70 72 69 |t>.<icon_indspri| 000c91c0 74 65 3e 0a 3c 69 63 6f 6e 5f 64 61 74 61 3e 0a |te>.<icon_data>.| 000c91d0 3c 69 63 6f 6e 5f 62 6c 6f 63 6b 3e 0a 3c 69 63 |<icon_block>.<ic| 000c91e0 6f 6e 5f 63 72 65 61 74 65 62 6c 6f 63 6b 3e 0a |on_createblock>.| 000c91f0 23 45 6e 64 54 61 62 6c 65 0a 0a 4d 61 63 72 6f |#EndTable..Macro| 000c9200 73 3a 0a 0a 23 54 61 62 6c 65 20 34 20 32 35 0a |s:..#Table 4 25.| 000c9210 3c 42 75 74 74 6f 6e 20 74 79 70 65 73 3d 3e 77 |<Button types=>w| 000c9220 5f 69 64 5f 62 75 74 5f 3e 0a 3c 49 63 6f 6e 20 |_id_but_>.<Icon | 000c9230 66 6c 61 67 20 62 69 74 73 3d 3e 77 5f 69 64 5f |flag bits=>w_id_| 000c9240 66 6c 61 67 5f 3e 0a 3c 56 61 6c 69 64 61 74 69 |flag_>.<Validati| 000c9250 6f 6e 20 63 68 61 72 61 63 74 65 72 73 3d 3e 77 |on characters=>w| 000c9260 5f 69 64 5f 76 61 6c 5f 3e 0a 3c 42 6f 72 64 65 |_id_val_>.<Borde| 000c9270 72 20 74 79 70 65 73 3d 3e 77 5f 69 64 5f 62 6f |r types=>w_id_bo| 000c9280 72 64 5f 3e 0a 3c 69 63 6f 6e 62 61 72 5f 52 49 |rd_>.<iconbar_RI| 000c9290 47 48 54 3e 0a 3c 69 63 6f 6e 62 61 72 5f 4c 45 |GHT>.<iconbar_LE| 000c92a0 46 54 3e 0a 3c 77 69 6e 64 6f 77 5f 49 43 4f 4e |FT>.<window_ICON| 000c92b0 42 41 52 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 |BAR>.#EndTable..| 000c92c0 44 41 54 41 fa 00 00 00 57 69 6d 70 20 69 63 6f |DATA....Wimp ico| 000c92d0 6e 20 62 6f 72 64 65 72 20 74 79 70 65 73 0a 54 |n border types.T| 000c92e0 68 65 73 65 20 6d 61 63 72 6f 73 20 61 72 65 20 |hese macros are | 000c92f0 64 65 66 69 6e 65 64 20 69 6e 20 3c 44 65 73 6b |defined in <Desk| 000c9300 4c 69 62 3a 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 |Lib:Wimp.h=>Wimp| 000c9310 3e 2e 20 54 68 65 79 20 61 72 65 20 74 68 65 20 |>. They are the | 000c9320 62 6f 72 64 65 72 20 74 79 70 65 73 20 75 73 65 |border types use| 000c9330 64 20 62 79 20 74 68 65 20 49 6e 74 65 72 66 61 |d by the Interfa| 000c9340 63 65 20 6d 6f 64 75 6c 65 20 28 6e 6f 74 20 52 |ce module (not R| 000c9350 49 53 43 20 4f 53 20 33 21 29 2e 0a 0a 23 69 6e |ISC OS 3!)...#in| 000c9360 64 65 6e 74 20 36 0a 69 63 6f 6e 62 6f 72 64 65 |dent 6.iconborde| 000c9370 72 5f 50 4c 49 4e 54 48 09 30 0a 69 63 6f 6e 62 |r_PLINTH.0.iconb| 000c9380 6f 72 64 65 72 5f 53 55 52 52 4f 55 4e 44 09 31 |order_SURROUND.1| 000c9390 0a 69 63 6f 6e 62 6f 72 64 65 72 5f 4f 4b 42 55 |.iconborder_OKBU| 000c93a0 54 54 4f 4e 09 32 0a 69 63 6f 6e 62 6f 72 64 65 |TTON.2.iconborde| 000c93b0 72 5f 49 4e 44 45 4e 54 09 33 00 00 44 41 54 41 |r_INDENT.3..DATA| 000c93c0 5a 02 00 00 57 69 6d 70 20 69 63 6f 6e 20 62 75 |Z...Wimp icon bu| 000c93d0 74 74 6f 6e 20 74 79 70 65 73 0a 54 68 65 73 65 |tton types.These| 000c93e0 20 6d 61 63 72 6f 73 20 61 72 65 20 64 65 66 69 | macros are defi| 000c93f0 6e 65 64 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a |ned in <DeskLib:| 000c9400 57 69 6d 70 2e 68 3d 3e 57 69 6d 70 3e 2e 0a 0a |Wimp.h=>Wimp>...| 000c9410 23 74 61 62 20 2c 61 6c 69 67 6e 20 72 69 67 68 |#tab ,align righ| 000c9420 74 2c 0a 20 20 20 20 20 20 20 69 63 6f 6e 62 74 |t,. iconbt| 000c9430 79 70 65 5f 4e 45 56 45 52 09 09 09 30 09 0a 20 |ype_NEVER...0.. | 000c9440 20 20 20 20 20 20 69 63 6f 6e 62 74 79 70 65 5f | iconbtype_| 000c9450 41 4c 57 41 59 53 09 09 09 31 09 0a 20 20 20 20 |ALWAYS...1.. | 000c9460 20 20 20 69 63 6f 6e 62 74 79 70 65 5f 41 55 54 | iconbtype_AUT| 000c9470 4f 52 45 50 45 41 54 09 09 32 09 0a 20 20 20 20 |OREPEAT..2.. | 000c9480 20 20 20 69 63 6f 6e 62 74 79 70 65 5f 43 4c 49 | iconbtype_CLI| 000c9490 43 4b 09 09 09 33 09 0a 20 20 20 20 20 20 20 69 |CK...3.. i| 000c94a0 63 6f 6e 62 74 79 70 65 5f 52 45 4c 45 41 53 45 |conbtype_RELEASE| 000c94b0 09 09 34 09 0a 20 20 20 20 20 20 20 69 63 6f 6e |..4.. icon| 000c94c0 62 74 79 70 65 5f 44 4f 55 42 4c 45 43 4c 49 43 |btype_DOUBLECLIC| 000c94d0 4b 09 09 35 09 0a 20 20 20 20 20 20 20 69 63 6f |K..5.. ico| 000c94e0 6e 62 74 79 70 65 5f 43 4c 49 43 4b 44 52 41 47 |nbtype_CLICKDRAG| 000c94f0 09 09 36 09 0a 20 20 20 20 20 20 20 69 63 6f 6e |..6.. icon| 000c9500 62 74 79 70 65 5f 52 45 4c 45 41 53 45 44 52 41 |btype_RELEASEDRA| 000c9510 47 09 09 37 09 0a 20 20 20 20 20 20 20 69 63 6f |G..7.. ico| 000c9520 6e 62 74 79 70 65 5f 44 4f 55 42 4c 45 44 52 41 |nbtype_DOUBLEDRA| 000c9530 47 09 09 38 09 0a 20 20 20 20 20 20 20 69 63 6f |G..8.. ico| 000c9540 6e 62 74 79 70 65 5f 4d 45 4e 55 09 09 09 39 09 |nbtype_MENU...9.| 000c9550 0a 20 20 20 20 20 20 20 69 63 6f 6e 62 74 79 70 |. iconbtyp| 000c9560 65 5f 44 4f 55 42 4c 45 43 4c 49 43 4b 44 52 41 |e_DOUBLECLICKDRA| 000c9570 47 09 31 30 09 0a 20 20 20 20 20 20 20 69 63 6f |G.10.. ico| 000c9580 6e 62 74 79 70 65 5f 52 41 44 49 4f 09 09 09 31 |nbtype_RADIO...1| 000c9590 31 09 0a 20 20 20 20 20 20 20 69 63 6f 6e 62 74 |1.. iconbt| 000c95a0 79 70 65 5f 52 45 53 45 52 56 45 44 31 09 09 31 |ype_RESERVED1..1| 000c95b0 32 09 0a 20 20 20 20 20 20 20 69 63 6f 6e 62 74 |2.. iconbt| 000c95c0 79 70 65 5f 52 45 53 45 52 56 45 44 32 09 09 31 |ype_RESERVED2..1| 000c95d0 33 09 0a 20 20 20 20 20 20 20 69 63 6f 6e 62 74 |3.. iconbt| 000c95e0 79 70 65 5f 57 52 49 54 45 43 4c 49 43 4b 44 52 |ype_WRITECLICKDR| 000c95f0 41 47 09 09 31 34 09 0a 20 20 20 20 20 20 20 69 |AG..14.. i| 000c9600 63 6f 6e 62 74 79 70 65 5f 57 52 49 54 41 42 4c |conbtype_WRITABL| 000c9610 45 09 09 31 35 09 00 00 44 41 54 41 f8 03 00 00 |E..15...DATA....| 000c9620 57 69 6d 70 20 69 63 6f 6e 20 66 6c 61 67 20 62 |Wimp icon flag b| 000c9630 69 74 73 0a 54 68 65 73 65 20 6d 61 63 72 6f 73 |its.These macros| 000c9640 20 61 72 65 20 64 65 66 69 6e 65 64 20 69 6e 20 | are defined in | 000c9650 3c 44 65 73 6b 4c 69 62 3a 57 69 6d 70 2e 68 3d |<DeskLib:Wimp.h=| 000c9660 3e 57 69 6d 70 3e 2e 0a 0a 69 63 6f 6e 5f 54 45 |>Wimp>...icon_TE| 000c9670 58 54 09 30 78 30 30 30 30 30 30 30 31 09 2f 2a |XT.0x00000001./*| 000c9680 20 63 6f 6e 74 61 69 6e 73 20 74 65 78 74 09 2a | contains text.*| 000c9690 2f 0a 69 63 6f 6e 5f 53 50 52 49 54 45 09 30 78 |/.icon_SPRITE.0x| 000c96a0 30 30 30 30 30 30 30 32 09 2f 2a 20 69 73 20 61 |00000002./* is a| 000c96b0 20 73 70 72 69 74 65 09 2a 2f 0a 69 63 6f 6e 5f | sprite.*/.icon_| 000c96c0 42 4f 52 44 45 52 09 30 78 30 30 30 30 30 30 30 |BORDER.0x0000000| 000c96d0 34 09 2f 2a 20 68 61 73 20 61 20 62 6f 72 64 65 |4./* has a borde| 000c96e0 72 09 2a 2f 0a 69 63 6f 6e 5f 48 43 45 4e 54 52 |r.*/.icon_HCENTR| 000c96f0 45 09 30 78 30 30 30 30 30 30 30 38 09 2f 2a 20 |E.0x00000008./* | 000c9700 68 6f 72 69 7a 6f 6e 74 61 6c 6c 79 20 63 65 6e |horizontally cen| 000c9710 74 72 65 64 09 2a 2f 0a 69 63 6f 6e 5f 56 43 45 |tred.*/.icon_VCE| 000c9720 4e 54 52 45 09 30 78 30 30 30 30 30 30 31 30 09 |NTRE.0x00000010.| 000c9730 2f 2a 20 76 65 72 74 69 63 61 6c 6c 79 20 63 65 |/* vertically ce| 000c9740 6e 74 72 65 64 09 2a 2f 0a 69 63 6f 6e 5f 46 49 |ntred.*/.icon_FI| 000c9750 4c 4c 45 44 09 30 78 30 30 30 30 30 30 32 30 09 |LLED.0x00000020.| 000c9760 2f 2a 20 66 69 6c 6c 65 64 20 62 61 63 6b 67 72 |/* filled backgr| 000c9770 6f 75 6e 64 09 2a 2f 0a 69 63 6f 6e 5f 46 4f 4e |ound.*/.icon_FON| 000c9780 54 09 30 78 30 30 30 30 30 30 34 30 09 2f 2a 20 |T.0x00000040./* | 000c9790 61 6e 74 69 2d 61 6c 69 61 73 65 64 20 66 6f 6e |anti-aliased fon| 000c97a0 74 09 2a 2f 0a 69 63 6f 6e 5f 4e 45 45 44 53 48 |t.*/.icon_NEEDSH| 000c97b0 45 4c 50 09 30 78 30 30 30 30 30 30 38 30 09 2f |ELP.0x00000080./| 000c97c0 2a 20 72 65 64 72 61 77 20 6e 65 65 64 73 20 68 |* redraw needs h| 000c97d0 65 6c 70 09 2a 2f 0a 69 63 6f 6e 5f 49 4e 44 49 |elp.*/.icon_INDI| 000c97e0 52 45 43 54 45 44 09 30 78 30 30 30 30 30 31 30 |RECTED.0x0000010| 000c97f0 30 09 2f 2a 20 64 61 74 61 20 69 73 20 27 69 6e |0./* data is 'in| 000c9800 64 69 72 65 63 74 65 64 27 09 2a 2f 0a 69 63 6f |directed'.*/.ico| 000c9810 6e 5f 52 4a 55 53 54 49 46 59 09 30 78 30 30 30 |n_RJUSTIFY.0x000| 000c9820 30 30 32 30 30 09 2f 2a 20 72 69 67 68 74 20 6a |00200./* right j| 000c9830 75 73 74 69 66 69 65 64 09 2a 2f 0a 69 63 6f 6e |ustified.*/.icon| 000c9840 5f 41 4c 4c 4f 57 41 44 4a 55 53 54 09 30 78 30 |_ALLOWADJUST.0x0| 000c9850 30 30 30 30 34 30 30 09 2f 2a 20 6d 75 6c 74 69 |0000400./* multi| 000c9860 70 6c 65 20 73 65 6c 65 63 74 20 77 69 74 68 20 |ple select with | 000c9870 61 64 6a 75 73 74 09 2a 2f 0a 69 63 6f 6e 5f 48 |adjust.*/.icon_H| 000c9880 41 4c 56 45 53 50 52 49 54 45 09 30 78 30 30 30 |ALVESPRITE.0x000| 000c9890 30 30 38 30 30 09 2f 2a 20 70 6c 6f 74 20 73 70 |00800./* plot sp| 000c98a0 72 69 74 65 73 20 68 61 6c 66 2d 73 69 7a 65 09 |rites half-size.| 000c98b0 2a 2f 0a 69 63 6f 6e 5f 42 55 54 54 4f 4e 54 59 |*/.icon_BUTTONTY| 000c98c0 50 45 09 30 78 30 30 30 30 31 30 30 30 09 2f 2a |PE.0x00001000./*| 000c98d0 20 34 2d 62 69 74 20 66 69 65 6c 64 3a 20 62 75 | 4-bit field: bu| 000c98e0 74 74 6f 6e 20 74 79 70 65 09 2a 2f 0a 69 63 6f |tton type.*/.ico| 000c98f0 6e 5f 53 45 4c 45 43 54 45 44 09 30 78 30 30 32 |n_SELECTED.0x002| 000c9900 30 30 30 30 30 09 2f 2a 20 73 65 6c 65 63 74 65 |00000./* selecte| 000c9910 64 20 62 79 20 75 73 65 72 20 28 69 6e 76 65 72 |d by user (inver| 000c9920 74 65 64 29 09 2a 2f 0a 69 63 6f 6e 5f 53 48 41 |ted).*/.icon_SHA| 000c9930 44 45 44 09 30 78 30 30 34 30 30 30 30 30 09 2f |DED.0x00400000./| 000c9940 2a 20 63 61 6e 6e 6f 74 20 62 65 20 73 65 6c 65 |* cannot be sele| 000c9950 63 74 65 64 20 28 73 68 61 64 65 64 29 09 2a 2f |cted (shaded).*/| 000c9960 0a 69 63 6f 6e 5f 44 45 4c 45 54 45 44 09 30 78 |.icon_DELETED.0x| 000c9970 30 30 38 30 30 30 30 30 09 2f 2a 20 68 61 73 20 |00800000./* has | 000c9980 62 65 65 6e 20 64 65 6c 65 74 65 64 09 2a 2f 0a |been deleted.*/.| 000c9990 69 63 6f 6e 5f 46 4f 52 45 43 4f 4c 4f 55 52 09 |icon_FORECOLOUR.| 000c99a0 30 78 30 31 30 30 30 30 30 30 09 2f 2a 20 34 2d |0x01000000./* 4-| 000c99b0 62 69 74 20 66 69 65 6c 64 3a 20 66 6f 72 65 67 |bit field: foreg| 000c99c0 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 09 2a 2f 0a |round colour.*/.| 000c99d0 69 63 6f 6e 5f 42 41 43 4b 43 4f 4c 4f 55 52 09 |icon_BACKCOLOUR.| 000c99e0 30 78 31 30 30 30 30 30 30 30 09 2f 2a 20 34 2d |0x10000000./* 4-| 000c99f0 62 69 74 20 66 69 65 6c 64 3a 20 62 61 63 6b 67 |bit field: backg| 000c9a00 72 6f 75 6e 64 20 63 6f 6c 6f 75 72 09 2a 2f 0a |round colour.*/.| 000c9a10 44 41 54 41 f5 00 00 00 57 69 6d 70 20 69 63 6f |DATA....Wimp ico| 000c9a20 6e 20 76 61 6c 69 64 61 74 69 6f 6e 20 63 68 61 |n validation cha| 000c9a30 72 61 63 74 65 72 73 0a 54 68 65 73 65 20 6d 61 |racters.These ma| 000c9a40 63 72 6f 73 20 61 72 65 20 64 65 66 69 6e 65 64 |cros are defined| 000c9a50 20 69 6e 20 3c 44 65 73 6b 4c 69 62 3a 57 69 6d | in <DeskLib:Wim| 000c9a60 70 2e 68 3d 3e 57 69 6d 70 3e 2e 0a 0a 23 69 6e |p.h=>Wimp>...#in| 000c9a70 64 65 6e 74 20 33 0a 69 63 6f 6e 76 61 6c 69 64 |dent 3.iconvalid| 000c9a80 5f 41 4c 4c 4f 57 09 09 27 41 27 0a 69 63 6f 6e |_ALLOW..'A'.icon| 000c9a90 76 61 6c 69 64 5f 42 4f 52 44 45 52 54 59 50 45 |valid_BORDERTYPE| 000c9aa0 09 27 52 27 0a 69 63 6f 6e 76 61 6c 69 64 5f 44 |.'R'.iconvalid_D| 000c9ab0 49 53 50 4c 41 59 09 27 44 27 0a 69 63 6f 6e 76 |ISPLAY.'D'.iconv| 000c9ac0 61 6c 69 64 5f 46 4f 4e 54 43 4f 4c 4f 55 52 53 |alid_FONTCOLOURS| 000c9ad0 09 27 46 27 0a 69 63 6f 6e 76 61 6c 69 64 5f 4c |.'F'.iconvalid_L| 000c9ae0 49 4e 45 53 50 41 43 45 09 27 4c 27 0a 69 63 6f |INESPACE.'L'.ico| 000c9af0 6e 76 61 6c 69 64 5f 53 50 52 49 54 45 4e 41 4d |nvalid_SPRITENAM| 000c9b00 45 09 27 53 27 00 00 00 44 41 54 41 a4 02 00 00 |E.'S'...DATA....| 000c9b10 54 61 73 6b 20 4d 61 6e 61 67 65 6d 65 6e 74 20 |Task Management | 000c9b20 46 75 6e 63 74 69 6f 6e 73 0a 23 54 61 62 6c 65 |Functions.#Table| 000c9b30 20 31 31 20 32 34 0a 3c 77 69 6d 70 5f 69 6e 69 | 11 24.<wimp_ini| 000c9b40 74 69 61 6c 69 73 65 3d 3e 77 69 6d 70 5f 69 6e |tialise=>wimp_in| 000c9b50 69 74 69 61 6c 69 73 65 5f 3e 0a 3c 77 69 6d 70 |itialise_>.<wimp| 000c9b60 5f 74 61 73 6b 69 6e 69 74 3e 0a 3c 77 69 6d 70 |_taskinit>.<wimp| 000c9b70 5f 70 6f 6c 6c 3d 3e 77 69 6d 70 5f 70 6f 6c 6c |_poll=>wimp_poll| 000c9b80 5f 3e 0a 3c 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c |_>.<wimp_pollidl| 000c9b90 65 3d 3e 77 69 6d 70 5f 70 6f 6c 6c 69 64 6c 65 |e=>wimp_pollidle| 000c9ba0 5f 3e 0a 3c 77 69 6d 70 5f 67 65 74 5f 70 6f 69 |_>.<wimp_get_poi| 000c9bb0 6e 74 5f 69 6e 66 6f 3e 0a 3c 77 69 6d 70 5f 73 |nt_info>.<wimp_s| 000c9bc0 65 74 5f 70 6f 69 6e 74 5f 73 68 61 70 65 3e 0a |et_point_shape>.| 000c9bd0 3c 77 69 6d 70 5f 63 6c 6f 73 65 64 6f 77 6e 3d |<wimp_closedown=| 000c9be0 3e 77 69 6d 70 5f 63 6c 6f 73 65 64 6f 77 6e 5f |>wimp_closedown_| 000c9bf0 3e 0a 3c 77 69 6d 70 5f 74 61 73 6b 63 6c 6f 73 |>.<wimp_taskclos| 000c9c00 65 3e 0a 3c 77 69 6d 70 5f 73 74 61 72 74 74 61 |e>.<wimp_startta| 000c9c10 73 6b 3d 3e 77 69 6d 70 5f 73 74 61 72 74 74 61 |sk=>wimp_startta| 000c9c20 73 6b 5f 3e 0a 3c 77 69 6d 70 5f 73 65 74 6d 6f |sk_>.<wimp_setmo| 000c9c30 64 65 3d 3e 77 69 6d 70 5f 73 65 74 6d 6f 64 65 |de=>wimp_setmode| 000c9c40 5f 3e 0a 3c 77 69 6d 70 5f 73 70 72 69 74 65 6f |_>.<wimp_spriteo| 000c9c50 70 3d 3e 77 69 6d 70 5f 73 70 72 69 74 65 6f 70 |p=>wimp_spriteop| 000c9c60 5f 3e 0a 3c 77 69 6d 70 5f 73 70 72 69 74 65 6f |_>.<wimp_spriteo| 000c9c70 70 5f 66 75 6c 6c 3e 0a 3c 77 69 6d 70 5f 62 61 |p_full>.<wimp_ba| 000c9c80 73 65 6f 66 73 70 72 69 74 65 73 3d 3e 77 69 6d |seofsprites=>wim| 000c9c90 70 5f 62 61 73 65 6f 66 73 70 72 69 74 65 73 5f |p_baseofsprites_| 000c9ca0 3e 0a 3c 77 69 6d 70 5f 72 65 70 6f 72 74 65 72 |>.<wimp_reporter| 000c9cb0 72 6f 72 3d 3e 77 69 6d 70 5f 72 65 70 6f 72 74 |ror=>wimp_report| 000c9cc0 65 72 72 6f 72 5f 3e 0a 3c 77 69 6d 70 5f 73 65 |error_>.<wimp_se| 000c9cd0 6e 64 6d 65 73 73 61 67 65 3d 3e 77 69 6d 70 5f |ndmessage=>wimp_| 000c9ce0 73 65 6e 64 6d 65 73 73 61 67 65 5f 3e 0a 3c 77 |sendmessage_>.<w| 000c9cf0 69 6d 70 5f 73 65 6e 64 77 6d 65 73 73 61 67 65 |imp_sendwmessage| 000c9d00 3e 0a 3c 77 69 6d 70 5f 73 6c 6f 74 73 69 7a 65 |>.<wimp_slotsize| 000c9d10 3e 0a 3c 77 69 6d 70 5f 74 72 61 6e 73 66 65 72 |>.<wimp_transfer| 000c9d20 62 6c 6f 63 6b 3d 3e 77 69 6d 70 5f 74 72 61 6e |block=>wimp_tran| 000c9d30 73 66 65 72 62 6c 6f 63 6b 5f 3e 0a 3c 77 69 6d |sferblock_>.<wim| 000c9d40 70 5f 63 6f 6d 6d 61 6e 64 77 69 6e 64 6f 77 3d |p_commandwindow=| 000c9d50 3e 77 69 6d 70 5f 63 6f 6d 6d 61 6e 64 77 69 6e |>wimp_commandwin| 000c9d60 64 6f 77 5f 3e 0a 3c 77 69 6d 70 5f 73 61 76 65 |dow_>.<wimp_save| 000c9d70 5f 66 70 5f 73 74 61 74 65 5f 6f 6e 5f 70 6f 6c |_fp_state_on_pol| 000c9d80 6c 3e 0a 3c 77 69 6d 70 5f 63 6f 72 72 75 70 74 |l>.<wimp_corrupt| 000c9d90 5f 66 70 5f 73 74 61 74 65 5f 6f 6e 5f 70 6f 6c |_fp_state_on_pol| 000c9da0 6c 3e 0a 23 45 6e 64 54 61 62 6c 65 44 41 54 41 |l>.#EndTableDATA| 000c9db0 84 00 00 00 57 69 6d 70 20 6d 65 6e 75 73 0a 54 |....Wimp menus.T| 000c9dc0 79 70 65 73 3a 0a 0a 23 74 61 62 6c 65 20 63 6f |ypes:..#table co| 000c9dd0 6c 75 6d 6e 73 20 32 0a 3c 6d 65 6e 75 5f 70 74 |lumns 2.<menu_pt| 000c9de0 72 3e 0a 3c 6d 65 6e 75 5f 66 6c 61 67 73 3e 0a |r>.<menu_flags>.| 000c9df0 3c 6d 65 6e 75 5f 73 75 62 6d 65 6e 75 3d 3e 6d |<menu_submenu=>m| 000c9e00 65 6e 75 5f 73 75 62 6d 65 6e 75 5f 3e 0a 3c 6d |enu_submenu_>.<m| 000c9e10 65 6e 75 5f 69 74 65 6d 3e 0a 3c 6d 65 6e 75 5f |enu_item>.<menu_| 000c9e20 62 6c 6f 63 6b 3e 0a 23 65 6e 64 74 61 62 6c 65 |block>.#endtable| 000c9e30 44 41 54 41 41 01 00 00 57 69 6d 70 20 6d 65 73 |DATAA...Wimp mes| 000c9e40 73 61 67 65 20 64 61 74 61 0a 54 79 70 65 73 3a |sage data.Types:| 000c9e50 0a 0a 23 54 61 62 6c 65 20 37 20 32 31 0a 3c 6d |..#Table 7 21.<m| 000c9e60 65 73 73 61 67 65 5f 61 63 74 69 6f 6e 3e 0a 3c |essage_action>.<| 000c9e70 6d 65 73 73 61 67 65 5f 62 6c 6f 63 6b 3e 0a 3c |message_block>.<| 000c9e80 6d 65 73 73 61 67 65 5f 64 65 73 74 69 6e 65 65 |message_destinee| 000c9e90 3e 0a 3c 6d 65 73 73 61 67 65 5f 68 65 61 64 65 |>.<message_heade| 000c9ea0 72 3e 0a 3c 6d 65 73 73 61 67 65 5f 64 61 74 61 |r>.<message_data| 000c9eb0 73 61 76 65 3e 0a 3c 6d 65 73 73 61 67 65 5f 64 |save>.<message_d| 000c9ec0 61 74 61 73 61 76 65 61 63 6b 3e 0a 3c 6d 65 73 |atasaveack>.<mes| 000c9ed0 73 61 67 65 5f 64 61 74 61 6c 6f 61 64 3e 0a 3c |sage_dataload>.<| 000c9ee0 6d 65 73 73 61 67 65 5f 64 61 74 61 6f 70 65 6e |message_dataopen| 000c9ef0 3e 0a 3c 6d 65 73 73 61 67 65 5f 72 61 6d 66 65 |>.<message_ramfe| 000c9f00 74 63 68 3e 0a 3c 6d 65 73 73 61 67 65 5f 72 61 |tch>.<message_ra| 000c9f10 6d 74 72 61 6e 73 6d 69 74 3e 0a 3c 6d 65 73 73 |mtransmit>.<mess| 000c9f20 61 67 65 5f 68 65 6c 70 72 65 71 75 65 73 74 3e |age_helprequest>| 000c9f30 0a 3c 6d 65 73 73 61 67 65 5f 68 65 6c 70 72 65 |.<message_helpre| 000c9f40 70 6c 79 3e 0a 3c 6d 65 73 73 61 67 65 5f 70 72 |ply>.<message_pr| 000c9f50 69 6e 74 3e 0a 3c 6d 65 73 73 61 67 65 5f 6d 65 |int>.<message_me| 000c9f60 6e 75 77 61 72 6e 3e 0a 23 45 6e 64 54 61 62 6c |nuwarn>.#EndTabl| 000c9f70 65 00 00 00 44 41 54 41 e3 00 00 00 4d 69 73 63 |e...DATA....Misc| 000c9f80 65 6c 6c 61 6e 65 6f 75 73 0a 54 79 70 65 73 3a |ellaneous.Types:| 000c9f90 0a 0a 23 54 61 62 6c 65 20 35 20 31 36 0a 3c 77 |..#Table 5 16.<w| 000c9fa0 69 6d 70 5f 70 6f 69 6e 74 3e 0a 3c 77 69 6d 70 |imp_point>.<wimp| 000c9fb0 5f 63 6f 6f 72 64 3e 0a 3c 77 69 6d 70 5f 72 65 |_coord>.<wimp_re| 000c9fc0 63 74 3e 0a 3c 77 69 6d 70 5f 62 6f 78 3e 0a 3c |ct>.<wimp_box>.<| 000c9fd0 77 69 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 0a 3c |window_handle>.<| 000c9fe0 69 63 6f 6e 5f 68 61 6e 64 6c 65 3e 0a 3c 74 61 |icon_handle>.<ta| 000c9ff0 73 6b 5f 68 61 6e 64 6c 65 3e 0a 3c 66 6f 6e 74 |sk_handle>.<font| 000ca000 5f 61 72 72 61 79 3e 0a 3c 74 65 6d 70 6c 61 74 |_array>.<templat| 000ca010 65 5f 62 6c 6f 63 6b 3e 0a 3c 73 63 61 6c 65 5f |e_block>.<scale_| 000ca020 62 6c 6f 63 6b 3e 0a 23 45 6e 64 54 61 62 6c 65 |block>.#EndTable| 000ca030 0a 0a 4d 61 63 72 6f 73 3a 0a 0a 7b 61 6c 69 67 |..Macros:..{alig| 000ca040 6e 20 63 65 6e 74 72 65 7d 3c 77 69 6d 70 5f 4d |n centre}<wimp_M| 000ca050 41 58 4e 41 4d 45 3e 00 44 41 54 41 8b 00 00 00 |AXNAME>.DATA....| 000ca060 4d 6f 75 73 65 2f 70 6f 69 6e 74 65 72 20 69 6e |Mouse/pointer in| 000ca070 66 6f 0a 54 79 70 65 73 3a 0a 0a 23 74 61 62 6c |fo.Types:..#tabl| 000ca080 65 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 62 75 74 |e columns 2.<but| 000ca090 74 6f 6e 5f 73 74 61 74 65 3e 0a 3c 6d 6f 75 73 |ton_state>.<mous| 000ca0a0 65 5f 62 6c 6f 63 6b 3e 0a 3c 70 6f 69 6e 74 65 |e_block>.<pointe| 000ca0b0 72 5f 73 68 61 70 65 62 6c 6f 63 6b 3e 0a 23 65 |r_shapeblock>.#e| 000ca0c0 6e 64 74 61 62 6c 65 0a 0a 3c 4d 61 63 72 6f 73 |ndtable..<Macros| 000ca0d0 3d 3e 77 5f 6d 6f 75 73 65 69 6e 66 5f 6d 61 63 |=>w_mouseinf_mac| 000ca0e0 3e 0a 0a 00 44 41 54 41 9a 01 00 00 57 69 6e 64 |>...DATA....Wind| 000ca0f0 6f 77 20 48 61 6e 64 6c 69 6e 67 20 46 75 6e 63 |ow Handling Func| 000ca100 74 69 6f 6e 73 0a 23 54 61 62 6c 65 20 38 20 32 |tions.#Table 8 2| 000ca110 32 0a 3c 77 69 6d 70 5f 63 72 65 61 74 65 5f 77 |2.<wimp_create_w| 000ca120 69 6e 64 3e 0a 3c 77 69 6d 70 5f 64 65 6c 65 74 |ind>.<wimp_delet| 000ca130 65 5f 77 69 6e 64 3e 0a 3c 77 69 6d 70 5f 6f 70 |e_wind>.<wimp_op| 000ca140 65 6e 5f 77 69 6e 64 3e 0a 3c 77 69 6d 70 5f 63 |en_wind>.<wimp_c| 000ca150 6c 6f 73 65 5f 77 69 6e 64 3e 0a 3c 77 69 6d 70 |lose_wind>.<wimp| 000ca160 5f 72 65 64 72 61 77 5f 77 69 6e 64 3e 0a 3c 77 |_redraw_wind>.<w| 000ca170 69 6d 70 5f 75 70 64 61 74 65 5f 77 69 6e 64 3e |imp_update_wind>| 000ca180 0a 3c 77 69 6d 70 5f 67 65 74 5f 72 65 63 74 61 |.<wimp_get_recta| 000ca190 6e 67 6c 65 3e 0a 3c 77 69 6d 70 5f 67 65 74 5f |ngle>.<wimp_get_| 000ca1a0 77 69 6e 64 5f 73 74 61 74 65 3e 0a 3c 77 69 6d |wind_state>.<wim| 000ca1b0 70 5f 67 65 74 5f 77 69 6e 64 5f 69 6e 66 6f 3e |p_get_wind_info>| 000ca1c0 0a 3c 77 69 6d 70 5f 66 6f 72 63 65 5f 72 65 64 |.<wimp_force_red| 000ca1d0 72 61 77 3e 0a 3c 77 69 6d 70 5f 63 72 65 61 74 |raw>.<wimp_creat| 000ca1e0 65 5f 6d 65 6e 75 3e 0a 3c 77 69 6d 70 5f 64 65 |e_menu>.<wimp_de| 000ca1f0 63 6f 64 65 5f 6d 65 6e 75 3e 0a 3c 77 69 6d 70 |code_menu>.<wimp| 000ca200 5f 73 65 74 5f 65 78 74 65 6e 74 3e 0a 3c 77 69 |_set_extent>.<wi| 000ca210 6d 70 5f 67 65 74 77 69 6e 64 6f 77 6f 75 74 6c |mp_getwindowoutl| 000ca220 69 6e 65 3d 3e 77 69 6d 70 5f 67 65 74 77 69 6e |ine=>wimp_getwin| 000ca230 64 6f 77 6f 75 74 6c 69 6e 65 5f 3e 0a 3c 77 69 |dowoutline_>.<wi| 000ca240 6d 70 5f 62 6c 6f 63 6b 63 6f 70 79 3d 3e 77 69 |mp_blockcopy=>wi| 000ca250 6d 70 5f 62 6c 6f 63 6b 63 6f 70 79 5f 3e 0a 3c |mp_blockcopy_>.<| 000ca260 77 69 6d 70 5f 63 72 65 61 74 65 5f 73 75 62 6d |wimp_create_subm| 000ca270 65 6e 75 3e 0a 23 45 6e 64 54 61 62 6c 65 00 00 |enu>.#EndTable..| 000ca280 44 41 54 41 59 00 00 00 54 65 6d 70 6c 61 74 65 |DATAY...Template| 000ca290 20 48 61 6e 64 6c 69 6e 67 0a 3c 77 69 6d 70 5f | Handling.<wimp_| 000ca2a0 6f 70 65 6e 5f 74 65 6d 70 6c 61 74 65 3e 0a 3c |open_template>.<| 000ca2b0 77 69 6d 70 5f 63 6c 6f 73 65 5f 74 65 6d 70 6c |wimp_close_templ| 000ca2c0 61 74 65 3e 0a 3c 77 69 6d 70 5f 6c 6f 61 64 5f |ate>.<wimp_load_| 000ca2d0 74 65 6d 70 6c 61 74 65 3e 00 00 00 44 41 54 41 |template>...DATA| 000ca2e0 3c 00 00 00 57 69 6d 70 20 65 72 72 6f 72 73 0a |<...Wimp errors.| 000ca2f0 4a 75 73 74 20 6f 6e 65 20 74 79 70 65 20 69 73 |Just one type is| 000ca300 20 64 65 66 69 6e 65 64 3a 20 3c 65 72 72 6f 72 | defined: <error| 000ca310 5f 66 6c 61 67 73 3e 2e 44 41 54 41 cd 00 00 00 |_flags>.DATA....| 000ca320 57 69 6e 64 6f 77 20 64 61 74 61 0a 54 79 70 65 |Window data.Type| 000ca330 73 3a 0a 0a 23 54 61 62 6c 65 20 35 20 32 33 0a |s:..#Table 5 23.| 000ca340 3c 77 69 6e 64 6f 77 5f 66 6c 61 67 73 3e 0a 3c |<window_flags>.<| 000ca350 77 69 6e 64 6f 77 5f 6d 69 6e 73 69 7a 65 3e 0a |window_minsize>.| 000ca360 3c 77 69 6e 64 6f 77 5f 63 6f 6c 6f 75 72 69 6e |<window_colourin| 000ca370 64 69 63 65 73 3e 0a 3c 77 69 6e 64 6f 77 5f 62 |dices>.<window_b| 000ca380 6c 6f 63 6b 3e 0a 3c 77 69 6e 64 6f 77 5f 6f 70 |lock>.<window_op| 000ca390 65 6e 62 6c 6f 63 6b 3e 0a 3c 77 69 6e 64 6f 77 |enblock>.<window| 000ca3a0 5f 73 74 61 74 65 3e 0a 3c 77 69 6e 64 6f 77 5f |_state>.<window_| 000ca3b0 69 6e 66 6f 3e 0a 3c 77 69 6e 64 6f 77 5f 72 65 |info>.<window_re| 000ca3c0 64 72 61 77 62 6c 6f 63 6b 3e 0a 3c 77 69 6e 64 |drawblock>.<wind| 000ca3d0 6f 77 5f 6f 75 74 6c 69 6e 65 3e 0a 23 45 6e 64 |ow_outline>.#End| 000ca3e0 54 61 62 6c 65 00 00 00 44 41 54 41 db 00 00 00 |Table...DATA....| 000ca3f0 4d 6f 75 73 65 2f 50 6f 69 6e 74 65 72 20 6d 61 |Mouse/Pointer ma| 000ca400 63 72 6f 73 0a 62 75 74 74 6f 6e 5f 41 44 4a 55 |cros.button_ADJU| 000ca410 53 54 09 30 78 30 30 30 30 30 30 30 31 0a 62 75 |ST.0x00000001.bu| 000ca420 74 74 6f 6e 5f 4d 45 4e 55 09 30 78 30 30 30 30 |tton_MENU.0x0000| 000ca430 30 30 30 32 0a 62 75 74 74 6f 6e 5f 53 45 4c 45 |0002.button_SELE| 000ca440 43 54 09 30 78 30 30 30 30 30 30 30 34 0a 62 75 |CT.0x00000004.bu| 000ca450 74 74 6f 6e 5f 44 52 41 47 41 44 4a 55 53 54 09 |tton_DRAGADJUST.| 000ca460 30 78 30 30 30 30 30 30 31 30 0a 62 75 74 74 6f |0x00000010.butto| 000ca470 6e 5f 44 52 41 47 53 45 4c 45 43 54 09 30 78 30 |n_DRAGSELECT.0x0| 000ca480 30 30 30 30 30 34 30 0a 62 75 74 74 6f 6e 5f 43 |0000040.button_C| 000ca490 4c 49 43 4b 41 44 4a 55 53 54 09 30 78 30 30 30 |LICKADJUST.0x000| 000ca4a0 30 30 31 30 30 0a 62 75 74 74 6f 6e 5f 43 4c 49 |00100.button_CLI| 000ca4b0 43 4b 53 45 4c 45 43 54 09 30 78 30 30 30 30 30 |CKSELECT.0x00000| 000ca4c0 34 30 30 00 44 49 52 24 9c 00 00 00 9c 00 00 00 |400.DIR$........| 000ca4d0 60 a5 0c 00 46 ff ff ff 56 b4 ec 24 7e 01 00 00 |`...F...V..$~...| 000ca4e0 13 00 00 00 00 00 00 00 78 66 65 72 72 65 63 76 |........xferrecv| 000ca4f0 00 00 00 00 e0 a6 0c 00 46 fd ff ff c6 08 85 2f |........F....../| 000ca500 98 01 00 00 13 01 00 00 00 00 00 00 78 66 65 72 |............xfer| 000ca510 72 65 63 76 5f 00 00 00 a4 b5 0c 00 46 ff ff ff |recv_.......F...| 000ca520 82 d8 ec 24 ce 02 00 00 13 00 00 00 00 00 00 00 |...$............| 000ca530 78 66 65 72 73 65 6e 64 00 00 00 00 74 b8 0c 00 |xfersend....t...| 000ca540 46 fd ff ff c9 09 85 2f 24 02 00 00 13 01 00 00 |F....../$.......| 000ca550 00 00 00 00 58 66 65 72 53 65 6e 64 5f 00 00 00 |....XferSend_...| 000ca560 44 41 54 41 7e 01 00 00 78 66 65 72 72 65 63 76 |DATA~...xferrecv| 000ca570 2e 68 0a 54 68 65 20 5c 3c 78 66 65 72 72 65 63 |.h.The \<xferrec| 000ca580 76 2e 68 3e 20 68 65 61 64 65 72 20 64 65 63 6c |v.h> header decl| 000ca590 61 72 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 |ares functions f| 000ca5a0 6f 72 20 67 65 6e 65 72 61 6c 20 70 75 72 70 6f |or general purpo| 000ca5b0 73 65 20 69 6d 70 6f 72 74 20 6f 66 20 64 61 74 |se import of dat| 000ca5c0 61 20 62 79 20 61 6e 20 69 63 6f 6e 20 64 72 61 |a by an icon dra| 000ca5d0 67 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a 0a 0a |g...Functions:..| 000ca5e0 23 69 6e 64 65 6e 74 20 32 0a 23 54 61 62 6c 65 |#indent 2.#Table| 000ca5f0 20 63 6f 6c 75 6d 6e 73 20 32 0a 3c 78 66 65 72 | columns 2.<xfer| 000ca600 72 65 63 76 5f 63 68 65 63 6b 69 6e 73 65 72 74 |recv_checkinsert| 000ca610 3e 0a 3c 78 66 65 72 72 65 63 76 5f 69 6e 73 65 |>.<xferrecv_inse| 000ca620 72 74 66 69 6c 65 6f 6b 3e 0a 3c 78 66 65 72 72 |rtfileok>.<xferr| 000ca630 65 63 76 5f 63 68 65 63 6b 70 72 69 6e 74 3e 0a |ecv_checkprint>.| 000ca640 3c 78 66 65 72 72 65 63 76 5f 70 72 69 6e 74 66 |<xferrecv_printf| 000ca650 69 6c 65 6f 6b 3e 0a 3c 78 66 65 72 72 65 63 76 |ileok>.<xferrecv| 000ca660 5f 63 68 65 63 6b 69 6d 70 6f 72 74 3e 0a 3c 78 |_checkimport>.<x| 000ca670 66 65 72 72 65 63 76 5f 64 6f 69 6d 70 6f 72 74 |ferrecv_doimport| 000ca680 3e 0a 3c 78 66 65 72 72 65 63 76 5f 66 69 6c 65 |>.<xferrecv_file| 000ca690 5f 69 73 5f 73 61 66 65 3e 0a 23 45 6e 64 54 61 |_is_safe>.#EndTa| 000ca6a0 62 6c 65 0a 23 69 6e 64 65 6e 74 0a 0a 54 79 70 |ble.#indent..Typ| 000ca6b0 65 73 3a 0a 7b 61 6c 69 67 6e 20 63 65 6e 74 72 |es:.{align centr| 000ca6c0 65 7d 0a 3c 78 66 65 72 72 65 63 76 5f 62 75 66 |e}.<xferrecv_buf| 000ca6d0 66 65 72 5f 70 72 6f 63 65 73 73 6f 72 3e 00 00 |fer_processor>..| 000ca6e0 44 49 52 24 98 01 00 00 98 01 00 00 78 a8 0c 00 |DIR$........x...| 000ca6f0 46 ff ff ff 3c c2 ec 24 b6 01 00 00 13 00 00 00 |F...<..$........| 000ca700 00 00 00 00 62 75 66 66 65 72 5f 70 72 6f 63 65 |....buffer_proce| 000ca710 73 73 6f 72 00 00 00 00 30 aa 0c 00 46 ff ff ff |ssor....0...F...| 000ca720 4a 8e ec 24 56 01 00 00 13 00 00 00 00 00 00 00 |J..$V...........| 000ca730 63 68 65 63 6b 69 6d 70 6f 72 74 00 88 ab 0c 00 |checkimport.....| 000ca740 46 ff ff ff 0f 57 ec 24 85 01 00 00 13 00 00 00 |F....W.$........| 000ca750 00 00 00 00 63 68 65 63 6b 69 6e 73 65 72 74 00 |....checkinsert.| 000ca760 10 ad 0c 00 46 ff ff ff 59 7d ec 24 41 01 00 00 |....F...Y}.$A...| 000ca770 13 00 00 00 00 00 00 00 63 68 65 63 6b 70 72 69 |........checkpri| 000ca780 6e 74 00 00 54 ae 0c 00 46 ff ff ff 36 9f ec 24 |nt..T...F...6..$| 000ca790 a7 01 00 00 13 00 00 00 00 00 00 00 64 6f 69 6d |............doim| 000ca7a0 70 6f 72 74 00 00 00 00 fc af 0c 00 46 ff ff ff |port........F...| 000ca7b0 07 bd 58 26 bd 00 00 00 13 00 00 00 00 00 00 00 |..X&............| 000ca7c0 45 70 69 6c 6f 67 00 00 bc b0 0c 00 46 ff ff ff |Epilog......F...| 000ca7d0 fe a7 ec 24 0a 01 00 00 13 00 00 00 00 00 00 00 |...$............| 000ca7e0 66 69 6c 65 5f 69 73 5f 73 61 66 65 00 00 00 00 |file_is_safe....| 000ca7f0 c8 b1 0c 00 46 ff ff ff 3b 6b ec 24 eb 00 00 00 |....F...;k.$....| 000ca800 13 00 00 00 00 00 00 00 69 6e 73 65 72 74 66 69 |........insertfi| 000ca810 6c 65 6f 6b 00 00 00 00 b4 b2 0c 00 46 ff ff ff |leok........F...| 000ca820 b9 83 ec 24 f4 00 00 00 13 00 00 00 00 00 00 00 |...$............| 000ca830 70 72 69 6e 74 66 69 6c 65 6f 6b 00 a8 b3 0c 00 |printfileok.....| 000ca840 46 ff ff ff 51 b9 58 26 31 01 00 00 13 00 00 00 |F...Q.X&1.......| 000ca850 00 00 00 00 50 72 6f 6c 6f 67 00 00 dc b4 0c 00 |....Prolog......| 000ca860 46 fd ff ff a3 b4 58 26 c6 00 00 00 13 00 00 00 |F.....X&........| 000ca870 00 00 00 00 54 4c 00 00 44 41 54 41 b6 01 00 00 |....TL..DATA....| 000ca880 78 66 65 72 72 65 63 76 5f 62 75 66 66 65 72 5f |xferrecv_buffer_| 000ca890 70 72 6f 63 65 73 73 6f 72 0a 54 68 69 73 20 74 |processor.This t| 000ca8a0 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000ca8b0 6e 20 3c 78 66 65 72 72 65 63 76 2e 68 3d 3e 78 |n <xferrecv.h=>x| 000ca8c0 66 65 72 72 65 63 76 3e 2e 20 49 74 20 69 73 20 |ferrecv>. It is | 000ca8d0 61 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 |a function used | 000ca8e0 74 6f 20 65 6d 70 74 79 20 61 20 62 75 66 66 65 |to empty a buffe| 000ca8f0 72 20 64 75 72 69 6e 67 20 64 61 74 61 20 74 72 |r during data tr| 000ca900 61 6e 73 66 65 72 2e 20 54 68 65 20 66 75 6e 63 |ansfer. The func| 000ca910 74 69 6f 6e 20 68 61 73 20 74 68 65 20 66 6f 72 |tion has the for| 000ca920 6d 3a 0a 7b 77 72 61 70 20 6f 66 66 7d 0a 7b 66 |m:.{wrap off}.{f| 000ca930 43 6f 64 65 3b 61 6c 69 67 6e 20 63 65 6e 74 72 |Code;align centr| 000ca940 65 7d 3c 42 4f 4f 4c 3e 20 6d 79 66 75 6e 63 20 |e}<BOOL> myfunc | 000ca950 28 63 68 61 72 20 2a 2a 62 75 66 66 65 72 2c 20 |(char **buffer, | 000ca960 69 6e 74 20 2a 73 69 7a 65 29 3b 7b 66 3b 61 6c |int *size);{f;al| 000ca970 69 67 6e 3b 77 72 61 70 7d 0a 0a 49 74 20 73 68 |ign;wrap}..It sh| 000ca980 6f 75 6c 64 20 65 6d 70 74 79 20 74 68 65 20 62 |ould empty the b| 000ca990 75 66 66 65 72 3b 20 6f 72 20 69 74 20 73 68 6f |uffer; or it sho| 000ca9a0 75 6c 64 20 65 78 74 65 6e 64 20 69 74 20 61 6e |uld extend it an| 000ca9b0 64 20 72 65 74 75 72 6e 20 6e 65 77 20 76 61 6c |d return new val| 000ca9c0 75 65 73 20 66 6f 72 20 69 74 73 20 70 6f 69 6e |ues for its poin| 000ca9d0 74 65 72 20 61 6e 64 20 73 69 7a 65 2e 20 54 68 |ter and size. Th| 000ca9e0 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c |e function shoul| 000ca9f0 64 20 72 65 74 75 72 6e 20 3c 46 41 4c 53 45 3e |d return <FALSE>| 000caa00 20 69 66 20 69 74 20 69 73 20 75 6e 61 62 6c 65 | if it is unable| 000caa10 20 74 6f 20 64 6f 20 65 69 74 68 65 72 20 6f 66 | to do either of| 000caa20 20 74 68 65 73 65 20 74 68 69 6e 67 73 2e 00 00 | these things...| 000caa30 44 41 54 41 56 01 00 00 78 66 65 72 72 65 63 76 |DATAV...xferrecv| 000caa40 5f 63 68 65 63 6b 69 6d 70 6f 72 74 0a 53 79 6e |_checkimport.Syn| 000caa50 74 61 78 3a 09 69 6e 74 20 78 66 65 72 72 65 63 |tax:.int xferrec| 000caa60 76 5f 63 68 65 63 6b 69 6d 70 6f 72 74 20 28 69 |v_checkimport (i| 000caa70 6e 74 20 2a 73 69 7a 65 29 3b 0a 48 65 61 64 65 |nt *size);.Heade| 000caa80 72 3a 09 3c 78 66 65 72 72 65 63 76 2e 68 3d 3e |r:.<xferrecv.h=>| 000caa90 78 66 65 72 72 65 63 76 3e 0a 0a 52 65 74 75 72 |xferrecv>..Retur| 000caaa0 6e 73 3a 09 54 68 65 20 66 69 6c 65 20 74 79 70 |ns:.The file typ| 000caab0 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |e...This functio| 000caac0 6e 20 63 68 65 63 6b 73 20 74 6f 20 73 65 65 20 |n checks to see | 000caad0 69 66 20 74 68 65 20 6c 61 73 74 20 57 69 6d 70 |if the last Wimp| 000caae0 20 65 76 65 6e 74 20 77 61 73 20 61 20 3c 44 61 | event was a <Da| 000caaf0 74 61 53 61 76 65 3d 3e 53 57 49 3a 77 69 6d 70 |taSave=>SWI:wimp| 000cab00 5f 75 6d 31 3e 20 6d 65 73 73 61 67 65 20 6f 6e |_um1> message on| 000cab10 74 6f 20 79 6f 75 72 20 61 70 70 6c 69 63 61 74 |to your applicat| 000cab20 69 6f 6e 2e 20 49 66 20 73 6f 20 69 74 20 72 65 |ion. If so it re| 000cab30 74 75 72 6e 73 20 74 68 65 20 66 69 6c 65 74 79 |turns the filety| 000cab40 70 65 20 61 6e 64 20 73 74 6f 72 65 73 20 74 68 |pe and stores th| 000cab50 65 20 65 73 74 69 6d 61 74 65 64 20 73 69 7a 65 |e estimated size| 000cab60 20 69 6e 20 7b 2f 7d 2a 73 69 7a 65 7b 2f 7d 2e | in {/}*size{/}.| 000cab70 20 49 66 20 6e 6f 74 20 69 74 20 72 65 74 75 72 | If not it retur| 000cab80 6e 73 20 2d 31 2e 00 00 44 41 54 41 85 01 00 00 |ns -1...DATA....| 000cab90 78 66 65 72 72 65 63 76 5f 63 68 65 63 6b 69 6e |xferrecv_checkin| 000caba0 73 65 72 74 0a 53 79 6e 74 61 78 3a 09 69 6e 74 |sert.Syntax:.int| 000cabb0 20 78 66 65 72 72 65 63 76 5f 63 68 65 63 6b 69 | xferrecv_checki| 000cabc0 6e 73 65 72 74 20 28 63 68 61 72 20 2a 2a 6e 61 |nsert (char **na| 000cabd0 6d 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 78 66 |me);.Header:.<xf| 000cabe0 65 72 72 65 63 76 2e 68 3d 3e 78 66 65 72 72 65 |errecv.h=>xferre| 000cabf0 63 76 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 46 69 |cv>..Returns:.Fi| 000cac00 6c 65 20 74 79 70 65 2c 20 6f 72 20 2d 31 2e 0a |le type, or -1..| 000cac10 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 |.This function c| 000cac20 68 65 63 6b 73 20 74 6f 20 73 65 65 20 69 66 20 |hecks to see if | 000cac30 74 68 65 20 6c 61 73 74 20 57 69 6d 70 20 65 76 |the last Wimp ev| 000cac40 65 6e 74 20 77 61 73 20 61 20 72 65 71 75 65 73 |ent was a reques| 000cac50 74 20 74 6f 20 69 6d 70 6f 72 74 20 61 20 66 69 |t to import a fi| 000cac60 6c 65 20 28 69 65 20 61 20 3c 44 61 74 61 4f 70 |le (ie a <DataOp| 000cac70 65 6e 3d 3e 53 57 49 3a 77 69 6d 70 5f 75 6d 35 |en=>SWI:wimp_um5| 000cac80 3e 20 6f 72 20 3c 44 61 74 61 4c 6f 61 64 3d 3e |> or <DataLoad=>| 000cac90 53 57 49 3a 77 69 6d 70 5f 75 6d 33 3e 20 6d 65 |SWI:wimp_um3> me| 000caca0 73 73 61 67 65 29 2e 20 49 66 20 73 6f 20 69 74 |ssage). If so it| 000cacb0 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 69 6c | returns the fil| 000cacc0 65 74 79 70 65 20 61 6e 64 20 73 74 6f 72 65 73 |etype and stores| 000cacd0 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 70 | the file name p| 000cace0 6f 69 6e 74 65 72 20 69 6e 20 7b 2f 7d 2a 6e 61 |ointer in {/}*na| 000cacf0 6d 65 7b 2f 7d 2e 20 49 66 20 6e 6f 74 2c 20 69 |me{/}. If not, i| 000cad00 74 20 72 65 74 75 72 6e 73 20 2d 31 2e 00 00 00 |t returns -1....| 000cad10 44 41 54 41 41 01 00 00 78 66 65 72 72 65 63 76 |DATAA...xferrecv| 000cad20 5f 63 68 65 63 6b 70 72 69 6e 74 0a 53 79 6e 74 |_checkprint.Synt| 000cad30 61 78 3a 09 69 6e 74 20 78 66 65 72 72 65 63 76 |ax:.int xferrecv| 000cad40 5f 63 68 65 63 6b 70 72 69 6e 74 20 28 63 68 61 |_checkprint (cha| 000cad50 72 20 2a 2a 6e 61 6d 65 29 3b 0a 48 65 61 64 65 |r **name);.Heade| 000cad60 72 3a 09 3c 78 66 65 72 72 65 63 76 2e 68 3d 3e |r:.<xferrecv.h=>| 000cad70 78 66 65 72 72 65 63 76 3e 0a 0a 52 65 74 75 72 |xferrecv>..Retur| 000cad80 6e 73 3a 09 46 69 6c 65 20 74 79 70 65 2e 0a 0a |ns:.File type...| 000cad90 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 |This function se| 000cada0 74 73 20 75 70 20 61 6e 20 61 63 6b 6e 6f 77 6c |ts up an acknowl| 000cadb0 65 64 67 65 20 74 6f 20 61 20 50 72 69 6e 74 54 |edge to a PrintT| 000cadc0 79 70 65 4f 64 64 20 6d 65 73 73 61 67 65 20 61 |ypeOdd message a| 000cadd0 6e 64 20 67 65 74 73 20 74 68 65 20 66 69 6c 65 |nd gets the file| 000cade0 20 6e 61 6d 65 20 61 6e 64 20 66 69 6c 65 20 74 | name and file t| 000cadf0 79 70 65 2e 20 59 6f 75 20 63 61 6e 20 74 68 65 |ype. You can the| 000cae00 6e 20 65 69 74 68 65 72 20 70 72 69 6e 74 20 74 |n either print t| 000cae10 68 65 20 66 69 6c 65 20 64 69 72 65 63 74 6c 79 |he file directly| 000cae20 20 74 6f 20 22 70 72 69 6e 74 65 72 3a 22 20 6f | to "printer:" o| 000cae30 72 20 6f 75 74 70 75 74 20 69 74 20 74 6f 20 22 |r output it to "| 000cae40 5c 3c 50 72 69 6e 74 65 72 24 54 65 6d 70 3e 22 |\<Printer$Temp>"| 000cae50 2e 00 00 00 44 41 54 41 a7 01 00 00 78 66 65 72 |....DATA....xfer| 000cae60 72 65 63 76 5f 64 6f 69 6d 70 6f 72 74 0a 53 79 |recv_doimport.Sy| 000cae70 6e 74 61 78 3a 09 69 6e 74 20 78 66 65 72 72 65 |ntax:.int xferre| 000cae80 63 76 5f 64 6f 69 6d 70 6f 72 74 20 28 63 68 61 |cv_doimport (cha| 000cae90 72 20 2a 62 75 66 2c 20 69 6e 74 20 73 69 7a 65 |r *buf, int size| 000caea0 2c 20 3c 78 66 65 72 72 65 63 76 5f 62 75 66 66 |, <xferrecv_buff| 000caeb0 65 72 5f 70 72 6f 63 65 73 73 6f 72 3e 20 2a 70 |er_processor> *p| 000caec0 3b 0a 48 65 61 64 65 72 3a 09 3c 78 66 65 72 72 |;.Header:.<xferr| 000caed0 65 63 76 2e 68 3d 3e 78 66 65 72 72 65 63 76 3e |ecv.h=>xferrecv>| 000caee0 0a 0a 52 65 74 75 72 6e 73 3a 09 4e 75 6d 62 65 |..Returns:.Numbe| 000caef0 72 20 6f 66 20 62 79 74 65 73 20 74 72 61 6e 73 |r of bytes trans| 000caf00 66 65 72 72 65 64 2c 20 6f 72 20 2d 31 2e 0a 0a |ferred, or -1...| 000caf10 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 |This function re| 000caf20 70 6c 69 65 73 20 74 6f 20 61 20 3c 44 61 74 61 |plies to a <Data| 000caf30 53 61 76 65 3d 3e 53 57 49 3a 77 69 6d 70 5f 75 |Save=>SWI:wimp_u| 000caf40 6d 31 3e 20 6d 65 73 73 61 67 65 20 61 6e 64 20 |m1> message and | 000caf50 6c 6f 61 64 73 20 64 61 74 61 20 69 6e 74 6f 20 |loads data into | 000caf60 61 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 62 |a user-defined b| 000caf70 75 66 66 65 72 20 6f 66 20 74 68 65 20 67 69 76 |uffer of the giv| 000caf80 65 6e 20 73 69 7a 65 2e 20 57 68 65 6e 20 74 68 |en size. When th| 000caf90 69 73 20 62 75 66 66 65 72 20 69 73 20 66 75 6c |is buffer is ful| 000cafa0 6c 2c 20 2f 70 2f 20 69 73 20 63 61 6c 6c 65 64 |l, /p/ is called| 000cafb0 20 74 6f 20 65 6d 70 74 79 20 69 74 2e 20 54 68 | to empty it. Th| 000cafc0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 |is function supp| 000cafd0 6f 72 74 73 20 52 41 4d 20 61 6e 64 20 73 63 72 |orts RAM and scr| 000cafe0 61 70 20 66 69 6c 65 20 74 72 61 6e 73 66 65 72 |ap file transfer| 000caff0 20 70 72 6f 74 6f 63 6f 6c 73 2e 00 44 41 54 41 | protocols..DATA| 000cb000 bd 00 00 00 58 66 65 72 52 65 63 76 5f 45 70 69 |....XferRecv_Epi| 000cb010 6c 6f 67 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 |log.Syntax:.void| 000cb020 20 58 66 65 72 52 65 63 76 5f 45 70 69 6c 6f 67 | XferRecv_Epilog| 000cb030 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a | (void);.Header:| 000cb040 09 3c 54 69 6d 73 4c 69 62 3a 58 66 65 72 52 65 |.<TimsLib:XferRe| 000cb050 63 76 2e 68 3d 3e 58 66 65 72 52 65 63 76 5f 54 |cv.h=>XferRecv_T| 000cb060 4c 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f |L>..This functio| 000cb070 6e 20 73 68 6f 75 6c 64 20 62 65 20 61 66 74 65 |n should be afte| 000cb080 72 20 79 6f 75 20 68 61 76 65 20 6c 6f 61 64 65 |r you have loade| 000cb090 64 20 61 20 66 69 6c 65 2e 20 49 74 20 73 65 6e |d a file. It sen| 000cb0a0 64 73 20 61 20 44 61 74 61 4c 6f 61 64 41 63 6b |ds a DataLoadAck| 000cb0b0 20 6d 65 73 73 61 67 65 2e 00 00 00 44 41 54 41 | message....DATA| 000cb0c0 0a 01 00 00 78 66 65 72 72 65 63 76 5f 66 69 6c |....xferrecv_fil| 000cb0d0 65 5f 69 73 5f 73 61 66 65 0a 53 79 6e 74 61 78 |e_is_safe.Syntax| 000cb0e0 3a 09 3c 42 4f 4f 4c 3e 20 78 66 65 72 72 65 63 |:.<BOOL> xferrec| 000cb0f0 76 5f 66 69 6c 65 5f 69 73 5f 73 61 66 65 20 28 |v_file_is_safe (| 000cb100 76 6f 69 64 29 3b 0a 48 65 61 64 65 72 3a 09 3c |void);.Header:.<| 000cb110 78 66 65 72 72 65 63 76 2e 68 3d 3e 78 66 65 72 |xferrecv.h=>xfer| 000cb120 72 65 63 76 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |recv>..Returns:.| 000cb130 3c 54 52 55 45 3e 20 69 66 20 69 74 20 69 73 2e |<TRUE> if it is.| 000cb140 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000cb150 63 68 65 63 6b 73 20 69 66 20 74 68 65 20 66 69 |checks if the fi| 000cb160 6c 65 20 77 61 73 20 72 65 63 65 69 76 65 64 20 |le was received | 000cb170 66 72 6f 6d 20 61 20 73 61 66 65 20 73 6f 75 72 |from a safe sour| 000cb180 63 65 20 69 65 20 74 68 65 20 73 75 70 70 6c 69 |ce ie the suppli| 000cb190 65 64 20 66 69 6c 65 6e 61 6d 65 20 77 69 6c 6c |ed filename will| 000cb1a0 20 6e 6f 74 20 63 68 61 6e 67 65 20 69 6e 20 74 | not change in t| 000cb1b0 68 65 20 66 6f 72 65 73 65 65 61 62 6c 65 20 66 |he foreseeable f| 000cb1c0 75 74 75 72 65 2e 00 00 44 41 54 41 eb 00 00 00 |uture...DATA....| 000cb1d0 78 66 65 72 72 65 63 76 5f 69 6e 73 65 72 74 66 |xferrecv_insertf| 000cb1e0 69 6c 65 6f 6b 0a 53 79 6e 74 61 78 3a 09 76 6f |ileok.Syntax:.vo| 000cb1f0 69 64 20 78 66 65 72 72 65 63 76 5f 69 6e 73 65 |id xferrecv_inse| 000cb200 72 74 66 69 6c 65 6f 6b 20 28 76 6f 69 64 29 3b |rtfileok (void);| 000cb210 0a 48 65 61 64 65 72 3a 09 3c 78 66 65 72 72 65 |.Header:.<xferre| 000cb220 63 76 2e 68 3d 3e 78 66 65 72 72 65 63 76 3e 0a |cv.h=>xferrecv>.| 000cb230 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 |.This function d| 000cb240 65 6c 65 74 65 73 20 22 5c 3c 57 69 6d 70 24 53 |eletes "\<Wimp$S| 000cb250 63 72 61 70 3e 22 20 28 69 66 20 75 73 65 64 29 |crap>" (if used)| 000cb260 20 61 6e 64 20 73 65 6e 64 73 20 61 20 3c 44 61 | and sends a <Da| 000cb270 74 61 4c 6f 61 64 41 63 6b 3d 3e 53 57 49 3a 77 |taLoadAck=>SWI:w| 000cb280 69 6d 70 5f 75 6d 34 3e 20 6d 65 73 73 61 67 65 |imp_um4> message| 000cb290 2e 20 43 61 6c 6c 20 74 68 69 73 20 61 66 74 65 |. Call this afte| 000cb2a0 72 20 6c 6f 61 64 69 6e 67 20 74 68 65 20 66 69 |r loading the fi| 000cb2b0 6c 65 2e 00 44 41 54 41 f4 00 00 00 78 66 65 72 |le..DATA....xfer| 000cb2c0 72 65 63 76 5f 70 72 69 6e 74 66 69 6c 65 6f 6b |recv_printfileok| 000cb2d0 0a 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 78 66 |.Syntax:.void xf| 000cb2e0 65 72 72 65 63 76 5f 70 72 69 6e 74 66 69 6c 65 |errecv_printfile| 000cb2f0 6f 6b 20 28 69 6e 74 20 74 79 70 65 29 3b 0a 48 |ok (int type);.H| 000cb300 65 61 64 65 72 3a 09 3c 78 66 65 72 72 65 63 76 |eader:.<xferrecv| 000cb310 2e 68 3d 3e 78 66 65 72 72 65 63 76 3e 0a 0a 54 |.h=>xferrecv>..T| 000cb320 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 |his function rep| 000cb330 6c 69 65 73 20 74 6f 20 61 20 50 72 69 6e 74 54 |lies to a PrintT| 000cb340 79 70 65 4f 64 64 20 6d 65 73 73 61 67 65 20 77 |ypeOdd message w| 000cb350 69 74 68 20 61 20 50 72 69 6e 74 54 79 70 65 4b |ith a PrintTypeK| 000cb360 6e 6f 77 6e 20 6d 65 73 73 61 67 65 2e 20 49 66 |nown message. If| 000cb370 20 70 72 69 6e 74 65 64 20 69 6e 64 69 72 65 63 | printed indirec| 000cb380 74 6c 79 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 |tly, you should | 000cb390 70 61 73 73 20 74 68 65 20 66 69 6c 65 20 74 79 |pass the file ty| 000cb3a0 70 65 20 62 61 63 6b 2e 44 41 54 41 31 01 00 00 |pe back.DATA1...| 000cb3b0 58 66 65 72 52 65 63 76 5f 50 72 6f 6c 6f 67 0a |XferRecv_Prolog.| 000cb3c0 53 79 6e 74 61 78 3a 09 76 6f 69 64 20 58 66 65 |Syntax:.void Xfe| 000cb3d0 72 52 65 63 76 5f 50 72 6f 6c 6f 67 20 28 69 6e |rRecv_Prolog (in| 000cb3e0 74 20 2a 66 69 6c 65 74 79 70 65 2c 20 63 68 61 |t *filetype, cha| 000cb3f0 72 20 2a 66 69 6c 65 6e 61 6d 65 29 3b 0a 48 65 |r *filename);.He| 000cb400 61 64 65 72 3a 09 3c 54 69 6d 73 4c 69 62 3a 58 |ader:.<TimsLib:X| 000cb410 66 65 72 52 65 63 76 2e 68 3d 3e 58 66 65 72 52 |ferRecv.h=>XferR| 000cb420 65 63 76 5f 54 4c 3e 0a 0a 54 68 69 73 20 66 75 |ecv_TL>..This fu| 000cb430 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 |nction should be| 000cb440 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 79 6f 75 | called when you| 000cb450 20 67 65 74 20 61 20 44 61 74 61 4c 6f 61 64 20 | get a DataLoad | 000cb460 6f 72 20 44 61 74 61 4f 70 65 6e 20 6d 65 73 73 |or DataOpen mess| 000cb470 61 67 65 2e 20 49 74 20 73 65 74 73 20 75 70 20 |age. It sets up | 000cb480 61 6e 20 61 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 |an acknowledgeme| 000cb490 6e 74 20 6d 65 73 73 61 67 65 2e 20 59 6f 75 20 |nt message. You | 000cb4a0 73 68 6f 75 6c 64 20 6e 6f 77 20 6c 6f 61 64 20 |should now load | 000cb4b0 74 68 65 20 66 69 6c 65 20 61 6e 64 20 74 68 65 |the file and the| 000cb4c0 6e 20 63 61 6c 6c 20 3c 58 66 65 72 52 65 63 76 |n call <XferRecv| 000cb4d0 5f 45 70 69 6c 6f 67 3e 2e 00 00 00 44 41 54 41 |_Epilog>....DATA| 000cb4e0 c6 00 00 00 54 69 6d 73 4c 69 62 3a 58 66 65 72 |....TimsLib:Xfer| 000cb4f0 52 65 63 76 2e 68 0a 54 68 69 73 20 68 65 61 64 |Recv.h.This head| 000cb500 65 72 20 64 65 63 6c 61 72 65 73 20 74 77 6f 20 |er declares two | 000cb510 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 68 61 |functions for ha| 000cb520 6e 64 6c 69 6e 67 20 72 65 63 65 69 76 65 64 20 |ndling received | 000cb530 66 69 6c 65 73 20 69 65 20 66 69 6c 65 73 20 64 |files ie files d| 000cb540 72 61 67 67 65 64 20 74 6f 20 79 6f 75 72 20 61 |ragged to your a| 000cb550 70 70 6c 69 63 61 74 69 6f 6e 2e 0a 0a 46 75 6e |pplication...Fun| 000cb560 63 74 69 6f 6e 73 3a 0a 0a 23 54 61 62 6c 65 20 |ctions:..#Table | 000cb570 31 20 32 30 0a 3c 58 66 65 72 52 65 63 76 5f 50 |1 20.<XferRecv_P| 000cb580 72 6f 6c 6f 67 3e 0a 3c 58 66 65 72 52 65 63 76 |rolog>.<XferRecv| 000cb590 5f 45 70 69 6c 6f 67 3e 0a 23 45 6e 64 54 61 62 |_Epilog>.#EndTab| 000cb5a0 6c 65 00 00 44 41 54 41 ce 02 00 00 78 66 65 72 |le..DATA....xfer| 000cb5b0 73 65 6e 64 0a 53 79 6e 74 61 78 3a 09 3c 42 4f |send.Syntax:.<BO| 000cb5c0 4f 4c 3e 20 78 66 65 72 73 65 6e 64 20 28 69 6e |OL> xfersend (in| 000cb5d0 74 20 66 69 6c 65 74 79 70 65 2c 20 63 68 61 72 |t filetype, char| 000cb5e0 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 73 69 7a 65 | *name, int size| 000cb5f0 2c 20 3c 78 66 65 72 73 65 6e 64 5f 73 61 76 65 |, <xfersend_save| 000cb600 70 72 6f 63 3e 20 73 61 76 65 2c 20 3c 78 66 65 |proc> save, <xfe| 000cb610 72 73 65 6e 64 5f 73 65 6e 64 70 72 6f 63 3e 20 |rsend_sendproc> | 000cb620 73 65 6e 64 2c 20 3c 78 66 65 72 73 65 6e 64 5f |send, <xfersend_| 000cb630 70 72 69 6e 74 70 72 6f 63 3e 20 70 72 69 6e 74 |printproc> print| 000cb640 2c 20 3c 77 69 6d 70 5f 65 76 65 6e 74 73 74 72 |, <wimp_eventstr| 000cb650 3e 20 2a 65 2c 20 76 6f 69 64 20 2a 68 61 6e 64 |> *e, void *hand| 000cb660 6c 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 78 66 |le);.Header:.<xf| 000cb670 65 72 73 65 6e 64 2e 68 3d 3e 78 66 65 72 73 65 |ersend.h=>xferse| 000cb680 6e 64 5f 68 3e 0a 0a 52 65 74 75 72 6e 73 3a 09 |nd_h>..Returns:.| 000cb690 3c 54 52 55 45 3e 20 69 66 20 73 75 63 63 65 73 |<TRUE> if succes| 000cb6a0 73 66 75 6c 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 |sful...See also | 000cb6b0 74 68 65 20 54 69 6d 73 4c 69 62 20 66 75 6e 63 |the TimsLib func| 000cb6c0 74 69 6f 6e 2c 20 3c 58 66 65 72 53 65 6e 64 3d |tion, <XferSend=| 000cb6d0 3e 58 66 65 72 53 65 6e 64 5f 3e 2e 0a 0a 54 68 |>XferSend_>...Th| 000cb6e0 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 |is function shou| 000cb6f0 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 74 6f 20 |ld be called to | 000cb700 69 6e 69 74 69 61 74 65 20 64 61 74 61 20 74 72 |initiate data tr| 000cb710 61 6e 73 66 65 72 20 66 6f 6c 6c 6f 77 69 6e 67 |ansfer following| 000cb720 20 61 20 64 72 61 67 2e 20 50 61 73 73 20 69 6e | a drag. Pass in| 000cb730 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 61 6e | the filetype an| 000cb740 64 20 73 75 67 67 65 73 74 65 64 20 6e 61 6d 65 |d suggested name| 000cb750 2c 20 61 6e 64 20 74 68 65 20 74 68 72 65 65 20 |, and the three | 000cb760 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e |handler function| 000cb770 73 2e 20 2f 65 2f 20 69 73 20 74 68 65 20 65 76 |s. /e/ is the ev| 000cb780 65 6e 74 20 77 68 69 63 68 20 73 74 61 72 74 65 |ent which starte| 000cb790 64 20 74 68 65 20 65 78 70 6f 72 74 2c 20 2f 68 |d the export, /h| 000cb7a0 61 6e 64 6c 65 2f 20 69 73 20 61 20 75 73 65 72 |andle/ is a user| 000cb7b0 2d 64 65 66 69 6e 65 64 20 68 61 6e 64 6c 65 20 |-defined handle | 000cb7c0 77 68 69 63 68 20 69 73 20 70 61 73 73 65 64 20 |which is passed | 000cb7d0 64 69 72 65 63 74 6c 79 20 74 6f 20 74 68 65 20 |directly to the | 000cb7e0 68 61 6e 64 6c 65 72 73 2c 20 61 6e 64 20 2f 73 |handlers, and /s| 000cb7f0 69 7a 65 2f 20 69 73 20 74 68 65 20 65 73 74 69 |ize/ is the esti| 000cb800 6d 61 74 65 64 20 73 69 7a 65 20 6f 66 20 74 68 |mated size of th| 000cb810 65 20 66 69 6c 65 2e 0a 0a 49 66 20 2f 73 65 6e |e file...If /sen| 000cb820 64 2f 20 69 73 20 30 20 74 68 65 6e 20 6e 6f 20 |d/ is 0 then no | 000cb830 52 41 4d 20 74 72 61 6e 73 66 65 72 20 69 73 20 |RAM transfer is | 000cb840 75 73 65 64 2e 20 49 66 20 2f 70 72 69 6e 74 2f |used. If /print/| 000cb850 20 69 73 20 30 20 74 68 65 6e 20 27 73 61 76 65 | is 0 then 'save| 000cb860 27 20 69 73 20 75 73 65 64 20 69 6e 73 74 65 61 |' is used instea| 000cb870 64 2e 00 00 44 49 52 24 24 02 00 00 24 02 00 00 |d...DIR$$...$...| 000cb880 98 ba 0c 00 46 fd ff ff fd c9 58 26 06 02 00 00 |....F.....X&....| 000cb890 13 00 00 00 00 00 00 00 21 52 6f 6f 74 00 00 00 |........!Root...| 000cb8a0 a0 bc 0c 00 46 ff ff ff fc 36 b6 22 25 01 00 00 |....F....6."%...| 000cb8b0 13 00 00 00 00 00 00 00 63 6c 65 61 72 5f 75 6e |........clear_un| 000cb8c0 6b 6e 6f 77 6e 73 00 00 c8 bd 0c 00 46 ff ff ff |knowns......F...| 000cb8d0 09 37 b6 22 8b 01 00 00 13 00 00 00 00 00 00 00 |.7."............| 000cb8e0 63 6c 6f 73 65 5f 6f 6e 5f 78 66 65 72 00 00 00 |close_on_xfer...| 000cb8f0 54 bf 0c 00 46 ff ff ff 10 37 b6 22 3a 01 00 00 |T...F....7.":...| 000cb900 13 00 00 00 00 00 00 00 66 69 6c 65 5f 69 73 5f |........file_is_| 000cb910 73 61 66 65 00 00 00 00 90 c0 0c 00 46 ff ff ff |safe........F...| 000cb920 1a 37 b6 22 fa 01 00 00 13 00 00 00 00 00 00 00 |.7."............| 000cb930 68 00 00 00 8c c2 0c 00 46 ff ff ff 21 37 b6 22 |h.......F...!7."| 000cb940 c1 01 00 00 13 00 00 00 00 00 00 00 70 69 70 65 |............pipe| 000cb950 00 00 00 00 50 c4 0c 00 46 ff ff ff 2c 37 b6 22 |....P...F...,7."| 000cb960 a7 00 00 00 13 00 00 00 00 00 00 00 70 72 69 6e |............prin| 000cb970 74 46 61 69 6c 65 64 00 f8 c4 0c 00 46 ff ff ff |tFailed.....F...| 000cb980 34 37 b6 22 9c 00 00 00 13 00 00 00 00 00 00 00 |47."............| 000cb990 70 72 69 6e 74 50 72 69 6e 74 65 64 00 00 00 00 |printPrinted....| 000cb9a0 94 c5 0c 00 46 ff ff ff 3c 37 b6 22 e9 01 00 00 |....F...<7."....| 000cb9b0 13 00 00 00 00 00 00 00 70 72 69 6e 74 70 72 6f |........printpro| 000cb9c0 63 00 00 00 80 c7 0c 00 46 ff ff ff 47 37 b6 22 |c.......F...G7."| 000cb9d0 60 01 00 00 13 00 00 00 00 00 00 00 72 65 61 64 |`...........read| 000cb9e0 5f 6c 61 73 74 5f 72 65 66 00 00 00 e0 c8 0c 00 |_last_ref.......| 000cb9f0 46 ff ff ff 8a da 58 26 bd 01 00 00 13 00 00 00 |F.....X&........| 000cba00 00 00 00 00 73 61 76 65 70 72 6f 63 00 00 00 00 |....saveproc....| 000cba10 a0 ca 0c 00 46 ff ff ff 5b 37 b6 22 28 01 00 00 |....F...[7."(...| 000cba20 13 00 00 00 00 00 00 00 73 65 6e 64 62 75 66 00 |........sendbuf.| 000cba30 c8 cb 0c 00 46 ff ff ff 64 37 b6 22 a2 01 00 00 |....F...d7."....| 000cba40 13 00 00 00 00 00 00 00 73 65 6e 64 70 72 6f 63 |........sendproc| 000cba50 00 00 00 00 6c cd 0c 00 46 ff ff ff 6c 37 b6 22 |....l...F...l7."| 000cba60 f3 00 00 00 13 00 00 00 00 00 00 00 73 65 74 5f |............set_| 000cba70 66 69 6c 65 69 73 73 61 66 65 00 00 60 ce 0c 00 |fileissafe..`...| 000cba80 46 fd ff ff eb c0 58 26 aa 00 00 00 13 00 00 00 |F.....X&........| 000cba90 00 00 00 00 54 4c 00 00 44 41 54 41 06 02 00 00 |....TL..DATA....| 000cbaa0 58 66 65 72 53 65 6e 64 0a 53 79 6e 74 61 78 3a |XferSend.Syntax:| 000cbab0 09 3c 42 4f 4f 4c 3e 20 58 66 65 72 53 65 6e 64 |.<BOOL> XferSend| 000cbac0 20 28 69 6e 74 20 66 69 6c 65 74 79 70 65 2c 20 | (int filetype, | 000cbad0 63 68 61 72 20 2a 6e 61 6d 65 2c 20 69 6e 74 20 |char *name, int | 000cbae0 73 69 7a 65 2c 20 3c 78 66 65 72 73 65 6e 64 5f |size, <xfersend_| 000cbaf0 73 61 76 65 70 72 6f 63 3e 20 73 61 76 65 2c 20 |saveproc> save, | 000cbb00 3c 65 76 65 6e 74 5f 70 6f 6c 6c 62 6c 6f 63 6b |<event_pollblock| 000cbb10 3e 20 2a 65 2c 20 76 6f 69 64 20 2a 68 61 6e 64 |> *e, void *hand| 000cbb20 6c 65 29 3b 0a 48 65 61 64 65 72 3a 09 3c 54 69 |le);.Header:.<Ti| 000cbb30 6d 73 4c 69 62 3a 58 66 65 72 53 65 6e 64 2e 68 |msLib:XferSend.h| 000cbb40 3d 3e 58 66 65 72 53 65 6e 64 5f 54 4c 3e 0a 0a |=>XferSend_TL>..| 000cbb50 52 65 74 75 72 6e 73 3a 09 3c 54 52 55 45 3e 20 |Returns:.<TRUE> | 000cbb60 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a |if successful...| 000cbb70 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 |This function sh| 000cbb80 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 74 |ould be called t| 000cbb90 6f 20 69 6e 69 74 69 61 74 65 20 64 61 74 61 20 |o initiate data | 000cbba0 74 72 61 6e 73 66 65 72 20 66 6f 6c 6c 6f 77 69 |transfer followi| 000cbbb0 6e 67 20 61 20 64 72 61 67 2e 20 50 61 73 73 20 |ng a drag. Pass | 000cbbc0 69 6e 20 74 68 65 20 66 69 6c 65 74 79 70 65 20 |in the filetype | 000cbbd0 61 6e 64 20 73 75 67 67 65 73 74 65 64 20 6e 61 |and suggested na| 000cbbe0 6d 65 2c 20 61 6e 64 20 68 61 6e 64 6c 65 72 20 |me, and handler | 000cbbf0 66 75 6e 63 74 69 6f 6e 2e 20 2f 65 2f 20 69 73 |function. /e/ is| 000cbc00 20 74 68 65 20 65 76 65 6e 74 20 77 68 69 63 68 | the event which| 000cbc10 20 73 74 61 72 74 65 64 20 74 68 65 20 65 78 70 | started the exp| 000cbc20 6f 72 74 2c 20 2f 68 61 6e 64 6c 65 2f 20 69 73 |ort, /handle/ is| 000cbc30 20 61 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 | a user-defined | 000cbc40 68 61 6e 64 6c 65 20 77 68 69 63 68 20 69 73 20 |handle which is | 000cbc50 70 61 73 73 65 64 20 64 69 72 65 63 74 6c 79 20 |passed directly | 000cbc60 74 6f 20 74 68 65 20 68 61 6e 64 6c 65 72 73 2c |to the handlers,| 000cbc70 20 61 6e 64 20 2f 73 69 7a 65 2f 20 69 73 20 74 | and /size/ is t| 000cbc80 68 65 20 65 73 74 69 6d 61 74 65 64 20 73 69 7a |he estimated siz| 000cbc90 65 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 00 00 |e of the file...| 000cbca0 44 41 54 41 25 01 00 00 78 66 65 72 73 65 6e 64 |DATA%...xfersend| 000cbcb0 5f 63 6c 65 61 72 5f 75 6e 6b 6e 6f 77 6e 73 0a |_clear_unknowns.| 000cbcc0 53 79 6e 74 61 78 3a 20 20 76 6f 69 64 20 78 66 |Syntax: void xf| 000cbcd0 65 72 73 65 6e 64 5f 63 6c 65 61 72 75 6e 6b 6e |ersend_clearunkn| 000cbce0 6f 77 6e 73 20 28 76 6f 69 64 29 3b 0a 48 65 61 |owns (void);.Hea| 000cbcf0 64 65 72 3a 20 20 3c 78 66 65 72 73 65 6e 64 2e |der: <xfersend.| 000cbd00 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 3e 0a 0a |h=>xfersend_h>..| 000cbd10 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6c |This function cl| 000cbd20 65 61 72 73 20 75 70 20 61 6e 79 20 73 74 72 61 |ears up any stra| 000cbd30 79 20 65 76 65 6e 74 0a 70 72 6f 63 65 73 73 6f |y event.processo| 000cbd40 72 73 20 6c 65 66 74 20 6c 79 69 6e 67 20 61 72 |rs left lying ar| 000cbd50 6f 75 6e 64 20 62 79 20 78 66 65 72 73 65 6e 64 |ound by xfersend| 000cbd60 2e 20 49 74 0a 73 68 6f 75 6c 64 20 62 65 20 63 |. It.should be c| 000cbd70 61 6c 6c 65 64 20 77 68 65 6e 65 76 65 72 20 61 |alled whenever a| 000cbd80 20 74 72 61 6e 73 66 65 72 20 69 73 0a 66 69 6e | transfer is.fin| 000cbd90 69 73 68 65 64 20 28 65 69 74 68 65 72 20 6e 6f |ished (either no| 000cbda0 72 6d 61 6c 6c 79 20 6f 72 20 61 73 20 74 68 65 |rmally or as the| 000cbdb0 20 72 65 73 75 6c 74 20 6f 66 0a 61 6e 20 65 72 | result of.an er| 000cbdc0 72 6f 72 29 2e 00 00 00 44 41 54 41 8b 01 00 00 |ror)....DATA....| 000cbdd0 78 66 65 72 73 65 6e 64 5f 63 6c 6f 73 65 5f 6f |xfersend_close_o| 000cbde0 6e 5f 78 66 65 72 0a 53 79 6e 74 61 78 3a 20 20 |n_xfer.Syntax: | 000cbdf0 76 6f 69 64 20 78 66 65 72 73 65 6e 64 5f 63 6c |void xfersend_cl| 000cbe00 6f 73 65 5f 6f 6e 5f 78 66 65 72 0a 20 20 20 20 |ose_on_xfer. | 000cbe10 20 20 20 20 20 28 3c 42 4f 4f 4c 3e 20 63 6c 6f | (<BOOL> clo| 000cbe20 73 65 2c 20 3c 77 69 6d 70 5f 77 3e 20 77 69 6e |se, <wimp_w> win| 000cbe30 29 3b 0a 48 65 61 64 65 72 3a 20 20 3c 78 66 65 |);.Header: <xfe| 000cbe40 72 73 65 6e 64 2e 68 3d 3e 78 66 65 72 73 65 6e |rsend.h=>xfersen| 000cbe50 64 5f 68 3e 0a 0a 54 68 69 73 20 66 75 6e 63 74 |d_h>..This funct| 000cbe60 69 6f 6e 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 |ion allows you t| 000cbe70 6f 20 73 65 74 20 61 20 77 69 6e 64 6f 77 20 74 |o set a window t| 000cbe80 6f 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 |o.automatically | 000cbe90 63 6c 6f 73 65 20 61 66 74 65 72 20 64 61 74 61 |close after data| 000cbea0 20 74 72 61 6e 73 66 65 72 2e 20 49 66 0a 27 63 | transfer. If.'c| 000cbeb0 6c 6f 73 65 27 20 69 73 20 3c 54 52 55 45 3e 20 |lose' is <TRUE> | 000cbec0 74 68 65 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 |then the window | 000cbed0 27 77 69 6e 27 20 77 69 6c 6c 20 62 65 0a 63 6c |'win' will be.cl| 000cbee0 6f 73 65 64 20 61 66 74 65 72 20 64 61 74 61 20 |osed after data | 000cbef0 74 72 61 6e 73 66 65 72 2e 20 59 6f 75 20 77 6f |transfer. You wo| 000cbf00 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 0a 75 73 65 |uld normally.use| 000cbf10 20 74 68 69 73 20 74 6f 20 63 6c 6f 73 65 2c 20 | this to close, | 000cbf20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 |for example, the| 000cbf30 20 53 61 76 65 20 77 69 6e 64 6f 77 0a 61 66 74 | Save window.aft| 000cbf40 65 72 20 61 20 66 69 6c 65 20 69 73 20 73 61 76 |er a file is sav| 000cbf50 65 64 2e 00 44 41 54 41 3a 01 00 00 78 66 65 72 |ed..DATA:...xfer| 000cbf60 73 65 6e 64 5f 66 69 6c 65 5f 69 73 5f 73 61 66 |send_file_is_saf| 000cbf70 65 0a 53 79 6e 74 61 78 3a 20 20 3c 42 4f 4f 4c |e.Syntax: <BOOL| 000cbf80 3e 20 78 66 65 72 73 65 6e 64 5f 66 69 6c 65 5f |> xfersend_file_| 000cbf90 69 73 5f 73 61 66 65 20 28 76 6f 69 64 29 3b 0a |is_safe (void);.| 000cbfa0 48 65 61 64 65 72 3a 20 20 3c 78 66 65 72 73 65 |Header: <xferse| 000cbfb0 6e 64 2e 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 |nd.h=>xfersend_h| 000cbfc0 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 3c 54 52 55 |>..Returns: <TRU| 000cbfd0 45 3e 20 69 66 20 73 61 66 65 2e 0a 0a 54 68 69 |E> if safe...Thi| 000cbfe0 73 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b |s function check| 000cbff0 73 20 77 68 65 74 68 65 72 20 74 68 65 20 66 69 |s whether the fi| 000cc000 6c 65 27 73 20 6e 61 6d 65 0a 63 61 6e 20 62 65 |le's name.can be| 000cc010 20 72 65 6c 69 61 62 6c 79 20 61 73 73 75 6d 65 | reliably assume| 000cc020 64 20 6e 6f 74 20 74 6f 20 63 68 61 6e 67 65 2e |d not to change.| 000cc030 20 52 65 74 75 72 6e 73 0a 3c 54 52 55 45 3e 20 | Returns.<TRUE> | 000cc040 69 66 20 74 68 65 20 66 69 6c 65 20 72 65 63 69 |if the file reci| 000cc050 70 69 65 6e 74 20 77 69 6c 6c 20 6e 6f 74 20 6d |pient will not m| 000cc060 6f 64 69 66 79 20 69 74 2c 0a 73 6f 20 79 6f 75 |odify it,.so you| 000cc070 20 63 61 6e 20 63 68 61 6e 67 65 20 79 6f 75 72 | can change your| 000cc080 20 77 69 6e 64 6f 77 20 74 69 74 6c 65 2e 00 00 | window title...| 000cc090 44 41 54 41 fa 01 00 00 78 66 65 72 73 65 6e 64 |DATA....xfersend| 000cc0a0 2e 68 0a 54 68 69 73 20 68 65 61 64 65 72 20 64 |.h.This header d| 000cc0b0 65 63 6c 61 72 65 73 20 66 75 6e 63 74 69 6f 6e |eclares function| 000cc0c0 20 66 6f 72 20 67 65 6e 65 72 61 6c 0a 70 75 72 | for general.pur| 000cc0d0 70 6f 73 65 20 65 78 70 6f 72 74 20 6f 66 20 64 |pose export of d| 000cc0e0 61 74 61 20 62 79 20 61 6e 20 69 63 6f 6e 20 64 |ata by an icon d| 000cc0f0 72 61 67 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 3a |rag...Functions:| 000cc100 0a 0a 23 54 61 62 6c 65 20 34 20 32 34 0a 3c 78 |..#Table 4 24.<x| 000cc110 66 65 72 73 65 6e 64 20 20 20 20 20 20 20 20 20 |fersend | 000cc120 20 20 20 20 3e 0a 3c 78 66 65 72 73 65 6e 64 5f | >.<xfersend_| 000cc130 70 69 70 65 20 20 20 20 20 20 20 20 3e 0a 3c 78 |pipe >.<x| 000cc140 66 65 72 73 65 6e 64 5f 73 65 6e 64 62 75 66 20 |fersend_sendbuf | 000cc150 20 20 20 20 3e 0a 3c 78 66 65 72 73 65 6e 64 5f | >.<xfersend_| 000cc160 66 69 6c 65 5f 69 73 5f 73 61 66 65 3e 0a 3c 78 |file_is_safe>.<x| 000cc170 66 65 72 73 65 6e 64 5f 73 65 74 5f 66 69 6c 65 |fersend_set_file| 000cc180 69 73 73 61 66 65 3e 0a 3c 78 66 65 72 73 65 6e |issafe>.<xfersen| 000cc190 64 5f 63 6c 6f 73 65 5f 6f 6e 5f 78 66 65 72 20 |d_close_on_xfer | 000cc1a0 3e 0a 3c 78 66 65 72 73 65 6e 64 5f 63 6c 65 61 |>.<xfersend_clea| 000cc1b0 72 5f 75 6e 6b 6e 6f 77 6e 73 3e 0a 3c 78 66 65 |r_unknowns>.<xfe| 000cc1c0 72 73 65 6e 64 5f 72 65 61 64 5f 6c 61 73 74 5f |rsend_read_last_| 000cc1d0 72 65 66 20 3e 0a 23 45 6e 64 54 61 62 6c 65 0a |ref >.#EndTable.| 000cc1e0 0a 54 79 70 65 73 3a 0a 0a 23 54 61 62 6c 65 20 |.Types:..#Table | 000cc1f0 32 20 32 34 0a 3c 78 66 65 72 73 65 6e 64 5f 73 |2 24.<xfersend_s| 000cc200 61 76 65 70 72 6f 63 3e 0a 3c 78 66 65 72 73 65 |aveproc>.<xferse| 000cc210 6e 64 5f 73 65 6e 64 70 72 6f 63 3e 0a 3c 78 66 |nd_sendproc>.<xf| 000cc220 65 72 73 65 6e 64 5f 70 72 69 6e 74 70 72 6f 63 |ersend_printproc| 000cc230 3e 0a 23 45 6e 64 54 61 62 6c 65 0a 0a 4d 61 63 |>.#EndTable..Mac| 000cc240 72 6f 73 3a 0a 0a 23 54 61 62 6c 65 20 31 20 32 |ros:..#Table 1 2| 000cc250 34 0a 3c 78 66 65 72 73 65 6e 64 5f 70 72 69 6e |4.<xfersend_prin| 000cc260 74 50 72 69 6e 74 65 72 3e 0a 3c 78 66 65 72 73 |tPrinter>.<xfers| 000cc270 65 6e 64 5f 70 72 69 6e 74 46 61 69 6c 65 64 3e |end_printFailed>| 000cc280 0a 23 45 6e 64 54 61 62 6c 65 00 00 44 41 54 41 |.#EndTable..DATA| 000cc290 c1 01 00 00 78 66 65 72 73 65 6e 64 5f 70 69 70 |....xfersend_pip| 000cc2a0 65 0a 53 79 6e 74 61 78 3a 20 20 3c 42 4f 4f 4c |e.Syntax: <BOOL| 000cc2b0 3e 20 78 66 65 72 73 65 6e 64 5f 70 69 70 65 20 |> xfersend_pipe | 000cc2c0 28 69 6e 74 20 66 69 6c 65 74 79 70 65 2c 0a 20 |(int filetype,. | 000cc2d0 20 20 20 20 20 20 20 20 63 68 61 72 20 2a 6e 61 | char *na| 000cc2e0 6d 65 2c 20 69 6e 74 20 73 69 7a 65 2c 0a 20 20 |me, int size,. | 000cc2f0 20 20 20 20 20 20 20 3c 78 66 65 72 73 65 6e 64 | <xfersend| 000cc300 5f 73 61 76 65 70 72 6f 63 3e 20 73 61 76 65 2c |_saveproc> save,| 000cc310 0a 20 20 20 20 20 20 20 20 20 3c 78 66 65 72 73 |. <xfers| 000cc320 65 6e 64 5f 73 65 6e 64 70 72 6f 63 3e 20 73 65 |end_sendproc> se| 000cc330 6e 64 2c 0a 20 20 20 20 20 20 20 20 20 3c 78 66 |nd,. <xf| 000cc340 65 72 73 65 6e 64 5f 70 72 69 6e 74 70 72 6f 63 |ersend_printproc| 000cc350 3e 20 70 72 69 6e 74 2c 0a 20 20 20 20 20 20 20 |> print,. | 000cc360 20 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 2c 20 | void *handle, | 000cc370 3c 77 69 6d 70 5f 74 3e 20 74 61 73 6b 29 3b 0a |<wimp_t> task);.| 000cc380 48 65 61 64 65 72 3a 20 20 3c 78 66 65 72 73 65 |Header: <xferse| 000cc390 6e 64 2e 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 |nd.h=>xfersend_h| 000cc3a0 3e 0a 0a 52 65 74 75 72 6e 73 3a 20 3c 54 52 55 |>..Returns: <TRU| 000cc3b0 45 3e 20 69 66 20 73 75 63 63 65 73 73 66 75 6c |E> if successful| 000cc3c0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e |...This function| 000cc3d0 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 65 66 | has the same ef| 000cc3e0 66 65 63 74 20 61 73 20 3c 78 66 65 72 73 65 6e |fect as <xfersen| 000cc3f0 64 3e 2c 0a 62 75 74 20 64 6f 65 73 20 6e 6f 74 |d>,.but does not| 000cc400 20 6e 65 65 64 20 74 6f 20 62 65 20 70 61 73 73 | need to be pass| 000cc410 65 64 20 61 20 77 69 6d 70 20 65 76 65 6e 74 2c |ed a wimp event,| 000cc420 0a 73 69 6d 70 6c 79 20 61 20 74 61 73 6b 20 68 |.simply a task h| 000cc430 61 6e 64 6c 65 20 27 74 61 73 6b 27 20 74 6f 20 |andle 'task' to | 000cc440 70 61 73 73 20 64 61 74 61 20 74 6f 2e 00 00 00 |pass data to....| 000cc450 44 41 54 41 a7 00 00 00 78 66 65 72 73 65 6e 64 |DATA....xfersend| 000cc460 5f 70 72 69 6e 74 46 61 69 6c 65 64 0a 54 68 69 |_printFailed.Thi| 000cc470 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69 6e |s macro is defin| 000cc480 65 64 20 62 79 20 3c 78 66 65 72 73 65 6e 64 2e |ed by <xfersend.| 000cc490 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 3e 20 61 |h=>xfersend_h> a| 000cc4a0 73 20 61 20 76 61 6c 75 65 0a 73 69 67 6e 69 66 |s a value.signif| 000cc4b0 79 69 6e 67 20 74 68 61 74 20 61 6e 20 65 72 72 |ying that an err| 000cc4c0 6f 72 20 6f 63 63 75 72 72 65 64 20 77 68 69 6c |or occurred whil| 000cc4d0 65 20 74 72 79 69 6e 67 0a 74 6f 20 70 72 69 6e |e trying.to prin| 000cc4e0 74 2e 20 49 74 20 69 73 20 64 65 66 69 6e 65 64 |t. It is defined| 000cc4f0 20 61 73 20 2d 32 2e 00 44 41 54 41 9c 00 00 00 | as -2..DATA....| 000cc500 78 66 65 72 73 65 6e 64 5f 70 72 69 6e 74 50 72 |xfersend_printPr| 000cc510 69 6e 74 65 64 0a 54 68 69 73 20 6d 61 63 72 6f |inted.This macro| 000cc520 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 3c | is defined by <| 000cc530 78 66 65 72 73 65 6e 64 2e 68 3d 3e 78 66 65 72 |xfersend.h=>xfer| 000cc540 73 65 6e 64 5f 68 3e 20 61 73 20 61 20 76 61 6c |send_h> as a val| 000cc550 75 65 0a 73 69 67 6e 69 66 79 69 6e 67 20 74 68 |ue.signifying th| 000cc560 61 74 20 61 20 66 69 6c 65 20 77 61 73 20 70 72 |at a file was pr| 000cc570 69 6e 74 65 64 20 64 69 72 65 63 74 6c 79 2e 20 |inted directly. | 000cc580 49 74 0a 69 73 20 64 65 66 69 6e 65 64 20 61 73 |It.is defined as| 000cc590 20 2d 31 2e 44 41 54 41 e9 01 00 00 78 66 65 72 | -1.DATA....xfer| 000cc5a0 73 65 6e 64 5f 70 72 69 6e 74 70 72 6f 63 0a 54 |send_printproc.T| 000cc5b0 68 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 |his type is defi| 000cc5c0 6e 65 64 20 69 6e 20 3c 78 66 65 72 73 65 6e 64 |ned in <xfersend| 000cc5d0 2e 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 3e 2e |.h=>xfersend_h>.| 000cc5e0 20 49 74 20 69 73 20 61 0a 66 75 6e 63 74 69 6f | It is a.functio| 000cc5f0 6e 20 75 73 65 64 20 74 6f 20 70 72 69 6e 74 20 |n used to print | 000cc600 61 20 66 69 6c 65 2e 20 54 68 65 20 66 75 6e 63 |a file. The func| 000cc610 74 69 6f 6e 20 68 61 73 0a 74 68 65 20 66 6f 72 |tion has.the for| 000cc620 6d 3a 0a 0a 20 20 69 6e 74 20 6d 79 66 75 6e 63 |m:.. int myfunc| 000cc630 20 28 63 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 | (char *filename| 000cc640 2c 20 76 6f 69 64 20 2a 68 61 6e 64 6c 65 29 3b |, void *handle);| 000cc650 0a 0a 27 68 61 6e 64 6c 65 27 20 69 73 20 74 68 |..'handle' is th| 000cc660 65 20 68 61 6e 64 6c 65 20 70 61 73 73 65 64 20 |e handle passed | 000cc670 74 6f 20 3c 78 66 65 72 73 65 6e 64 3e 0a 65 61 |to <xfersend>.ea| 000cc680 72 6c 69 65 72 2e 20 54 68 65 20 66 75 6e 63 74 |rlier. The funct| 000cc690 69 6f 6e 20 73 68 6f 75 6c 64 20 65 69 74 68 65 |ion should eithe| 000cc6a0 72 20 70 72 69 6e 74 20 74 68 65 0a 66 69 6c 65 |r print the.file| 000cc6b0 20 64 69 72 65 63 74 6c 79 2c 20 6f 72 20 73 61 | directly, or sa| 000cc6c0 76 65 20 69 74 20 69 6e 74 6f 20 74 68 65 20 67 |ve it into the g| 000cc6d0 69 76 65 6e 0a 66 69 6c 65 6e 61 6d 65 20 66 72 |iven.filename fr| 000cc6e0 6f 6d 20 77 68 65 72 65 20 74 68 65 20 70 72 69 |om where the pri| 000cc6f0 6e 74 65 72 20 64 72 69 76 65 72 20 77 69 6c 6c |nter driver will| 000cc700 0a 70 72 69 6e 74 20 69 74 2e 20 49 74 20 73 68 |.print it. It sh| 000cc710 6f 75 6c 64 20 72 65 74 75 72 6e 20 65 69 74 68 |ould return eith| 000cc720 65 72 20 74 68 65 20 66 69 6c 65 20 74 79 70 65 |er the file type| 000cc730 0a 73 61 76 65 64 20 28 69 66 20 69 74 20 77 61 |.saved (if it wa| 000cc740 73 20 73 61 76 65 64 29 2c 20 3c 78 66 65 72 73 |s saved), <xfers| 000cc750 65 6e 64 5f 70 72 69 6e 74 50 72 69 6e 74 65 64 |end_printPrinted| 000cc760 3e 2c 0a 6f 72 20 3c 78 66 65 72 73 65 6e 64 5f |>,.or <xfersend_| 000cc770 70 72 69 6e 74 46 61 69 6c 65 64 3e 2e 00 00 00 |printFailed>....| 000cc780 44 41 54 41 60 01 00 00 78 66 65 72 73 65 6e 64 |DATA`...xfersend| 000cc790 5f 72 65 61 64 5f 6c 61 73 74 5f 72 65 66 0a 53 |_read_last_ref.S| 000cc7a0 79 6e 74 61 78 3a 20 20 69 6e 74 20 78 66 65 72 |yntax: int xfer| 000cc7b0 73 65 6e 64 5f 72 65 61 64 5f 6c 61 73 74 5f 72 |send_read_last_r| 000cc7c0 65 66 20 28 76 6f 69 64 29 3b 0a 48 65 61 64 65 |ef (void);.Heade| 000cc7d0 72 3a 20 20 3c 78 66 65 72 73 65 6e 64 2e 68 3d |r: <xfersend.h=| 000cc7e0 3e 78 66 65 72 73 65 6e 64 5f 68 3e 0a 0a 52 65 |>xfersend_h>..Re| 000cc7f0 74 75 72 6e 73 3a 20 6d 79 5f 72 65 66 20 76 61 |turns: my_ref va| 000cc800 6c 75 65 20 6f 66 20 6c 61 73 74 20 6d 65 73 73 |lue of last mess| 000cc810 61 67 65 20 73 65 6e 74 2e 0a 0a 54 68 65 20 6d |age sent...The m| 000cc820 79 5f 72 65 66 20 76 61 6c 75 65 20 69 73 20 6e |y_ref value is n| 000cc830 65 65 64 65 64 20 66 6f 72 20 75 6e 73 61 66 65 |eeded for unsafe| 000cc840 20 66 69 6c 65 73 2e 20 49 66 0a 74 68 65 79 20 | files. If.they | 000cc850 61 72 65 20 6d 61 64 65 20 73 61 66 65 2c 20 79 |are made safe, y| 000cc860 6f 75 20 61 72 65 20 73 65 6e 64 20 61 20 44 61 |ou are send a Da| 000cc870 74 61 53 61 76 65 64 0a 6d 65 73 73 61 67 65 20 |taSaved.message | 000cc880 77 69 74 68 20 74 68 65 20 72 65 66 65 72 65 6e |with the referen| 000cc890 63 65 20 28 6f 66 20 63 6f 75 72 73 65 2c 20 74 |ce (of course, t| 000cc8a0 68 69 73 20 69 73 0a 69 72 72 65 6c 65 76 61 6e |his is.irrelevan| 000cc8b0 74 20 69 66 20 79 6f 75 20 61 70 70 20 6d 6f 64 |t if you app mod| 000cc8c0 69 66 69 65 73 20 74 68 65 20 64 61 74 61 20 61 |ifies the data a| 000cc8d0 66 74 65 72 0a 73 61 76 69 6e 67 2e 2e 2e 29 2e |fter.saving...).| 000cc8e0 44 41 54 41 bd 01 00 00 78 66 65 72 73 65 6e 64 |DATA....xfersend| 000cc8f0 5f 73 61 76 65 70 72 6f 63 0a 54 68 69 73 20 74 |_saveproc.This t| 000cc900 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000cc910 6e 20 3c 78 66 65 72 73 65 6e 64 2e 68 3d 3e 78 |n <xfersend.h=>x| 000cc920 66 65 72 73 65 6e 64 5f 68 3e 20 61 6e 64 20 3c |fersend_h> and <| 000cc930 54 69 6d 73 4c 69 62 3a 58 66 65 72 53 65 6e 64 |TimsLib:XferSend| 000cc940 2e 68 3d 3e 58 66 65 72 53 65 6e 64 5f 54 4c 3e |.h=>XferSend_TL>| 000cc950 2e 20 49 74 20 69 73 20 61 20 66 75 6e 63 74 69 |. It is a functi| 000cc960 6f 6e 20 75 73 65 64 20 74 6f 20 73 61 76 65 20 |on used to save | 000cc970 64 61 74 61 20 74 6f 20 62 65 20 74 72 61 6e 73 |data to be trans| 000cc980 66 65 72 72 65 64 20 69 6e 74 6f 20 61 20 67 69 |ferred into a gi| 000cc990 76 65 6e 20 66 69 6c 65 2e 20 54 68 65 20 66 75 |ven file. The fu| 000cc9a0 6e 63 74 69 6f 6e 20 68 61 73 20 74 68 65 20 66 |nction has the f| 000cc9b0 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b 61 6c 69 |orm:..{fCode;ali| 000cc9c0 67 6e 20 63 65 6e 74 72 65 7d 3c 42 4f 4f 4c 3e |gn centre}<BOOL>| 000cc9d0 20 6d 79 66 75 6e 63 20 28 63 68 61 72 20 2a 66 | myfunc (char *f| 000cc9e0 69 6c 65 6e 61 6d 65 2c 20 76 6f 69 64 20 2a 68 |ilename, void *h| 000cc9f0 61 6e 64 6c 65 29 3b 7b 66 3b 61 6c 69 67 6e 7d |andle);{f;align}| 000cca00 0a 0a 2f 66 69 6c 65 6e 61 6d 65 2f 20 69 73 20 |../filename/ is | 000cca10 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 |the name of the | 000cca20 66 69 6c 65 20 74 6f 20 62 65 20 73 61 76 65 64 |file to be saved| 000cca30 2c 20 2f 68 61 6e 64 6c 65 2f 20 69 73 20 74 68 |, /handle/ is th| 000cca40 65 20 68 61 6e 64 6c 65 20 70 61 73 73 65 64 20 |e handle passed | 000cca50 74 6f 20 3c 78 66 65 72 73 65 6e 64 3e 20 65 61 |to <xfersend> ea| 000cca60 72 6c 69 65 72 2e 20 54 68 65 20 66 75 6e 63 74 |rlier. The funct| 000cca70 69 6f 6e 20 73 68 6f 75 6c 64 20 72 65 74 75 72 |ion should retur| 000cca80 6e 20 3c 54 52 55 45 3e 20 69 66 20 69 74 20 69 |n <TRUE> if it i| 000cca90 73 20 73 75 63 63 65 73 73 66 75 6c 2e 00 00 00 |s successful....| 000ccaa0 44 41 54 41 28 01 00 00 78 66 65 72 73 65 6e 64 |DATA(...xfersend| 000ccab0 5f 73 65 6e 64 62 75 66 0a 53 79 6e 74 61 78 3a |_sendbuf.Syntax:| 000ccac0 20 20 3c 42 4f 4f 4c 3e 20 78 66 65 72 73 65 6e | <BOOL> xfersen| 000ccad0 64 5f 73 65 6e 64 62 75 66 0a 20 20 20 20 20 20 |d_sendbuf. | 000ccae0 20 20 20 28 63 68 61 72 20 2a 62 75 66 66 65 72 | (char *buffer| 000ccaf0 2c 20 69 6e 74 20 73 69 7a 65 29 3b 0a 48 65 61 |, int size);.Hea| 000ccb00 64 65 72 3a 20 20 3c 78 66 65 72 73 65 6e 64 2e |der: <xfersend.| 000ccb10 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 3e 0a 0a |h=>xfersend_h>..| 000ccb20 52 65 74 75 72 6e 73 3a 20 3c 54 52 55 45 3e 20 |Returns: <TRUE> | 000ccb30 69 66 20 73 75 63 63 65 73 73 66 75 6c 2e 0a 0a |if successful...| 000ccb40 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 |This function se| 000ccb50 6e 64 73 20 74 68 65 20 62 75 66 66 65 72 20 77 |nds the buffer w| 000ccb60 68 6f 73 65 20 70 6f 69 6e 74 65 72 0a 61 6e 64 |hose pointer.and| 000ccb70 20 73 69 7a 65 20 61 72 65 20 67 69 76 65 6e 20 | size are given | 000ccb80 74 6f 20 61 20 72 65 63 65 69 76 65 72 2e 20 54 |to a receiver. T| 000ccb90 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 73 68 6f |his function.sho| 000ccba0 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 62 79 |uld be called by| 000ccbb0 20 61 6e 20 3c 78 66 65 72 73 65 6e 64 5f 73 65 | an <xfersend_se| 000ccbc0 6e 64 70 72 6f 63 3e 2e 44 41 54 41 a2 01 00 00 |ndproc>.DATA....| 000ccbd0 78 66 65 72 73 65 6e 64 5f 73 65 6e 64 70 72 6f |xfersend_sendpro| 000ccbe0 63 0a 54 68 69 73 20 74 79 70 65 20 69 73 20 64 |c.This type is d| 000ccbf0 65 66 69 6e 65 64 20 69 6e 20 3c 78 66 65 72 73 |efined in <xfers| 000ccc00 65 6e 64 2e 68 3d 3e 78 66 65 72 73 65 6e 64 5f |end.h=>xfersend_| 000ccc10 68 3e 2e 20 49 74 20 69 73 20 61 0a 66 75 6e 63 |h>. It is a.func| 000ccc20 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 73 65 6e |tion used to sen| 000ccc30 64 20 61 20 62 75 66 66 65 72 20 6f 66 20 64 61 |d a buffer of da| 000ccc40 74 61 2e 20 54 68 65 0a 66 75 6e 63 74 69 6f 6e |ta. The.function| 000ccc50 20 68 61 73 20 74 68 65 20 66 6f 72 6d 3a 0a 0a | has the form:..| 000ccc60 20 20 3c 42 4f 4f 4c 3e 20 6d 79 66 75 6e 63 20 | <BOOL> myfunc | 000ccc70 28 76 6f 69 64 20 2a 68 61 6e 64 6c 65 2c 20 69 |(void *handle, i| 000ccc80 6e 74 20 2a 6d 61 78 62 75 66 29 3b 0a 0a 27 68 |nt *maxbuf);..'h| 000ccc90 61 6e 64 6c 65 27 20 69 73 20 74 68 65 20 68 61 |andle' is the ha| 000ccca0 6e 64 6c 65 20 70 61 73 73 65 64 20 74 6f 20 3c |ndle passed to <| 000cccb0 78 66 65 72 73 65 6e 64 3e 0a 65 61 72 6c 69 65 |xfersend>.earlie| 000cccc0 72 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 |r. The function | 000cccd0 73 68 6f 75 6c 64 20 63 61 6c 6c 0a 3c 78 66 65 |should call.<xfe| 000ccce0 72 73 65 6e 64 5f 73 65 6e 64 62 75 66 3e 20 74 |rsend_sendbuf> t| 000cccf0 6f 20 73 65 6e 64 20 6f 6e 65 20 62 75 66 66 65 |o send one buffe| 000ccd00 72 2d 66 75 6c 6c 20 6f 66 0a 64 61 74 61 20 6e |r-full of.data n| 000ccd10 6f 20 62 69 67 67 65 72 20 74 68 61 6e 20 27 2a |o bigger than '*| 000ccd20 6d 61 78 62 75 66 27 2e 20 49 74 20 73 68 6f 75 |maxbuf'. It shou| 000ccd30 6c 64 20 72 65 74 75 72 6e 0a 3c 54 52 55 45 3e |ld return.<TRUE>| 000ccd40 20 69 66 20 74 68 65 20 64 61 74 61 20 77 61 73 | if the data was| 000ccd50 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 74 72 | successfully tr| 000ccd60 61 6e 73 6d 69 74 74 65 64 2e 00 00 44 41 54 41 |ansmitted...DATA| 000ccd70 f3 00 00 00 78 66 65 72 73 65 6e 64 5f 73 65 74 |....xfersend_set| 000ccd80 5f 66 69 6c 65 69 73 73 61 66 65 0a 53 79 6e 74 |_fileissafe.Synt| 000ccd90 61 78 3a 20 20 76 6f 69 64 20 78 66 65 72 73 65 |ax: void xferse| 000ccda0 6e 64 5f 73 65 74 5f 66 69 6c 65 69 73 73 61 66 |nd_set_fileissaf| 000ccdb0 65 20 28 3c 42 4f 4f 4c 3e 20 73 66 29 3b 0a 48 |e (<BOOL> sf);.H| 000ccdc0 65 61 64 65 72 3a 20 20 3c 78 66 65 72 73 65 6e |eader: <xfersen| 000ccdd0 64 2e 68 3d 3e 78 66 65 72 73 65 6e 64 5f 68 3e |d.h=>xfersend_h>| 000ccde0 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 |..This function | 000ccdf0 73 65 74 73 20 77 68 65 74 68 65 72 20 61 20 66 |sets whether a f| 000cce00 69 6c 65 27 73 20 6e 61 6d 65 20 77 69 6c 6c 0a |ile's name will.| 000cce10 72 65 6d 61 69 6e 20 75 6e 63 68 61 6e 67 65 64 |remain unchanged| 000cce20 20 64 75 72 69 6e 67 20 64 61 74 61 20 74 72 61 | during data tra| 000cce30 6e 73 66 65 72 2e 20 49 66 20 27 73 66 27 0a 69 |nsfer. If 'sf'.i| 000cce40 73 20 3c 54 52 55 45 3e 20 74 68 65 6e 20 74 68 |s <TRUE> then th| 000cce50 65 20 66 69 6c 65 20 69 73 20 73 61 66 65 2e 00 |e file is safe..| 000cce60 44 41 54 41 aa 00 00 00 54 69 6d 73 4c 69 62 3a |DATA....TimsLib:| 000cce70 58 66 65 72 53 65 6e 64 2e 68 0a 54 68 69 73 20 |XferSend.h.This | 000cce80 68 65 61 64 65 72 20 64 65 63 6c 61 72 65 73 20 |header declares | 000cce90 61 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 67 |a function for g| 000ccea0 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 65 |eneral purpose e| 000cceb0 78 70 6f 72 74 20 6f 66 20 64 61 74 61 20 62 79 |xport of data by| 000ccec0 20 61 6e 20 69 63 6f 6e 20 64 72 61 67 2e 0a 0a | an icon drag...| 000cced0 46 75 6e 63 74 69 6f 6e 3a 09 3c 58 66 65 72 53 |Function:.<XferS| 000ccee0 65 6e 64 3d 3e 58 66 65 72 53 65 6e 64 5f 3e 0a |end=>XferSend_>.| 000ccef0 0a 54 79 70 65 3a 09 3c 78 66 65 72 73 65 6e 64 |.Type:.<xfersend| 000ccf00 5f 73 61 76 65 70 72 6f 63 3e 00 00 44 49 52 24 |_saveproc>..DIR$| 000ccf10 98 00 00 00 98 00 00 00 a4 cf 0c 00 46 ff ff ff |............F...| 000ccf20 4a 65 b5 22 b3 00 00 00 13 00 00 00 00 00 00 00 |Je."............| 000ccf30 31 31 30 00 58 d0 0c 00 46 ff ff ff 4f 65 b5 22 |110.X...F...Oe."| 000ccf40 83 00 00 00 13 00 00 00 00 00 00 00 31 32 30 00 |............120.| 000ccf50 dc d0 0c 00 46 ff ff ff 5b 65 b5 22 89 01 00 00 |....F...[e."....| 000ccf60 13 00 00 00 00 00 00 00 31 32 35 00 68 d2 0c 00 |........125.h...| 000ccf70 46 ff ff ff 66 65 b5 22 a4 00 00 00 13 00 00 00 |F...fe."........| 000ccf80 00 00 00 00 31 33 30 00 0c d3 0c 00 46 ff ff ff |....130.....F...| 000ccf90 eb cc b3 25 e1 00 00 00 13 00 00 00 00 00 00 00 |...%............| 000ccfa0 32 30 30 00 44 41 54 41 b3 00 00 00 43 68 61 6e |200.DATA....Chan| 000ccfb0 67 65 73 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e |ges from version| 000ccfc0 20 31 2e 30 30 20 2d 3e 20 31 2e 31 30 0a 8f 20 | 1.00 -> 1.10.. | 000ccfd0 48 65 6c 70 20 66 6f 72 20 3c 54 69 6d 73 4c 69 |Help for <TimsLi| 000ccfe0 62 3d 3e 72 6f 5f 74 6c 69 62 5f 3e 20 6e 6f 77 |b=>ro_tlib_> now| 000ccff0 20 61 64 64 65 64 2e 0a 0a 8f 20 56 65 72 73 69 | added.... Versi| 000cd000 6f 6e 20 6e 75 6d 62 65 72 73 20 61 64 64 65 64 |on numbers added| 000cd010 20 74 6f 20 3c 44 65 73 6b 4c 69 62 3d 3e 72 6f | to <DeskLib=>ro| 000cd020 5f 64 6c 69 62 5f 3e 20 68 65 6c 70 2e 0a 0a 8f |_dlib_> help....| 000cd030 20 48 65 6c 70 20 61 64 64 65 64 20 66 6f 72 20 | Help added for | 000cd040 3c 44 65 73 6b 4c 69 62 3a 50 61 6e 65 2e 68 3d |<DeskLib:Pane.h=| 000cd050 3e 50 61 6e 65 3e 2e 00 44 41 54 41 83 00 00 00 |>Pane>..DATA....| 000cd060 43 68 61 6e 67 65 73 20 66 72 6f 6d 20 76 65 72 |Changes from ver| 000cd070 73 69 6f 6e 20 31 2e 31 30 20 2d 3e 20 31 2e 32 |sion 1.10 -> 1.2| 000cd080 30 0a 8f 20 48 65 6c 70 20 66 6f 72 20 44 65 73 |0.. Help for Des| 000cd090 6b 4c 69 62 20 75 70 64 61 74 65 64 20 74 6f 20 |kLib updated to | 000cd0a0 76 65 72 73 69 6f 6e 20 32 2e 31 30 0a 0a 20 20 |version 2.10.. | 000cd0b0 20 20 3c 43 68 61 6e 67 65 73 20 66 72 6f 6d 20 | <Changes from | 000cd0c0 76 65 72 73 69 6f 6e 20 31 2e 30 30 20 2d 5c 3e |version 1.00 -\>| 000cd0d0 20 31 2e 31 30 3d 3e 31 31 30 3e 00 44 41 54 41 | 1.10=>110>.DATA| 000cd0e0 89 01 00 00 43 68 61 6e 67 65 73 20 66 72 6f 6d |....Changes from| 000cd0f0 20 76 65 72 73 69 6f 6e 20 31 2e 32 30 20 2d 3e | version 1.20 ->| 000cd100 20 31 2e 32 35 0a 56 61 72 69 6f 75 73 20 63 68 | 1.25.Various ch| 000cd110 61 6e 67 65 73 20 61 74 20 74 68 65 20 72 65 71 |anges at the req| 000cd120 75 65 73 74 20 6f 66 20 53 74 61 6c 6c 69 6f 6e |uest of Stallion| 000cd130 3a 0a 0a 8f 20 48 65 6c 70 20 61 64 64 65 64 20 |:... Help added | 000cd140 66 6f 72 20 3c 66 6c 6f 61 74 2e 68 3d 3e 66 6c |for <float.h=>fl| 000cd150 6f 61 74 3e 0a 8f 20 48 65 6c 70 20 61 64 64 65 |oat>.. Help adde| 000cd160 64 20 66 6f 72 20 3c 6c 6f 63 61 6c 65 2e 68 3d |d for <locale.h=| 000cd170 3e 6c 6f 63 61 6c 65 3e 0a 8f 20 48 65 6c 70 20 |>locale>.. Help | 000cd180 61 64 64 65 64 20 66 6f 72 20 3c 73 69 67 6e 61 |added for <signa| 000cd190 6c 2e 68 3d 3e 73 69 67 6e 61 6c 3e 0a 8f 20 41 |l.h=>signal>.. A| 000cd1a0 75 74 68 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f |uthor informatio| 000cd1b0 6e 20 72 65 6d 6f 76 65 64 0a 8f 20 43 6f 6d 6d |n removed.. Comm| 000cd1c0 65 6e 74 73 20 6f 6e 20 44 65 73 6b 74 6f 70 20 |ents on Desktop | 000cd1d0 43 20 72 65 6d 6f 76 65 64 0a 0a 4f 74 68 65 72 |C removed..Other| 000cd1e0 20 63 68 61 6e 67 65 73 3a 0a 0a 8f 20 43 6f 6d | changes:... Com| 000cd1f0 6d 65 6e 74 20 61 62 6f 75 74 20 6f 62 73 6f 6c |ment about obsol| 000cd200 65 73 63 65 6e 63 65 20 6f 66 20 54 69 6d 73 4c |escence of TimsL| 000cd210 69 62 20 61 64 64 65 64 0a 8f 20 56 61 72 69 6f |ib added.. Vario| 000cd220 75 73 20 61 64 64 69 74 69 6f 6e 73 20 74 6f 20 |us additions to | 000cd230 68 65 6c 70 0a 0a 20 20 20 20 20 20 3c 43 68 61 |help.. <Cha| 000cd240 6e 67 65 73 20 66 72 6f 6d 20 76 65 72 73 69 6f |nges from versio| 000cd250 6e 20 31 2e 31 30 20 2d 5c 3e 20 31 2e 32 30 3d |n 1.10 -\> 1.20=| 000cd260 3e 31 32 30 3e 00 00 00 44 41 54 41 a4 00 00 00 |>120>...DATA....| 000cd270 43 68 61 6e 67 65 73 20 66 72 6f 6d 20 76 65 72 |Changes from ver| 000cd280 73 69 6f 6e 20 31 2e 32 35 20 2d 3e 20 31 2e 33 |sion 1.25 -> 1.3| 000cd290 30 0a 4e 6f 20 6c 6f 6e 67 65 72 20 62 65 69 6e |0.No longer bein| 000cd2a0 67 20 73 6f 6c 64 20 62 79 20 53 74 61 6c 6c 69 |g sold by Stalli| 000cd2b0 6f 6e 20 53 6f 66 74 77 61 72 65 2e 0a 0a 8f 20 |on Software.... | 000cd2c0 4d 61 65 6c 73 74 72 6f 6d 20 53 6f 66 74 77 61 |Maelstrom Softwa| 000cd2d0 72 65 20 69 6e 66 6f 20 61 64 64 65 64 2e 0a 0a |re info added...| 000cd2e0 20 20 20 3c 43 68 61 6e 67 65 73 20 66 72 6f 6d | <Changes from| 000cd2f0 20 76 65 72 73 69 6f 6e 20 31 2e 32 30 20 2d 5c | version 1.20 -\| 000cd300 3e 20 31 2e 32 35 3d 3e 31 32 35 3e 44 41 54 41 |> 1.25=>125>DATA| 000cd310 e1 00 00 00 43 68 61 6e 67 65 73 20 66 72 6f 6d |....Changes from| 000cd320 20 76 65 72 73 69 6f 6e 20 31 2e 33 30 20 2d 3e | version 1.30 ->| 000cd330 20 32 2e 30 30 0a 23 77 72 61 70 20 6f 66 66 0a | 2.00.#wrap off.| 000cd340 8f 20 4e 6f 77 20 75 70 67 72 61 64 65 64 20 74 |. Now upgraded t| 000cd350 6f 20 53 74 72 6f 6e 67 48 65 6c 70 20 32 20 66 |o StrongHelp 2 f| 000cd360 6f 72 6d 61 74 0a 8f 20 48 65 6c 70 20 66 6f 72 |ormat.. Help for| 000cd370 20 44 65 73 6b 4c 69 62 20 75 70 64 61 74 65 64 | DeskLib updated| 000cd380 20 74 6f 20 76 65 72 73 69 6f 6e 20 32 2e 31 36 | to version 2.16| 000cd390 0a 8f 20 4c 6f 74 73 20 6f 66 20 63 6f 72 72 65 |.. Lots of corre| 000cd3a0 63 74 69 6f 6e 73 20 61 6e 64 20 61 64 64 69 74 |ctions and addit| 000cd3b0 69 6f 6e 73 0a 0a 23 61 6c 69 67 6e 20 63 65 6e |ions..#align cen| 000cd3c0 74 72 65 0a 3c 43 68 61 6e 67 65 73 20 66 72 6f |tre.<Changes fro| 000cd3d0 6d 20 76 65 72 73 69 6f 6e 20 31 2e 32 35 20 2d |m version 1.25 -| 000cd3e0 5c 3e 20 31 2e 33 30 3d 3e 31 33 30 3e 00 00 00 |\> 1.30=>130>...| 000cd3f0 44 41 54 41 43 00 00 00 23 43 6f 6d 6d 61 6e 64 |DATAC...#Command| 000cd400 73 0a 42 61 63 6b 67 72 6f 75 6e 64 20 57 69 6d |s.Background Wim| 000cd410 70 20 31 0a 53 70 72 69 74 65 66 69 6c 65 20 53 |p 1.Spritefile S| 000cd420 70 72 69 74 65 73 32 32 0a 66 53 74 64 0a 23 45 |prites22.fStd.#E| 000cd430 6e 64 0a 00 44 41 54 41 5d 02 00 00 73 61 76 65 |nd..DATA]...save| 000cd440 5f 72 61 6d 73 61 76 65 72 0a 54 68 69 73 20 74 |_ramsaver.This t| 000cd450 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 69 |ype is defined i| 000cd460 6e 20 3c 44 65 73 6b 4c 69 62 3a 53 61 76 65 2e |n <DeskLib:Save.| 000cd470 68 3d 3e 53 61 76 65 3e 2e 20 49 74 20 64 65 66 |h=>Save>. It def| 000cd480 69 6e 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 |ines a function | 000cd490 74 79 70 65 20 75 73 65 64 20 66 6f 72 20 73 61 |type used for sa| 000cd4a0 76 69 6e 67 20 64 61 74 61 2e 20 54 68 65 20 66 |ving data. The f| 000cd4b0 75 6e 63 74 69 6f 6e 20 69 73 20 6f 66 20 74 68 |unction is of th| 000cd4c0 65 20 66 6f 72 6d 3a 0a 0a 7b 66 43 6f 64 65 3b |e form:..{fCode;| 000cd4d0 61 6c 69 67 6e 20 63 65 6e 74 72 65 7d 69 6e 74 |align centre}int| 000cd4e0 20 6d 79 66 75 6e 63 20 28 3c 74 61 73 6b 5f 68 | myfunc (<task_h| 000cd4f0 61 6e 64 6c 65 3e 20 73 6f 75 72 63 65 2c 20 76 |andle> source, v| 000cd500 6f 69 64 20 2a 72 65 66 2c 20 74 61 73 6b 5f 68 |oid *ref, task_h| 000cd510 61 6e 64 6c 65 20 64 65 73 74 69 6e 2c 20 76 6f |andle destin, vo| 000cd520 69 64 20 2a 62 75 66 2c 20 75 6e 73 69 67 6e 65 |id *buf, unsigne| 000cd530 64 20 69 6e 74 20 73 69 7a 65 2c 20 69 6e 74 20 |d int size, int | 000cd540 63 6f 75 6e 74 29 3b 7b 66 3b 61 6c 69 67 6e 7d |count);{f;align}| 000cd550 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 |..The function s| 000cd560 68 6f 75 6c 64 20 75 73 65 20 3c 57 69 6d 70 5f |hould use <Wimp_| 000cd570 54 72 61 6e 73 66 65 72 42 6c 6f 63 6b 3e 20 74 |TransferBlock> t| 000cd580 6f 20 74 72 61 6e 73 66 65 72 20 64 61 74 61 20 |o transfer data | 000cd590 74 6f 20 2f 62 75 66 2f 20 69 6e 20 74 68 65 20 |to /buf/ in the | 000cd5a0 74 61 73 6b 20 2f 64 65 73 74 69 6e 2f 2e 20 2f |task /destin/. /| 000cd5b0 73 69 7a 65 2f 20 67 69 76 65 73 20 74 68 65 20 |size/ gives the | 000cd5c0 73 69 7a 65 20 6f 66 20 2f 62 75 66 2f 20 69 65 |size of /buf/ ie| 000cd5d0 20 74 68 65 20 61 6d 6f 75 6e 74 20 74 6f 20 74 | the amount to t| 000cd5e0 72 61 6e 73 66 65 72 20 61 6e 64 20 2f 63 6f 75 |ransfer and /cou| 000cd5f0 6e 74 2f 20 69 73 20 74 68 65 20 61 6d 6f 75 6e |nt/ is the amoun| 000cd600 74 20 74 72 61 6e 73 66 65 72 72 65 64 20 73 6f |t transferred so| 000cd610 20 66 61 72 2e 20 2f 73 6f 75 72 63 65 2f 20 69 | far. /source/ i| 000cd620 73 20 79 6f 75 72 20 74 61 73 6b 20 68 61 6e 64 |s your task hand| 000cd630 6c 65 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e |le. The function| 000cd640 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 74 | should return t| 000cd650 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 |he number of byt| 000cd660 65 73 20 74 72 61 6e 73 66 65 72 72 65 64 2c 20 |es transferred, | 000cd670 6f 72 20 6e 65 67 61 74 69 76 65 20 69 66 20 61 |or negative if a| 000cd680 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 |n error occurred| 000cd690 2e 00 00 00 46 52 45 45 56 02 00 00 80 73 08 00 |....FREEV....s..| 000cd6a0 5f 49 6e 69 74 53 61 76 65 57 69 6e 64 6f 77 48 |_InitSaveWindowH| 000cd6b0 61 6e 64 6c 65 72 0a 53 79 6e 74 61 78 3a 09 3c |andler.Syntax:.<| 000cd6c0 73 61 76 65 5f 73 61 76 65 62 6c 6f 63 6b 3e 20 |save_saveblock> | 000cd6d0 2a 53 61 76 65 5f 49 6e 69 74 53 61 76 65 57 69 |*Save_InitSaveWi| 000cd6e0 6e 64 6f 77 48 61 6e 64 6c 65 72 20 28 3c 77 69 |ndowHandler (<wi| 000cd6f0 6e 64 6f 77 5f 68 61 6e 64 6c 65 3e 20 77 2c 20 |ndow_handle> w, | 000cd700 3c 42 4f 4f 4c 3e 20 69 73 5f 6d 65 6e 75 2c 20 |<BOOL> is_menu, | 000cd710 42 4f 4f 4c 20 69 73 5f 77 69 6e 2c 20 42 4f 4f |BOOL is_win, BOO| 000cd720 4c 20 72 65 6c 65 61 73 65 2c 20 3c 69 63 6f 6e |L release, <icon| 000cd730 5f 68 61 6e 64 6c 65 3e 20 64 72 61 67 2c 20 69 |_handle> drag, i| 000cd740 63 6f 6e 5f 68 61 6e 64 6c 65 20 6f 6b 2c 20 69 |con_handle ok, i| 000cd750 63 6f 6e 5f 68 61 6e 64 6c 65 20 63 61 6e 63 65 |con_handle cance| 000cd760 6c 2c 20 69 63 6f 6e 5f 68 61 6e 64 6c 65 20 6e |l, icon_handle n| 000cd770 61 6d 65 2c 20 3c 73 61 76 65 5f 66 69 6c 65 73 |ame, <save_files| 000cd780 61 76 65 72 3e 20 66 69 6c 65 73 61 76 65 2c 20 |aver> filesave, | 000cd790 3c 73 61 76 65 5f 72 61 6d 73 61 76 65 72 3e 20 |<save_ramsaver> | 000cd7a0 72 61 6d 73 61 76 65 2c 20 3c 73 61 76 65 5f 72 |ramsave, <save_r| 000cd7b0 65 73 75 6c 74 68 61 6e 64 6c 65 72 3e 20 72 65 |esulthandler> re| 000cd7c0 73 5f 68 61 6e 64 6c 65 2c 20 3c 73 69 7a 65 5f |s_handle, <size_| 000cd7d0 74 3e 20 65 73 74 73 69 7a 65 2c 20 76 6f 69 64 |t> estsize, void| 000cd7e0 20 2a 72 65 66 29 3b 0a 48 65 61 64 65 72 3a 09 | *ref);.Header:.| 000cd7f0 3c 44 65 73 6b 4c 69 62 3a 53 61 76 65 2e 68 3d |<DeskLib:Save.h=| 000cd800 3e 53 61 76 65 3e 0a 0a 52 65 74 75 72 6e 73 3a |>Save>..Returns:| 000cd810 09 50 6f 69 6e 74 65 72 20 74 6f 20 73 61 76 65 |.Pointer to save| 000cd820 20 62 6c 6f 63 6b 2e 0a 0a 54 68 69 73 20 66 75 | block...This fu| 000cd830 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 73 20 65 |nction handles e| 000cd840 76 65 72 79 74 68 69 6e 67 20 74 6f 20 64 6f 20 |verything to do | 000cd850 77 69 74 68 20 73 61 76 69 6e 67 2e 20 4f 6e 63 |with saving. Onc| 000cd860 65 20 79 6f 75 72 20 73 61 76 65 0a 77 69 6e 64 |e your save.wind| 000cd870 6f 77 20 69 73 20 63 72 65 61 74 65 64 20 61 6c |ow is created al| 000cd880 6c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 64 6f |l you need to do| 000cd890 20 69 73 20 63 61 6c 6c 20 74 68 69 73 20 77 69 | is call this wi| 000cd8a0 74 68 3a 0a 7b 74 61 62 7d 0a 8f 09 54 68 65 20 |th:.{tab}...The | 000cd8b0 77 69 6e 64 6f 77 20 68 61 6e 64 6c 65 20 6f 66 |window handle of| 000cd8c0 20 74 68 65 20 73 61 76 65 20 77 69 6e 64 6f 77 | the save window| 000cd8d0 0a 8f 09 49 66 20 74 68 65 20 73 61 76 65 20 77 |...If the save w| 000cd8e0 69 6e 64 6f 77 20 69 73 20 6f 44 41 54 41 ab 01 |indow is oDATA..| 000cd8f0 00 00 73 70 72 69 74 65 5f 69 6e 66 6f 0a 54 68 |..sprite_info.Th| 000cd900 69 73 20 74 79 70 65 20 69 73 20 64 65 66 69 6e |is type is defin| 000cd910 65 64 20 69 6e 20 3c 73 70 72 69 74 65 2e 68 3d |ed in <sprite.h=| 000cd920 3e 73 70 72 69 74 65 5f 68 3e 20 28 44 65 73 6b |>sprite_h> (Desk| 000cd930 74 6f 70 20 43 29 20 61 6e 64 20 3c 44 65 73 6b |top C) and <Desk| 000cd940 4c 69 62 3a 53 70 72 69 74 65 2e 68 3d 3e 53 70 |Lib:Sprite.h=>Sp| 000cd950 72 69 74 65 5f 44 4c 3e 2e 20 49 74 20 69 73 20 |rite_DL>. It is | 000cd960 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 66 |defined as the f| 000cd970 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 75 63 74 75 |ollowing structu| 000cd980 72 65 20 69 6e 20 44 65 73 6b 74 6f 70 20 43 3a |re in Desktop C:| 000cd990 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 20 20 |.. \{. | 000cd9a0 20 69 6e 74 20 77 69 64 74 68 3b 0a 20 20 20 20 | int width;. | 000cd9b0 20 20 20 20 69 6e 74 20 68 65 69 67 68 74 3b 0a | int height;.| 000cd9c0 20 20 20 20 20 20 20 20 69 6e 74 20 6d 61 73 6b | int mask| 000cd9d0 3b 0a 20 20 20 20 20 20 20 20 69 6e 74 20 6d 6f |;. int mo| 000cd9e0 64 65 3b 0a 20 20 20 20 7d 0a 0a 61 6e 64 20 74 |de;. }..and t| 000cd9f0 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 72 |he following str| 000cda00 75 63 74 75 72 65 20 69 6e 20 44 65 73 6b 4c 69 |ucture in DeskLi| 000cda10 62 3a 0a 0a 20 20 20 20 5c 7b 0a 20 20 20 20 20 |b:.. \{. | 000cda20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | unsigned int | 000cda30 77 69 64 74 68 3b 0a 20 20 20 20 20 20 20 20 75 |width;. u| 000cda40 6e 73 69 67 6e 65 64 20 69 6e 74 20 68 65 69 67 |nsigned int heig| 000cda50 68 74 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 69 |ht;. unsi| 000cda60 67 6e 65 64 20 69 6e 74 20 6d 61 73 6b 73 74 61 |gned int masksta| 000cda70 74 75 73 3b 0a 20 20 20 20 20 20 20 20 75 6e 73 |tus;. uns| 000cda80 69 67 6e 65 64 20 69 6e 74 20 6d 6f 64 65 3b 0a |igned int mode;.| 000cda90 20 20 20 20 7d 61 44 41 54 41 2a 01 00 00 66 77 | }aDATA*...fw| 000cdaa0 72 69 74 65 0a 53 79 6e 74 61 78 3a 09 3c 73 69 |rite.Syntax:.<si| 000cdab0 7a 65 5f 74 3e 20 66 77 72 69 74 65 20 28 76 6f |ze_t> fwrite (vo| 000cdac0 69 64 20 2a 70 74 72 2c 20 73 69 7a 65 5f 74 20 |id *ptr, size_t | 000cdad0 73 69 7a 65 2c 20 73 69 7a 65 5f 74 20 6e 6f 62 |size, size_t nob| 000cdae0 6a 2c 20 3c 46 49 4c 45 3e 20 2a 73 74 72 65 61 |j, <FILE> *strea| 000cdaf0 6d 29 3b 0a 48 65 61 64 65 72 3a 09 3c 73 74 64 |m);.Header:.<std| 000cdb00 69 6f 2e 68 3d 3e 73 74 64 69 6f 3e 0a 0a 52 65 |io.h=>stdio>..Re| 000cdb10 74 75 72 6e 73 3a 09 54 68 65 20 6e 75 6d 62 65 |turns:.The numbe| 000cdb20 72 20 6f 66 20 6f 62 6a 65 63 74 73 20 77 72 69 |r of objects wri| 000cdb30 74 74 65 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 |tten...This func| 000cdb40 74 69 6f 6e 20 77 72 69 74 65 73 20 2f 6e 6f 62 |tion writes /nob| 000cdb50 6a 2f 20 6f 62 6a 65 63 74 73 20 6f 66 20 73 69 |j/ objects of si| 000cdb60 7a 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 |ze specified by | 000cdb70 2f 73 69 7a 65 2f 20 66 72 6f 6d 20 74 68 65 20 |/size/ from the | 000cdb80 61 72 72 61 79 20 70 6f 69 6e 74 65 64 20 74 6f |array pointed to| 000cdb90 20 62 79 20 2f 70 74 72 2f 2c 20 69 6e 74 6f 20 | by /ptr/, into | 000cdba0 74 68 65 20 66 69 6c 65 20 70 6f 69 6e 74 65 64 |the file pointed| 000cdbb0 20 74 6f 20 62 79 20 2f 73 74 72 65 61 6d 2f 2e | to by /stream/.| 000cdbc0 65 2e 00 00 |e...| 000cdbc4