Back to Silas S. Brown's home page
RISC OS and low vision
Modern versions of RISC OS have a function which magnifies almost everything by a scale factor of 2 without sacrificing resolution, i.e. it increases the assumed DPI from 90 to 180: middle-click the rightmost-but-one icon on the taskbar and move the mouse over the Mode option, delete anyEX1
and EY1
options (if present),
and add EX0 EY0 so the complete
mode string will look something like X1280 Y1024
C256 EX0 EY0---then press Enter.
- This might not work well on an emulator.
It works on old RISC PC hardware, and on the Raspberry Pi (RISC OS 5).
- If the Raspberry Pi's RISC OS gets stuck in "Mode 28" (640x480) and displays "This screen mode is not suitable for displaying the desktop" when you try to set a modern mode, then that might be due to corruption in the
CMOS
file and/or other files on the associated FAT partition---at least some versions of RISC OS do not properly "synchronise" all MicroSD cards when unmounting, meaning corruption can occur if power is lost too soon after the last write. - If this happens, boot into GNU/Linux to run
fsck.vfat
on the affected/dev/mmcblk0
partition (systemd
does this automatically if you've added the partition to/etc/fstab
with a non-0 sixth field), mount it, and restore affected files frompackages.
---RISC OS should then boot correctly.riscosopen. org /noobs /RISC_ OS_ Boot. tar. xz - Corruption can happen again, especially if you're on a Pi Zero (i.e. no network access from RISC OS) and you try to load software onto RISC OS by placing .zip files into the FAT partition---to do this more safely, rename the file to something other than .zip, and then Set Type to Zip from within RISC OS after copying to non-FAT storage, as it seems the Filer can corrupt the FAT as soon as it sees a directory with a zip file in it.
- Corruption to
bootcode.bin
shouldn't matter if you're using the an OS switcher (like PINN or NOOBS) that bypasses thebootcode.bin
of the OS it switches into, which is just as well as there seems to be a failure mode where the first file is partly overwritten by old FAT sectors on every boot---but this can be addressed by reformatting the FAT partition with mkfs.vfat (choose the partition carefully!) before restoring the files as above - I also suggest adding
disable_
tomode_ changes cmdline to tell the Pi's GPU to scale all modes to the monitor's actual resolution and so you can specify your monitor's characteristics inconfig.txt
(e.g.hdmi_group=1
andhdmi_mode=16
for 1080p, or if you have a TFT monitor supporting 50Hz and want to run ADDFS,hdmi_mode=31
for 1080p, which might needhdmi_
and perhapsignore_ edid= 0xa5000000 F50
before allEX0
references once in RISC OS); you might also want to specifydisable_
inoverscan= 1 config.txt
so modes with a different aspect ratio aren't stretched, and/or install AnyMode. - If you're not sure what your monitor's actual resolution is, try booting into GNU/Linux, let it auto-detect, and run tvservice -s (if you're connecting to a flat-screen TV then you might find it's something like 1360x768, in which case fonts will look better if you set X1360 Y768 C16M EX0 EY0 in RISC OS)
- If the Raspberry Pi's RISC OS gets stuck in "Mode 28" (640x480) and displays "This screen mode is not suitable for displaying the desktop" when you try to set a modern mode, then that might be due to corruption in the
- StrongED won't scale bitmap fonts (and versions before 4.7 display them strangely) so right-click on the "tick" icon and choose an outline font. This needs to be done for each editing mode you use. For dark colours, left-click the "tick" and select Display / Alternative colour scheme. (There's also a "Windows" option that lets you set the default size and position.)
- Applications like NettleSSH (which uses ZapRedraw) can also have trouble displaying large sizes.
- NetSurf gives minor display corruption on scrolling (due to its Bug 513); this is improved by turning off the menu's Display / Render / Buffer all rendering
- ADFFS has been known to corrupt the screen display on launch if an
EX0 EY0
mode is in effect, and to shrink the mouse cursor if anEX0 EY0
mode is re-entered before ADFFS is completely quit (Quit > Filer and FS)
To ensure RISC OS is magnified on startup, open
$.!Boot. If you need more magnification, you can reduce
the resolution, but if only one application needs to be magnified then it may be better to adjust the fonts in that application.
You can adjust the desktop font on RISC OS 4 by opening !Boot and
choosing Fonts (I use Homerton.Medium).
This should not be necessary on RISC OS 5.
Alternatively, use a VNC server and magnify
at the client (which has the advantage that you
can share a one-input monitor without using a
KVM switch).
This Python time-setting script
can either run on the other machine and perform the telnet commands,
or run on Raspbian/PiOS and save the clock to RISC OS on shutdown.
See comments at start of the script for usage.
Some people prefer to have dark backgrounds and light
text. To achieve this throughout RISC OS, download
my RISC OS high-contrast
theme and run the HighContrast obey file. (You
can also edit the source if you need to change the
colours.) The NormalColours obey file can be used
to temporarily switch back to normal colours, which you
will sometimes need to do because some programs don't
work well with HighContrast. After making each
change, close and re-open any Edit windows (that way
NormalColours still gives you high contrast in Edit).
If you want you can add the line !Boot
; in RISC OS 5 edit one of the others, or create a new file of type `Obey'---try ScrnSetup
) and add the
line WimpMode X1280 Y1024 C256 EX0 EY0
or
whatever.Setting the clock without NTP
If your sight condition makes it harder to look off-screen at a wall
clock etc, then you might want to ensure the on-screen clock is correct.
The Raspberry Pi has no battery-backed clock, and
old RISC PCs can have broken batteries, so
if NTP is not available then you could
daytime
query over PPP connection
from a USB modem that RISC OS wouldn't support...)High contrast mode for RISC OS 4
(in RISC OS 5 this is less helpful but still works partially)Filer_Run
$.high-contrast/zip
(correcting the path as
appropriate) into $.!Boot.Run
$.high-contrast/zip
if you want it to
be selected by default). Both of these rely on
SparkFS being run first (so put the line late in the
file). Some applications will display differently
depending on whether they are loaded before or after
HighContrast. Sometimes you will have to
explicitly set the application's foreground colour to
something other than black, or change the application's
Choices.
Copyright and Trademarks
All material © Silas S. Brown unless otherwise stated.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
Python is a trademark of the Python Software Foundation.
Raspberry Pi is a trademark of the Raspberry Pi Foundation.
RISC OS is a trademark of Pace Micro Technology Plc which might now have passed to RISC OS Ltd but I was unable to find definitive documentation.
VNC is a registered trademark of RealVNC Limited.
Windows is a registered trademark of Microsoft Corp.
Any other trademarks I mentioned without realising are trademarks of their respective holders.