!PC Version 3.08
----------------
This is a version of !PC that has been modified to work with
RISC OS 6.1. It also works with RISC OS 4.39 and there is no
reason why it should not work with earlier releases. It is a
'drop in' replacement for !PC version 3.

Note: this software will only run on a Risc PC with a PC card
in it. 

******************************************************************
*                                                                *
* !PC version 3.08 uses the source code of !PC version 3.06 that *
* was made 'open source' by Aleph One. It is not an official     *
* product of Aleph One and any questions or comments should be   *
* addressed to the author of these changes, Dave Daniels.        *
*                                                                *
******************************************************************

!PCConfig
---------
This has been changed to write the !PC configuration file to
the correct location with RISC OS 4 and later.


Installation
------------
1)  Back up your current versions of !PC and !PCConfig

2)  Replace your current versions with the ones in this archive.


Use
---
Use is exactly the same as with other versions of !PC version 3.


Notes
-----
1) !PC has been tested with DRDOS 6, Windows 3.1 and Windows 95.

2) Parallel and serial port support has not been tested.

3) Network support has not been tested.

4) Direct screen access support (VESA and DirectX) has been
   lightly tested.


Changes for RISC OS 6
---------------------
1) !PC was failing with the error message 'Unable to start
   application (compression or patching call failed)'. This was
   caused by the length of the program 'Loadauto' not being a
   multiple of four bytes.

2) !PC uses call OS_Memory 7 to locate memory for the PC card.
   This is broken in RISC OS 6.1. (The RISC OS 6 PRM says that
   the call is 'deprecated' i.e. avoid using it. It is in fact
   broken.) In theory OS_Memory 6 says how much memory OS_Memory
   7 needs but OS_Memory 7 needs several times that amount. The
   code now allocates *ten times* what OS_Memory 6 says to use.

3) In releases of RISC OS prior to 6 the screen memory was
   accessible as a dynamic area (area 2). This was fully
   documented in the PRMs and there was a call to find out
   effectively where the screen memory lived and how much of it
   there was. This dynamic area has disappeared in RISC OS 6 but
   RISC OS 6 provides a workaround so that programs that use the
   old documented calls still work except that you now get a
   meaningless screen address and using it causes failures. This
   affected !PC in a number of places. The documented RISC OS 6
   replacement way of finding out this information does not give
   you the same information. The code has been changed to use the
   alternative calls but fiddles with the results to hopefully
   provide what is needed but this is not guaranteed.

4) Fixed problem when running Windows 95 where !PC crashed with
   a 'branch through zero' error when running under RISC OS 6.
   This showed up when changing the screen size and only occurs
   with RISC OS 6. (It looks as though RISC OS 6 can corrupt R7
   in a program under some conditions. The circumstances were
   not investigated. The code was changed to used a saved copy
   of the contents of R7 at points where the crash was occuring.)

5) The serial number check code has been removed.

6) The demo version time limit check has been removed.

7) The 'web page' button has been removed from the !PC and
   !PCConfig 'About this program' dialogue boxes.


Contact
-------
I am not making any commitment to providing support for !PC. I might
look at problems as and when time allows but I do not propose to add
anything new to the program unless there is a very good reason.

    Dave Daniels

    dave_daniels@ormail.co.uk
    dave_daniels@argonet.co.uk

