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

Docs/HPC

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/HPC
Read OK:
File size: 56D0 bytes
Load address: 0000
Exec address: 0000
File contents
File        : HPC
Date        : 07-Dec-97
Author      : � A.Thoukydides, 1995, 1996, 1997
Description : High-level Procedure Call (HPC) services implemented by the
              ARMEdit module.


INTRODUCTION

The ARMEdit module provides a number of HPC services. To allow development to
start before HPC is included in the PC front-end software, and to support
earlier releases of the front-end software, a simplified interface via I/O
ports is also supported.

All of the services in this document use the HPC service identifier &105
which has been allocated by Aleph One.


I/O PORT ACCESS

The following I/O port assignments are currently used:

    &2E0    PORT_STATUS Word read
    &2E0    PORT_CMD    Word write
    &2E2    PORT_DATA   Byte or word read/write

The following sequence of operations should occur to perform an HPC call:

    Read PORT_STATUS. The possible return codes are:
    
        &454D   System is available and ready.

        &4D45   System is currently busy processing another HPC call, and
                cannot currently be used for another call.

        Any other code indicates that the service is not available.

    Write &0000 to PORT_CMD to start transfer of data.

    Write the HPC packet data to PORT_DATA as either bytes or words.

    Write &0001 to PORT_CMD to perform the HPC call.
    
    Write &0002 to PORT_CMD to start reading the reply.
    
    Read the HPC reply packet from PORT_DATA as either bytes or words.
    
    Write &0003 to PORT_CMD to reset the HPC system.

The port based HPC packets have the same 16384 byte limit that proper HPC
packets have.

Note that only HPC services provided by the ARMEdit module can be called
using this I/O port system; other services can only be called via the normal
HPC system. However, the HPC identifier is still checked.


HPC CALLS

For details of making HPC calls directly (which is potentially much more
efficient) contact Aleph One, as the information is covered by a Non
Disclosure Agreement.


RETURN CODES

All of the HPC calls place a 4 byte return code at the start of the return
block. The generic values are

    &0000   The operation was successful.

    &0001   The operation failed. The exact meaning of this depends upon the
            reason code, but in general it indicates that the rest of the
            return block is invalid.
    
    &FFFF   Service or reason code is unknown.

See the individual reason codes for details of any other codes returned, and
any contents of the remainder of the return block.


HPC_ARMEDIT_SWI

    Calls a specified RISC OS SWI by number. The SWI is always called with
    the X (error returning) bit set.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0000.
        4       4       SWI number.
        8       40      Values for registers R0 to R9 on entry to the SWI.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       256     RISC OS style error block returned by SWI if the
                        return code is &0001.
        260     40      Values of registers R0 to R9 on exit from the SWI if
                        the return code is &0000.


HPC_ARMEDIT_READ

    Read ARM memory.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0001.
        4       4       Start address of memory to read.
        8       4       Number of bytes to read. (n <= 16380)

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       n       The contents of the specified memory.


HPC_ARMEDIT_WRITE

    Write ARM memory.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0002.
        4       4       Start address of memory to read.
        8       4       Number of bytes to write. (n <= 16372)
        12      n       The data to write.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_ALLOC

    Claim a block of ARM memory. This is automatically released when the PC
    is shutdown or reset, but it is better to free it when no longer required
    using HPC_ARMEDIT_FREE.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0003.
        4       4       Amount of memory to claim.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       Address of the block of memory allocated.


HPC_ARMEDIT_FREE

    Release a block of ARM memory previously claimed using HPC_ARMEDIT_ALLOC.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0004.
        4       4       The address of the block of memory.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_EXTTYPE

    Convert a DOS extension into a RISC OS filetype.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0005.
        4       4       The extension in upper case padded with 0 bytes to
                        four characters.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       The RISC OS filetype.


HPC_ARMEDIT_TYPEEXT

    Convert a RISC OS filetype into a DOS extension.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0006.
        4       4       The RISC OS filetype.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       The extension in upper case padded with 0 bytes to
                        four characters.


HPC_ARMEDIT_FOPEN

    Open a RISC OS file. This is automatically closed when the PC is shutdown
    or reset, but it is better to close it when no longer required using
    HPC_ARMEDIT_CLOSE. A file opened using this call should not be closed
    using RISC OS routines directly.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0007.
        4       4       -1 to open existing file, or initial size of file to
                        create a new one.
        8       4       Non-zero to automatically delete file when closed.
        12      n       Name of file to open.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       RISC OS file handle.


HPC_ARMEDIT_FCLOSE

    Close a RISC OS file previously opened using HPC_ARMEDIT_OPEN. The file
    is deleted if specified when the file was opened.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0008.
        4       4       RISC OS file handle.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_FREAD

    Read from a RISC OS file.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0009.
        4       4       RISC OS file handle.
        8       4       Sequential file pointer for start of block, or -1 for
                        current position.
        12      4       Number of bytes to read.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       Number of bytes read.
        8       n       The data read from the file.


HPC_ARMEDIT_FWRITE

    Write to a RISC OS file.
        
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &000A.
        4       4       RISC OS file handle.
        8       4       Sequential file pointer for start of block, or -1 for
                        current position.
        12      4       Number of bytes to write.
        16      n       The data to write to the file.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_TALK_START

    Register a new client task. Note that a client ID of 0 is assumed.
    It does not make sense being able to request notification of reset or
    shutdown.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &000B.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       A unique client handle.


HPC_ARMEDIT_TALK_END

    Deregister a client task.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &000C.
        4       4       The previously assigned handle for this client task.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        

HPC_ARMEDIT_TALK_TX

    Send a message to another client task.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &000D.
        4       4       Client handle for this task.
        8       4       Either the ID or client handle for the recipient.
        12      1024    The message to send.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.

         HPC_ARMEDIT_TALK_RX

    Check for any waiting messages for this client task. The return code is
    failure if there is no message waiting. There is no acknowledge call
    since all messages to PC software should be addressed to a particular
    handle.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &000E.
        4       4       Client handle for this task.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       Source ID.
        8       4       Source client handle.
        12      1024    The waiting message.


HPC_ARMEDIT_DEVICE_INITIALISE

    Called during initialisation of device driver to obtain a start-up
    banner message and choose the number of devices.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &000F.
        4       1       Drive number for first unit of this driver.
        5       256     Text after equals sign on CONFIG.SYS line that loaded
                        this driver.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       Number of devices supported.
        8       256     Text of message terminated by a "$" character.


HPC_ARMEDIT_DEVICE_BPB

    Construct a BIOS Parameter Block (BPB) for a device driver. This also
    informs ARMEdit that the disc contents could be changed.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0010.
        4       1       Unit code (drive number), or -1 for initialisation.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       13      The BIOS parameter block.


HPC_ARMEDIT_DEVICE_CHANGED

    Perform a media check for a device driver.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0011.
        4       1       Unit code (drive number).
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       The media change code:
                            -1  Disc has been changed.
                            0   Don't know if disc has been changed.
                            1   Disc has not been changed.


HPC_ARMEDIT_DEVICE_READ
    
    Read an emulated disc sector for a device driver.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0012.
        4       1       Unit code (drive number).
        5       2       Sector number.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       n       The data read from the sector.


HPC_ARMEDIT_DEVICE_WRITE
    
    Write an emulated disc sector for a device driver.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0013.
        4       1       Unit code (drive number).
        5       2       Sector number.
        7       1       Dummy data to pad to word boundary.
        8       n       The data to write to the sector.
    
    Data returned:
    
        Offset  Size    Description

        0       4       Return code.


HPC_ARMEDIT_DATE_TO_DOS

    Convert a time and date from the standard RISC OS 5 bytes format to the
    4 byte DOS equivalent.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0014.
        4       5       Centiseconds since 00:00:00 on January 1 1900.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       2 byte time (hhhhhmmmmmmsssss).
        8       4       2 byte date (yyyyyyymmmmddddd).
    

HPC_ARMEDIT_DATE_TO_RISCOS

    Convert a time and date from the standard DOS 4 byte format to the 5 byte
    RISC OS equivalent.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0015.
        4       2       2 byte time (hhhhhmmmmmmsssss).
        6       2       2 byte date (yyyyyyymmmmddddd).
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       5       Centiseconds since 00:00:00 on January 1 1900.


HPC_ARMEDIT_OSCLI_START

    Start executing a specified *command. The input and output from the
    command are redirected.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0016.
        4       256     The command to execute.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       Handle for this command.


HPC_ARMEDIT_OSCLI_POLL

    Continue execution of a *command. This should only include input data if
    requested by the previous HPC_ARMEDIT_OSCLI_POLL reply, otherwise
    characters may get lost.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0017.
        4       4       Command handle.
        8       4       Number of bytes to input.
        12      256     Up to 256 bytes of input.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       Status:
                            0   Active.
                            1   Command has finished.
                            2   Waiting for input.
        8       4       Number of bytes to output.
        12      256     Up to 256 bytes of output.


HPC_ARMEDIT_OSCLI_END

    Terminate execution of a *command.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0018.
        4       4       Command handle.

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       256     RISC OS style error block returned by the command if
                        the return code is &0001.
        

HPC_ARMEDIT_TALK_REPLY

    Reply to a message from another client task. This is like
    HPC_ARMEDIT_TALK_TX, except that the message is stored in the destination
    task's buffer.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0019.
        4       4       Client handle for this task.
        8       4       The client handle for the recipient.
        12      1024    The message to send.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_FASTER

    Prevent multitasking to speed up operations. This should be called to
    reenable normal operation after the operation is completed. A sensible
    way to use this is with a value of 100 (for 1 second), called on a
    regular basis during the operation.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &001A.
        4       4       Centiseconds to disable multitasking for, or 0 to
                        restore normal operation.
        
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_TEMPORARY

    Produce a unique filename for a temporary RISC OS file.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &001B.
        
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       256     Suggested canonicalised filename.


HPC_ARMEDIT_DEVICE_READ_LONG
    
    Read an emulated disc sector for a device driver with a 32bit sector
    number.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &001C.
        4       1       Unit code (drive number).
        5       3       Dummy data to pad to word boundary.
        8       4       Sector number.
    
    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       n       The data read from the sector.


HPC_ARMEDIT_DEVICE_WRITE_LONG
    
    Write an emulated disc sector for a device driver with a 32bit sector
    number.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &001D.
        4       1       Unit code (drive number).
        5       3       Dummy data to pad to word boundary.
        8       4       Sector number.
        12      n       The data to write to the sector.
    
    Data returned:
    
        Offset  Size    Description

        0       4       Return code.


HPC_ARMEDIT_DEVICE_OPEN

    A file is being opened on the device.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &001E.
        4       1       Unit code (drive number).

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_DEVICE_CLOSE

    A file is being closed on the device.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &001F.
        4       1       Unit code (drive number).

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.


HPC_ARMEDIT_DEVICE_REMOVABLE

    Check if a device is removable.
    
    Data sent:
    
        Offset  Size    Description
        
        0       2       HPC service ID.
        2       2       Reason code = &0020.
        4       1       Unit code (drive number).

    Data returned:
    
        Offset  Size    Description
        
        0       4       Return code.
        4       4       The removable device status:
                            &0000   Removable
                            &0200   Nonremovable


THINGS TO DO

The following are changes that may be made to the HPC services sometime in
the future.

    None at the moment!


VERSION HISTORY

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

0.01 (14-Nov-95)    No changes to HPC.

0.02 (15-Nov-95)    No changes to HPC.

0.03 (17-Nov-95)    Uses correct HPC service identifier.

0.04 (21-Nov-95)    Slightly more experimental device driver support.
                    Real HPC system implemented.

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

1.00 (15-Dec-95)    First official release version.

1.01 (11-Mar-96)    Version number updated to match the module.

1.02 (27-May-96)    Implemented device driver calls.
                    Added commands to convert between date and time formats.
                    Included SWI for use by Acorn's software PC emulator.

1.03 (21-Feb-97)    Added ability to reply to messages.
                    Included ability to speed up operations when multitasking.
                    Temporary RISC OS filenames can now be generated.

1.04 (07-Dec-97)    Added device driver operations for 32bit sector numbers.
                    Included device driver support for removable media.
00000000  46 69 6c 65 20 20 20 20  20 20 20 20 3a 20 48 50  |File        : HP|
00000010  43 0a 44 61 74 65 20 20  20 20 20 20 20 20 3a 20  |C.Date        : |
00000020  30 37 2d 44 65 63 2d 39  37 0a 41 75 74 68 6f 72  |07-Dec-97.Author|
00000030  20 20 20 20 20 20 3a 20  a9 20 41 2e 54 68 6f 75  |      : . A.Thou|
00000040  6b 79 64 69 64 65 73 2c  20 31 39 39 35 2c 20 31  |kydides, 1995, 1|
00000050  39 39 36 2c 20 31 39 39  37 0a 44 65 73 63 72 69  |996, 1997.Descri|
00000060  70 74 69 6f 6e 20 3a 20  48 69 67 68 2d 6c 65 76  |ption : High-lev|
00000070  65 6c 20 50 72 6f 63 65  64 75 72 65 20 43 61 6c  |el Procedure Cal|
00000080  6c 20 28 48 50 43 29 20  73 65 72 76 69 63 65 73  |l (HPC) services|
00000090  20 69 6d 70 6c 65 6d 65  6e 74 65 64 20 62 79 20  | implemented by |
000000a0  74 68 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |the.            |
000000b0  20 20 41 52 4d 45 64 69  74 20 6d 6f 64 75 6c 65  |  ARMEdit module|
000000c0  2e 0a 0a 0a 49 4e 54 52  4f 44 55 43 54 49 4f 4e  |....INTRODUCTION|
000000d0  0a 0a 54 68 65 20 41 52  4d 45 64 69 74 20 6d 6f  |..The ARMEdit mo|
000000e0  64 75 6c 65 20 70 72 6f  76 69 64 65 73 20 61 20  |dule provides a |
000000f0  6e 75 6d 62 65 72 20 6f  66 20 48 50 43 20 73 65  |number of HPC se|
00000100  72 76 69 63 65 73 2e 20  54 6f 20 61 6c 6c 6f 77  |rvices. To allow|
00000110  20 64 65 76 65 6c 6f 70  6d 65 6e 74 20 74 6f 0a  | development to.|
00000120  73 74 61 72 74 20 62 65  66 6f 72 65 20 48 50 43  |start before HPC|
00000130  20 69 73 20 69 6e 63 6c  75 64 65 64 20 69 6e 20  | is included in |
00000140  74 68 65 20 50 43 20 66  72 6f 6e 74 2d 65 6e 64  |the PC front-end|
00000150  20 73 6f 66 74 77 61 72  65 2c 20 61 6e 64 20 74  | software, and t|
00000160  6f 20 73 75 70 70 6f 72  74 0a 65 61 72 6c 69 65  |o support.earlie|
00000170  72 20 72 65 6c 65 61 73  65 73 20 6f 66 20 74 68  |r releases of th|
00000180  65 20 66 72 6f 6e 74 2d  65 6e 64 20 73 6f 66 74  |e front-end soft|
00000190  77 61 72 65 2c 20 61 20  73 69 6d 70 6c 69 66 69  |ware, a simplifi|
000001a0  65 64 20 69 6e 74 65 72  66 61 63 65 20 76 69 61  |ed interface via|
000001b0  20 49 2f 4f 0a 70 6f 72  74 73 20 69 73 20 61 6c  | I/O.ports is al|
000001c0  73 6f 20 73 75 70 70 6f  72 74 65 64 2e 0a 0a 41  |so supported...A|
000001d0  6c 6c 20 6f 66 20 74 68  65 20 73 65 72 76 69 63  |ll of the servic|
000001e0  65 73 20 69 6e 20 74 68  69 73 20 64 6f 63 75 6d  |es in this docum|
000001f0  65 6e 74 20 75 73 65 20  74 68 65 20 48 50 43 20  |ent use the HPC |
00000200  73 65 72 76 69 63 65 20  69 64 65 6e 74 69 66 69  |service identifi|
00000210  65 72 20 26 31 30 35 0a  77 68 69 63 68 20 68 61  |er &105.which ha|
00000220  73 20 62 65 65 6e 20 61  6c 6c 6f 63 61 74 65 64  |s been allocated|
00000230  20 62 79 20 41 6c 65 70  68 20 4f 6e 65 2e 0a 0a  | by Aleph One...|
00000240  0a 49 2f 4f 20 50 4f 52  54 20 41 43 43 45 53 53  |.I/O PORT ACCESS|
00000250  0a 0a 54 68 65 20 66 6f  6c 6c 6f 77 69 6e 67 20  |..The following |
00000260  49 2f 4f 20 70 6f 72 74  20 61 73 73 69 67 6e 6d  |I/O port assignm|
00000270  65 6e 74 73 20 61 72 65  20 63 75 72 72 65 6e 74  |ents are current|
00000280  6c 79 20 75 73 65 64 3a  0a 0a 20 20 20 20 26 32  |ly used:..    &2|
00000290  45 30 20 20 20 20 50 4f  52 54 5f 53 54 41 54 55  |E0    PORT_STATU|
000002a0  53 20 57 6f 72 64 20 72  65 61 64 0a 20 20 20 20  |S Word read.    |
000002b0  26 32 45 30 20 20 20 20  50 4f 52 54 5f 43 4d 44  |&2E0    PORT_CMD|
000002c0  20 20 20 20 57 6f 72 64  20 77 72 69 74 65 0a 20  |    Word write. |
000002d0  20 20 20 26 32 45 32 20  20 20 20 50 4f 52 54 5f  |   &2E2    PORT_|
000002e0  44 41 54 41 20 20 20 42  79 74 65 20 6f 72 20 77  |DATA   Byte or w|
000002f0  6f 72 64 20 72 65 61 64  2f 77 72 69 74 65 0a 0a  |ord read/write..|
00000300  54 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 73 65  |The following se|
00000310  71 75 65 6e 63 65 20 6f  66 20 6f 70 65 72 61 74  |quence of operat|
00000320  69 6f 6e 73 20 73 68 6f  75 6c 64 20 6f 63 63 75  |ions should occu|
00000330  72 20 74 6f 20 70 65 72  66 6f 72 6d 20 61 6e 20  |r to perform an |
00000340  48 50 43 20 63 61 6c 6c  3a 0a 0a 20 20 20 20 52  |HPC call:..    R|
00000350  65 61 64 20 50 4f 52 54  5f 53 54 41 54 55 53 2e  |ead PORT_STATUS.|
00000360  20 54 68 65 20 70 6f 73  73 69 62 6c 65 20 72 65  | The possible re|
00000370  74 75 72 6e 20 63 6f 64  65 73 20 61 72 65 3a 0a  |turn codes are:.|
00000380  20 20 20 20 0a 20 20 20  20 20 20 20 20 26 34 35  |    .        &45|
00000390  34 44 20 20 20 53 79 73  74 65 6d 20 69 73 20 61  |4D   System is a|
000003a0  76 61 69 6c 61 62 6c 65  20 61 6e 64 20 72 65 61  |vailable and rea|
000003b0  64 79 2e 0a 0a 20 20 20  20 20 20 20 20 26 34 44  |dy...        &4D|
000003c0  34 35 20 20 20 53 79 73  74 65 6d 20 69 73 20 63  |45   System is c|
000003d0  75 72 72 65 6e 74 6c 79  20 62 75 73 79 20 70 72  |urrently busy pr|
000003e0  6f 63 65 73 73 69 6e 67  20 61 6e 6f 74 68 65 72  |ocessing another|
000003f0  20 48 50 43 20 63 61 6c  6c 2c 20 61 6e 64 0a 20  | HPC call, and. |
00000400  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 63  |               c|
00000410  61 6e 6e 6f 74 20 63 75  72 72 65 6e 74 6c 79 20  |annot currently |
00000420  62 65 20 75 73 65 64 20  66 6f 72 20 61 6e 6f 74  |be used for anot|
00000430  68 65 72 20 63 61 6c 6c  2e 0a 0a 20 20 20 20 20  |her call...     |
00000440  20 20 20 41 6e 79 20 6f  74 68 65 72 20 63 6f 64  |   Any other cod|
00000450  65 20 69 6e 64 69 63 61  74 65 73 20 74 68 61 74  |e indicates that|
00000460  20 74 68 65 20 73 65 72  76 69 63 65 20 69 73 20  | the service is |
00000470  6e 6f 74 20 61 76 61 69  6c 61 62 6c 65 2e 0a 0a  |not available...|
00000480  20 20 20 20 57 72 69 74  65 20 26 30 30 30 30 20  |    Write &0000 |
00000490  74 6f 20 50 4f 52 54 5f  43 4d 44 20 74 6f 20 73  |to PORT_CMD to s|
000004a0  74 61 72 74 20 74 72 61  6e 73 66 65 72 20 6f 66  |tart transfer of|
000004b0  20 64 61 74 61 2e 0a 0a  20 20 20 20 57 72 69 74  | data...    Writ|
000004c0  65 20 74 68 65 20 48 50  43 20 70 61 63 6b 65 74  |e the HPC packet|
000004d0  20 64 61 74 61 20 74 6f  20 50 4f 52 54 5f 44 41  | data to PORT_DA|
000004e0  54 41 20 61 73 20 65 69  74 68 65 72 20 62 79 74  |TA as either byt|
000004f0  65 73 20 6f 72 20 77 6f  72 64 73 2e 0a 0a 20 20  |es or words...  |
00000500  20 20 57 72 69 74 65 20  26 30 30 30 31 20 74 6f  |  Write &0001 to|
00000510  20 50 4f 52 54 5f 43 4d  44 20 74 6f 20 70 65 72  | PORT_CMD to per|
00000520  66 6f 72 6d 20 74 68 65  20 48 50 43 20 63 61 6c  |form the HPC cal|
00000530  6c 2e 0a 20 20 20 20 0a  20 20 20 20 57 72 69 74  |l..    .    Writ|
00000540  65 20 26 30 30 30 32 20  74 6f 20 50 4f 52 54 5f  |e &0002 to PORT_|
00000550  43 4d 44 20 74 6f 20 73  74 61 72 74 20 72 65 61  |CMD to start rea|
00000560  64 69 6e 67 20 74 68 65  20 72 65 70 6c 79 2e 0a  |ding the reply..|
00000570  20 20 20 20 0a 20 20 20  20 52 65 61 64 20 74 68  |    .    Read th|
00000580  65 20 48 50 43 20 72 65  70 6c 79 20 70 61 63 6b  |e HPC reply pack|
00000590  65 74 20 66 72 6f 6d 20  50 4f 52 54 5f 44 41 54  |et from PORT_DAT|
000005a0  41 20 61 73 20 65 69 74  68 65 72 20 62 79 74 65  |A as either byte|
000005b0  73 20 6f 72 20 77 6f 72  64 73 2e 0a 20 20 20 20  |s or words..    |
000005c0  0a 20 20 20 20 57 72 69  74 65 20 26 30 30 30 33  |.    Write &0003|
000005d0  20 74 6f 20 50 4f 52 54  5f 43 4d 44 20 74 6f 20  | to PORT_CMD to |
000005e0  72 65 73 65 74 20 74 68  65 20 48 50 43 20 73 79  |reset the HPC sy|
000005f0  73 74 65 6d 2e 0a 0a 54  68 65 20 70 6f 72 74 20  |stem...The port |
00000600  62 61 73 65 64 20 48 50  43 20 70 61 63 6b 65 74  |based HPC packet|
00000610  73 20 68 61 76 65 20 74  68 65 20 73 61 6d 65 20  |s have the same |
00000620  31 36 33 38 34 20 62 79  74 65 20 6c 69 6d 69 74  |16384 byte limit|
00000630  20 74 68 61 74 20 70 72  6f 70 65 72 20 48 50 43  | that proper HPC|
00000640  0a 70 61 63 6b 65 74 73  20 68 61 76 65 2e 0a 0a  |.packets have...|
00000650  4e 6f 74 65 20 74 68 61  74 20 6f 6e 6c 79 20 48  |Note that only H|
00000660  50 43 20 73 65 72 76 69  63 65 73 20 70 72 6f 76  |PC services prov|
00000670  69 64 65 64 20 62 79 20  74 68 65 20 41 52 4d 45  |ided by the ARME|
00000680  64 69 74 20 6d 6f 64 75  6c 65 20 63 61 6e 20 62  |dit module can b|
00000690  65 20 63 61 6c 6c 65 64  0a 75 73 69 6e 67 20 74  |e called.using t|
000006a0  68 69 73 20 49 2f 4f 20  70 6f 72 74 20 73 79 73  |his I/O port sys|
000006b0  74 65 6d 3b 20 6f 74 68  65 72 20 73 65 72 76 69  |tem; other servi|
000006c0  63 65 73 20 63 61 6e 20  6f 6e 6c 79 20 62 65 20  |ces can only be |
000006d0  63 61 6c 6c 65 64 20 76  69 61 20 74 68 65 20 6e  |called via the n|
000006e0  6f 72 6d 61 6c 0a 48 50  43 20 73 79 73 74 65 6d  |ormal.HPC system|
000006f0  2e 20 48 6f 77 65 76 65  72 2c 20 74 68 65 20 48  |. However, the H|
00000700  50 43 20 69 64 65 6e 74  69 66 69 65 72 20 69 73  |PC identifier is|
00000710  20 73 74 69 6c 6c 20 63  68 65 63 6b 65 64 2e 0a  | still checked..|
00000720  0a 0a 48 50 43 20 43 41  4c 4c 53 0a 0a 46 6f 72  |..HPC CALLS..For|
00000730  20 64 65 74 61 69 6c 73  20 6f 66 20 6d 61 6b 69  | details of maki|
00000740  6e 67 20 48 50 43 20 63  61 6c 6c 73 20 64 69 72  |ng HPC calls dir|
00000750  65 63 74 6c 79 20 28 77  68 69 63 68 20 69 73 20  |ectly (which is |
00000760  70 6f 74 65 6e 74 69 61  6c 6c 79 20 6d 75 63 68  |potentially much|
00000770  20 6d 6f 72 65 0a 65 66  66 69 63 69 65 6e 74 29  | more.efficient)|
00000780  20 63 6f 6e 74 61 63 74  20 41 6c 65 70 68 20 4f  | contact Aleph O|
00000790  6e 65 2c 20 61 73 20 74  68 65 20 69 6e 66 6f 72  |ne, as the infor|
000007a0  6d 61 74 69 6f 6e 20 69  73 20 63 6f 76 65 72 65  |mation is covere|
000007b0  64 20 62 79 20 61 20 4e  6f 6e 0a 44 69 73 63 6c  |d by a Non.Discl|
000007c0  6f 73 75 72 65 20 41 67  72 65 65 6d 65 6e 74 2e  |osure Agreement.|
000007d0  0a 0a 0a 52 45 54 55 52  4e 20 43 4f 44 45 53 0a  |...RETURN CODES.|
000007e0  0a 41 6c 6c 20 6f 66 20  74 68 65 20 48 50 43 20  |.All of the HPC |
000007f0  63 61 6c 6c 73 20 70 6c  61 63 65 20 61 20 34 20  |calls place a 4 |
00000800  62 79 74 65 20 72 65 74  75 72 6e 20 63 6f 64 65  |byte return code|
00000810  20 61 74 20 74 68 65 20  73 74 61 72 74 20 6f 66  | at the start of|
00000820  20 74 68 65 20 72 65 74  75 72 6e 0a 62 6c 6f 63  | the return.bloc|
00000830  6b 2e 20 54 68 65 20 67  65 6e 65 72 69 63 20 76  |k. The generic v|
00000840  61 6c 75 65 73 20 61 72  65 0a 0a 20 20 20 20 26  |alues are..    &|
00000850  30 30 30 30 20 20 20 54  68 65 20 6f 70 65 72 61  |0000   The opera|
00000860  74 69 6f 6e 20 77 61 73  20 73 75 63 63 65 73 73  |tion was success|
00000870  66 75 6c 2e 0a 0a 20 20  20 20 26 30 30 30 31 20  |ful...    &0001 |
00000880  20 20 54 68 65 20 6f 70  65 72 61 74 69 6f 6e 20  |  The operation |
00000890  66 61 69 6c 65 64 2e 20  54 68 65 20 65 78 61 63  |failed. The exac|
000008a0  74 20 6d 65 61 6e 69 6e  67 20 6f 66 20 74 68 69  |t meaning of thi|
000008b0  73 20 64 65 70 65 6e 64  73 20 75 70 6f 6e 20 74  |s depends upon t|
000008c0  68 65 0a 20 20 20 20 20  20 20 20 20 20 20 20 72  |he.            r|
000008d0  65 61 73 6f 6e 20 63 6f  64 65 2c 20 62 75 74 20  |eason code, but |
000008e0  69 6e 20 67 65 6e 65 72  61 6c 20 69 74 20 69 6e  |in general it in|
000008f0  64 69 63 61 74 65 73 20  74 68 61 74 20 74 68 65  |dicates that the|
00000900  20 72 65 73 74 20 6f 66  20 74 68 65 0a 20 20 20  | rest of the.   |
00000910  20 20 20 20 20 20 20 20  20 72 65 74 75 72 6e 20  |         return |
00000920  62 6c 6f 63 6b 20 69 73  20 69 6e 76 61 6c 69 64  |block is invalid|
00000930  2e 0a 20 20 20 20 0a 20  20 20 20 26 46 46 46 46  |..    .    &FFFF|
00000940  20 20 20 53 65 72 76 69  63 65 20 6f 72 20 72 65  |   Service or re|
00000950  61 73 6f 6e 20 63 6f 64  65 20 69 73 20 75 6e 6b  |ason code is unk|
00000960  6e 6f 77 6e 2e 0a 0a 53  65 65 20 74 68 65 20 69  |nown...See the i|
00000970  6e 64 69 76 69 64 75 61  6c 20 72 65 61 73 6f 6e  |ndividual reason|
00000980  20 63 6f 64 65 73 20 66  6f 72 20 64 65 74 61 69  | codes for detai|
00000990  6c 73 20 6f 66 20 61 6e  79 20 6f 74 68 65 72 20  |ls of any other |
000009a0  63 6f 64 65 73 20 72 65  74 75 72 6e 65 64 2c 20  |codes returned, |
000009b0  61 6e 64 0a 61 6e 79 20  63 6f 6e 74 65 6e 74 73  |and.any contents|
000009c0  20 6f 66 20 74 68 65 20  72 65 6d 61 69 6e 64 65  | of the remainde|
000009d0  72 20 6f 66 20 74 68 65  20 72 65 74 75 72 6e 20  |r of the return |
000009e0  62 6c 6f 63 6b 2e 0a 0a  0a 48 50 43 5f 41 52 4d  |block....HPC_ARM|
000009f0  45 44 49 54 5f 53 57 49  0a 0a 20 20 20 20 43 61  |EDIT_SWI..    Ca|
00000a00  6c 6c 73 20 61 20 73 70  65 63 69 66 69 65 64 20  |lls a specified |
00000a10  52 49 53 43 20 4f 53 20  53 57 49 20 62 79 20 6e  |RISC OS SWI by n|
00000a20  75 6d 62 65 72 2e 20 54  68 65 20 53 57 49 20 69  |umber. The SWI i|
00000a30  73 20 61 6c 77 61 79 73  20 63 61 6c 6c 65 64 20  |s always called |
00000a40  77 69 74 68 0a 20 20 20  20 74 68 65 20 58 20 28  |with.    the X (|
00000a50  65 72 72 6f 72 20 72 65  74 75 72 6e 69 6e 67 29  |error returning)|
00000a60  20 62 69 74 20 73 65 74  2e 0a 20 20 20 20 0a 20  | bit set..    . |
00000a70  20 20 20 44 61 74 61 20  73 65 6e 74 3a 0a 20 20  |   Data sent:.  |
00000a80  20 20 0a 20 20 20 20 20  20 20 20 4f 66 66 73 65  |  .        Offse|
00000a90  74 20 20 53 69 7a 65 20  20 20 20 44 65 73 63 72  |t  Size    Descr|
00000aa0  69 70 74 69 6f 6e 0a 20  20 20 20 20 20 20 20 0a  |iption.        .|
00000ab0  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
00000ac0  32 20 20 20 20 20 20 20  48 50 43 20 73 65 72 76  |2       HPC serv|
00000ad0  69 63 65 20 49 44 2e 0a  20 20 20 20 20 20 20 20  |ice ID..        |
00000ae0  32 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |2       2       |
00000af0  52 65 61 73 6f 6e 20 63  6f 64 65 20 3d 20 26 30  |Reason code = &0|
00000b00  30 30 30 2e 0a 20 20 20  20 20 20 20 20 34 20 20  |000..        4  |
00000b10  20 20 20 20 20 34 20 20  20 20 20 20 20 53 57 49  |     4       SWI|
00000b20  20 6e 75 6d 62 65 72 2e  0a 20 20 20 20 20 20 20  | number..       |
00000b30  20 38 20 20 20 20 20 20  20 34 30 20 20 20 20 20  | 8       40     |
00000b40  20 56 61 6c 75 65 73 20  66 6f 72 20 72 65 67 69  | Values for regi|
00000b50  73 74 65 72 73 20 52 30  20 74 6f 20 52 39 20 6f  |sters R0 to R9 o|
00000b60  6e 20 65 6e 74 72 79 20  74 6f 20 74 68 65 20 53  |n entry to the S|
00000b70  57 49 2e 0a 20 20 20 20  0a 20 20 20 20 44 61 74  |WI..    .    Dat|
00000b80  61 20 72 65 74 75 72 6e  65 64 3a 0a 20 20 20 20  |a returned:.    |
00000b90  0a 20 20 20 20 20 20 20  20 4f 66 66 73 65 74 20  |.        Offset |
00000ba0  20 53 69 7a 65 20 20 20  20 44 65 73 63 72 69 70  | Size    Descrip|
00000bb0  74 69 6f 6e 0a 20 20 20  20 20 20 20 20 0a 20 20  |tion.        .  |
00000bc0  20 20 20 20 20 20 30 20  20 20 20 20 20 20 34 20  |      0       4 |
00000bd0  20 20 20 20 20 20 52 65  74 75 72 6e 20 63 6f 64  |      Return cod|
00000be0  65 2e 0a 20 20 20 20 20  20 20 20 34 20 20 20 20  |e..        4    |
00000bf0  20 20 20 32 35 36 20 20  20 20 20 52 49 53 43 20  |   256     RISC |
00000c00  4f 53 20 73 74 79 6c 65  20 65 72 72 6f 72 20 62  |OS style error b|
00000c10  6c 6f 63 6b 20 72 65 74  75 72 6e 65 64 20 62 79  |lock returned by|
00000c20  20 53 57 49 20 69 66 20  74 68 65 0a 20 20 20 20  | SWI if the.    |
00000c30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000c40  20 20 20 20 72 65 74 75  72 6e 20 63 6f 64 65 20  |    return code |
00000c50  69 73 20 26 30 30 30 31  2e 0a 20 20 20 20 20 20  |is &0001..      |
00000c60  20 20 32 36 30 20 20 20  20 20 34 30 20 20 20 20  |  260     40    |
00000c70  20 20 56 61 6c 75 65 73  20 6f 66 20 72 65 67 69  |  Values of regi|
00000c80  73 74 65 72 73 20 52 30  20 74 6f 20 52 39 20 6f  |sters R0 to R9 o|
00000c90  6e 20 65 78 69 74 20 66  72 6f 6d 20 74 68 65 20  |n exit from the |
00000ca0  53 57 49 20 69 66 0a 20  20 20 20 20 20 20 20 20  |SWI if.         |
00000cb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 74  |               t|
00000cc0  68 65 20 72 65 74 75 72  6e 20 63 6f 64 65 20 69  |he return code i|
00000cd0  73 20 26 30 30 30 30 2e  0a 0a 0a 48 50 43 5f 41  |s &0000....HPC_A|
00000ce0  52 4d 45 44 49 54 5f 52  45 41 44 0a 0a 20 20 20  |RMEDIT_READ..   |
00000cf0  20 52 65 61 64 20 41 52  4d 20 6d 65 6d 6f 72 79  | Read ARM memory|
00000d00  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00000d10  73 65 6e 74 3a 0a 20 20  20 20 0a 20 20 20 20 20  |sent:.    .     |
00000d20  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
00000d30  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
00000d40  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
00000d50  30 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |0       2       |
00000d60  48 50 43 20 73 65 72 76  69 63 65 20 49 44 2e 0a  |HPC service ID..|
00000d70  20 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |        2       |
00000d80  32 20 20 20 20 20 20 20  52 65 61 73 6f 6e 20 63  |2       Reason c|
00000d90  6f 64 65 20 3d 20 26 30  30 30 31 2e 0a 20 20 20  |ode = &0001..   |
00000da0  20 20 20 20 20 34 20 20  20 20 20 20 20 34 20 20  |     4       4  |
00000db0  20 20 20 20 20 53 74 61  72 74 20 61 64 64 72 65  |     Start addre|
00000dc0  73 73 20 6f 66 20 6d 65  6d 6f 72 79 20 74 6f 20  |ss of memory to |
00000dd0  72 65 61 64 2e 0a 20 20  20 20 20 20 20 20 38 20  |read..        8 |
00000de0  20 20 20 20 20 20 34 20  20 20 20 20 20 20 4e 75  |      4       Nu|
00000df0  6d 62 65 72 20 6f 66 20  62 79 74 65 73 20 74 6f  |mber of bytes to|
00000e00  20 72 65 61 64 2e 20 28  6e 20 3c 3d 20 31 36 33  | read. (n <= 163|
00000e10  38 30 29 0a 0a 20 20 20  20 44 61 74 61 20 72 65  |80)..    Data re|
00000e20  74 75 72 6e 65 64 3a 0a  20 20 20 20 0a 20 20 20  |turned:.    .   |
00000e30  20 20 20 20 20 4f 66 66  73 65 74 20 20 53 69 7a  |     Offset  Siz|
00000e40  65 20 20 20 20 44 65 73  63 72 69 70 74 69 6f 6e  |e    Description|
00000e50  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00000e60  20 20 30 20 20 20 20 20  20 20 34 20 20 20 20 20  |  0       4     |
00000e70  20 20 52 65 74 75 72 6e  20 63 6f 64 65 2e 0a 20  |  Return code.. |
00000e80  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 6e  |       4       n|
00000e90  20 20 20 20 20 20 20 54  68 65 20 63 6f 6e 74 65  |       The conte|
00000ea0  6e 74 73 20 6f 66 20 74  68 65 20 73 70 65 63 69  |nts of the speci|
00000eb0  66 69 65 64 20 6d 65 6d  6f 72 79 2e 0a 0a 0a 48  |fied memory....H|
00000ec0  50 43 5f 41 52 4d 45 44  49 54 5f 57 52 49 54 45  |PC_ARMEDIT_WRITE|
00000ed0  0a 0a 20 20 20 20 57 72  69 74 65 20 41 52 4d 20  |..    Write ARM |
00000ee0  6d 65 6d 6f 72 79 2e 0a  20 20 20 20 0a 20 20 20  |memory..    .   |
00000ef0  20 44 61 74 61 20 73 65  6e 74 3a 0a 20 20 20 20  | Data sent:.    |
00000f00  0a 20 20 20 20 20 20 20  20 4f 66 66 73 65 74 20  |.        Offset |
00000f10  20 53 69 7a 65 20 20 20  20 44 65 73 63 72 69 70  | Size    Descrip|
00000f20  74 69 6f 6e 0a 20 20 20  20 20 20 20 20 0a 20 20  |tion.        .  |
00000f30  20 20 20 20 20 20 30 20  20 20 20 20 20 20 32 20  |      0       2 |
00000f40  20 20 20 20 20 20 48 50  43 20 73 65 72 76 69 63  |      HPC servic|
00000f50  65 20 49 44 2e 0a 20 20  20 20 20 20 20 20 32 20  |e ID..        2 |
00000f60  20 20 20 20 20 20 32 20  20 20 20 20 20 20 52 65  |      2       Re|
00000f70  61 73 6f 6e 20 63 6f 64  65 20 3d 20 26 30 30 30  |ason code = &000|
00000f80  32 2e 0a 20 20 20 20 20  20 20 20 34 20 20 20 20  |2..        4    |
00000f90  20 20 20 34 20 20 20 20  20 20 20 53 74 61 72 74  |   4       Start|
00000fa0  20 61 64 64 72 65 73 73  20 6f 66 20 6d 65 6d 6f  | address of memo|
00000fb0  72 79 20 74 6f 20 72 65  61 64 2e 0a 20 20 20 20  |ry to read..    |
00000fc0  20 20 20 20 38 20 20 20  20 20 20 20 34 20 20 20  |    8       4   |
00000fd0  20 20 20 20 4e 75 6d 62  65 72 20 6f 66 20 62 79  |    Number of by|
00000fe0  74 65 73 20 74 6f 20 77  72 69 74 65 2e 20 28 6e  |tes to write. (n|
00000ff0  20 3c 3d 20 31 36 33 37  32 29 0a 20 20 20 20 20  | <= 16372).     |
00001000  20 20 20 31 32 20 20 20  20 20 20 6e 20 20 20 20  |   12      n    |
00001010  20 20 20 54 68 65 20 64  61 74 61 20 74 6f 20 77  |   The data to w|
00001020  72 69 74 65 2e 0a 0a 20  20 20 20 44 61 74 61 20  |rite...    Data |
00001030  72 65 74 75 72 6e 65 64  3a 0a 20 20 20 20 0a 20  |returned:.    . |
00001040  20 20 20 20 20 20 20 4f  66 66 73 65 74 20 20 53  |       Offset  S|
00001050  69 7a 65 20 20 20 20 44  65 73 63 72 69 70 74 69  |ize    Descripti|
00001060  6f 6e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |on.        .    |
00001070  20 20 20 20 30 20 20 20  20 20 20 20 34 20 20 20  |    0       4   |
00001080  20 20 20 20 52 65 74 75  72 6e 20 63 6f 64 65 2e  |    Return code.|
00001090  0a 0a 0a 48 50 43 5f 41  52 4d 45 44 49 54 5f 41  |...HPC_ARMEDIT_A|
000010a0  4c 4c 4f 43 0a 0a 20 20  20 20 43 6c 61 69 6d 20  |LLOC..    Claim |
000010b0  61 20 62 6c 6f 63 6b 20  6f 66 20 41 52 4d 20 6d  |a block of ARM m|
000010c0  65 6d 6f 72 79 2e 20 54  68 69 73 20 69 73 20 61  |emory. This is a|
000010d0  75 74 6f 6d 61 74 69 63  61 6c 6c 79 20 72 65 6c  |utomatically rel|
000010e0  65 61 73 65 64 20 77 68  65 6e 20 74 68 65 20 50  |eased when the P|
000010f0  43 0a 20 20 20 20 69 73  20 73 68 75 74 64 6f 77  |C.    is shutdow|
00001100  6e 20 6f 72 20 72 65 73  65 74 2c 20 62 75 74 20  |n or reset, but |
00001110  69 74 20 69 73 20 62 65  74 74 65 72 20 74 6f 20  |it is better to |
00001120  66 72 65 65 20 69 74 20  77 68 65 6e 20 6e 6f 20  |free it when no |
00001130  6c 6f 6e 67 65 72 20 72  65 71 75 69 72 65 64 0a  |longer required.|
00001140  20 20 20 20 75 73 69 6e  67 20 48 50 43 5f 41 52  |    using HPC_AR|
00001150  4d 45 44 49 54 5f 46 52  45 45 2e 0a 20 20 20 20  |MEDIT_FREE..    |
00001160  20 20 20 20 0a 20 20 20  20 44 61 74 61 20 73 65  |    .    Data se|
00001170  6e 74 3a 0a 20 20 20 20  0a 20 20 20 20 20 20 20  |nt:.    .       |
00001180  20 4f 66 66 73 65 74 20  20 53 69 7a 65 20 20 20  | Offset  Size   |
00001190  20 44 65 73 63 72 69 70  74 69 6f 6e 0a 20 20 20  | Description.   |
000011a0  20 20 20 20 20 0a 20 20  20 20 20 20 20 20 30 20  |     .        0 |
000011b0  20 20 20 20 20 20 32 20  20 20 20 20 20 20 48 50  |      2       HP|
000011c0  43 20 73 65 72 76 69 63  65 20 49 44 2e 0a 20 20  |C service ID..  |
000011d0  20 20 20 20 20 20 32 20  20 20 20 20 20 20 32 20  |      2       2 |
000011e0  20 20 20 20 20 20 52 65  61 73 6f 6e 20 63 6f 64  |      Reason cod|
000011f0  65 20 3d 20 26 30 30 30  33 2e 0a 20 20 20 20 20  |e = &0003..     |
00001200  20 20 20 34 20 20 20 20  20 20 20 34 20 20 20 20  |   4       4    |
00001210  20 20 20 41 6d 6f 75 6e  74 20 6f 66 20 6d 65 6d  |   Amount of mem|
00001220  6f 72 79 20 74 6f 20 63  6c 61 69 6d 2e 0a 0a 20  |ory to claim... |
00001230  20 20 20 44 61 74 61 20  72 65 74 75 72 6e 65 64  |   Data returned|
00001240  3a 0a 20 20 20 20 0a 20  20 20 20 20 20 20 20 4f  |:.    .        O|
00001250  66 66 73 65 74 20 20 53  69 7a 65 20 20 20 20 44  |ffset  Size    D|
00001260  65 73 63 72 69 70 74 69  6f 6e 0a 20 20 20 20 20  |escription.     |
00001270  20 20 20 0a 20 20 20 20  20 20 20 20 30 20 20 20  |   .        0   |
00001280  20 20 20 20 34 20 20 20  20 20 20 20 52 65 74 75  |    4       Retu|
00001290  72 6e 20 63 6f 64 65 2e  0a 20 20 20 20 20 20 20  |rn code..       |
000012a0  20 34 20 20 20 20 20 20  20 34 20 20 20 20 20 20  | 4       4      |
000012b0  20 41 64 64 72 65 73 73  20 6f 66 20 74 68 65 20  | Address of the |
000012c0  62 6c 6f 63 6b 20 6f 66  20 6d 65 6d 6f 72 79 20  |block of memory |
000012d0  61 6c 6c 6f 63 61 74 65  64 2e 0a 0a 0a 48 50 43  |allocated....HPC|
000012e0  5f 41 52 4d 45 44 49 54  5f 46 52 45 45 0a 0a 20  |_ARMEDIT_FREE.. |
000012f0  20 20 20 52 65 6c 65 61  73 65 20 61 20 62 6c 6f  |   Release a blo|
00001300  63 6b 20 6f 66 20 41 52  4d 20 6d 65 6d 6f 72 79  |ck of ARM memory|
00001310  20 70 72 65 76 69 6f 75  73 6c 79 20 63 6c 61 69  | previously clai|
00001320  6d 65 64 20 75 73 69 6e  67 20 48 50 43 5f 41 52  |med using HPC_AR|
00001330  4d 45 44 49 54 5f 41 4c  4c 4f 43 2e 0a 20 20 20  |MEDIT_ALLOC..   |
00001340  20 20 20 20 20 0a 20 20  20 20 44 61 74 61 20 73  |     .    Data s|
00001350  65 6e 74 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ent:.    .      |
00001360  20 20 4f 66 66 73 65 74  20 20 53 69 7a 65 20 20  |  Offset  Size  |
00001370  20 20 44 65 73 63 72 69  70 74 69 6f 6e 0a 20 20  |  Description.  |
00001380  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 30  |      .        0|
00001390  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 48  |       2       H|
000013a0  50 43 20 73 65 72 76 69  63 65 20 49 44 2e 0a 20  |PC service ID.. |
000013b0  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 32  |       2       2|
000013c0  20 20 20 20 20 20 20 52  65 61 73 6f 6e 20 63 6f  |       Reason co|
000013d0  64 65 20 3d 20 26 30 30  30 34 2e 0a 20 20 20 20  |de = &0004..    |
000013e0  20 20 20 20 34 20 20 20  20 20 20 20 34 20 20 20  |    4       4   |
000013f0  20 20 20 20 54 68 65 20  61 64 64 72 65 73 73 20  |    The address |
00001400  6f 66 20 74 68 65 20 62  6c 6f 63 6b 20 6f 66 20  |of the block of |
00001410  6d 65 6d 6f 72 79 2e 0a  0a 20 20 20 20 44 61 74  |memory...    Dat|
00001420  61 20 72 65 74 75 72 6e  65 64 3a 0a 20 20 20 20  |a returned:.    |
00001430  0a 20 20 20 20 20 20 20  20 4f 66 66 73 65 74 20  |.        Offset |
00001440  20 53 69 7a 65 20 20 20  20 44 65 73 63 72 69 70  | Size    Descrip|
00001450  74 69 6f 6e 0a 20 20 20  20 20 20 20 20 0a 20 20  |tion.        .  |
00001460  20 20 20 20 20 20 30 20  20 20 20 20 20 20 34 20  |      0       4 |
00001470  20 20 20 20 20 20 52 65  74 75 72 6e 20 63 6f 64  |      Return cod|
00001480  65 2e 0a 0a 0a 48 50 43  5f 41 52 4d 45 44 49 54  |e....HPC_ARMEDIT|
00001490  5f 45 58 54 54 59 50 45  0a 0a 20 20 20 20 43 6f  |_EXTTYPE..    Co|
000014a0  6e 76 65 72 74 20 61 20  44 4f 53 20 65 78 74 65  |nvert a DOS exte|
000014b0  6e 73 69 6f 6e 20 69 6e  74 6f 20 61 20 52 49 53  |nsion into a RIS|
000014c0  43 20 4f 53 20 66 69 6c  65 74 79 70 65 2e 0a 20  |C OS filetype.. |
000014d0  20 20 20 20 20 20 20 0a  20 20 20 20 44 61 74 61  |       .    Data|
000014e0  20 73 65 6e 74 3a 0a 20  20 20 20 0a 20 20 20 20  | sent:.    .    |
000014f0  20 20 20 20 4f 66 66 73  65 74 20 20 53 69 7a 65  |    Offset  Size|
00001500  20 20 20 20 44 65 73 63  72 69 70 74 69 6f 6e 0a  |    Description.|
00001510  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00001520  20 30 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 0       2      |
00001530  20 48 50 43 20 73 65 72  76 69 63 65 20 49 44 2e  | HPC service ID.|
00001540  0a 20 20 20 20 20 20 20  20 32 20 20 20 20 20 20  |.        2      |
00001550  20 32 20 20 20 20 20 20  20 52 65 61 73 6f 6e 20  | 2       Reason |
00001560  63 6f 64 65 20 3d 20 26  30 30 30 35 2e 0a 20 20  |code = &0005..  |
00001570  20 20 20 20 20 20 34 20  20 20 20 20 20 20 34 20  |      4       4 |
00001580  20 20 20 20 20 20 54 68  65 20 65 78 74 65 6e 73  |      The extens|
00001590  69 6f 6e 20 69 6e 20 75  70 70 65 72 20 63 61 73  |ion in upper cas|
000015a0  65 20 70 61 64 64 65 64  20 77 69 74 68 20 30 20  |e padded with 0 |
000015b0  62 79 74 65 73 20 74 6f  0a 20 20 20 20 20 20 20  |bytes to.       |
000015c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000015d0  20 66 6f 75 72 20 63 68  61 72 61 63 74 65 72 73  | four characters|
000015e0  2e 0a 0a 20 20 20 20 44  61 74 61 20 72 65 74 75  |...    Data retu|
000015f0  72 6e 65 64 3a 0a 20 20  20 20 0a 20 20 20 20 20  |rned:.    .     |
00001600  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
00001610  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
00001620  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
00001630  30 20 20 20 20 20 20 20  34 20 20 20 20 20 20 20  |0       4       |
00001640  52 65 74 75 72 6e 20 63  6f 64 65 2e 0a 20 20 20  |Return code..   |
00001650  20 20 20 20 20 34 20 20  20 20 20 20 20 34 20 20  |     4       4  |
00001660  20 20 20 20 20 54 68 65  20 52 49 53 43 20 4f 53  |     The RISC OS|
00001670  20 66 69 6c 65 74 79 70  65 2e 0a 0a 0a 48 50 43  | filetype....HPC|
00001680  5f 41 52 4d 45 44 49 54  5f 54 59 50 45 45 58 54  |_ARMEDIT_TYPEEXT|
00001690  0a 0a 20 20 20 20 43 6f  6e 76 65 72 74 20 61 20  |..    Convert a |
000016a0  52 49 53 43 20 4f 53 20  66 69 6c 65 74 79 70 65  |RISC OS filetype|
000016b0  20 69 6e 74 6f 20 61 20  44 4f 53 20 65 78 74 65  | into a DOS exte|
000016c0  6e 73 69 6f 6e 2e 0a 20  20 20 20 20 20 20 20 0a  |nsion..        .|
000016d0  20 20 20 20 44 61 74 61  20 73 65 6e 74 3a 0a 20  |    Data sent:. |
000016e0  20 20 20 0a 20 20 20 20  20 20 20 20 4f 66 66 73  |   .        Offs|
000016f0  65 74 20 20 53 69 7a 65  20 20 20 20 44 65 73 63  |et  Size    Desc|
00001700  72 69 70 74 69 6f 6e 0a  20 20 20 20 20 20 20 20  |ription.        |
00001710  0a 20 20 20 20 20 20 20  20 30 20 20 20 20 20 20  |.        0      |
00001720  20 32 20 20 20 20 20 20  20 48 50 43 20 73 65 72  | 2       HPC ser|
00001730  76 69 63 65 20 49 44 2e  0a 20 20 20 20 20 20 20  |vice ID..       |
00001740  20 32 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 2       2      |
00001750  20 52 65 61 73 6f 6e 20  63 6f 64 65 20 3d 20 26  | Reason code = &|
00001760  30 30 30 36 2e 0a 20 20  20 20 20 20 20 20 34 20  |0006..        4 |
00001770  20 20 20 20 20 20 34 20  20 20 20 20 20 20 54 68  |      4       Th|
00001780  65 20 52 49 53 43 20 4f  53 20 66 69 6c 65 74 79  |e RISC OS filety|
00001790  70 65 2e 0a 0a 20 20 20  20 44 61 74 61 20 72 65  |pe...    Data re|
000017a0  74 75 72 6e 65 64 3a 0a  20 20 20 20 0a 20 20 20  |turned:.    .   |
000017b0  20 20 20 20 20 4f 66 66  73 65 74 20 20 53 69 7a  |     Offset  Siz|
000017c0  65 20 20 20 20 44 65 73  63 72 69 70 74 69 6f 6e  |e    Description|
000017d0  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
000017e0  20 20 30 20 20 20 20 20  20 20 34 20 20 20 20 20  |  0       4     |
000017f0  20 20 52 65 74 75 72 6e  20 63 6f 64 65 2e 0a 20  |  Return code.. |
00001800  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 34  |       4       4|
00001810  20 20 20 20 20 20 20 54  68 65 20 65 78 74 65 6e  |       The exten|
00001820  73 69 6f 6e 20 69 6e 20  75 70 70 65 72 20 63 61  |sion in upper ca|
00001830  73 65 20 70 61 64 64 65  64 20 77 69 74 68 20 30  |se padded with 0|
00001840  20 62 79 74 65 73 20 74  6f 0a 20 20 20 20 20 20  | bytes to.      |
00001850  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001860  20 20 66 6f 75 72 20 63  68 61 72 61 63 74 65 72  |  four character|
00001870  73 2e 0a 0a 0a 48 50 43  5f 41 52 4d 45 44 49 54  |s....HPC_ARMEDIT|
00001880  5f 46 4f 50 45 4e 0a 0a  20 20 20 20 4f 70 65 6e  |_FOPEN..    Open|
00001890  20 61 20 52 49 53 43 20  4f 53 20 66 69 6c 65 2e  | a RISC OS file.|
000018a0  20 54 68 69 73 20 69 73  20 61 75 74 6f 6d 61 74  | This is automat|
000018b0  69 63 61 6c 6c 79 20 63  6c 6f 73 65 64 20 77 68  |ically closed wh|
000018c0  65 6e 20 74 68 65 20 50  43 20 69 73 20 73 68 75  |en the PC is shu|
000018d0  74 64 6f 77 6e 0a 20 20  20 20 6f 72 20 72 65 73  |tdown.    or res|
000018e0  65 74 2c 20 62 75 74 20  69 74 20 69 73 20 62 65  |et, but it is be|
000018f0  74 74 65 72 20 74 6f 20  63 6c 6f 73 65 20 69 74  |tter to close it|
00001900  20 77 68 65 6e 20 6e 6f  20 6c 6f 6e 67 65 72 20  | when no longer |
00001910  72 65 71 75 69 72 65 64  20 75 73 69 6e 67 0a 20  |required using. |
00001920  20 20 20 48 50 43 5f 41  52 4d 45 44 49 54 5f 43  |   HPC_ARMEDIT_C|
00001930  4c 4f 53 45 2e 20 41 20  66 69 6c 65 20 6f 70 65  |LOSE. A file ope|
00001940  6e 65 64 20 75 73 69 6e  67 20 74 68 69 73 20 63  |ned using this c|
00001950  61 6c 6c 20 73 68 6f 75  6c 64 20 6e 6f 74 20 62  |all should not b|
00001960  65 20 63 6c 6f 73 65 64  0a 20 20 20 20 75 73 69  |e closed.    usi|
00001970  6e 67 20 52 49 53 43 20  4f 53 20 72 6f 75 74 69  |ng RISC OS routi|
00001980  6e 65 73 20 64 69 72 65  63 74 6c 79 2e 0a 20 20  |nes directly..  |
00001990  20 20 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |      .    Data |
000019a0  73 65 6e 74 3a 0a 20 20  20 20 0a 20 20 20 20 20  |sent:.    .     |
000019b0  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
000019c0  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
000019d0  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
000019e0  30 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |0       2       |
000019f0  48 50 43 20 73 65 72 76  69 63 65 20 49 44 2e 0a  |HPC service ID..|
00001a00  20 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |        2       |
00001a10  32 20 20 20 20 20 20 20  52 65 61 73 6f 6e 20 63  |2       Reason c|
00001a20  6f 64 65 20 3d 20 26 30  30 30 37 2e 0a 20 20 20  |ode = &0007..   |
00001a30  20 20 20 20 20 34 20 20  20 20 20 20 20 34 20 20  |     4       4  |
00001a40  20 20 20 20 20 2d 31 20  74 6f 20 6f 70 65 6e 20  |     -1 to open |
00001a50  65 78 69 73 74 69 6e 67  20 66 69 6c 65 2c 20 6f  |existing file, o|
00001a60  72 20 69 6e 69 74 69 61  6c 20 73 69 7a 65 20 6f  |r initial size o|
00001a70  66 20 66 69 6c 65 20 74  6f 0a 20 20 20 20 20 20  |f file to.      |
00001a80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001a90  20 20 63 72 65 61 74 65  20 61 20 6e 65 77 20 6f  |  create a new o|
00001aa0  6e 65 2e 0a 20 20 20 20  20 20 20 20 38 20 20 20  |ne..        8   |
00001ab0  20 20 20 20 34 20 20 20  20 20 20 20 4e 6f 6e 2d  |    4       Non-|
00001ac0  7a 65 72 6f 20 74 6f 20  61 75 74 6f 6d 61 74 69  |zero to automati|
00001ad0  63 61 6c 6c 79 20 64 65  6c 65 74 65 20 66 69 6c  |cally delete fil|
00001ae0  65 20 77 68 65 6e 20 63  6c 6f 73 65 64 2e 0a 20  |e when closed.. |
00001af0  20 20 20 20 20 20 20 31  32 20 20 20 20 20 20 6e  |       12      n|
00001b00  20 20 20 20 20 20 20 4e  61 6d 65 20 6f 66 20 66  |       Name of f|
00001b10  69 6c 65 20 74 6f 20 6f  70 65 6e 2e 0a 0a 20 20  |ile to open...  |
00001b20  20 20 44 61 74 61 20 72  65 74 75 72 6e 65 64 3a  |  Data returned:|
00001b30  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 4f 66  |.    .        Of|
00001b40  66 73 65 74 20 20 53 69  7a 65 20 20 20 20 44 65  |fset  Size    De|
00001b50  73 63 72 69 70 74 69 6f  6e 0a 20 20 20 20 20 20  |scription.      |
00001b60  20 20 0a 20 20 20 20 20  20 20 20 30 20 20 20 20  |  .        0    |
00001b70  20 20 20 34 20 20 20 20  20 20 20 52 65 74 75 72  |   4       Retur|
00001b80  6e 20 63 6f 64 65 2e 0a  20 20 20 20 20 20 20 20  |n code..        |
00001b90  34 20 20 20 20 20 20 20  34 20 20 20 20 20 20 20  |4       4       |
00001ba0  52 49 53 43 20 4f 53 20  66 69 6c 65 20 68 61 6e  |RISC OS file han|
00001bb0  64 6c 65 2e 0a 0a 0a 48  50 43 5f 41 52 4d 45 44  |dle....HPC_ARMED|
00001bc0  49 54 5f 46 43 4c 4f 53  45 0a 0a 20 20 20 20 43  |IT_FCLOSE..    C|
00001bd0  6c 6f 73 65 20 61 20 52  49 53 43 20 4f 53 20 66  |lose a RISC OS f|
00001be0  69 6c 65 20 70 72 65 76  69 6f 75 73 6c 79 20 6f  |ile previously o|
00001bf0  70 65 6e 65 64 20 75 73  69 6e 67 20 48 50 43 5f  |pened using HPC_|
00001c00  41 52 4d 45 44 49 54 5f  4f 50 45 4e 2e 20 54 68  |ARMEDIT_OPEN. Th|
00001c10  65 20 66 69 6c 65 0a 20  20 20 20 69 73 20 64 65  |e file.    is de|
00001c20  6c 65 74 65 64 20 69 66  20 73 70 65 63 69 66 69  |leted if specifi|
00001c30  65 64 20 77 68 65 6e 20  74 68 65 20 66 69 6c 65  |ed when the file|
00001c40  20 77 61 73 20 6f 70 65  6e 65 64 2e 0a 20 20 20  | was opened..   |
00001c50  20 20 20 20 20 0a 20 20  20 20 44 61 74 61 20 73  |     .    Data s|
00001c60  65 6e 74 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ent:.    .      |
00001c70  20 20 4f 66 66 73 65 74  20 20 53 69 7a 65 20 20  |  Offset  Size  |
00001c80  20 20 44 65 73 63 72 69  70 74 69 6f 6e 0a 20 20  |  Description.  |
00001c90  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 30  |      .        0|
00001ca0  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 48  |       2       H|
00001cb0  50 43 20 73 65 72 76 69  63 65 20 49 44 2e 0a 20  |PC service ID.. |
00001cc0  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 32  |       2       2|
00001cd0  20 20 20 20 20 20 20 52  65 61 73 6f 6e 20 63 6f  |       Reason co|
00001ce0  64 65 20 3d 20 26 30 30  30 38 2e 0a 20 20 20 20  |de = &0008..    |
00001cf0  20 20 20 20 34 20 20 20  20 20 20 20 34 20 20 20  |    4       4   |
00001d00  20 20 20 20 52 49 53 43  20 4f 53 20 66 69 6c 65  |    RISC OS file|
00001d10  20 68 61 6e 64 6c 65 2e  0a 0a 20 20 20 20 44 61  | handle...    Da|
00001d20  74 61 20 72 65 74 75 72  6e 65 64 3a 0a 20 20 20  |ta returned:.   |
00001d30  20 0a 20 20 20 20 20 20  20 20 4f 66 66 73 65 74  | .        Offset|
00001d40  20 20 53 69 7a 65 20 20  20 20 44 65 73 63 72 69  |  Size    Descri|
00001d50  70 74 69 6f 6e 0a 20 20  20 20 20 20 20 20 0a 20  |ption.        . |
00001d60  20 20 20 20 20 20 20 30  20 20 20 20 20 20 20 34  |       0       4|
00001d70  20 20 20 20 20 20 20 52  65 74 75 72 6e 20 63 6f  |       Return co|
00001d80  64 65 2e 0a 0a 0a 48 50  43 5f 41 52 4d 45 44 49  |de....HPC_ARMEDI|
00001d90  54 5f 46 52 45 41 44 0a  0a 20 20 20 20 52 65 61  |T_FREAD..    Rea|
00001da0  64 20 66 72 6f 6d 20 61  20 52 49 53 43 20 4f 53  |d from a RISC OS|
00001db0  20 66 69 6c 65 2e 0a 20  20 20 20 20 20 20 20 0a  | file..        .|
00001dc0  20 20 20 20 44 61 74 61  20 73 65 6e 74 3a 0a 20  |    Data sent:. |
00001dd0  20 20 20 0a 20 20 20 20  20 20 20 20 4f 66 66 73  |   .        Offs|
00001de0  65 74 20 20 53 69 7a 65  20 20 20 20 44 65 73 63  |et  Size    Desc|
00001df0  72 69 70 74 69 6f 6e 0a  20 20 20 20 20 20 20 20  |ription.        |
00001e00  0a 20 20 20 20 20 20 20  20 30 20 20 20 20 20 20  |.        0      |
00001e10  20 32 20 20 20 20 20 20  20 48 50 43 20 73 65 72  | 2       HPC ser|
00001e20  76 69 63 65 20 49 44 2e  0a 20 20 20 20 20 20 20  |vice ID..       |
00001e30  20 32 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 2       2      |
00001e40  20 52 65 61 73 6f 6e 20  63 6f 64 65 20 3d 20 26  | Reason code = &|
00001e50  30 30 30 39 2e 0a 20 20  20 20 20 20 20 20 34 20  |0009..        4 |
00001e60  20 20 20 20 20 20 34 20  20 20 20 20 20 20 52 49  |      4       RI|
00001e70  53 43 20 4f 53 20 66 69  6c 65 20 68 61 6e 64 6c  |SC OS file handl|
00001e80  65 2e 0a 20 20 20 20 20  20 20 20 38 20 20 20 20  |e..        8    |
00001e90  20 20 20 34 20 20 20 20  20 20 20 53 65 71 75 65  |   4       Seque|
00001ea0  6e 74 69 61 6c 20 66 69  6c 65 20 70 6f 69 6e 74  |ntial file point|
00001eb0  65 72 20 66 6f 72 20 73  74 61 72 74 20 6f 66 20  |er for start of |
00001ec0  62 6c 6f 63 6b 2c 20 6f  72 20 2d 31 20 66 6f 72  |block, or -1 for|
00001ed0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00001ee0  20 20 20 20 20 20 20 20  20 63 75 72 72 65 6e 74  |         current|
00001ef0  20 70 6f 73 69 74 69 6f  6e 2e 0a 20 20 20 20 20  | position..     |
00001f00  20 20 20 31 32 20 20 20  20 20 20 34 20 20 20 20  |   12      4    |
00001f10  20 20 20 4e 75 6d 62 65  72 20 6f 66 20 62 79 74  |   Number of byt|
00001f20  65 73 20 74 6f 20 72 65  61 64 2e 0a 0a 20 20 20  |es to read...   |
00001f30  20 44 61 74 61 20 72 65  74 75 72 6e 65 64 3a 0a  | Data returned:.|
00001f40  20 20 20 20 0a 20 20 20  20 20 20 20 20 4f 66 66  |    .        Off|
00001f50  73 65 74 20 20 53 69 7a  65 20 20 20 20 44 65 73  |set  Size    Des|
00001f60  63 72 69 70 74 69 6f 6e  0a 20 20 20 20 20 20 20  |cription.       |
00001f70  20 0a 20 20 20 20 20 20  20 20 30 20 20 20 20 20  | .        0     |
00001f80  20 20 34 20 20 20 20 20  20 20 52 65 74 75 72 6e  |  4       Return|
00001f90  20 63 6f 64 65 2e 0a 20  20 20 20 20 20 20 20 34  | code..        4|
00001fa0  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 4e  |       4       N|
00001fb0  75 6d 62 65 72 20 6f 66  20 62 79 74 65 73 20 72  |umber of bytes r|
00001fc0  65 61 64 2e 0a 20 20 20  20 20 20 20 20 38 20 20  |ead..        8  |
00001fd0  20 20 20 20 20 6e 20 20  20 20 20 20 20 54 68 65  |     n       The|
00001fe0  20 64 61 74 61 20 72 65  61 64 20 66 72 6f 6d 20  | data read from |
00001ff0  74 68 65 20 66 69 6c 65  2e 0a 0a 0a 48 50 43 5f  |the file....HPC_|
00002000  41 52 4d 45 44 49 54 5f  46 57 52 49 54 45 0a 0a  |ARMEDIT_FWRITE..|
00002010  20 20 20 20 57 72 69 74  65 20 74 6f 20 61 20 52  |    Write to a R|
00002020  49 53 43 20 4f 53 20 66  69 6c 65 2e 0a 20 20 20  |ISC OS file..   |
00002030  20 20 20 20 20 0a 20 20  20 20 44 61 74 61 20 73  |     .    Data s|
00002040  65 6e 74 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ent:.    .      |
00002050  20 20 4f 66 66 73 65 74  20 20 53 69 7a 65 20 20  |  Offset  Size  |
00002060  20 20 44 65 73 63 72 69  70 74 69 6f 6e 0a 20 20  |  Description.  |
00002070  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 30  |      .        0|
00002080  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 48  |       2       H|
00002090  50 43 20 73 65 72 76 69  63 65 20 49 44 2e 0a 20  |PC service ID.. |
000020a0  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 32  |       2       2|
000020b0  20 20 20 20 20 20 20 52  65 61 73 6f 6e 20 63 6f  |       Reason co|
000020c0  64 65 20 3d 20 26 30 30  30 41 2e 0a 20 20 20 20  |de = &000A..    |
000020d0  20 20 20 20 34 20 20 20  20 20 20 20 34 20 20 20  |    4       4   |
000020e0  20 20 20 20 52 49 53 43  20 4f 53 20 66 69 6c 65  |    RISC OS file|
000020f0  20 68 61 6e 64 6c 65 2e  0a 20 20 20 20 20 20 20  | handle..       |
00002100  20 38 20 20 20 20 20 20  20 34 20 20 20 20 20 20  | 8       4      |
00002110  20 53 65 71 75 65 6e 74  69 61 6c 20 66 69 6c 65  | Sequential file|
00002120  20 70 6f 69 6e 74 65 72  20 66 6f 72 20 73 74 61  | pointer for sta|
00002130  72 74 20 6f 66 20 62 6c  6f 63 6b 2c 20 6f 72 20  |rt of block, or |
00002140  2d 31 20 66 6f 72 0a 20  20 20 20 20 20 20 20 20  |-1 for.         |
00002150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 63  |               c|
00002160  75 72 72 65 6e 74 20 70  6f 73 69 74 69 6f 6e 2e  |urrent position.|
00002170  0a 20 20 20 20 20 20 20  20 31 32 20 20 20 20 20  |.        12     |
00002180  20 34 20 20 20 20 20 20  20 4e 75 6d 62 65 72 20  | 4       Number |
00002190  6f 66 20 62 79 74 65 73  20 74 6f 20 77 72 69 74  |of bytes to writ|
000021a0  65 2e 0a 20 20 20 20 20  20 20 20 31 36 20 20 20  |e..        16   |
000021b0  20 20 20 6e 20 20 20 20  20 20 20 54 68 65 20 64  |   n       The d|
000021c0  61 74 61 20 74 6f 20 77  72 69 74 65 20 74 6f 20  |ata to write to |
000021d0  74 68 65 20 66 69 6c 65  2e 0a 0a 20 20 20 20 44  |the file...    D|
000021e0  61 74 61 20 72 65 74 75  72 6e 65 64 3a 0a 20 20  |ata returned:.  |
000021f0  20 20 0a 20 20 20 20 20  20 20 20 4f 66 66 73 65  |  .        Offse|
00002200  74 20 20 53 69 7a 65 20  20 20 20 44 65 73 63 72  |t  Size    Descr|
00002210  69 70 74 69 6f 6e 0a 20  20 20 20 20 20 20 20 0a  |iption.        .|
00002220  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
00002230  34 20 20 20 20 20 20 20  52 65 74 75 72 6e 20 63  |4       Return c|
00002240  6f 64 65 2e 0a 0a 0a 48  50 43 5f 41 52 4d 45 44  |ode....HPC_ARMED|
00002250  49 54 5f 54 41 4c 4b 5f  53 54 41 52 54 0a 0a 20  |IT_TALK_START.. |
00002260  20 20 20 52 65 67 69 73  74 65 72 20 61 20 6e 65  |   Register a ne|
00002270  77 20 63 6c 69 65 6e 74  20 74 61 73 6b 2e 20 4e  |w client task. N|
00002280  6f 74 65 20 74 68 61 74  20 61 20 63 6c 69 65 6e  |ote that a clien|
00002290  74 20 49 44 20 6f 66 20  30 20 69 73 20 61 73 73  |t ID of 0 is ass|
000022a0  75 6d 65 64 2e 0a 20 20  20 20 49 74 20 64 6f 65  |umed..    It doe|
000022b0  73 20 6e 6f 74 20 6d 61  6b 65 20 73 65 6e 73 65  |s not make sense|
000022c0  20 62 65 69 6e 67 20 61  62 6c 65 20 74 6f 20 72  | being able to r|
000022d0  65 71 75 65 73 74 20 6e  6f 74 69 66 69 63 61 74  |equest notificat|
000022e0  69 6f 6e 20 6f 66 20 72  65 73 65 74 20 6f 72 0a  |ion of reset or.|
000022f0  20 20 20 20 73 68 75 74  64 6f 77 6e 2e 0a 20 20  |    shutdown..  |
00002300  20 20 0a 20 20 20 20 44  61 74 61 20 73 65 6e 74  |  .    Data sent|
00002310  3a 0a 20 20 20 20 0a 20  20 20 20 20 20 20 20 4f  |:.    .        O|
00002320  66 66 73 65 74 20 20 53  69 7a 65 20 20 20 20 44  |ffset  Size    D|
00002330  65 73 63 72 69 70 74 69  6f 6e 0a 20 20 20 20 20  |escription.     |
00002340  20 20 20 0a 20 20 20 20  20 20 20 20 30 20 20 20  |   .        0   |
00002350  20 20 20 20 32 20 20 20  20 20 20 20 48 50 43 20  |    2       HPC |
00002360  73 65 72 76 69 63 65 20  49 44 2e 0a 20 20 20 20  |service ID..    |
00002370  20 20 20 20 32 20 20 20  20 20 20 20 32 20 20 20  |    2       2   |
00002380  20 20 20 20 52 65 61 73  6f 6e 20 63 6f 64 65 20  |    Reason code |
00002390  3d 20 26 30 30 30 42 2e  0a 0a 20 20 20 20 44 61  |= &000B...    Da|
000023a0  74 61 20 72 65 74 75 72  6e 65 64 3a 0a 20 20 20  |ta returned:.   |
000023b0  20 0a 20 20 20 20 20 20  20 20 4f 66 66 73 65 74  | .        Offset|
000023c0  20 20 53 69 7a 65 20 20  20 20 44 65 73 63 72 69  |  Size    Descri|
000023d0  70 74 69 6f 6e 0a 20 20  20 20 20 20 20 20 0a 20  |ption.        . |
000023e0  20 20 20 20 20 20 20 30  20 20 20 20 20 20 20 34  |       0       4|
000023f0  20 20 20 20 20 20 20 52  65 74 75 72 6e 20 63 6f  |       Return co|
00002400  64 65 2e 0a 20 20 20 20  20 20 20 20 34 20 20 20  |de..        4   |
00002410  20 20 20 20 34 20 20 20  20 20 20 20 41 20 75 6e  |    4       A un|
00002420  69 71 75 65 20 63 6c 69  65 6e 74 20 68 61 6e 64  |ique client hand|
00002430  6c 65 2e 0a 0a 0a 48 50  43 5f 41 52 4d 45 44 49  |le....HPC_ARMEDI|
00002440  54 5f 54 41 4c 4b 5f 45  4e 44 0a 0a 20 20 20 20  |T_TALK_END..    |
00002450  44 65 72 65 67 69 73 74  65 72 20 61 20 63 6c 69  |Deregister a cli|
00002460  65 6e 74 20 74 61 73 6b  2e 0a 20 20 20 20 0a 20  |ent task..    . |
00002470  20 20 20 44 61 74 61 20  73 65 6e 74 3a 0a 20 20  |   Data sent:.  |
00002480  20 20 0a 20 20 20 20 20  20 20 20 4f 66 66 73 65  |  .        Offse|
00002490  74 20 20 53 69 7a 65 20  20 20 20 44 65 73 63 72  |t  Size    Descr|
000024a0  69 70 74 69 6f 6e 0a 20  20 20 20 20 20 20 20 0a  |iption.        .|
000024b0  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
000024c0  32 20 20 20 20 20 20 20  48 50 43 20 73 65 72 76  |2       HPC serv|
000024d0  69 63 65 20 49 44 2e 0a  20 20 20 20 20 20 20 20  |ice ID..        |
000024e0  32 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |2       2       |
000024f0  52 65 61 73 6f 6e 20 63  6f 64 65 20 3d 20 26 30  |Reason code = &0|
00002500  30 30 43 2e 0a 20 20 20  20 20 20 20 20 34 20 20  |00C..        4  |
00002510  20 20 20 20 20 34 20 20  20 20 20 20 20 54 68 65  |     4       The|
00002520  20 70 72 65 76 69 6f 75  73 6c 79 20 61 73 73 69  | previously assi|
00002530  67 6e 65 64 20 68 61 6e  64 6c 65 20 66 6f 72 20  |gned handle for |
00002540  74 68 69 73 20 63 6c 69  65 6e 74 20 74 61 73 6b  |this client task|
00002550  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00002560  72 65 74 75 72 6e 65 64  3a 0a 20 20 20 20 0a 20  |returned:.    . |
00002570  20 20 20 20 20 20 20 4f  66 66 73 65 74 20 20 53  |       Offset  S|
00002580  69 7a 65 20 20 20 20 44  65 73 63 72 69 70 74 69  |ize    Descripti|
00002590  6f 6e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |on.        .    |
000025a0  20 20 20 20 30 20 20 20  20 20 20 20 34 20 20 20  |    0       4   |
000025b0  20 20 20 20 52 65 74 75  72 6e 20 63 6f 64 65 2e  |    Return code.|
000025c0  0a 20 20 20 20 20 20 20  20 0a 0a 48 50 43 5f 41  |.        ..HPC_A|
000025d0  52 4d 45 44 49 54 5f 54  41 4c 4b 5f 54 58 0a 0a  |RMEDIT_TALK_TX..|
000025e0  20 20 20 20 53 65 6e 64  20 61 20 6d 65 73 73 61  |    Send a messa|
000025f0  67 65 20 74 6f 20 61 6e  6f 74 68 65 72 20 63 6c  |ge to another cl|
00002600  69 65 6e 74 20 74 61 73  6b 2e 0a 20 20 20 20 0a  |ient task..    .|
00002610  20 20 20 20 44 61 74 61  20 73 65 6e 74 3a 0a 20  |    Data sent:. |
00002620  20 20 20 0a 20 20 20 20  20 20 20 20 4f 66 66 73  |   .        Offs|
00002630  65 74 20 20 53 69 7a 65  20 20 20 20 44 65 73 63  |et  Size    Desc|
00002640  72 69 70 74 69 6f 6e 0a  20 20 20 20 20 20 20 20  |ription.        |
00002650  0a 20 20 20 20 20 20 20  20 30 20 20 20 20 20 20  |.        0      |
00002660  20 32 20 20 20 20 20 20  20 48 50 43 20 73 65 72  | 2       HPC ser|
00002670  76 69 63 65 20 49 44 2e  0a 20 20 20 20 20 20 20  |vice ID..       |
00002680  20 32 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 2       2      |
00002690  20 52 65 61 73 6f 6e 20  63 6f 64 65 20 3d 20 26  | Reason code = &|
000026a0  30 30 30 44 2e 0a 20 20  20 20 20 20 20 20 34 20  |000D..        4 |
000026b0  20 20 20 20 20 20 34 20  20 20 20 20 20 20 43 6c  |      4       Cl|
000026c0  69 65 6e 74 20 68 61 6e  64 6c 65 20 66 6f 72 20  |ient handle for |
000026d0  74 68 69 73 20 74 61 73  6b 2e 0a 20 20 20 20 20  |this task..     |
000026e0  20 20 20 38 20 20 20 20  20 20 20 34 20 20 20 20  |   8       4    |
000026f0  20 20 20 45 69 74 68 65  72 20 74 68 65 20 49 44  |   Either the ID|
00002700  20 6f 72 20 63 6c 69 65  6e 74 20 68 61 6e 64 6c  | or client handl|
00002710  65 20 66 6f 72 20 74 68  65 20 72 65 63 69 70 69  |e for the recipi|
00002720  65 6e 74 2e 0a 20 20 20  20 20 20 20 20 31 32 20  |ent..        12 |
00002730  20 20 20 20 20 31 30 32  34 20 20 20 20 54 68 65  |     1024    The|
00002740  20 6d 65 73 73 61 67 65  20 74 6f 20 73 65 6e 64  | message to send|
00002750  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00002760  72 65 74 75 72 6e 65 64  3a 0a 20 20 20 20 0a 20  |returned:.    . |
00002770  20 20 20 20 20 20 20 4f  66 66 73 65 74 20 20 53  |       Offset  S|
00002780  69 7a 65 20 20 20 20 44  65 73 63 72 69 70 74 69  |ize    Descripti|
00002790  6f 6e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |on.        .    |
000027a0  20 20 20 20 30 20 20 20  20 20 20 20 34 20 20 20  |    0       4   |
000027b0  20 20 20 20 52 65 74 75  72 6e 20 63 6f 64 65 2e  |    Return code.|
000027c0  0a 0a 20 20 20 20 20 20  20 20 20 48 50 43 5f 41  |..         HPC_A|
000027d0  52 4d 45 44 49 54 5f 54  41 4c 4b 5f 52 58 0a 0a  |RMEDIT_TALK_RX..|
000027e0  20 20 20 20 43 68 65 63  6b 20 66 6f 72 20 61 6e  |    Check for an|
000027f0  79 20 77 61 69 74 69 6e  67 20 6d 65 73 73 61 67  |y waiting messag|
00002800  65 73 20 66 6f 72 20 74  68 69 73 20 63 6c 69 65  |es for this clie|
00002810  6e 74 20 74 61 73 6b 2e  20 54 68 65 20 72 65 74  |nt task. The ret|
00002820  75 72 6e 20 63 6f 64 65  20 69 73 0a 20 20 20 20  |urn code is.    |
00002830  66 61 69 6c 75 72 65 20  69 66 20 74 68 65 72 65  |failure if there|
00002840  20 69 73 20 6e 6f 20 6d  65 73 73 61 67 65 20 77  | is no message w|
00002850  61 69 74 69 6e 67 2e 20  54 68 65 72 65 20 69 73  |aiting. There is|
00002860  20 6e 6f 20 61 63 6b 6e  6f 77 6c 65 64 67 65 20  | no acknowledge |
00002870  63 61 6c 6c 0a 20 20 20  20 73 69 6e 63 65 20 61  |call.    since a|
00002880  6c 6c 20 6d 65 73 73 61  67 65 73 20 74 6f 20 50  |ll messages to P|
00002890  43 20 73 6f 66 74 77 61  72 65 20 73 68 6f 75 6c  |C software shoul|
000028a0  64 20 62 65 20 61 64 64  72 65 73 73 65 64 20 74  |d be addressed t|
000028b0  6f 20 61 20 70 61 72 74  69 63 75 6c 61 72 0a 20  |o a particular. |
000028c0  20 20 20 68 61 6e 64 6c  65 2e 0a 20 20 20 20 0a  |   handle..    .|
000028d0  20 20 20 20 44 61 74 61  20 73 65 6e 74 3a 0a 20  |    Data sent:. |
000028e0  20 20 20 0a 20 20 20 20  20 20 20 20 4f 66 66 73  |   .        Offs|
000028f0  65 74 20 20 53 69 7a 65  20 20 20 20 44 65 73 63  |et  Size    Desc|
00002900  72 69 70 74 69 6f 6e 0a  20 20 20 20 20 20 20 20  |ription.        |
00002910  0a 20 20 20 20 20 20 20  20 30 20 20 20 20 20 20  |.        0      |
00002920  20 32 20 20 20 20 20 20  20 48 50 43 20 73 65 72  | 2       HPC ser|
00002930  76 69 63 65 20 49 44 2e  0a 20 20 20 20 20 20 20  |vice ID..       |
00002940  20 32 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 2       2      |
00002950  20 52 65 61 73 6f 6e 20  63 6f 64 65 20 3d 20 26  | Reason code = &|
00002960  30 30 30 45 2e 0a 20 20  20 20 20 20 20 20 34 20  |000E..        4 |
00002970  20 20 20 20 20 20 34 20  20 20 20 20 20 20 43 6c  |      4       Cl|
00002980  69 65 6e 74 20 68 61 6e  64 6c 65 20 66 6f 72 20  |ient handle for |
00002990  74 68 69 73 20 74 61 73  6b 2e 0a 20 20 20 20 0a  |this task..    .|
000029a0  20 20 20 20 44 61 74 61  20 72 65 74 75 72 6e 65  |    Data returne|
000029b0  64 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |d:.    .        |
000029c0  4f 66 66 73 65 74 20 20  53 69 7a 65 20 20 20 20  |Offset  Size    |
000029d0  44 65 73 63 72 69 70 74  69 6f 6e 0a 20 20 20 20  |Description.    |
000029e0  20 20 20 20 0a 20 20 20  20 20 20 20 20 30 20 20  |    .        0  |
000029f0  20 20 20 20 20 34 20 20  20 20 20 20 20 52 65 74  |     4       Ret|
00002a00  75 72 6e 20 63 6f 64 65  2e 0a 20 20 20 20 20 20  |urn code..      |
00002a10  20 20 34 20 20 20 20 20  20 20 34 20 20 20 20 20  |  4       4     |
00002a20  20 20 53 6f 75 72 63 65  20 49 44 2e 0a 20 20 20  |  Source ID..   |
00002a30  20 20 20 20 20 38 20 20  20 20 20 20 20 34 20 20  |     8       4  |
00002a40  20 20 20 20 20 53 6f 75  72 63 65 20 63 6c 69 65  |     Source clie|
00002a50  6e 74 20 68 61 6e 64 6c  65 2e 0a 20 20 20 20 20  |nt handle..     |
00002a60  20 20 20 31 32 20 20 20  20 20 20 31 30 32 34 20  |   12      1024 |
00002a70  20 20 20 54 68 65 20 77  61 69 74 69 6e 67 20 6d  |   The waiting m|
00002a80  65 73 73 61 67 65 2e 0a  0a 0a 48 50 43 5f 41 52  |essage....HPC_AR|
00002a90  4d 45 44 49 54 5f 44 45  56 49 43 45 5f 49 4e 49  |MEDIT_DEVICE_INI|
00002aa0  54 49 41 4c 49 53 45 0a  0a 20 20 20 20 43 61 6c  |TIALISE..    Cal|
00002ab0  6c 65 64 20 64 75 72 69  6e 67 20 69 6e 69 74 69  |led during initi|
00002ac0  61 6c 69 73 61 74 69 6f  6e 20 6f 66 20 64 65 76  |alisation of dev|
00002ad0  69 63 65 20 64 72 69 76  65 72 20 74 6f 20 6f 62  |ice driver to ob|
00002ae0  74 61 69 6e 20 61 20 73  74 61 72 74 2d 75 70 0a  |tain a start-up.|
00002af0  20 20 20 20 62 61 6e 6e  65 72 20 6d 65 73 73 61  |    banner messa|
00002b00  67 65 20 61 6e 64 20 63  68 6f 6f 73 65 20 74 68  |ge and choose th|
00002b10  65 20 6e 75 6d 62 65 72  20 6f 66 20 64 65 76 69  |e number of devi|
00002b20  63 65 73 2e 0a 20 20 20  20 0a 20 20 20 20 44 61  |ces..    .    Da|
00002b30  74 61 20 73 65 6e 74 3a  0a 20 20 20 20 0a 20 20  |ta sent:.    .  |
00002b40  20 20 20 20 20 20 4f 66  66 73 65 74 20 20 53 69  |      Offset  Si|
00002b50  7a 65 20 20 20 20 44 65  73 63 72 69 70 74 69 6f  |ze    Descriptio|
00002b60  6e 0a 20 20 20 20 20 20  20 20 0a 20 20 20 20 20  |n.        .     |
00002b70  20 20 20 30 20 20 20 20  20 20 20 32 20 20 20 20  |   0       2    |
00002b80  20 20 20 48 50 43 20 73  65 72 76 69 63 65 20 49  |   HPC service I|
00002b90  44 2e 0a 20 20 20 20 20  20 20 20 32 20 20 20 20  |D..        2    |
00002ba0  20 20 20 32 20 20 20 20  20 20 20 52 65 61 73 6f  |   2       Reaso|
00002bb0  6e 20 63 6f 64 65 20 3d  20 26 30 30 30 46 2e 0a  |n code = &000F..|
00002bc0  20 20 20 20 20 20 20 20  34 20 20 20 20 20 20 20  |        4       |
00002bd0  31 20 20 20 20 20 20 20  44 72 69 76 65 20 6e 75  |1       Drive nu|
00002be0  6d 62 65 72 20 66 6f 72  20 66 69 72 73 74 20 75  |mber for first u|
00002bf0  6e 69 74 20 6f 66 20 74  68 69 73 20 64 72 69 76  |nit of this driv|
00002c00  65 72 2e 0a 20 20 20 20  20 20 20 20 35 20 20 20  |er..        5   |
00002c10  20 20 20 20 32 35 36 20  20 20 20 20 54 65 78 74  |    256     Text|
00002c20  20 61 66 74 65 72 20 65  71 75 61 6c 73 20 73 69  | after equals si|
00002c30  67 6e 20 6f 6e 20 43 4f  4e 46 49 47 2e 53 59 53  |gn on CONFIG.SYS|
00002c40  20 6c 69 6e 65 20 74 68  61 74 20 6c 6f 61 64 65  | line that loade|
00002c50  64 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |d.              |
00002c60  20 20 20 20 20 20 20 20  20 20 74 68 69 73 20 64  |          this d|
00002c70  72 69 76 65 72 2e 0a 0a  20 20 20 20 44 61 74 61  |river...    Data|
00002c80  20 72 65 74 75 72 6e 65  64 3a 0a 20 20 20 20 0a  | returned:.    .|
00002c90  20 20 20 20 20 20 20 20  4f 66 66 73 65 74 20 20  |        Offset  |
00002ca0  53 69 7a 65 20 20 20 20  44 65 73 63 72 69 70 74  |Size    Descript|
00002cb0  69 6f 6e 0a 20 20 20 20  20 20 20 20 0a 20 20 20  |ion.        .   |
00002cc0  20 20 20 20 20 30 20 20  20 20 20 20 20 34 20 20  |     0       4  |
00002cd0  20 20 20 20 20 52 65 74  75 72 6e 20 63 6f 64 65  |     Return code|
00002ce0  2e 0a 20 20 20 20 20 20  20 20 34 20 20 20 20 20  |..        4     |
00002cf0  20 20 34 20 20 20 20 20  20 20 4e 75 6d 62 65 72  |  4       Number|
00002d00  20 6f 66 20 64 65 76 69  63 65 73 20 73 75 70 70  | of devices supp|
00002d10  6f 72 74 65 64 2e 0a 20  20 20 20 20 20 20 20 38  |orted..        8|
00002d20  20 20 20 20 20 20 20 32  35 36 20 20 20 20 20 54  |       256     T|
00002d30  65 78 74 20 6f 66 20 6d  65 73 73 61 67 65 20 74  |ext of message t|
00002d40  65 72 6d 69 6e 61 74 65  64 20 62 79 20 61 20 22  |erminated by a "|
00002d50  24 22 20 63 68 61 72 61  63 74 65 72 2e 0a 0a 0a  |$" character....|
00002d60  48 50 43 5f 41 52 4d 45  44 49 54 5f 44 45 56 49  |HPC_ARMEDIT_DEVI|
00002d70  43 45 5f 42 50 42 0a 0a  20 20 20 20 43 6f 6e 73  |CE_BPB..    Cons|
00002d80  74 72 75 63 74 20 61 20  42 49 4f 53 20 50 61 72  |truct a BIOS Par|
00002d90  61 6d 65 74 65 72 20 42  6c 6f 63 6b 20 28 42 50  |ameter Block (BP|
00002da0  42 29 20 66 6f 72 20 61  20 64 65 76 69 63 65 20  |B) for a device |
00002db0  64 72 69 76 65 72 2e 20  54 68 69 73 20 61 6c 73  |driver. This als|
00002dc0  6f 0a 20 20 20 20 69 6e  66 6f 72 6d 73 20 41 52  |o.    informs AR|
00002dd0  4d 45 64 69 74 20 74 68  61 74 20 74 68 65 20 64  |MEdit that the d|
00002de0  69 73 63 20 63 6f 6e 74  65 6e 74 73 20 63 6f 75  |isc contents cou|
00002df0  6c 64 20 62 65 20 63 68  61 6e 67 65 64 2e 0a 20  |ld be changed.. |
00002e00  20 20 20 0a 20 20 20 20  44 61 74 61 20 73 65 6e  |   .    Data sen|
00002e10  74 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |t:.    .        |
00002e20  4f 66 66 73 65 74 20 20  53 69 7a 65 20 20 20 20  |Offset  Size    |
00002e30  44 65 73 63 72 69 70 74  69 6f 6e 0a 20 20 20 20  |Description.    |
00002e40  20 20 20 20 0a 20 20 20  20 20 20 20 20 30 20 20  |    .        0  |
00002e50  20 20 20 20 20 32 20 20  20 20 20 20 20 48 50 43  |     2       HPC|
00002e60  20 73 65 72 76 69 63 65  20 49 44 2e 0a 20 20 20  | service ID..   |
00002e70  20 20 20 20 20 32 20 20  20 20 20 20 20 32 20 20  |     2       2  |
00002e80  20 20 20 20 20 52 65 61  73 6f 6e 20 63 6f 64 65  |     Reason code|
00002e90  20 3d 20 26 30 30 31 30  2e 0a 20 20 20 20 20 20  | = &0010..      |
00002ea0  20 20 34 20 20 20 20 20  20 20 31 20 20 20 20 20  |  4       1     |
00002eb0  20 20 55 6e 69 74 20 63  6f 64 65 20 28 64 72 69  |  Unit code (dri|
00002ec0  76 65 20 6e 75 6d 62 65  72 29 2c 20 6f 72 20 2d  |ve number), or -|
00002ed0  31 20 66 6f 72 20 69 6e  69 74 69 61 6c 69 73 61  |1 for initialisa|
00002ee0  74 69 6f 6e 2e 0a 20 20  20 20 0a 20 20 20 20 44  |tion..    .    D|
00002ef0  61 74 61 20 72 65 74 75  72 6e 65 64 3a 0a 20 20  |ata returned:.  |
00002f00  20 20 0a 20 20 20 20 20  20 20 20 4f 66 66 73 65  |  .        Offse|
00002f10  74 20 20 53 69 7a 65 20  20 20 20 44 65 73 63 72  |t  Size    Descr|
00002f20  69 70 74 69 6f 6e 0a 20  20 20 20 20 20 20 20 0a  |iption.        .|
00002f30  20 20 20 20 20 20 20 20  30 20 20 20 20 20 20 20  |        0       |
00002f40  34 20 20 20 20 20 20 20  52 65 74 75 72 6e 20 63  |4       Return c|
00002f50  6f 64 65 2e 0a 20 20 20  20 20 20 20 20 34 20 20  |ode..        4  |
00002f60  20 20 20 20 20 31 33 20  20 20 20 20 20 54 68 65  |     13      The|
00002f70  20 42 49 4f 53 20 70 61  72 61 6d 65 74 65 72 20  | BIOS parameter |
00002f80  62 6c 6f 63 6b 2e 0a 0a  0a 48 50 43 5f 41 52 4d  |block....HPC_ARM|
00002f90  45 44 49 54 5f 44 45 56  49 43 45 5f 43 48 41 4e  |EDIT_DEVICE_CHAN|
00002fa0  47 45 44 0a 0a 20 20 20  20 50 65 72 66 6f 72 6d  |GED..    Perform|
00002fb0  20 61 20 6d 65 64 69 61  20 63 68 65 63 6b 20 66  | a media check f|
00002fc0  6f 72 20 61 20 64 65 76  69 63 65 20 64 72 69 76  |or a device driv|
00002fd0  65 72 2e 0a 20 20 20 20  0a 20 20 20 20 44 61 74  |er..    .    Dat|
00002fe0  61 20 73 65 6e 74 3a 0a  20 20 20 20 0a 20 20 20  |a sent:.    .   |
00002ff0  20 20 20 20 20 4f 66 66  73 65 74 20 20 53 69 7a  |     Offset  Siz|
00003000  65 20 20 20 20 44 65 73  63 72 69 70 74 69 6f 6e  |e    Description|
00003010  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00003020  20 20 30 20 20 20 20 20  20 20 32 20 20 20 20 20  |  0       2     |
00003030  20 20 48 50 43 20 73 65  72 76 69 63 65 20 49 44  |  HPC service ID|
00003040  2e 0a 20 20 20 20 20 20  20 20 32 20 20 20 20 20  |..        2     |
00003050  20 20 32 20 20 20 20 20  20 20 52 65 61 73 6f 6e  |  2       Reason|
00003060  20 63 6f 64 65 20 3d 20  26 30 30 31 31 2e 0a 20  | code = &0011.. |
00003070  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 31  |       4       1|
00003080  20 20 20 20 20 20 20 55  6e 69 74 20 63 6f 64 65  |       Unit code|
00003090  20 28 64 72 69 76 65 20  6e 75 6d 62 65 72 29 2e  | (drive number).|
000030a0  0a 20 20 20 20 0a 20 20  20 20 44 61 74 61 20 72  |.    .    Data r|
000030b0  65 74 75 72 6e 65 64 3a  0a 20 20 20 20 0a 20 20  |eturned:.    .  |
000030c0  20 20 20 20 20 20 4f 66  66 73 65 74 20 20 53 69  |      Offset  Si|
000030d0  7a 65 20 20 20 20 44 65  73 63 72 69 70 74 69 6f  |ze    Descriptio|
000030e0  6e 0a 20 20 20 20 20 20  20 20 0a 20 20 20 20 20  |n.        .     |
000030f0  20 20 20 30 20 20 20 20  20 20 20 34 20 20 20 20  |   0       4    |
00003100  20 20 20 52 65 74 75 72  6e 20 63 6f 64 65 2e 0a  |   Return code..|
00003110  20 20 20 20 20 20 20 20  34 20 20 20 20 20 20 20  |        4       |
00003120  34 20 20 20 20 20 20 20  54 68 65 20 6d 65 64 69  |4       The medi|
00003130  61 20 63 68 61 6e 67 65  20 63 6f 64 65 3a 0a 20  |a change code:. |
00003140  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003150  20 20 20 20 20 20 20 20  20 20 20 2d 31 20 20 44  |           -1  D|
00003160  69 73 63 20 68 61 73 20  62 65 65 6e 20 63 68 61  |isc has been cha|
00003170  6e 67 65 64 2e 0a 20 20  20 20 20 20 20 20 20 20  |nged..          |
00003180  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003190  20 20 30 20 20 20 44 6f  6e 27 74 20 6b 6e 6f 77  |  0   Don't know|
000031a0  20 69 66 20 64 69 73 63  20 68 61 73 20 62 65 65  | if disc has bee|
000031b0  6e 20 63 68 61 6e 67 65  64 2e 0a 20 20 20 20 20  |n changed..     |
000031c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000031d0  20 20 20 20 20 20 20 31  20 20 20 44 69 73 63 20  |       1   Disc |
000031e0  68 61 73 20 6e 6f 74 20  62 65 65 6e 20 63 68 61  |has not been cha|
000031f0  6e 67 65 64 2e 0a 0a 0a  48 50 43 5f 41 52 4d 45  |nged....HPC_ARME|
00003200  44 49 54 5f 44 45 56 49  43 45 5f 52 45 41 44 0a  |DIT_DEVICE_READ.|
00003210  20 20 20 20 0a 20 20 20  20 52 65 61 64 20 61 6e  |    .    Read an|
00003220  20 65 6d 75 6c 61 74 65  64 20 64 69 73 63 20 73  | emulated disc s|
00003230  65 63 74 6f 72 20 66 6f  72 20 61 20 64 65 76 69  |ector for a devi|
00003240  63 65 20 64 72 69 76 65  72 2e 0a 20 20 20 20 0a  |ce driver..    .|
00003250  20 20 20 20 44 61 74 61  20 73 65 6e 74 3a 0a 20  |    Data sent:. |
00003260  20 20 20 0a 20 20 20 20  20 20 20 20 4f 66 66 73  |   .        Offs|
00003270  65 74 20 20 53 69 7a 65  20 20 20 20 44 65 73 63  |et  Size    Desc|
00003280  72 69 70 74 69 6f 6e 0a  20 20 20 20 20 20 20 20  |ription.        |
00003290  0a 20 20 20 20 20 20 20  20 30 20 20 20 20 20 20  |.        0      |
000032a0  20 32 20 20 20 20 20 20  20 48 50 43 20 73 65 72  | 2       HPC ser|
000032b0  76 69 63 65 20 49 44 2e  0a 20 20 20 20 20 20 20  |vice ID..       |
000032c0  20 32 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 2       2      |
000032d0  20 52 65 61 73 6f 6e 20  63 6f 64 65 20 3d 20 26  | Reason code = &|
000032e0  30 30 31 32 2e 0a 20 20  20 20 20 20 20 20 34 20  |0012..        4 |
000032f0  20 20 20 20 20 20 31 20  20 20 20 20 20 20 55 6e  |      1       Un|
00003300  69 74 20 63 6f 64 65 20  28 64 72 69 76 65 20 6e  |it code (drive n|
00003310  75 6d 62 65 72 29 2e 0a  20 20 20 20 20 20 20 20  |umber)..        |
00003320  35 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |5       2       |
00003330  53 65 63 74 6f 72 20 6e  75 6d 62 65 72 2e 0a 20  |Sector number.. |
00003340  20 20 20 0a 20 20 20 20  44 61 74 61 20 72 65 74  |   .    Data ret|
00003350  75 72 6e 65 64 3a 0a 20  20 20 20 0a 20 20 20 20  |urned:.    .    |
00003360  20 20 20 20 4f 66 66 73  65 74 20 20 53 69 7a 65  |    Offset  Size|
00003370  20 20 20 20 44 65 73 63  72 69 70 74 69 6f 6e 0a  |    Description.|
00003380  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00003390  20 30 20 20 20 20 20 20  20 34 20 20 20 20 20 20  | 0       4      |
000033a0  20 52 65 74 75 72 6e 20  63 6f 64 65 2e 0a 20 20  | Return code..  |
000033b0  20 20 20 20 20 20 34 20  20 20 20 20 20 20 6e 20  |      4       n |
000033c0  20 20 20 20 20 20 54 68  65 20 64 61 74 61 20 72  |      The data r|
000033d0  65 61 64 20 66 72 6f 6d  20 74 68 65 20 73 65 63  |ead from the sec|
000033e0  74 6f 72 2e 0a 0a 0a 48  50 43 5f 41 52 4d 45 44  |tor....HPC_ARMED|
000033f0  49 54 5f 44 45 56 49 43  45 5f 57 52 49 54 45 0a  |IT_DEVICE_WRITE.|
00003400  20 20 20 20 0a 20 20 20  20 57 72 69 74 65 20 61  |    .    Write a|
00003410  6e 20 65 6d 75 6c 61 74  65 64 20 64 69 73 63 20  |n emulated disc |
00003420  73 65 63 74 6f 72 20 66  6f 72 20 61 20 64 65 76  |sector for a dev|
00003430  69 63 65 20 64 72 69 76  65 72 2e 0a 20 20 20 20  |ice driver..    |
00003440  0a 20 20 20 20 44 61 74  61 20 73 65 6e 74 3a 0a  |.    Data sent:.|
00003450  20 20 20 20 0a 20 20 20  20 20 20 20 20 4f 66 66  |    .        Off|
00003460  73 65 74 20 20 53 69 7a  65 20 20 20 20 44 65 73  |set  Size    Des|
00003470  63 72 69 70 74 69 6f 6e  0a 20 20 20 20 20 20 20  |cription.       |
00003480  20 0a 20 20 20 20 20 20  20 20 30 20 20 20 20 20  | .        0     |
00003490  20 20 32 20 20 20 20 20  20 20 48 50 43 20 73 65  |  2       HPC se|
000034a0  72 76 69 63 65 20 49 44  2e 0a 20 20 20 20 20 20  |rvice ID..      |
000034b0  20 20 32 20 20 20 20 20  20 20 32 20 20 20 20 20  |  2       2     |
000034c0  20 20 52 65 61 73 6f 6e  20 63 6f 64 65 20 3d 20  |  Reason code = |
000034d0  26 30 30 31 33 2e 0a 20  20 20 20 20 20 20 20 34  |&0013..        4|
000034e0  20 20 20 20 20 20 20 31  20 20 20 20 20 20 20 55  |       1       U|
000034f0  6e 69 74 20 63 6f 64 65  20 28 64 72 69 76 65 20  |nit code (drive |
00003500  6e 75 6d 62 65 72 29 2e  0a 20 20 20 20 20 20 20  |number)..       |
00003510  20 35 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 5       2      |
00003520  20 53 65 63 74 6f 72 20  6e 75 6d 62 65 72 2e 0a  | Sector number..|
00003530  20 20 20 20 20 20 20 20  37 20 20 20 20 20 20 20  |        7       |
00003540  31 20 20 20 20 20 20 20  44 75 6d 6d 79 20 64 61  |1       Dummy da|
00003550  74 61 20 74 6f 20 70 61  64 20 74 6f 20 77 6f 72  |ta to pad to wor|
00003560  64 20 62 6f 75 6e 64 61  72 79 2e 0a 20 20 20 20  |d boundary..    |
00003570  20 20 20 20 38 20 20 20  20 20 20 20 6e 20 20 20  |    8       n   |
00003580  20 20 20 20 54 68 65 20  64 61 74 61 20 74 6f 20  |    The data to |
00003590  77 72 69 74 65 20 74 6f  20 74 68 65 20 73 65 63  |write to the sec|
000035a0  74 6f 72 2e 0a 20 20 20  20 0a 20 20 20 20 44 61  |tor..    .    Da|
000035b0  74 61 20 72 65 74 75 72  6e 65 64 3a 0a 20 20 20  |ta returned:.   |
000035c0  20 0a 20 20 20 20 20 20  20 20 4f 66 66 73 65 74  | .        Offset|
000035d0  20 20 53 69 7a 65 20 20  20 20 44 65 73 63 72 69  |  Size    Descri|
000035e0  70 74 69 6f 6e 0a 0a 20  20 20 20 20 20 20 20 30  |ption..        0|
000035f0  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 52  |       4       R|
00003600  65 74 75 72 6e 20 63 6f  64 65 2e 0a 0a 0a 48 50  |eturn code....HP|
00003610  43 5f 41 52 4d 45 44 49  54 5f 44 41 54 45 5f 54  |C_ARMEDIT_DATE_T|
00003620  4f 5f 44 4f 53 0a 0a 20  20 20 20 43 6f 6e 76 65  |O_DOS..    Conve|
00003630  72 74 20 61 20 74 69 6d  65 20 61 6e 64 20 64 61  |rt a time and da|
00003640  74 65 20 66 72 6f 6d 20  74 68 65 20 73 74 61 6e  |te from the stan|
00003650  64 61 72 64 20 52 49 53  43 20 4f 53 20 35 20 62  |dard RISC OS 5 b|
00003660  79 74 65 73 20 66 6f 72  6d 61 74 20 74 6f 20 74  |ytes format to t|
00003670  68 65 0a 20 20 20 20 34  20 62 79 74 65 20 44 4f  |he.    4 byte DO|
00003680  53 20 65 71 75 69 76 61  6c 65 6e 74 2e 0a 20 20  |S equivalent..  |
00003690  20 20 0a 20 20 20 20 44  61 74 61 20 73 65 6e 74  |  .    Data sent|
000036a0  3a 0a 20 20 20 20 0a 20  20 20 20 20 20 20 20 4f  |:.    .        O|
000036b0  66 66 73 65 74 20 20 53  69 7a 65 20 20 20 20 44  |ffset  Size    D|
000036c0  65 73 63 72 69 70 74 69  6f 6e 0a 20 20 20 20 20  |escription.     |
000036d0  20 20 20 0a 20 20 20 20  20 20 20 20 30 20 20 20  |   .        0   |
000036e0  20 20 20 20 32 20 20 20  20 20 20 20 48 50 43 20  |    2       HPC |
000036f0  73 65 72 76 69 63 65 20  49 44 2e 0a 20 20 20 20  |service ID..    |
00003700  20 20 20 20 32 20 20 20  20 20 20 20 32 20 20 20  |    2       2   |
00003710  20 20 20 20 52 65 61 73  6f 6e 20 63 6f 64 65 20  |    Reason code |
00003720  3d 20 26 30 30 31 34 2e  0a 20 20 20 20 20 20 20  |= &0014..       |
00003730  20 34 20 20 20 20 20 20  20 35 20 20 20 20 20 20  | 4       5      |
00003740  20 43 65 6e 74 69 73 65  63 6f 6e 64 73 20 73 69  | Centiseconds si|
00003750  6e 63 65 20 30 30 3a 30  30 3a 30 30 20 6f 6e 20  |nce 00:00:00 on |
00003760  4a 61 6e 75 61 72 79 20  31 20 31 39 30 30 2e 0a  |January 1 1900..|
00003770  20 20 20 20 0a 20 20 20  20 44 61 74 61 20 72 65  |    .    Data re|
00003780  74 75 72 6e 65 64 3a 0a  20 20 20 20 0a 20 20 20  |turned:.    .   |
00003790  20 20 20 20 20 4f 66 66  73 65 74 20 20 53 69 7a  |     Offset  Siz|
000037a0  65 20 20 20 20 44 65 73  63 72 69 70 74 69 6f 6e  |e    Description|
000037b0  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
000037c0  20 20 30 20 20 20 20 20  20 20 34 20 20 20 20 20  |  0       4     |
000037d0  20 20 52 65 74 75 72 6e  20 63 6f 64 65 2e 0a 20  |  Return code.. |
000037e0  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 34  |       4       4|
000037f0  20 20 20 20 20 20 20 32  20 62 79 74 65 20 74 69  |       2 byte ti|
00003800  6d 65 20 28 68 68 68 68  68 6d 6d 6d 6d 6d 6d 73  |me (hhhhhmmmmmms|
00003810  73 73 73 73 29 2e 0a 20  20 20 20 20 20 20 20 38  |ssss)..        8|
00003820  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 32  |       4       2|
00003830  20 62 79 74 65 20 64 61  74 65 20 28 79 79 79 79  | byte date (yyyy|
00003840  79 79 79 6d 6d 6d 6d 64  64 64 64 64 29 2e 0a 20  |yyymmmmddddd).. |
00003850  20 20 20 0a 0a 48 50 43  5f 41 52 4d 45 44 49 54  |   ..HPC_ARMEDIT|
00003860  5f 44 41 54 45 5f 54 4f  5f 52 49 53 43 4f 53 0a  |_DATE_TO_RISCOS.|
00003870  0a 20 20 20 20 43 6f 6e  76 65 72 74 20 61 20 74  |.    Convert a t|
00003880  69 6d 65 20 61 6e 64 20  64 61 74 65 20 66 72 6f  |ime and date fro|
00003890  6d 20 74 68 65 20 73 74  61 6e 64 61 72 64 20 44  |m the standard D|
000038a0  4f 53 20 34 20 62 79 74  65 20 66 6f 72 6d 61 74  |OS 4 byte format|
000038b0  20 74 6f 20 74 68 65 20  35 20 62 79 74 65 0a 20  | to the 5 byte. |
000038c0  20 20 20 52 49 53 43 20  4f 53 20 65 71 75 69 76  |   RISC OS equiv|
000038d0  61 6c 65 6e 74 2e 0a 20  20 20 20 0a 20 20 20 20  |alent..    .    |
000038e0  44 61 74 61 20 73 65 6e  74 3a 0a 20 20 20 20 0a  |Data sent:.    .|
000038f0  20 20 20 20 20 20 20 20  4f 66 66 73 65 74 20 20  |        Offset  |
00003900  53 69 7a 65 20 20 20 20  44 65 73 63 72 69 70 74  |Size    Descript|
00003910  69 6f 6e 0a 20 20 20 20  20 20 20 20 0a 20 20 20  |ion.        .   |
00003920  20 20 20 20 20 30 20 20  20 20 20 20 20 32 20 20  |     0       2  |
00003930  20 20 20 20 20 48 50 43  20 73 65 72 76 69 63 65  |     HPC service|
00003940  20 49 44 2e 0a 20 20 20  20 20 20 20 20 32 20 20  | ID..        2  |
00003950  20 20 20 20 20 32 20 20  20 20 20 20 20 52 65 61  |     2       Rea|
00003960  73 6f 6e 20 63 6f 64 65  20 3d 20 26 30 30 31 35  |son code = &0015|
00003970  2e 0a 20 20 20 20 20 20  20 20 34 20 20 20 20 20  |..        4     |
00003980  20 20 32 20 20 20 20 20  20 20 32 20 62 79 74 65  |  2       2 byte|
00003990  20 74 69 6d 65 20 28 68  68 68 68 68 6d 6d 6d 6d  | time (hhhhhmmmm|
000039a0  6d 6d 73 73 73 73 73 29  2e 0a 20 20 20 20 20 20  |mmsssss)..      |
000039b0  20 20 36 20 20 20 20 20  20 20 32 20 20 20 20 20  |  6       2     |
000039c0  20 20 32 20 62 79 74 65  20 64 61 74 65 20 28 79  |  2 byte date (y|
000039d0  79 79 79 79 79 79 6d 6d  6d 6d 64 64 64 64 64 29  |yyyyyymmmmddddd)|
000039e0  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
000039f0  72 65 74 75 72 6e 65 64  3a 0a 20 20 20 20 0a 20  |returned:.    . |
00003a00  20 20 20 20 20 20 20 4f  66 66 73 65 74 20 20 53  |       Offset  S|
00003a10  69 7a 65 20 20 20 20 44  65 73 63 72 69 70 74 69  |ize    Descripti|
00003a20  6f 6e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |on.        .    |
00003a30  20 20 20 20 30 20 20 20  20 20 20 20 34 20 20 20  |    0       4   |
00003a40  20 20 20 20 52 65 74 75  72 6e 20 63 6f 64 65 2e  |    Return code.|
00003a50  0a 20 20 20 20 20 20 20  20 34 20 20 20 20 20 20  |.        4      |
00003a60  20 35 20 20 20 20 20 20  20 43 65 6e 74 69 73 65  | 5       Centise|
00003a70  63 6f 6e 64 73 20 73 69  6e 63 65 20 30 30 3a 30  |conds since 00:0|
00003a80  30 3a 30 30 20 6f 6e 20  4a 61 6e 75 61 72 79 20  |0:00 on January |
00003a90  31 20 31 39 30 30 2e 0a  0a 0a 48 50 43 5f 41 52  |1 1900....HPC_AR|
00003aa0  4d 45 44 49 54 5f 4f 53  43 4c 49 5f 53 54 41 52  |MEDIT_OSCLI_STAR|
00003ab0  54 0a 0a 20 20 20 20 53  74 61 72 74 20 65 78 65  |T..    Start exe|
00003ac0  63 75 74 69 6e 67 20 61  20 73 70 65 63 69 66 69  |cuting a specifi|
00003ad0  65 64 20 2a 63 6f 6d 6d  61 6e 64 2e 20 54 68 65  |ed *command. The|
00003ae0  20 69 6e 70 75 74 20 61  6e 64 20 6f 75 74 70 75  | input and outpu|
00003af0  74 20 66 72 6f 6d 20 74  68 65 0a 20 20 20 20 63  |t from the.    c|
00003b00  6f 6d 6d 61 6e 64 20 61  72 65 20 72 65 64 69 72  |ommand are redir|
00003b10  65 63 74 65 64 2e 0a 20  20 20 20 0a 20 20 20 20  |ected..    .    |
00003b20  44 61 74 61 20 73 65 6e  74 3a 0a 20 20 20 20 0a  |Data sent:.    .|
00003b30  20 20 20 20 20 20 20 20  4f 66 66 73 65 74 20 20  |        Offset  |
00003b40  53 69 7a 65 20 20 20 20  44 65 73 63 72 69 70 74  |Size    Descript|
00003b50  69 6f 6e 0a 20 20 20 20  20 20 20 20 0a 20 20 20  |ion.        .   |
00003b60  20 20 20 20 20 30 20 20  20 20 20 20 20 32 20 20  |     0       2  |
00003b70  20 20 20 20 20 48 50 43  20 73 65 72 76 69 63 65  |     HPC service|
00003b80  20 49 44 2e 0a 20 20 20  20 20 20 20 20 32 20 20  | ID..        2  |
00003b90  20 20 20 20 20 32 20 20  20 20 20 20 20 52 65 61  |     2       Rea|
00003ba0  73 6f 6e 20 63 6f 64 65  20 3d 20 26 30 30 31 36  |son code = &0016|
00003bb0  2e 0a 20 20 20 20 20 20  20 20 34 20 20 20 20 20  |..        4     |
00003bc0  20 20 32 35 36 20 20 20  20 20 54 68 65 20 63 6f  |  256     The co|
00003bd0  6d 6d 61 6e 64 20 74 6f  20 65 78 65 63 75 74 65  |mmand to execute|
00003be0  2e 0a 0a 20 20 20 20 44  61 74 61 20 72 65 74 75  |...    Data retu|
00003bf0  72 6e 65 64 3a 0a 20 20  20 20 0a 20 20 20 20 20  |rned:.    .     |
00003c00  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
00003c10  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
00003c20  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
00003c30  30 20 20 20 20 20 20 20  34 20 20 20 20 20 20 20  |0       4       |
00003c40  52 65 74 75 72 6e 20 63  6f 64 65 2e 0a 20 20 20  |Return code..   |
00003c50  20 20 20 20 20 34 20 20  20 20 20 20 20 34 20 20  |     4       4  |
00003c60  20 20 20 20 20 48 61 6e  64 6c 65 20 66 6f 72 20  |     Handle for |
00003c70  74 68 69 73 20 63 6f 6d  6d 61 6e 64 2e 0a 0a 0a  |this command....|
00003c80  48 50 43 5f 41 52 4d 45  44 49 54 5f 4f 53 43 4c  |HPC_ARMEDIT_OSCL|
00003c90  49 5f 50 4f 4c 4c 0a 0a  20 20 20 20 43 6f 6e 74  |I_POLL..    Cont|
00003ca0  69 6e 75 65 20 65 78 65  63 75 74 69 6f 6e 20 6f  |inue execution o|
00003cb0  66 20 61 20 2a 63 6f 6d  6d 61 6e 64 2e 20 54 68  |f a *command. Th|
00003cc0  69 73 20 73 68 6f 75 6c  64 20 6f 6e 6c 79 20 69  |is should only i|
00003cd0  6e 63 6c 75 64 65 20 69  6e 70 75 74 20 64 61 74  |nclude input dat|
00003ce0  61 20 69 66 0a 20 20 20  20 72 65 71 75 65 73 74  |a if.    request|
00003cf0  65 64 20 62 79 20 74 68  65 20 70 72 65 76 69 6f  |ed by the previo|
00003d00  75 73 20 48 50 43 5f 41  52 4d 45 44 49 54 5f 4f  |us HPC_ARMEDIT_O|
00003d10  53 43 4c 49 5f 50 4f 4c  4c 20 72 65 70 6c 79 2c  |SCLI_POLL reply,|
00003d20  20 6f 74 68 65 72 77 69  73 65 0a 20 20 20 20 63  | otherwise.    c|
00003d30  68 61 72 61 63 74 65 72  73 20 6d 61 79 20 67 65  |haracters may ge|
00003d40  74 20 6c 6f 73 74 2e 0a  20 20 20 20 0a 20 20 20  |t lost..    .   |
00003d50  20 44 61 74 61 20 73 65  6e 74 3a 0a 20 20 20 20  | Data sent:.    |
00003d60  0a 20 20 20 20 20 20 20  20 4f 66 66 73 65 74 20  |.        Offset |
00003d70  20 53 69 7a 65 20 20 20  20 44 65 73 63 72 69 70  | Size    Descrip|
00003d80  74 69 6f 6e 0a 20 20 20  20 20 20 20 20 0a 20 20  |tion.        .  |
00003d90  20 20 20 20 20 20 30 20  20 20 20 20 20 20 32 20  |      0       2 |
00003da0  20 20 20 20 20 20 48 50  43 20 73 65 72 76 69 63  |      HPC servic|
00003db0  65 20 49 44 2e 0a 20 20  20 20 20 20 20 20 32 20  |e ID..        2 |
00003dc0  20 20 20 20 20 20 32 20  20 20 20 20 20 20 52 65  |      2       Re|
00003dd0  61 73 6f 6e 20 63 6f 64  65 20 3d 20 26 30 30 31  |ason code = &001|
00003de0  37 2e 0a 20 20 20 20 20  20 20 20 34 20 20 20 20  |7..        4    |
00003df0  20 20 20 34 20 20 20 20  20 20 20 43 6f 6d 6d 61  |   4       Comma|
00003e00  6e 64 20 68 61 6e 64 6c  65 2e 0a 20 20 20 20 20  |nd handle..     |
00003e10  20 20 20 38 20 20 20 20  20 20 20 34 20 20 20 20  |   8       4    |
00003e20  20 20 20 4e 75 6d 62 65  72 20 6f 66 20 62 79 74  |   Number of byt|
00003e30  65 73 20 74 6f 20 69 6e  70 75 74 2e 0a 20 20 20  |es to input..   |
00003e40  20 20 20 20 20 31 32 20  20 20 20 20 20 32 35 36  |     12      256|
00003e50  20 20 20 20 20 55 70 20  74 6f 20 32 35 36 20 62  |     Up to 256 b|
00003e60  79 74 65 73 20 6f 66 20  69 6e 70 75 74 2e 0a 0a  |ytes of input...|
00003e70  20 20 20 20 44 61 74 61  20 72 65 74 75 72 6e 65  |    Data returne|
00003e80  64 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |d:.    .        |
00003e90  4f 66 66 73 65 74 20 20  53 69 7a 65 20 20 20 20  |Offset  Size    |
00003ea0  44 65 73 63 72 69 70 74  69 6f 6e 0a 20 20 20 20  |Description.    |
00003eb0  20 20 20 20 0a 20 20 20  20 20 20 20 20 30 20 20  |    .        0  |
00003ec0  20 20 20 20 20 34 20 20  20 20 20 20 20 52 65 74  |     4       Ret|
00003ed0  75 72 6e 20 63 6f 64 65  2e 0a 20 20 20 20 20 20  |urn code..      |
00003ee0  20 20 34 20 20 20 20 20  20 20 34 20 20 20 20 20  |  4       4     |
00003ef0  20 20 53 74 61 74 75 73  3a 0a 20 20 20 20 20 20  |  Status:.      |
00003f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003f10  20 20 20 20 20 20 30 20  20 20 41 63 74 69 76 65  |      0   Active|
00003f20  2e 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00003f30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 31 20  |              1 |
00003f40  20 20 43 6f 6d 6d 61 6e  64 20 68 61 73 20 66 69  |  Command has fi|
00003f50  6e 69 73 68 65 64 2e 0a  20 20 20 20 20 20 20 20  |nished..        |
00003f60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003f70  20 20 20 20 32 20 20 20  57 61 69 74 69 6e 67 20  |    2   Waiting |
00003f80  66 6f 72 20 69 6e 70 75  74 2e 0a 20 20 20 20 20  |for input..     |
00003f90  20 20 20 38 20 20 20 20  20 20 20 34 20 20 20 20  |   8       4    |
00003fa0  20 20 20 4e 75 6d 62 65  72 20 6f 66 20 62 79 74  |   Number of byt|
00003fb0  65 73 20 74 6f 20 6f 75  74 70 75 74 2e 0a 20 20  |es to output..  |
00003fc0  20 20 20 20 20 20 31 32  20 20 20 20 20 20 32 35  |      12      25|
00003fd0  36 20 20 20 20 20 55 70  20 74 6f 20 32 35 36 20  |6     Up to 256 |
00003fe0  62 79 74 65 73 20 6f 66  20 6f 75 74 70 75 74 2e  |bytes of output.|
00003ff0  0a 0a 0a 48 50 43 5f 41  52 4d 45 44 49 54 5f 4f  |...HPC_ARMEDIT_O|
00004000  53 43 4c 49 5f 45 4e 44  0a 0a 20 20 20 20 54 65  |SCLI_END..    Te|
00004010  72 6d 69 6e 61 74 65 20  65 78 65 63 75 74 69 6f  |rminate executio|
00004020  6e 20 6f 66 20 61 20 2a  63 6f 6d 6d 61 6e 64 2e  |n of a *command.|
00004030  0a 20 20 20 20 0a 20 20  20 20 44 61 74 61 20 73  |.    .    Data s|
00004040  65 6e 74 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ent:.    .      |
00004050  20 20 4f 66 66 73 65 74  20 20 53 69 7a 65 20 20  |  Offset  Size  |
00004060  20 20 44 65 73 63 72 69  70 74 69 6f 6e 0a 20 20  |  Description.  |
00004070  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 30  |      .        0|
00004080  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 48  |       2       H|
00004090  50 43 20 73 65 72 76 69  63 65 20 49 44 2e 0a 20  |PC service ID.. |
000040a0  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 32  |       2       2|
000040b0  20 20 20 20 20 20 20 52  65 61 73 6f 6e 20 63 6f  |       Reason co|
000040c0  64 65 20 3d 20 26 30 30  31 38 2e 0a 20 20 20 20  |de = &0018..    |
000040d0  20 20 20 20 34 20 20 20  20 20 20 20 34 20 20 20  |    4       4   |
000040e0  20 20 20 20 43 6f 6d 6d  61 6e 64 20 68 61 6e 64  |    Command hand|
000040f0  6c 65 2e 0a 0a 20 20 20  20 44 61 74 61 20 72 65  |le...    Data re|
00004100  74 75 72 6e 65 64 3a 0a  20 20 20 20 0a 20 20 20  |turned:.    .   |
00004110  20 20 20 20 20 4f 66 66  73 65 74 20 20 53 69 7a  |     Offset  Siz|
00004120  65 20 20 20 20 44 65 73  63 72 69 70 74 69 6f 6e  |e    Description|
00004130  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00004140  20 20 30 20 20 20 20 20  20 20 34 20 20 20 20 20  |  0       4     |
00004150  20 20 52 65 74 75 72 6e  20 63 6f 64 65 2e 0a 20  |  Return code.. |
00004160  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 32  |       4       2|
00004170  35 36 20 20 20 20 20 52  49 53 43 20 4f 53 20 73  |56     RISC OS s|
00004180  74 79 6c 65 20 65 72 72  6f 72 20 62 6c 6f 63 6b  |tyle error block|
00004190  20 72 65 74 75 72 6e 65  64 20 62 79 20 74 68 65  | returned by the|
000041a0  20 63 6f 6d 6d 61 6e 64  20 69 66 0a 20 20 20 20  | command if.    |
000041b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000041c0  20 20 20 20 74 68 65 20  72 65 74 75 72 6e 20 63  |    the return c|
000041d0  6f 64 65 20 69 73 20 26  30 30 30 31 2e 0a 20 20  |ode is &0001..  |
000041e0  20 20 20 20 20 20 0a 0a  48 50 43 5f 41 52 4d 45  |      ..HPC_ARME|
000041f0  44 49 54 5f 54 41 4c 4b  5f 52 45 50 4c 59 0a 0a  |DIT_TALK_REPLY..|
00004200  20 20 20 20 52 65 70 6c  79 20 74 6f 20 61 20 6d  |    Reply to a m|
00004210  65 73 73 61 67 65 20 66  72 6f 6d 20 61 6e 6f 74  |essage from anot|
00004220  68 65 72 20 63 6c 69 65  6e 74 20 74 61 73 6b 2e  |her client task.|
00004230  20 54 68 69 73 20 69 73  20 6c 69 6b 65 0a 20 20  | This is like.  |
00004240  20 20 48 50 43 5f 41 52  4d 45 44 49 54 5f 54 41  |  HPC_ARMEDIT_TA|
00004250  4c 4b 5f 54 58 2c 20 65  78 63 65 70 74 20 74 68  |LK_TX, except th|
00004260  61 74 20 74 68 65 20 6d  65 73 73 61 67 65 20 69  |at the message i|
00004270  73 20 73 74 6f 72 65 64  20 69 6e 20 74 68 65 20  |s stored in the |
00004280  64 65 73 74 69 6e 61 74  69 6f 6e 0a 20 20 20 20  |destination.    |
00004290  74 61 73 6b 27 73 20 62  75 66 66 65 72 2e 0a 20  |task's buffer.. |
000042a0  20 20 20 0a 20 20 20 20  44 61 74 61 20 73 65 6e  |   .    Data sen|
000042b0  74 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |t:.    .        |
000042c0  4f 66 66 73 65 74 20 20  53 69 7a 65 20 20 20 20  |Offset  Size    |
000042d0  44 65 73 63 72 69 70 74  69 6f 6e 0a 20 20 20 20  |Description.    |
000042e0  20 20 20 20 0a 20 20 20  20 20 20 20 20 30 20 20  |    .        0  |
000042f0  20 20 20 20 20 32 20 20  20 20 20 20 20 48 50 43  |     2       HPC|
00004300  20 73 65 72 76 69 63 65  20 49 44 2e 0a 20 20 20  | service ID..   |
00004310  20 20 20 20 20 32 20 20  20 20 20 20 20 32 20 20  |     2       2  |
00004320  20 20 20 20 20 52 65 61  73 6f 6e 20 63 6f 64 65  |     Reason code|
00004330  20 3d 20 26 30 30 31 39  2e 0a 20 20 20 20 20 20  | = &0019..      |
00004340  20 20 34 20 20 20 20 20  20 20 34 20 20 20 20 20  |  4       4     |
00004350  20 20 43 6c 69 65 6e 74  20 68 61 6e 64 6c 65 20  |  Client handle |
00004360  66 6f 72 20 74 68 69 73  20 74 61 73 6b 2e 0a 20  |for this task.. |
00004370  20 20 20 20 20 20 20 38  20 20 20 20 20 20 20 34  |       8       4|
00004380  20 20 20 20 20 20 20 54  68 65 20 63 6c 69 65 6e  |       The clien|
00004390  74 20 68 61 6e 64 6c 65  20 66 6f 72 20 74 68 65  |t handle for the|
000043a0  20 72 65 63 69 70 69 65  6e 74 2e 0a 20 20 20 20  | recipient..    |
000043b0  20 20 20 20 31 32 20 20  20 20 20 20 31 30 32 34  |    12      1024|
000043c0  20 20 20 20 54 68 65 20  6d 65 73 73 61 67 65 20  |    The message |
000043d0  74 6f 20 73 65 6e 64 2e  0a 20 20 20 20 0a 20 20  |to send..    .  |
000043e0  20 20 44 61 74 61 20 72  65 74 75 72 6e 65 64 3a  |  Data returned:|
000043f0  0a 20 20 20 20 0a 20 20  20 20 20 20 20 20 4f 66  |.    .        Of|
00004400  66 73 65 74 20 20 53 69  7a 65 20 20 20 20 44 65  |fset  Size    De|
00004410  73 63 72 69 70 74 69 6f  6e 0a 20 20 20 20 20 20  |scription.      |
00004420  20 20 0a 20 20 20 20 20  20 20 20 30 20 20 20 20  |  .        0    |
00004430  20 20 20 34 20 20 20 20  20 20 20 52 65 74 75 72  |   4       Retur|
00004440  6e 20 63 6f 64 65 2e 0a  0a 0a 48 50 43 5f 41 52  |n code....HPC_AR|
00004450  4d 45 44 49 54 5f 46 41  53 54 45 52 0a 0a 20 20  |MEDIT_FASTER..  |
00004460  20 20 50 72 65 76 65 6e  74 20 6d 75 6c 74 69 74  |  Prevent multit|
00004470  61 73 6b 69 6e 67 20 74  6f 20 73 70 65 65 64 20  |asking to speed |
00004480  75 70 20 6f 70 65 72 61  74 69 6f 6e 73 2e 20 54  |up operations. T|
00004490  68 69 73 20 73 68 6f 75  6c 64 20 62 65 20 63 61  |his should be ca|
000044a0  6c 6c 65 64 20 74 6f 0a  20 20 20 20 72 65 65 6e  |lled to.    reen|
000044b0  61 62 6c 65 20 6e 6f 72  6d 61 6c 20 6f 70 65 72  |able normal oper|
000044c0  61 74 69 6f 6e 20 61 66  74 65 72 20 74 68 65 20  |ation after the |
000044d0  6f 70 65 72 61 74 69 6f  6e 20 69 73 20 63 6f 6d  |operation is com|
000044e0  70 6c 65 74 65 64 2e 20  41 20 73 65 6e 73 69 62  |pleted. A sensib|
000044f0  6c 65 0a 20 20 20 20 77  61 79 20 74 6f 20 75 73  |le.    way to us|
00004500  65 20 74 68 69 73 20 69  73 20 77 69 74 68 20 61  |e this is with a|
00004510  20 76 61 6c 75 65 20 6f  66 20 31 30 30 20 28 66  | value of 100 (f|
00004520  6f 72 20 31 20 73 65 63  6f 6e 64 29 2c 20 63 61  |or 1 second), ca|
00004530  6c 6c 65 64 20 6f 6e 20  61 0a 20 20 20 20 72 65  |lled on a.    re|
00004540  67 75 6c 61 72 20 62 61  73 69 73 20 64 75 72 69  |gular basis duri|
00004550  6e 67 20 74 68 65 20 6f  70 65 72 61 74 69 6f 6e  |ng the operation|
00004560  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00004570  73 65 6e 74 3a 0a 20 20  20 20 0a 20 20 20 20 20  |sent:.    .     |
00004580  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
00004590  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
000045a0  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
000045b0  30 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |0       2       |
000045c0  48 50 43 20 73 65 72 76  69 63 65 20 49 44 2e 0a  |HPC service ID..|
000045d0  20 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |        2       |
000045e0  32 20 20 20 20 20 20 20  52 65 61 73 6f 6e 20 63  |2       Reason c|
000045f0  6f 64 65 20 3d 20 26 30  30 31 41 2e 0a 20 20 20  |ode = &001A..   |
00004600  20 20 20 20 20 34 20 20  20 20 20 20 20 34 20 20  |     4       4  |
00004610  20 20 20 20 20 43 65 6e  74 69 73 65 63 6f 6e 64  |     Centisecond|
00004620  73 20 74 6f 20 64 69 73  61 62 6c 65 20 6d 75 6c  |s to disable mul|
00004630  74 69 74 61 73 6b 69 6e  67 20 66 6f 72 2c 20 6f  |titasking for, o|
00004640  72 20 30 20 74 6f 0a 20  20 20 20 20 20 20 20 20  |r 0 to.         |
00004650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 72  |               r|
00004660  65 73 74 6f 72 65 20 6e  6f 72 6d 61 6c 20 6f 70  |estore normal op|
00004670  65 72 61 74 69 6f 6e 2e  0a 20 20 20 20 20 20 20  |eration..       |
00004680  20 0a 20 20 20 20 44 61  74 61 20 72 65 74 75 72  | .    Data retur|
00004690  6e 65 64 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ned:.    .      |
000046a0  20 20 4f 66 66 73 65 74  20 20 53 69 7a 65 20 20  |  Offset  Size  |
000046b0  20 20 44 65 73 63 72 69  70 74 69 6f 6e 0a 20 20  |  Description.  |
000046c0  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 30  |      .        0|
000046d0  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 52  |       4       R|
000046e0  65 74 75 72 6e 20 63 6f  64 65 2e 0a 0a 0a 48 50  |eturn code....HP|
000046f0  43 5f 41 52 4d 45 44 49  54 5f 54 45 4d 50 4f 52  |C_ARMEDIT_TEMPOR|
00004700  41 52 59 0a 0a 20 20 20  20 50 72 6f 64 75 63 65  |ARY..    Produce|
00004710  20 61 20 75 6e 69 71 75  65 20 66 69 6c 65 6e 61  | a unique filena|
00004720  6d 65 20 66 6f 72 20 61  20 74 65 6d 70 6f 72 61  |me for a tempora|
00004730  72 79 20 52 49 53 43 20  4f 53 20 66 69 6c 65 2e  |ry RISC OS file.|
00004740  0a 20 20 20 20 0a 20 20  20 20 44 61 74 61 20 73  |.    .    Data s|
00004750  65 6e 74 3a 0a 20 20 20  20 0a 20 20 20 20 20 20  |ent:.    .      |
00004760  20 20 4f 66 66 73 65 74  20 20 53 69 7a 65 20 20  |  Offset  Size  |
00004770  20 20 44 65 73 63 72 69  70 74 69 6f 6e 0a 20 20  |  Description.  |
00004780  20 20 20 20 20 20 0a 20  20 20 20 20 20 20 20 30  |      .        0|
00004790  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 48  |       2       H|
000047a0  50 43 20 73 65 72 76 69  63 65 20 49 44 2e 0a 20  |PC service ID.. |
000047b0  20 20 20 20 20 20 20 32  20 20 20 20 20 20 20 32  |       2       2|
000047c0  20 20 20 20 20 20 20 52  65 61 73 6f 6e 20 63 6f  |       Reason co|
000047d0  64 65 20 3d 20 26 30 30  31 42 2e 0a 20 20 20 20  |de = &001B..    |
000047e0  20 20 20 20 0a 20 20 20  20 44 61 74 61 20 72 65  |    .    Data re|
000047f0  74 75 72 6e 65 64 3a 0a  20 20 20 20 0a 20 20 20  |turned:.    .   |
00004800  20 20 20 20 20 4f 66 66  73 65 74 20 20 53 69 7a  |     Offset  Siz|
00004810  65 20 20 20 20 44 65 73  63 72 69 70 74 69 6f 6e  |e    Description|
00004820  0a 20 20 20 20 20 20 20  20 0a 20 20 20 20 20 20  |.        .      |
00004830  20 20 30 20 20 20 20 20  20 20 34 20 20 20 20 20  |  0       4     |
00004840  20 20 52 65 74 75 72 6e  20 63 6f 64 65 2e 0a 20  |  Return code.. |
00004850  20 20 20 20 20 20 20 34  20 20 20 20 20 20 20 32  |       4       2|
00004860  35 36 20 20 20 20 20 53  75 67 67 65 73 74 65 64  |56     Suggested|
00004870  20 63 61 6e 6f 6e 69 63  61 6c 69 73 65 64 20 66  | canonicalised f|
00004880  69 6c 65 6e 61 6d 65 2e  0a 0a 0a 48 50 43 5f 41  |ilename....HPC_A|
00004890  52 4d 45 44 49 54 5f 44  45 56 49 43 45 5f 52 45  |RMEDIT_DEVICE_RE|
000048a0  41 44 5f 4c 4f 4e 47 0a  20 20 20 20 0a 20 20 20  |AD_LONG.    .   |
000048b0  20 52 65 61 64 20 61 6e  20 65 6d 75 6c 61 74 65  | Read an emulate|
000048c0  64 20 64 69 73 63 20 73  65 63 74 6f 72 20 66 6f  |d disc sector fo|
000048d0  72 20 61 20 64 65 76 69  63 65 20 64 72 69 76 65  |r a device drive|
000048e0  72 20 77 69 74 68 20 61  20 33 32 62 69 74 20 73  |r with a 32bit s|
000048f0  65 63 74 6f 72 0a 20 20  20 20 6e 75 6d 62 65 72  |ector.    number|
00004900  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00004910  73 65 6e 74 3a 0a 20 20  20 20 0a 20 20 20 20 20  |sent:.    .     |
00004920  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
00004930  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
00004940  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
00004950  30 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |0       2       |
00004960  48 50 43 20 73 65 72 76  69 63 65 20 49 44 2e 0a  |HPC service ID..|
00004970  20 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |        2       |
00004980  32 20 20 20 20 20 20 20  52 65 61 73 6f 6e 20 63  |2       Reason c|
00004990  6f 64 65 20 3d 20 26 30  30 31 43 2e 0a 20 20 20  |ode = &001C..   |
000049a0  20 20 20 20 20 34 20 20  20 20 20 20 20 31 20 20  |     4       1  |
000049b0  20 20 20 20 20 55 6e 69  74 20 63 6f 64 65 20 28  |     Unit code (|
000049c0  64 72 69 76 65 20 6e 75  6d 62 65 72 29 2e 0a 20  |drive number).. |
000049d0  20 20 20 20 20 20 20 35  20 20 20 20 20 20 20 33  |       5       3|
000049e0  20 20 20 20 20 20 20 44  75 6d 6d 79 20 64 61 74  |       Dummy dat|
000049f0  61 20 74 6f 20 70 61 64  20 74 6f 20 77 6f 72 64  |a to pad to word|
00004a00  20 62 6f 75 6e 64 61 72  79 2e 0a 20 20 20 20 20  | boundary..     |
00004a10  20 20 20 38 20 20 20 20  20 20 20 34 20 20 20 20  |   8       4    |
00004a20  20 20 20 53 65 63 74 6f  72 20 6e 75 6d 62 65 72  |   Sector number|
00004a30  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00004a40  72 65 74 75 72 6e 65 64  3a 0a 20 20 20 20 0a 20  |returned:.    . |
00004a50  20 20 20 20 20 20 20 4f  66 66 73 65 74 20 20 53  |       Offset  S|
00004a60  69 7a 65 20 20 20 20 44  65 73 63 72 69 70 74 69  |ize    Descripti|
00004a70  6f 6e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |on.        .    |
00004a80  20 20 20 20 30 20 20 20  20 20 20 20 34 20 20 20  |    0       4   |
00004a90  20 20 20 20 52 65 74 75  72 6e 20 63 6f 64 65 2e  |    Return code.|
00004aa0  0a 20 20 20 20 20 20 20  20 34 20 20 20 20 20 20  |.        4      |
00004ab0  20 6e 20 20 20 20 20 20  20 54 68 65 20 64 61 74  | n       The dat|
00004ac0  61 20 72 65 61 64 20 66  72 6f 6d 20 74 68 65 20  |a read from the |
00004ad0  73 65 63 74 6f 72 2e 0a  0a 0a 48 50 43 5f 41 52  |sector....HPC_AR|
00004ae0  4d 45 44 49 54 5f 44 45  56 49 43 45 5f 57 52 49  |MEDIT_DEVICE_WRI|
00004af0  54 45 5f 4c 4f 4e 47 0a  20 20 20 20 0a 20 20 20  |TE_LONG.    .   |
00004b00  20 57 72 69 74 65 20 61  6e 20 65 6d 75 6c 61 74  | Write an emulat|
00004b10  65 64 20 64 69 73 63 20  73 65 63 74 6f 72 20 66  |ed disc sector f|
00004b20  6f 72 20 61 20 64 65 76  69 63 65 20 64 72 69 76  |or a device driv|
00004b30  65 72 20 77 69 74 68 20  61 20 33 32 62 69 74 20  |er with a 32bit |
00004b40  73 65 63 74 6f 72 0a 20  20 20 20 6e 75 6d 62 65  |sector.    numbe|
00004b50  72 2e 0a 20 20 20 20 0a  20 20 20 20 44 61 74 61  |r..    .    Data|
00004b60  20 73 65 6e 74 3a 0a 20  20 20 20 0a 20 20 20 20  | sent:.    .    |
00004b70  20 20 20 20 4f 66 66 73  65 74 20 20 53 69 7a 65  |    Offset  Size|
00004b80  20 20 20 20 44 65 73 63  72 69 70 74 69 6f 6e 0a  |    Description.|
00004b90  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00004ba0  20 30 20 20 20 20 20 20  20 32 20 20 20 20 20 20  | 0       2      |
00004bb0  20 48 50 43 20 73 65 72  76 69 63 65 20 49 44 2e  | HPC service ID.|
00004bc0  0a 20 20 20 20 20 20 20  20 32 20 20 20 20 20 20  |.        2      |
00004bd0  20 32 20 20 20 20 20 20  20 52 65 61 73 6f 6e 20  | 2       Reason |
00004be0  63 6f 64 65 20 3d 20 26  30 30 31 44 2e 0a 20 20  |code = &001D..  |
00004bf0  20 20 20 20 20 20 34 20  20 20 20 20 20 20 31 20  |      4       1 |
00004c00  20 20 20 20 20 20 55 6e  69 74 20 63 6f 64 65 20  |      Unit code |
00004c10  28 64 72 69 76 65 20 6e  75 6d 62 65 72 29 2e 0a  |(drive number)..|
00004c20  20 20 20 20 20 20 20 20  35 20 20 20 20 20 20 20  |        5       |
00004c30  33 20 20 20 20 20 20 20  44 75 6d 6d 79 20 64 61  |3       Dummy da|
00004c40  74 61 20 74 6f 20 70 61  64 20 74 6f 20 77 6f 72  |ta to pad to wor|
00004c50  64 20 62 6f 75 6e 64 61  72 79 2e 0a 20 20 20 20  |d boundary..    |
00004c60  20 20 20 20 38 20 20 20  20 20 20 20 34 20 20 20  |    8       4   |
00004c70  20 20 20 20 53 65 63 74  6f 72 20 6e 75 6d 62 65  |    Sector numbe|
00004c80  72 2e 0a 20 20 20 20 20  20 20 20 31 32 20 20 20  |r..        12   |
00004c90  20 20 20 6e 20 20 20 20  20 20 20 54 68 65 20 64  |   n       The d|
00004ca0  61 74 61 20 74 6f 20 77  72 69 74 65 20 74 6f 20  |ata to write to |
00004cb0  74 68 65 20 73 65 63 74  6f 72 2e 0a 20 20 20 20  |the sector..    |
00004cc0  0a 20 20 20 20 44 61 74  61 20 72 65 74 75 72 6e  |.    Data return|
00004cd0  65 64 3a 0a 20 20 20 20  0a 20 20 20 20 20 20 20  |ed:.    .       |
00004ce0  20 4f 66 66 73 65 74 20  20 53 69 7a 65 20 20 20  | Offset  Size   |
00004cf0  20 44 65 73 63 72 69 70  74 69 6f 6e 0a 0a 20 20  | Description..  |
00004d00  20 20 20 20 20 20 30 20  20 20 20 20 20 20 34 20  |      0       4 |
00004d10  20 20 20 20 20 20 52 65  74 75 72 6e 20 63 6f 64  |      Return cod|
00004d20  65 2e 0a 0a 0a 48 50 43  5f 41 52 4d 45 44 49 54  |e....HPC_ARMEDIT|
00004d30  5f 44 45 56 49 43 45 5f  4f 50 45 4e 0a 0a 20 20  |_DEVICE_OPEN..  |
00004d40  20 20 41 20 66 69 6c 65  20 69 73 20 62 65 69 6e  |  A file is bein|
00004d50  67 20 6f 70 65 6e 65 64  20 6f 6e 20 74 68 65 20  |g opened on the |
00004d60  64 65 76 69 63 65 2e 0a  20 20 20 20 0a 20 20 20  |device..    .   |
00004d70  20 44 61 74 61 20 73 65  6e 74 3a 0a 20 20 20 20  | Data sent:.    |
00004d80  0a 20 20 20 20 20 20 20  20 4f 66 66 73 65 74 20  |.        Offset |
00004d90  20 53 69 7a 65 20 20 20  20 44 65 73 63 72 69 70  | Size    Descrip|
00004da0  74 69 6f 6e 0a 20 20 20  20 20 20 20 20 0a 20 20  |tion.        .  |
00004db0  20 20 20 20 20 20 30 20  20 20 20 20 20 20 32 20  |      0       2 |
00004dc0  20 20 20 20 20 20 48 50  43 20 73 65 72 76 69 63  |      HPC servic|
00004dd0  65 20 49 44 2e 0a 20 20  20 20 20 20 20 20 32 20  |e ID..        2 |
00004de0  20 20 20 20 20 20 32 20  20 20 20 20 20 20 52 65  |      2       Re|
00004df0  61 73 6f 6e 20 63 6f 64  65 20 3d 20 26 30 30 31  |ason code = &001|
00004e00  45 2e 0a 20 20 20 20 20  20 20 20 34 20 20 20 20  |E..        4    |
00004e10  20 20 20 31 20 20 20 20  20 20 20 55 6e 69 74 20  |   1       Unit |
00004e20  63 6f 64 65 20 28 64 72  69 76 65 20 6e 75 6d 62  |code (drive numb|
00004e30  65 72 29 2e 0a 0a 20 20  20 20 44 61 74 61 20 72  |er)...    Data r|
00004e40  65 74 75 72 6e 65 64 3a  0a 20 20 20 20 0a 20 20  |eturned:.    .  |
00004e50  20 20 20 20 20 20 4f 66  66 73 65 74 20 20 53 69  |      Offset  Si|
00004e60  7a 65 20 20 20 20 44 65  73 63 72 69 70 74 69 6f  |ze    Descriptio|
00004e70  6e 0a 20 20 20 20 20 20  20 20 0a 20 20 20 20 20  |n.        .     |
00004e80  20 20 20 30 20 20 20 20  20 20 20 34 20 20 20 20  |   0       4    |
00004e90  20 20 20 52 65 74 75 72  6e 20 63 6f 64 65 2e 0a  |   Return code..|
00004ea0  0a 0a 48 50 43 5f 41 52  4d 45 44 49 54 5f 44 45  |..HPC_ARMEDIT_DE|
00004eb0  56 49 43 45 5f 43 4c 4f  53 45 0a 0a 20 20 20 20  |VICE_CLOSE..    |
00004ec0  41 20 66 69 6c 65 20 69  73 20 62 65 69 6e 67 20  |A file is being |
00004ed0  63 6c 6f 73 65 64 20 6f  6e 20 74 68 65 20 64 65  |closed on the de|
00004ee0  76 69 63 65 2e 0a 20 20  20 20 0a 20 20 20 20 44  |vice..    .    D|
00004ef0  61 74 61 20 73 65 6e 74  3a 0a 20 20 20 20 0a 20  |ata sent:.    . |
00004f00  20 20 20 20 20 20 20 4f  66 66 73 65 74 20 20 53  |       Offset  S|
00004f10  69 7a 65 20 20 20 20 44  65 73 63 72 69 70 74 69  |ize    Descripti|
00004f20  6f 6e 0a 20 20 20 20 20  20 20 20 0a 20 20 20 20  |on.        .    |
00004f30  20 20 20 20 30 20 20 20  20 20 20 20 32 20 20 20  |    0       2   |
00004f40  20 20 20 20 48 50 43 20  73 65 72 76 69 63 65 20  |    HPC service |
00004f50  49 44 2e 0a 20 20 20 20  20 20 20 20 32 20 20 20  |ID..        2   |
00004f60  20 20 20 20 32 20 20 20  20 20 20 20 52 65 61 73  |    2       Reas|
00004f70  6f 6e 20 63 6f 64 65 20  3d 20 26 30 30 31 46 2e  |on code = &001F.|
00004f80  0a 20 20 20 20 20 20 20  20 34 20 20 20 20 20 20  |.        4      |
00004f90  20 31 20 20 20 20 20 20  20 55 6e 69 74 20 63 6f  | 1       Unit co|
00004fa0  64 65 20 28 64 72 69 76  65 20 6e 75 6d 62 65 72  |de (drive number|
00004fb0  29 2e 0a 0a 20 20 20 20  44 61 74 61 20 72 65 74  |)...    Data ret|
00004fc0  75 72 6e 65 64 3a 0a 20  20 20 20 0a 20 20 20 20  |urned:.    .    |
00004fd0  20 20 20 20 4f 66 66 73  65 74 20 20 53 69 7a 65  |    Offset  Size|
00004fe0  20 20 20 20 44 65 73 63  72 69 70 74 69 6f 6e 0a  |    Description.|
00004ff0  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00005000  20 30 20 20 20 20 20 20  20 34 20 20 20 20 20 20  | 0       4      |
00005010  20 52 65 74 75 72 6e 20  63 6f 64 65 2e 0a 0a 0a  | Return code....|
00005020  48 50 43 5f 41 52 4d 45  44 49 54 5f 44 45 56 49  |HPC_ARMEDIT_DEVI|
00005030  43 45 5f 52 45 4d 4f 56  41 42 4c 45 0a 0a 20 20  |CE_REMOVABLE..  |
00005040  20 20 43 68 65 63 6b 20  69 66 20 61 20 64 65 76  |  Check if a dev|
00005050  69 63 65 20 69 73 20 72  65 6d 6f 76 61 62 6c 65  |ice is removable|
00005060  2e 0a 20 20 20 20 0a 20  20 20 20 44 61 74 61 20  |..    .    Data |
00005070  73 65 6e 74 3a 0a 20 20  20 20 0a 20 20 20 20 20  |sent:.    .     |
00005080  20 20 20 4f 66 66 73 65  74 20 20 53 69 7a 65 20  |   Offset  Size |
00005090  20 20 20 44 65 73 63 72  69 70 74 69 6f 6e 0a 20  |   Description. |
000050a0  20 20 20 20 20 20 20 0a  20 20 20 20 20 20 20 20  |       .        |
000050b0  30 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |0       2       |
000050c0  48 50 43 20 73 65 72 76  69 63 65 20 49 44 2e 0a  |HPC service ID..|
000050d0  20 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |        2       |
000050e0  32 20 20 20 20 20 20 20  52 65 61 73 6f 6e 20 63  |2       Reason c|
000050f0  6f 64 65 20 3d 20 26 30  30 32 30 2e 0a 20 20 20  |ode = &0020..   |
00005100  20 20 20 20 20 34 20 20  20 20 20 20 20 31 20 20  |     4       1  |
00005110  20 20 20 20 20 55 6e 69  74 20 63 6f 64 65 20 28  |     Unit code (|
00005120  64 72 69 76 65 20 6e 75  6d 62 65 72 29 2e 0a 0a  |drive number)...|
00005130  20 20 20 20 44 61 74 61  20 72 65 74 75 72 6e 65  |    Data returne|
00005140  64 3a 0a 20 20 20 20 0a  20 20 20 20 20 20 20 20  |d:.    .        |
00005150  4f 66 66 73 65 74 20 20  53 69 7a 65 20 20 20 20  |Offset  Size    |
00005160  44 65 73 63 72 69 70 74  69 6f 6e 0a 20 20 20 20  |Description.    |
00005170  20 20 20 20 0a 20 20 20  20 20 20 20 20 30 20 20  |    .        0  |
00005180  20 20 20 20 20 34 20 20  20 20 20 20 20 52 65 74  |     4       Ret|
00005190  75 72 6e 20 63 6f 64 65  2e 0a 20 20 20 20 20 20  |urn code..      |
000051a0  20 20 34 20 20 20 20 20  20 20 34 20 20 20 20 20  |  4       4     |
000051b0  20 20 54 68 65 20 72 65  6d 6f 76 61 62 6c 65 20  |  The removable |
000051c0  64 65 76 69 63 65 20 73  74 61 74 75 73 3a 0a 20  |device status:. |
000051d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000051e0  20 20 20 20 20 20 20 20  20 20 20 26 30 30 30 30  |           &0000|
000051f0  20 20 20 52 65 6d 6f 76  61 62 6c 65 0a 20 20 20  |   Removable.   |
00005200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005210  20 20 20 20 20 20 20 20  20 26 30 32 30 30 20 20  |         &0200  |
00005220  20 4e 6f 6e 72 65 6d 6f  76 61 62 6c 65 0a 0a 0a  | Nonremovable...|
00005230  54 48 49 4e 47 53 20 54  4f 20 44 4f 0a 0a 54 68  |THINGS TO DO..Th|
00005240  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 61 72 65 20  |e following are |
00005250  63 68 61 6e 67 65 73 20  74 68 61 74 20 6d 61 79  |changes that may|
00005260  20 62 65 20 6d 61 64 65  20 74 6f 20 74 68 65 20  | be made to the |
00005270  48 50 43 20 73 65 72 76  69 63 65 73 20 73 6f 6d  |HPC services som|
00005280  65 74 69 6d 65 20 69 6e  0a 74 68 65 20 66 75 74  |etime in.the fut|
00005290  75 72 65 2e 0a 0a 20 20  20 20 4e 6f 6e 65 20 61  |ure...    None a|
000052a0  74 20 74 68 65 20 6d 6f  6d 65 6e 74 21 0a 0a 0a  |t the moment!...|
000052b0  56 45 52 53 49 4f 4e 20  48 49 53 54 4f 52 59 0a  |VERSION HISTORY.|
000052c0  0a 30 2e 30 30 20 28 31  32 2d 4e 6f 76 2d 39 35  |.0.00 (12-Nov-95|
000052d0  29 20 20 20 20 4f 72 69  67 69 6e 61 6c 20 64 65  |)    Original de|
000052e0  76 65 6c 6f 70 6d 65 6e  74 20 76 65 72 73 69 6f  |velopment versio|
000052f0  6e 2e 0a 0a 30 2e 30 31  20 28 31 34 2d 4e 6f 76  |n...0.01 (14-Nov|
00005300  2d 39 35 29 20 20 20 20  4e 6f 20 63 68 61 6e 67  |-95)    No chang|
00005310  65 73 20 74 6f 20 48 50  43 2e 0a 0a 30 2e 30 32  |es to HPC...0.02|
00005320  20 28 31 35 2d 4e 6f 76  2d 39 35 29 20 20 20 20  | (15-Nov-95)    |
00005330  4e 6f 20 63 68 61 6e 67  65 73 20 74 6f 20 48 50  |No changes to HP|
00005340  43 2e 0a 0a 30 2e 30 33  20 28 31 37 2d 4e 6f 76  |C...0.03 (17-Nov|
00005350  2d 39 35 29 20 20 20 20  55 73 65 73 20 63 6f 72  |-95)    Uses cor|
00005360  72 65 63 74 20 48 50 43  20 73 65 72 76 69 63 65  |rect HPC service|
00005370  20 69 64 65 6e 74 69 66  69 65 72 2e 0a 0a 30 2e  | identifier...0.|
00005380  30 34 20 28 32 31 2d 4e  6f 76 2d 39 35 29 20 20  |04 (21-Nov-95)  |
00005390  20 20 53 6c 69 67 68 74  6c 79 20 6d 6f 72 65 20  |  Slightly more |
000053a0  65 78 70 65 72 69 6d 65  6e 74 61 6c 20 64 65 76  |experimental dev|
000053b0  69 63 65 20 64 72 69 76  65 72 20 73 75 70 70 6f  |ice driver suppo|
000053c0  72 74 2e 0a 20 20 20 20  20 20 20 20 20 20 20 20  |rt..            |
000053d0  20 20 20 20 20 20 20 20  52 65 61 6c 20 48 50 43  |        Real HPC|
000053e0  20 73 79 73 74 65 6d 20  69 6d 70 6c 65 6d 65 6e  | system implemen|
000053f0  74 65 64 2e 0a 0a 30 2e  30 37 20 28 32 38 2d 44  |ted...0.07 (28-D|
00005400  65 63 2d 39 35 29 20 20  20 20 41 64 64 65 64 20  |ec-95)    Added |
00005410  6d 65 73 73 61 67 65 20  70 61 73 73 69 6e 67 20  |message passing |
00005420  70 72 6f 74 6f 63 6f 6c  2e 0a 0a 31 2e 30 30 20  |protocol...1.00 |
00005430  28 31 35 2d 44 65 63 2d  39 35 29 20 20 20 20 46  |(15-Dec-95)    F|
00005440  69 72 73 74 20 6f 66 66  69 63 69 61 6c 20 72 65  |irst official re|
00005450  6c 65 61 73 65 20 76 65  72 73 69 6f 6e 2e 0a 0a  |lease version...|
00005460  31 2e 30 31 20 28 31 31  2d 4d 61 72 2d 39 36 29  |1.01 (11-Mar-96)|
00005470  20 20 20 20 56 65 72 73  69 6f 6e 20 6e 75 6d 62  |    Version numb|
00005480  65 72 20 75 70 64 61 74  65 64 20 74 6f 20 6d 61  |er updated to ma|
00005490  74 63 68 20 74 68 65 20  6d 6f 64 75 6c 65 2e 0a  |tch the module..|
000054a0  0a 31 2e 30 32 20 28 32  37 2d 4d 61 79 2d 39 36  |.1.02 (27-May-96|
000054b0  29 20 20 20 20 49 6d 70  6c 65 6d 65 6e 74 65 64  |)    Implemented|
000054c0  20 64 65 76 69 63 65 20  64 72 69 76 65 72 20 63  | device driver c|
000054d0  61 6c 6c 73 2e 0a 20 20  20 20 20 20 20 20 20 20  |alls..          |
000054e0  20 20 20 20 20 20 20 20  20 20 41 64 64 65 64 20  |          Added |
000054f0  63 6f 6d 6d 61 6e 64 73  20 74 6f 20 63 6f 6e 76  |commands to conv|
00005500  65 72 74 20 62 65 74 77  65 65 6e 20 64 61 74 65  |ert between date|
00005510  20 61 6e 64 20 74 69 6d  65 20 66 6f 72 6d 61 74  | and time format|
00005520  73 2e 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |s..             |
00005530  20 20 20 20 20 20 20 49  6e 63 6c 75 64 65 64 20  |       Included |
00005540  53 57 49 20 66 6f 72 20  75 73 65 20 62 79 20 41  |SWI for use by A|
00005550  63 6f 72 6e 27 73 20 73  6f 66 74 77 61 72 65 20  |corn's software |
00005560  50 43 20 65 6d 75 6c 61  74 6f 72 2e 0a 0a 31 2e  |PC emulator...1.|
00005570  30 33 20 28 32 31 2d 46  65 62 2d 39 37 29 20 20  |03 (21-Feb-97)  |
00005580  20 20 41 64 64 65 64 20  61 62 69 6c 69 74 79 20  |  Added ability |
00005590  74 6f 20 72 65 70 6c 79  20 74 6f 20 6d 65 73 73  |to reply to mess|
000055a0  61 67 65 73 2e 0a 20 20  20 20 20 20 20 20 20 20  |ages..          |
000055b0  20 20 20 20 20 20 20 20  20 20 49 6e 63 6c 75 64  |          Includ|
000055c0  65 64 20 61 62 69 6c 69  74 79 20 74 6f 20 73 70  |ed ability to sp|
000055d0  65 65 64 20 75 70 20 6f  70 65 72 61 74 69 6f 6e  |eed up operation|
000055e0  73 20 77 68 65 6e 20 6d  75 6c 74 69 74 61 73 6b  |s when multitask|
000055f0  69 6e 67 2e 0a 20 20 20  20 20 20 20 20 20 20 20  |ing..           |
00005600  20 20 20 20 20 20 20 20  20 54 65 6d 70 6f 72 61  |         Tempora|
00005610  72 79 20 52 49 53 43 20  4f 53 20 66 69 6c 65 6e  |ry RISC OS filen|
00005620  61 6d 65 73 20 63 61 6e  20 6e 6f 77 20 62 65 20  |ames can now be |
00005630  67 65 6e 65 72 61 74 65  64 2e 0a 0a 31 2e 30 34  |generated...1.04|
00005640  20 28 30 37 2d 44 65 63  2d 39 37 29 20 20 20 20  | (07-Dec-97)    |
00005650  41 64 64 65 64 20 64 65  76 69 63 65 20 64 72 69  |Added device dri|
00005660  76 65 72 20 6f 70 65 72  61 74 69 6f 6e 73 20 66  |ver operations f|
00005670  6f 72 20 33 32 62 69 74  20 73 65 63 74 6f 72 20  |or 32bit sector |
00005680  6e 75 6d 62 65 72 73 2e  0a 20 20 20 20 20 20 20  |numbers..       |
00005690  20 20 20 20 20 20 20 20  20 20 20 20 20 49 6e 63  |             Inc|
000056a0  6c 75 64 65 64 20 64 65  76 69 63 65 20 64 72 69  |luded device dri|
000056b0  76 65 72 20 73 75 70 70  6f 72 74 20 66 6f 72 20  |ver support for |
000056c0  72 65 6d 6f 76 61 62 6c  65 20 6d 65 64 69 61 2e  |removable media.|
000056d0