Home » Archimedes archive » Archimedes World » archimedes_world_volume_15_issue_2_scp.adf » !ARMEdit_ARMEdit » Docs/Code
Docs/Code
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » archimedes_world_volume_15_issue_2_scp.adf » !ARMEdit_ARMEdit |
Filename: | Docs/Code |
Read OK: | ✔ |
File size: | 405E bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
File : Code Date : 07-Dec-97 Author : � A.Thoukydides, 1995, 1996, 1997 Description : Description of the support for writing extra PC side utilities using the supplied files. INTRODUCTION The ARMEdit suite has been designed to allow other software to developers to add extra utilities to those supplied; all of the necessary files are included in the standard distribution. The PC side files were prepared using Borland Turbo C++ version 3.0 for DOS, but they use C linkage and should be compatible with other compilers. The source code is available on request if required for use with an incompatible compiler. Veneers to allow the ARMEdit SWIs to be called from C/C++ were assembled using Acorn ObjAsm version 3.06, and should be used in conjunction with Jonathan Coxhead's OSLib. FILES INCLUDED The following header files are included in this distribution for use on the PC side: ARMFILE.H High level routines for copying individual files between DOS and RISC OS. These perform the core of the GETFILE and PUTFILE utilities. They provide an easy way of transferring large amounts of data between the two environments. CLI.H Functions to call RISC OS *commands with different levels of input and output redirection. HPC.H An interface to Aleph One's High-level Procedure Call (HPC) system. This allows the routines described in the Docs.HPC file to be called directly. SVC.H A low level interface to the SVC calls supported by Acorn's software emulator. These are used by the HPC module but may be useful to other users. SWI.H This provides a single function to call a RISC OS SWI by name from the PC. This should not normally be used, because it is very inefficient, but is useful when prototyping code. TALK.H This is the main interface to the RISC OS services. It provides routines for performing generally useful functions, e.g. allocating and deallocating memory. UTIL.H A collection of useful utility functions that are used by the supplied utilities. These are also used internally by the WIMP module to handle error conditions. VDU.H Processing of VDU codes under DOS. This emulates the normal RISC OS treatment of a common subset of control codes. WIMP.H Functions to communicate with the "!ARMEdit" front-end using the messages described in the Docs.Talk file. All of the required object files to be linked with are included in a single library file: ARMEDIT.LIB The following header files are included for use under RISC OS: h.armeditswi C interface functions to all of the SWIs provided by the ARMEdit module. See Docs.Module for details of all the SWIs. A single object file is included containing the assembled veneers: o.armeditswi FUNCTIONS PROVIDED The following sections give brief descriptions of the functions provided in each header file. For more details read the comments in the header files themselves. The provided services should allow almost any operation to be performed. However, please get in touch if extra features would be useful - if they are sufficiently general they may get added in a future release of the ARMEdit module. ARMFILE.H armfile_copy_dos_riscos Copy a file from RISC OS to DOS. armfile_copy_riscos_dos Copy a file from DOS to RISC OS. armfile_translate_dos_riscos Convert a DOS filename into a RISC OS equivalent. This performs substitutions similar to those performed by DOSFS. armfile_translate_riscos_dos Convert a RISC OS filename into a DOS equivalent. This performs the opposite operation to armfile_translate_dos_riscos. armfile_temporary Generate the filename for a temporary RISC OS file, and ensure it is deleted before the program exits. armfile_create_dir Create a RISC OS directory. CLI.H cli_simple A simple *command interface. If output redirection is required then it is performed via a file. cli_redir A more comprehensive *command interface. Both input and ouput can be redirected to/from any DOS stream or file. Special action is taken if the streams correspond to the keyboard or screen. HPC.H hpc_message Execute a general HPC call. If HPC support is not provided by the PC front-end software then one of several substitute mechanisms is used, but they only work with the ARMEdit module. SVC.H svc_address Translate an 8086 address to an ARM address using SVC257 if Acorn's software emulator is being used. This must not be called on any other system. svc_swi Call a RISC OS SWI using SVC258 if Acorn's software emulator is being used. This must not be called on any other system. SWI.H swi_swi Call a specified RISC OS SWI by its name. As mentioned above this is a very inefficient operation to perform, so should normally only be used during development stages of new software. TALK.H talk_swi Call a RISC OS SWI by number. It should be remembered that the SWI can not read PC memory directly; the required data must be copied using the other functions provided in the talk module. talk_read Read a block of RISC OS memory. talk_write Write a block of RISC OS memory. talk_malloc Claimed the specified amount of RISC OS memory. The memory should be released using talk_free. However, it will automatically be freed when the PC card is either reset or quit; ensuring that all claimed memory is eventually deallocated even if the PC software terminates abnormally. talk_free Free a block of memory previously claimed using talk_malloc. talk_ext_to_filetype Convert a DOS file extension into a RISC OS filetype. This uses the list of mappings set by the DOSMap command. See Docs.Module for more details. talk_filetype_to_ext Convert a RISC OS filetype into a DOS file extension. This uses the list of mappings set by the DOSMap command. See Docs.Module for more details. talk_file_open Open a RISC OS file. It is possible to specify that the file should automatically be deleted when it is closed; useful for temporary files. The file should be closed using talk_file_close. However, it will automatically be closed when the PC card is either reset or quit; ensuring that all files are eventually closed (and deleted if required) even if the PC software terminates abnormally. talk_file_close Close a RISC OS file previously opened using talk_file_open. talk_file_read Read a block of memory from a RISC OS file. talk_file_write Write a block of memory to a RISC OS file. talk_comms_start Register a communications client. talk_comms_end Deregister a communications client. talk_comms_tx Transmit a message to another client. talk_comms_rx Receive a message from another client. talk_date_to_dos Convert a date and time from RISC OS to DOS format. talk_date_to_riscos Convert a date and time from DOS to RISC OS format. talk_oscli_start Start executing a RISC OS *command with both input and output redirected. talk_oscli_poll Continue the execution of a RISC OS *command. talk_oscli_end Terminate the execution of a RISC OS *command. talk_comms_reply Reply to a message from another client. talk_faster Disable multitasking for faster operations. talk_temporary Generate a unique filename for a temporary RISC OS file. UTIL.H util_arm_split Split a RISC OS path into a directory and leafname. util_wildcard Call a function for all DOS files that match a wildcarded specification. util_arm_wildcard Call a function for all RISC OS files that match a wildcarded specification. util_status Display a message replacing any previous one. A spinning activity indicator may also be shown. util_error Exit with an error message. This replaces any previously displayed message. util_retry Prompt the user to either Abort, Retry, or optionally Cancel an operation. util_prompt Prompt for a Y or N answer and return the result. VDU.H vdu_output_filter An output stream prefilter. This emulates RISC OS treatment of a common subset of control codes. WIMP.H wimp_find Send a message to obtain the current client handle of the "!ARMEdit" front-end application if it is running. wimp_find_receive Attempt to receive the reply to a wimp_find message. wimp_start Send the message to start an external edit. wimp_start_receive Attempt to receive the reply to a wimp_start message. wimp_poll Send the message to poll the status of an external edit. wimp_poll_receive Attempt to receive the reply to a wimp_poll message. wimp_saveas Send the message to save a file. wimp_saveas_receive Attempt to receive the reply to a wimp_saveas message. wimp_oscli_start Start executing a specified *command in a TaskWindow. wimp_oscli_start_receive Attempt to receive the reply to a wimp_oscli_start message. wimp_oscli_poll Continue execution of a *command in a TaskWindow. wimp_oscli_poll_receive Attempt to receive the reply to a wimp_oscli_poll message. wimp_oscli_end Terminate execution of a *command in a TaskWindow. wimp_oscli_end_receive Attempt to receive the reply to a wimp_oscli_end message. MESSAGE PASSING The ARMEdit module provides a general method for PC software to communicate with RISC OS applications or modules. The system is intentionally left simple; many aspects are left to users of the protocol to implement as required, e.g. detection and handling of problems, and the format and useage of different messages. The system allows multiple simultaneous clients, both under RISC OS and on the PC. This makes it suitable for use in multi-tasking (or task switching) environments such as Windows. Each client has a 4 byte ID which is preallocated (by me, on request) and a 4 byte dynamically allocated (by the ARMEdit module) handle. There are two special IDs: ID 0 is always used by PC software, and ID 1 is used to broadcast messages to all clients (this is explained in more detail below). Other IDs are allocated to different services being provided. If a program provides a number of distinct services, or if required for some other reason, it may have more than one ID. The range of IDs 2 to 255 may be freely used for development purposes, but must not be used by distributed software. When messages are sent to ID 1 they are passed to all clients which accept messages from the ARMEdit module (as specified when the clients register). This is normally only used for a few specific messages (described in the next section) which are useful to many clients. Other clients should not use this facility except under special circumstances. It is intended that each client provides a number of related services for a particular ID, but it is up to the authors of clients to decide how the message contents should be used. However, it is recommended that a service selector field is placed at the start of all messages. Each client has a message buffer (allocated by the ARMEdit module) used to transmit messages. This buffer is of a fixed size (1kB) and can only contain a single message. Attempting to send a message with one already in the buffer overwrites the earlier message, regardless of how many clients it has been delivered to. To enable easy implementation of servers supporting multiple clients, it is possible to place the message in the destination client's buffer. This should normally only be used by the server to reply to a message, otherwise a message could be overwritten. Large blocks of data should be transferred via files. This reduces the required memory usage and should speed up operations; to send a message from the PC to a WIMP task requires the PC front-end to be paged in and then the WIMP task to be subsequently paged in. However, transferring data to or from a file can all be done while the PC front-end is paged in. When a message is sent it is necessary to detect and handle non-delivery. Unfortunately it is not easy to detect problems since the sender and receiver cannot (generally) be active at the same time, and it is necessary for the PC front-end to be multi-tasking in a window for communication to be possible between PC and RISC OS tasks. The suggested approach is that after the message is sent, the program waits for a short time for a reply. If no reply is received then a message is displayed to the user prompting for the PC to be placed in multi-tasking mode and the relevant application to be started. The program should continue to poll for a reply until either successful or aborted by the user. This can be simplified in many situations to simply waiting for a reply or for the user to abort the operation, especially after one successful communication has occurred. If the PC front-end is either reset or quit then all registered PC clients are automatically deregistered, and any pending messages to or from them are discarded. STANDARD MESSAGES The following messages are sent by the ARMEdit module to clients which request them. All of the messages are sent from client ID 1. Any unrecognised messages should be ignored. Reset Equivalent of power-on reset. This should normally be used to reset any state. Offset Size Description 0 4 Reason code = 0. Shutdown The PC front-end is being quit (normal or error exit). Offset Size Description 0 4 Reason code = 1. LEGAL MATTERS The "ARMEdit" header files, object files and documentation are supplied "as is"; no warranty, express or implied, of the merchantability of this software or its fitness for any particular purpose is given. In no circumstances shall the author, or any provider or distributor of this software, be liable for any damage, loss of profits, or any indirect or consequential loss arising out of the use of this software or inability to use this software. These files are FreeWare. Permission is granted for anyone to use them for the sole purpose of developing software for use with the ARMEdit suite. Any such software may be freely distributed, providing that use of the supplied files is acknowledged in the documentation. However, the ARMEdit module may only be distibuted in accordance with the conditions contained in the ReadMe file enclosed in this distribution. THINGS TO DO The following are changes that may be made to the externally available services sometime in the future. None at the moment! VERSION HISTORY 0.00 (12-Nov-95) Original development version. 0.04 (16-Dec-95) First public development release. 0.05 (17-Dec-95) Improved filename translation. 0.07 (28-Dec-95) Added message passing protocol. 1.00 (12-Jan-96) First official release version. 1.01 (11-Mar-96) Version number updated to match the module. 1.02 (06-Aug-96) Linkage corrected for ARMFILE.H/.OBJ. Added date and time conversion routines. Placed the individual obect files in a library. Support for Acorn's software PC emulator included. Include *command interface. Provided mechanism for checking delivery of messages. 1.03 (21-Feb-97) Extended message passing to support replies. Included control over multitasking. Added ability to generate temporary filenames. Operation under Windows made more reliable. Included veneers to the ARMEdit SWIs. Added function to create a RISC OS directory. Header files reformatted to use spaces instead of tabs. 1.04 (07-Dec-97) Added ability to filter output from OSCLI functions. Included extra header files from the standard utilities.
00000000 46 69 6c 65 20 20 20 20 20 20 20 20 3a 20 43 6f |File : Co| 00000010 64 65 0a 44 61 74 65 20 20 20 20 20 20 20 20 3a |de.Date :| 00000020 20 30 37 2d 44 65 63 2d 39 37 0a 41 75 74 68 6f | 07-Dec-97.Autho| 00000030 72 20 20 20 20 20 20 3a 20 a9 20 41 2e 54 68 6f |r : . A.Tho| 00000040 75 6b 79 64 69 64 65 73 2c 20 31 39 39 35 2c 20 |ukydides, 1995, | 00000050 31 39 39 36 2c 20 31 39 39 37 0a 44 65 73 63 72 |1996, 1997.Descr| 00000060 69 70 74 69 6f 6e 20 3a 20 44 65 73 63 72 69 70 |iption : Descrip| 00000070 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 75 70 70 |tion of the supp| 00000080 6f 72 74 20 66 6f 72 20 77 72 69 74 69 6e 67 20 |ort for writing | 00000090 65 78 74 72 61 20 50 43 20 73 69 64 65 20 75 74 |extra PC side ut| 000000a0 69 6c 69 74 69 65 73 0a 20 20 20 20 20 20 20 20 |ilities. | 000000b0 20 20 20 20 20 20 75 73 69 6e 67 20 74 68 65 20 | using the | 000000c0 73 75 70 70 6c 69 65 64 20 66 69 6c 65 73 2e 0a |supplied files..| 000000d0 0a 0a 49 4e 54 52 4f 44 55 43 54 49 4f 4e 0a 0a |..INTRODUCTION..| 000000e0 54 68 65 20 41 52 4d 45 64 69 74 20 73 75 69 74 |The ARMEdit suit| 000000f0 65 20 68 61 73 20 62 65 65 6e 20 64 65 73 69 67 |e has been desig| 00000100 6e 65 64 20 74 6f 20 61 6c 6c 6f 77 20 6f 74 68 |ned to allow oth| 00000110 65 72 20 73 6f 66 74 77 61 72 65 20 74 6f 20 64 |er software to d| 00000120 65 76 65 6c 6f 70 65 72 73 20 74 6f 0a 61 64 64 |evelopers to.add| 00000130 20 65 78 74 72 61 20 75 74 69 6c 69 74 69 65 73 | extra utilities| 00000140 20 74 6f 20 74 68 6f 73 65 20 73 75 70 70 6c 69 | to those suppli| 00000150 65 64 3b 20 61 6c 6c 20 6f 66 20 74 68 65 20 6e |ed; all of the n| 00000160 65 63 65 73 73 61 72 79 20 66 69 6c 65 73 20 61 |ecessary files a| 00000170 72 65 0a 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 |re.included in t| 00000180 68 65 20 73 74 61 6e 64 61 72 64 20 64 69 73 74 |he standard dist| 00000190 72 69 62 75 74 69 6f 6e 2e 0a 0a 54 68 65 20 50 |ribution...The P| 000001a0 43 20 73 69 64 65 20 66 69 6c 65 73 20 77 65 72 |C side files wer| 000001b0 65 20 70 72 65 70 61 72 65 64 20 75 73 69 6e 67 |e prepared using| 000001c0 20 42 6f 72 6c 61 6e 64 20 54 75 72 62 6f 20 43 | Borland Turbo C| 000001d0 2b 2b 20 76 65 72 73 69 6f 6e 20 33 2e 30 20 66 |++ version 3.0 f| 000001e0 6f 72 20 44 4f 53 2c 0a 62 75 74 20 74 68 65 79 |or DOS,.but they| 000001f0 20 75 73 65 20 43 20 6c 69 6e 6b 61 67 65 20 61 | use C linkage a| 00000200 6e 64 20 73 68 6f 75 6c 64 20 62 65 20 63 6f 6d |nd should be com| 00000210 70 61 74 69 62 6c 65 20 77 69 74 68 20 6f 74 68 |patible with oth| 00000220 65 72 20 63 6f 6d 70 69 6c 65 72 73 2e 20 54 68 |er compilers. Th| 00000230 65 0a 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 |e.source code is| 00000240 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 72 65 | available on re| 00000250 71 75 65 73 74 20 69 66 20 72 65 71 75 69 72 65 |quest if require| 00000260 64 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 61 |d for use with a| 00000270 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 0a 63 |n incompatible.c| 00000280 6f 6d 70 69 6c 65 72 2e 20 56 65 6e 65 65 72 73 |ompiler. Veneers| 00000290 20 74 6f 20 61 6c 6c 6f 77 20 74 68 65 20 41 52 | to allow the AR| 000002a0 4d 45 64 69 74 20 53 57 49 73 20 74 6f 20 62 65 |MEdit SWIs to be| 000002b0 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 43 2f 43 | called from C/C| 000002c0 2b 2b 20 77 65 72 65 0a 61 73 73 65 6d 62 6c 65 |++ were.assemble| 000002d0 64 20 75 73 69 6e 67 20 41 63 6f 72 6e 20 4f 62 |d using Acorn Ob| 000002e0 6a 41 73 6d 20 76 65 72 73 69 6f 6e 20 33 2e 30 |jAsm version 3.0| 000002f0 36 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 62 65 |6, and should be| 00000300 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 | used in conjunc| 00000310 74 69 6f 6e 0a 77 69 74 68 20 4a 6f 6e 61 74 68 |tion.with Jonath| 00000320 61 6e 20 43 6f 78 68 65 61 64 27 73 20 4f 53 4c |an Coxhead's OSL| 00000330 69 62 2e 0a 0a 0a 46 49 4c 45 53 20 49 4e 43 4c |ib....FILES INCL| 00000340 55 44 45 44 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 |UDED..The follow| 00000350 69 6e 67 20 68 65 61 64 65 72 20 66 69 6c 65 73 |ing header files| 00000360 20 61 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e | are included in| 00000370 20 74 68 69 73 20 64 69 73 74 72 69 62 75 74 69 | this distributi| 00000380 6f 6e 20 66 6f 72 20 75 73 65 20 6f 6e 20 74 68 |on for use on th| 00000390 65 0a 50 43 20 73 69 64 65 3a 0a 0a 20 20 20 20 |e.PC side:.. | 000003a0 41 52 4d 46 49 4c 45 2e 48 20 20 20 48 69 67 68 |ARMFILE.H High| 000003b0 20 6c 65 76 65 6c 20 72 6f 75 74 69 6e 65 73 20 | level routines | 000003c0 66 6f 72 20 63 6f 70 79 69 6e 67 20 69 6e 64 69 |for copying indi| 000003d0 76 69 64 75 61 6c 20 66 69 6c 65 73 20 62 65 74 |vidual files bet| 000003e0 77 65 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 |ween. | 000003f0 20 20 20 20 20 44 4f 53 20 61 6e 64 20 52 49 53 | DOS and RIS| 00000400 43 20 4f 53 2e 20 54 68 65 73 65 20 70 65 72 66 |C OS. These perf| 00000410 6f 72 6d 20 74 68 65 20 63 6f 72 65 20 6f 66 20 |orm the core of | 00000420 74 68 65 20 47 45 54 46 49 4c 45 20 61 6e 64 0a |the GETFILE and.| 00000430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000440 50 55 54 46 49 4c 45 20 75 74 69 6c 69 74 69 65 |PUTFILE utilitie| 00000450 73 2e 20 54 68 65 79 20 70 72 6f 76 69 64 65 20 |s. They provide | 00000460 61 6e 20 65 61 73 79 20 77 61 79 20 6f 66 20 74 |an easy way of t| 00000470 72 61 6e 73 66 65 72 72 69 6e 67 0a 20 20 20 20 |ransferring. | 00000480 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 72 67 | larg| 00000490 65 20 61 6d 6f 75 6e 74 73 20 6f 66 20 64 61 74 |e amounts of dat| 000004a0 61 20 62 65 74 77 65 65 6e 20 74 68 65 20 74 77 |a between the tw| 000004b0 6f 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 2e 0a |o environments..| 000004c0 0a 20 20 20 20 43 4c 49 2e 48 20 20 20 20 20 20 |. CLI.H | 000004d0 20 46 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 | Functions to ca| 000004e0 6c 6c 20 52 49 53 43 20 4f 53 20 2a 63 6f 6d 6d |ll RISC OS *comm| 000004f0 61 6e 64 73 20 77 69 74 68 20 64 69 66 66 65 72 |ands with differ| 00000500 65 6e 74 20 6c 65 76 65 6c 73 20 6f 66 0a 20 20 |ent levels of. | 00000510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e | in| 00000520 70 75 74 20 61 6e 64 20 6f 75 74 70 75 74 20 72 |put and output r| 00000530 65 64 69 72 65 63 74 69 6f 6e 2e 0a 0a 20 20 20 |edirection... | 00000540 20 48 50 43 2e 48 20 20 20 20 20 20 20 41 6e 20 | HPC.H An | 00000550 69 6e 74 65 72 66 61 63 65 20 74 6f 20 41 6c 65 |interface to Ale| 00000560 70 68 20 4f 6e 65 27 73 20 48 69 67 68 2d 6c 65 |ph One's High-le| 00000570 76 65 6c 20 50 72 6f 63 65 64 75 72 65 20 43 61 |vel Procedure Ca| 00000580 6c 6c 20 28 48 50 43 29 0a 20 20 20 20 20 20 20 |ll (HPC). | 00000590 20 20 20 20 20 20 20 20 20 73 79 73 74 65 6d 2e | system.| 000005a0 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 68 65 | This allows the| 000005b0 20 72 6f 75 74 69 6e 65 73 20 64 65 73 63 72 69 | routines descri| 000005c0 62 65 64 20 69 6e 20 74 68 65 20 44 6f 63 73 2e |bed in the Docs.| 000005d0 48 50 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 |HPC. | 000005e0 20 20 20 20 66 69 6c 65 20 74 6f 20 62 65 20 63 | file to be c| 000005f0 61 6c 6c 65 64 20 64 69 72 65 63 74 6c 79 2e 0a |alled directly..| 00000600 0a 20 20 20 20 53 56 43 2e 48 20 20 20 20 20 20 |. SVC.H | 00000610 20 41 20 6c 6f 77 20 6c 65 76 65 6c 20 69 6e 74 | A low level int| 00000620 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 53 56 |erface to the SV| 00000630 43 20 63 61 6c 6c 73 20 73 75 70 70 6f 72 74 65 |C calls supporte| 00000640 64 20 62 79 20 41 63 6f 72 6e 27 73 0a 20 20 20 |d by Acorn's. | 00000650 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6f 66 | sof| 00000660 74 77 61 72 65 20 65 6d 75 6c 61 74 6f 72 2e 20 |tware emulator. | 00000670 54 68 65 73 65 20 61 72 65 20 75 73 65 64 20 62 |These are used b| 00000680 79 20 74 68 65 20 48 50 43 20 6d 6f 64 75 6c 65 |y the HPC module| 00000690 20 62 75 74 20 6d 61 79 0a 20 20 20 20 20 20 20 | but may. | 000006a0 20 20 20 20 20 20 20 20 20 62 65 20 75 73 65 66 | be usef| 000006b0 75 6c 20 74 6f 20 6f 74 68 65 72 20 75 73 65 72 |ul to other user| 000006c0 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |s.. | 000006d0 20 20 20 0a 20 20 20 20 53 57 49 2e 48 20 20 20 | . SWI.H | 000006e0 20 20 20 20 54 68 69 73 20 70 72 6f 76 69 64 65 | This provide| 000006f0 73 20 61 20 73 69 6e 67 6c 65 20 66 75 6e 63 74 |s a single funct| 00000700 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 61 20 52 49 |ion to call a RI| 00000710 53 43 20 4f 53 20 53 57 49 20 62 79 20 6e 61 6d |SC OS SWI by nam| 00000720 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |e. | 00000730 20 20 66 72 6f 6d 20 74 68 65 20 50 43 2e 20 54 | from the PC. T| 00000740 68 69 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 6e |his should not n| 00000750 6f 72 6d 61 6c 6c 79 20 62 65 20 75 73 65 64 2c |ormally be used,| 00000760 20 62 65 63 61 75 73 65 20 69 74 20 69 73 0a 20 | because it is. | 00000770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 | v| 00000780 65 72 79 20 69 6e 65 66 66 69 63 69 65 6e 74 2c |ery inefficient,| 00000790 20 62 75 74 20 69 73 20 75 73 65 66 75 6c 20 77 | but is useful w| 000007a0 68 65 6e 20 70 72 6f 74 6f 74 79 70 69 6e 67 20 |hen prototyping | 000007b0 63 6f 64 65 2e 0a 20 20 20 20 0a 20 20 20 20 54 |code.. . T| 000007c0 41 4c 4b 2e 48 20 20 20 20 20 20 54 68 69 73 20 |ALK.H This | 000007d0 69 73 20 74 68 65 20 6d 61 69 6e 20 69 6e 74 65 |is the main inte| 000007e0 72 66 61 63 65 20 74 6f 20 74 68 65 20 52 49 53 |rface to the RIS| 000007f0 43 20 4f 53 20 73 65 72 76 69 63 65 73 2e 20 49 |C OS services. I| 00000800 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |t. | 00000810 20 20 70 72 6f 76 69 64 65 73 20 72 6f 75 74 69 | provides routi| 00000820 6e 65 73 20 66 6f 72 20 70 65 72 66 6f 72 6d 69 |nes for performi| 00000830 6e 67 20 67 65 6e 65 72 61 6c 6c 79 20 75 73 65 |ng generally use| 00000840 66 75 6c 20 66 75 6e 63 74 69 6f 6e 73 2c 0a 20 |ful functions,. | 00000850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 | e| 00000860 2e 67 2e 20 61 6c 6c 6f 63 61 74 69 6e 67 20 61 |.g. allocating a| 00000870 6e 64 20 64 65 61 6c 6c 6f 63 61 74 69 6e 67 20 |nd deallocating | 00000880 6d 65 6d 6f 72 79 2e 0a 0a 20 20 20 20 55 54 49 |memory... UTI| 00000890 4c 2e 48 20 20 20 20 20 20 41 20 63 6f 6c 6c 65 |L.H A colle| 000008a0 63 74 69 6f 6e 20 6f 66 20 75 73 65 66 75 6c 20 |ction of useful | 000008b0 75 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e |utility function| 000008c0 73 20 74 68 61 74 20 61 72 65 20 75 73 65 64 20 |s that are used | 000008d0 62 79 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 |by the. | 000008e0 20 20 20 20 20 20 20 73 75 70 70 6c 69 65 64 20 | supplied | 000008f0 75 74 69 6c 69 74 69 65 73 2e 20 54 68 65 73 65 |utilities. These| 00000900 20 61 72 65 20 61 6c 73 6f 20 75 73 65 64 20 69 | are also used i| 00000910 6e 74 65 72 6e 61 6c 6c 79 20 62 79 20 74 68 65 |nternally by the| 00000920 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000930 20 57 49 4d 50 20 6d 6f 64 75 6c 65 20 74 6f 20 | WIMP module to | 00000940 68 61 6e 64 6c 65 20 65 72 72 6f 72 20 63 6f 6e |handle error con| 00000950 64 69 74 69 6f 6e 73 2e 0a 0a 20 20 20 20 56 44 |ditions... VD| 00000960 55 2e 48 20 20 20 20 20 20 20 50 72 6f 63 65 73 |U.H Proces| 00000970 73 69 6e 67 20 6f 66 20 56 44 55 20 63 6f 64 65 |sing of VDU code| 00000980 73 20 75 6e 64 65 72 20 44 4f 53 2e 20 54 68 69 |s under DOS. Thi| 00000990 73 20 65 6d 75 6c 61 74 65 73 20 74 68 65 20 6e |s emulates the n| 000009a0 6f 72 6d 61 6c 0a 20 20 20 20 20 20 20 20 20 20 |ormal. | 000009b0 20 20 20 20 20 20 52 49 53 43 20 4f 53 20 74 72 | RISC OS tr| 000009c0 65 61 74 6d 65 6e 74 20 6f 66 20 61 20 63 6f 6d |eatment of a com| 000009d0 6d 6f 6e 20 73 75 62 73 65 74 20 6f 66 20 63 6f |mon subset of co| 000009e0 6e 74 72 6f 6c 20 63 6f 64 65 73 2e 0a 0a 20 20 |ntrol codes... | 000009f0 20 20 57 49 4d 50 2e 48 20 20 20 20 20 20 46 75 | WIMP.H Fu| 00000a00 6e 63 74 69 6f 6e 73 20 74 6f 20 63 6f 6d 6d 75 |nctions to commu| 00000a10 6e 69 63 61 74 65 20 77 69 74 68 20 74 68 65 20 |nicate with the | 00000a20 22 21 41 52 4d 45 64 69 74 22 20 66 72 6f 6e 74 |"!ARMEdit" front| 00000a30 2d 65 6e 64 20 75 73 69 6e 67 0a 20 20 20 20 20 |-end using. | 00000a40 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 6d | the m| 00000a50 65 73 73 61 67 65 73 20 64 65 73 63 72 69 62 65 |essages describe| 00000a60 64 20 69 6e 20 74 68 65 20 44 6f 63 73 2e 54 61 |d in the Docs.Ta| 00000a70 6c 6b 20 66 69 6c 65 2e 0a 0a 41 6c 6c 20 6f 66 |lk file...All of| 00000a80 20 74 68 65 20 72 65 71 75 69 72 65 64 20 6f 62 | the required ob| 00000a90 6a 65 63 74 20 66 69 6c 65 73 20 74 6f 20 62 65 |ject files to be| 00000aa0 20 6c 69 6e 6b 65 64 20 77 69 74 68 20 61 72 65 | linked with are| 00000ab0 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 20 73 | included in a s| 00000ac0 69 6e 67 6c 65 0a 6c 69 62 72 61 72 79 20 66 69 |ingle.library fi| 00000ad0 6c 65 3a 0a 0a 20 20 20 20 41 52 4d 45 44 49 54 |le:.. ARMEDIT| 00000ae0 2e 4c 49 42 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 |.LIB..The follow| 00000af0 69 6e 67 20 68 65 61 64 65 72 20 66 69 6c 65 73 |ing header files| 00000b00 20 61 72 65 20 69 6e 63 6c 75 64 65 64 20 66 6f | are included fo| 00000b10 72 20 75 73 65 20 75 6e 64 65 72 20 52 49 53 43 |r use under RISC| 00000b20 20 4f 53 3a 0a 0a 20 20 20 20 68 2e 61 72 6d 65 | OS:.. h.arme| 00000b30 64 69 74 73 77 69 20 20 20 20 43 20 69 6e 74 65 |ditswi C inte| 00000b40 72 66 61 63 65 20 66 75 6e 63 74 69 6f 6e 73 20 |rface functions | 00000b50 74 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 53 57 |to all of the SW| 00000b60 49 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 |Is provided by t| 00000b70 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |he. | 00000b80 20 20 20 20 20 20 20 41 52 4d 45 64 69 74 20 6d | ARMEdit m| 00000b90 6f 64 75 6c 65 2e 20 53 65 65 20 44 6f 63 73 2e |odule. See Docs.| 00000ba0 4d 6f 64 75 6c 65 20 66 6f 72 20 64 65 74 61 69 |Module for detai| 00000bb0 6c 73 20 6f 66 20 61 6c 6c 20 74 68 65 0a 20 20 |ls of all the. | 00000bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000bd0 20 20 53 57 49 73 2e 0a 0a 41 20 73 69 6e 67 6c | SWIs...A singl| 00000be0 65 20 6f 62 6a 65 63 74 20 66 69 6c 65 20 69 73 |e object file is| 00000bf0 20 69 6e 63 6c 75 64 65 64 20 63 6f 6e 74 61 69 | included contai| 00000c00 6e 69 6e 67 20 74 68 65 20 61 73 73 65 6d 62 6c |ning the assembl| 00000c10 65 64 20 76 65 6e 65 65 72 73 3a 0a 0a 20 20 20 |ed veneers:.. | 00000c20 20 6f 2e 61 72 6d 65 64 69 74 73 77 69 0a 0a 0a | o.armeditswi...| 00000c30 46 55 4e 43 54 49 4f 4e 53 20 50 52 4f 56 49 44 |FUNCTIONS PROVID| 00000c40 45 44 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e |ED..The followin| 00000c50 67 20 73 65 63 74 69 6f 6e 73 20 67 69 76 65 20 |g sections give | 00000c60 62 72 69 65 66 20 64 65 73 63 72 69 70 74 69 6f |brief descriptio| 00000c70 6e 73 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 |ns of the functi| 00000c80 6f 6e 73 20 70 72 6f 76 69 64 65 64 20 69 6e 0a |ons provided in.| 00000c90 65 61 63 68 20 68 65 61 64 65 72 20 66 69 6c 65 |each header file| 00000ca0 2e 20 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 |. For more detai| 00000cb0 6c 73 20 72 65 61 64 20 74 68 65 20 63 6f 6d 6d |ls read the comm| 00000cc0 65 6e 74 73 20 69 6e 20 74 68 65 20 68 65 61 64 |ents in the head| 00000cd0 65 72 20 66 69 6c 65 73 0a 74 68 65 6d 73 65 6c |er files.themsel| 00000ce0 76 65 73 2e 0a 0a 54 68 65 20 70 72 6f 76 69 64 |ves...The provid| 00000cf0 65 64 20 73 65 72 76 69 63 65 73 20 73 68 6f 75 |ed services shou| 00000d00 6c 64 20 61 6c 6c 6f 77 20 61 6c 6d 6f 73 74 20 |ld allow almost | 00000d10 61 6e 79 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f |any operation to| 00000d20 20 62 65 20 70 65 72 66 6f 72 6d 65 64 2e 0a 48 | be performed..H| 00000d30 6f 77 65 76 65 72 2c 20 70 6c 65 61 73 65 20 67 |owever, please g| 00000d40 65 74 20 69 6e 20 74 6f 75 63 68 20 69 66 20 65 |et in touch if e| 00000d50 78 74 72 61 20 66 65 61 74 75 72 65 73 20 77 6f |xtra features wo| 00000d60 75 6c 64 20 62 65 20 75 73 65 66 75 6c 20 2d 20 |uld be useful - | 00000d70 69 66 20 74 68 65 79 20 61 72 65 0a 73 75 66 66 |if they are.suff| 00000d80 69 63 69 65 6e 74 6c 79 20 67 65 6e 65 72 61 6c |iciently general| 00000d90 20 74 68 65 79 20 6d 61 79 20 67 65 74 20 61 64 | they may get ad| 00000da0 64 65 64 20 69 6e 20 61 20 66 75 74 75 72 65 20 |ded in a future | 00000db0 72 65 6c 65 61 73 65 20 6f 66 20 74 68 65 20 41 |release of the A| 00000dc0 52 4d 45 64 69 74 0a 6d 6f 64 75 6c 65 2e 0a 0a |RMEdit.module...| 00000dd0 0a 41 52 4d 46 49 4c 45 2e 48 0a 0a 61 72 6d 66 |.ARMFILE.H..armf| 00000de0 69 6c 65 5f 63 6f 70 79 5f 64 6f 73 5f 72 69 73 |ile_copy_dos_ris| 00000df0 63 6f 73 0a 0a 20 20 20 20 43 6f 70 79 20 61 20 |cos.. Copy a | 00000e00 66 69 6c 65 20 66 72 6f 6d 20 52 49 53 43 20 4f |file from RISC O| 00000e10 53 20 74 6f 20 44 4f 53 2e 0a 20 20 20 20 0a 0a |S to DOS.. ..| 00000e20 61 72 6d 66 69 6c 65 5f 63 6f 70 79 5f 72 69 73 |armfile_copy_ris| 00000e30 63 6f 73 5f 64 6f 73 0a 0a 20 20 20 20 43 6f 70 |cos_dos.. Cop| 00000e40 79 20 61 20 66 69 6c 65 20 66 72 6f 6d 20 44 4f |y a file from DO| 00000e50 53 20 74 6f 20 52 49 53 43 20 4f 53 2e 0a 20 20 |S to RISC OS.. | 00000e60 20 20 0a 0a 61 72 6d 66 69 6c 65 5f 74 72 61 6e | ..armfile_tran| 00000e70 73 6c 61 74 65 5f 64 6f 73 5f 72 69 73 63 6f 73 |slate_dos_riscos| 00000e80 0a 0a 20 20 20 20 43 6f 6e 76 65 72 74 20 61 20 |.. Convert a | 00000e90 44 4f 53 20 66 69 6c 65 6e 61 6d 65 20 69 6e 74 |DOS filename int| 00000ea0 6f 20 61 20 52 49 53 43 20 4f 53 20 65 71 75 69 |o a RISC OS equi| 00000eb0 76 61 6c 65 6e 74 2e 20 54 68 69 73 20 70 65 72 |valent. This per| 00000ec0 66 6f 72 6d 73 0a 20 20 20 20 73 75 62 73 74 69 |forms. substi| 00000ed0 74 75 74 69 6f 6e 73 20 73 69 6d 69 6c 61 72 20 |tutions similar | 00000ee0 74 6f 20 74 68 6f 73 65 20 70 65 72 66 6f 72 6d |to those perform| 00000ef0 65 64 20 62 79 20 44 4f 53 46 53 2e 0a 0a 0a 61 |ed by DOSFS....a| 00000f00 72 6d 66 69 6c 65 5f 74 72 61 6e 73 6c 61 74 65 |rmfile_translate| 00000f10 5f 72 69 73 63 6f 73 5f 64 6f 73 0a 0a 20 20 20 |_riscos_dos.. | 00000f20 20 43 6f 6e 76 65 72 74 20 61 20 52 49 53 43 20 | Convert a RISC | 00000f30 4f 53 20 66 69 6c 65 6e 61 6d 65 20 69 6e 74 6f |OS filename into| 00000f40 20 61 20 44 4f 53 20 65 71 75 69 76 61 6c 65 6e | a DOS equivalen| 00000f50 74 2e 20 54 68 69 73 20 70 65 72 66 6f 72 6d 73 |t. This performs| 00000f60 20 74 68 65 0a 20 20 20 20 6f 70 70 6f 73 69 74 | the. opposit| 00000f70 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 61 |e operation to a| 00000f80 72 6d 66 69 6c 65 5f 74 72 61 6e 73 6c 61 74 65 |rmfile_translate| 00000f90 5f 64 6f 73 5f 72 69 73 63 6f 73 2e 0a 0a 61 72 |_dos_riscos...ar| 00000fa0 6d 66 69 6c 65 5f 74 65 6d 70 6f 72 61 72 79 0a |mfile_temporary.| 00000fb0 0a 20 20 20 20 47 65 6e 65 72 61 74 65 20 74 68 |. Generate th| 00000fc0 65 20 66 69 6c 65 6e 61 6d 65 20 66 6f 72 20 61 |e filename for a| 00000fd0 20 74 65 6d 70 6f 72 61 72 79 20 52 49 53 43 20 | temporary RISC | 00000fe0 4f 53 20 66 69 6c 65 2c 20 61 6e 64 20 65 6e 73 |OS file, and ens| 00000ff0 75 72 65 20 69 74 20 69 73 0a 20 20 20 20 64 65 |ure it is. de| 00001000 6c 65 74 65 64 20 62 65 66 6f 72 65 20 74 68 65 |leted before the| 00001010 20 70 72 6f 67 72 61 6d 20 65 78 69 74 73 2e 0a | program exits..| 00001020 0a 61 72 6d 66 69 6c 65 5f 63 72 65 61 74 65 5f |.armfile_create_| 00001030 64 69 72 0a 0a 20 20 20 20 43 72 65 61 74 65 20 |dir.. Create | 00001040 61 20 52 49 53 43 20 4f 53 20 64 69 72 65 63 74 |a RISC OS direct| 00001050 6f 72 79 2e 0a 0a 0a 43 4c 49 2e 48 0a 0a 63 6c |ory....CLI.H..cl| 00001060 69 5f 73 69 6d 70 6c 65 0a 0a 20 20 20 20 41 20 |i_simple.. A | 00001070 73 69 6d 70 6c 65 20 2a 63 6f 6d 6d 61 6e 64 20 |simple *command | 00001080 69 6e 74 65 72 66 61 63 65 2e 20 49 66 20 6f 75 |interface. If ou| 00001090 74 70 75 74 20 72 65 64 69 72 65 63 74 69 6f 6e |tput redirection| 000010a0 20 69 73 20 72 65 71 75 69 72 65 64 20 74 68 65 | is required the| 000010b0 6e 20 69 74 0a 20 20 20 20 69 73 20 70 65 72 66 |n it. is perf| 000010c0 6f 72 6d 65 64 20 76 69 61 20 61 20 66 69 6c 65 |ormed via a file| 000010d0 2e 0a 20 20 20 20 0a 0a 63 6c 69 5f 72 65 64 69 |.. ..cli_redi| 000010e0 72 0a 0a 20 20 20 20 41 20 6d 6f 72 65 20 63 6f |r.. A more co| 000010f0 6d 70 72 65 68 65 6e 73 69 76 65 20 2a 63 6f 6d |mprehensive *com| 00001100 6d 61 6e 64 20 69 6e 74 65 72 66 61 63 65 2e 20 |mand interface. | 00001110 42 6f 74 68 20 69 6e 70 75 74 20 61 6e 64 20 6f |Both input and o| 00001120 75 70 75 74 20 63 61 6e 20 62 65 0a 20 20 20 20 |uput can be. | 00001130 72 65 64 69 72 65 63 74 65 64 20 74 6f 2f 66 72 |redirected to/fr| 00001140 6f 6d 20 61 6e 79 20 44 4f 53 20 73 74 72 65 61 |om any DOS strea| 00001150 6d 20 6f 72 20 66 69 6c 65 2e 20 53 70 65 63 69 |m or file. Speci| 00001160 61 6c 20 61 63 74 69 6f 6e 20 69 73 20 74 61 6b |al action is tak| 00001170 65 6e 20 69 66 0a 20 20 20 20 74 68 65 20 73 74 |en if. the st| 00001180 72 65 61 6d 73 20 63 6f 72 72 65 73 70 6f 6e 64 |reams correspond| 00001190 20 74 6f 20 74 68 65 20 6b 65 79 62 6f 61 72 64 | to the keyboard| 000011a0 20 6f 72 20 73 63 72 65 65 6e 2e 0a 20 20 20 20 | or screen.. | 000011b0 0a 0a 48 50 43 2e 48 0a 0a 68 70 63 5f 6d 65 73 |..HPC.H..hpc_mes| 000011c0 73 61 67 65 0a 0a 20 20 20 20 45 78 65 63 75 74 |sage.. Execut| 000011d0 65 20 61 20 67 65 6e 65 72 61 6c 20 48 50 43 20 |e a general HPC | 000011e0 63 61 6c 6c 2e 20 49 66 20 48 50 43 20 73 75 70 |call. If HPC sup| 000011f0 70 6f 72 74 20 69 73 20 6e 6f 74 20 70 72 6f 76 |port is not prov| 00001200 69 64 65 64 20 62 79 20 74 68 65 20 50 43 0a 20 |ided by the PC. | 00001210 20 20 20 66 72 6f 6e 74 2d 65 6e 64 20 73 6f 66 | front-end sof| 00001220 74 77 61 72 65 20 74 68 65 6e 20 6f 6e 65 20 6f |tware then one o| 00001230 66 20 73 65 76 65 72 61 6c 20 73 75 62 73 74 69 |f several substi| 00001240 74 75 74 65 20 6d 65 63 68 61 6e 69 73 6d 73 20 |tute mechanisms | 00001250 69 73 20 75 73 65 64 2c 0a 20 20 20 20 62 75 74 |is used,. but| 00001260 20 74 68 65 79 20 6f 6e 6c 79 20 77 6f 72 6b 20 | they only work | 00001270 77 69 74 68 20 74 68 65 20 41 52 4d 45 64 69 74 |with the ARMEdit| 00001280 20 6d 6f 64 75 6c 65 2e 0a 0a 0a 53 56 43 2e 48 | module....SVC.H| 00001290 0a 0a 73 76 63 5f 61 64 64 72 65 73 73 0a 0a 20 |..svc_address.. | 000012a0 20 20 20 54 72 61 6e 73 6c 61 74 65 20 61 6e 20 | Translate an | 000012b0 38 30 38 36 20 61 64 64 72 65 73 73 20 74 6f 20 |8086 address to | 000012c0 61 6e 20 41 52 4d 20 61 64 64 72 65 73 73 20 75 |an ARM address u| 000012d0 73 69 6e 67 20 53 56 43 32 35 37 20 69 66 20 41 |sing SVC257 if A| 000012e0 63 6f 72 6e 27 73 0a 20 20 20 20 73 6f 66 74 77 |corn's. softw| 000012f0 61 72 65 20 65 6d 75 6c 61 74 6f 72 20 69 73 20 |are emulator is | 00001300 62 65 69 6e 67 20 75 73 65 64 2e 20 54 68 69 73 |being used. This| 00001310 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 63 61 6c | must not be cal| 00001320 6c 65 64 20 6f 6e 20 61 6e 79 20 6f 74 68 65 72 |led on any other| 00001330 0a 20 20 20 20 73 79 73 74 65 6d 2e 0a 20 20 20 |. system.. | 00001340 20 0a 0a 73 76 63 5f 73 77 69 0a 0a 20 20 20 20 | ..svc_swi.. | 00001350 43 61 6c 6c 20 61 20 52 49 53 43 20 4f 53 20 53 |Call a RISC OS S| 00001360 57 49 20 75 73 69 6e 67 20 53 56 43 32 35 38 20 |WI using SVC258 | 00001370 69 66 20 41 63 6f 72 6e 27 73 20 73 6f 66 74 77 |if Acorn's softw| 00001380 61 72 65 20 65 6d 75 6c 61 74 6f 72 20 69 73 20 |are emulator is | 00001390 62 65 69 6e 67 0a 20 20 20 20 75 73 65 64 2e 20 |being. used. | 000013a0 54 68 69 73 20 6d 75 73 74 20 6e 6f 74 20 62 65 |This must not be| 000013b0 20 63 61 6c 6c 65 64 20 6f 6e 20 61 6e 79 20 6f | called on any o| 000013c0 74 68 65 72 20 73 79 73 74 65 6d 2e 0a 0a 0a 53 |ther system....S| 000013d0 57 49 2e 48 0a 0a 73 77 69 5f 73 77 69 0a 0a 20 |WI.H..swi_swi.. | 000013e0 20 20 20 43 61 6c 6c 20 61 20 73 70 65 63 69 66 | Call a specif| 000013f0 69 65 64 20 52 49 53 43 20 4f 53 20 53 57 49 20 |ied RISC OS SWI | 00001400 62 79 20 69 74 73 20 6e 61 6d 65 2e 20 41 73 20 |by its name. As | 00001410 6d 65 6e 74 69 6f 6e 65 64 20 61 62 6f 76 65 20 |mentioned above | 00001420 74 68 69 73 20 69 73 20 61 0a 20 20 20 20 76 65 |this is a. ve| 00001430 72 79 20 69 6e 65 66 66 69 63 69 65 6e 74 20 6f |ry inefficient o| 00001440 70 65 72 61 74 69 6f 6e 20 74 6f 20 70 65 72 66 |peration to perf| 00001450 6f 72 6d 2c 20 73 6f 20 73 68 6f 75 6c 64 20 6e |orm, so should n| 00001460 6f 72 6d 61 6c 6c 79 20 6f 6e 6c 79 20 62 65 20 |ormally only be | 00001470 75 73 65 64 0a 20 20 20 20 64 75 72 69 6e 67 20 |used. during | 00001480 64 65 76 65 6c 6f 70 6d 65 6e 74 20 73 74 61 67 |development stag| 00001490 65 73 20 6f 66 20 6e 65 77 20 73 6f 66 74 77 61 |es of new softwa| 000014a0 72 65 2e 0a 0a 0a 54 41 4c 4b 2e 48 0a 0a 74 61 |re....TALK.H..ta| 000014b0 6c 6b 5f 73 77 69 0a 0a 20 20 20 20 43 61 6c 6c |lk_swi.. Call| 000014c0 20 61 20 52 49 53 43 20 4f 53 20 53 57 49 20 62 | a RISC OS SWI b| 000014d0 79 20 6e 75 6d 62 65 72 2e 20 49 74 20 73 68 6f |y number. It sho| 000014e0 75 6c 64 20 62 65 20 72 65 6d 65 6d 62 65 72 65 |uld be remembere| 000014f0 64 20 74 68 61 74 20 74 68 65 20 53 57 49 20 63 |d that the SWI c| 00001500 61 6e 0a 20 20 20 20 6e 6f 74 20 72 65 61 64 20 |an. not read | 00001510 50 43 20 6d 65 6d 6f 72 79 20 64 69 72 65 63 74 |PC memory direct| 00001520 6c 79 3b 20 74 68 65 20 72 65 71 75 69 72 65 64 |ly; the required| 00001530 20 64 61 74 61 20 6d 75 73 74 20 62 65 20 63 6f | data must be co| 00001540 70 69 65 64 20 75 73 69 6e 67 20 74 68 65 0a 20 |pied using the. | 00001550 20 20 20 6f 74 68 65 72 20 66 75 6e 63 74 69 6f | other functio| 00001560 6e 73 20 70 72 6f 76 69 64 65 64 20 69 6e 20 74 |ns provided in t| 00001570 68 65 20 74 61 6c 6b 20 6d 6f 64 75 6c 65 2e 0a |he talk module..| 00001580 0a 0a 74 61 6c 6b 5f 72 65 61 64 0a 0a 20 20 20 |..talk_read.. | 00001590 20 52 65 61 64 20 61 20 62 6c 6f 63 6b 20 6f 66 | Read a block of| 000015a0 20 52 49 53 43 20 4f 53 20 6d 65 6d 6f 72 79 2e | RISC OS memory.| 000015b0 0a 0a 0a 74 61 6c 6b 5f 77 72 69 74 65 0a 0a 20 |...talk_write.. | 000015c0 20 20 20 57 72 69 74 65 20 61 20 62 6c 6f 63 6b | Write a block| 000015d0 20 6f 66 20 52 49 53 43 20 4f 53 20 6d 65 6d 6f | of RISC OS memo| 000015e0 72 79 2e 0a 0a 0a 74 61 6c 6b 5f 6d 61 6c 6c 6f |ry....talk_mallo| 000015f0 63 0a 0a 20 20 20 20 43 6c 61 69 6d 65 64 20 74 |c.. Claimed t| 00001600 68 65 20 73 70 65 63 69 66 69 65 64 20 61 6d 6f |he specified amo| 00001610 75 6e 74 20 6f 66 20 52 49 53 43 20 4f 53 20 6d |unt of RISC OS m| 00001620 65 6d 6f 72 79 2e 20 54 68 65 20 6d 65 6d 6f 72 |emory. The memor| 00001630 79 20 73 68 6f 75 6c 64 20 62 65 0a 20 20 20 20 |y should be. | 00001640 72 65 6c 65 61 73 65 64 20 75 73 69 6e 67 20 74 |released using t| 00001650 61 6c 6b 5f 66 72 65 65 2e 20 48 6f 77 65 76 65 |alk_free. Howeve| 00001660 72 2c 20 69 74 20 77 69 6c 6c 20 61 75 74 6f 6d |r, it will autom| 00001670 61 74 69 63 61 6c 6c 79 20 62 65 20 66 72 65 65 |atically be free| 00001680 64 20 77 68 65 6e 0a 20 20 20 20 74 68 65 20 50 |d when. the P| 00001690 43 20 63 61 72 64 20 69 73 20 65 69 74 68 65 72 |C card is either| 000016a0 20 72 65 73 65 74 20 6f 72 20 71 75 69 74 3b 20 | reset or quit; | 000016b0 65 6e 73 75 72 69 6e 67 20 74 68 61 74 20 61 6c |ensuring that al| 000016c0 6c 20 63 6c 61 69 6d 65 64 20 6d 65 6d 6f 72 79 |l claimed memory| 000016d0 0a 20 20 20 20 69 73 20 65 76 65 6e 74 75 61 6c |. is eventual| 000016e0 6c 79 20 64 65 61 6c 6c 6f 63 61 74 65 64 20 65 |ly deallocated e| 000016f0 76 65 6e 20 69 66 20 74 68 65 20 50 43 20 73 6f |ven if the PC so| 00001700 66 74 77 61 72 65 20 74 65 72 6d 69 6e 61 74 65 |ftware terminate| 00001710 73 20 61 62 6e 6f 72 6d 61 6c 6c 79 2e 0a 0a 0a |s abnormally....| 00001720 74 61 6c 6b 5f 66 72 65 65 0a 0a 20 20 20 20 46 |talk_free.. F| 00001730 72 65 65 20 61 20 62 6c 6f 63 6b 20 6f 66 20 6d |ree a block of m| 00001740 65 6d 6f 72 79 20 70 72 65 76 69 6f 75 73 6c 79 |emory previously| 00001750 20 63 6c 61 69 6d 65 64 20 75 73 69 6e 67 20 74 | claimed using t| 00001760 61 6c 6b 5f 6d 61 6c 6c 6f 63 2e 0a 0a 0a 74 61 |alk_malloc....ta| 00001770 6c 6b 5f 65 78 74 5f 74 6f 5f 66 69 6c 65 74 79 |lk_ext_to_filety| 00001780 70 65 0a 0a 20 20 20 20 43 6f 6e 76 65 72 74 20 |pe.. Convert | 00001790 61 20 44 4f 53 20 66 69 6c 65 20 65 78 74 65 6e |a DOS file exten| 000017a0 73 69 6f 6e 20 69 6e 74 6f 20 61 20 52 49 53 43 |sion into a RISC| 000017b0 20 4f 53 20 66 69 6c 65 74 79 70 65 2e 20 54 68 | OS filetype. Th| 000017c0 69 73 20 75 73 65 73 20 74 68 65 0a 20 20 20 20 |is uses the. | 000017d0 6c 69 73 74 20 6f 66 20 6d 61 70 70 69 6e 67 73 |list of mappings| 000017e0 20 73 65 74 20 62 79 20 74 68 65 20 44 4f 53 4d | set by the DOSM| 000017f0 61 70 20 63 6f 6d 6d 61 6e 64 2e 20 53 65 65 20 |ap command. See | 00001800 44 6f 63 73 2e 4d 6f 64 75 6c 65 20 66 6f 72 20 |Docs.Module for | 00001810 6d 6f 72 65 0a 20 20 20 20 64 65 74 61 69 6c 73 |more. details| 00001820 2e 0a 0a 0a 74 61 6c 6b 5f 66 69 6c 65 74 79 70 |....talk_filetyp| 00001830 65 5f 74 6f 5f 65 78 74 0a 0a 20 20 20 20 43 6f |e_to_ext.. Co| 00001840 6e 76 65 72 74 20 61 20 52 49 53 43 20 4f 53 20 |nvert a RISC OS | 00001850 66 69 6c 65 74 79 70 65 20 69 6e 74 6f 20 61 20 |filetype into a | 00001860 44 4f 53 20 66 69 6c 65 20 65 78 74 65 6e 73 69 |DOS file extensi| 00001870 6f 6e 2e 20 54 68 69 73 20 75 73 65 73 20 74 68 |on. This uses th| 00001880 65 0a 20 20 20 20 6c 69 73 74 20 6f 66 20 6d 61 |e. list of ma| 00001890 70 70 69 6e 67 73 20 73 65 74 20 62 79 20 74 68 |ppings set by th| 000018a0 65 20 44 4f 53 4d 61 70 20 63 6f 6d 6d 61 6e 64 |e DOSMap command| 000018b0 2e 20 53 65 65 20 44 6f 63 73 2e 4d 6f 64 75 6c |. See Docs.Modul| 000018c0 65 20 66 6f 72 20 6d 6f 72 65 0a 20 20 20 20 64 |e for more. d| 000018d0 65 74 61 69 6c 73 2e 0a 0a 0a 74 61 6c 6b 5f 66 |etails....talk_f| 000018e0 69 6c 65 5f 6f 70 65 6e 0a 0a 20 20 20 20 4f 70 |ile_open.. Op| 000018f0 65 6e 20 61 20 52 49 53 43 20 4f 53 20 66 69 6c |en a RISC OS fil| 00001900 65 2e 20 49 74 20 69 73 20 70 6f 73 73 69 62 6c |e. It is possibl| 00001910 65 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 61 |e to specify tha| 00001920 74 20 74 68 65 20 66 69 6c 65 20 73 68 6f 75 6c |t the file shoul| 00001930 64 0a 20 20 20 20 61 75 74 6f 6d 61 74 69 63 61 |d. automatica| 00001940 6c 6c 79 20 62 65 20 64 65 6c 65 74 65 64 20 77 |lly be deleted w| 00001950 68 65 6e 20 69 74 20 69 73 20 63 6c 6f 73 65 64 |hen it is closed| 00001960 3b 20 75 73 65 66 75 6c 20 66 6f 72 20 74 65 6d |; useful for tem| 00001970 70 6f 72 61 72 79 20 66 69 6c 65 73 2e 0a 20 20 |porary files.. | 00001980 20 20 54 68 65 20 66 69 6c 65 20 73 68 6f 75 6c | The file shoul| 00001990 64 20 62 65 20 63 6c 6f 73 65 64 20 75 73 69 6e |d be closed usin| 000019a0 67 20 74 61 6c 6b 5f 66 69 6c 65 5f 63 6c 6f 73 |g talk_file_clos| 000019b0 65 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 77 |e. However, it w| 000019c0 69 6c 6c 0a 20 20 20 20 61 75 74 6f 6d 61 74 69 |ill. automati| 000019d0 63 61 6c 6c 79 20 62 65 20 63 6c 6f 73 65 64 20 |cally be closed | 000019e0 77 68 65 6e 20 74 68 65 20 50 43 20 63 61 72 64 |when the PC card| 000019f0 20 69 73 20 65 69 74 68 65 72 20 72 65 73 65 74 | is either reset| 00001a00 20 6f 72 20 71 75 69 74 3b 0a 20 20 20 20 65 6e | or quit;. en| 00001a10 73 75 72 69 6e 67 20 74 68 61 74 20 61 6c 6c 20 |suring that all | 00001a20 66 69 6c 65 73 20 61 72 65 20 65 76 65 6e 74 75 |files are eventu| 00001a30 61 6c 6c 79 20 63 6c 6f 73 65 64 20 28 61 6e 64 |ally closed (and| 00001a40 20 64 65 6c 65 74 65 64 20 69 66 20 72 65 71 75 | deleted if requ| 00001a50 69 72 65 64 29 0a 20 20 20 20 65 76 65 6e 20 69 |ired). even i| 00001a60 66 20 74 68 65 20 50 43 20 73 6f 66 74 77 61 72 |f the PC softwar| 00001a70 65 20 74 65 72 6d 69 6e 61 74 65 73 20 61 62 6e |e terminates abn| 00001a80 6f 72 6d 61 6c 6c 79 2e 0a 0a 0a 74 61 6c 6b 5f |ormally....talk_| 00001a90 66 69 6c 65 5f 63 6c 6f 73 65 0a 0a 20 20 20 20 |file_close.. | 00001aa0 43 6c 6f 73 65 20 61 20 52 49 53 43 20 4f 53 20 |Close a RISC OS | 00001ab0 66 69 6c 65 20 70 72 65 76 69 6f 75 73 6c 79 20 |file previously | 00001ac0 6f 70 65 6e 65 64 20 75 73 69 6e 67 20 74 61 6c |opened using tal| 00001ad0 6b 5f 66 69 6c 65 5f 6f 70 65 6e 2e 0a 0a 0a 74 |k_file_open....t| 00001ae0 61 6c 6b 5f 66 69 6c 65 5f 72 65 61 64 0a 0a 20 |alk_file_read.. | 00001af0 20 20 20 52 65 61 64 20 61 20 62 6c 6f 63 6b 20 | Read a block | 00001b00 6f 66 20 6d 65 6d 6f 72 79 20 66 72 6f 6d 20 61 |of memory from a| 00001b10 20 52 49 53 43 20 4f 53 20 66 69 6c 65 2e 0a 20 | RISC OS file.. | 00001b20 20 20 20 0a 0a 74 61 6c 6b 5f 66 69 6c 65 5f 77 | ..talk_file_w| 00001b30 72 69 74 65 0a 0a 20 20 20 20 57 72 69 74 65 20 |rite.. Write | 00001b40 61 20 62 6c 6f 63 6b 20 6f 66 20 6d 65 6d 6f 72 |a block of memor| 00001b50 79 20 74 6f 20 61 20 52 49 53 43 20 4f 53 20 66 |y to a RISC OS f| 00001b60 69 6c 65 2e 0a 0a 0a 74 61 6c 6b 5f 63 6f 6d 6d |ile....talk_comm| 00001b70 73 5f 73 74 61 72 74 0a 0a 20 20 20 20 52 65 67 |s_start.. Reg| 00001b80 69 73 74 65 72 20 61 20 63 6f 6d 6d 75 6e 69 63 |ister a communic| 00001b90 61 74 69 6f 6e 73 20 63 6c 69 65 6e 74 2e 0a 0a |ations client...| 00001ba0 0a 74 61 6c 6b 5f 63 6f 6d 6d 73 5f 65 6e 64 0a |.talk_comms_end.| 00001bb0 0a 20 20 20 20 44 65 72 65 67 69 73 74 65 72 20 |. Deregister | 00001bc0 61 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 |a communications| 00001bd0 20 63 6c 69 65 6e 74 2e 0a 20 20 20 20 0a 0a 74 | client.. ..t| 00001be0 61 6c 6b 5f 63 6f 6d 6d 73 5f 74 78 0a 0a 20 20 |alk_comms_tx.. | 00001bf0 20 20 54 72 61 6e 73 6d 69 74 20 61 20 6d 65 73 | Transmit a mes| 00001c00 73 61 67 65 20 74 6f 20 61 6e 6f 74 68 65 72 20 |sage to another | 00001c10 63 6c 69 65 6e 74 2e 0a 20 20 20 20 0a 0a 74 61 |client.. ..ta| 00001c20 6c 6b 5f 63 6f 6d 6d 73 5f 72 78 0a 0a 20 20 20 |lk_comms_rx.. | 00001c30 20 52 65 63 65 69 76 65 20 61 20 6d 65 73 73 61 | Receive a messa| 00001c40 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 |ge from another | 00001c50 63 6c 69 65 6e 74 2e 0a 0a 0a 74 61 6c 6b 5f 64 |client....talk_d| 00001c60 61 74 65 5f 74 6f 5f 64 6f 73 0a 0a 20 20 20 20 |ate_to_dos.. | 00001c70 43 6f 6e 76 65 72 74 20 61 20 64 61 74 65 20 61 |Convert a date a| 00001c80 6e 64 20 74 69 6d 65 20 66 72 6f 6d 20 52 49 53 |nd time from RIS| 00001c90 43 20 4f 53 20 74 6f 20 44 4f 53 20 66 6f 72 6d |C OS to DOS form| 00001ca0 61 74 2e 0a 20 20 20 20 0a 0a 74 61 6c 6b 5f 64 |at.. ..talk_d| 00001cb0 61 74 65 5f 74 6f 5f 72 69 73 63 6f 73 0a 0a 20 |ate_to_riscos.. | 00001cc0 20 20 20 43 6f 6e 76 65 72 74 20 61 20 64 61 74 | Convert a dat| 00001cd0 65 20 61 6e 64 20 74 69 6d 65 20 66 72 6f 6d 20 |e and time from | 00001ce0 44 4f 53 20 74 6f 20 52 49 53 43 20 4f 53 20 66 |DOS to RISC OS f| 00001cf0 6f 72 6d 61 74 2e 0a 0a 0a 74 61 6c 6b 5f 6f 73 |ormat....talk_os| 00001d00 63 6c 69 5f 73 74 61 72 74 0a 0a 20 20 20 20 53 |cli_start.. S| 00001d10 74 61 72 74 20 65 78 65 63 75 74 69 6e 67 20 61 |tart executing a| 00001d20 20 52 49 53 43 20 4f 53 20 2a 63 6f 6d 6d 61 6e | RISC OS *comman| 00001d30 64 20 77 69 74 68 20 62 6f 74 68 20 69 6e 70 75 |d with both inpu| 00001d40 74 20 61 6e 64 20 6f 75 74 70 75 74 20 72 65 64 |t and output red| 00001d50 69 72 65 63 74 65 64 2e 0a 20 20 20 20 0a 0a 74 |irected.. ..t| 00001d60 61 6c 6b 5f 6f 73 63 6c 69 5f 70 6f 6c 6c 0a 0a |alk_oscli_poll..| 00001d70 20 20 20 20 43 6f 6e 74 69 6e 75 65 20 74 68 65 | Continue the| 00001d80 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 | execution of a | 00001d90 52 49 53 43 20 4f 53 20 2a 63 6f 6d 6d 61 6e 64 |RISC OS *command| 00001da0 2e 0a 20 20 20 20 0a 0a 74 61 6c 6b 5f 6f 73 63 |.. ..talk_osc| 00001db0 6c 69 5f 65 6e 64 0a 0a 20 20 20 20 54 65 72 6d |li_end.. Term| 00001dc0 69 6e 61 74 65 20 74 68 65 20 65 78 65 63 75 74 |inate the execut| 00001dd0 69 6f 6e 20 6f 66 20 61 20 52 49 53 43 20 4f 53 |ion of a RISC OS| 00001de0 20 2a 63 6f 6d 6d 61 6e 64 2e 0a 0a 0a 74 61 6c | *command....tal| 00001df0 6b 5f 63 6f 6d 6d 73 5f 72 65 70 6c 79 0a 0a 20 |k_comms_reply.. | 00001e00 20 20 20 52 65 70 6c 79 20 74 6f 20 61 20 6d 65 | Reply to a me| 00001e10 73 73 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 |ssage from anoth| 00001e20 65 72 20 63 6c 69 65 6e 74 2e 0a 0a 74 61 6c 6b |er client...talk| 00001e30 5f 66 61 73 74 65 72 0a 0a 20 20 20 20 44 69 73 |_faster.. Dis| 00001e40 61 62 6c 65 20 6d 75 6c 74 69 74 61 73 6b 69 6e |able multitaskin| 00001e50 67 20 66 6f 72 20 66 61 73 74 65 72 20 6f 70 65 |g for faster ope| 00001e60 72 61 74 69 6f 6e 73 2e 0a 0a 74 61 6c 6b 5f 74 |rations...talk_t| 00001e70 65 6d 70 6f 72 61 72 79 0a 0a 20 20 20 20 47 65 |emporary.. Ge| 00001e80 6e 65 72 61 74 65 20 61 20 75 6e 69 71 75 65 20 |nerate a unique | 00001e90 66 69 6c 65 6e 61 6d 65 20 66 6f 72 20 61 20 74 |filename for a t| 00001ea0 65 6d 70 6f 72 61 72 79 20 52 49 53 43 20 4f 53 |emporary RISC OS| 00001eb0 20 66 69 6c 65 2e 0a 0a 0a 55 54 49 4c 2e 48 0a | file....UTIL.H.| 00001ec0 0a 75 74 69 6c 5f 61 72 6d 5f 73 70 6c 69 74 0a |.util_arm_split.| 00001ed0 0a 20 20 20 20 53 70 6c 69 74 20 61 20 52 49 53 |. Split a RIS| 00001ee0 43 20 4f 53 20 70 61 74 68 20 69 6e 74 6f 20 61 |C OS path into a| 00001ef0 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 6c | directory and l| 00001f00 65 61 66 6e 61 6d 65 2e 0a 0a 0a 75 74 69 6c 5f |eafname....util_| 00001f10 77 69 6c 64 63 61 72 64 0a 0a 20 20 20 20 43 61 |wildcard.. Ca| 00001f20 6c 6c 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 6f |ll a function fo| 00001f30 72 20 61 6c 6c 20 44 4f 53 20 66 69 6c 65 73 20 |r all DOS files | 00001f40 74 68 61 74 20 6d 61 74 63 68 20 61 20 77 69 6c |that match a wil| 00001f50 64 63 61 72 64 65 64 20 73 70 65 63 69 66 69 63 |dcarded specific| 00001f60 61 74 69 6f 6e 2e 0a 0a 0a 75 74 69 6c 5f 61 72 |ation....util_ar| 00001f70 6d 5f 77 69 6c 64 63 61 72 64 0a 0a 20 20 20 20 |m_wildcard.. | 00001f80 43 61 6c 6c 20 61 20 66 75 6e 63 74 69 6f 6e 20 |Call a function | 00001f90 66 6f 72 20 61 6c 6c 20 52 49 53 43 20 4f 53 20 |for all RISC OS | 00001fa0 66 69 6c 65 73 20 74 68 61 74 20 6d 61 74 63 68 |files that match| 00001fb0 20 61 20 77 69 6c 64 63 61 72 64 65 64 0a 20 20 | a wildcarded. | 00001fc0 20 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e | specification.| 00001fd0 0a 0a 0a 75 74 69 6c 5f 73 74 61 74 75 73 0a 0a |...util_status..| 00001fe0 20 20 20 20 44 69 73 70 6c 61 79 20 61 20 6d 65 | Display a me| 00001ff0 73 73 61 67 65 20 72 65 70 6c 61 63 69 6e 67 20 |ssage replacing | 00002000 61 6e 79 20 70 72 65 76 69 6f 75 73 20 6f 6e 65 |any previous one| 00002010 2e 20 41 20 73 70 69 6e 6e 69 6e 67 20 61 63 74 |. A spinning act| 00002020 69 76 69 74 79 0a 20 20 20 20 69 6e 64 69 63 61 |ivity. indica| 00002030 74 6f 72 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 |tor may also be | 00002040 73 68 6f 77 6e 2e 0a 0a 0a 75 74 69 6c 5f 65 72 |shown....util_er| 00002050 72 6f 72 0a 0a 20 20 20 20 45 78 69 74 20 77 69 |ror.. Exit wi| 00002060 74 68 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73 |th an error mess| 00002070 61 67 65 2e 20 54 68 69 73 20 72 65 70 6c 61 63 |age. This replac| 00002080 65 73 20 61 6e 79 20 70 72 65 76 69 6f 75 73 6c |es any previousl| 00002090 79 20 64 69 73 70 6c 61 79 65 64 0a 20 20 20 20 |y displayed. | 000020a0 6d 65 73 73 61 67 65 2e 0a 0a 0a 75 74 69 6c 5f |message....util_| 000020b0 72 65 74 72 79 0a 0a 20 20 20 20 50 72 6f 6d 70 |retry.. Promp| 000020c0 74 20 74 68 65 20 75 73 65 72 20 74 6f 20 65 69 |t the user to ei| 000020d0 74 68 65 72 20 41 62 6f 72 74 2c 20 52 65 74 72 |ther Abort, Retr| 000020e0 79 2c 20 6f 72 20 6f 70 74 69 6f 6e 61 6c 6c 79 |y, or optionally| 000020f0 20 43 61 6e 63 65 6c 20 61 6e 0a 20 20 20 20 6f | Cancel an. o| 00002100 70 65 72 61 74 69 6f 6e 2e 0a 20 20 20 20 0a 0a |peration.. ..| 00002110 75 74 69 6c 5f 70 72 6f 6d 70 74 0a 0a 20 20 20 |util_prompt.. | 00002120 20 50 72 6f 6d 70 74 20 66 6f 72 20 61 20 59 20 | Prompt for a Y | 00002130 6f 72 20 4e 20 61 6e 73 77 65 72 20 61 6e 64 20 |or N answer and | 00002140 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c |return the resul| 00002150 74 2e 0a 0a 0a 56 44 55 2e 48 0a 0a 76 64 75 5f |t....VDU.H..vdu_| 00002160 6f 75 74 70 75 74 5f 66 69 6c 74 65 72 0a 0a 20 |output_filter.. | 00002170 20 20 20 41 6e 20 6f 75 74 70 75 74 20 73 74 72 | An output str| 00002180 65 61 6d 20 70 72 65 66 69 6c 74 65 72 2e 20 54 |eam prefilter. T| 00002190 68 69 73 20 65 6d 75 6c 61 74 65 73 20 52 49 53 |his emulates RIS| 000021a0 43 20 4f 53 20 74 72 65 61 74 6d 65 6e 74 20 6f |C OS treatment o| 000021b0 66 20 61 20 63 6f 6d 6d 6f 6e 0a 20 20 20 20 73 |f a common. s| 000021c0 75 62 73 65 74 20 6f 66 20 63 6f 6e 74 72 6f 6c |ubset of control| 000021d0 20 63 6f 64 65 73 2e 0a 0a 0a 57 49 4d 50 2e 48 | codes....WIMP.H| 000021e0 0a 0a 77 69 6d 70 5f 66 69 6e 64 0a 0a 20 20 20 |..wimp_find.. | 000021f0 20 53 65 6e 64 20 61 20 6d 65 73 73 61 67 65 20 | Send a message | 00002200 74 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 63 75 |to obtain the cu| 00002210 72 72 65 6e 74 20 63 6c 69 65 6e 74 20 68 61 6e |rrent client han| 00002220 64 6c 65 20 6f 66 20 74 68 65 20 22 21 41 52 4d |dle of the "!ARM| 00002230 45 64 69 74 22 0a 20 20 20 20 66 72 6f 6e 74 2d |Edit". front-| 00002240 65 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |end application | 00002250 69 66 20 69 74 20 69 73 20 72 75 6e 6e 69 6e 67 |if it is running| 00002260 2e 0a 20 20 20 20 0a 0a 77 69 6d 70 5f 66 69 6e |.. ..wimp_fin| 00002270 64 5f 72 65 63 65 69 76 65 0a 0a 20 20 20 20 41 |d_receive.. A| 00002280 74 74 65 6d 70 74 20 74 6f 20 72 65 63 65 69 76 |ttempt to receiv| 00002290 65 20 74 68 65 20 72 65 70 6c 79 20 74 6f 20 61 |e the reply to a| 000022a0 20 77 69 6d 70 5f 66 69 6e 64 20 6d 65 73 73 61 | wimp_find messa| 000022b0 67 65 2e 0a 20 20 20 20 0a 0a 77 69 6d 70 5f 73 |ge.. ..wimp_s| 000022c0 74 61 72 74 0a 0a 20 20 20 20 53 65 6e 64 20 74 |tart.. Send t| 000022d0 68 65 20 6d 65 73 73 61 67 65 20 74 6f 20 73 74 |he message to st| 000022e0 61 72 74 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 |art an external | 000022f0 65 64 69 74 2e 0a 0a 0a 77 69 6d 70 5f 73 74 61 |edit....wimp_sta| 00002300 72 74 5f 72 65 63 65 69 76 65 0a 0a 20 20 20 20 |rt_receive.. | 00002310 41 74 74 65 6d 70 74 20 74 6f 20 72 65 63 65 69 |Attempt to recei| 00002320 76 65 20 74 68 65 20 72 65 70 6c 79 20 74 6f 20 |ve the reply to | 00002330 61 20 77 69 6d 70 5f 73 74 61 72 74 20 6d 65 73 |a wimp_start mes| 00002340 73 61 67 65 2e 0a 0a 0a 77 69 6d 70 5f 70 6f 6c |sage....wimp_pol| 00002350 6c 0a 0a 20 20 20 20 53 65 6e 64 20 74 68 65 20 |l.. Send the | 00002360 6d 65 73 73 61 67 65 20 74 6f 20 70 6f 6c 6c 20 |message to poll | 00002370 74 68 65 20 73 74 61 74 75 73 20 6f 66 20 61 6e |the status of an| 00002380 20 65 78 74 65 72 6e 61 6c 20 65 64 69 74 2e 0a | external edit..| 00002390 0a 0a 77 69 6d 70 5f 70 6f 6c 6c 5f 72 65 63 65 |..wimp_poll_rece| 000023a0 69 76 65 0a 0a 20 20 20 20 41 74 74 65 6d 70 74 |ive.. Attempt| 000023b0 20 74 6f 20 72 65 63 65 69 76 65 20 74 68 65 20 | to receive the | 000023c0 72 65 70 6c 79 20 74 6f 20 61 20 77 69 6d 70 5f |reply to a wimp_| 000023d0 70 6f 6c 6c 20 6d 65 73 73 61 67 65 2e 0a 0a 0a |poll message....| 000023e0 77 69 6d 70 5f 73 61 76 65 61 73 0a 0a 20 20 20 |wimp_saveas.. | 000023f0 20 53 65 6e 64 20 74 68 65 20 6d 65 73 73 61 67 | Send the messag| 00002400 65 20 74 6f 20 73 61 76 65 20 61 20 66 69 6c 65 |e to save a file| 00002410 2e 0a 0a 0a 77 69 6d 70 5f 73 61 76 65 61 73 5f |....wimp_saveas_| 00002420 72 65 63 65 69 76 65 0a 0a 20 20 20 20 41 74 74 |receive.. Att| 00002430 65 6d 70 74 20 74 6f 20 72 65 63 65 69 76 65 20 |empt to receive | 00002440 74 68 65 20 72 65 70 6c 79 20 74 6f 20 61 20 77 |the reply to a w| 00002450 69 6d 70 5f 73 61 76 65 61 73 20 6d 65 73 73 61 |imp_saveas messa| 00002460 67 65 2e 0a 0a 0a 77 69 6d 70 5f 6f 73 63 6c 69 |ge....wimp_oscli| 00002470 5f 73 74 61 72 74 0a 0a 20 20 20 20 53 74 61 72 |_start.. Star| 00002480 74 20 65 78 65 63 75 74 69 6e 67 20 61 20 73 70 |t executing a sp| 00002490 65 63 69 66 69 65 64 20 2a 63 6f 6d 6d 61 6e 64 |ecified *command| 000024a0 20 69 6e 20 61 20 54 61 73 6b 57 69 6e 64 6f 77 | in a TaskWindow| 000024b0 2e 0a 0a 0a 77 69 6d 70 5f 6f 73 63 6c 69 5f 73 |....wimp_oscli_s| 000024c0 74 61 72 74 5f 72 65 63 65 69 76 65 0a 0a 20 20 |tart_receive.. | 000024d0 20 20 41 74 74 65 6d 70 74 20 74 6f 20 72 65 63 | Attempt to rec| 000024e0 65 69 76 65 20 74 68 65 20 72 65 70 6c 79 20 74 |eive the reply t| 000024f0 6f 20 61 20 77 69 6d 70 5f 6f 73 63 6c 69 5f 73 |o a wimp_oscli_s| 00002500 74 61 72 74 20 6d 65 73 73 61 67 65 2e 0a 0a 0a |tart message....| 00002510 77 69 6d 70 5f 6f 73 63 6c 69 5f 70 6f 6c 6c 0a |wimp_oscli_poll.| 00002520 0a 20 20 20 20 43 6f 6e 74 69 6e 75 65 20 65 78 |. Continue ex| 00002530 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 2a 63 6f |ecution of a *co| 00002540 6d 6d 61 6e 64 20 69 6e 20 61 20 54 61 73 6b 57 |mmand in a TaskW| 00002550 69 6e 64 6f 77 2e 0a 0a 0a 77 69 6d 70 5f 6f 73 |indow....wimp_os| 00002560 63 6c 69 5f 70 6f 6c 6c 5f 72 65 63 65 69 76 65 |cli_poll_receive| 00002570 0a 0a 20 20 20 20 41 74 74 65 6d 70 74 20 74 6f |.. Attempt to| 00002580 20 72 65 63 65 69 76 65 20 74 68 65 20 72 65 70 | receive the rep| 00002590 6c 79 20 74 6f 20 61 20 77 69 6d 70 5f 6f 73 63 |ly to a wimp_osc| 000025a0 6c 69 5f 70 6f 6c 6c 20 6d 65 73 73 61 67 65 2e |li_poll message.| 000025b0 0a 0a 0a 77 69 6d 70 5f 6f 73 63 6c 69 5f 65 6e |...wimp_oscli_en| 000025c0 64 0a 0a 20 20 20 20 54 65 72 6d 69 6e 61 74 65 |d.. Terminate| 000025d0 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 20 | execution of a | 000025e0 2a 63 6f 6d 6d 61 6e 64 20 69 6e 20 61 20 54 61 |*command in a Ta| 000025f0 73 6b 57 69 6e 64 6f 77 2e 0a 0a 0a 77 69 6d 70 |skWindow....wimp| 00002600 5f 6f 73 63 6c 69 5f 65 6e 64 5f 72 65 63 65 69 |_oscli_end_recei| 00002610 76 65 0a 0a 20 20 20 20 41 74 74 65 6d 70 74 20 |ve.. Attempt | 00002620 74 6f 20 72 65 63 65 69 76 65 20 74 68 65 20 72 |to receive the r| 00002630 65 70 6c 79 20 74 6f 20 61 20 77 69 6d 70 5f 6f |eply to a wimp_o| 00002640 73 63 6c 69 5f 65 6e 64 20 6d 65 73 73 61 67 65 |scli_end message| 00002650 2e 0a 0a 0a 4d 45 53 53 41 47 45 20 50 41 53 53 |....MESSAGE PASS| 00002660 49 4e 47 0a 0a 54 68 65 20 41 52 4d 45 64 69 74 |ING..The ARMEdit| 00002670 20 6d 6f 64 75 6c 65 20 70 72 6f 76 69 64 65 73 | module provides| 00002680 20 61 20 67 65 6e 65 72 61 6c 20 6d 65 74 68 6f | a general metho| 00002690 64 20 66 6f 72 20 50 43 20 73 6f 66 74 77 61 72 |d for PC softwar| 000026a0 65 20 74 6f 20 63 6f 6d 6d 75 6e 69 63 61 74 65 |e to communicate| 000026b0 0a 77 69 74 68 20 52 49 53 43 20 4f 53 20 61 70 |.with RISC OS ap| 000026c0 70 6c 69 63 61 74 69 6f 6e 73 20 6f 72 20 6d 6f |plications or mo| 000026d0 64 75 6c 65 73 2e 20 54 68 65 20 73 79 73 74 65 |dules. The syste| 000026e0 6d 20 69 73 20 69 6e 74 65 6e 74 69 6f 6e 61 6c |m is intentional| 000026f0 6c 79 20 6c 65 66 74 0a 73 69 6d 70 6c 65 3b 20 |ly left.simple; | 00002700 6d 61 6e 79 20 61 73 70 65 63 74 73 20 61 72 65 |many aspects are| 00002710 20 6c 65 66 74 20 74 6f 20 75 73 65 72 73 20 6f | left to users o| 00002720 66 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 20 74 |f the protocol t| 00002730 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 73 0a 72 |o implement as.r| 00002740 65 71 75 69 72 65 64 2c 20 65 2e 67 2e 20 64 65 |equired, e.g. de| 00002750 74 65 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e 64 |tection and hand| 00002760 6c 69 6e 67 20 6f 66 20 70 72 6f 62 6c 65 6d 73 |ling of problems| 00002770 2c 20 61 6e 64 20 74 68 65 20 66 6f 72 6d 61 74 |, and the format| 00002780 20 61 6e 64 20 75 73 65 61 67 65 0a 6f 66 20 64 | and useage.of d| 00002790 69 66 66 65 72 65 6e 74 20 6d 65 73 73 61 67 65 |ifferent message| 000027a0 73 2e 0a 0a 54 68 65 20 73 79 73 74 65 6d 20 61 |s...The system a| 000027b0 6c 6c 6f 77 73 20 6d 75 6c 74 69 70 6c 65 20 73 |llows multiple s| 000027c0 69 6d 75 6c 74 61 6e 65 6f 75 73 20 63 6c 69 65 |imultaneous clie| 000027d0 6e 74 73 2c 20 62 6f 74 68 20 75 6e 64 65 72 20 |nts, both under | 000027e0 52 49 53 43 20 4f 53 20 61 6e 64 20 6f 6e 0a 74 |RISC OS and on.t| 000027f0 68 65 20 50 43 2e 20 54 68 69 73 20 6d 61 6b 65 |he PC. This make| 00002800 73 20 69 74 20 73 75 69 74 61 62 6c 65 20 66 6f |s it suitable fo| 00002810 72 20 75 73 65 20 69 6e 20 6d 75 6c 74 69 2d 74 |r use in multi-t| 00002820 61 73 6b 69 6e 67 20 28 6f 72 20 74 61 73 6b 0a |asking (or task.| 00002830 73 77 69 74 63 68 69 6e 67 29 20 65 6e 76 69 72 |switching) envir| 00002840 6f 6e 6d 65 6e 74 73 20 73 75 63 68 20 61 73 20 |onments such as | 00002850 57 69 6e 64 6f 77 73 2e 20 45 61 63 68 20 63 6c |Windows. Each cl| 00002860 69 65 6e 74 20 68 61 73 20 61 20 34 20 62 79 74 |ient has a 4 byt| 00002870 65 20 49 44 20 77 68 69 63 68 20 69 73 0a 70 72 |e ID which is.pr| 00002880 65 61 6c 6c 6f 63 61 74 65 64 20 28 62 79 20 6d |eallocated (by m| 00002890 65 2c 20 6f 6e 20 72 65 71 75 65 73 74 29 20 61 |e, on request) a| 000028a0 6e 64 20 61 20 34 20 62 79 74 65 20 64 79 6e 61 |nd a 4 byte dyna| 000028b0 6d 69 63 61 6c 6c 79 20 61 6c 6c 6f 63 61 74 65 |mically allocate| 000028c0 64 20 28 62 79 20 74 68 65 0a 41 52 4d 45 64 69 |d (by the.ARMEdi| 000028d0 74 20 6d 6f 64 75 6c 65 29 20 68 61 6e 64 6c 65 |t module) handle| 000028e0 2e 20 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 |. There are two | 000028f0 73 70 65 63 69 61 6c 20 49 44 73 3a 20 49 44 20 |special IDs: ID | 00002900 30 20 69 73 20 61 6c 77 61 79 73 20 75 73 65 64 |0 is always used| 00002910 20 62 79 20 50 43 0a 73 6f 66 74 77 61 72 65 2c | by PC.software,| 00002920 20 61 6e 64 20 49 44 20 31 20 69 73 20 75 73 65 | and ID 1 is use| 00002930 64 20 74 6f 20 62 72 6f 61 64 63 61 73 74 20 6d |d to broadcast m| 00002940 65 73 73 61 67 65 73 20 74 6f 20 61 6c 6c 20 63 |essages to all c| 00002950 6c 69 65 6e 74 73 20 28 74 68 69 73 20 69 73 0a |lients (this is.| 00002960 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 6d 6f 72 |explained in mor| 00002970 65 20 64 65 74 61 69 6c 20 62 65 6c 6f 77 29 2e |e detail below).| 00002980 20 4f 74 68 65 72 20 49 44 73 20 61 72 65 20 61 | Other IDs are a| 00002990 6c 6c 6f 63 61 74 65 64 20 74 6f 20 64 69 66 66 |llocated to diff| 000029a0 65 72 65 6e 74 0a 73 65 72 76 69 63 65 73 20 62 |erent.services b| 000029b0 65 69 6e 67 20 70 72 6f 76 69 64 65 64 2e 20 49 |eing provided. I| 000029c0 66 20 61 20 70 72 6f 67 72 61 6d 20 70 72 6f 76 |f a program prov| 000029d0 69 64 65 73 20 61 20 6e 75 6d 62 65 72 20 6f 66 |ides a number of| 000029e0 20 64 69 73 74 69 6e 63 74 20 73 65 72 76 69 63 | distinct servic| 000029f0 65 73 2c 0a 6f 72 20 69 66 20 72 65 71 75 69 72 |es,.or if requir| 00002a00 65 64 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65 |ed for some othe| 00002a10 72 20 72 65 61 73 6f 6e 2c 20 69 74 20 6d 61 79 |r reason, it may| 00002a20 20 68 61 76 65 20 6d 6f 72 65 20 74 68 61 6e 20 | have more than | 00002a30 6f 6e 65 20 49 44 2e 20 54 68 65 20 72 61 6e 67 |one ID. The rang| 00002a40 65 0a 6f 66 20 49 44 73 20 32 20 74 6f 20 32 35 |e.of IDs 2 to 25| 00002a50 35 20 6d 61 79 20 62 65 20 66 72 65 65 6c 79 20 |5 may be freely | 00002a60 75 73 65 64 20 66 6f 72 20 64 65 76 65 6c 6f 70 |used for develop| 00002a70 6d 65 6e 74 20 70 75 72 70 6f 73 65 73 2c 20 62 |ment purposes, b| 00002a80 75 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 0a 75 |ut must not be.u| 00002a90 73 65 64 20 62 79 20 64 69 73 74 72 69 62 75 74 |sed by distribut| 00002aa0 65 64 20 73 6f 66 74 77 61 72 65 2e 0a 0a 57 68 |ed software...Wh| 00002ab0 65 6e 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 |en messages are | 00002ac0 73 65 6e 74 20 74 6f 20 49 44 20 31 20 74 68 65 |sent to ID 1 the| 00002ad0 79 20 61 72 65 20 70 61 73 73 65 64 20 74 6f 20 |y are passed to | 00002ae0 61 6c 6c 20 63 6c 69 65 6e 74 73 20 77 68 69 63 |all clients whic| 00002af0 68 20 61 63 63 65 70 74 0a 6d 65 73 73 61 67 65 |h accept.message| 00002b00 73 20 66 72 6f 6d 20 74 68 65 20 41 52 4d 45 64 |s from the ARMEd| 00002b10 69 74 20 6d 6f 64 75 6c 65 20 28 61 73 20 73 70 |it module (as sp| 00002b20 65 63 69 66 69 65 64 20 77 68 65 6e 20 74 68 65 |ecified when the| 00002b30 20 63 6c 69 65 6e 74 73 20 72 65 67 69 73 74 65 | clients registe| 00002b40 72 29 2e 0a 54 68 69 73 20 69 73 20 6e 6f 72 6d |r)..This is norm| 00002b50 61 6c 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 66 |ally only used f| 00002b60 6f 72 20 61 20 66 65 77 20 73 70 65 63 69 66 69 |or a few specifi| 00002b70 63 20 6d 65 73 73 61 67 65 73 20 28 64 65 73 63 |c messages (desc| 00002b80 72 69 62 65 64 20 69 6e 20 74 68 65 0a 6e 65 78 |ribed in the.nex| 00002b90 74 20 73 65 63 74 69 6f 6e 29 20 77 68 69 63 68 |t section) which| 00002ba0 20 61 72 65 20 75 73 65 66 75 6c 20 74 6f 20 6d | are useful to m| 00002bb0 61 6e 79 20 63 6c 69 65 6e 74 73 2e 20 4f 74 68 |any clients. Oth| 00002bc0 65 72 20 63 6c 69 65 6e 74 73 20 73 68 6f 75 6c |er clients shoul| 00002bd0 64 20 6e 6f 74 20 75 73 65 0a 74 68 69 73 20 66 |d not use.this f| 00002be0 61 63 69 6c 69 74 79 20 65 78 63 65 70 74 20 75 |acility except u| 00002bf0 6e 64 65 72 20 73 70 65 63 69 61 6c 20 63 69 72 |nder special cir| 00002c00 63 75 6d 73 74 61 6e 63 65 73 2e 0a 0a 49 74 20 |cumstances...It | 00002c10 69 73 20 69 6e 74 65 6e 64 65 64 20 74 68 61 74 |is intended that| 00002c20 20 65 61 63 68 20 63 6c 69 65 6e 74 20 70 72 6f | each client pro| 00002c30 76 69 64 65 73 20 61 20 6e 75 6d 62 65 72 20 6f |vides a number o| 00002c40 66 20 72 65 6c 61 74 65 64 20 73 65 72 76 69 63 |f related servic| 00002c50 65 73 20 66 6f 72 20 61 0a 70 61 72 74 69 63 75 |es for a.particu| 00002c60 6c 61 72 20 49 44 2c 20 62 75 74 20 69 74 20 69 |lar ID, but it i| 00002c70 73 20 75 70 20 74 6f 20 74 68 65 20 61 75 74 68 |s up to the auth| 00002c80 6f 72 73 20 6f 66 20 63 6c 69 65 6e 74 73 20 74 |ors of clients t| 00002c90 6f 20 64 65 63 69 64 65 20 68 6f 77 20 74 68 65 |o decide how the| 00002ca0 0a 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 6e 74 |.message content| 00002cb0 73 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 |s should be used| 00002cc0 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 |. However, it is| 00002cd0 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 68 61 | recommended tha| 00002ce0 74 20 61 20 73 65 72 76 69 63 65 0a 73 65 6c 65 |t a service.sele| 00002cf0 63 74 6f 72 20 66 69 65 6c 64 20 69 73 20 70 6c |ctor field is pl| 00002d00 61 63 65 64 20 61 74 20 74 68 65 20 73 74 61 72 |aced at the star| 00002d10 74 20 6f 66 20 61 6c 6c 20 6d 65 73 73 61 67 65 |t of all message| 00002d20 73 2e 0a 0a 45 61 63 68 20 63 6c 69 65 6e 74 20 |s...Each client | 00002d30 68 61 73 20 61 20 6d 65 73 73 61 67 65 20 62 75 |has a message bu| 00002d40 66 66 65 72 20 28 61 6c 6c 6f 63 61 74 65 64 20 |ffer (allocated | 00002d50 62 79 20 74 68 65 20 41 52 4d 45 64 69 74 20 6d |by the ARMEdit m| 00002d60 6f 64 75 6c 65 29 20 75 73 65 64 20 74 6f 0a 74 |odule) used to.t| 00002d70 72 61 6e 73 6d 69 74 20 6d 65 73 73 61 67 65 73 |ransmit messages| 00002d80 2e 20 54 68 69 73 20 62 75 66 66 65 72 20 69 73 |. This buffer is| 00002d90 20 6f 66 20 61 20 66 69 78 65 64 20 73 69 7a 65 | of a fixed size| 00002da0 20 28 31 6b 42 29 20 61 6e 64 20 63 61 6e 20 6f | (1kB) and can o| 00002db0 6e 6c 79 20 63 6f 6e 74 61 69 6e 0a 61 20 73 69 |nly contain.a si| 00002dc0 6e 67 6c 65 20 6d 65 73 73 61 67 65 2e 20 41 74 |ngle message. At| 00002dd0 74 65 6d 70 74 69 6e 67 20 74 6f 20 73 65 6e 64 |tempting to send| 00002de0 20 61 20 6d 65 73 73 61 67 65 20 77 69 74 68 20 | a message with | 00002df0 6f 6e 65 20 61 6c 72 65 61 64 79 20 69 6e 20 74 |one already in t| 00002e00 68 65 20 62 75 66 66 65 72 0a 6f 76 65 72 77 72 |he buffer.overwr| 00002e10 69 74 65 73 20 74 68 65 20 65 61 72 6c 69 65 72 |ites the earlier| 00002e20 20 6d 65 73 73 61 67 65 2c 20 72 65 67 61 72 64 | message, regard| 00002e30 6c 65 73 73 20 6f 66 20 68 6f 77 20 6d 61 6e 79 |less of how many| 00002e40 20 63 6c 69 65 6e 74 73 20 69 74 20 68 61 73 20 | clients it has | 00002e50 62 65 65 6e 0a 64 65 6c 69 76 65 72 65 64 20 74 |been.delivered t| 00002e60 6f 2e 0a 0a 54 6f 20 65 6e 61 62 6c 65 20 65 61 |o...To enable ea| 00002e70 73 79 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f |sy implementatio| 00002e80 6e 20 6f 66 20 73 65 72 76 65 72 73 20 73 75 70 |n of servers sup| 00002e90 70 6f 72 74 69 6e 67 20 6d 75 6c 74 69 70 6c 65 |porting multiple| 00002ea0 20 63 6c 69 65 6e 74 73 2c 20 69 74 20 69 73 0a | clients, it is.| 00002eb0 70 6f 73 73 69 62 6c 65 20 74 6f 20 70 6c 61 63 |possible to plac| 00002ec0 65 20 74 68 65 20 6d 65 73 73 61 67 65 20 69 6e |e the message in| 00002ed0 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e | the destination| 00002ee0 20 63 6c 69 65 6e 74 27 73 20 62 75 66 66 65 72 | client's buffer| 00002ef0 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 0a 6e 6f |. This should.no| 00002f00 72 6d 61 6c 6c 79 20 6f 6e 6c 79 20 62 65 20 75 |rmally only be u| 00002f10 73 65 64 20 62 79 20 74 68 65 20 73 65 72 76 65 |sed by the serve| 00002f20 72 20 74 6f 20 72 65 70 6c 79 20 74 6f 20 61 20 |r to reply to a | 00002f30 6d 65 73 73 61 67 65 2c 20 6f 74 68 65 72 77 69 |message, otherwi| 00002f40 73 65 20 61 0a 6d 65 73 73 61 67 65 20 63 6f 75 |se a.message cou| 00002f50 6c 64 20 62 65 20 6f 76 65 72 77 72 69 74 74 65 |ld be overwritte| 00002f60 6e 2e 0a 0a 4c 61 72 67 65 20 62 6c 6f 63 6b 73 |n...Large blocks| 00002f70 20 6f 66 20 64 61 74 61 20 73 68 6f 75 6c 64 20 | of data should | 00002f80 62 65 20 74 72 61 6e 73 66 65 72 72 65 64 20 76 |be transferred v| 00002f90 69 61 20 66 69 6c 65 73 2e 20 54 68 69 73 20 72 |ia files. This r| 00002fa0 65 64 75 63 65 73 20 74 68 65 0a 72 65 71 75 69 |educes the.requi| 00002fb0 72 65 64 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 |red memory usage| 00002fc0 20 61 6e 64 20 73 68 6f 75 6c 64 20 73 70 65 65 | and should spee| 00002fd0 64 20 75 70 20 6f 70 65 72 61 74 69 6f 6e 73 3b |d up operations;| 00002fe0 20 74 6f 20 73 65 6e 64 20 61 20 6d 65 73 73 61 | to send a messa| 00002ff0 67 65 20 66 72 6f 6d 0a 74 68 65 20 50 43 20 74 |ge from.the PC t| 00003000 6f 20 61 20 57 49 4d 50 20 74 61 73 6b 20 72 65 |o a WIMP task re| 00003010 71 75 69 72 65 73 20 74 68 65 20 50 43 20 66 72 |quires the PC fr| 00003020 6f 6e 74 2d 65 6e 64 20 74 6f 20 62 65 20 70 61 |ont-end to be pa| 00003030 67 65 64 20 69 6e 20 61 6e 64 20 74 68 65 6e 20 |ged in and then | 00003040 74 68 65 0a 57 49 4d 50 20 74 61 73 6b 20 74 6f |the.WIMP task to| 00003050 20 62 65 20 73 75 62 73 65 71 75 65 6e 74 6c 79 | be subsequently| 00003060 20 70 61 67 65 64 20 69 6e 2e 20 48 6f 77 65 76 | paged in. Howev| 00003070 65 72 2c 20 74 72 61 6e 73 66 65 72 72 69 6e 67 |er, transferring| 00003080 20 64 61 74 61 20 74 6f 20 6f 72 20 66 72 6f 6d | data to or from| 00003090 0a 61 20 66 69 6c 65 20 63 61 6e 20 61 6c 6c 20 |.a file can all | 000030a0 62 65 20 64 6f 6e 65 20 77 68 69 6c 65 20 74 68 |be done while th| 000030b0 65 20 50 43 20 66 72 6f 6e 74 2d 65 6e 64 20 69 |e PC front-end i| 000030c0 73 20 70 61 67 65 64 20 69 6e 2e 0a 0a 57 68 65 |s paged in...Whe| 000030d0 6e 20 61 20 6d 65 73 73 61 67 65 20 69 73 20 73 |n a message is s| 000030e0 65 6e 74 20 69 74 20 69 73 20 6e 65 63 65 73 73 |ent it is necess| 000030f0 61 72 79 20 74 6f 20 64 65 74 65 63 74 20 61 6e |ary to detect an| 00003100 64 20 68 61 6e 64 6c 65 20 6e 6f 6e 2d 64 65 6c |d handle non-del| 00003110 69 76 65 72 79 2e 0a 55 6e 66 6f 72 74 75 6e 61 |ivery..Unfortuna| 00003120 74 65 6c 79 20 69 74 20 69 73 20 6e 6f 74 20 65 |tely it is not e| 00003130 61 73 79 20 74 6f 20 64 65 74 65 63 74 20 70 72 |asy to detect pr| 00003140 6f 62 6c 65 6d 73 20 73 69 6e 63 65 20 74 68 65 |oblems since the| 00003150 20 73 65 6e 64 65 72 20 61 6e 64 20 72 65 63 65 | sender and rece| 00003160 69 76 65 72 0a 63 61 6e 6e 6f 74 20 28 67 65 6e |iver.cannot (gen| 00003170 65 72 61 6c 6c 79 29 20 62 65 20 61 63 74 69 76 |erally) be activ| 00003180 65 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69 |e at the same ti| 00003190 6d 65 2c 20 61 6e 64 20 69 74 20 69 73 20 6e 65 |me, and it is ne| 000031a0 63 65 73 73 61 72 79 20 66 6f 72 20 74 68 65 20 |cessary for the | 000031b0 50 43 0a 66 72 6f 6e 74 2d 65 6e 64 20 74 6f 20 |PC.front-end to | 000031c0 62 65 20 6d 75 6c 74 69 2d 74 61 73 6b 69 6e 67 |be multi-tasking| 000031d0 20 69 6e 20 61 20 77 69 6e 64 6f 77 20 66 6f 72 | in a window for| 000031e0 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 74 | communication t| 000031f0 6f 20 62 65 20 70 6f 73 73 69 62 6c 65 0a 62 65 |o be possible.be| 00003200 74 77 65 65 6e 20 50 43 20 61 6e 64 20 52 49 53 |tween PC and RIS| 00003210 43 20 4f 53 20 74 61 73 6b 73 2e 0a 0a 54 68 65 |C OS tasks...The| 00003220 20 73 75 67 67 65 73 74 65 64 20 61 70 70 72 6f | suggested appro| 00003230 61 63 68 20 69 73 20 74 68 61 74 20 61 66 74 65 |ach is that afte| 00003240 72 20 74 68 65 20 6d 65 73 73 61 67 65 20 69 73 |r the message is| 00003250 20 73 65 6e 74 2c 20 74 68 65 20 70 72 6f 67 72 | sent, the progr| 00003260 61 6d 20 77 61 69 74 73 0a 66 6f 72 20 61 20 73 |am waits.for a s| 00003270 68 6f 72 74 20 74 69 6d 65 20 66 6f 72 20 61 20 |hort time for a | 00003280 72 65 70 6c 79 2e 20 49 66 20 6e 6f 20 72 65 70 |reply. If no rep| 00003290 6c 79 20 69 73 20 72 65 63 65 69 76 65 64 20 74 |ly is received t| 000032a0 68 65 6e 20 61 20 6d 65 73 73 61 67 65 20 69 73 |hen a message is| 000032b0 0a 64 69 73 70 6c 61 79 65 64 20 74 6f 20 74 68 |.displayed to th| 000032c0 65 20 75 73 65 72 20 70 72 6f 6d 70 74 69 6e 67 |e user prompting| 000032d0 20 66 6f 72 20 74 68 65 20 50 43 20 74 6f 20 62 | for the PC to b| 000032e0 65 20 70 6c 61 63 65 64 20 69 6e 20 6d 75 6c 74 |e placed in mult| 000032f0 69 2d 74 61 73 6b 69 6e 67 20 6d 6f 64 65 0a 61 |i-tasking mode.a| 00003300 6e 64 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 |nd the relevant | 00003310 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 62 |application to b| 00003320 65 20 73 74 61 72 74 65 64 2e 20 54 68 65 20 70 |e started. The p| 00003330 72 6f 67 72 61 6d 20 73 68 6f 75 6c 64 20 63 6f |rogram should co| 00003340 6e 74 69 6e 75 65 20 74 6f 0a 70 6f 6c 6c 20 66 |ntinue to.poll f| 00003350 6f 72 20 61 20 72 65 70 6c 79 20 75 6e 74 69 6c |or a reply until| 00003360 20 65 69 74 68 65 72 20 73 75 63 63 65 73 73 66 | either successf| 00003370 75 6c 20 6f 72 20 61 62 6f 72 74 65 64 20 62 79 |ul or aborted by| 00003380 20 74 68 65 20 75 73 65 72 2e 0a 0a 54 68 69 73 | the user...This| 00003390 20 63 61 6e 20 62 65 20 73 69 6d 70 6c 69 66 69 | can be simplifi| 000033a0 65 64 20 69 6e 20 6d 61 6e 79 20 73 69 74 75 61 |ed in many situa| 000033b0 74 69 6f 6e 73 20 74 6f 20 73 69 6d 70 6c 79 20 |tions to simply | 000033c0 77 61 69 74 69 6e 67 20 66 6f 72 20 61 20 72 65 |waiting for a re| 000033d0 70 6c 79 20 6f 72 0a 66 6f 72 20 74 68 65 20 75 |ply or.for the u| 000033e0 73 65 72 20 74 6f 20 61 62 6f 72 74 20 74 68 65 |ser to abort the| 000033f0 20 6f 70 65 72 61 74 69 6f 6e 2c 20 65 73 70 65 | operation, espe| 00003400 63 69 61 6c 6c 79 20 61 66 74 65 72 20 6f 6e 65 |cially after one| 00003410 20 73 75 63 63 65 73 73 66 75 6c 0a 63 6f 6d 6d | successful.comm| 00003420 75 6e 69 63 61 74 69 6f 6e 20 68 61 73 20 6f 63 |unication has oc| 00003430 63 75 72 72 65 64 2e 0a 0a 49 66 20 74 68 65 20 |curred...If the | 00003440 50 43 20 66 72 6f 6e 74 2d 65 6e 64 20 69 73 20 |PC front-end is | 00003450 65 69 74 68 65 72 20 72 65 73 65 74 20 6f 72 20 |either reset or | 00003460 71 75 69 74 20 74 68 65 6e 20 61 6c 6c 20 72 65 |quit then all re| 00003470 67 69 73 74 65 72 65 64 20 50 43 20 63 6c 69 65 |gistered PC clie| 00003480 6e 74 73 0a 61 72 65 20 61 75 74 6f 6d 61 74 69 |nts.are automati| 00003490 63 61 6c 6c 79 20 64 65 72 65 67 69 73 74 65 72 |cally deregister| 000034a0 65 64 2c 20 61 6e 64 20 61 6e 79 20 70 65 6e 64 |ed, and any pend| 000034b0 69 6e 67 20 6d 65 73 73 61 67 65 73 20 74 6f 20 |ing messages to | 000034c0 6f 72 20 66 72 6f 6d 20 74 68 65 6d 20 61 72 65 |or from them are| 000034d0 0a 64 69 73 63 61 72 64 65 64 2e 0a 0a 0a 53 54 |.discarded....ST| 000034e0 41 4e 44 41 52 44 20 4d 45 53 53 41 47 45 53 0a |ANDARD MESSAGES.| 000034f0 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d |.The following m| 00003500 65 73 73 61 67 65 73 20 61 72 65 20 73 65 6e 74 |essages are sent| 00003510 20 62 79 20 74 68 65 20 41 52 4d 45 64 69 74 20 | by the ARMEdit | 00003520 6d 6f 64 75 6c 65 20 74 6f 20 63 6c 69 65 6e 74 |module to client| 00003530 73 20 77 68 69 63 68 0a 72 65 71 75 65 73 74 20 |s which.request | 00003540 74 68 65 6d 2e 20 41 6c 6c 20 6f 66 20 74 68 65 |them. All of the| 00003550 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 73 65 | messages are se| 00003560 6e 74 20 66 72 6f 6d 20 63 6c 69 65 6e 74 20 49 |nt from client I| 00003570 44 20 31 2e 20 41 6e 79 20 75 6e 72 65 63 6f 67 |D 1. Any unrecog| 00003580 6e 69 73 65 64 0a 6d 65 73 73 61 67 65 73 20 73 |nised.messages s| 00003590 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 |hould be ignored| 000035a0 2e 0a 0a 20 20 20 20 52 65 73 65 74 0a 20 20 20 |... Reset. | 000035b0 20 0a 20 20 20 20 20 20 20 20 45 71 75 69 76 61 | . Equiva| 000035c0 6c 65 6e 74 20 6f 66 20 70 6f 77 65 72 2d 6f 6e |lent of power-on| 000035d0 20 72 65 73 65 74 2e 20 54 68 69 73 20 73 68 6f | reset. This sho| 000035e0 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20 62 65 20 |uld normally be | 000035f0 75 73 65 64 20 74 6f 20 72 65 73 65 74 0a 20 20 |used to reset. | 00003600 20 20 20 20 20 20 61 6e 79 20 73 74 61 74 65 2e | any state.| 00003610 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 4f 66 |. . Of| 00003620 66 73 65 74 20 20 53 69 7a 65 20 20 20 20 44 65 |fset Size De| 00003630 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 |scription. | 00003640 20 20 0a 20 20 20 20 20 20 20 20 30 20 20 20 20 | . 0 | 00003650 20 20 20 34 20 20 20 20 20 20 20 52 65 61 73 6f | 4 Reaso| 00003660 6e 20 63 6f 64 65 20 3d 20 30 2e 0a 20 20 20 20 |n code = 0.. | 00003670 0a 20 20 20 20 0a 20 20 20 20 53 68 75 74 64 6f |. . Shutdo| 00003680 77 6e 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 |wn. . | 00003690 54 68 65 20 50 43 20 66 72 6f 6e 74 2d 65 6e 64 |The PC front-end| 000036a0 20 69 73 20 62 65 69 6e 67 20 71 75 69 74 20 28 | is being quit (| 000036b0 6e 6f 72 6d 61 6c 20 6f 72 20 65 72 72 6f 72 20 |normal or error | 000036c0 65 78 69 74 29 2e 0a 20 20 20 20 20 20 20 20 0a |exit).. .| 000036d0 20 20 20 20 20 20 20 20 4f 66 66 73 65 74 20 20 | Offset | 000036e0 53 69 7a 65 20 20 20 20 44 65 73 63 72 69 70 74 |Size Descript| 000036f0 69 6f 6e 0a 20 20 20 20 20 20 20 20 0a 20 20 20 |ion. . | 00003700 20 20 20 20 20 30 20 20 20 20 20 20 20 34 20 20 | 0 4 | 00003710 20 20 20 20 20 52 65 61 73 6f 6e 20 63 6f 64 65 | Reason code| 00003720 20 3d 20 31 2e 0a 0a 0a 4c 45 47 41 4c 20 4d 41 | = 1....LEGAL MA| 00003730 54 54 45 52 53 0a 0a 54 68 65 20 22 41 52 4d 45 |TTERS..The "ARME| 00003740 64 69 74 22 20 68 65 61 64 65 72 20 66 69 6c 65 |dit" header file| 00003750 73 2c 20 6f 62 6a 65 63 74 20 66 69 6c 65 73 20 |s, object files | 00003760 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f |and documentatio| 00003770 6e 20 61 72 65 20 73 75 70 70 6c 69 65 64 20 22 |n are supplied "| 00003780 61 73 0a 69 73 22 3b 20 6e 6f 20 77 61 72 72 61 |as.is"; no warra| 00003790 6e 74 79 2c 20 65 78 70 72 65 73 73 20 6f 72 20 |nty, express or | 000037a0 69 6d 70 6c 69 65 64 2c 20 6f 66 20 74 68 65 20 |implied, of the | 000037b0 6d 65 72 63 68 61 6e 74 61 62 69 6c 69 74 79 20 |merchantability | 000037c0 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 |of this software| 000037d0 0a 6f 72 20 69 74 73 20 66 69 74 6e 65 73 73 20 |.or its fitness | 000037e0 66 6f 72 20 61 6e 79 20 70 61 72 74 69 63 75 6c |for any particul| 000037f0 61 72 20 70 75 72 70 6f 73 65 20 69 73 20 67 69 |ar purpose is gi| 00003800 76 65 6e 2e 20 49 6e 20 6e 6f 20 63 69 72 63 75 |ven. In no circu| 00003810 6d 73 74 61 6e 63 65 73 20 73 68 61 6c 6c 0a 74 |mstances shall.t| 00003820 68 65 20 61 75 74 68 6f 72 2c 20 6f 72 20 61 6e |he author, or an| 00003830 79 20 70 72 6f 76 69 64 65 72 20 6f 72 20 64 69 |y provider or di| 00003840 73 74 72 69 62 75 74 6f 72 20 6f 66 20 74 68 69 |stributor of thi| 00003850 73 20 73 6f 66 74 77 61 72 65 2c 20 62 65 20 6c |s software, be l| 00003860 69 61 62 6c 65 20 66 6f 72 0a 61 6e 79 20 64 61 |iable for.any da| 00003870 6d 61 67 65 2c 20 6c 6f 73 73 20 6f 66 20 70 72 |mage, loss of pr| 00003880 6f 66 69 74 73 2c 20 6f 72 20 61 6e 79 20 69 6e |ofits, or any in| 00003890 64 69 72 65 63 74 20 6f 72 20 63 6f 6e 73 65 71 |direct or conseq| 000038a0 75 65 6e 74 69 61 6c 20 6c 6f 73 73 20 61 72 69 |uential loss ari| 000038b0 73 69 6e 67 0a 6f 75 74 20 6f 66 20 74 68 65 20 |sing.out of the | 000038c0 75 73 65 20 6f 66 20 74 68 69 73 20 73 6f 66 74 |use of this soft| 000038d0 77 61 72 65 20 6f 72 20 69 6e 61 62 69 6c 69 74 |ware or inabilit| 000038e0 79 20 74 6f 20 75 73 65 20 74 68 69 73 20 73 6f |y to use this so| 000038f0 66 74 77 61 72 65 2e 0a 0a 54 68 65 73 65 20 66 |ftware...These f| 00003900 69 6c 65 73 20 61 72 65 20 46 72 65 65 57 61 72 |iles are FreeWar| 00003910 65 2e 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 |e. Permission is| 00003920 20 67 72 61 6e 74 65 64 20 66 6f 72 20 61 6e 79 | granted for any| 00003930 6f 6e 65 20 74 6f 20 75 73 65 20 74 68 65 6d 20 |one to use them | 00003940 66 6f 72 0a 74 68 65 20 73 6f 6c 65 20 70 75 72 |for.the sole pur| 00003950 70 6f 73 65 20 6f 66 20 64 65 76 65 6c 6f 70 69 |pose of developi| 00003960 6e 67 20 73 6f 66 74 77 61 72 65 20 66 6f 72 20 |ng software for | 00003970 75 73 65 20 77 69 74 68 20 74 68 65 20 41 52 4d |use with the ARM| 00003980 45 64 69 74 20 73 75 69 74 65 2e 20 41 6e 79 0a |Edit suite. Any.| 00003990 73 75 63 68 20 73 6f 66 74 77 61 72 65 20 6d 61 |such software ma| 000039a0 79 20 62 65 20 66 72 65 65 6c 79 20 64 69 73 74 |y be freely dist| 000039b0 72 69 62 75 74 65 64 2c 20 70 72 6f 76 69 64 69 |ributed, providi| 000039c0 6e 67 20 74 68 61 74 20 75 73 65 20 6f 66 20 74 |ng that use of t| 000039d0 68 65 20 73 75 70 70 6c 69 65 64 0a 66 69 6c 65 |he supplied.file| 000039e0 73 20 69 73 20 61 63 6b 6e 6f 77 6c 65 64 67 65 |s is acknowledge| 000039f0 64 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e |d in the documen| 00003a00 74 61 74 69 6f 6e 2e 0a 0a 48 6f 77 65 76 65 72 |tation...However| 00003a10 2c 20 74 68 65 20 41 52 4d 45 64 69 74 20 6d 6f |, the ARMEdit mo| 00003a20 64 75 6c 65 20 6d 61 79 20 6f 6e 6c 79 20 62 65 |dule may only be| 00003a30 20 64 69 73 74 69 62 75 74 65 64 20 69 6e 20 61 | distibuted in a| 00003a40 63 63 6f 72 64 61 6e 63 65 20 77 69 74 68 20 74 |ccordance with t| 00003a50 68 65 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 63 6f |he.conditions co| 00003a60 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 52 |ntained in the R| 00003a70 65 61 64 4d 65 20 66 69 6c 65 20 65 6e 63 6c 6f |eadMe file enclo| 00003a80 73 65 64 20 69 6e 20 74 68 69 73 20 64 69 73 74 |sed in this dist| 00003a90 72 69 62 75 74 69 6f 6e 2e 0a 0a 0a 54 48 49 4e |ribution....THIN| 00003aa0 47 53 20 54 4f 20 44 4f 0a 0a 54 68 65 20 66 6f |GS TO DO..The fo| 00003ab0 6c 6c 6f 77 69 6e 67 20 61 72 65 20 63 68 61 6e |llowing are chan| 00003ac0 67 65 73 20 74 68 61 74 20 6d 61 79 20 62 65 20 |ges that may be | 00003ad0 6d 61 64 65 20 74 6f 20 74 68 65 20 65 78 74 65 |made to the exte| 00003ae0 72 6e 61 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 |rnally available| 00003af0 0a 73 65 72 76 69 63 65 73 20 73 6f 6d 65 74 69 |.services someti| 00003b00 6d 65 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 |me in the future| 00003b10 2e 0a 0a 20 20 20 20 4e 6f 6e 65 20 61 74 20 74 |... None at t| 00003b20 68 65 20 6d 6f 6d 65 6e 74 21 0a 0a 0a 56 45 52 |he moment!...VER| 00003b30 53 49 4f 4e 20 48 49 53 54 4f 52 59 0a 0a 30 2e |SION HISTORY..0.| 00003b40 30 30 20 28 31 32 2d 4e 6f 76 2d 39 35 29 20 20 |00 (12-Nov-95) | 00003b50 20 20 4f 72 69 67 69 6e 61 6c 20 64 65 76 65 6c | Original devel| 00003b60 6f 70 6d 65 6e 74 20 76 65 72 73 69 6f 6e 2e 0a |opment version..| 00003b70 0a 30 2e 30 34 20 28 31 36 2d 44 65 63 2d 39 35 |.0.04 (16-Dec-95| 00003b80 29 20 20 20 20 46 69 72 73 74 20 70 75 62 6c 69 |) First publi| 00003b90 63 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 72 65 |c development re| 00003ba0 6c 65 61 73 65 2e 0a 0a 30 2e 30 35 20 28 31 37 |lease...0.05 (17| 00003bb0 2d 44 65 63 2d 39 35 29 20 20 20 20 49 6d 70 72 |-Dec-95) Impr| 00003bc0 6f 76 65 64 20 66 69 6c 65 6e 61 6d 65 20 74 72 |oved filename tr| 00003bd0 61 6e 73 6c 61 74 69 6f 6e 2e 0a 0a 30 2e 30 37 |anslation...0.07| 00003be0 20 28 32 38 2d 44 65 63 2d 39 35 29 20 20 20 20 | (28-Dec-95) | 00003bf0 41 64 64 65 64 20 6d 65 73 73 61 67 65 20 70 61 |Added message pa| 00003c00 73 73 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 0a |ssing protocol..| 00003c10 0a 31 2e 30 30 20 28 31 32 2d 4a 61 6e 2d 39 36 |.1.00 (12-Jan-96| 00003c20 29 20 20 20 20 46 69 72 73 74 20 6f 66 66 69 63 |) First offic| 00003c30 69 61 6c 20 72 65 6c 65 61 73 65 20 76 65 72 73 |ial release vers| 00003c40 69 6f 6e 2e 0a 0a 31 2e 30 31 20 28 31 31 2d 4d |ion...1.01 (11-M| 00003c50 61 72 2d 39 36 29 20 20 20 20 56 65 72 73 69 6f |ar-96) Versio| 00003c60 6e 20 6e 75 6d 62 65 72 20 75 70 64 61 74 65 64 |n number updated| 00003c70 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 6d 6f | to match the mo| 00003c80 64 75 6c 65 2e 0a 0a 31 2e 30 32 20 28 30 36 2d |dule...1.02 (06-| 00003c90 41 75 67 2d 39 36 29 20 20 20 20 4c 69 6e 6b 61 |Aug-96) Linka| 00003ca0 67 65 20 63 6f 72 72 65 63 74 65 64 20 66 6f 72 |ge corrected for| 00003cb0 20 41 52 4d 46 49 4c 45 2e 48 2f 2e 4f 42 4a 2e | ARMFILE.H/.OBJ.| 00003cc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00003cd0 20 20 20 20 20 41 64 64 65 64 20 64 61 74 65 20 | Added date | 00003ce0 61 6e 64 20 74 69 6d 65 20 63 6f 6e 76 65 72 73 |and time convers| 00003cf0 69 6f 6e 20 72 6f 75 74 69 6e 65 73 2e 0a 20 20 |ion routines.. | 00003d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003d10 20 20 50 6c 61 63 65 64 20 74 68 65 20 69 6e 64 | Placed the ind| 00003d20 69 76 69 64 75 61 6c 20 6f 62 65 63 74 20 66 69 |ividual obect fi| 00003d30 6c 65 73 20 69 6e 20 61 20 6c 69 62 72 61 72 79 |les in a library| 00003d40 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 00003d50 20 20 20 20 20 20 53 75 70 70 6f 72 74 20 66 6f | Support fo| 00003d60 72 20 41 63 6f 72 6e 27 73 20 73 6f 66 74 77 61 |r Acorn's softwa| 00003d70 72 65 20 50 43 20 65 6d 75 6c 61 74 6f 72 20 69 |re PC emulator i| 00003d80 6e 63 6c 75 64 65 64 2e 0a 20 20 20 20 20 20 20 |ncluded.. | 00003d90 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 63 | Inc| 00003da0 6c 75 64 65 20 2a 63 6f 6d 6d 61 6e 64 20 69 6e |lude *command in| 00003db0 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 20 20 |terface.. | 00003dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 6f | Pro| 00003dd0 76 69 64 65 64 20 6d 65 63 68 61 6e 69 73 6d 20 |vided mechanism | 00003de0 66 6f 72 20 63 68 65 63 6b 69 6e 67 20 64 65 6c |for checking del| 00003df0 69 76 65 72 79 20 6f 66 20 6d 65 73 73 61 67 65 |ivery of message| 00003e00 73 2e 0a 0a 31 2e 30 33 20 28 32 31 2d 46 65 62 |s...1.03 (21-Feb| 00003e10 2d 39 37 29 20 20 20 20 45 78 74 65 6e 64 65 64 |-97) Extended| 00003e20 20 6d 65 73 73 61 67 65 20 70 61 73 73 69 6e 67 | message passing| 00003e30 20 74 6f 20 73 75 70 70 6f 72 74 20 72 65 70 6c | to support repl| 00003e40 69 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 |ies.. | 00003e50 20 20 20 20 20 20 20 20 20 49 6e 63 6c 75 64 65 | Include| 00003e60 64 20 63 6f 6e 74 72 6f 6c 20 6f 76 65 72 20 6d |d control over m| 00003e70 75 6c 74 69 74 61 73 6b 69 6e 67 2e 0a 20 20 20 |ultitasking.. | 00003e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003e90 20 41 64 64 65 64 20 61 62 69 6c 69 74 79 20 74 | Added ability t| 00003ea0 6f 20 67 65 6e 65 72 61 74 65 20 74 65 6d 70 6f |o generate tempo| 00003eb0 72 61 72 79 20 66 69 6c 65 6e 61 6d 65 73 2e 0a |rary filenames..| 00003ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003ed0 20 20 20 20 4f 70 65 72 61 74 69 6f 6e 20 75 6e | Operation un| 00003ee0 64 65 72 20 57 69 6e 64 6f 77 73 20 6d 61 64 65 |der Windows made| 00003ef0 20 6d 6f 72 65 20 72 65 6c 69 61 62 6c 65 2e 0a | more reliable..| 00003f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003f10 20 20 20 20 49 6e 63 6c 75 64 65 64 20 76 65 6e | Included ven| 00003f20 65 65 72 73 20 74 6f 20 74 68 65 20 41 52 4d 45 |eers to the ARME| 00003f30 64 69 74 20 53 57 49 73 2e 0a 20 20 20 20 20 20 |dit SWIs.. | 00003f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 64 | Ad| 00003f50 64 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 |ded function to | 00003f60 63 72 65 61 74 65 20 61 20 52 49 53 43 20 4f 53 |create a RISC OS| 00003f70 20 64 69 72 65 63 74 6f 72 79 2e 0a 20 20 20 20 | directory.. | 00003f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003f90 48 65 61 64 65 72 20 66 69 6c 65 73 20 72 65 66 |Header files ref| 00003fa0 6f 72 6d 61 74 74 65 64 20 74 6f 20 75 73 65 20 |ormatted to use | 00003fb0 73 70 61 63 65 73 20 69 6e 73 74 65 61 64 20 6f |spaces instead o| 00003fc0 66 20 74 61 62 73 2e 0a 0a 31 2e 30 34 20 28 30 |f tabs...1.04 (0| 00003fd0 37 2d 44 65 63 2d 39 37 29 20 20 20 20 41 64 64 |7-Dec-97) Add| 00003fe0 65 64 20 61 62 69 6c 69 74 79 20 74 6f 20 66 69 |ed ability to fi| 00003ff0 6c 74 65 72 20 6f 75 74 70 75 74 20 66 72 6f 6d |lter output from| 00004000 20 4f 53 43 4c 49 20 66 75 6e 63 74 69 6f 6e 73 | OSCLI functions| 00004010 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 00004020 20 20 20 20 20 20 49 6e 63 6c 75 64 65 64 20 65 | Included e| 00004030 78 74 72 61 20 68 65 61 64 65 72 20 66 69 6c 65 |xtra header file| 00004040 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 6e 64 |s from the stand| 00004050 61 72 64 20 75 74 69 6c 69 74 69 65 73 2e |ard utilities.| 0000405e