Part1 - Part2 - Part3 - Part4 - Part5

Comp.Sys.Acorn.FAQ part 2 of 5


From: Paul Vigay <csa-faq@riscos.org>
Subject: Comp.Sys.Acorn.FAQ part 2 of 3
Newsgroups: comp.sys.acorn.announce, comp.sys.acorn.misc
Date: Sun, 01 Mar 2009 00:00:06 +0000 (GMT)
Message-ID: <01Mar2009-faq2-csafaq@vigay.com>
Keywords: Frequent Questions Answers
Archive-name: acorn/faq/part2
Frequency: monthly
X-Cache: nntpcache 3.0.2 (see http://www.nntpcache.com/)
X-Usenet-Provider: http://www.giganews.com
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.39

WELCOME TO THE COMP.SYS.ACORN FAQ MONTHLY UPDATE.

This update is automatically generated by my machine, so please email me at
csa-faq [at] riscos.org if any parts are missing or corrupted.
--------------------------------- part 2 of 3 ------------------------------

----------------------------------------------------------------------------

Section 3: Hardware Issues & Compatibility

----------------------------------------------------------------------------

Q3.1) What do the hard drive error numbers mean?

The error numbers returned indicate the type of error encountered.
Exactly why slightly more meaningful messages are not returned I am unsure.
The error codes meanings are as follows :- 

   ST506 error codes
   &01  ABT     Command abort has been accepted
   &02  IVC     Invalid command
   &03  PER     Command parameter error
   &04  NIN     Head positioning, disc access, or drive check before SPC has
                been issued 
   &05  RTS     TST command invalid after SPC
   &06  NUS     USELD for a selected drive has not been returned
   &07  WFL     Write fault has been detected on the ST506 interface
   &08  NRY     Ready signal has been negated
   &09  NSC     Seek completed (SCP) wasn't returned before a timeout
   &0A  ISE     SEK, or disc access command issued during seek
   &0B  INC     Next cylinder address greater than number of cylinders
   &0C  ISR     Invalid step rate: highest-speed seek specified in normal
                seek mode
   &0D  SKE     SEK or disc access command issued to drive with seek error
   &0E  OVR     Data overrun (memory slower than drive)
   &0F  IPH     Head address greater then number of heads
   &10  DEE     Error Correction Code (ECC) detected an error
   &11  DCE     CRC error in data area
   &12  ECR     ECC corrected an error
   &13  DFE     Fatal ECC error in data area
   &14  NHT     In CMPD command data mismatched from host and disc
   &15  ICE     CRC error in ID field (not generated for ST506)
   &16  TOV     ID not found within timeout
   &17  NIA     ID area started with an improper address mask
   &18  NDA     Missing address mark
   &19  NWR     Drive write protected
   
   IDE errors
      - As ST506, except:
   &02  IVC     Command aborted by controller
   &07  WFL     Write fault
   &08  NRY     Drive not ready
   &09  NSC     Track 0 not found
   &13  DFE     Uncorrected data error
   &16  TOV     Sector ID field not found
   &17  NIA     Bad block mark detected
   &18  NDA     No data address mark
   &20          No DRQ when expected
   &21          Drive busy when commanded
   &22          Drive busy on command completion
   &23          Controller did not respond within timeout
   &24          Unknown code in error register
   
----------------------------------------------------------------------------

Q3.2) What can I do with a 'Broken Directory' or a corrupt Free Space Map?

DiscKnight, from the ARM Club, is the recommended repair tool, which fixes both the standard and RISC OS 4 long filename formats. It's available for the budget price of 10ukp and includes free support. A checking only version is available for free download from the DiscKnight website at http://discknight.riscos.org/

A shareware utility called 'fsck' is available to download from http://www.monesi.com/sergio/fsck.html and works reliably. However it doesn't support RISC OS 4 F+ format discs. A commercial version of fsck was available from Oregan Deveopments, as Oregan Disc Doctor. This is no longer available.

Another commercial disc repair application was available from Look Systems, called ADFS Rescue which also appears to be no longer available. Look Systems can be found at http://www.looksystems.org.uk/

Paul Vigay's Disc Commander application will allow you to edit bad sectors by hand and will work with the new F+ format discs under RISC OS 4 or above. However, it does have automated recovery, so is mainly designed for people who feel competant at manually editing sectors and want a powerful tool for performing disc operations. More information can be found at http://www.vigay.com/software/commander.html

----------------------------------------------------------------------------

Q3.3) What does the power on self-test check?

The power on self test was introduced with RISC OS 3.0 and later versions of the OS. On power up your machine checks the hardware for physical faults before letting you use it, hopefully signalling important errors to you before further hardware damage can result.

The purple screen at power on indicates that the self-test has begun. A brief ROM, RAM, VIDC and IOC test is performed and then the screen colour changes to blue and a limited memory test [1] is performed, along with a second test of the VIDC and IOC. When the screen returns to purple, the machine is testing for an ARM3 (or better). At the end of this sequence the screen colour is set to green (for pass) or red (for fail). If the tests have all passed then the machine starts to boot and the RISC OS welcome
 screen is displayed.

RISC OS Select introduced some more tests (and screen colours). For detailed documentation on Select system initialisation, see http://select.riscos.com/prm/startup/systeminit.html

If any test fails, the screen will remain red and the disc drive light will blink a fault code. A short flash is used to indicate a binary '0' and a long flash indicates a binary '1'. The bits are grouped into eight nybbles (blocks of four bits) with the most significant bit first.

The lowest seven bits are a status word. The meaning of each bit is given below in hex :- 

00000001   Self-test due to power on
00000002   Self-test due to interface hardware
00000004   Self-test due to test link
00000008   Long memory test performed
00000010   ARM ID detected (ARM 3 fitted for non-RiscPC hardware)
00000020   Long memory test disabled
00000040   PC-style IO world detected
00000080   VRAM detected

Bits 8-31 indicate the fault code and are described below. Not all the bits are used. If the code is marked as reserved on the RiscPC this means that error number is currently either unassigned or it's meaning on older hardware is no longer sensible for the newer machines (and thus it's meaning may be reassigned on the newer versions of the OS.)

00000100   CMOS RAM checksum error
00000200   ROM failed checksum test
00000400   MEMC CAM mapping failed (A reserved code on the RiscPC)
00000800   MEMC protection failed (A reserved code on the RiscPC)
00001000   (A reserved code on the RiscPC)
00002000   (A reserved code on the RiscPC)
00004000   VIDC Virq (video interrupt) timing failed
00008000   VIDC Sirq (sound interrupt) timing failed
00010000   CMOS unreadable
00020000   RAM control line failure
00040000   Long RAM test failure
00080000   (A reserved code on the RiscPC)

Some third party VIDC enhancers on older hardware trigger the self test to fail. If you are getting a failed self test with a VIDC enhancer, yet the machine is working fine, enter and run this BASIC program and then save your CMOS settings:-

REM Toggle state of power on self test bit in CMOS
REM Read byte
SYS "OS_Byte",161,&BC TO ,,byte%
REM EOR byte with mask for bit 1
byte% = byte% EOR %10000000
REM Write byte back again
SYS "OS_Byte",162,&BC,byte%
END

This modifies the self test to cope with the VIDC enhancer. 

[1] By limited it meant that it verifies the VRAM, if present, and checks the first 4 MB of RAM in the machine. (Or so I am told.)

----------------------------------------------------------------------------

Q3.4) My Real Time Clock has paused, how do I restart it?

This is a problem caused most often by 'rogue' software chatting to the IIC bus and incorrectly setting the pause bit on the RTC control register.
Symptoms of this happening are that the time is always the same every time you reboot and the software clock tends to run slightly slow (losing about a minute every hour or so.). If you are experiencing these symptoms this program should restart your RTC clock :-

REM poke RTC control register
REM  Bit   0         1
REM   7   Count  ResetDivider
REM   6   Count  HoldLastCount
REM write 0 for normal operation, write &80 or &40 freezes RTC
DIM cmosdata% 16
!cmosdata%=&00000000
REM write 0 twice to RTC, first 0 is address- control reg
REM second is control reg value 0 is default i.e. clock on
SYS &240, &A0, cmosdata%,2
END

You will need to reset the time after running this program but hopefully your RTC will keep the correct time from here on in.

If the same symptoms persist after trying this program contact your local Acorn dealer as something more serious has gone wrong. Note that to check that the symptoms are persisting you must reboot your machine after running this program and having set the time. This is due to the way RISC OS maintains a 'soft' copy of the real time clock and until you reboot it will not be obvious whether your RTC has indeed started working again.

----------------------------------------------------------------------------

Q3.5) Why doesn't *Speaker work on my machine?

The *Speaker command does not work on newer RISC OS machines. The A300, A400, A3000, A540, A5000 and A4 all had software control of the built-in speaker. With newer machines this feature has been removed in favour of a automatic hardware cut off of the speaker when a jack is inserted into the sound socket on the machine.

However to ensure compatibility with old software the command *Speaker has been left in the OS, it merely doesn't do anything.

----------------------------------------------------------------------------

Q3.6) What can I do about my fan making excessive noise starting up?

This is a problem primarily with the Risc PC machines caused by the fan lubrication drying out. Symptoms generally include the fan making a lot of noise when the machine starts and then, once warmed up, the noise going away. Progressively the amount of warm up time gets longer and longer.

The solution, and this should only be attempted if you are confident in handling your machine's internal components, is to strip the machine down to it's base slice. Remove the label from the fan and the rubber bung from the bearing. Place a drop of three-in-one oil (and not WD40) on the bearing. Replace the bung and reassemble the machine, your problem should be cured.

----------------------------------------------------------------------------

Q3.7) After fitting the RISC OS 4 upgrade my CD Rom reports 'Drive Empty'.

This is generally caused by upgrading machines fitted with slower CD Rom drives to RISC OS 4 and is caused by the CDFSSoftATAPI module trying to access the drive too fast. One remedy is to obtain a soft-loadable version of CDFSSoftATAPI from RISC OS 3.7, copy it into your !Boot.Choices.Boot.PreDesk directory and then *UNPLUG the CDFSSoftATAPI module in RISC OS 4.

Please feel free to email me if you encounter this problem because I encountered it myself upon fitting RISC OS 4.

----------------------------------------------------------------------------

Q3.8) Occasionally a fairly early model Risc PC will completely hang for no apparent reason, usually when filer windows are redrawn.

Such freezing during Filer redraws can be caused by applications using 256 colours sprites without a palette (it's a bug in RISC OS 3.7). Only sprites private to the task trigger the problem, not the icons used by the Wimp (those in files !Sprites and !Sprites22). Note which applications are loaded when the freezing occurs and add a palette to any 256 colours sprite they use.

----------------------------------------------------------------------------

Q3.9) What IDE drives work on Acorn machines?

There are so many drives and interfaces available, it's not feasible to maintain a complete list in the FAQ itself. Therefore I've compiled a comprehensive list of compatible IDE drives which is available online at http://www.riscos.org/legacy/drives.html

----------------------------------------------------------------------------

Q3.10) What are the master/slave link settings for my IDE Drive?

Most modern drives have this information on a label on the drive itself.
A list of drive settings for some of the older drives is maintained at http://www.riscos.org/legacy/drives.html#links

----------------------------------------------------------------------------

Q3.11) Why won't my Western Digital IDE drive work after a cold boot?

Due to an obscure interaction between Acorn's IDE implementation and the Western Digital drives a problem occurs in that the computer becomes unable to find the Boot record that details the shape, format and other data of the hard drive. This results in a somewhat alarming and frustrating series of error messages that seem to indicate that the drive isn't formatted at all.
(And by extension implying that you have lost all your information stored on the drive.)

Fortunately that isn't the case. In reality your information is safe and sound on the drive and you merely need to give ADFS a helping hand in finding the boot record, after which it can carry on as normal. This BASIC program supplies dummy values to ADFS that allow it to do that.

REM> Specify
drive%=4
DIM rec% 64
FOR I%=0 TO 60 STEP 4:rec%!I%=0:NEXT
rec%?00=   9 : REM Sector size, 2^9 = 512
rec%?01=   8 : REM Sectors per track
rec%?02=   1 : REM Heads
rec%!16=4096 : REM Disc size in bytes
rec%?41=   0 : REM LBA mode disabled
SYS "ADFS_SectorDiscOp",,15+(rec%<<6),drive%<<29
END

(Thanks to Eduard Pfarr for this program.) 

Running this program once, during boot up, will allow the drive to be used normally. This does mean, for the moment, that you cannot boot from a Western Digital IDE drive.

NB for RISC OS 3.10, or earlier versions of RISC OS, you will need to replace the ADFS_SectorDiscOp with an ADFS_DiscOp call instead.

----------------------------------------------------------------------------

Q3.12) What peripherals work with RISC OS?

The FAQ used (up to March 2008) to contain a comprehensive list of various peripherals, such as hard discs, magneto-optical drives, tape, CD-rom, and related interfaces etc. However, this list was vastly out of date and aimed mainly at legacy Acorn machines.
Because the list was largely irrelevant to the majority of readers, the list has now been archived at http://www.riscos.org/legacy/peripherals.html

----------------------------------------------------------------------------

Q3.13) What specification memory can I use with my RISC OS machine?

Iyonix PC
~~~~~~~~~
The Iyonix takes 128MB, 256MB, 512MG or 1GB 184 pin DDR RAM rated at 200 or 266MHz. PC manufacturer PC2100 (CL2.5) RAM should be ok.

Risc PC
~~~~~~~
RAM for the RiscPC, while a standard 72pin SIMM, must be bought with a degree of care to avoid potential damage to your machine. EDO RAM, while it will work, is not advised as it may have different power requirements that could be detrimental to your machine.

The RAM required is 70ns (or faster), 72pin, square array (equal number of bits used for row and column addressing), non-parity RAM that supports 'fast page mode' and 'CAS before RAS' refresh. Devices that contain more than 16 memory chips (8 on each side) is not recommended as they may have power requirements above and beyond what the computer can safely supply.
Consequently SIMM 'stackers' and 30 to 72pin adaptors are also not advised.

For the more technically inclined out there maximum loads possible are:-
Address    128pF
WE         140pF
CAS or RAS  59pF
Data bus    29pF

Finally, in the maintainers experience anyway, Hitachi parts seem to be fine.

The Risc PC Kinetic update uses 64MB, 128MB or 256MB (RISC OS 4.39 or above required for 256MB) SODIMM memory modules.

A7000
~~~~~
The A7000 range of machines take Fast Page Mode (FPM) SIMMS.

----------------------------------------------------------------------------

Q3.14 What's the biggest hard drive I can fit?

RISC OS 3.5 and earlier can only support drives up to 512MB. For maximum efficiency, it's recommended that you format the drive to 499MB.

RISC OS 3.6 to 3.7, on Risc PC or A7000 hardware can support up to 128GB drives. ADFSBuffers should be configured to 0. Due to an inefficient file allocation system (see Q3.15) RISC OS 3.6 & 3.7 is wasteful of disc space if you're storing a large number of very small files.
N.B. Some older interfaces may not support more than 20GB due to old style code which only addresses the first 20GB.

RISC OS 4 and above can support up to 128GB drives. The Iyonix hardware will support drives of up to 256GB but UDMA is only supported on the first 128MB.

Most modern drives over 40GB won't work when connected to the RPC motherboard interface. Instead, it's recommended you fit a third-party IDE interface capable of handling large drives if you want to use drives larger than 40GB.

----------------------------------------------------------------------------

Q3.15) To what size should I partition my Hard Drive?

This is a complicated question to answer with any hard and fast rules.
For starters the media and filing system being used must be considered. If you are using an IDE drive under ADFS then you usually should have your drive formatted as one whole partition due to ADFS' inability to support multiple partitions. (Although third party extensions, like Alsystems PowerIDE software, can extend the default IDE interface to include partioning.) However this is not always true and sometimes it can be beneficial to sacrifice a few Mbs of partition size to gain tens of Mb savings in red
uced space wastage when storing files.

RISC OS uses, and through FileCore virtually all filing systems share this, a fairly complicated map system that tries to make a reasonable compromise between filing system overheads, speed and flexibility. For drives 512Mb or less this system works quite well. With the advent of easily available multiple Gb size drives the system begins to suffer a little.

For reasons that are beyond the scope of the FAQ to explain RISC OS links the LFAU (Large File Allocation Unit) to the minimum object size on a disc by a ratio of sixteen to one. Thus a two byte sized file occupies a minimum of sixteen kilobytes of actual disc space to store. There is an important exception to this involving the sharing of map entries, and thus disc space, but the general rule is as above. This table summarises the relationship between LFAU, disc size and minimum object size.

lfau   max disc size   min object
----   -------------   ----------
 1K      499M bytes        16kb
 2K      998M bytes        32kb
 4K     1996M bytes        64kb
 8K     3992M bytes       128kb

Consequently it can be easily seen that the larger the partition size the larger the individual file overheads of storing it becomes. (NB It is worth pointing out that Image Filing systems do not share this overhead directly.)

Thus which partition size you should aim for depends on what you intend doing with the drive. If you are primarily storing Replay films then given the multi-megabyte size of the files the overheads required for storing each file is percentage wise less and it is more important to have bulk disc storage available than it is efficiency of space utilisation. On the other hand running a news spool will involve thousands of files averaging around the seven kilobyte mark, thus a smaller partition size will great
ly reduce space wastage to filing system overheads.

In the FAQ maintainers experience a good compromise size seems to be the just sub one gigabyte mark.

----------------------------------------------------------------------------

Q3.16) What is the maximum size for a file under RISC OS?

No current filing systems support over 2GB.



----------------------------------------------------------------------------

Section 4: RISC OS Configuration

----------------------------------------------------------------------------

Q4.1) What is ADFSBuffers and what is the best setting for it?

ADFSBuffers are Read Ahead and Write Behind buffers for ADFS on RISC OS. These are designed to improve the speed of filing operations by doing work at optimum times. There are some side effects of using them though. When active under RISC OS v2.00 and v2.01 discs must be dismounted before being removed from the floppy drive. Failure to do so results in the dreaded 'FileCore in use.' error. However if you are prepared to sacrifice the speed improvement they give configuring the buffers to 0 does remove this
 problem. (Or so I am informed.) 

Under RISC OS v3.00, as supplied with the early A5000 machines, these buffers generate a different problem and must always be configured off. Failure to do so results in spurious errors when using the Hard Drive on an early A5000. Symptoms include reformatting of crucial sectors of the disc, disc address errors and general failure to save files to the drive. So when using an A5000 with RISC OS 3.00 remember to configure them off!

With RISC OS v3.10 all of the old problems have been cured with a new one introduced. Namely that if you have only a few ADFSBuffers configured and are accessing the floppy drive then your machine can occasionally lock up completely for you. It appears that any value of ADFSBuffers above 8 causes that problem to be largely alleviated (read it only occurs rarely at these settings). So under RISC OS 3.10 it is recommended that you set your ADFSBuffers to 8+. There is a patch module available, called ADFSUtil
s, that does fix this problem - contact your local dealer for a copy of it.

By default RISC OS 3.5 seems to have all of these problems cured and no new bugs introduced. 

Under 3.5 the number of ADFSBuffers can be left at the OS's discretion and generally the OS chooses a number based on the amount of memory present in your RiscPC. Unfortunately this cannot be said of RISC OS 3.6, 3.7 or 3.5 using a softloaded copy of the 'extended' FileCore. When running under these conditions if you have a hard drive partition larger than 2 GB then the buffers must be configured off to allow the drive to work, however installing ROM Patch 3 from the Acorn ftp site will fix this bug with l
arge hard discs. 

As for the optimum settings for ADFSBuffers, from some speed tests conducted on an A5000, then it has been observed that configuring the maximum of 255 buffers increases drive access speeds by 40-50% (this varies considerably with the type and make of drive) over accesses with no buffers at all. However it achieves only a 15-20% gain over using 32 buffers.

All in all ADFSBuffers behave in a fashion standard for caches. Enlarging the cache size does produce increasing gains, but there are increasingly limited gains as the cache size enlarges. So 255 buffers is better than 128 buffers but not twice as good. However at the low end there does seem to be a degree of synergy between the caches and the drive that means that 64 buffers is twice as good as 32 buffers. Accordingly I recommend that people use at least 64 buffers, more if they can spare the RAM.

----------------------------------------------------------------------------

Q4.2) How do I enable solid drags in RISC OS?

RISC OS 3 or above, supports solid icon drags within the desktop.

Solid drags are controlled by bit 1 in byte 28 of the CMOS RAM. Setting this bit enables solid drags on all solid drag 'aware' applications. However setting this bit using a *FX command from the command line is a foolish way to do it, as this will unset/set the other 7 bits in that byte which have meaning to FileSwitch and the Wimp. Accordingly the recommended way to set this bit is using a program like this BASIC one enclosed below :-

REM Toggle state of DragASprite bit in CMOS
REM Read byte
SYS "OS_Byte",161,&1C TO ,,byte%
REM EOR byte with mask for bit 1
byte% = byte% EOR %10
REM Write byte back again
SYS "OS_Byte",162,&1C,byte%
END

Which safely sets bit 1 while preserving the settings of the other bits.

-----------------------------------------------------------------------

Section 5: Software Issues

----------------------------------------------------------------------------

Q5.1) Why does DOSFS corrupt my files occasionally?

Under RISC OS 3 DOS, and indeed with any other ImageFS filing system, discs are treated as one large file and ADFS applies write-behind buffering to nearly everything it does. (See the question on ADFSBuffers for more details about this.) This means while working on a DOS disc the entire disc is treated as one large open file.

However as long as a file is held open the cache is not flushed out fully till the machine is explicitly told to do so. This means when working with non-ADFS format discs always dismount them before removing them from the drive. With ADFS format discs this is not so critical, as files aren't held open during most operations on them, but it is good to get into the habit of dismounting floppy discs.

----------------------------------------------------------------------------

Q5.2) Where can I obtain the latest version of module X?

All patch modules, official RISC OS extensions and the like can be sourced from the RISC OS ftp sites. Ideally your dealer will also have copies of them too and you should be able to obtain them from them. (If they don't you may like to pass on the ones from the ftp site, if you request them, so that they are up to-date.) Failing that you should probably contact RISCOS Ltd who now manage all aspects of RISC OS development.

I am also in the process of compiling a complete list of up-to-date module version numbers, together with links to where you can download them from. This database is online at http://www.riscos.org/support/modules.html

----------------------------------------------------------------------------

Q5.3) What are the current File-type allocation ranges?

Acorn originally reallocated the File-type ranges for applications. The new ranges are :-

  Non-user area
    &E00-&FFF   Acorn/RISCOS Ltd
    &B00-&DFF   Commercial software
    &A00-&AFF   Acornsoft, and other commercial software
    &400-&9FF   Commercial Software

  User area
    &100-&3FF   Non-commercial distributed software (ie PD)
    &000-&0FF   User's personal usage (ie non-distributed)

75% of the user area is for PD/Shareware, with allocations co-ordinated by RISCOS Ltd. If your software is going to be distributed, you should have an allocated filetype to avoid clashes.

RISCOS Ltd cannot publish its master list of filetypes because, at any given time, it will contain allocations made for products which have not yet been announced. Therefore, they would be in breach of confidence by doing so - and the editing overhead for producing a sanitised list is too great.

However, all is not lost. Denis Howe maintains an unofficial list of filetype allocations. This can be found at http://foldoc.org/acorn/doc/filetypes and includes details about whether the allocation is an official one, a de facto one and what the file contains. If you would like an official 'Acorn' filetype issued to you, you should contact allocate@riscos.com, who are responsible for allocating filetypes.

----------------------------------------------------------------------------

Q5.4) Is there a Modula 2 compiler for RISC OS?

Currently, no. Acorn did have, in the early days of the experimental ARM work, an in house compiler. However this compiler was sufficiently unstable and buggy to be un-releasable as a commercial product and was only used because in house support was available immediately to the users of the compiler. When Olivetti invested in Acorn this technology went to them so that Acorn no longer have even an in house Modula 2 compiler.

However some companies have stated intentions to produce Modula 2 compilers for RISC OS. Whether these intentions become reality has yet to be seen.

----------------------------------------------------------------------------

Q5.5) What Programming Languages are available for RISC OS machines?

This is a list of freely available programming languages and programming tools for Acorn Risc OS computers. Some of the items are in the public domain, some are not. I will be grateful to receive emendations and further items. Many items of legacy software are stored in the Orpheus filestore at http://downloads.orpheusweb.co.uk/pub/RISCOS/

Imperative Languages
--------------------
- ADA bytecode interpreter from http://www.mirror.ac.uk/micros/arch/riscos/c/c052

- ADA GNAT 3.03 compiler from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/ada/ and further information from http://www.huber-net.de/ada/

- ALGOL 68S from ftp://ftp.cs.man.ac.uk/pub/chl/A68S

- AWK - Aho, Weinberger and Kernighan's text-processing language from http://www.wra1th.plus.com/awk/

- CHARM from David Pilling 

- ICON 9.3 By ftp from ftp://ftp.cs.arizona.edu/icon/

- G77 3.4.6 GNU FORTRAN from http://fortran.orpheusweb.co.uk/gnu/

- GCC GCC 3.4.6 GNU C, C++, Objective C Compiler, release 3 from http://www.riscos.info/index.php/GCC_for_RISC_OS

- LUA - prize-winning extension language from http://lua.riscos.org.uk/

- OBERON POT 1.33 (Portable Oberon Translator) from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/oberon/

- PASCAL PC 4.09 Norcroft DDE Compiler from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/pascal/

- PASCAL GPC 1.0.2 - Gnu Pascal Compiler from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/pascal/

- PERL 5.8.8 from http://www.cp15.org/perl/

- PYTHON 2.4.1 from http://www.schwertberger.de/python.html

- Regina REXX 2.05 from http://www.ashm78.dsl.pipex.com/Regina/Home.htm

- RLAB 1.25 from http://www.mirror.ac.uk/micros/arch/riscos/e/e022

- TCL 7.4 from http://www.mirror.ac.uk/micros/arch/riscos/e/e057

Object Oriented Languages
-------------------------
- ARMBOB 2.1 from http://www.wra1th.plus.com/bob/

- GC++ GNU C++ 3.4.6 from http://www.riscos.info/index.php/GCC_for_RISC_OS

- Squeak 3.8 (Smalltalk) from http://rowledge.org/tim/squeak/RISCOSSqueak.html

- GRS from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/grs/

- INFORM 6.30 from http://www.ifarchive.org/indexes/if-archiveXinfocomXcompilersXinform6Xexecutables.html

- LITTLEST 0.0 Little Smalltalk from http://www.mirror.ac.uk/micros/arch/riscos/a/a102

- OBJECTIVE C GNU 2.7.2 from http://www.mirror.ac.uk/micros/arch/riscos/b/b013

- SATHER ISCI Sather 1.1 - Mail to Peter Naulls

Declarative Languages
---------------------
- BIBPROLOG 3.30 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/prolog/

- GOFER 2.30a (GoOd For Equational Reasoning) from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/ See comp.lang.functional FAQ.

- HOPE 4.02a from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/

- HUGS 98 - latest version of Haskell Users Gofer System from http://shiell.cjb.net/files/hugs98-src-riscos.zip

- HUGS 1.3 (Haskell Users Gofer System) from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/ See comp.lang.functional FAQ.

- HU-PROLOG 1.62 Humboldt University Prolog from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/prolog/humbolt/

- MOSML 1.42 - Moscow ML port by Andrew Hunter from http://www.geocities.com/~cfsfcpage/

- OCAML 2.00 - Objective CAML port by David Fletcher from http://www.dcs.ed.ac.uk/home/djf/ocaml/

- SML 4.0.01 Edinburgh Interpreter from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/

Forths
------
- AFORTH 0.70 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/forth/

- FORTHMACS 3.1 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/forth/forthmacs/

- TILEFORTH 2.1 Portable C implementation from http://www.mirror.ac.uk/micros/arch/riscos/a/a111

- WIMPFORTH 1.0 from http://www.mirror.ac.uk/micros/arch/riscos/e/e096

Lisps
-----
- CLISP 01.01 Common Lisp from http://downloads.orpheusweb.co.uk/pub/RISCOS/DemonFTP/languages/

- FOOLSLISP 1.3 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/lisp/

- GNU SCHEME from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/scheme/

- SIOD 2.90 (Scheme In One Defun) from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/scheme/ Also see George Carrette's site.

- XLISP 1.60 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/lisp/xlisp/

- XLISP+ from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/lisp/xlisp/

ARM AOF Assemblers
------------------
- AOFLIB 0.07 create AOF files with the Basic Assembler. From http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/acornet/long/development/assembler/

- AS 1.26b from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/assembler/

- ASM 2.01 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/assembler/

- EXTASM 1.00 from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/assembler/

- TLA 0.2a (The Last Assembler) from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/assembler/

AOF Tools
---------
- ADDFILE 0.05 from Plasma Sphere BBS (tel.+44 1925 757920/1). Embed data in AOF files.

- DECAOFB 1.00 - decode AOF files. From http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/aof/

- DRLINK 0.28 Linker from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/acornet/long/development/c/drlink/

- MAKEALF 1.03 - tools for Chunk files. From http://www.mirror.ac.uk/micros/arch/riscos/d/d039

Miscellaneous
-------------
- J 6.2 (APL-like language) from http://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/lang/apl/

----------------------------------------------------------------------------

Q5.6) Why does the RO3.5 desktop sometimes revert to the system font?

This is due to a bug in the RISC OS 3.5 Wimp module. Applications that have outline fonts in their icons and a validation string of R5 or R6 (slabbed icon) will trigger this bug and cause the desktop to revert to the system font. There are two solutions to this problem depending on your level of computer literacy.

The easiest solution, for people who are very shy of template editors, is to complain to the author(s) of the application about this problem and get them to fix it. If you are not shy of template editors you could also go in and edit the applications templates so that none of the slabbed icons have outline fonts in them.

----------------------------------------------------------------------------

Q5.7) Why does ChangeFSI display a blank white window, not an image?

Versions 1.13S (and later) of ChangeFSI now have the RISC OS 3.6 JPEG support built-in. However the code has been designed to fail 'gracefully' if the support code is not available in the OS. For instance when you run the software on versions of the OS older than RISC OS 3.6. In this case a blank white window is displayed.

To regain normal use of ChangeFSI go to the main menu and select Sprite Output instead of JPEG output. Next time you load a picture, or re-process the current one, an image will be displayed. The JPEG Output option is not greyed out because even though no image is displayed you can still save the processed file as a JPEG.

For those of you with RISC OS 3.5 the module can be obtained from the Orpheus download repository at http://downloads.orpheusweb.co.uk/RISCOS/PD/Modules/SpriteExtend.spk
This can be softloaded in your Boot.PreDesk sequence to use it.

If you've got RISC OS 3.10 you'll need to load the "JPEGMsgs" and "JPEGRender" modules BEFORE you load ChangeFSI. These were available on Acorn User CD no.8 (inside the $.Boot.Newboot.!Boot.Resources.!System.310.Modules directory)

----------------------------------------------------------------------------

Q5.8) What causes the 'nager:Sprites22' error?

This is both a tricky and simple question to answer. The cause of the error is unknown, but something is erroring. However rather than displaying the error message RISC OS has a subtle bug in it that causes it to display the above error message instead. The sequence goes like this:-

- An error occurs.
- The wimp realises it needs to load the hi-res toolsprites & loads them.
- The wimp then displays the error message.

Unfortunately the process of loading the his-res toolsprites over-writes the buffer containing the original error block. (IE the block of memory with the error number and error message in it.) What it overwrites it with is the string 'WindowManager:Sprites22', which is a path reference to where the hi-res toolsprites are to be found.

This error has been corrected in RISC OS 3.60 and later versions of RISC OS. (Thanks go to Alan Glover for this information.)
Additionally the error can be provoked by conflicting versions of the DrawFile module being loaded. If you are experiencing this error message then it is worthwhile to scan your hard drive looking for all copies of the module and ensuring they are consistantly the latest version of the module.

----------------------------------------------------------------------------

Q5.9) Is there a Real Audio or Real Video player for Acorns?

Unfortunately not. A Real Audio player was written for NCOS but is not useful for most RISC OS machines due to it's dependance on the presence of hardware Floating Point. An integer arithmetic version was written by Warm Silence Software for StrongARM equipped machines but was never released due to licensing issues.

However, Kira Brown and Justin Fletcher ported an Amiga RA player to RISC OS which you can download from my RealAudio page at http://www.vigay.com/thirdparty/realaudio.html

This version however will not play 'streaming' RealAudio or many of the newer RA files.

----------------------------------------------------------------------------

Q5.10) Is there any 'streaming audio' player software available for RISC OS machines?

There are a number of streaming audio players for RISC OS available from http://www.duffell.riscos.me.uk/ which will allow you to listen to radio stations via the internet, assuming they use the SHOUTcast or MP3 audio streaming protocols.

----------------------------------------------------------------------------

Q5.11) How do I get a faster interrupt timer than the centisecond ones?

For this you require the use of IOC Timer 1, a 2MHz timer unused by RISC OS and claimable by code for use. Details of how to program the timer are available in the IOC datasheets, or you could look for various PD utilities like TimerCtrl that handle the timer for you.

I am informed that the Acorn TimeCode system now lays claim to Timer 1 and that software using it is deprecated.

----------------------------------------------------------------------------

Q5.12) How can I create Interlaced GIFs on Acorn machines?

Four utilities exist to let you create these.

spr2gif will take a sprite and convert it to a gif file. It will interlace and render transparent the gif as well. For the transparency it uses the colour of the first masked pixel it encounters in the sprite - suitable for automated gif image creating. (No need to twiddle with specifying transparency colours.)
Available from http://downloads.orpheusweb.co.uk/pub/RISCOS/DemonFTP/graphics/spr2gif.arc

WebGIF, by Ian Jeffray allows you to add transparency and interlacing to your GIFs as well.
Available from http://ian.jeffray.co.uk/riscos/

Creator, from about v2.00, can create interlaced GIFs. However you have to specify the transparency colour directly.
Available from http://www.riscos.org/cgi-bin/linksdb?q=gr0021&c=Graphics&d=x

And finally InterGIF not only can create interlaced, transparent GIFs but is capable of creating animated ones as well.
Available from http://www.riscos.org/cgi-bin/linksdb?q=gr0078&c=Graphics&d=x

On top of these utilities an increasing number of commercial programs can create Interlaced GIFs, such as Photodesk and ArtWorks2.

----------------------------------------------------------------------------

Q5.13) Is the PC Card software still available?

Yes. You can currently download it from RISCOS Ltd's website at http://acorn.riscos.com/riscos/releases/pccard/ or from http://www.riscos.info/index.php/PC

----------------------------------------------------------------------------

Q5.14) How do I obtain an allocated filetype or SWI chunk for my software?

When developing new software, you should try to ensure that any filetypes or SWI calls are unique to your software. This will ensure that your new application doesn't cause conflicts with any existing software.
In order to to this you should apply to RISC OS Open in order to register your application name and any system variables, SWI calls or any filetypes your application may require.

The !Allocate application will do this for you, which can be downloaded from http://www.riscosopen.co.uk/content/allocate and your request should be emailed to allocate@riscosopen.org


----------------------------------------------------------------------------
- Comp.Sys.Acorn FAQ ---------------------------------- End of part 2 of 3 -

This FAQ is maintained by Paul Vigay (csa-faq [at] riscos.org)
Please email me with any queries/amendments or problems.
----------------------------------------------------------------------------



Part1 - Part2 - Part3 - Part4 - Part5


Send corrections/additions to the FAQ Maintainer:
Paul Vigay (csa-faq [at] riscos.org)

Last Update May 28 2010 @ 06:26 AM