!Readme for A310 emulator

This emulator aims to emulate an Acorn A310 'Archimedes' computer; at the time of
release (1987),it had a 8 MHz ARM chip, doing some 5 MIPS; 1.0 MByte of memory, one floppie,
no harddisc, and the Arthur operating system.
Arthur itself was upgraded a few times and was followed up by Riscos 2.0, which generally
started to define the look and feel of Riscos as we know it today.
Riscos2 was followed by Riscos 3.1; this OS was also used in a variety of newer machines
that added more speed (ARM3), bigger floppies (1600K) more screen resolutions
and RAM up to 16 MBytes. From these enhancements only RAM size up to 16 MByte, and DOS
floppies 1440K could be included to the emulation of the A310.

As with most sizeable projects, this emulator has a wish list (ie.unfinished!)
and still harbours bugs in unwanted places. In case of errors, my experience is that
it never took the host machine down, (but your experience can be very different, 
obviously). But the emulator itself can crash now and then. Sometimes it's a fault
in the emulator itself -- I hope you report these errors to me, so I can make it better.
In some other cases it's an interaction between programs running and the O.S.; e.g. it's
well known that some early programs (for Arthur, Riscos2) were unhappy with Riscos3.
Anyway..
in case of errors, if you are in Multitasking mode, remember the error line if it
is reported .. if it's the very last line of the program the error originated in
a piece of assembler, so it is useless. In other lines, it may indicate variables
not known, etc. Do Alt+Break to exit the emulator if it hangs seriousy, to stop the 
task A310Emu; otherwise try to Reset the emulator.
Alt-Break does not recover the memory in use by the emulator; if you do this a lot
in succession your host computer may have to be reset too, in order to reclaim it.
When you are in the middle of a file transfer using !EmuTrsf, it's also worth trying
to reset !EmuTrsf. Or quit it and restart it by double-clicking on its icon on the
harddisc folder.
In Singletasking mode, hit the Exit combination, default is left ALT key plus End key.
It's always useful to avoid having important unsaved files in progress on your host
computer when you try out not-tried-out-before stuff on the Emulator!
Please do not use 'tricky' key combinations like Alt-Break,Cntrl-Shift_F12,Ctrl_Shift_Break,Ctrl_Break etc. if you intend them for the emulator only. The host computer (iyonix,RiscPC,a9home..)
sends them to all open applications in turn, at some point they may reach the emulator but
harm is already done at that point. I't better to use the Resets dialogue window 
(Menu on Iconbar icon-->Resets) of use the 'keyboard' (floppydiscs pane..Menu-->keyboard)
and click on the appropriate icons.
Sometimes you will encounter 'error' messages with info about variables inside the program
they may be reminders of the development, I try to remove these but some evade my attention.

==============================================================================

Latest developments:(Dec/Jan 2007)
2011: Changes to be able to run on  beagleboard. !EmuTrsf also changed. 
On Beagleboard, Impression does not run yet in !A310Emu.

Fixed bug: Crashed with screenwindow occupying entire host desktop+'floppie' in
pane-floppybay,then closing &reopening screenwindow.
Fixed bug: Filetransfer from floppy to harddisc,especially big files, mangled these files.
Fixed Bug: 'Harddisc'files left open when emulator quitted after an error.
Open 'harddiscs' now are closed first if they have open handles at startup.
Fixed Bug: Confusion if more than one 'floppydrive' present,and self-created floppie
images in them. New Floppies ADFS 800K (E) and 1600K(F) now get disc cycle ID and (DOS also)
a datestamp. When two or more empty 'floppies' were present, the filer often got confused 
(when transferring from harddisc to :0, the file would end up on :1, etc).
Worked on FDRDY and DCIRQ emulation again. These are two signal lines from the floppy, 
hopefully you will encounter the message "DiscDrive empty" less often now.
Can now read in Electron ADFS,320K disc images. As fetched from Stairway to Hell,e.g.
(The filer confuses this format with ADFS-L, so it seems not safe to write to them;
even stranger, Iyonix can read them too; emulator can write these images back to (DD)floppy. 

Somewhere in 2006
               EmuTrsf now runs under Riscos2 too.
               Added Resets button.
               Removed some errors from sound handler. Not good yet, but pitch is correct now.
Errors         Fixed STM base,{reglist} where last store overwrites PC (BlackAngel).
               Fixed DCINT/FDRDY floppysignals emulation (Can now install !Publisher!!)
               Fixed !lite problem. (overwrites next PC location & assumes instruction
               is in instr.latch already; it's at the end of the 224K lite executable).
               Assembler procedure has now LOCAL ERROR, in case of error the
               application displays the error & quits, instead of going on&doing
               harm.
               Can now start up without OS roms,just in case you wish to use the emulator
               for image creation only . Can start without harddisc images(if they
               are needed, they are created automatically) and without Cmos settings
               (if there is no Cmosfile for OS and ramsize, the emulator itself pushes
               its Reset button)
               Some errors in using the emulator on an Iyonix are corrected, but I can't
               guarantee anything.
               Position of menus is corrected, thanks to code from James Lampard.
               In singletasking, Break is disabled, so that Break does no more
               reset the Riscpc/Iyonix.
               Palette is OK again after leaving singletasking mode. (In Wimp_
               ReadPalette/SetPalette(PRM 3-192/PRM 5a-667) R2 should be a pointer
               to an address containing &45555254("TRUE").)
Added:         Arthur formatted disc added in blank-discs menu, because it takes a --lot--
               of time to format under Arthur.  
               Some Iyonix compatibility. It is IMPORTANT not to use vertical 
               resolutions less than,say, 384 rows;a cut-down MDF for the Iiama VM1451
               is supplied.  No less-than-8bpp modes are possible in singletasking,yet.
               The parallel port is disabled in the Iyonix, as the Iyonix lacks the Parallel_Op
               swi and ParaUSB does not seem to like this USB incarnation?? 
               Sound is improved; pitch is not always correct, so you can adjust it +/- 10%
               with a slider. Singletasking still needs a lot of improvement.
               Dragging of selections into and out of the emulator is now possible.Of course
               you must start up !EmuTrsf first!
               Sound & leave-multitasking are now possible from within EmuTrsf menu
               Dragging of (selections of) files and directories into emulated desktop, 
               when a separate program,!EmuTrsf, is running. It is included as an ADF 
               image. Read further to discover how to use ADF and other images.
               Sound during Multitasking,Sound interpolation.
               Use Slider in the Sound submenu for the sound amplitude. 
               Iconiser enabled.
               Harddiscs now keep the !FCFS postfix (256 bytes'0',first word is
               'FCFS',third word is offset within the file to the root directory)
               Now !FCFS (www.axis.demon.co.uk) can read 'harddisc4'and 'harddisc5'
               when their size has been altered by formatting. Note that !FCFS is not
               Iyonix-compatible,alas.
Known problems:
               Due to the rather crude nature of the singletasking screen copier, often the
               right resolution is not chosen and the mousepointer is at the wrong spot. It 
               helps NOT to use letterbox modes; as A310Emu still picks these automatically 
               it's best to remove them from your default screenmodefile. 
               Dont print from within A310Emu on an Iyonix (RiscPC seems to be OK). The Iyonix
               lacks the Parallel_Op swi; it can be supplied by ParaUSB, BUT if you then try 
               to print something, the program + the complete computer freezes.
               When you write floppies from an Iyonix,by clicking "Save to :0" from a pane
               menu, please be sure that you have formatted the floppy in the right format
               first. 
Still to do : a lot.  Especially for sound and screenredraws.
               Singletasking for modes less than 8bpp are not yet possible under Iyonix.
               Singletasking is not possible if no suitable entry in the current
               monitor description file can be found.
               Singletasking is not yet possible for a9home.
               In multitasking mode in particular and using particular voicemodules, 
               sound breaks up or does not have the right pitch. Unfortunately the cure
               is more-or-less known but depends on a number of other things fixed first.


VERY IMPORTANT: If you are in Singletasking mode, and want to exit, please do not just
               press Shift_Ctrl_F12 and turn off the (host!) computer, because you quitted
               the emulated machine, not the processes in the host computer. Always
               use the exit combination first.

Exit combination: The exitcombination can be set inside the Pane_menu-->
               Settings dialogue box. You can take one or more keys from these:
               
      esc,f1,r2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,printscrn,scroll,break,
      1,2,3,4,5,6,7,8,9,0,backspace,insert,home,pageup,numlock,
      tab,q,w,e,r,t,y,u,i,o,p,delete,end,pagedown,numpad7,numpad8,numpad9,
      leftctrl,a,s,d,f,g,h,j,k,l,return,numpad4,numpad5,numpad6,
      leftshift,z,x,c,v,b,n,m,rightshift,cursorup,numpad1,numpad2,numpad3,
      caps,leftalt,space,rightalt,rightctrl,
      cursorleft,cursordown,cursorright,numpad0,enter
 
The characters are not case-sensitive.Ctrl_shift_F12 always exits singletasking.
The program expects them to be separated by an '&'. For instance, leftalt & end (these
are the default keys).


-------------------------------------------------------------------------------------------
HOW TO START.  Copy the application to somewhere on your harddisc. Be sure you 
               have some 8 Mb of RAM in your computer( at present, the program
               needs 1.2 Mb for itself (will get less),plus space for ram(0.5 --16Mb),
               rom(0.5--2Mb) and floppies(0--5 Mb). For speed, 2 Mb videoram would be
               nice, and a Strongarm processor is required in a RiscPC. The 710 and 610
               processor modules are not fast enough and lack some instructions that 
               this program uses.
               There is a module inside the application directory called 
               RBMemMgr. Please do not copy this module to inside your <System$Dir>
               directory as it will change in the future. Leave it in !A310Emu dir.
               The program is started by double-clicking on the !A310Emu icon.
               In case you do not have them already, more useful files are to be found 
               in the 'support' files on the website.
               The files harddisc4 and harddisc5 should go into the application directory,
               but they are created automatically if they are not found in the application
               directory. The ro200,ro310 and/or ro110 go into the OS subdirectory.
               .ADF files are not required to sit in the adf subdirectory, they are
               not needed for starting up correctly, either. They are the equivalent of
               floppies in the hardware world, so you can drag them in and out of the
               floppybays in the pane window, and use them just like you use floppies.
               You can drag them to and from anywhere on your RPC harddisc. 
               A310Emu can read&write four formats, which are recognised automatically.
               These formats are adf files,adi files,fcfs files and dosdisc files.
               The last is dos-formatted (fat12), it can be accessed with DosFS which is
               present on your RiscPC. DosFS can read and write this format. They can also
               be used by rawread and rawrite in the DOS world (Freedos,for example).
               Adf is a sectordump of an ADFS-E or -D of -F disc. Also used by Archie and 
               RedSquirrel in the pc-world. (uncompressed). FCFS is E or F formatted ADF 
               with a 256-byte extension containing info about where the bootblock begins. 
               ADI is a dump of sectors+what is supposed between the sectors, ie.
               header info,crc's etc. Is required to store ADFS-L discs and discs with
               sectors of unequal sizes etcetera (protected game discs!) on the same track.
      
HOW TO INSTALL (a) harddisc(s).
               There are/can be 2 'harddiscs' called 'harddisc4' and 'harddisc5' in the
               application directory. The hardware of the Archimedes does not support more.
               If not present, they should be created automatically IF there are harddiscs 
               configured - a byte in CMOS remembers this setting.
               A310Emu, as fetched from the web site, has no files in the cmos directory
               and notes at startup that they are missing; it automatically does an R-reset
               (or Delete-reset, depending on the OS you have). For Riscos 1--3 this means,no
               harddiscs. To configure one/some harddisc(s), click on the main screen so that
               it has input focus; hit F12 so that you get into the command mode; and type
               *Configure harddiscs 1 <Return>    
               -or -- 
               *configure harddiscs 2 <Return> 
               depending on how many harddiscs you want. <Return> means, hit the Return key.
               Now reset the emulator by clicking the A in 'Archimedes' on the floppypane, or
               Reset in the iconbar menu, etc. The emulator should now notice that  harddisc(s)
               is/are missing and should create a 1600K one.(or two).
               If this does not help,an alternative to create a 'harddisc' is:
               On an --empty-- floppy bay on the pane, click 'Menu'mousebutton,choose New floppy
               and create a 1600K ADFS diskette. Click Menu over the now  blue-coloured
               floppybay, follow the Save menu, and save the floppy image(s) as fcfs type- file;               Name it 'harddisc4'. Save out this file in the !A310 main directory
               (ie. alongside !RunImage,!Sprites etc).
               If required, repeat it for a file 'Harddisc5'.
               The reason why this works is that 1600K adfs-f files have the same structure 
               as ST506 harddiscs, be it a little small. Once the emulator is up and running you
               can make the size bigger, by formatting it with !Hform, in the EmuTrsf image.
               Modules suitable for Riscos2 and 3 can be found anywhere, 
               the supply ranges from past Acorn cover CD's and the Net, 
               especially the download area of Drobe.co.uk which also contains the
               old Acorn archives. You'll find the Riscos2/3 support disks here. Once you have
               these files in some directory or archive, you can drag them over using !EmuTrsf.
               EmuTrsf comes with the distro as a FCFS file, suitable for dragging into a
               'floppy bay' in the pane; click on the matching (e.g.:0) floppy icon in the 
               emulator window to inspect or use the contents. This 'floppy' image also
               contains !Hform and some modules.
               
               Suitable modules also live in your Riscpc's !Boot.resources.!system.310.
               One of the 1600K 'harddiscs' in the distro contains !Hform.
               The !Hform application supplied is only suitable for RISC OS 3.1,
               so you have to change to RISC OS 3.1 as your O.S. There is a menu on the 
               floppy pane - follow 'settings' and choose RISC OS 3.1, then click 
               reset. have 1 or 2 harddiscs. Be sure that the (hardware) harddisc
               of your RiscPC has enough free space for the harddisc-sizes you want.
               Be sure that !Hform and maybe other modules are transferred to
               the harddisk that is not to be formatted, or on a floppy image.
               On the Net, an image is present from a Dealer floppy that you can use 
               to format harddiscs under Arthur -- I did not try this out however.
Formatting the harddiscs
               Now click the !Hform icon. The rest is as usual; the maximum 
               size of a harddisc is 1024 tracks, 128 sectors and 8 heads, 
               which results in a 256 MB harddisc. The 'harddisc' is,in fact, a file
               living on the harddisc of your hostcomputer. When you write more bytes to
               a file than the original size of that file, the hosts' filing system 
               automatically enlarges that file. The next time the emulator is reset,
               it checks for the existence of the FCFS 256byte-block at the end of
               the harddisc files and adds them if not present; only then,!FCFS can read
               the contents of the harddisc4 and harddisc5 files again.
               You might have some success in creating a 512 Mb harddisc. This is the maximum 
               size for ADFS under Riscos 3.1. Format a 'harddisc' with 2048 tracks,
               128 sectors/track, 8 heads, parking cylinder 2047. After running !Hform FIRST
               quit the emulator. Before quitting, the emulator will try to add an FCFS 
               postfix and to that end, it will fill in the missing megabytes 256.. 512.
               Hform (Riscos3.1 version) seems not to be able to format beyond 256 Mb.
               ADFS dos not seem to have this limitation, ie. it reads&writes up to 512 Mb.
               When Hform is running, you get some questions to answer; if you are asked
               whether to format or to initialise the harddisc, please do choose Format,
               otherwise the 'harddisc' may not get the correct size afterwards, and is
               unreadable and/ or has directory errors. It is, however, not necessary
               to soak test the formatted 'harddisc'.

               You can alter the number of harddiscs and floppies by pressing F12,
               and typing "*configure harddiscs <n>"<Return> where <n> is the number 
               of harddiscs, and resetting the emulator. Configuring less harddiscs than
               previously does not delete the harddisc5 or harddisc4 files, of course.
               
               IF anything goes wrong, and you want to reset the emulator to 1 floppy,
               no harddiscs,(ie. the default state on a new Archimedes) click in the
               screenwindow of the emulator(it getting the input focus, ie.titlebar getting
               yellow),press the RiscPC Delete key and click on the 'A' of 'Archimedes' on the 
               floppypane. Or choose a suitable reset option from Iconbar icon-->Menu-->
               Resets. Keep the Delete key pressed for some seconds. Alternatively,
               copy the cmosram settings to a safe place when they are the way you like them,
               and copy them back into the CMOS directory when needed or corrupted.
               The cmosram settings in the CMOS_deflt directory are settings obtained in
               the way just described.
Floppydiscs
               As ' floppy discs', you need ADF-images, raw ADI images, format-E ADF,
               format -D ADF,ADL or DOSFS images.  You can search the Internet for more
               ADF images, or create them yourself from your own floppies by reading 
               them in via the menu on the 'floppy bays' -->'Read from :0'.
               Traditionally, a number of different disc formats are understood by 
               Riscos machines. This emulator can read ADFS-L,D,E,F formats and 
               some DOS formats from diskettes. Reading them from the emulated desktop
               is a different matter.The operating system Arthur cannot understand 
               ADFSE and F and DOS;Riscos2 cannot understand F; !MultiFs under ROS2 
               understands only some DOS formats. Riscos 3 does not understand F format
               as a floppy, to read a F (77 files limitation ,10char filenames..) format,
               you have to rename it to harddisc4 or harddisc5 and swap it with the 
               harddiscfile already existing in the application directory.
               You can however read 1600K F-floppies from the floppydrive and save 
               them to a host computer directory, for backup purposes perhaps.
               A workaround to read 1600K images is, provide them with a FCFS extension if
               they don't have one already (ie. load into floppybay and resave as FCFS file)
               then drag it onto the a310 harddisc using EmuTrsf; run !FCFS, drag the 1600K
               file onto !FCFS , open the image in FCFS's window and you can inspect and drag
               out what you need.

Reading and writing floppy-images
               The program can read non-standard adfs-e floppies with extra sectors; the 
               format command for the RiscPC/Iyonix floppy controller seems not to be 
               capable of formatting differently-sized sectors on one track, however.

               To save other (normal-looking) images to a real diskette, you can go into
               the menu (floppybay-->menu-->store to:0 .Or drag the 'floppy' to the 
               Riscpc/Iyo diskette :0 icon. The floppy code still needs some refinement,
               it formats while copying which obviously is not always necessary, and 
               slow as well. Dragging the 'floppy' to :0 on an Iyonix does not work,
               because Iyonix has a different use for that gesture.

               The emulator accepts and writes 800K ADF images, 977 K ADI images (i.e. ADF
               with all the extra stuff that a physical floppy has: sector headers, CRCs
               etc.), and uncompressed 800K FCFS (filetyped Filecore) and all floppy 
               types that DOSFS understands. (i.e. DOS 160K single sided, double step 
               up to dos 1440K).
               The emulated 1772 disc controller has been pinched a little to be able 
               to read 1440K floppies under Riscos3. Riscos2,MultiFS cannot do this 
               (only 720K allowed).
               It also reads & writes, unsurprisingly, adl- images as created by 
               Masters and Electrons. These are AFS-L images.
               The 320K ADFS-L Electron images it can only read,afaik.

Transfering in and out 
               To transfer software from the RiscPC dektop to inside the emulator and 
               vice versa, the easiest way is to have Riscos3 and !EmuTrsf active,
               and drag files or directories from/to the RiscPC desktop right into/out 
               of the emulated Riscos3 desktop.  If errors occur, the best thing to do 
               is to press Reset in the EmuTrsf menu;  second best is, to quit EmuTrsf
               and restart it. If A310Emu has frozen, restart it by doing a reset 
               (Click on 'A' of Archimedes on the floppy pane window, or the Reset 
               button in the Settings dialogue window, or Reset in iconbarmenu).
               Such errors can occur, for instance, if an open file inside or outside 
               the emulator is accessed, or there is not enough space left to write 
               files, or a directory has reached it's 77 files limit.
               Second best to transfer software in and out, is to choose RISC OS 3,
               and then create a DOS 720K or 1440K diskette (follow the menu on 
               an empty floppy bay), save it as a DOSFS image, after saving,
               open the image (doubleclick), put files into it, close the image, 
               drag the image back to the emulator floppy bay, and double click on 
               the corresponding floppy icon in the RISC OS 3 desktop. As many
               file attributes are lost this way, it's advisable to compress it first 
               (!SparkFS, !PackDir) and unpack it in the emulator. I noticed that a 
               good source of modules for Riscos is to be found in your own computer,
               the directory is !Boot.Resources.!system.310; Riscos 2 also seems happy
               with them.

This program was initially made for Strongarm-equipped RiscPCs. since then it has
been readied for Iyonix and a9home, but some aspects (parallel port,singletasking)
needs sorting out for those machines. It has briefly been tried on an Omega, it behaves
like on a RiscPC there except for the floppydisc stuff.
In the single tasking mode the program prefers a display with pixel depth and
an number of horizontal pixels both the same for hostsystem and emulated computer
ie. when the 'Archimedes' has 800*600*4 bpp, it likes your RiscPC
to have the same dimensions and pixeldepth .Horizontal stretching is not yet developed.
Iyonix PCs seem not to be capable of low pixeldepths so less than 8bbb will not yet
not run on that machine.  Because of the smaller cache and lower clock speed on
non-SA machines it's really slow on  ARM710. (610 will not recognise the SMULL
instruction and OSes less than 3.50 don't support dynamic areas which the program uses).

The OS-images are elsewhere on this internet site. Their destination is the OS
subdirectory. Call them RO110,RO200 or RO310.Ready-made CMOS-images are in
the CMOS_deflt subdirectory in !a310Emu. If you suspect that the Cmos image is broken
or absent, make sure that the screen of the emulator has inputfocus (titlebar 
yellow) (by clicking inside the emulator screen window), keep a Delete- or an R 
key pressed and Reset the emulator (Click on 'A' of'Archimedes, etc.). Or copy one of
the cmosfiles from cmos_dflt to cmos directory, depending on ramsize and OS type.

----------------------------
 
The following is not of much use to you, I suspect; in the finished program it
will be left out/ maybe it will have an interface to a separate debugger prog.

A sort of development environment opens when you click ControlWndw in the
iconbar menu. USR, FIQ, IRQ and SVC buttons let you inspect the various register
sets in these modes.

The current mode status etc. of R15 is in the Status window.
At the top there are buttons to choose the current OS version and RAM size.

If it cannot find the OS version and/or the CMOS version it quitted - this has
been changed now, as these choices are preferably made in the menu.

Ramsize and OS settings become active on pressing 'Reset'(+R/+Del optionally, see above)
You can operate the interface in Continuous or Count instructions mode. In the
former the program just goes on and on, in the latter it emulates a number of
instructions equal to the number written after the slash / in the writable icon
to the right of aforementioned button. When ready, it fills in '1' after, and
the number of instrs performed before the slash / (So when you do not alter
this number it emulates just 1 instruction).

In both cases (continuous and Count instrs) you have to click the Go! or the
Reset button first.The Continuous/Count button resets the no_of_instrs
counter.  If the no-of-instructions in Count mode exceeds 2^31 the program
stops, so choose less. 

A number of buttons are created to inspect other things:
'mem' gives a view on memory locations around an address typed in the icon at 
bottom right. Don't forget the & before the number if you enter a hex number.

VIDC also gives some DMA values in the MMU, in particular, the sound pointers.
IOC are the ioc interrupt registers and timers.
Flop gives floppy disc status/register values; most info is related to the
emulated (1772) state machine.
HD gives the harddisc controller status.
There are some more options to play with; you can set breakpoints(I have no 
idea if it still works),dump a listing of instructions done, and the same but 
sorted,so that you get a compressed listing of only those locations that are 
visited. For this, there should be a subdirectory 'dumpfiles'.
The Scr button is to open the screen. For some buttons the Adjust Click actions
have do the opposite thing compared to Select-click.
The Kb button, this produces a  keyboard.  Note that the Alt, Ctrl, and Shift
buttons are radio buttons, you have to 'press' them with Mouse Select and
'release' them with Mouse_Adjust. The other keys are of Click type. I don't
know if this keyboard is still functional. Thiskeyboard can also be reached 
via Pane-->Keyboard.
The keyboard layout is like that of the A310 keyboard. For the A3000 layout, which is
similar to the RiscPC layout, the keyboard identity must be 2 - this should be
changeable in future versions.  (If I don't forget to implement it). Some early
software (Riscos 2 and before)  reckons on identity 1.  So for instance, if 
you hit Shift-2 you get @ when " is expected.

Various wisdoms: 
The OS images in the OS subdirectory are expected to have the names RO100,
RO110, RO200 and RO310. These images are elsewhere on my site.

RO200 was in DA Gilbert's Linux ARM emulator distribution.  RO310
isn't difficult to find with Altavista or similar, and RO100 or 110 = Arthur.

<routines to extract OSes from live Archimedesses>

The emulator expects the images in one big file, unlike Archie or RedSquirrel.

It's easy to join them, if you have IC24--IC27 from Archie:

  DIM space% 1^21
  OSCLI"load IC24/ROM "+STR$~space%
  OSCLI"load IC25/ROM "+STR$~(space%+(1^19))
  OSCLI"load IC26/ROM "+STR$~(space%+(2^20))
  OSCLI"load IC27/ROM "+STR$~(space%+(3^19))
  OSCLI"save RO310 "+STR$space%+" +200000"

You can also extract the files from your old Archimedes computer (preferred
method).

If you have more than 1 emulated floppydrive, you can drag floppies from one 
drive to the other. If you drag a new image onto a non-vacant floppybay, the 
floppy image there present is lost if it is not altered, otherwise it sticks on 
a place at the left; until you drag it away or discard it.

The A310 mouse pointer is attached to the RiscPC mouse when in the screen
window.  The geometry is OK if the size is not too huge.  Where
necessary/possible the program can double the x/y size of the pointer.
There is an option in the screen menu --> settings to keep your RiscPc pointer
on-screen, instead of the Archimedes form.

The emulator is somewhat faster if you choose an RiscPC screenmode with the
bits-per-pixel setting equal to the A310 mode. !Zarch, for instance, works best
in a 256-colour mode on the RiscPC.  And don't choose very large desktops.
800X600 or 1024X768 are fine. (Incidentally, Zarch crashes if started from a
multisync screenmode, e.g. 800X600 - it's best to restart the emulator properly
before and after running Zarch). This happens in the real A310 too, so I'm not
to blame :-) .

Planned are Display routines, single tasking, faster FP routines, (can't
get them to work, yet) , sound and putting it all into one small relocatable
module. Enjoy!


More info
---------
A very very useful URL is:
http://www.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/arm/

Scanned pages of the four Arm chips documentation can be found in the 
file-archive at Drobe.co.uk.

Most of the information about the ARM2 has been gathered from:

'Assembly language programming' by Peter Cockerell (MTC'87 ISBN 0-9512579-0-0)
Look on the Net for the HTML-ed version (AALP). My copy is almost shredded by 
the heavy use.

'Het microprocessor databoek', Elektuur BV, Postbus 75, 6190 AB Beek, Holland,
ISBN 90-70160-52-8 covers the ARM2 processor.

'Acorn Assembler' SKD 46, part of the documentation with the Acorn C/C++
package.

Information about the 3 peripheral chips (MMU,IOC,VIDC10) can be read in:
'Databoek periferie chips', Elektuur BV , ISBN 90-70160-77-3

Some additional information can be found in:
Technical Reference Manual A 3000, published by Acorn Computers Technical
Publications Department, Part nr. 0480, 055, ISBN 1 85250 074 3.
Especially POST, keyboard comms, memory map, schematics. Check this URL:
http://www.drobe.co.uk/archives/index.php?directory=/backwater.vetonline.vic.edu.au/pdf/

More schematics (A310 and A440) can be found on the Castle web site, as old
Acorn ftp stuff.  They were especially useful to find out how the physical pages
relate to actual addresses.

Information about I2c is to be found in various Philips databooks e.g. IC12a,
I2C compatible ICs

The 1772 floppy disc controller - look on the web:
http://www.buchty.net/ensoniq/files/wd1773.zip

The info for the H63463 hard disk controller was not to be found anywhere on
the net, despite innumerable searches.  Not on Hitachi's web site, nowhere else
too.  So I have reconstructed the innards, with profound gratefulness to Mr.
David Gilbert, from his harddisc code in ArcEm (the Unix/MacOS X/RISC OS
Archimedes emulator) and wrote the emulation in assembler. Some register/code
labels may remotely remind of his work. As of end 2011 there is a 63463 datasheet 
available for a slightly other version:
http://www.datasheet.hk/view_download.php?id=1566925&file=0284%5Chd63463-4_662761.pdf

Thanks to:
 ------------
All the members of Arctica, the Acorn user club, especially:
Cor Sinnema for ideas, encouragement,old software to try out, and the courage to
test the application in early stages.
Jan Rinze Peterzon for his Archimedes, technical help, ideas, motivation,testing.
 ------------
Matthew Thompson for his continuous support,valuable bug reports,game testing,
and many ideas for improvement.
Andrew Weston for valuable bug reports on BlackAngel especially.
Peter Naulls for reformatting this !help file. It will change a bit every release,but
I'll try to keep it organised. 
James Lampard for his code how to position the menus correctly. 
Alex Macfarlane Smith,Michael Gerbracht,Mark Rowan for really helpful bug 
reports, & suggestions how to improve it !

Thanks to everyone else who emailed me, for their interest and support.
 -------------
jandeboer@telfort.nl

website:www.tellima.nl/riscos/

