-- Leo's gemini proxy

-- Connecting to tilde.pink:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

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.  Middle-click the rightmost-but-one icon on the taskbar and move the mouse over the Mode option, delete any EX1 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 from packages.riscosopen.org/noobs/RISC_OS_Boot.tar.xz—RISC OS should then boot correctly.

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 the bootcode.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_mode_changes to 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 in config.txt (e.g. hdmi_group=1 and hdmi_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 need hdmi_ignore_edid=0xa5000000 and perhaps F50 before all EX0 references once in RISC OS); you might also want to specify disable_overscan=1 in 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)

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 an EX0 EY0 mode is re-entered before ADFFS is *completely* quit (Quit > Filer and FS)

To ensure RISC OS is magnified on startup, open $.!Boot.Choices.Boot.Tasks, edit one of the files (in RISC OS 4 edit !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.

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).

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

1. run a Telnet server on RISC OS and have another machine telnet in and set the time, or

2. on a Raspberry Pi that dual-boots between RISC OS and Raspbian / Raspberry Pi OS, arrange for Raspbian/PiOS to save its clock to the RISC OS partition before rebooting into RISC OS (assuming you’ve arranged for the Raspbian/PiOS clock to be correct, e.g. daytime query over PPP connection from a USB modem that RISC OS wouldn’t support...)

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.

Python time-setting script

High contrast mode for RISC OS 4

(in RISC OS 5 this is less helpful but still works partially)

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).

RISC OS high-contrast theme

If you want you can add the line Filer_Run $.high-contrast/zip (correcting the path as appropriate) into $.!Boot.Choices.Boot.Tasks.!Boot so that the options are available on startup (you could also add the line Run $.high-contrast/zip.HighContrast 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.

Legal

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.

-- Response ended

-- Page fetched on Mon May 6 00:46:17 2024