RISC OS Pico - Beyond BBC BASIC
|
When I found out about RISC OS Pico for the Raspberry Pi, I wanted to experiment with what amounts to be a hard-core, all-code RISC OS. We’re talking about hard-core RETRO programming here! Only recently did I begin to be able to boot RISC OS Pico on my Raspberry Pi 3. Should I be able to use both audio generation statements, SOUND and ENVELOPE just as I could with the point-and-click RISCO OS Pi operating system? My point is to build either a computer rig to fit inside a room as a “Justice League” computer or a video game console comprised of all-code programs written in BASIC or what Pico other else is capable of. Assembly language coding is of tremendous help here since it helps keep programs written in BASIC running fast. Note: I noticed that if you use RISC OS Pi or Pico on a Raspberry Pi B+ or Pi 2, the ARM microprocessor chip is automatically overclocked at 1.0 GHz. |
|
You do realise that RISC OS Pico is a subset of the complete version of RISC OS? In many ways you would be better to install a full version of RISC OS and then simply configure it to start up in BASIC instead of the Desktop.
ENVELOPE does nothing unless you have RDSP installed. Then, when you do, ENVELOPE does not generate audio, it tells RDSP what the audio should sound like (quite a bit more advanced than the BBC Micro!), and SOUND does the actual making noises part.
You can get fairly cheap little flat panel displays that accept an HDMI signal directly (https://www.heyrick.co.uk/blog/index.php?diary=20180406) that I put together with a Pi Zero for a cheap’n’cheerful media player (https://www.heyrick.co.uk/blog/index.php?diary=20180411). Something like that with a control mechanism (maybe a USB joystick?) might make the basis of a homebrew game console?
You might want to check out this guy: http://www.amcog-games.co.uk/
It is? I don’t see any reference to this in the Pico CONFIG.TXT file…? |
|
Even at 1.0GHz speed, Rick, I still prefer to learn some more on assembly language to keep the runtime gaming speed optimized.The trouble with the RISC OS Desktop is that you can no longer use a low resolution such as 320 × 256. This impairs the use of games like Hopper. But that’s about it. “Pico” is to put ourselves up to a real hard-core challenge of game coding like in the 1980s! But the only “fancy” text I am content with is the custom text and characters using the VDU statement in BASIC. Just pure, hard-core custom text and graphics. I saw the AMCOG Development Kit on the corresponding website but I might need a conversion from the £14.99 to the USD equivalent for registration. This one is obviously for the full RISC OS Pi Desktop but again there needs to be a way to make such online transactions. |
|
One more thing, Rick, I copied the contents of the downloaded folder of the RISC OS Pico operating system into a 32GB micro SD card. Could there be a way to expand available disc memory to the SD card’s full capacity? |
|
Not so. While my Philips display doesn’t support such a low resolution natively, I was able to select the Acorn AKF11 via Configure. Combined with “disable_mode_changes” in CMDLINE/TXT, this gave me a working 320×256 desktop on my Pi 3 with OS 5.24.
It’s about $20. |
|
Chris Mahoney RISC OS Pico, as we know, is just the core programming, graphics and audio components without the desktop. Logically, BASIC programs are supposed to be faster than in the RISC OS Pi Desktop versions. I find Pico kind of fun. It has “the look” and the feel of a retro computer. However, thanks for the heads up on the CMDLINE.TXT file! This should help to be able to run an older game program like Hopper. Be sure to keep in mind that a Pi 3 is faster than a Pi 2 so Pico should be faster than it would on the Raspberry Pi 2. There is another problem to solve where I need access to the USB memory sticks. If not done correctly, you can get “Internal Error”(s). |
|
But where do I find the CMDLINE.TXT file, Chris? |
|
CMDLINE/TXT is a optional file that is found on the DOS partition of the SD Card, but you can access it directly using RISC OS by doing the following:
Edited and updated thanks to David Pitt (see next post). |
|
The CMDLINE/TXT file is optional and lives in the same directory as CONFIG/TXT. If it is not there create it with a text editor. Entries in CMDLINE/TXT are space separated and all on one line. The other entry that might be useful, if using OS5.25, is to disable gamma but this is not required for OS5.24.
|
|
If you run the same BASIC program on the same hardware with the same version of BASIC, using Pico and full RISC OS, they will both run at identical speeds. |
|
Whoa – what’s this heresy? You’re letting logic interfere with a good argument… |
|
The desktop is just an application. You can use it or not. It’s like DOS + Windows 3. Having Windows 3 on your computer will not slow down your DOS applications. The good point with RISC OS is that you can launch a CLI application in single tasking mode from the Wimp, the Wimp being completely stopped / paused. So, no impact for your applications, even if launched from the Wimp. RISC OS is probably the only “modern” operating system that can still work like this. Precious for some embedded uses. |
|
> In many ways you would be better to install a full version of RISC OS The big advantage of Pico would be it runs in a FAT medium i.e. without a Filecore medium. This means it does run from a parallel Flash like in the Pi Compute Module or even from the serial Flash in the Titanium. So far it is a theoretical advantage because Pico file write corrupts the FAT partition over time, and I still could not find out why: https://www.riscosopen.org/forum/forums/11/topics/9691 > If you run the same BASIC program on the same hardware with the same version I cannot confirm this. I have a motor control application with Soft PWM GPIO in BASIC and BASIC Inline Assembler. The Assembler version shows no difference, but the BASIC version makes glitches on full RISC OS even with Desktop removed. It seems to be some background interrupt activity I could not track yet. |
|
“Real” (i.e. non-Pico) RISC OS without !Boot should also run from a FAT medium. And IIRC, a long time ago, Jeffrey added “boot from FAT” feature – you just need to keep the partition slightly below 4 GiB so that DOSFS works. Or – advanced solution – integrate Fat32FS into your RISC OS image :-) |
|
But Steffen, I still need to know how to best access a USB drive such as a pen drive or card reader without getting “Internal Error” messages. RISC OS Pico can recognize the USB hardware plugged into the Raspberry Pi and I can verify what devices are plugged in with the commands implemented in the OS but I still need to access the external drives plugged into the Raspberry Pi. |
|
> best access a USB drive such as a pen drive or card reader without getting “Internal Error” messages This is working for me so far. Is it FAT or FileCore? How do you access it? Does e.g. a file copy from SD card to it work? Copy Filename SCSI::0.$.* |
|
Angel, I don’t understand what you mean by
There are a lot of possible sources of errors and a lot of setup variants that might lead in certain circumstances to such error messages. To minimize problems, I would suggest the following (if you need to have the USB pen drive in a FAT-like format – I guess you have a good reason for that like “I want to exchange data via this pen drive with other non-RISC OS systems”):
|