Home » Archimedes archive » Archimedes World » archimedes_world_volume_15_issue_2_scp.adf » !ARMEdit_ARMEdit » Docs/Module

Docs/Module

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/Module
Read OK:
File size: 43BB bytes
Load address: 0000
Exec address: 0000
File contents
File        : Module
Date        : 07-Dec-97
Author      : � A.Thoukydides, 1995, 1996, 1997
Description : Description of the ARMEdit module.


INTRODUCTION

The ARMEdit module forms the core of the ARMEdit suite of software. It
provides the communications between software running on the PC card and
RISC�OS.

The module should normally be loaded after the desktop has been started, but
before the PC front-end has been loaded. However, if Wimp$ScrapDir is set to
a suitable value then the module may be loaded before the desktop has been
entered. A good place for loading the ARMEdit module is in the !Run file of
the PC front-end.

The current version of this module will work with versions of the PC
front-end software 1.87 and above. However, significantly better performance
will be obtained if PCPro (!PC version 2.00 of higher) is used. The version
number is displayed in the Info window from the icon-bar icon. See the
Contacts documentation for details of how to obtain upgrades.


SYSTEM VARIABLES

The ARMEdit module sets and uses the following system variables:

    ARMEdit$Path
    
        Path used to access Messages file. This is normally set to point to
        the file contained within the module and placed in ResourceFS.
        
    
    ARMEdit$ScrapDir
    
        Directory used for temporary files. This is normally set to
        <Wimp$Scrap>.ARMEdit, but may be changed if required. If there is
        sufficient memory in the computer then better performance would
        result from placing this in a RAM disc.
        
        The module sets and uses this variable (if not already defined)
        during initialisation. Hence it is necessary for <Wimp$Scrap> to be
        defined before the module is loaded.
    

*COMMANDS

The following *commands are provided by the ARMEdit module:
        

    *ARMEdit_Clients
    
        This command displays details of the clients that have registered
        with the ARMEdit module for communication purposes.


    *ARMEdit_Devices
    
        List the RISC OS path of all active emulated devices. Several other
        details are also listed for each device.


    *ARMEdit_DevicesRelog [-now]
    
        Force a relog of the RISC OS directory structure. This releases most
        of the memory claimed to support device driver operation and closes
        open files.

        Note that this may not take immediate effect - DOS must acknowledge
        a change of disc before any relog occurs. This normally occurs if
        no files are open on the device, and a simple operation (such as
        typing DIR) is performed on the drive. Note that each emulated device
        is treated seperately; some devices may be reset before others.
        
        The -now switch forces an immediate reset. This should only be used
        if essential, and must never be used in the middle of a disc access,
        otherwise DOS could be confused by an inconsistent disc image.
        
        It can be useful to call this from the DOS command line using the
        OSCLI command (supplied as part of the ARMEdit suite) - perhaps it
        should be placed in a DOS batch file for easier use.


    *ARMEdit_DOSMap
    
        This command updates the cached list of mappings between DOS
        extensions and RISC OS filetypes. These details are read initially
        from DOSFS, but may be re-read at any time using this command.
        

    *ARMEdit_Files

        This command displays details of the RISC OS files currently open for
        PC software. For each open file the file handle and filename is
        displayed. There is also a field that indicates whether the file will
        automatically be deleted when it is closed (either explicitly by the
        PC software, or when the PC is reset or quit).
        
        Any files opened for the device driver are also listed.
        

    *ARMEdit_Memory

        This command displays details of the RISC OS memory currently being
        used by PC software. For each block of memory claimed the base
        address and size of the block is displayed.
        
        The memory is currently allocated from the RMA, but a header is
        attached to the start of each block. Hence the address displayed is
        not the start of a heap block. The information in the header is used
        to automatically release the memory when the PC is reset or quit if
        the PC software fails to do so.


    *ARMEdit_Polling [[-fore] <polls>] [[-back] <polls>]

        This command allows the multitasking speed of the PC card to be
        controlled. Larger values increase the performance of the PC card
        at the expense of slowing down the desktop. A value of 0 results
        in the normal behaviour.
        
        Use with no parameters to display the current settings. If only
        a single value is specified (without switches) then both settings
        are updated.
        

    *ARMEdit_Version
    
        This command displays the version numbers of the data structures used
        by the most recently used PC front-end. It also displays the range of
        versions catered for by this version of the module.


SWIs

The following SWIs are provided by the ARMEdit module. For more details
regarding the use of the communciations SWIs see the Code documentation.


SWI "ARMEdit_ControlPC" (&4BC40)

    Control the PC front-end.
    
    On entry:
    
        R0 = Operation to perform:
        
                0   Suspend full screen mode
                1   Freeze running in a window
                2   Reset the PC
                3   Quit the front-end

    On exit:
    
        All registers preserved.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        This call allows the PC front-end to be controlled. Note that if the
        PC front-end is not the current application then this will only take
        effect the next time the front-end is paged in.
        
        Note that suspending full screen mode only starts execution in a
        window if enabled by the current configuration.


SWI "ARMEdit_TalkStart" (&4BC41)

    Register a new client task.
    
    On entry:
    
        R0 = Pre-allocated ID for this task.
        R1 = Flags (see below).
        R2 = Pointer to a function to be called when a message is available,
             or 0 for none.
        R3 = Value for R12 to contain when function pointed to by R2 is
             called.

    On exit:
    
        R0 = A unique client handle.
        R1 = Pointer to a poll word for this task.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        An application that provides services to PC software should call this
        when it is starting. A message buffer is allocated and a unique
        handle for this task assigned. This handle should be stored and used
        in all other calls relating to this task.
        
        The currently defined flag bits are:
        
            Bit     Meaning if set
            
            0       Messages from the ARMEdit module are required.
        
        All other bits should be set to 0 to allow for future expansion.
        
        The poll word is initially set to zero. When there is potentially a
        message waiting for this task the poll word is set to a non-zero
        value. The poll word is cleared when either the message has been
        read, or no message is available for some other reason. Note that a
        non-zero poll word does not imply that a message will be available;
        another task might have read the message if it was not directed to
        a specific handle. The poll word must not be written to; it must only
        be modified by the ARMEdit module.


SWI "ARMEdit_TalkEnd" (&4BC42)

    Deregister a client task.
    
    On entry:
    
        R0 = The previously assigned handle for this client task.

    On exit:
    
        All registers preserved.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        All applications that call ARMEdit_TalkStart must call this before
        they terminate. This releases the message buffer and allows other
        tasks to detect whether particular services are available.


SWI "ARMEdit_TalkTX" (&4BC43)

    Send a message to another client task.
    
    On entry:
    
        R0 = Client handle for this task.
        R1 = Either the ID or client handle for the recipient (if R2 not 0).
        R2 = Pointer to block containing the message to send, or 0 to check
             if the buffer already contains a message.

    On exit:
    
        R2 = Pointer to message buffer, or 0 if no message is waiting to be
             delivered.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        Send a message to another task. The destination task can be specified
        using either it's ID or client handle. If the ID is specified then it
        will be offered to each matching task that polls it until it is
        acknowledged. A particular message is only offered to each task once.
        When sending messages to PC software (ID = 0) the handle should
        always be specified.
        
        Note that the message buffer for each task can only contain a single
        message to send; if there is already a message waiting to be
        delivered then it is overwritten. When multiple clients are used,
        this SWI should first be called with R2 = 0 to check if a message
        is still waiting. Broadcast messages are never cleared automatically.


SWI "ARMEdit_TalkRX" (&4BC44)

    Check for any waiting messages for this client task.
    
    On entry:
    
        R0 = Client handle for this task.

    On exit:
    
        R0 = Pointer to block containing waiting message, or 0 if no messages
             waiting.
        R1 = Source ID.
        R2 = Source client handle.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:

        Check for any waiting messages. If none are available R0 contains 0
        on exit, otherwise it contains a pointer to the first message. The
        message should be checked, and if it is claimed ARMEdit_TalkAck or
        ARMEdit_TalkReply should be called to prevent it being passed to
        other clients. Any information required from the message must be read
        or copied immediately, since the message could be overwritten by a
        new message.
        
        The specified source client handle should be used for any reply;
        unlike the ID it uniquely identifies a particular instantiation of a
        client.
        
        If this call is successful then it should be called again; it is
        possible for multiple messages to be pending for a single client.


SWI "ARMEdit_TalkAck" (&4BC45)

    Claim the most recently read message.
    
    On entry:
    
        R0 = Client handle for this task.

    On exit:
    
        All registers preserved.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        After reading a message with ARMEdit_TalkRX, this call should be
        used to claim the message, and to prevent it being offered to other
        clients. This should be used before calling any other SWIs from this
        module.
        
        If the message was sent by the ARMEdit module then calling this SWI
        has no effect; other clients still receive the message.


SWI "ARMEdit_HPC" (&4BC46)

    Call an ARMEdit HPC service.
    
    On entry:
    
        R0 = Length of first input block.
        R1 = Pointer to first input block.
        R2 = Length of second input block.
        R3 = Pointer to second input block.
        R4 = Length of first output block.
        R5 = Pointer to first output block.
        R6 = Length of second output block.
        R7 = Pointer to second output block.

    On exit:
    
        All registers preserved.

    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        This call may either be used to test HPC services, or to provide
        access to the routines from a system that does not support either of
        the communications systems used normally by the ARMEdit system.
        
        For convenience the input and output data may be split into two
        portions. Any length value may be zero to omit that portion. The
        input data must be at least two bytes long to contain a valid ID.


SWI "ARMEdit_Polling" (&4BC47)

    Control the multitasking speed of the PC card.
    
    On entry:
    
        R0 = Foreground speed, or -1 to read the current setting.
        R1 = Background speed, or -1 to read the current setting.

    On exit:
    
        R0 = The current foreground speed.
        R1 = The current background speed.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        This call has has a similar use to *ARMEdit_Polling.

        Larger values increase the performance of the PC card at the expense
        of slowing down the desktop. A value of 0 results in the normal
        behaviour.


SWI "ARMEdit_TalkReply" (&4BC48)

    Reply to a message from another client task.
    
    On entry:
    
        R0 = Client handle for this task.
        R1 = The client handle for the recipient.
        R2 = Pointer to block containing the message to send.

    On exit:
    
        All registers preserved.
    
    Interrupts:
    
        Interrupt status is undefined.
        Fast interrupts are enabled.

    Processor mode:
    
        Processor is in SVC mode.

    Re-entrancy:
    
        SWI is not re-entrant.

    Use:
    
        This is like ARMEdit_TalkTX, except that the message is stored in the
        destination task's message buffer. The destination task must be
        specified by it's client handle; it is not possible to send the
        message to an ID.
        
        The main use of this call is to support the easy creation of RISC OS
        tasks acting as a server for multiple PC tasks.


THINGS TO DO

The following are changes that may be made to the ARMEdit module sometime in
the future.

    None at the moment!


VERSION HISTORY

0.00 (12-Nov-95)    Original development version.

0.01 (14-Nov-95)    Fixed bugs in file handling. Removed stray debugging code.
                    Sets variable for scrap directory and ensure it exists.

0.02 (15-Nov-95)    Included extra command to display PC front-end version.
                    Fixed workspace handling for *commands. (Oops!)

0.03 (17-Nov-95)    Uses correct HPC service identifier.
                    Includes development versions of device driver support.

0.04 (21-Nov-95)    Implemented the *commands and real HPC support.

0.06 (22-Dec-95)    Added SWI to control the PC front-end.

0.07 (28-Dec-95)    Added message passing protocol.

1.00 (12-Jan-96)    First official release version.

1.01 (11-Feb-96)    Does not crash when no DOSMap mappings defined.
                    Module can be loaded after new versions of the PC front-end.

1.02 (06-Aug-96)    Some memory management moved to a dynamic area if available.
                    Device driver support added.
                    Routines to convert date and time stamps included.
                    Added SWI to call internal HPC services.
                    Corrected command help texts.
                    Added command to set multitasking speed of PC front-end.
                    Provided mechanism for checking delivery of messages.

1.03 (21-Feb-97)    Added SWI to set multitasking speed of PC front-end.
                    Added SWI to reply to a message.
                    Broadcast messages from the ARMEdit module are now sent.
                    Speed control now works correctly with PC front-end 2v02.
                    Extended *ARMEdit_DevicesRelog to force immediate relog.

1.04 (07-Dec-97)    Extra information is displayed for *ARMEdit_Devices.
                    *ARMEdit_Files also lists files used by the device driver.
00000000  46 69 6c 65 20 20 20 20  20 20 20 20 3a 20 4d 6f  |File        : Mo|
00000010  64 75 6c 65 0a 44 61 74  65 20 20 20 20 20 20 20  |dule.Date       |
00000020  20 3a 20 30 37 2d 44 65  63 2d 39 37 0a 41 75 74  | : 07-Dec-97.Aut|
00000030  68 6f 72 20 20 20 20 20  20 3a 20 a9 20 41 2e 54  |hor      : . A.T|
00000040  68 6f 75 6b 79 64 69 64  65 73 2c 20 31 39 39 35  |houkydides, 1995|
00000050  2c 20 31 39 39 36 2c 20  31 39 39 37 0a 44 65 73  |, 1996, 1997.Des|
00000060  63 72 69 70 74 69 6f 6e  20 3a 20 44 65 73 63 72  |cription : Descr|
00000070  69 70 74 69 6f 6e 20 6f  66 20 74 68 65 20 41 52  |iption of the AR|
00000080  4d 45 64 69 74 20 6d 6f  64 75 6c 65 2e 0a 0a 0a  |MEdit module....|
00000090  49 4e 54 52 4f 44 55 43  54 49 4f 4e 0a 0a 54 68  |INTRODUCTION..Th|
000000a0  65 20 41 52 4d 45 64 69  74 20 6d 6f 64 75 6c 65  |e ARMEdit module|
000000b0  20 66 6f 72 6d 73 20 74  68 65 20 63 6f 72 65 20  | forms the core |
000000c0  6f 66 20 74 68 65 20 41  52 4d 45 64 69 74 20 73  |of the ARMEdit s|
000000d0  75 69 74 65 20 6f 66 20  73 6f 66 74 77 61 72 65  |uite of software|
000000e0  2e 20 49 74 0a 70 72 6f  76 69 64 65 73 20 74 68  |. It.provides th|
000000f0  65 20 63 6f 6d 6d 75 6e  69 63 61 74 69 6f 6e 73  |e communications|
00000100  20 62 65 74 77 65 65 6e  20 73 6f 66 74 77 61 72  | between softwar|
00000110  65 20 72 75 6e 6e 69 6e  67 20 6f 6e 20 74 68 65  |e running on the|
00000120  20 50 43 20 63 61 72 64  20 61 6e 64 0a 52 49 53  | PC card and.RIS|
00000130  43 a0 4f 53 2e 0a 0a 54  68 65 20 6d 6f 64 75 6c  |C.OS...The modul|
00000140  65 20 73 68 6f 75 6c 64  20 6e 6f 72 6d 61 6c 6c  |e should normall|
00000150  79 20 62 65 20 6c 6f 61  64 65 64 20 61 66 74 65  |y be loaded afte|
00000160  72 20 74 68 65 20 64 65  73 6b 74 6f 70 20 68 61  |r the desktop ha|
00000170  73 20 62 65 65 6e 20 73  74 61 72 74 65 64 2c 20  |s been started, |
00000180  62 75 74 0a 62 65 66 6f  72 65 20 74 68 65 20 50  |but.before the P|
00000190  43 20 66 72 6f 6e 74 2d  65 6e 64 20 68 61 73 20  |C front-end has |
000001a0  62 65 65 6e 20 6c 6f 61  64 65 64 2e 20 48 6f 77  |been loaded. How|
000001b0  65 76 65 72 2c 20 69 66  20 57 69 6d 70 24 53 63  |ever, if Wimp$Sc|
000001c0  72 61 70 44 69 72 20 69  73 20 73 65 74 20 74 6f  |rapDir is set to|
000001d0  0a 61 20 73 75 69 74 61  62 6c 65 20 76 61 6c 75  |.a suitable valu|
000001e0  65 20 74 68 65 6e 20 74  68 65 20 6d 6f 64 75 6c  |e then the modul|
000001f0  65 20 6d 61 79 20 62 65  20 6c 6f 61 64 65 64 20  |e may be loaded |
00000200  62 65 66 6f 72 65 20 74  68 65 20 64 65 73 6b 74  |before the deskt|
00000210  6f 70 20 68 61 73 20 62  65 65 6e 0a 65 6e 74 65  |op has been.ente|
00000220  72 65 64 2e 20 41 20 67  6f 6f 64 20 70 6c 61 63  |red. A good plac|
00000230  65 20 66 6f 72 20 6c 6f  61 64 69 6e 67 20 74 68  |e for loading th|
00000240  65 20 41 52 4d 45 64 69  74 20 6d 6f 64 75 6c 65  |e ARMEdit module|
00000250  20 69 73 20 69 6e 20 74  68 65 20 21 52 75 6e 20  | is in the !Run |
00000260  66 69 6c 65 20 6f 66 0a  74 68 65 20 50 43 20 66  |file of.the PC f|
00000270  72 6f 6e 74 2d 65 6e 64  2e 0a 0a 54 68 65 20 63  |ront-end...The c|
00000280  75 72 72 65 6e 74 20 76  65 72 73 69 6f 6e 20 6f  |urrent version o|
00000290  66 20 74 68 69 73 20 6d  6f 64 75 6c 65 20 77 69  |f this module wi|
000002a0  6c 6c 20 77 6f 72 6b 20  77 69 74 68 20 76 65 72  |ll work with ver|
000002b0  73 69 6f 6e 73 20 6f 66  20 74 68 65 20 50 43 0a  |sions of the PC.|
000002c0  66 72 6f 6e 74 2d 65 6e  64 20 73 6f 66 74 77 61  |front-end softwa|
000002d0  72 65 20 31 2e 38 37 20  61 6e 64 20 61 62 6f 76  |re 1.87 and abov|
000002e0  65 2e 20 48 6f 77 65 76  65 72 2c 20 73 69 67 6e  |e. However, sign|
000002f0  69 66 69 63 61 6e 74 6c  79 20 62 65 74 74 65 72  |ificantly better|
00000300  20 70 65 72 66 6f 72 6d  61 6e 63 65 0a 77 69 6c  | performance.wil|
00000310  6c 20 62 65 20 6f 62 74  61 69 6e 65 64 20 69 66  |l be obtained if|
00000320  20 50 43 50 72 6f 20 28  21 50 43 20 76 65 72 73  | PCPro (!PC vers|
00000330  69 6f 6e 20 32 2e 30 30  20 6f 66 20 68 69 67 68  |ion 2.00 of high|
00000340  65 72 29 20 69 73 20 75  73 65 64 2e 20 54 68 65  |er) is used. The|
00000350  20 76 65 72 73 69 6f 6e  0a 6e 75 6d 62 65 72 20  | version.number |
00000360  69 73 20 64 69 73 70 6c  61 79 65 64 20 69 6e 20  |is displayed in |
00000370  74 68 65 20 49 6e 66 6f  20 77 69 6e 64 6f 77 20  |the Info window |
00000380  66 72 6f 6d 20 74 68 65  20 69 63 6f 6e 2d 62 61  |from the icon-ba|
00000390  72 20 69 63 6f 6e 2e 20  53 65 65 20 74 68 65 0a  |r icon. See the.|
000003a0  43 6f 6e 74 61 63 74 73  20 64 6f 63 75 6d 65 6e  |Contacts documen|
000003b0  74 61 74 69 6f 6e 20 66  6f 72 20 64 65 74 61 69  |tation for detai|
000003c0  6c 73 20 6f 66 20 68 6f  77 20 74 6f 20 6f 62 74  |ls of how to obt|
000003d0  61 69 6e 20 75 70 67 72  61 64 65 73 2e 0a 0a 0a  |ain upgrades....|
000003e0  53 59 53 54 45 4d 20 56  41 52 49 41 42 4c 45 53  |SYSTEM VARIABLES|
000003f0  0a 0a 54 68 65 20 41 52  4d 45 64 69 74 20 6d 6f  |..The ARMEdit mo|
00000400  64 75 6c 65 20 73 65 74  73 20 61 6e 64 20 75 73  |dule sets and us|
00000410  65 73 20 74 68 65 20 66  6f 6c 6c 6f 77 69 6e 67  |es the following|
00000420  20 73 79 73 74 65 6d 20  76 61 72 69 61 62 6c 65  | system variable|
00000430  73 3a 0a 0a 20 20 20 20  41 52 4d 45 64 69 74 24  |s:..    ARMEdit$|
00000440  50 61 74 68 0a 20 20 20  20 0a 20 20 20 20 20 20  |Path.    .      |
00000450  20 20 50 61 74 68 20 75  73 65 64 20 74 6f 20 61  |  Path used to a|
00000460  63 63 65 73 73 20 4d 65  73 73 61 67 65 73 20 66  |ccess Messages f|
00000470  69 6c 65 2e 20 54 68 69  73 20 69 73 20 6e 6f 72  |ile. This is nor|
00000480  6d 61 6c 6c 79 20 73 65  74 20 74 6f 20 70 6f 69  |mally set to poi|
00000490  6e 74 20 74 6f 0a 20 20  20 20 20 20 20 20 74 68  |nt to.        th|
000004a0  65 20 66 69 6c 65 20 63  6f 6e 74 61 69 6e 65 64  |e file contained|
000004b0  20 77 69 74 68 69 6e 20  74 68 65 20 6d 6f 64 75  | within the modu|
000004c0  6c 65 20 61 6e 64 20 70  6c 61 63 65 64 20 69 6e  |le and placed in|
000004d0  20 52 65 73 6f 75 72 63  65 46 53 2e 0a 20 20 20  | ResourceFS..   |
000004e0  20 20 20 20 20 0a 20 20  20 20 0a 20 20 20 20 41  |     .    .    A|
000004f0  52 4d 45 64 69 74 24 53  63 72 61 70 44 69 72 0a  |RMEdit$ScrapDir.|
00000500  20 20 20 20 0a 20 20 20  20 20 20 20 20 44 69 72  |    .        Dir|
00000510  65 63 74 6f 72 79 20 75  73 65 64 20 66 6f 72 20  |ectory used for |
00000520  74 65 6d 70 6f 72 61 72  79 20 66 69 6c 65 73 2e  |temporary files.|
00000530  20 54 68 69 73 20 69 73  20 6e 6f 72 6d 61 6c 6c  | This is normall|
00000540  79 20 73 65 74 20 74 6f  0a 20 20 20 20 20 20 20  |y set to.       |
00000550  20 3c 57 69 6d 70 24 53  63 72 61 70 3e 2e 41 52  | <Wimp$Scrap>.AR|
00000560  4d 45 64 69 74 2c 20 62  75 74 20 6d 61 79 20 62  |MEdit, but may b|
00000570  65 20 63 68 61 6e 67 65  64 20 69 66 20 72 65 71  |e changed if req|
00000580  75 69 72 65 64 2e 20 49  66 20 74 68 65 72 65 20  |uired. If there |
00000590  69 73 0a 20 20 20 20 20  20 20 20 73 75 66 66 69  |is.        suffi|
000005a0  63 69 65 6e 74 20 6d 65  6d 6f 72 79 20 69 6e 20  |cient memory in |
000005b0  74 68 65 20 63 6f 6d 70  75 74 65 72 20 74 68 65  |the computer the|
000005c0  6e 20 62 65 74 74 65 72  20 70 65 72 66 6f 72 6d  |n better perform|
000005d0  61 6e 63 65 20 77 6f 75  6c 64 0a 20 20 20 20 20  |ance would.     |
000005e0  20 20 20 72 65 73 75 6c  74 20 66 72 6f 6d 20 70  |   result from p|
000005f0  6c 61 63 69 6e 67 20 74  68 69 73 20 69 6e 20 61  |lacing this in a|
00000600  20 52 41 4d 20 64 69 73  63 2e 0a 20 20 20 20 20  | RAM disc..     |
00000610  20 20 20 0a 20 20 20 20  20 20 20 20 54 68 65 20  |   .        The |
00000620  6d 6f 64 75 6c 65 20 73  65 74 73 20 61 6e 64 20  |module sets and |
00000630  75 73 65 73 20 74 68 69  73 20 76 61 72 69 61 62  |uses this variab|
00000640  6c 65 20 28 69 66 20 6e  6f 74 20 61 6c 72 65 61  |le (if not alrea|
00000650  64 79 20 64 65 66 69 6e  65 64 29 0a 20 20 20 20  |dy defined).    |
00000660  20 20 20 20 64 75 72 69  6e 67 20 69 6e 69 74 69  |    during initi|
00000670  61 6c 69 73 61 74 69 6f  6e 2e 20 48 65 6e 63 65  |alisation. Hence|
00000680  20 69 74 20 69 73 20 6e  65 63 65 73 73 61 72 79  | it is necessary|
00000690  20 66 6f 72 20 3c 57 69  6d 70 24 53 63 72 61 70  | for <Wimp$Scrap|
000006a0  3e 20 74 6f 20 62 65 0a  20 20 20 20 20 20 20 20  |> to be.        |
000006b0  64 65 66 69 6e 65 64 20  62 65 66 6f 72 65 20 74  |defined before t|
000006c0  68 65 20 6d 6f 64 75 6c  65 20 69 73 20 6c 6f 61  |he module is loa|
000006d0  64 65 64 2e 0a 20 20 20  20 0a 0a 2a 43 4f 4d 4d  |ded..    ..*COMM|
000006e0  41 4e 44 53 0a 0a 54 68  65 20 66 6f 6c 6c 6f 77  |ANDS..The follow|
000006f0  69 6e 67 20 2a 63 6f 6d  6d 61 6e 64 73 20 61 72  |ing *commands ar|
00000700  65 20 70 72 6f 76 69 64  65 64 20 62 79 20 74 68  |e provided by th|
00000710  65 20 41 52 4d 45 64 69  74 20 6d 6f 64 75 6c 65  |e ARMEdit module|
00000720  3a 0a 20 20 20 20 20 20  20 20 0a 0a 20 20 20 20  |:.        ..    |
00000730  2a 41 52 4d 45 64 69 74  5f 43 6c 69 65 6e 74 73  |*ARMEdit_Clients|
00000740  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 54 68  |.    .        Th|
00000750  69 73 20 63 6f 6d 6d 61  6e 64 20 64 69 73 70 6c  |is command displ|
00000760  61 79 73 20 64 65 74 61  69 6c 73 20 6f 66 20 74  |ays details of t|
00000770  68 65 20 63 6c 69 65 6e  74 73 20 74 68 61 74 20  |he clients that |
00000780  68 61 76 65 20 72 65 67  69 73 74 65 72 65 64 0a  |have registered.|
00000790  20 20 20 20 20 20 20 20  77 69 74 68 20 74 68 65  |        with the|
000007a0  20 41 52 4d 45 64 69 74  20 6d 6f 64 75 6c 65 20  | ARMEdit module |
000007b0  66 6f 72 20 63 6f 6d 6d  75 6e 69 63 61 74 69 6f  |for communicatio|
000007c0  6e 20 70 75 72 70 6f 73  65 73 2e 0a 0a 0a 20 20  |n purposes....  |
000007d0  20 20 2a 41 52 4d 45 64  69 74 5f 44 65 76 69 63  |  *ARMEdit_Devic|
000007e0  65 73 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |es.    .        |
000007f0  4c 69 73 74 20 74 68 65  20 52 49 53 43 20 4f 53  |List the RISC OS|
00000800  20 70 61 74 68 20 6f 66  20 61 6c 6c 20 61 63 74  | path of all act|
00000810  69 76 65 20 65 6d 75 6c  61 74 65 64 20 64 65 76  |ive emulated dev|
00000820  69 63 65 73 2e 20 53 65  76 65 72 61 6c 20 6f 74  |ices. Several ot|
00000830  68 65 72 0a 20 20 20 20  20 20 20 20 64 65 74 61  |her.        deta|
00000840  69 6c 73 20 61 72 65 20  61 6c 73 6f 20 6c 69 73  |ils are also lis|
00000850  74 65 64 20 66 6f 72 20  65 61 63 68 20 64 65 76  |ted for each dev|
00000860  69 63 65 2e 0a 0a 0a 20  20 20 20 2a 41 52 4d 45  |ice....    *ARME|
00000870  64 69 74 5f 44 65 76 69  63 65 73 52 65 6c 6f 67  |dit_DevicesRelog|
00000880  20 5b 2d 6e 6f 77 5d 0a  20 20 20 20 0a 20 20 20  | [-now].    .   |
00000890  20 20 20 20 20 46 6f 72  63 65 20 61 20 72 65 6c  |     Force a rel|
000008a0  6f 67 20 6f 66 20 74 68  65 20 52 49 53 43 20 4f  |og of the RISC O|
000008b0  53 20 64 69 72 65 63 74  6f 72 79 20 73 74 72 75  |S directory stru|
000008c0  63 74 75 72 65 2e 20 54  68 69 73 20 72 65 6c 65  |cture. This rele|
000008d0  61 73 65 73 20 6d 6f 73  74 0a 20 20 20 20 20 20  |ases most.      |
000008e0  20 20 6f 66 20 74 68 65  20 6d 65 6d 6f 72 79 20  |  of the memory |
000008f0  63 6c 61 69 6d 65 64 20  74 6f 20 73 75 70 70 6f  |claimed to suppo|
00000900  72 74 20 64 65 76 69 63  65 20 64 72 69 76 65 72  |rt device driver|
00000910  20 6f 70 65 72 61 74 69  6f 6e 20 61 6e 64 20 63  | operation and c|
00000920  6c 6f 73 65 73 0a 20 20  20 20 20 20 20 20 6f 70  |loses.        op|
00000930  65 6e 20 66 69 6c 65 73  2e 0a 0a 20 20 20 20 20  |en files...     |
00000940  20 20 20 4e 6f 74 65 20  74 68 61 74 20 74 68 69  |   Note that thi|
00000950  73 20 6d 61 79 20 6e 6f  74 20 74 61 6b 65 20 69  |s may not take i|
00000960  6d 6d 65 64 69 61 74 65  20 65 66 66 65 63 74 20  |mmediate effect |
00000970  2d 20 44 4f 53 20 6d 75  73 74 20 61 63 6b 6e 6f  |- DOS must ackno|
00000980  77 6c 65 64 67 65 0a 20  20 20 20 20 20 20 20 61  |wledge.        a|
00000990  20 63 68 61 6e 67 65 20  6f 66 20 64 69 73 63 20  | change of disc |
000009a0  62 65 66 6f 72 65 20 61  6e 79 20 72 65 6c 6f 67  |before any relog|
000009b0  20 6f 63 63 75 72 73 2e  20 54 68 69 73 20 6e 6f  | occurs. This no|
000009c0  72 6d 61 6c 6c 79 20 6f  63 63 75 72 73 20 69 66  |rmally occurs if|
000009d0  0a 20 20 20 20 20 20 20  20 6e 6f 20 66 69 6c 65  |.        no file|
000009e0  73 20 61 72 65 20 6f 70  65 6e 20 6f 6e 20 74 68  |s are open on th|
000009f0  65 20 64 65 76 69 63 65  2c 20 61 6e 64 20 61 20  |e device, and a |
00000a00  73 69 6d 70 6c 65 20 6f  70 65 72 61 74 69 6f 6e  |simple operation|
00000a10  20 28 73 75 63 68 20 61  73 0a 20 20 20 20 20 20  | (such as.      |
00000a20  20 20 74 79 70 69 6e 67  20 44 49 52 29 20 69 73  |  typing DIR) is|
00000a30  20 70 65 72 66 6f 72 6d  65 64 20 6f 6e 20 74 68  | performed on th|
00000a40  65 20 64 72 69 76 65 2e  20 4e 6f 74 65 20 74 68  |e drive. Note th|
00000a50  61 74 20 65 61 63 68 20  65 6d 75 6c 61 74 65 64  |at each emulated|
00000a60  20 64 65 76 69 63 65 0a  20 20 20 20 20 20 20 20  | device.        |
00000a70  69 73 20 74 72 65 61 74  65 64 20 73 65 70 65 72  |is treated seper|
00000a80  61 74 65 6c 79 3b 20 73  6f 6d 65 20 64 65 76 69  |ately; some devi|
00000a90  63 65 73 20 6d 61 79 20  62 65 20 72 65 73 65 74  |ces may be reset|
00000aa0  20 62 65 66 6f 72 65 20  6f 74 68 65 72 73 2e 0a  | before others..|
00000ab0  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00000ac0  20 54 68 65 20 2d 6e 6f  77 20 73 77 69 74 63 68  | The -now switch|
00000ad0  20 66 6f 72 63 65 73 20  61 6e 20 69 6d 6d 65 64  | forces an immed|
00000ae0  69 61 74 65 20 72 65 73  65 74 2e 20 54 68 69 73  |iate reset. This|
00000af0  20 73 68 6f 75 6c 64 20  6f 6e 6c 79 20 62 65 20  | should only be |
00000b00  75 73 65 64 0a 20 20 20  20 20 20 20 20 69 66 20  |used.        if |
00000b10  65 73 73 65 6e 74 69 61  6c 2c 20 61 6e 64 20 6d  |essential, and m|
00000b20  75 73 74 20 6e 65 76 65  72 20 62 65 20 75 73 65  |ust never be use|
00000b30  64 20 69 6e 20 74 68 65  20 6d 69 64 64 6c 65 20  |d in the middle |
00000b40  6f 66 20 61 20 64 69 73  63 20 61 63 63 65 73 73  |of a disc access|
00000b50  2c 0a 20 20 20 20 20 20  20 20 6f 74 68 65 72 77  |,.        otherw|
00000b60  69 73 65 20 44 4f 53 20  63 6f 75 6c 64 20 62 65  |ise DOS could be|
00000b70  20 63 6f 6e 66 75 73 65  64 20 62 79 20 61 6e 20  | confused by an |
00000b80  69 6e 63 6f 6e 73 69 73  74 65 6e 74 20 64 69 73  |inconsistent dis|
00000b90  63 20 69 6d 61 67 65 2e  0a 20 20 20 20 20 20 20  |c image..       |
00000ba0  20 0a 20 20 20 20 20 20  20 20 49 74 20 63 61 6e  | .        It can|
00000bb0  20 62 65 20 75 73 65 66  75 6c 20 74 6f 20 63 61  | be useful to ca|
00000bc0  6c 6c 20 74 68 69 73 20  66 72 6f 6d 20 74 68 65  |ll this from the|
00000bd0  20 44 4f 53 20 63 6f 6d  6d 61 6e 64 20 6c 69 6e  | DOS command lin|
00000be0  65 20 75 73 69 6e 67 20  74 68 65 0a 20 20 20 20  |e using the.    |
00000bf0  20 20 20 20 4f 53 43 4c  49 20 63 6f 6d 6d 61 6e  |    OSCLI comman|
00000c00  64 20 28 73 75 70 70 6c  69 65 64 20 61 73 20 70  |d (supplied as p|
00000c10  61 72 74 20 6f 66 20 74  68 65 20 41 52 4d 45 64  |art of the ARMEd|
00000c20  69 74 20 73 75 69 74 65  29 20 2d 20 70 65 72 68  |it suite) - perh|
00000c30  61 70 73 20 69 74 0a 20  20 20 20 20 20 20 20 73  |aps it.        s|
00000c40  68 6f 75 6c 64 20 62 65  20 70 6c 61 63 65 64 20  |hould be placed |
00000c50  69 6e 20 61 20 44 4f 53  20 62 61 74 63 68 20 66  |in a DOS batch f|
00000c60  69 6c 65 20 66 6f 72 20  65 61 73 69 65 72 20 75  |ile for easier u|
00000c70  73 65 2e 0a 0a 0a 20 20  20 20 2a 41 52 4d 45 64  |se....    *ARMEd|
00000c80  69 74 5f 44 4f 53 4d 61  70 0a 20 20 20 20 0a 20  |it_DOSMap.    . |
00000c90  20 20 20 20 20 20 20 54  68 69 73 20 63 6f 6d 6d  |       This comm|
00000ca0  61 6e 64 20 75 70 64 61  74 65 73 20 74 68 65 20  |and updates the |
00000cb0  63 61 63 68 65 64 20 6c  69 73 74 20 6f 66 20 6d  |cached list of m|
00000cc0  61 70 70 69 6e 67 73 20  62 65 74 77 65 65 6e 20  |appings between |
00000cd0  44 4f 53 0a 20 20 20 20  20 20 20 20 65 78 74 65  |DOS.        exte|
00000ce0  6e 73 69 6f 6e 73 20 61  6e 64 20 52 49 53 43 20  |nsions and RISC |
00000cf0  4f 53 20 66 69 6c 65 74  79 70 65 73 2e 20 54 68  |OS filetypes. Th|
00000d00  65 73 65 20 64 65 74 61  69 6c 73 20 61 72 65 20  |ese details are |
00000d10  72 65 61 64 20 69 6e 69  74 69 61 6c 6c 79 0a 20  |read initially. |
00000d20  20 20 20 20 20 20 20 66  72 6f 6d 20 44 4f 53 46  |       from DOSF|
00000d30  53 2c 20 62 75 74 20 6d  61 79 20 62 65 20 72 65  |S, but may be re|
00000d40  2d 72 65 61 64 20 61 74  20 61 6e 79 20 74 69 6d  |-read at any tim|
00000d50  65 20 75 73 69 6e 67 20  74 68 69 73 20 63 6f 6d  |e using this com|
00000d60  6d 61 6e 64 2e 0a 20 20  20 20 20 20 20 20 0a 0a  |mand..        ..|
00000d70  20 20 20 20 2a 41 52 4d  45 64 69 74 5f 46 69 6c  |    *ARMEdit_Fil|
00000d80  65 73 0a 0a 20 20 20 20  20 20 20 20 54 68 69 73  |es..        This|
00000d90  20 63 6f 6d 6d 61 6e 64  20 64 69 73 70 6c 61 79  | command display|
00000da0  73 20 64 65 74 61 69 6c  73 20 6f 66 20 74 68 65  |s details of the|
00000db0  20 52 49 53 43 20 4f 53  20 66 69 6c 65 73 20 63  | RISC OS files c|
00000dc0  75 72 72 65 6e 74 6c 79  20 6f 70 65 6e 20 66 6f  |urrently open fo|
00000dd0  72 0a 20 20 20 20 20 20  20 20 50 43 20 73 6f 66  |r.        PC sof|
00000de0  74 77 61 72 65 2e 20 46  6f 72 20 65 61 63 68 20  |tware. For each |
00000df0  6f 70 65 6e 20 66 69 6c  65 20 74 68 65 20 66 69  |open file the fi|
00000e00  6c 65 20 68 61 6e 64 6c  65 20 61 6e 64 20 66 69  |le handle and fi|
00000e10  6c 65 6e 61 6d 65 20 69  73 0a 20 20 20 20 20 20  |lename is.      |
00000e20  20 20 64 69 73 70 6c 61  79 65 64 2e 20 54 68 65  |  displayed. The|
00000e30  72 65 20 69 73 20 61 6c  73 6f 20 61 20 66 69 65  |re is also a fie|
00000e40  6c 64 20 74 68 61 74 20  69 6e 64 69 63 61 74 65  |ld that indicate|
00000e50  73 20 77 68 65 74 68 65  72 20 74 68 65 20 66 69  |s whether the fi|
00000e60  6c 65 20 77 69 6c 6c 0a  20 20 20 20 20 20 20 20  |le will.        |
00000e70  61 75 74 6f 6d 61 74 69  63 61 6c 6c 79 20 62 65  |automatically be|
00000e80  20 64 65 6c 65 74 65 64  20 77 68 65 6e 20 69 74  | deleted when it|
00000e90  20 69 73 20 63 6c 6f 73  65 64 20 28 65 69 74 68  | is closed (eith|
00000ea0  65 72 20 65 78 70 6c 69  63 69 74 6c 79 20 62 79  |er explicitly by|
00000eb0  20 74 68 65 0a 20 20 20  20 20 20 20 20 50 43 20  | the.        PC |
00000ec0  73 6f 66 74 77 61 72 65  2c 20 6f 72 20 77 68 65  |software, or whe|
00000ed0  6e 20 74 68 65 20 50 43  20 69 73 20 72 65 73 65  |n the PC is rese|
00000ee0  74 20 6f 72 20 71 75 69  74 29 2e 0a 20 20 20 20  |t or quit)..    |
00000ef0  20 20 20 20 0a 20 20 20  20 20 20 20 20 41 6e 79  |    .        Any|
00000f00  20 66 69 6c 65 73 20 6f  70 65 6e 65 64 20 66 6f  | files opened fo|
00000f10  72 20 74 68 65 20 64 65  76 69 63 65 20 64 72 69  |r the device dri|
00000f20  76 65 72 20 61 72 65 20  61 6c 73 6f 20 6c 69 73  |ver are also lis|
00000f30  74 65 64 2e 0a 20 20 20  20 20 20 20 20 0a 0a 20  |ted..        .. |
00000f40  20 20 20 2a 41 52 4d 45  64 69 74 5f 4d 65 6d 6f  |   *ARMEdit_Memo|
00000f50  72 79 0a 0a 20 20 20 20  20 20 20 20 54 68 69 73  |ry..        This|
00000f60  20 63 6f 6d 6d 61 6e 64  20 64 69 73 70 6c 61 79  | command display|
00000f70  73 20 64 65 74 61 69 6c  73 20 6f 66 20 74 68 65  |s details of the|
00000f80  20 52 49 53 43 20 4f 53  20 6d 65 6d 6f 72 79 20  | RISC OS memory |
00000f90  63 75 72 72 65 6e 74 6c  79 20 62 65 69 6e 67 0a  |currently being.|
00000fa0  20 20 20 20 20 20 20 20  75 73 65 64 20 62 79 20  |        used by |
00000fb0  50 43 20 73 6f 66 74 77  61 72 65 2e 20 46 6f 72  |PC software. For|
00000fc0  20 65 61 63 68 20 62 6c  6f 63 6b 20 6f 66 20 6d  | each block of m|
00000fd0  65 6d 6f 72 79 20 63 6c  61 69 6d 65 64 20 74 68  |emory claimed th|
00000fe0  65 20 62 61 73 65 0a 20  20 20 20 20 20 20 20 61  |e base.        a|
00000ff0  64 64 72 65 73 73 20 61  6e 64 20 73 69 7a 65 20  |ddress and size |
00001000  6f 66 20 74 68 65 20 62  6c 6f 63 6b 20 69 73 20  |of the block is |
00001010  64 69 73 70 6c 61 79 65  64 2e 0a 20 20 20 20 20  |displayed..     |
00001020  20 20 20 0a 20 20 20 20  20 20 20 20 54 68 65 20  |   .        The |
00001030  6d 65 6d 6f 72 79 20 69  73 20 63 75 72 72 65 6e  |memory is curren|
00001040  74 6c 79 20 61 6c 6c 6f  63 61 74 65 64 20 66 72  |tly allocated fr|
00001050  6f 6d 20 74 68 65 20 52  4d 41 2c 20 62 75 74 20  |om the RMA, but |
00001060  61 20 68 65 61 64 65 72  20 69 73 0a 20 20 20 20  |a header is.    |
00001070  20 20 20 20 61 74 74 61  63 68 65 64 20 74 6f 20  |    attached to |
00001080  74 68 65 20 73 74 61 72  74 20 6f 66 20 65 61 63  |the start of eac|
00001090  68 20 62 6c 6f 63 6b 2e  20 48 65 6e 63 65 20 74  |h block. Hence t|
000010a0  68 65 20 61 64 64 72 65  73 73 20 64 69 73 70 6c  |he address displ|
000010b0  61 79 65 64 20 69 73 0a  20 20 20 20 20 20 20 20  |ayed is.        |
000010c0  6e 6f 74 20 74 68 65 20  73 74 61 72 74 20 6f 66  |not the start of|
000010d0  20 61 20 68 65 61 70 20  62 6c 6f 63 6b 2e 20 54  | a heap block. T|
000010e0  68 65 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 20 69  |he information i|
000010f0  6e 20 74 68 65 20 68 65  61 64 65 72 20 69 73 20  |n the header is |
00001100  75 73 65 64 0a 20 20 20  20 20 20 20 20 74 6f 20  |used.        to |
00001110  61 75 74 6f 6d 61 74 69  63 61 6c 6c 79 20 72 65  |automatically re|
00001120  6c 65 61 73 65 20 74 68  65 20 6d 65 6d 6f 72 79  |lease the memory|
00001130  20 77 68 65 6e 20 74 68  65 20 50 43 20 69 73 20  | when the PC is |
00001140  72 65 73 65 74 20 6f 72  20 71 75 69 74 20 69 66  |reset or quit if|
00001150  0a 20 20 20 20 20 20 20  20 74 68 65 20 50 43 20  |.        the PC |
00001160  73 6f 66 74 77 61 72 65  20 66 61 69 6c 73 20 74  |software fails t|
00001170  6f 20 64 6f 20 73 6f 2e  0a 0a 0a 20 20 20 20 2a  |o do so....    *|
00001180  41 52 4d 45 64 69 74 5f  50 6f 6c 6c 69 6e 67 20  |ARMEdit_Polling |
00001190  5b 5b 2d 66 6f 72 65 5d  20 3c 70 6f 6c 6c 73 3e  |[[-fore] <polls>|
000011a0  5d 20 5b 5b 2d 62 61 63  6b 5d 20 3c 70 6f 6c 6c  |] [[-back] <poll|
000011b0  73 3e 5d 0a 0a 20 20 20  20 20 20 20 20 54 68 69  |s>]..        Thi|
000011c0  73 20 63 6f 6d 6d 61 6e  64 20 61 6c 6c 6f 77 73  |s command allows|
000011d0  20 74 68 65 20 6d 75 6c  74 69 74 61 73 6b 69 6e  | the multitaskin|
000011e0  67 20 73 70 65 65 64 20  6f 66 20 74 68 65 20 50  |g speed of the P|
000011f0  43 20 63 61 72 64 20 74  6f 20 62 65 0a 20 20 20  |C card to be.   |
00001200  20 20 20 20 20 63 6f 6e  74 72 6f 6c 6c 65 64 2e  |     controlled.|
00001210  20 4c 61 72 67 65 72 20  76 61 6c 75 65 73 20 69  | Larger values i|
00001220  6e 63 72 65 61 73 65 20  74 68 65 20 70 65 72 66  |ncrease the perf|
00001230  6f 72 6d 61 6e 63 65 20  6f 66 20 74 68 65 20 50  |ormance of the P|
00001240  43 20 63 61 72 64 0a 20  20 20 20 20 20 20 20 61  |C card.        a|
00001250  74 20 74 68 65 20 65 78  70 65 6e 73 65 20 6f 66  |t the expense of|
00001260  20 73 6c 6f 77 69 6e 67  20 64 6f 77 6e 20 74 68  | slowing down th|
00001270  65 20 64 65 73 6b 74 6f  70 2e 20 41 20 76 61 6c  |e desktop. A val|
00001280  75 65 20 6f 66 20 30 20  72 65 73 75 6c 74 73 0a  |ue of 0 results.|
00001290  20 20 20 20 20 20 20 20  69 6e 20 74 68 65 20 6e  |        in the n|
000012a0  6f 72 6d 61 6c 20 62 65  68 61 76 69 6f 75 72 2e  |ormal behaviour.|
000012b0  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
000012c0  20 20 55 73 65 20 77 69  74 68 20 6e 6f 20 70 61  |  Use with no pa|
000012d0  72 61 6d 65 74 65 72 73  20 74 6f 20 64 69 73 70  |rameters to disp|
000012e0  6c 61 79 20 74 68 65 20  63 75 72 72 65 6e 74 20  |lay the current |
000012f0  73 65 74 74 69 6e 67 73  2e 20 49 66 20 6f 6e 6c  |settings. If onl|
00001300  79 0a 20 20 20 20 20 20  20 20 61 20 73 69 6e 67  |y.        a sing|
00001310  6c 65 20 76 61 6c 75 65  20 69 73 20 73 70 65 63  |le value is spec|
00001320  69 66 69 65 64 20 28 77  69 74 68 6f 75 74 20 73  |ified (without s|
00001330  77 69 74 63 68 65 73 29  20 74 68 65 6e 20 62 6f  |witches) then bo|
00001340  74 68 20 73 65 74 74 69  6e 67 73 0a 20 20 20 20  |th settings.    |
00001350  20 20 20 20 61 72 65 20  75 70 64 61 74 65 64 2e  |    are updated.|
00001360  0a 20 20 20 20 20 20 20  20 0a 0a 20 20 20 20 2a  |.        ..    *|
00001370  41 52 4d 45 64 69 74 5f  56 65 72 73 69 6f 6e 0a  |ARMEdit_Version.|
00001380  20 20 20 20 0a 20 20 20  20 20 20 20 20 54 68 69  |    .        Thi|
00001390  73 20 63 6f 6d 6d 61 6e  64 20 64 69 73 70 6c 61  |s command displa|
000013a0  79 73 20 74 68 65 20 76  65 72 73 69 6f 6e 20 6e  |ys the version n|
000013b0  75 6d 62 65 72 73 20 6f  66 20 74 68 65 20 64 61  |umbers of the da|
000013c0  74 61 20 73 74 72 75 63  74 75 72 65 73 20 75 73  |ta structures us|
000013d0  65 64 0a 20 20 20 20 20  20 20 20 62 79 20 74 68  |ed.        by th|
000013e0  65 20 6d 6f 73 74 20 72  65 63 65 6e 74 6c 79 20  |e most recently |
000013f0  75 73 65 64 20 50 43 20  66 72 6f 6e 74 2d 65 6e  |used PC front-en|
00001400  64 2e 20 49 74 20 61 6c  73 6f 20 64 69 73 70 6c  |d. It also displ|
00001410  61 79 73 20 74 68 65 20  72 61 6e 67 65 20 6f 66  |ays the range of|
00001420  0a 20 20 20 20 20 20 20  20 76 65 72 73 69 6f 6e  |.        version|
00001430  73 20 63 61 74 65 72 65  64 20 66 6f 72 20 62 79  |s catered for by|
00001440  20 74 68 69 73 20 76 65  72 73 69 6f 6e 20 6f 66  | this version of|
00001450  20 74 68 65 20 6d 6f 64  75 6c 65 2e 0a 0a 0a 53  | the module....S|
00001460  57 49 73 0a 0a 54 68 65  20 66 6f 6c 6c 6f 77 69  |WIs..The followi|
00001470  6e 67 20 53 57 49 73 20  61 72 65 20 70 72 6f 76  |ng SWIs are prov|
00001480  69 64 65 64 20 62 79 20  74 68 65 20 41 52 4d 45  |ided by the ARME|
00001490  64 69 74 20 6d 6f 64 75  6c 65 2e 20 46 6f 72 20  |dit module. For |
000014a0  6d 6f 72 65 20 64 65 74  61 69 6c 73 0a 72 65 67  |more details.reg|
000014b0  61 72 64 69 6e 67 20 74  68 65 20 75 73 65 20 6f  |arding the use o|
000014c0  66 20 74 68 65 20 63 6f  6d 6d 75 6e 63 69 61 74  |f the communciat|
000014d0  69 6f 6e 73 20 53 57 49  73 20 73 65 65 20 74 68  |ions SWIs see th|
000014e0  65 20 43 6f 64 65 20 64  6f 63 75 6d 65 6e 74 61  |e Code documenta|
000014f0  74 69 6f 6e 2e 0a 0a 0a  53 57 49 20 22 41 52 4d  |tion....SWI "ARM|
00001500  45 64 69 74 5f 43 6f 6e  74 72 6f 6c 50 43 22 20  |Edit_ControlPC" |
00001510  28 26 34 42 43 34 30 29  0a 0a 20 20 20 20 43 6f  |(&4BC40)..    Co|
00001520  6e 74 72 6f 6c 20 74 68  65 20 50 43 20 66 72 6f  |ntrol the PC fro|
00001530  6e 74 2d 65 6e 64 2e 0a  20 20 20 20 0a 20 20 20  |nt-end..    .   |
00001540  20 4f 6e 20 65 6e 74 72  79 3a 0a 20 20 20 20 0a  | On entry:.    .|
00001550  20 20 20 20 20 20 20 20  52 30 20 3d 20 4f 70 65  |        R0 = Ope|
00001560  72 61 74 69 6f 6e 20 74  6f 20 70 65 72 66 6f 72  |ration to perfor|
00001570  6d 3a 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |m:.        .    |
00001580  20 20 20 20 20 20 20 20  20 20 20 20 30 20 20 20  |            0   |
00001590  53 75 73 70 65 6e 64 20  66 75 6c 6c 20 73 63 72  |Suspend full scr|
000015a0  65 65 6e 20 6d 6f 64 65  0a 20 20 20 20 20 20 20  |een mode.       |
000015b0  20 20 20 20 20 20 20 20  20 31 20 20 20 46 72 65  |         1   Fre|
000015c0  65 7a 65 20 72 75 6e 6e  69 6e 67 20 69 6e 20 61  |eze running in a|
000015d0  20 77 69 6e 64 6f 77 0a  20 20 20 20 20 20 20 20  | window.        |
000015e0  20 20 20 20 20 20 20 20  32 20 20 20 52 65 73 65  |        2   Rese|
000015f0  74 20 74 68 65 20 50 43  0a 20 20 20 20 20 20 20  |t the PC.       |
00001600  20 20 20 20 20 20 20 20  20 33 20 20 20 51 75 69  |         3   Qui|
00001610  74 20 74 68 65 20 66 72  6f 6e 74 2d 65 6e 64 0a  |t the front-end.|
00001620  0a 20 20 20 20 4f 6e 20  65 78 69 74 3a 0a 20 20  |.    On exit:.  |
00001630  20 20 0a 20 20 20 20 20  20 20 20 41 6c 6c 20 72  |  .        All r|
00001640  65 67 69 73 74 65 72 73  20 70 72 65 73 65 72 76  |egisters preserv|
00001650  65 64 2e 0a 20 20 20 20  0a 20 20 20 20 49 6e 74  |ed..    .    Int|
00001660  65 72 72 75 70 74 73 3a  0a 20 20 20 20 0a 20 20  |errupts:.    .  |
00001670  20 20 20 20 20 20 49 6e  74 65 72 72 75 70 74 20  |      Interrupt |
00001680  73 74 61 74 75 73 20 69  73 20 75 6e 64 65 66 69  |status is undefi|
00001690  6e 65 64 2e 0a 20 20 20  20 20 20 20 20 46 61 73  |ned..        Fas|
000016a0  74 20 69 6e 74 65 72 72  75 70 74 73 20 61 72 65  |t interrupts are|
000016b0  20 65 6e 61 62 6c 65 64  2e 0a 0a 20 20 20 20 50  | enabled...    P|
000016c0  72 6f 63 65 73 73 6f 72  20 6d 6f 64 65 3a 0a 20  |rocessor mode:. |
000016d0  20 20 20 0a 20 20 20 20  20 20 20 20 50 72 6f 63  |   .        Proc|
000016e0  65 73 73 6f 72 20 69 73  20 69 6e 20 53 56 43 20  |essor is in SVC |
000016f0  6d 6f 64 65 2e 0a 0a 20  20 20 20 52 65 2d 65 6e  |mode...    Re-en|
00001700  74 72 61 6e 63 79 3a 0a  20 20 20 20 0a 20 20 20  |trancy:.    .   |
00001710  20 20 20 20 20 53 57 49  20 69 73 20 6e 6f 74 20  |     SWI is not |
00001720  72 65 2d 65 6e 74 72 61  6e 74 2e 0a 0a 20 20 20  |re-entrant...   |
00001730  20 55 73 65 3a 0a 20 20  20 20 0a 20 20 20 20 20  | Use:.    .     |
00001740  20 20 20 54 68 69 73 20  63 61 6c 6c 20 61 6c 6c  |   This call all|
00001750  6f 77 73 20 74 68 65 20  50 43 20 66 72 6f 6e 74  |ows the PC front|
00001760  2d 65 6e 64 20 74 6f 20  62 65 20 63 6f 6e 74 72  |-end to be contr|
00001770  6f 6c 6c 65 64 2e 20 4e  6f 74 65 20 74 68 61 74  |olled. Note that|
00001780  20 69 66 20 74 68 65 0a  20 20 20 20 20 20 20 20  | if the.        |
00001790  50 43 20 66 72 6f 6e 74  2d 65 6e 64 20 69 73 20  |PC front-end is |
000017a0  6e 6f 74 20 74 68 65 20  63 75 72 72 65 6e 74 20  |not the current |
000017b0  61 70 70 6c 69 63 61 74  69 6f 6e 20 74 68 65 6e  |application then|
000017c0  20 74 68 69 73 20 77 69  6c 6c 20 6f 6e 6c 79 20  | this will only |
000017d0  74 61 6b 65 0a 20 20 20  20 20 20 20 20 65 66 66  |take.        eff|
000017e0  65 63 74 20 74 68 65 20  6e 65 78 74 20 74 69 6d  |ect the next tim|
000017f0  65 20 74 68 65 20 66 72  6f 6e 74 2d 65 6e 64 20  |e the front-end |
00001800  69 73 20 70 61 67 65 64  20 69 6e 2e 0a 20 20 20  |is paged in..   |
00001810  20 20 20 20 20 0a 20 20  20 20 20 20 20 20 4e 6f  |     .        No|
00001820  74 65 20 74 68 61 74 20  73 75 73 70 65 6e 64 69  |te that suspendi|
00001830  6e 67 20 66 75 6c 6c 20  73 63 72 65 65 6e 20 6d  |ng full screen m|
00001840  6f 64 65 20 6f 6e 6c 79  20 73 74 61 72 74 73 20  |ode only starts |
00001850  65 78 65 63 75 74 69 6f  6e 20 69 6e 20 61 0a 20  |execution in a. |
00001860  20 20 20 20 20 20 20 77  69 6e 64 6f 77 20 69 66  |       window if|
00001870  20 65 6e 61 62 6c 65 64  20 62 79 20 74 68 65 20  | enabled by the |
00001880  63 75 72 72 65 6e 74 20  63 6f 6e 66 69 67 75 72  |current configur|
00001890  61 74 69 6f 6e 2e 0a 0a  0a 53 57 49 20 22 41 52  |ation....SWI "AR|
000018a0  4d 45 64 69 74 5f 54 61  6c 6b 53 74 61 72 74 22  |MEdit_TalkStart"|
000018b0  20 28 26 34 42 43 34 31  29 0a 0a 20 20 20 20 52  | (&4BC41)..    R|
000018c0  65 67 69 73 74 65 72 20  61 20 6e 65 77 20 63 6c  |egister a new cl|
000018d0  69 65 6e 74 20 74 61 73  6b 2e 0a 20 20 20 20 0a  |ient task..    .|
000018e0  20 20 20 20 4f 6e 20 65  6e 74 72 79 3a 0a 20 20  |    On entry:.  |
000018f0  20 20 0a 20 20 20 20 20  20 20 20 52 30 20 3d 20  |  .        R0 = |
00001900  50 72 65 2d 61 6c 6c 6f  63 61 74 65 64 20 49 44  |Pre-allocated ID|
00001910  20 66 6f 72 20 74 68 69  73 20 74 61 73 6b 2e 0a  | for this task..|
00001920  20 20 20 20 20 20 20 20  52 31 20 3d 20 46 6c 61  |        R1 = Fla|
00001930  67 73 20 28 73 65 65 20  62 65 6c 6f 77 29 2e 0a  |gs (see below)..|
00001940  20 20 20 20 20 20 20 20  52 32 20 3d 20 50 6f 69  |        R2 = Poi|
00001950  6e 74 65 72 20 74 6f 20  61 20 66 75 6e 63 74 69  |nter to a functi|
00001960  6f 6e 20 74 6f 20 62 65  20 63 61 6c 6c 65 64 20  |on to be called |
00001970  77 68 65 6e 20 61 20 6d  65 73 73 61 67 65 20 69  |when a message i|
00001980  73 20 61 76 61 69 6c 61  62 6c 65 2c 0a 20 20 20  |s available,.   |
00001990  20 20 20 20 20 20 20 20  20 20 6f 72 20 30 20 66  |          or 0 f|
000019a0  6f 72 20 6e 6f 6e 65 2e  0a 20 20 20 20 20 20 20  |or none..       |
000019b0  20 52 33 20 3d 20 56 61  6c 75 65 20 66 6f 72 20  | R3 = Value for |
000019c0  52 31 32 20 74 6f 20 63  6f 6e 74 61 69 6e 20 77  |R12 to contain w|
000019d0  68 65 6e 20 66 75 6e 63  74 69 6f 6e 20 70 6f 69  |hen function poi|
000019e0  6e 74 65 64 20 74 6f 20  62 79 20 52 32 20 69 73  |nted to by R2 is|
000019f0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 63 61  |.             ca|
00001a00  6c 6c 65 64 2e 0a 0a 20  20 20 20 4f 6e 20 65 78  |lled...    On ex|
00001a10  69 74 3a 0a 20 20 20 20  0a 20 20 20 20 20 20 20  |it:.    .       |
00001a20  20 52 30 20 3d 20 41 20  75 6e 69 71 75 65 20 63  | R0 = A unique c|
00001a30  6c 69 65 6e 74 20 68 61  6e 64 6c 65 2e 0a 20 20  |lient handle..  |
00001a40  20 20 20 20 20 20 52 31  20 3d 20 50 6f 69 6e 74  |      R1 = Point|
00001a50  65 72 20 74 6f 20 61 20  70 6f 6c 6c 20 77 6f 72  |er to a poll wor|
00001a60  64 20 66 6f 72 20 74 68  69 73 20 74 61 73 6b 2e  |d for this task.|
00001a70  0a 20 20 20 20 0a 20 20  20 20 49 6e 74 65 72 72  |.    .    Interr|
00001a80  75 70 74 73 3a 0a 20 20  20 20 0a 20 20 20 20 20  |upts:.    .     |
00001a90  20 20 20 49 6e 74 65 72  72 75 70 74 20 73 74 61  |   Interrupt sta|
00001aa0  74 75 73 20 69 73 20 75  6e 64 65 66 69 6e 65 64  |tus is undefined|
00001ab0  2e 0a 20 20 20 20 20 20  20 20 46 61 73 74 20 69  |..        Fast i|
00001ac0  6e 74 65 72 72 75 70 74  73 20 61 72 65 20 65 6e  |nterrupts are en|
00001ad0  61 62 6c 65 64 2e 0a 0a  20 20 20 20 50 72 6f 63  |abled...    Proc|
00001ae0  65 73 73 6f 72 20 6d 6f  64 65 3a 0a 20 20 20 20  |essor mode:.    |
00001af0  0a 20 20 20 20 20 20 20  20 50 72 6f 63 65 73 73  |.        Process|
00001b00  6f 72 20 69 73 20 69 6e  20 53 56 43 20 6d 6f 64  |or is in SVC mod|
00001b10  65 2e 0a 0a 20 20 20 20  52 65 2d 65 6e 74 72 61  |e...    Re-entra|
00001b20  6e 63 79 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ncy:.    .      |
00001b30  20 20 53 57 49 20 69 73  20 6e 6f 74 20 72 65 2d  |  SWI is not re-|
00001b40  65 6e 74 72 61 6e 74 2e  0a 0a 20 20 20 20 55 73  |entrant...    Us|
00001b50  65 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |e:.    .        |
00001b60  41 6e 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 74  |An application t|
00001b70  68 61 74 20 70 72 6f 76  69 64 65 73 20 73 65 72  |hat provides ser|
00001b80  76 69 63 65 73 20 74 6f  20 50 43 20 73 6f 66 74  |vices to PC soft|
00001b90  77 61 72 65 20 73 68 6f  75 6c 64 20 63 61 6c 6c  |ware should call|
00001ba0  20 74 68 69 73 0a 20 20  20 20 20 20 20 20 77 68  | this.        wh|
00001bb0  65 6e 20 69 74 20 69 73  20 73 74 61 72 74 69 6e  |en it is startin|
00001bc0  67 2e 20 41 20 6d 65 73  73 61 67 65 20 62 75 66  |g. A message buf|
00001bd0  66 65 72 20 69 73 20 61  6c 6c 6f 63 61 74 65 64  |fer is allocated|
00001be0  20 61 6e 64 20 61 20 75  6e 69 71 75 65 0a 20 20  | and a unique.  |
00001bf0  20 20 20 20 20 20 68 61  6e 64 6c 65 20 66 6f 72  |      handle for|
00001c00  20 74 68 69 73 20 74 61  73 6b 20 61 73 73 69 67  | this task assig|
00001c10  6e 65 64 2e 20 54 68 69  73 20 68 61 6e 64 6c 65  |ned. This handle|
00001c20  20 73 68 6f 75 6c 64 20  62 65 20 73 74 6f 72 65  | should be store|
00001c30  64 20 61 6e 64 20 75 73  65 64 0a 20 20 20 20 20  |d and used.     |
00001c40  20 20 20 69 6e 20 61 6c  6c 20 6f 74 68 65 72 20  |   in all other |
00001c50  63 61 6c 6c 73 20 72 65  6c 61 74 69 6e 67 20 74  |calls relating t|
00001c60  6f 20 74 68 69 73 20 74  61 73 6b 2e 0a 20 20 20  |o this task..   |
00001c70  20 20 20 20 20 0a 20 20  20 20 20 20 20 20 54 68  |     .        Th|
00001c80  65 20 63 75 72 72 65 6e  74 6c 79 20 64 65 66 69  |e currently defi|
00001c90  6e 65 64 20 66 6c 61 67  20 62 69 74 73 20 61 72  |ned flag bits ar|
00001ca0  65 3a 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |e:.        .    |
00001cb0  20 20 20 20 20 20 20 20  42 69 74 20 20 20 20 20  |        Bit     |
00001cc0  4d 65 61 6e 69 6e 67 20  69 66 20 73 65 74 0a 20  |Meaning if set. |
00001cd0  20 20 20 20 20 20 20 20  20 20 20 0a 20 20 20 20  |           .    |
00001ce0  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
00001cf0  4d 65 73 73 61 67 65 73  20 66 72 6f 6d 20 74 68  |Messages from th|
00001d00  65 20 41 52 4d 45 64 69  74 20 6d 6f 64 75 6c 65  |e ARMEdit module|
00001d10  20 61 72 65 20 72 65 71  75 69 72 65 64 2e 0a 20  | are required.. |
00001d20  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
00001d30  41 6c 6c 20 6f 74 68 65  72 20 62 69 74 73 20 73  |All other bits s|
00001d40  68 6f 75 6c 64 20 62 65  20 73 65 74 20 74 6f 20  |hould be set to |
00001d50  30 20 74 6f 20 61 6c 6c  6f 77 20 66 6f 72 20 66  |0 to allow for f|
00001d60  75 74 75 72 65 20 65 78  70 61 6e 73 69 6f 6e 2e  |uture expansion.|
00001d70  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00001d80  20 20 54 68 65 20 70 6f  6c 6c 20 77 6f 72 64 20  |  The poll word |
00001d90  69 73 20 69 6e 69 74 69  61 6c 6c 79 20 73 65 74  |is initially set|
00001da0  20 74 6f 20 7a 65 72 6f  2e 20 57 68 65 6e 20 74  | to zero. When t|
00001db0  68 65 72 65 20 69 73 20  70 6f 74 65 6e 74 69 61  |here is potentia|
00001dc0  6c 6c 79 20 61 0a 20 20  20 20 20 20 20 20 6d 65  |lly a.        me|
00001dd0  73 73 61 67 65 20 77 61  69 74 69 6e 67 20 66 6f  |ssage waiting fo|
00001de0  72 20 74 68 69 73 20 74  61 73 6b 20 74 68 65 20  |r this task the |
00001df0  70 6f 6c 6c 20 77 6f 72  64 20 69 73 20 73 65 74  |poll word is set|
00001e00  20 74 6f 20 61 20 6e 6f  6e 2d 7a 65 72 6f 0a 20  | to a non-zero. |
00001e10  20 20 20 20 20 20 20 76  61 6c 75 65 2e 20 54 68  |       value. Th|
00001e20  65 20 70 6f 6c 6c 20 77  6f 72 64 20 69 73 20 63  |e poll word is c|
00001e30  6c 65 61 72 65 64 20 77  68 65 6e 20 65 69 74 68  |leared when eith|
00001e40  65 72 20 74 68 65 20 6d  65 73 73 61 67 65 20 68  |er the message h|
00001e50  61 73 20 62 65 65 6e 0a  20 20 20 20 20 20 20 20  |as been.        |
00001e60  72 65 61 64 2c 20 6f 72  20 6e 6f 20 6d 65 73 73  |read, or no mess|
00001e70  61 67 65 20 69 73 20 61  76 61 69 6c 61 62 6c 65  |age is available|
00001e80  20 66 6f 72 20 73 6f 6d  65 20 6f 74 68 65 72 20  | for some other |
00001e90  72 65 61 73 6f 6e 2e 20  4e 6f 74 65 20 74 68 61  |reason. Note tha|
00001ea0  74 20 61 0a 20 20 20 20  20 20 20 20 6e 6f 6e 2d  |t a.        non-|
00001eb0  7a 65 72 6f 20 70 6f 6c  6c 20 77 6f 72 64 20 64  |zero poll word d|
00001ec0  6f 65 73 20 6e 6f 74 20  69 6d 70 6c 79 20 74 68  |oes not imply th|
00001ed0  61 74 20 61 20 6d 65 73  73 61 67 65 20 77 69 6c  |at a message wil|
00001ee0  6c 20 62 65 20 61 76 61  69 6c 61 62 6c 65 3b 0a  |l be available;.|
00001ef0  20 20 20 20 20 20 20 20  61 6e 6f 74 68 65 72 20  |        another |
00001f00  74 61 73 6b 20 6d 69 67  68 74 20 68 61 76 65 20  |task might have |
00001f10  72 65 61 64 20 74 68 65  20 6d 65 73 73 61 67 65  |read the message|
00001f20  20 69 66 20 69 74 20 77  61 73 20 6e 6f 74 20 64  | if it was not d|
00001f30  69 72 65 63 74 65 64 20  74 6f 0a 20 20 20 20 20  |irected to.     |
00001f40  20 20 20 61 20 73 70 65  63 69 66 69 63 20 68 61  |   a specific ha|
00001f50  6e 64 6c 65 2e 20 54 68  65 20 70 6f 6c 6c 20 77  |ndle. The poll w|
00001f60  6f 72 64 20 6d 75 73 74  20 6e 6f 74 20 62 65 20  |ord must not be |
00001f70  77 72 69 74 74 65 6e 20  74 6f 3b 20 69 74 20 6d  |written to; it m|
00001f80  75 73 74 20 6f 6e 6c 79  0a 20 20 20 20 20 20 20  |ust only.       |
00001f90  20 62 65 20 6d 6f 64 69  66 69 65 64 20 62 79 20  | be modified by |
00001fa0  74 68 65 20 41 52 4d 45  64 69 74 20 6d 6f 64 75  |the ARMEdit modu|
00001fb0  6c 65 2e 0a 0a 0a 53 57  49 20 22 41 52 4d 45 64  |le....SWI "ARMEd|
00001fc0  69 74 5f 54 61 6c 6b 45  6e 64 22 20 28 26 34 42  |it_TalkEnd" (&4B|
00001fd0  43 34 32 29 0a 0a 20 20  20 20 44 65 72 65 67 69  |C42)..    Deregi|
00001fe0  73 74 65 72 20 61 20 63  6c 69 65 6e 74 20 74 61  |ster a client ta|
00001ff0  73 6b 2e 0a 20 20 20 20  0a 20 20 20 20 4f 6e 20  |sk..    .    On |
00002000  65 6e 74 72 79 3a 0a 20  20 20 20 0a 20 20 20 20  |entry:.    .    |
00002010  20 20 20 20 52 30 20 3d  20 54 68 65 20 70 72 65  |    R0 = The pre|
00002020  76 69 6f 75 73 6c 79 20  61 73 73 69 67 6e 65 64  |viously assigned|
00002030  20 68 61 6e 64 6c 65 20  66 6f 72 20 74 68 69 73  | handle for this|
00002040  20 63 6c 69 65 6e 74 20  74 61 73 6b 2e 0a 0a 20  | client task... |
00002050  20 20 20 4f 6e 20 65 78  69 74 3a 0a 20 20 20 20  |   On exit:.    |
00002060  0a 20 20 20 20 20 20 20  20 41 6c 6c 20 72 65 67  |.        All reg|
00002070  69 73 74 65 72 73 20 70  72 65 73 65 72 76 65 64  |isters preserved|
00002080  2e 0a 20 20 20 20 0a 20  20 20 20 49 6e 74 65 72  |..    .    Inter|
00002090  72 75 70 74 73 3a 0a 20  20 20 20 0a 20 20 20 20  |rupts:.    .    |
000020a0  20 20 20 20 49 6e 74 65  72 72 75 70 74 20 73 74  |    Interrupt st|
000020b0  61 74 75 73 20 69 73 20  75 6e 64 65 66 69 6e 65  |atus is undefine|
000020c0  64 2e 0a 20 20 20 20 20  20 20 20 46 61 73 74 20  |d..        Fast |
000020d0  69 6e 74 65 72 72 75 70  74 73 20 61 72 65 20 65  |interrupts are e|
000020e0  6e 61 62 6c 65 64 2e 0a  0a 20 20 20 20 50 72 6f  |nabled...    Pro|
000020f0  63 65 73 73 6f 72 20 6d  6f 64 65 3a 0a 20 20 20  |cessor mode:.   |
00002100  20 0a 20 20 20 20 20 20  20 20 50 72 6f 63 65 73  | .        Proces|
00002110  73 6f 72 20 69 73 20 69  6e 20 53 56 43 20 6d 6f  |sor is in SVC mo|
00002120  64 65 2e 0a 0a 20 20 20  20 52 65 2d 65 6e 74 72  |de...    Re-entr|
00002130  61 6e 63 79 3a 0a 20 20  20 20 0a 20 20 20 20 20  |ancy:.    .     |
00002140  20 20 20 53 57 49 20 69  73 20 6e 6f 74 20 72 65  |   SWI is not re|
00002150  2d 65 6e 74 72 61 6e 74  2e 0a 0a 20 20 20 20 55  |-entrant...    U|
00002160  73 65 3a 0a 20 20 20 20  0a 20 20 20 20 20 20 20  |se:.    .       |
00002170  20 41 6c 6c 20 61 70 70  6c 69 63 61 74 69 6f 6e  | All application|
00002180  73 20 74 68 61 74 20 63  61 6c 6c 20 41 52 4d 45  |s that call ARME|
00002190  64 69 74 5f 54 61 6c 6b  53 74 61 72 74 20 6d 75  |dit_TalkStart mu|
000021a0  73 74 20 63 61 6c 6c 20  74 68 69 73 20 62 65 66  |st call this bef|
000021b0  6f 72 65 0a 20 20 20 20  20 20 20 20 74 68 65 79  |ore.        they|
000021c0  20 74 65 72 6d 69 6e 61  74 65 2e 20 54 68 69 73  | terminate. This|
000021d0  20 72 65 6c 65 61 73 65  73 20 74 68 65 20 6d 65  | releases the me|
000021e0  73 73 61 67 65 20 62 75  66 66 65 72 20 61 6e 64  |ssage buffer and|
000021f0  20 61 6c 6c 6f 77 73 20  6f 74 68 65 72 0a 20 20  | allows other.  |
00002200  20 20 20 20 20 20 74 61  73 6b 73 20 74 6f 20 64  |      tasks to d|
00002210  65 74 65 63 74 20 77 68  65 74 68 65 72 20 70 61  |etect whether pa|
00002220  72 74 69 63 75 6c 61 72  20 73 65 72 76 69 63 65  |rticular service|
00002230  73 20 61 72 65 20 61 76  61 69 6c 61 62 6c 65 2e  |s are available.|
00002240  0a 0a 0a 53 57 49 20 22  41 52 4d 45 64 69 74 5f  |...SWI "ARMEdit_|
00002250  54 61 6c 6b 54 58 22 20  28 26 34 42 43 34 33 29  |TalkTX" (&4BC43)|
00002260  0a 0a 20 20 20 20 53 65  6e 64 20 61 20 6d 65 73  |..    Send a mes|
00002270  73 61 67 65 20 74 6f 20  61 6e 6f 74 68 65 72 20  |sage to another |
00002280  63 6c 69 65 6e 74 20 74  61 73 6b 2e 0a 20 20 20  |client task..   |
00002290  20 0a 20 20 20 20 4f 6e  20 65 6e 74 72 79 3a 0a  | .    On entry:.|
000022a0  20 20 20 20 0a 20 20 20  20 20 20 20 20 52 30 20  |    .        R0 |
000022b0  3d 20 43 6c 69 65 6e 74  20 68 61 6e 64 6c 65 20  |= Client handle |
000022c0  66 6f 72 20 74 68 69 73  20 74 61 73 6b 2e 0a 20  |for this task.. |
000022d0  20 20 20 20 20 20 20 52  31 20 3d 20 45 69 74 68  |       R1 = Eith|
000022e0  65 72 20 74 68 65 20 49  44 20 6f 72 20 63 6c 69  |er the ID or cli|
000022f0  65 6e 74 20 68 61 6e 64  6c 65 20 66 6f 72 20 74  |ent handle for t|
00002300  68 65 20 72 65 63 69 70  69 65 6e 74 20 28 69 66  |he recipient (if|
00002310  20 52 32 20 6e 6f 74 20  30 29 2e 0a 20 20 20 20  | R2 not 0)..    |
00002320  20 20 20 20 52 32 20 3d  20 50 6f 69 6e 74 65 72  |    R2 = Pointer|
00002330  20 74 6f 20 62 6c 6f 63  6b 20 63 6f 6e 74 61 69  | to block contai|
00002340  6e 69 6e 67 20 74 68 65  20 6d 65 73 73 61 67 65  |ning the message|
00002350  20 74 6f 20 73 65 6e 64  2c 20 6f 72 20 30 20 74  | to send, or 0 t|
00002360  6f 20 63 68 65 63 6b 0a  20 20 20 20 20 20 20 20  |o check.        |
00002370  20 20 20 20 20 69 66 20  74 68 65 20 62 75 66 66  |     if the buff|
00002380  65 72 20 61 6c 72 65 61  64 79 20 63 6f 6e 74 61  |er already conta|
00002390  69 6e 73 20 61 20 6d 65  73 73 61 67 65 2e 0a 0a  |ins a message...|
000023a0  20 20 20 20 4f 6e 20 65  78 69 74 3a 0a 20 20 20  |    On exit:.   |
000023b0  20 0a 20 20 20 20 20 20  20 20 52 32 20 3d 20 50  | .        R2 = P|
000023c0  6f 69 6e 74 65 72 20 74  6f 20 6d 65 73 73 61 67  |ointer to messag|
000023d0  65 20 62 75 66 66 65 72  2c 20 6f 72 20 30 20 69  |e buffer, or 0 i|
000023e0  66 20 6e 6f 20 6d 65 73  73 61 67 65 20 69 73 20  |f no message is |
000023f0  77 61 69 74 69 6e 67 20  74 6f 20 62 65 0a 20 20  |waiting to be.  |
00002400  20 20 20 20 20 20 20 20  20 20 20 64 65 6c 69 76  |           deliv|
00002410  65 72 65 64 2e 0a 20 20  20 20 0a 20 20 20 20 49  |ered..    .    I|
00002420  6e 74 65 72 72 75 70 74  73 3a 0a 20 20 20 20 0a  |nterrupts:.    .|
00002430  20 20 20 20 20 20 20 20  49 6e 74 65 72 72 75 70  |        Interrup|
00002440  74 20 73 74 61 74 75 73  20 69 73 20 75 6e 64 65  |t status is unde|
00002450  66 69 6e 65 64 2e 0a 20  20 20 20 20 20 20 20 46  |fined..        F|
00002460  61 73 74 20 69 6e 74 65  72 72 75 70 74 73 20 61  |ast interrupts a|
00002470  72 65 20 65 6e 61 62 6c  65 64 2e 0a 0a 20 20 20  |re enabled...   |
00002480  20 50 72 6f 63 65 73 73  6f 72 20 6d 6f 64 65 3a  | Processor mode:|
00002490  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 50 72  |.    .        Pr|
000024a0  6f 63 65 73 73 6f 72 20  69 73 20 69 6e 20 53 56  |ocessor is in SV|
000024b0  43 20 6d 6f 64 65 2e 0a  0a 20 20 20 20 52 65 2d  |C mode...    Re-|
000024c0  65 6e 74 72 61 6e 63 79  3a 0a 20 20 20 20 0a 20  |entrancy:.    . |
000024d0  20 20 20 20 20 20 20 53  57 49 20 69 73 20 6e 6f  |       SWI is no|
000024e0  74 20 72 65 2d 65 6e 74  72 61 6e 74 2e 0a 0a 20  |t re-entrant... |
000024f0  20 20 20 55 73 65 3a 0a  20 20 20 20 0a 20 20 20  |   Use:.    .   |
00002500  20 20 20 20 20 53 65 6e  64 20 61 20 6d 65 73 73  |     Send a mess|
00002510  61 67 65 20 74 6f 20 61  6e 6f 74 68 65 72 20 74  |age to another t|
00002520  61 73 6b 2e 20 54 68 65  20 64 65 73 74 69 6e 61  |ask. The destina|
00002530  74 69 6f 6e 20 74 61 73  6b 20 63 61 6e 20 62 65  |tion task can be|
00002540  20 73 70 65 63 69 66 69  65 64 0a 20 20 20 20 20  | specified.     |
00002550  20 20 20 75 73 69 6e 67  20 65 69 74 68 65 72 20  |   using either |
00002560  69 74 27 73 20 49 44 20  6f 72 20 63 6c 69 65 6e  |it's ID or clien|
00002570  74 20 68 61 6e 64 6c 65  2e 20 49 66 20 74 68 65  |t handle. If the|
00002580  20 49 44 20 69 73 20 73  70 65 63 69 66 69 65 64  | ID is specified|
00002590  20 74 68 65 6e 20 69 74  0a 20 20 20 20 20 20 20  | then it.       |
000025a0  20 77 69 6c 6c 20 62 65  20 6f 66 66 65 72 65 64  | will be offered|
000025b0  20 74 6f 20 65 61 63 68  20 6d 61 74 63 68 69 6e  | to each matchin|
000025c0  67 20 74 61 73 6b 20 74  68 61 74 20 70 6f 6c 6c  |g task that poll|
000025d0  73 20 69 74 20 75 6e 74  69 6c 20 69 74 20 69 73  |s it until it is|
000025e0  0a 20 20 20 20 20 20 20  20 61 63 6b 6e 6f 77 6c  |.        acknowl|
000025f0  65 64 67 65 64 2e 20 41  20 70 61 72 74 69 63 75  |edged. A particu|
00002600  6c 61 72 20 6d 65 73 73  61 67 65 20 69 73 20 6f  |lar message is o|
00002610  6e 6c 79 20 6f 66 66 65  72 65 64 20 74 6f 20 65  |nly offered to e|
00002620  61 63 68 20 74 61 73 6b  20 6f 6e 63 65 2e 0a 20  |ach task once.. |
00002630  20 20 20 20 20 20 20 57  68 65 6e 20 73 65 6e 64  |       When send|
00002640  69 6e 67 20 6d 65 73 73  61 67 65 73 20 74 6f 20  |ing messages to |
00002650  50 43 20 73 6f 66 74 77  61 72 65 20 28 49 44 20  |PC software (ID |
00002660  3d 20 30 29 20 74 68 65  20 68 61 6e 64 6c 65 20  |= 0) the handle |
00002670  73 68 6f 75 6c 64 0a 20  20 20 20 20 20 20 20 61  |should.        a|
00002680  6c 77 61 79 73 20 62 65  20 73 70 65 63 69 66 69  |lways be specifi|
00002690  65 64 2e 0a 20 20 20 20  20 20 20 20 0a 20 20 20  |ed..        .   |
000026a0  20 20 20 20 20 4e 6f 74  65 20 74 68 61 74 20 74  |     Note that t|
000026b0  68 65 20 6d 65 73 73 61  67 65 20 62 75 66 66 65  |he message buffe|
000026c0  72 20 66 6f 72 20 65 61  63 68 20 74 61 73 6b 20  |r for each task |
000026d0  63 61 6e 20 6f 6e 6c 79  20 63 6f 6e 74 61 69 6e  |can only contain|
000026e0  20 61 20 73 69 6e 67 6c  65 0a 20 20 20 20 20 20  | a single.      |
000026f0  20 20 6d 65 73 73 61 67  65 20 74 6f 20 73 65 6e  |  message to sen|
00002700  64 3b 20 69 66 20 74 68  65 72 65 20 69 73 20 61  |d; if there is a|
00002710  6c 72 65 61 64 79 20 61  20 6d 65 73 73 61 67 65  |lready a message|
00002720  20 77 61 69 74 69 6e 67  20 74 6f 20 62 65 0a 20  | waiting to be. |
00002730  20 20 20 20 20 20 20 64  65 6c 69 76 65 72 65 64  |       delivered|
00002740  20 74 68 65 6e 20 69 74  20 69 73 20 6f 76 65 72  | then it is over|
00002750  77 72 69 74 74 65 6e 2e  20 57 68 65 6e 20 6d 75  |written. When mu|
00002760  6c 74 69 70 6c 65 20 63  6c 69 65 6e 74 73 20 61  |ltiple clients a|
00002770  72 65 20 75 73 65 64 2c  0a 20 20 20 20 20 20 20  |re used,.       |
00002780  20 74 68 69 73 20 53 57  49 20 73 68 6f 75 6c 64  | this SWI should|
00002790  20 66 69 72 73 74 20 62  65 20 63 61 6c 6c 65 64  | first be called|
000027a0  20 77 69 74 68 20 52 32  20 3d 20 30 20 74 6f 20  | with R2 = 0 to |
000027b0  63 68 65 63 6b 20 69 66  20 61 20 6d 65 73 73 61  |check if a messa|
000027c0  67 65 0a 20 20 20 20 20  20 20 20 69 73 20 73 74  |ge.        is st|
000027d0  69 6c 6c 20 77 61 69 74  69 6e 67 2e 20 42 72 6f  |ill waiting. Bro|
000027e0  61 64 63 61 73 74 20 6d  65 73 73 61 67 65 73 20  |adcast messages |
000027f0  61 72 65 20 6e 65 76 65  72 20 63 6c 65 61 72 65  |are never cleare|
00002800  64 20 61 75 74 6f 6d 61  74 69 63 61 6c 6c 79 2e  |d automatically.|
00002810  0a 0a 0a 53 57 49 20 22  41 52 4d 45 64 69 74 5f  |...SWI "ARMEdit_|
00002820  54 61 6c 6b 52 58 22 20  28 26 34 42 43 34 34 29  |TalkRX" (&4BC44)|
00002830  0a 0a 20 20 20 20 43 68  65 63 6b 20 66 6f 72 20  |..    Check for |
00002840  61 6e 79 20 77 61 69 74  69 6e 67 20 6d 65 73 73  |any waiting mess|
00002850  61 67 65 73 20 66 6f 72  20 74 68 69 73 20 63 6c  |ages for this cl|
00002860  69 65 6e 74 20 74 61 73  6b 2e 0a 20 20 20 20 0a  |ient task..    .|
00002870  20 20 20 20 4f 6e 20 65  6e 74 72 79 3a 0a 20 20  |    On entry:.  |
00002880  20 20 0a 20 20 20 20 20  20 20 20 52 30 20 3d 20  |  .        R0 = |
00002890  43 6c 69 65 6e 74 20 68  61 6e 64 6c 65 20 66 6f  |Client handle fo|
000028a0  72 20 74 68 69 73 20 74  61 73 6b 2e 0a 0a 20 20  |r this task...  |
000028b0  20 20 4f 6e 20 65 78 69  74 3a 0a 20 20 20 20 0a  |  On exit:.    .|
000028c0  20 20 20 20 20 20 20 20  52 30 20 3d 20 50 6f 69  |        R0 = Poi|
000028d0  6e 74 65 72 20 74 6f 20  62 6c 6f 63 6b 20 63 6f  |nter to block co|
000028e0  6e 74 61 69 6e 69 6e 67  20 77 61 69 74 69 6e 67  |ntaining waiting|
000028f0  20 6d 65 73 73 61 67 65  2c 20 6f 72 20 30 20 69  | message, or 0 i|
00002900  66 20 6e 6f 20 6d 65 73  73 61 67 65 73 0a 20 20  |f no messages.  |
00002910  20 20 20 20 20 20 20 20  20 20 20 77 61 69 74 69  |           waiti|
00002920  6e 67 2e 0a 20 20 20 20  20 20 20 20 52 31 20 3d  |ng..        R1 =|
00002930  20 53 6f 75 72 63 65 20  49 44 2e 0a 20 20 20 20  | Source ID..    |
00002940  20 20 20 20 52 32 20 3d  20 53 6f 75 72 63 65 20  |    R2 = Source |
00002950  63 6c 69 65 6e 74 20 68  61 6e 64 6c 65 2e 0a 20  |client handle.. |
00002960  20 20 20 0a 20 20 20 20  49 6e 74 65 72 72 75 70  |   .    Interrup|
00002970  74 73 3a 0a 20 20 20 20  0a 20 20 20 20 20 20 20  |ts:.    .       |
00002980  20 49 6e 74 65 72 72 75  70 74 20 73 74 61 74 75  | Interrupt statu|
00002990  73 20 69 73 20 75 6e 64  65 66 69 6e 65 64 2e 0a  |s is undefined..|
000029a0  20 20 20 20 20 20 20 20  46 61 73 74 20 69 6e 74  |        Fast int|
000029b0  65 72 72 75 70 74 73 20  61 72 65 20 65 6e 61 62  |errupts are enab|
000029c0  6c 65 64 2e 0a 0a 20 20  20 20 50 72 6f 63 65 73  |led...    Proces|
000029d0  73 6f 72 20 6d 6f 64 65  3a 0a 20 20 20 20 0a 20  |sor mode:.    . |
000029e0  20 20 20 20 20 20 20 50  72 6f 63 65 73 73 6f 72  |       Processor|
000029f0  20 69 73 20 69 6e 20 53  56 43 20 6d 6f 64 65 2e  | is in SVC mode.|
00002a00  0a 0a 20 20 20 20 52 65  2d 65 6e 74 72 61 6e 63  |..    Re-entranc|
00002a10  79 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |y:.    .        |
00002a20  53 57 49 20 69 73 20 6e  6f 74 20 72 65 2d 65 6e  |SWI is not re-en|
00002a30  74 72 61 6e 74 2e 0a 0a  20 20 20 20 55 73 65 3a  |trant...    Use:|
00002a40  0a 0a 20 20 20 20 20 20  20 20 43 68 65 63 6b 20  |..        Check |
00002a50  66 6f 72 20 61 6e 79 20  77 61 69 74 69 6e 67 20  |for any waiting |
00002a60  6d 65 73 73 61 67 65 73  2e 20 49 66 20 6e 6f 6e  |messages. If non|
00002a70  65 20 61 72 65 20 61 76  61 69 6c 61 62 6c 65 20  |e are available |
00002a80  52 30 20 63 6f 6e 74 61  69 6e 73 20 30 0a 20 20  |R0 contains 0.  |
00002a90  20 20 20 20 20 20 6f 6e  20 65 78 69 74 2c 20 6f  |      on exit, o|
00002aa0  74 68 65 72 77 69 73 65  20 69 74 20 63 6f 6e 74  |therwise it cont|
00002ab0  61 69 6e 73 20 61 20 70  6f 69 6e 74 65 72 20 74  |ains a pointer t|
00002ac0  6f 20 74 68 65 20 66 69  72 73 74 20 6d 65 73 73  |o the first mess|
00002ad0  61 67 65 2e 20 54 68 65  0a 20 20 20 20 20 20 20  |age. The.       |
00002ae0  20 6d 65 73 73 61 67 65  20 73 68 6f 75 6c 64 20  | message should |
00002af0  62 65 20 63 68 65 63 6b  65 64 2c 20 61 6e 64 20  |be checked, and |
00002b00  69 66 20 69 74 20 69 73  20 63 6c 61 69 6d 65 64  |if it is claimed|
00002b10  20 41 52 4d 45 64 69 74  5f 54 61 6c 6b 41 63 6b  | ARMEdit_TalkAck|
00002b20  20 6f 72 0a 20 20 20 20  20 20 20 20 41 52 4d 45  | or.        ARME|
00002b30  64 69 74 5f 54 61 6c 6b  52 65 70 6c 79 20 73 68  |dit_TalkReply sh|
00002b40  6f 75 6c 64 20 62 65 20  63 61 6c 6c 65 64 20 74  |ould be called t|
00002b50  6f 20 70 72 65 76 65 6e  74 20 69 74 20 62 65 69  |o prevent it bei|
00002b60  6e 67 20 70 61 73 73 65  64 20 74 6f 0a 20 20 20  |ng passed to.   |
00002b70  20 20 20 20 20 6f 74 68  65 72 20 63 6c 69 65 6e  |     other clien|
00002b80  74 73 2e 20 41 6e 79 20  69 6e 66 6f 72 6d 61 74  |ts. Any informat|
00002b90  69 6f 6e 20 72 65 71 75  69 72 65 64 20 66 72 6f  |ion required fro|
00002ba0  6d 20 74 68 65 20 6d 65  73 73 61 67 65 20 6d 75  |m the message mu|
00002bb0  73 74 20 62 65 20 72 65  61 64 0a 20 20 20 20 20  |st be read.     |
00002bc0  20 20 20 6f 72 20 63 6f  70 69 65 64 20 69 6d 6d  |   or copied imm|
00002bd0  65 64 69 61 74 65 6c 79  2c 20 73 69 6e 63 65 20  |ediately, since |
00002be0  74 68 65 20 6d 65 73 73  61 67 65 20 63 6f 75 6c  |the message coul|
00002bf0  64 20 62 65 20 6f 76 65  72 77 72 69 74 74 65 6e  |d be overwritten|
00002c00  20 62 79 20 61 0a 20 20  20 20 20 20 20 20 6e 65  | by a.        ne|
00002c10  77 20 6d 65 73 73 61 67  65 2e 0a 20 20 20 20 20  |w message..     |
00002c20  20 20 20 0a 20 20 20 20  20 20 20 20 54 68 65 20  |   .        The |
00002c30  73 70 65 63 69 66 69 65  64 20 73 6f 75 72 63 65  |specified source|
00002c40  20 63 6c 69 65 6e 74 20  68 61 6e 64 6c 65 20 73  | client handle s|
00002c50  68 6f 75 6c 64 20 62 65  20 75 73 65 64 20 66 6f  |hould be used fo|
00002c60  72 20 61 6e 79 20 72 65  70 6c 79 3b 0a 20 20 20  |r any reply;.   |
00002c70  20 20 20 20 20 75 6e 6c  69 6b 65 20 74 68 65 20  |     unlike the |
00002c80  49 44 20 69 74 20 75 6e  69 71 75 65 6c 79 20 69  |ID it uniquely i|
00002c90  64 65 6e 74 69 66 69 65  73 20 61 20 70 61 72 74  |dentifies a part|
00002ca0  69 63 75 6c 61 72 20 69  6e 73 74 61 6e 74 69 61  |icular instantia|
00002cb0  74 69 6f 6e 20 6f 66 20  61 0a 20 20 20 20 20 20  |tion of a.      |
00002cc0  20 20 63 6c 69 65 6e 74  2e 0a 20 20 20 20 20 20  |  client..      |
00002cd0  20 20 0a 20 20 20 20 20  20 20 20 49 66 20 74 68  |  .        If th|
00002ce0  69 73 20 63 61 6c 6c 20  69 73 20 73 75 63 63 65  |is call is succe|
00002cf0  73 73 66 75 6c 20 74 68  65 6e 20 69 74 20 73 68  |ssful then it sh|
00002d00  6f 75 6c 64 20 62 65 20  63 61 6c 6c 65 64 20 61  |ould be called a|
00002d10  67 61 69 6e 3b 20 69 74  20 69 73 0a 20 20 20 20  |gain; it is.    |
00002d20  20 20 20 20 70 6f 73 73  69 62 6c 65 20 66 6f 72  |    possible for|
00002d30  20 6d 75 6c 74 69 70 6c  65 20 6d 65 73 73 61 67  | multiple messag|
00002d40  65 73 20 74 6f 20 62 65  20 70 65 6e 64 69 6e 67  |es to be pending|
00002d50  20 66 6f 72 20 61 20 73  69 6e 67 6c 65 20 63 6c  | for a single cl|
00002d60  69 65 6e 74 2e 0a 0a 0a  53 57 49 20 22 41 52 4d  |ient....SWI "ARM|
00002d70  45 64 69 74 5f 54 61 6c  6b 41 63 6b 22 20 28 26  |Edit_TalkAck" (&|
00002d80  34 42 43 34 35 29 0a 0a  20 20 20 20 43 6c 61 69  |4BC45)..    Clai|
00002d90  6d 20 74 68 65 20 6d 6f  73 74 20 72 65 63 65 6e  |m the most recen|
00002da0  74 6c 79 20 72 65 61 64  20 6d 65 73 73 61 67 65  |tly read message|
00002db0  2e 0a 20 20 20 20 0a 20  20 20 20 4f 6e 20 65 6e  |..    .    On en|
00002dc0  74 72 79 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |try:.    .      |
00002dd0  20 20 52 30 20 3d 20 43  6c 69 65 6e 74 20 68 61  |  R0 = Client ha|
00002de0  6e 64 6c 65 20 66 6f 72  20 74 68 69 73 20 74 61  |ndle for this ta|
00002df0  73 6b 2e 0a 0a 20 20 20  20 4f 6e 20 65 78 69 74  |sk...    On exit|
00002e00  3a 0a 20 20 20 20 0a 20  20 20 20 20 20 20 20 41  |:.    .        A|
00002e10  6c 6c 20 72 65 67 69 73  74 65 72 73 20 70 72 65  |ll registers pre|
00002e20  73 65 72 76 65 64 2e 0a  20 20 20 20 0a 20 20 20  |served..    .   |
00002e30  20 49 6e 74 65 72 72 75  70 74 73 3a 0a 20 20 20  | Interrupts:.   |
00002e40  20 0a 20 20 20 20 20 20  20 20 49 6e 74 65 72 72  | .        Interr|
00002e50  75 70 74 20 73 74 61 74  75 73 20 69 73 20 75 6e  |upt status is un|
00002e60  64 65 66 69 6e 65 64 2e  0a 20 20 20 20 20 20 20  |defined..       |
00002e70  20 46 61 73 74 20 69 6e  74 65 72 72 75 70 74 73  | Fast interrupts|
00002e80  20 61 72 65 20 65 6e 61  62 6c 65 64 2e 0a 0a 20  | are enabled... |
00002e90  20 20 20 50 72 6f 63 65  73 73 6f 72 20 6d 6f 64  |   Processor mod|
00002ea0  65 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |e:.    .        |
00002eb0  50 72 6f 63 65 73 73 6f  72 20 69 73 20 69 6e 20  |Processor is in |
00002ec0  53 56 43 20 6d 6f 64 65  2e 0a 0a 20 20 20 20 52  |SVC mode...    R|
00002ed0  65 2d 65 6e 74 72 61 6e  63 79 3a 0a 20 20 20 20  |e-entrancy:.    |
00002ee0  0a 20 20 20 20 20 20 20  20 53 57 49 20 69 73 20  |.        SWI is |
00002ef0  6e 6f 74 20 72 65 2d 65  6e 74 72 61 6e 74 2e 0a  |not re-entrant..|
00002f00  0a 20 20 20 20 55 73 65  3a 0a 20 20 20 20 0a 20  |.    Use:.    . |
00002f10  20 20 20 20 20 20 20 41  66 74 65 72 20 72 65 61  |       After rea|
00002f20  64 69 6e 67 20 61 20 6d  65 73 73 61 67 65 20 77  |ding a message w|
00002f30  69 74 68 20 41 52 4d 45  64 69 74 5f 54 61 6c 6b  |ith ARMEdit_Talk|
00002f40  52 58 2c 20 74 68 69 73  20 63 61 6c 6c 20 73 68  |RX, this call sh|
00002f50  6f 75 6c 64 20 62 65 0a  20 20 20 20 20 20 20 20  |ould be.        |
00002f60  75 73 65 64 20 74 6f 20  63 6c 61 69 6d 20 74 68  |used to claim th|
00002f70  65 20 6d 65 73 73 61 67  65 2c 20 61 6e 64 20 74  |e message, and t|
00002f80  6f 20 70 72 65 76 65 6e  74 20 69 74 20 62 65 69  |o prevent it bei|
00002f90  6e 67 20 6f 66 66 65 72  65 64 20 74 6f 20 6f 74  |ng offered to ot|
00002fa0  68 65 72 0a 20 20 20 20  20 20 20 20 63 6c 69 65  |her.        clie|
00002fb0  6e 74 73 2e 20 54 68 69  73 20 73 68 6f 75 6c 64  |nts. This should|
00002fc0  20 62 65 20 75 73 65 64  20 62 65 66 6f 72 65 20  | be used before |
00002fd0  63 61 6c 6c 69 6e 67 20  61 6e 79 20 6f 74 68 65  |calling any othe|
00002fe0  72 20 53 57 49 73 20 66  72 6f 6d 20 74 68 69 73  |r SWIs from this|
00002ff0  0a 20 20 20 20 20 20 20  20 6d 6f 64 75 6c 65 2e  |.        module.|
00003000  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00003010  20 20 49 66 20 74 68 65  20 6d 65 73 73 61 67 65  |  If the message|
00003020  20 77 61 73 20 73 65 6e  74 20 62 79 20 74 68 65  | was sent by the|
00003030  20 41 52 4d 45 64 69 74  20 6d 6f 64 75 6c 65 20  | ARMEdit module |
00003040  74 68 65 6e 20 63 61 6c  6c 69 6e 67 20 74 68 69  |then calling thi|
00003050  73 20 53 57 49 0a 20 20  20 20 20 20 20 20 68 61  |s SWI.        ha|
00003060  73 20 6e 6f 20 65 66 66  65 63 74 3b 20 6f 74 68  |s no effect; oth|
00003070  65 72 20 63 6c 69 65 6e  74 73 20 73 74 69 6c 6c  |er clients still|
00003080  20 72 65 63 65 69 76 65  20 74 68 65 20 6d 65 73  | receive the mes|
00003090  73 61 67 65 2e 0a 0a 0a  53 57 49 20 22 41 52 4d  |sage....SWI "ARM|
000030a0  45 64 69 74 5f 48 50 43  22 20 28 26 34 42 43 34  |Edit_HPC" (&4BC4|
000030b0  36 29 0a 0a 20 20 20 20  43 61 6c 6c 20 61 6e 20  |6)..    Call an |
000030c0  41 52 4d 45 64 69 74 20  48 50 43 20 73 65 72 76  |ARMEdit HPC serv|
000030d0  69 63 65 2e 0a 20 20 20  20 0a 20 20 20 20 4f 6e  |ice..    .    On|
000030e0  20 65 6e 74 72 79 3a 0a  20 20 20 20 0a 20 20 20  | entry:.    .   |
000030f0  20 20 20 20 20 52 30 20  3d 20 4c 65 6e 67 74 68  |     R0 = Length|
00003100  20 6f 66 20 66 69 72 73  74 20 69 6e 70 75 74 20  | of first input |
00003110  62 6c 6f 63 6b 2e 0a 20  20 20 20 20 20 20 20 52  |block..        R|
00003120  31 20 3d 20 50 6f 69 6e  74 65 72 20 74 6f 20 66  |1 = Pointer to f|
00003130  69 72 73 74 20 69 6e 70  75 74 20 62 6c 6f 63 6b  |irst input block|
00003140  2e 0a 20 20 20 20 20 20  20 20 52 32 20 3d 20 4c  |..        R2 = L|
00003150  65 6e 67 74 68 20 6f 66  20 73 65 63 6f 6e 64 20  |ength of second |
00003160  69 6e 70 75 74 20 62 6c  6f 63 6b 2e 0a 20 20 20  |input block..   |
00003170  20 20 20 20 20 52 33 20  3d 20 50 6f 69 6e 74 65  |     R3 = Pointe|
00003180  72 20 74 6f 20 73 65 63  6f 6e 64 20 69 6e 70 75  |r to second inpu|
00003190  74 20 62 6c 6f 63 6b 2e  0a 20 20 20 20 20 20 20  |t block..       |
000031a0  20 52 34 20 3d 20 4c 65  6e 67 74 68 20 6f 66 20  | R4 = Length of |
000031b0  66 69 72 73 74 20 6f 75  74 70 75 74 20 62 6c 6f  |first output blo|
000031c0  63 6b 2e 0a 20 20 20 20  20 20 20 20 52 35 20 3d  |ck..        R5 =|
000031d0  20 50 6f 69 6e 74 65 72  20 74 6f 20 66 69 72 73  | Pointer to firs|
000031e0  74 20 6f 75 74 70 75 74  20 62 6c 6f 63 6b 2e 0a  |t output block..|
000031f0  20 20 20 20 20 20 20 20  52 36 20 3d 20 4c 65 6e  |        R6 = Len|
00003200  67 74 68 20 6f 66 20 73  65 63 6f 6e 64 20 6f 75  |gth of second ou|
00003210  74 70 75 74 20 62 6c 6f  63 6b 2e 0a 20 20 20 20  |tput block..    |
00003220  20 20 20 20 52 37 20 3d  20 50 6f 69 6e 74 65 72  |    R7 = Pointer|
00003230  20 74 6f 20 73 65 63 6f  6e 64 20 6f 75 74 70 75  | to second outpu|
00003240  74 20 62 6c 6f 63 6b 2e  0a 0a 20 20 20 20 4f 6e  |t block...    On|
00003250  20 65 78 69 74 3a 0a 20  20 20 20 0a 20 20 20 20  | exit:.    .    |
00003260  20 20 20 20 41 6c 6c 20  72 65 67 69 73 74 65 72  |    All register|
00003270  73 20 70 72 65 73 65 72  76 65 64 2e 0a 0a 20 20  |s preserved...  |
00003280  20 20 49 6e 74 65 72 72  75 70 74 73 3a 0a 20 20  |  Interrupts:.  |
00003290  20 20 0a 20 20 20 20 20  20 20 20 49 6e 74 65 72  |  .        Inter|
000032a0  72 75 70 74 20 73 74 61  74 75 73 20 69 73 20 75  |rupt status is u|
000032b0  6e 64 65 66 69 6e 65 64  2e 0a 20 20 20 20 20 20  |ndefined..      |
000032c0  20 20 46 61 73 74 20 69  6e 74 65 72 72 75 70 74  |  Fast interrupt|
000032d0  73 20 61 72 65 20 65 6e  61 62 6c 65 64 2e 0a 0a  |s are enabled...|
000032e0  20 20 20 20 50 72 6f 63  65 73 73 6f 72 20 6d 6f  |    Processor mo|
000032f0  64 65 3a 0a 20 20 20 20  0a 20 20 20 20 20 20 20  |de:.    .       |
00003300  20 50 72 6f 63 65 73 73  6f 72 20 69 73 20 69 6e  | Processor is in|
00003310  20 53 56 43 20 6d 6f 64  65 2e 0a 0a 20 20 20 20  | SVC mode...    |
00003320  52 65 2d 65 6e 74 72 61  6e 63 79 3a 0a 20 20 20  |Re-entrancy:.   |
00003330  20 0a 20 20 20 20 20 20  20 20 53 57 49 20 69 73  | .        SWI is|
00003340  20 6e 6f 74 20 72 65 2d  65 6e 74 72 61 6e 74 2e  | not re-entrant.|
00003350  0a 0a 20 20 20 20 55 73  65 3a 0a 20 20 20 20 0a  |..    Use:.    .|
00003360  20 20 20 20 20 20 20 20  54 68 69 73 20 63 61 6c  |        This cal|
00003370  6c 20 6d 61 79 20 65 69  74 68 65 72 20 62 65 20  |l may either be |
00003380  75 73 65 64 20 74 6f 20  74 65 73 74 20 48 50 43  |used to test HPC|
00003390  20 73 65 72 76 69 63 65  73 2c 20 6f 72 20 74 6f  | services, or to|
000033a0  20 70 72 6f 76 69 64 65  0a 20 20 20 20 20 20 20  | provide.       |
000033b0  20 61 63 63 65 73 73 20  74 6f 20 74 68 65 20 72  | access to the r|
000033c0  6f 75 74 69 6e 65 73 20  66 72 6f 6d 20 61 20 73  |outines from a s|
000033d0  79 73 74 65 6d 20 74 68  61 74 20 64 6f 65 73 20  |ystem that does |
000033e0  6e 6f 74 20 73 75 70 70  6f 72 74 20 65 69 74 68  |not support eith|
000033f0  65 72 20 6f 66 0a 20 20  20 20 20 20 20 20 74 68  |er of.        th|
00003400  65 20 63 6f 6d 6d 75 6e  69 63 61 74 69 6f 6e 73  |e communications|
00003410  20 73 79 73 74 65 6d 73  20 75 73 65 64 20 6e 6f  | systems used no|
00003420  72 6d 61 6c 6c 79 20 62  79 20 74 68 65 20 41 52  |rmally by the AR|
00003430  4d 45 64 69 74 20 73 79  73 74 65 6d 2e 0a 20 20  |MEdit system..  |
00003440  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 46  |      .        F|
00003450  6f 72 20 63 6f 6e 76 65  6e 69 65 6e 63 65 20 74  |or convenience t|
00003460  68 65 20 69 6e 70 75 74  20 61 6e 64 20 6f 75 74  |he input and out|
00003470  70 75 74 20 64 61 74 61  20 6d 61 79 20 62 65 20  |put data may be |
00003480  73 70 6c 69 74 20 69 6e  74 6f 20 74 77 6f 0a 20  |split into two. |
00003490  20 20 20 20 20 20 20 70  6f 72 74 69 6f 6e 73 2e  |       portions.|
000034a0  20 41 6e 79 20 6c 65 6e  67 74 68 20 76 61 6c 75  | Any length valu|
000034b0  65 20 6d 61 79 20 62 65  20 7a 65 72 6f 20 74 6f  |e may be zero to|
000034c0  20 6f 6d 69 74 20 74 68  61 74 20 70 6f 72 74 69  | omit that porti|
000034d0  6f 6e 2e 20 54 68 65 0a  20 20 20 20 20 20 20 20  |on. The.        |
000034e0  69 6e 70 75 74 20 64 61  74 61 20 6d 75 73 74 20  |input data must |
000034f0  62 65 20 61 74 20 6c 65  61 73 74 20 74 77 6f 20  |be at least two |
00003500  62 79 74 65 73 20 6c 6f  6e 67 20 74 6f 20 63 6f  |bytes long to co|
00003510  6e 74 61 69 6e 20 61 20  76 61 6c 69 64 20 49 44  |ntain a valid ID|
00003520  2e 0a 0a 0a 53 57 49 20  22 41 52 4d 45 64 69 74  |....SWI "ARMEdit|
00003530  5f 50 6f 6c 6c 69 6e 67  22 20 28 26 34 42 43 34  |_Polling" (&4BC4|
00003540  37 29 0a 0a 20 20 20 20  43 6f 6e 74 72 6f 6c 20  |7)..    Control |
00003550  74 68 65 20 6d 75 6c 74  69 74 61 73 6b 69 6e 67  |the multitasking|
00003560  20 73 70 65 65 64 20 6f  66 20 74 68 65 20 50 43  | speed of the PC|
00003570  20 63 61 72 64 2e 0a 20  20 20 20 0a 20 20 20 20  | card..    .    |
00003580  4f 6e 20 65 6e 74 72 79  3a 0a 20 20 20 20 0a 20  |On entry:.    . |
00003590  20 20 20 20 20 20 20 52  30 20 3d 20 46 6f 72 65  |       R0 = Fore|
000035a0  67 72 6f 75 6e 64 20 73  70 65 65 64 2c 20 6f 72  |ground speed, or|
000035b0  20 2d 31 20 74 6f 20 72  65 61 64 20 74 68 65 20  | -1 to read the |
000035c0  63 75 72 72 65 6e 74 20  73 65 74 74 69 6e 67 2e  |current setting.|
000035d0  0a 20 20 20 20 20 20 20  20 52 31 20 3d 20 42 61  |.        R1 = Ba|
000035e0  63 6b 67 72 6f 75 6e 64  20 73 70 65 65 64 2c 20  |ckground speed, |
000035f0  6f 72 20 2d 31 20 74 6f  20 72 65 61 64 20 74 68  |or -1 to read th|
00003600  65 20 63 75 72 72 65 6e  74 20 73 65 74 74 69 6e  |e current settin|
00003610  67 2e 0a 0a 20 20 20 20  4f 6e 20 65 78 69 74 3a  |g...    On exit:|
00003620  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 52 30  |.    .        R0|
00003630  20 3d 20 54 68 65 20 63  75 72 72 65 6e 74 20 66  | = The current f|
00003640  6f 72 65 67 72 6f 75 6e  64 20 73 70 65 65 64 2e  |oreground speed.|
00003650  0a 20 20 20 20 20 20 20  20 52 31 20 3d 20 54 68  |.        R1 = Th|
00003660  65 20 63 75 72 72 65 6e  74 20 62 61 63 6b 67 72  |e current backgr|
00003670  6f 75 6e 64 20 73 70 65  65 64 2e 0a 20 20 20 20  |ound speed..    |
00003680  0a 20 20 20 20 49 6e 74  65 72 72 75 70 74 73 3a  |.    Interrupts:|
00003690  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 49 6e  |.    .        In|
000036a0  74 65 72 72 75 70 74 20  73 74 61 74 75 73 20 69  |terrupt status i|
000036b0  73 20 75 6e 64 65 66 69  6e 65 64 2e 0a 20 20 20  |s undefined..   |
000036c0  20 20 20 20 20 46 61 73  74 20 69 6e 74 65 72 72  |     Fast interr|
000036d0  75 70 74 73 20 61 72 65  20 65 6e 61 62 6c 65 64  |upts are enabled|
000036e0  2e 0a 0a 20 20 20 20 50  72 6f 63 65 73 73 6f 72  |...    Processor|
000036f0  20 6d 6f 64 65 3a 0a 20  20 20 20 0a 20 20 20 20  | mode:.    .    |
00003700  20 20 20 20 50 72 6f 63  65 73 73 6f 72 20 69 73  |    Processor is|
00003710  20 69 6e 20 53 56 43 20  6d 6f 64 65 2e 0a 0a 20  | in SVC mode... |
00003720  20 20 20 52 65 2d 65 6e  74 72 61 6e 63 79 3a 0a  |   Re-entrancy:.|
00003730  20 20 20 20 0a 20 20 20  20 20 20 20 20 53 57 49  |    .        SWI|
00003740  20 69 73 20 6e 6f 74 20  72 65 2d 65 6e 74 72 61  | is not re-entra|
00003750  6e 74 2e 0a 0a 20 20 20  20 55 73 65 3a 0a 20 20  |nt...    Use:.  |
00003760  20 20 0a 20 20 20 20 20  20 20 20 54 68 69 73 20  |  .        This |
00003770  63 61 6c 6c 20 68 61 73  20 68 61 73 20 61 20 73  |call has has a s|
00003780  69 6d 69 6c 61 72 20 75  73 65 20 74 6f 20 2a 41  |imilar use to *A|
00003790  52 4d 45 64 69 74 5f 50  6f 6c 6c 69 6e 67 2e 0a  |RMEdit_Polling..|
000037a0  0a 20 20 20 20 20 20 20  20 4c 61 72 67 65 72 20  |.        Larger |
000037b0  76 61 6c 75 65 73 20 69  6e 63 72 65 61 73 65 20  |values increase |
000037c0  74 68 65 20 70 65 72 66  6f 72 6d 61 6e 63 65 20  |the performance |
000037d0  6f 66 20 74 68 65 20 50  43 20 63 61 72 64 20 61  |of the PC card a|
000037e0  74 20 74 68 65 20 65 78  70 65 6e 73 65 0a 20 20  |t the expense.  |
000037f0  20 20 20 20 20 20 6f 66  20 73 6c 6f 77 69 6e 67  |      of slowing|
00003800  20 64 6f 77 6e 20 74 68  65 20 64 65 73 6b 74 6f  | down the deskto|
00003810  70 2e 20 41 20 76 61 6c  75 65 20 6f 66 20 30 20  |p. A value of 0 |
00003820  72 65 73 75 6c 74 73 20  69 6e 20 74 68 65 20 6e  |results in the n|
00003830  6f 72 6d 61 6c 0a 20 20  20 20 20 20 20 20 62 65  |ormal.        be|
00003840  68 61 76 69 6f 75 72 2e  0a 0a 0a 53 57 49 20 22  |haviour....SWI "|
00003850  41 52 4d 45 64 69 74 5f  54 61 6c 6b 52 65 70 6c  |ARMEdit_TalkRepl|
00003860  79 22 20 28 26 34 42 43  34 38 29 0a 0a 20 20 20  |y" (&4BC48)..   |
00003870  20 52 65 70 6c 79 20 74  6f 20 61 20 6d 65 73 73  | Reply to a mess|
00003880  61 67 65 20 66 72 6f 6d  20 61 6e 6f 74 68 65 72  |age from another|
00003890  20 63 6c 69 65 6e 74 20  74 61 73 6b 2e 0a 20 20  | client task..  |
000038a0  20 20 0a 20 20 20 20 4f  6e 20 65 6e 74 72 79 3a  |  .    On entry:|
000038b0  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 52 30  |.    .        R0|
000038c0  20 3d 20 43 6c 69 65 6e  74 20 68 61 6e 64 6c 65  | = Client handle|
000038d0  20 66 6f 72 20 74 68 69  73 20 74 61 73 6b 2e 0a  | for this task..|
000038e0  20 20 20 20 20 20 20 20  52 31 20 3d 20 54 68 65  |        R1 = The|
000038f0  20 63 6c 69 65 6e 74 20  68 61 6e 64 6c 65 20 66  | client handle f|
00003900  6f 72 20 74 68 65 20 72  65 63 69 70 69 65 6e 74  |or the recipient|
00003910  2e 0a 20 20 20 20 20 20  20 20 52 32 20 3d 20 50  |..        R2 = P|
00003920  6f 69 6e 74 65 72 20 74  6f 20 62 6c 6f 63 6b 20  |ointer to block |
00003930  63 6f 6e 74 61 69 6e 69  6e 67 20 74 68 65 20 6d  |containing the m|
00003940  65 73 73 61 67 65 20 74  6f 20 73 65 6e 64 2e 0a  |essage to send..|
00003950  0a 20 20 20 20 4f 6e 20  65 78 69 74 3a 0a 20 20  |.    On exit:.  |
00003960  20 20 0a 20 20 20 20 20  20 20 20 41 6c 6c 20 72  |  .        All r|
00003970  65 67 69 73 74 65 72 73  20 70 72 65 73 65 72 76  |egisters preserv|
00003980  65 64 2e 0a 20 20 20 20  0a 20 20 20 20 49 6e 74  |ed..    .    Int|
00003990  65 72 72 75 70 74 73 3a  0a 20 20 20 20 0a 20 20  |errupts:.    .  |
000039a0  20 20 20 20 20 20 49 6e  74 65 72 72 75 70 74 20  |      Interrupt |
000039b0  73 74 61 74 75 73 20 69  73 20 75 6e 64 65 66 69  |status is undefi|
000039c0  6e 65 64 2e 0a 20 20 20  20 20 20 20 20 46 61 73  |ned..        Fas|
000039d0  74 20 69 6e 74 65 72 72  75 70 74 73 20 61 72 65  |t interrupts are|
000039e0  20 65 6e 61 62 6c 65 64  2e 0a 0a 20 20 20 20 50  | enabled...    P|
000039f0  72 6f 63 65 73 73 6f 72  20 6d 6f 64 65 3a 0a 20  |rocessor mode:. |
00003a00  20 20 20 0a 20 20 20 20  20 20 20 20 50 72 6f 63  |   .        Proc|
00003a10  65 73 73 6f 72 20 69 73  20 69 6e 20 53 56 43 20  |essor is in SVC |
00003a20  6d 6f 64 65 2e 0a 0a 20  20 20 20 52 65 2d 65 6e  |mode...    Re-en|
00003a30  74 72 61 6e 63 79 3a 0a  20 20 20 20 0a 20 20 20  |trancy:.    .   |
00003a40  20 20 20 20 20 53 57 49  20 69 73 20 6e 6f 74 20  |     SWI is not |
00003a50  72 65 2d 65 6e 74 72 61  6e 74 2e 0a 0a 20 20 20  |re-entrant...   |
00003a60  20 55 73 65 3a 0a 20 20  20 20 0a 20 20 20 20 20  | Use:.    .     |
00003a70  20 20 20 54 68 69 73 20  69 73 20 6c 69 6b 65 20  |   This is like |
00003a80  41 52 4d 45 64 69 74 5f  54 61 6c 6b 54 58 2c 20  |ARMEdit_TalkTX, |
00003a90  65 78 63 65 70 74 20 74  68 61 74 20 74 68 65 20  |except that the |
00003aa0  6d 65 73 73 61 67 65 20  69 73 20 73 74 6f 72 65  |message is store|
00003ab0  64 20 69 6e 20 74 68 65  0a 20 20 20 20 20 20 20  |d in the.       |
00003ac0  20 64 65 73 74 69 6e 61  74 69 6f 6e 20 74 61 73  | destination tas|
00003ad0  6b 27 73 20 6d 65 73 73  61 67 65 20 62 75 66 66  |k's message buff|
00003ae0  65 72 2e 20 54 68 65 20  64 65 73 74 69 6e 61 74  |er. The destinat|
00003af0  69 6f 6e 20 74 61 73 6b  20 6d 75 73 74 20 62 65  |ion task must be|
00003b00  0a 20 20 20 20 20 20 20  20 73 70 65 63 69 66 69  |.        specifi|
00003b10  65 64 20 62 79 20 69 74  27 73 20 63 6c 69 65 6e  |ed by it's clien|
00003b20  74 20 68 61 6e 64 6c 65  3b 20 69 74 20 69 73 20  |t handle; it is |
00003b30  6e 6f 74 20 70 6f 73 73  69 62 6c 65 20 74 6f 20  |not possible to |
00003b40  73 65 6e 64 20 74 68 65  0a 20 20 20 20 20 20 20  |send the.       |
00003b50  20 6d 65 73 73 61 67 65  20 74 6f 20 61 6e 20 49  | message to an I|
00003b60  44 2e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |D..        .    |
00003b70  20 20 20 20 54 68 65 20  6d 61 69 6e 20 75 73 65  |    The main use|
00003b80  20 6f 66 20 74 68 69 73  20 63 61 6c 6c 20 69 73  | of this call is|
00003b90  20 74 6f 20 73 75 70 70  6f 72 74 20 74 68 65 20  | to support the |
00003ba0  65 61 73 79 20 63 72 65  61 74 69 6f 6e 20 6f 66  |easy creation of|
00003bb0  20 52 49 53 43 20 4f 53  0a 20 20 20 20 20 20 20  | RISC OS.       |
00003bc0  20 74 61 73 6b 73 20 61  63 74 69 6e 67 20 61 73  | tasks acting as|
00003bd0  20 61 20 73 65 72 76 65  72 20 66 6f 72 20 6d 75  | a server for mu|
00003be0  6c 74 69 70 6c 65 20 50  43 20 74 61 73 6b 73 2e  |ltiple PC tasks.|
00003bf0  0a 0a 0a 54 48 49 4e 47  53 20 54 4f 20 44 4f 0a  |...THINGS TO DO.|
00003c00  0a 54 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 61  |.The following a|
00003c10  72 65 20 63 68 61 6e 67  65 73 20 74 68 61 74 20  |re changes that |
00003c20  6d 61 79 20 62 65 20 6d  61 64 65 20 74 6f 20 74  |may be made to t|
00003c30  68 65 20 41 52 4d 45 64  69 74 20 6d 6f 64 75 6c  |he ARMEdit modul|
00003c40  65 20 73 6f 6d 65 74 69  6d 65 20 69 6e 0a 74 68  |e sometime in.th|
00003c50  65 20 66 75 74 75 72 65  2e 0a 0a 20 20 20 20 4e  |e future...    N|
00003c60  6f 6e 65 20 61 74 20 74  68 65 20 6d 6f 6d 65 6e  |one at the momen|
00003c70  74 21 0a 0a 0a 56 45 52  53 49 4f 4e 20 48 49 53  |t!...VERSION HIS|
00003c80  54 4f 52 59 0a 0a 30 2e  30 30 20 28 31 32 2d 4e  |TORY..0.00 (12-N|
00003c90  6f 76 2d 39 35 29 20 20  20 20 4f 72 69 67 69 6e  |ov-95)    Origin|
00003ca0  61 6c 20 64 65 76 65 6c  6f 70 6d 65 6e 74 20 76  |al development v|
00003cb0  65 72 73 69 6f 6e 2e 0a  0a 30 2e 30 31 20 28 31  |ersion...0.01 (1|
00003cc0  34 2d 4e 6f 76 2d 39 35  29 20 20 20 20 46 69 78  |4-Nov-95)    Fix|
00003cd0  65 64 20 62 75 67 73 20  69 6e 20 66 69 6c 65 20  |ed bugs in file |
00003ce0  68 61 6e 64 6c 69 6e 67  2e 20 52 65 6d 6f 76 65  |handling. Remove|
00003cf0  64 20 73 74 72 61 79 20  64 65 62 75 67 67 69 6e  |d stray debuggin|
00003d00  67 20 63 6f 64 65 2e 0a  20 20 20 20 20 20 20 20  |g code..        |
00003d10  20 20 20 20 20 20 20 20  20 20 20 20 53 65 74 73  |            Sets|
00003d20  20 76 61 72 69 61 62 6c  65 20 66 6f 72 20 73 63  | variable for sc|
00003d30  72 61 70 20 64 69 72 65  63 74 6f 72 79 20 61 6e  |rap directory an|
00003d40  64 20 65 6e 73 75 72 65  20 69 74 20 65 78 69 73  |d ensure it exis|
00003d50  74 73 2e 0a 0a 30 2e 30  32 20 28 31 35 2d 4e 6f  |ts...0.02 (15-No|
00003d60  76 2d 39 35 29 20 20 20  20 49 6e 63 6c 75 64 65  |v-95)    Include|
00003d70  64 20 65 78 74 72 61 20  63 6f 6d 6d 61 6e 64 20  |d extra command |
00003d80  74 6f 20 64 69 73 70 6c  61 79 20 50 43 20 66 72  |to display PC fr|
00003d90  6f 6e 74 2d 65 6e 64 20  76 65 72 73 69 6f 6e 2e  |ont-end version.|
00003da0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00003db0  20 20 20 20 20 46 69 78  65 64 20 77 6f 72 6b 73  |     Fixed works|
00003dc0  70 61 63 65 20 68 61 6e  64 6c 69 6e 67 20 66 6f  |pace handling fo|
00003dd0  72 20 2a 63 6f 6d 6d 61  6e 64 73 2e 20 28 4f 6f  |r *commands. (Oo|
00003de0  70 73 21 29 0a 0a 30 2e  30 33 20 28 31 37 2d 4e  |ps!)..0.03 (17-N|
00003df0  6f 76 2d 39 35 29 20 20  20 20 55 73 65 73 20 63  |ov-95)    Uses c|
00003e00  6f 72 72 65 63 74 20 48  50 43 20 73 65 72 76 69  |orrect HPC servi|
00003e10  63 65 20 69 64 65 6e 74  69 66 69 65 72 2e 0a 20  |ce identifier.. |
00003e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003e30  20 20 20 49 6e 63 6c 75  64 65 73 20 64 65 76 65  |   Includes deve|
00003e40  6c 6f 70 6d 65 6e 74 20  76 65 72 73 69 6f 6e 73  |lopment versions|
00003e50  20 6f 66 20 64 65 76 69  63 65 20 64 72 69 76 65  | of device drive|
00003e60  72 20 73 75 70 70 6f 72  74 2e 0a 0a 30 2e 30 34  |r support...0.04|
00003e70  20 28 32 31 2d 4e 6f 76  2d 39 35 29 20 20 20 20  | (21-Nov-95)    |
00003e80  49 6d 70 6c 65 6d 65 6e  74 65 64 20 74 68 65 20  |Implemented the |
00003e90  2a 63 6f 6d 6d 61 6e 64  73 20 61 6e 64 20 72 65  |*commands and re|
00003ea0  61 6c 20 48 50 43 20 73  75 70 70 6f 72 74 2e 0a  |al HPC support..|
00003eb0  0a 30 2e 30 36 20 28 32  32 2d 44 65 63 2d 39 35  |.0.06 (22-Dec-95|
00003ec0  29 20 20 20 20 41 64 64  65 64 20 53 57 49 20 74  |)    Added SWI t|
00003ed0  6f 20 63 6f 6e 74 72 6f  6c 20 74 68 65 20 50 43  |o control the PC|
00003ee0  20 66 72 6f 6e 74 2d 65  6e 64 2e 0a 0a 30 2e 30  | front-end...0.0|
00003ef0  37 20 28 32 38 2d 44 65  63 2d 39 35 29 20 20 20  |7 (28-Dec-95)   |
00003f00  20 41 64 64 65 64 20 6d  65 73 73 61 67 65 20 70  | Added message p|
00003f10  61 73 73 69 6e 67 20 70  72 6f 74 6f 63 6f 6c 2e  |assing protocol.|
00003f20  0a 0a 31 2e 30 30 20 28  31 32 2d 4a 61 6e 2d 39  |..1.00 (12-Jan-9|
00003f30  36 29 20 20 20 20 46 69  72 73 74 20 6f 66 66 69  |6)    First offi|
00003f40  63 69 61 6c 20 72 65 6c  65 61 73 65 20 76 65 72  |cial release ver|
00003f50  73 69 6f 6e 2e 0a 0a 31  2e 30 31 20 28 31 31 2d  |sion...1.01 (11-|
00003f60  46 65 62 2d 39 36 29 20  20 20 20 44 6f 65 73 20  |Feb-96)    Does |
00003f70  6e 6f 74 20 63 72 61 73  68 20 77 68 65 6e 20 6e  |not crash when n|
00003f80  6f 20 44 4f 53 4d 61 70  20 6d 61 70 70 69 6e 67  |o DOSMap mapping|
00003f90  73 20 64 65 66 69 6e 65  64 2e 0a 20 20 20 20 20  |s defined..     |
00003fa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4d  |               M|
00003fb0  6f 64 75 6c 65 20 63 61  6e 20 62 65 20 6c 6f 61  |odule can be loa|
00003fc0  64 65 64 20 61 66 74 65  72 20 6e 65 77 20 76 65  |ded after new ve|
00003fd0  72 73 69 6f 6e 73 20 6f  66 20 74 68 65 20 50 43  |rsions of the PC|
00003fe0  20 66 72 6f 6e 74 2d 65  6e 64 2e 0a 0a 31 2e 30  | front-end...1.0|
00003ff0  32 20 28 30 36 2d 41 75  67 2d 39 36 29 20 20 20  |2 (06-Aug-96)   |
00004000  20 53 6f 6d 65 20 6d 65  6d 6f 72 79 20 6d 61 6e  | Some memory man|
00004010  61 67 65 6d 65 6e 74 20  6d 6f 76 65 64 20 74 6f  |agement moved to|
00004020  20 61 20 64 79 6e 61 6d  69 63 20 61 72 65 61 20  | a dynamic area |
00004030  69 66 20 61 76 61 69 6c  61 62 6c 65 2e 0a 20 20  |if available..  |
00004040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004050  20 20 44 65 76 69 63 65  20 64 72 69 76 65 72 20  |  Device driver |
00004060  73 75 70 70 6f 72 74 20  61 64 64 65 64 2e 0a 20  |support added.. |
00004070  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004080  20 20 20 52 6f 75 74 69  6e 65 73 20 74 6f 20 63  |   Routines to c|
00004090  6f 6e 76 65 72 74 20 64  61 74 65 20 61 6e 64 20  |onvert date and |
000040a0  74 69 6d 65 20 73 74 61  6d 70 73 20 69 6e 63 6c  |time stamps incl|
000040b0  75 64 65 64 2e 0a 20 20  20 20 20 20 20 20 20 20  |uded..          |
000040c0  20 20 20 20 20 20 20 20  20 20 41 64 64 65 64 20  |          Added |
000040d0  53 57 49 20 74 6f 20 63  61 6c 6c 20 69 6e 74 65  |SWI to call inte|
000040e0  72 6e 61 6c 20 48 50 43  20 73 65 72 76 69 63 65  |rnal HPC service|
000040f0  73 2e 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |s..             |
00004100  20 20 20 20 20 20 20 43  6f 72 72 65 63 74 65 64  |       Corrected|
00004110  20 63 6f 6d 6d 61 6e 64  20 68 65 6c 70 20 74 65  | command help te|
00004120  78 74 73 2e 0a 20 20 20  20 20 20 20 20 20 20 20  |xts..           |
00004130  20 20 20 20 20 20 20 20  20 41 64 64 65 64 20 63  |         Added c|
00004140  6f 6d 6d 61 6e 64 20 74  6f 20 73 65 74 20 6d 75  |ommand to set mu|
00004150  6c 74 69 74 61 73 6b 69  6e 67 20 73 70 65 65 64  |ltitasking speed|
00004160  20 6f 66 20 50 43 20 66  72 6f 6e 74 2d 65 6e 64  | of PC front-end|
00004170  2e 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00004180  20 20 20 20 20 20 50 72  6f 76 69 64 65 64 20 6d  |      Provided m|
00004190  65 63 68 61 6e 69 73 6d  20 66 6f 72 20 63 68 65  |echanism for che|
000041a0  63 6b 69 6e 67 20 64 65  6c 69 76 65 72 79 20 6f  |cking delivery o|
000041b0  66 20 6d 65 73 73 61 67  65 73 2e 0a 0a 31 2e 30  |f messages...1.0|
000041c0  33 20 28 32 31 2d 46 65  62 2d 39 37 29 20 20 20  |3 (21-Feb-97)   |
000041d0  20 41 64 64 65 64 20 53  57 49 20 74 6f 20 73 65  | Added SWI to se|
000041e0  74 20 6d 75 6c 74 69 74  61 73 6b 69 6e 67 20 73  |t multitasking s|
000041f0  70 65 65 64 20 6f 66 20  50 43 20 66 72 6f 6e 74  |peed of PC front|
00004200  2d 65 6e 64 2e 0a 20 20  20 20 20 20 20 20 20 20  |-end..          |
00004210  20 20 20 20 20 20 20 20  20 20 41 64 64 65 64 20  |          Added |
00004220  53 57 49 20 74 6f 20 72  65 70 6c 79 20 74 6f 20  |SWI to reply to |
00004230  61 20 6d 65 73 73 61 67  65 2e 0a 20 20 20 20 20  |a message..     |
00004240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 42  |               B|
00004250  72 6f 61 64 63 61 73 74  20 6d 65 73 73 61 67 65  |roadcast message|
00004260  73 20 66 72 6f 6d 20 74  68 65 20 41 52 4d 45 64  |s from the ARMEd|
00004270  69 74 20 6d 6f 64 75 6c  65 20 61 72 65 20 6e 6f  |it module are no|
00004280  77 20 73 65 6e 74 2e 0a  20 20 20 20 20 20 20 20  |w sent..        |
00004290  20 20 20 20 20 20 20 20  20 20 20 20 53 70 65 65  |            Spee|
000042a0  64 20 63 6f 6e 74 72 6f  6c 20 6e 6f 77 20 77 6f  |d control now wo|
000042b0  72 6b 73 20 63 6f 72 72  65 63 74 6c 79 20 77 69  |rks correctly wi|
000042c0  74 68 20 50 43 20 66 72  6f 6e 74 2d 65 6e 64 20  |th PC front-end |
000042d0  32 76 30 32 2e 0a 20 20  20 20 20 20 20 20 20 20  |2v02..          |
000042e0  20 20 20 20 20 20 20 20  20 20 45 78 74 65 6e 64  |          Extend|
000042f0  65 64 20 2a 41 52 4d 45  64 69 74 5f 44 65 76 69  |ed *ARMEdit_Devi|
00004300  63 65 73 52 65 6c 6f 67  20 74 6f 20 66 6f 72 63  |cesRelog to forc|
00004310  65 20 69 6d 6d 65 64 69  61 74 65 20 72 65 6c 6f  |e immediate relo|
00004320  67 2e 0a 0a 31 2e 30 34  20 28 30 37 2d 44 65 63  |g...1.04 (07-Dec|
00004330  2d 39 37 29 20 20 20 20  45 78 74 72 61 20 69 6e  |-97)    Extra in|
00004340  66 6f 72 6d 61 74 69 6f  6e 20 69 73 20 64 69 73  |formation is dis|
00004350  70 6c 61 79 65 64 20 66  6f 72 20 2a 41 52 4d 45  |played for *ARME|
00004360  64 69 74 5f 44 65 76 69  63 65 73 2e 0a 20 20 20  |dit_Devices..   |
00004370  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004380  20 2a 41 52 4d 45 64 69  74 5f 46 69 6c 65 73 20  | *ARMEdit_Files |
00004390  61 6c 73 6f 20 6c 69 73  74 73 20 66 69 6c 65 73  |also lists files|
000043a0  20 75 73 65 64 20 62 79  20 74 68 65 20 64 65 76  | used by the dev|
000043b0  69 63 65 20 64 72 69 76  65 72 2e                 |ice driver.|
000043bb