Comp.Sys.Acorn FAQ List Posting (Part 2/4) Archive-name: acorn/faq/part2 Frequency: monthly 2.4) Are there any Acorn cards for IBM PC or compatible machines? Yes. Three cards in total :- * Springboard. ARM 2 processor. 4096k Memory. 8 MHz RAM. Brazil OS. * PC ARM development system. Precursor to Springboard. Hardware functionally identical. * Ecolink. An econet link card for the PC. ---------------------------------------------------------------------------- 2.5) What is a VIDC enhancer? Will I need one for my new multisync monitor? A VIDC enhancer is basically a clock change for your VIDC. Most Arcs (bar the A540 and newer machines) have 24 MHz VIDC chips installed in them. A VIDC enhancer increases this to 36 MHz allowing much higher resolution screen modes to be displayed on your Arc. (800x600x16 or SVGA standard becomes available.) You do not need one to use a Multisync monitor - the standard VIDC handles that just fine. However having a VIDC enhancer is only really useful if you do have a Multi-sync monitor. Note a VIDC enhancer is unnecessary and incompatible with the RiscPC range of machines. ---------------------------------------------------------------------------- 2.6) What configuration of serial cable should I use for modem work? Here follows a diagram of the necessary connections for common terminal programs to work properly. They are as far as I know the informal standard agreed upon by commercial comms software developers for the Arc. Pins 1, 4, and 8 must be connected together inside the 9 pin plug. This is to avoid the well known serial port chip bugs. The modem's DCD (Data Carrier Detect) signal has been re-routed to the Arc's RI (Ring Indicator) most modems broadcast a software RING signal anyway, and even then it's not really necessary to detect it for the modem to answer the call. Arc (9 pin) Modem (25 pin) ----------- -------------- +---1---DCD | | 2---RxD------------------------RxD----3 | | 3---TxD------------------------TxD----2 | +---4---DTR------------------------DTR---20 | | 5---0v-------------------------SG-----7 | | 6---DSR------------------------CTS----5 | | 7---RTS------------------------RTS----4 | +---8---CTS 9---RI-------------------------DCD----8 Of course you can connect the Modem pin 20 to any one of pins 1, 4, or 8 on the Archimedes plug, as they are all connected together anyway. Chocks Away Extra Missions (the flight simulator from 4th Dimension) suggests that the serial cable be wired as above except that pins 1-4-6 are connected together and the modem's CTS (pin 5) be connected to the Arc's pin 8 (ie the connections at pins 6 and 8 be swapped over at the Arc's end). This has been tried and it also seems to work fine. However newer Arc's like the A5000 have come out (and indeed the occasional A310) with a `corrected` serial port. This newer serial port operates as it should and is directly compatible with standard PC cables. Older comms software about do not take this in account and assume that you have a cable patched in the manner described above. If you do not use such a patched cable on these `fixed` serial ports this software will generally fail to work completely. (Usually hardware flow control fails.) With the advent of the Risc PC a standard PC cable is advised. ---------------------------------------------------------------------------- 2.7) How can I get unfiltered sound from an Acorn machine? All Acorn machines are equipped with a sound filter designed to remove high frequency harmonics from the sound output. However this does cause a muffled feel to the sound as on some machines the filter is a little too excessive and it filters out valid frequencies. Also the filter is optimised for 20.833 kHz output and has less desirable results when the output rate is changed. Accordingly people who do audio work often want to bypass the filter. On all machines bar the A3000 there is the Internal Auxiliary Audio Connector (usually called link LK3), which can be easily plugged into to provide the unfiltered output. This connector has 10 pins on it and is usually found near the headphone socket on the motherboard. The pins are :- 1 Unfiltered Left 2 Ground 3 Filtered Left 4 Ground 5 Auxiliary Input 6 Ground 7 Filtered Right 8 Ground 9 Unfiltered Right 10 Ground Simply hook into the Unfiltered outputs. On an A3000 you need two 10uF 16V ALEC capacitors. Look for chip LM324 (IC39) and hook the capacitors like this :- Pin 1 --> --|+ |--- Unfiltered Left Pin 2 --> --|+ |--- Unfiltered Right The Risc PC & A400 machines have a connector similar to the A5000. There are several caveats to this procedure. Opening your machine may void your warranty and most definitely should not be attempted if you are unsure of the procedure. Do not unplug/plug the unfiltered audio output while the machine is turned on, by bypassing the filter you also bypass the normal protective circuitry for the audio output. Finally you will hear higher harmonics present in the audio signal so you will need to connect the signal to a filter of some kind to reduce this extra noise. ---------------------------------------------------------------------------- 2.8) Can I connect a SCART monitor to my Acorn machine? If you have an older Acorn machine with a nine pin video socket, then yes and here is the wiring diagram :- .------------------------. Arc 9-pin plug \ 1 2 3 4 5 / \ / \ 6 7 8 9 / Case '------------------' _____________________ |19 1| SCART 21-pin plug | | | | | | | | | | | | / | / | | | | | | | | | | | /___20_________________2_| 21 (metal casing) A SCART connector is also known as a Euroconnector or a Peri-Television connector. Arc SCART Case | ------------- 21 Case Red 1 ------------- 15 Red Green 2 ------------- 11 Green Blue 3 ------------- 7 Blue CSYNC 4 ------------- 20 Composite video input Ground (0V) 6 -+---------+- 13 Red ground Ground (0V) 7 -+ +- 9 Green ground Ground (0V) 8 -+ +- 5 Blue ground Ground (0V) 9 -+ +- 13 CVBS video ground Ideally each ground wire should be linked to a separate Arc pin. Also, depending on your SCART monitor, pin 16 may need a +5V input to it. Unfortunately the Arc 9 pin socket does not provide a +5V output so this will have to be sourced from somewhere else. If you have a newer Acorn machine, with the 15 pin high density video socket then you need this kind of wiring :- .--------------------. 15-pin VGA style plug \ 1 2 3 4 5 / \ 6 7 8 9 10 / \ 11 12 13 14 15 / '--------------' Connections: Arc SCART 1 red ---------------------------- 15 2 green--------------------------- 11 3 blue---------------------------- 7 4 ID[2] nc 5 0V (test) 6 red rtn------------------------- 13 7 green rtn----------------------- 9 8 blue rtn------------------------ 5 75 ohms 9 +5V-------------/\/\/\/--------- 16 10 0V----------------------------- 17,18 12 ID[1]-------------------------- 8 11 ID[0] <--13 | 13 HSync -->11 | 120 ohms 14 CSync------------/\/\/\/------- 20 15 ID[3] nc Notice the two resistors. Also notice that the HSync output (pin 13) of the 15-way plug has to be connected to the ID[0] input (pin 11) of the same plug. (Be aware I have no direct confirmation that this wiring works .) As is usual care must be taken when doing this procedure. Older Acorn machine did not have their VIDC chips fully buffered and unplugging/plugging cables from the video socket while the machine is turned on can cause damage to the video circuitry. ---------------------------------------------------------------------------- 2.9) How do I make a Null modem cable? For starters you will need soldering skills and the necessary components. Namely cable, connectors (9 pin female D-type), a soldering iron, solder and the will to use them. All of these items, bar the will, can be found down at the local electronic components store. Assuming you have them all then you will need to decide what kind of machines you are hooking together. There are three cases and I need to define a few terms. * Archimedes is defined to be A300 series, A400 series (including the /I machines), R140, A540, A3000 (but not the A30x0 machines) and R260 machines. * RiscPC is defined to be both the RiscPC series but also the A5000, A4000, A30x0 & A4 machines. All of these machines have a 'PC Style' serial port that conforms closely to RS232 specifications. This means that if you are connecting your Acorn machine to a non Acorn machine then generally treating the foreign machine as a RiscPC, in terms of serial handling, will work. There are exceptions, Macintoshes in particular have had non-standard serial ports and may require further research before you can create a cable for them. The cases are :- * Archimedes to Archimedes Arc (9 pin) Arc (9 pin) ----------- ----------- +---1---DCD DCD----1---+ | | | 2---RxD------------------------TxD----3 | | | | 3---TxD------------------------RxD----2 | | | +---4---DTR------------------------DTR----4---+ | | | 5---0v-------------------------0v-----5 | | | | 6---DSR------------------------RTS----7 | | | | 7---RTS------------------------DSR----6 | | | +---8---CTS CTS----8---+ | | +---9---RI RI-----9---+ * Archimedes to RiscPC Arc (9 pin) RiscPC (9 pin) ----------- -------------- +---1---DCD RI-----9---+ | | | 2---RxD------------------------TxD----3 | | | | 3---TxD------------------------RxD----2 | | | +---4---DTR------------------------DTR----4 | | | | 5---0v-------------------------0v-----5 | | | | 6---DSR------------------------RTS----7 | | | | 7---RTS------------------------CTS----8 | | | +---8---CTS DSR----6---+ | 9---RI-------------------------DCD----1---+ * RiscPC to RiscPC RiscPC (9 pin) RiscPC (9 pin) -------------- -------------- 2---RxD------------------------TxD----3 3---TxD------------------------RxD----2 4---DTR---------------------+--DSR----6 | 6---DSR--+ +--RI-----9 | | 9---RI---+ +--DCD----1 | 1---DCD--+---------------------DTR----4 5---0v-------------------------0v-----5 8---CTS------------------------RTS----7 7---RTS------------------------CTS----8 Note that most PC compatible machines have 25 pin D type male ports for their second COM port. You have two options in this case - either re-wire the cable for the 25 pin port or you can buy a 9 to 25 pin converter plug. Either solution works well. Here are the relevant pins for the 25 pin port :- Pin No. Function ------- -------- 8 DCD 3 RX 2 TX 20 DTR 7 GND (0v) 4 RTS 5 CTS ---------------------------------------------------------------------------- 2.10) What are StrongARM dipswitch settings? The StrongARM card has a set of dipswitches on it that control the clock speed of the processor. These can be altered but there are some important caveats to mention first :- * Don't change the links while the card has power. This can result in damage to your processor, always turn your machine off before changing settings. * By default two tracks on the back of the card constrain the card to never go faster than 202 MHz. Cutting these tracks invalidates your warranty, so only do this if you are prepared to replace the card. * The chip is officially rated for 202 MHz, running it faster than this speed can result in hardware damage to the processor and will shorten the chip's lifespan. Again, only do this if you are prepared to replace the card. * If you do cut the tracks remember that the card is a multi-layer one, cutting deeper may sever more tracks than you intended and render the card non-functional. Without cutting the tracks, the dip switches can be used to slow the processor down from 202MHz to 88MHz if required. Each switch sets one bit making sixteen possible speed settings. This table summarises those speed settings :- Setting Switch Speed (MHz) ---------------------------- 0 uuuu 88.3 1 uuuD 95.6 2 uuDu 99.4 3 uuDD 106.7 4 uDuu 143.5 5 uDuD 150.9 6 uDDu 161.9 7 uDDD 169.3 8 Duuu 191.3 9 DuuD 202.4 10 DuDu 213.4 11 DuDD 228.1 12 DDuu 242.8 13 DDuD 257.6 14 DDDu 276.0 15 DDDD 287.0 u = up, D = down, MSB to the left. (Thanks go to Dr. Nicko van Someren for this information.) ---------------------------------------------------------------------------- Section 3: Configuration. ---------------------------------------------------------------------------- 3.1) What is ADFSBuffers and what is the best setting for it? ADFSBuffers are Read Ahead and Write Behind buffers for ADFS on your Archimedes. 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 ADFSUtils, 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. 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 they 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. ---------------------------------------------------------------------------- 3.2) How do I enable solid drags in RISC OS 3? 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 4: Hardware problems. ---------------------------------------------------------------------------- 4.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 ---------------------------------------------------------------------------- 4.2) What can I do with a 'Broken Directory' or a corrupt Free Space Map? There are various programs out there now which fix this problem. The PD ones all are 'caveat emptor' programs but are worth trying if you vitally need to recover some files, or just don't have the floppy disc/streamer space to back your drive up. In the FAQ maintainer's experience the utility 'fsck' (a shareware utility available at good FTP sites near you) works reliably and well. The distribution version does not work with the new FileCore but by registering you can obtain a version that does repair the newer format discs. Fsck has now spawned a commercial version, called Disc Doctor, which not only handles all disc formats but allows the undeleting of files as well. Contact Oregan Developments for more information on Disc Doctor. Another shareware tool is DiscEdit - strictly speaking it is a disc sector editor but it also contains routines for directory repair. Even so it is recommended that if you have critical data on your drive you should use one of these tools to recover the data and then reformat the drive. ---------------------------------------------------------------------------- 4.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 3 welcome screen is displayed. 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.) ---------------------------------------------------------------------------- 4.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. ---------------------------------------------------------------------------- 4.5) Why doesn't *Speaker work on my machine? The *Speaker command does not work on new models of Acorn 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. ---------------------------------------------------------------------------- 4.6) What can I do about my fan making excessive noise starting up? This is a problem primarily with the RiscPC 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. ---------------------------------------------------------------------------- Section 5: Software Issues. ---------------------------------------------------------------------------- 5.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 caching 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. ---------------------------------------------------------------------------- 5.2) Where can I obtain the latest version of module X? All patch modules, official Acorn OS extensions and the like can be sourced from the Acorn 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.) ---------------------------------------------------------------------------- 5.3) What are the current File-type allocation ranges? Acorn have reallocated the File-type ranges for applications. The new ranges are :- Non-user area &E00-&FFF Acorn &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 Acorn. If your software is going to be distributed, you should have an allocated filetype to avoid clashes. Acorn cannot publish it's master list of filetypes because, at any given time, it will contain allocations made for products which have not yet been announced. Therefore, Acorn 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://wombat.doc.ic.ac.uk/acorn/doc/filetypes and includes details about whether the allocation is an official one, a de facto one and what the file contains. ---------------------------------------------------------------------------- 5.4) Is there a Modula 2 compiler for the Arc? 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 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 the Arc. Whether these intentions become reality has yet to be seen. ---------------------------------------------------------------------------- 5.5) What Public Domain Languages are available for Acorn machines? The answer to this is a list that is maintained by Gavin Wraith (gavin@wraith.u-net.com). Accordingly updates, corrections and other comments should all be sent to him. ---------------------------------------------------------------------------- May 1997 This is a (necessarily partial) 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 am well aware that many of the items are also available in many other places. I will be grateful to receive emendations and further items. Remember that hensa is mirrored at ftp://ftp.doc.ic.ac.uk/computing/systems/archimedes/collections/hensa/riscos gavinw@sussex.ac.uk. ---------------------------------------------------------------------------- Menu * Further information * Imperative Languages * Object Oriented Languages * Declarative Languages * Forths * Lisps * ARM Object Code Assemblers * AOF Tools * Miscellaneous ---------------------------------------------------------------------------- Further information * Higher Education National Software Archive (Hensa). * List of free compilers and interpreters maintained by D.Sharnoff and A.Robenalt, and regularly posted to comp.compilers. Do not expect to find anything specifically for ARM machines. * Acorn FAQ. * Compiler tools. Return to menu. ---------------------------------------------------------------------------- Imperative Languages ADA bytecode interpreter From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c052. ADA GNAT 3.01 compiler From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e095. ALGOL 68S From ftp://ftp.cs.man.ac.uk/pub/chl/A68S CHARM From David Pilling ICON 9.1 By ftp from ftp:cs.arizona.edu. or ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e116. G77 0.5.19 GNU FORTRAN From ftp://ftp.sp.ph.ic.ac.uk/pub/tsh/fortran.zip. From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e167. GCC GCC 2.7.2 GNU C, C++, Objective C Compiler, release 1.0.7 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b013. OBERON POT 1.33 (Portable Oberon Translator) From ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d132. PASCAL PC 4.09 Norcroft DDE Compiler From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a122. PASCAL GPC 1.0.2 - Gnu Pascal Compiler From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e168. PERL 5.01 From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a049. PYTHON 1.42b From ftp://ftp.infc.ulst.ac.uk/pub/users/chris RLAB 1.25 From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e022. TCL 7.4 From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e057. Return to menu. ---------------------------------------------------------------------------- Object Oriented Languages ARMBOB 2.1 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b178. GC++ GNU C++ 2.7.2 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b013. GNUST 1.1.1 Smalltalk-80 From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c045. GRS From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b062. LITTLEST 0.0 Little Smalltalk From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a102. OBJECTIVE C GNU 2.7.2 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b013. SATHER ISCI Sather 1.1 Mail to Peter Naulls SQUEAK Smalltalk 1.18 From http://sumeru.stanford.edu/tim/pooters/squeak.html Return to menu. ---------------------------------------------------------------------------- Declarative Languages BIBPROLOG 3.30 From ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d005. GOFER 2.30a (GoOd For Equational Reasoning) From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a262. See comp.lang.functional FAQ. HOPE 4.02a From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a139. HUGS 1.3 (Haskell Users Gofer System) From ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d041. See comp.lang.functional FAQ. HU-PROLOG 1.62 Humboldt University Prolog From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e062 SML 4.0.01 Edinburgh Interpreter From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a216. Return to menu. ---------------------------------------------------------------------------- Forths AFORTH 0.70 From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a293. FORTHMACS 3.1 From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c073. TILEFORTH 2.1 Portable C implementation From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a111. WIMPFORTH 1.0 From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e096. Return to menu. ---------------------------------------------------------------------------- Lisps CLISP 01.01 Common Lisp From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c189. FOOLSLISP 1.3 From ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c162. GNU SCHEME From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b105. SIOD 2.90 (Scheme In One Defun) From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a275. Also see George Carrette 's site. XLISP 1.60 From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a103. XLISP+ From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b076. Return to menu. ---------------------------------------------------------------------------- ARM AOF Assemblers AOFLIB 0.07 create AOF files with the Basic Assembler. From ftp://micros.hensa.ac.uk/micros/arch/riscos/e/e108. AS 1.26b From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a132. ASM 2.01 From Plasma Sphere BBS (tel.+44 1925 757920/1) EXTASM 1.00 From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b120 TLA 0.2a (The Last Assembler) From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a119. Return to menu. ---------------------------------------------------------------------------- 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 ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d038. DISASMAOF 1.31 From Archinet BBS (+44 1233 665918)- disassemble AOF file to Objasm source. From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b154 DRLINK 0.28 Linker From ftp://micros.hensa.ac.uk/micros/arch/riscos/b/b071 and From Plasma Sphere BBS (tel.+44 1925 757920/1). MAKEALF 1.03 - tools for Chunk files. From ftp://micros.hensa.ac.uk/micros/arch/riscos/d/d039. Return to menu. ---------------------------------------------------------------------------- Miscellaneous J 6.2 (APL-like language) From ftp://micros.hensa.ac.uk/micros/arch/riscos/a/a165. Return to menu. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- 5.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. ---------------------------------------------------------------------------- 5.7) Why does ChangeFSI display a blank white window, not an image? Version 1.13S of ChangeFSI now has the RISC OS 3.6 JPEG support built into it. 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 Acorn's FTP sites at :- ftp://ftp.acorn.co.uk/pub/riscos/releases/spriteextend.arc Or if you are in New Zealand :- ftp://ftp.acorn.co.nz/pub/riscos/releases/spriteextend.arc This can be softloaded in your Boot.PreDesk sequence to use it. ---------------------------------------------------------------------------- 5.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, presumably, future versions of the OS. (Thanks go to Alan Glover for this information.) ---------------------------------------------------------------------------- Section 6: Viruses. ---------------------------------------------------------------------------- 6.1) How can I protect against viruses? Pineapple Software have produced a program called !Killer, which is the definitive means of checking for or killing viruses. See the next question. Other than !Killer there are one or two commercial virus killers. SmartKill is one of these and information about it can be obtained from MGResearch. See section 6.2 for a listing of various virus killers and where to obtain them. There are also a few PD programs around, but these tend to detect only a small subset of the viruses in circulation. !VKiller used to be OK, but it is no longer maintained, is now seriously out of date and fails to work under RISC OS 3. Out of the PD virus utilities the current best is Tor Houghton's Scanner. This detects most known viruses and removes quite a few as well and serves as a good secondary defence if Killer is unavailable to you. Scanner should be available on various FTP/Email servers. ---------------------------------------------------------------------------- 6.2) Where can I obtain a virus killer? Various virus killers are out there. Here is a, probably incomplete, list of those available. * Killer Killer is distributed by Pineapple Software. Who can be reached at :- Suite 13/14, South Park Business Centre, 310 Green Lane, Ilford, Essex IG1 1TX, England. Tel. +44 (181) 599 1476 Fax +44 (181) 598 2343 via email :- sales@pineaple.demon.co.uk support@pineaple.demon.co.uk virus@pinesoft.demon.co.uk Or if you need a German version of the program you can contact Uffenkamp Computer Systeme at :- Gartenstr. 3, D-32130 Enger. Tel. +49 (5224) 978075 Fax +49 (5224) 978076 via email :- ucsorder@ucs.de usupport@ucs.de Early versions (up to 1.26) are PD, but should not be used now as they are ineffective against the new crop of viruses that have subsequently appeared since it's release. It is the FAQ maintainer's opinion that this is the commercial virus killer to buy. * SmartKill This is a commercial product put out by MGResearch. They can be reached at :- MGResearch, 46 Corringway, Church Crookham, Fleet, Hants, GU13 OAW, England. As far as I am aware no PD version of this has been released. * VZap This is a shareware product released by Paul Vigay. Copies of it can be obtained from either the Arcade BBS, Paul's own BBS Equinox ( UK 01705 871531 ) or from Paul's www site http://rainbow.medberry.com/enigma/shareware.html. ----------------------------------------------------------------------------