Monday 25 Sep, 2017
Welcome to
Jump to 
Search Articles 
Search for Software 

Section 4 - RISC OS Configuration.

 Q4.1) What is ADFSBuffers and what is the best setting for it?
 Q4.2) How do I enable solid drags in RISC OS 3?

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 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, however installing ROM Patch 3 from the Acorn ftp site will fix this bug with large 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%

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

Part 3 - Hardware Issues & Compatibility | Part 5 - Software Issues

Email Email this page to a friend

 Last edit: 10th Apr 2016 at 4:55pm (533 days ago)

Bookmark with:What are these?
delicious Deliciousdigg Diggreddit redditfacebook Facebookstumbleupon StumbleUpon

RSS Feed 

Valid HTML 4.01!
Valid CSS!
Best viewed with a cup of tea Crafted by RISC OS