Arculator 0.0 release 9
=======================


Command line syntax
-------------------

arc [filename] [loadaddr runaddr]
Where filename is an absolute ARM assembler file, and loadaddr and runaddr
are the load and run addresses of the file. If run with no filename, will boot
RiscOS 3.11. RiscOS is not required if an absolute file is being run.

If an absolute file is on the command line, Arculator will ask if you want to
boot RiscOS. If you don't, it will automatically execute the file, and if you
do, you have to load it later and execute it with *GO.


Running
-------

The emulator starts in the monitor. The following commands do stuff :

a num  - animates num instructions
d addr - dumps 128 bytes from addr (addr being in ARM address space)
g      - go until escape pressed
h      - help
j      - jump to address
l      - toggle ARM logging (into arm.log)
s      - select screen mode emulation
t      - trace (single-step)
v      - view screen
w val  - sets display width to val pixels
x      - quit

When run, the emulator will abort when it hits an unimplemented opcode, or
some other error occurs.

All operating systems boot, but only RiscOS 3 is usuable at the moment.


Keys
----

END - quit back to debugger
HOME - load absolute file if in RiscOS

All the others emulate the Archimedes keyboard (slowly).


Compatibility
-------------

Name                  Comments

Demos :
BIAtris               Perfect
1st Acorn User demo   Perfect
TCD demo 1            Perfect (use screen mode 1)
System Interrupt 1-5  Perfect
Graffiti Street       Perfect
Armaxess megademo     Perfect (Some parts need screen mode 3, Process is
                               pointless without booting RiscOS)
Armaxess Lazydemo II  Perfect
ArcAngels 1st demo    Perfect (try width=384, screen mode 2)
Coppersine            Doesn't work (uses strange method of waiting for VBL -
                                    monitors reset vector!)
X-Joins-X             Vsync skipper has no effect - use a fast machine to view
Xcentric              Won't decrunch correctly - annoyingly the decruncher is
                      seemingly the only part of the source that is _not_
                      available.

Games :
Lander                Mouse doesn't work very well
Conqueror             Graphics errors
Warlocks (demo)       Choose Warlocks mode. 


OSes :
Arthur                Hangs after booting
RiscOS 2              Hangs after booting
RiscOS 3.11           Works, but with many errors


Known bugs
----------

After quiting to the debugger, the next line of text is invisible - press
return to get it working again.

Lower half of screen changes colour sometimes - Arculator never uses it for
display so this is just an annoyance.

Arthur and RiscOS 2 hang for some reason after booting.

RiscOS 3.11 won't go to desktop (branch through zero).

Some demos appear to crash with address exceptions on the stack - this appears
to be a bug in RiscOS, with it not setting up a user stack by default. Usually
some other process sets one up first, such as ADFS, but ADFS doesn't work in
Arculator. Try loading and quitting BASIC - that should set up a stack.

MessageTrans module doesn't appear to work (broken Supervisor message in RiscOS
3.11). Going through the execution, RiscOS appears to find MessageTrans, start
reading the string, but then go through the 'Bad SWI' string, invoke an error
handler, which breaks somewhere. The result is it tries to print the reset
vector.

Programs won't exit properly in 3.11. Not a clue why.

No OSes attempt to access floppy hardware, or load ADFS.

BASIC has some odd errors (PRINT 10 prints 0).

TXPs 'Xcentric' demo won't decrunch correctly - the first two decrunched
instructions seem fine, but everything else is garbage. Why did TXP release
all of the source _except_ for the decruncher? (it would have been very
helpful)

Hangs when trying to go to the desktop - the box that the Acorn logo and 'RISC
OS 3' text gets filled badly (FPemulator is seemingly bugged) and then the
whole screen fills white.

CMOS appears to be totally screwed. If anyone knows what I'm doing wrong,
please tell me! (or has any test programs that directly access CMOS RAM,
bypassing the OS)


Output files
------------

The emulator will always open arc.log, and log VIDC accesses to it. If the
emulator quits normally, it will dump RAM to ram.dmp (4 megs), highram.dmp
(32k from &1F00000 to &1F08000), vram.dmp (160k starting at &1F08000) and
program.dmp (&8000-&88000).


Status
------

ARM - 85% (still some bugs, quite a few opcodes not emulated)
IOC - 80% (all timers emulated, but many registers don't do anything)
MEMC - 60% (full mapping and permissions for 32k pages, will bugger up on other
            page sizes)
VIDC - 40% (emulation of modes 0,12 and 13)
CMOS - 20% (doesn't actually work at the moment)
1770 - 0%


Changes :

release 9 :
More ARM bugs fixed - RiscOS now boots (but with some errors)
Proper VIDC/MEMC/IOC emulation
Keyboard and mouse now emulated (mouse a bit screwy though)
DMA addresses are actually correct now.

release 8 :
Some more ARM bugs fixed - many more demos/games work.
More SWIs trapped.
Various address modes for video emulation.
Monitor improved.
Video mode changed to 400x300 to allow overscan screens to display.
First binary release.

release 7 :
Monitor/debugger/disassembler added.
Some stupid ARM bugs fixed (such as LSR not working correctly) - RiscOS gets
further.
SWI faking improved - more demos run.
Alternate address for video emulation (for TCD demo 1)
No longer compiles without DJGPP/Allegro
Correct default palette

release 6 :
Can now load absolute files. Some demos run.
SWI faking added (only for absolute files).
Couple of ARM bug fixes.
Primitive video emulation (mode 13 only).

release 5 :
Full 32k MEMC emulation.
Some more ARM bugs fixed. RiscOS 2,3.11 and Arthur get to the first SWI.

release 4 :
Some ARM bugs fixed, RiscOS 3.11 starts MEMC page test.
MEMC emulated a bit, 32k pages only, still many bugs.

release 3 :
RiscOS 3.11 now starts long memory test. Fixed other tests.
Other versions of ARM emulator removed.

release 2 :
RiscOS 3.11 now gets past checksum.
slightly better docs.

release 1 :
first release.
ARM heavily bugged.


tommowalker@hotmail.com
