What are you doing with RISC OS?
nemo (145) 2546 posts |
To put that in context, IS-BASIC appeared to be about five times slower than BBC BASIC on a Beeb. |
Clive Semmens (2335) 3276 posts |
My rather longer version runs like this: “Great minds think alike; fools seldom differ from the great minds. The interesting thing is those occasions when they do differ. And the other interesting thing is the difficulty of telling which are which.” |
Willard Goosey (5119) 257 posts |
Ever use Wordstar 3 with the help system turned all the way on? I can only imagine Wordstar for Windows being like that… only even slower. (And my main CP/M machine has nice fast 8" floppies!) |
Rick Murray (539) 13840 posts |
I couldn’t sleep last night, so I watched the video. The entire thing. The graphics capabilities are quite impressive for a machine of its time – but it was ridiculously slow – you could see it drawing each line. What the hell?!? |
Steffen Huber (91) 1953 posts |
I remember having a chat with Prodatron, author of SymbOS (see http://www.symbos.de/index.htm for more info), about the various Z80-based platforms he knows. He was quite fond of the Enterprise hardware, but said that the original firmware and BASIC was really rather lousy. Once you get to the bare metal it is a lot better. SymbOS is definitively the most impressive thing I have seen in 8bit world. Well, apart from a few C64 demos… |
Steve Pampling (1551) 8170 posts |
Is this the point where people admit they lusted after girls like that? OK, Got me coat, the doors over that way, right? |
nemo (145) 2546 posts |
OK, but that video didn’t show you the amazing part. You know it does all those different modes – like the Beeb but with a half-resolution MODE2 with 256 colours, and the palette supported 4096 colours… And you know what text and graphics windows on the Beeb are… And you know that effect that David Braben created in Elite where there was a mode change part way down the screen… On the Enterprise, you could have lots of graphics windows at the same time, and each one could be in a different mode. So Elite would have been a doddle. You could have had (the equivalent of) MODE0 on the left, MODE2 in the middle, MODE1 on the right, and a 256 colour mode across the bottom. It’s never been done elsewhere (Elite hackery aside). The other weird thing was that IS_BASIC was multithreaded, in effect. |
nemo (145) 2546 posts |
Yes, and no. Yes, in that it’s an amazing technical accomplishment. No, in that there’s no point to it. Only about three people have ever written anything for it. It would have been extraordinary in the 1980s though. It’s a pity that it would be impossible on the Master (and forget the Beeb entirely). You could just about imagine a ‘lo-basic’ in &4000-&7FFF that could run programs in sideways RAM, and ROMs could always co-exist, but the lack of register sets and the immovable stack would make context switches painful on the Beeb. Having said that, Symbos is primarily co-operative (the pre-emption is extremely slow) so perhaps context switches would be only a few per second, which is doable on 65SC102. |
Braillynn (8510) 51 posts |
I’m considering writing some blog posts about RiscOS, or even some YouTube videos about it to try and bring more exposure to the platform. |
RichardSP (8420) 12 posts |
G’day Steve, I have a Raspberry Pi 3B onto which I’ve loaded RISC OS and I want to get started, somewhere, on a simple project to begin with: using Acorn BASIC, or BBC BASIC, I want to connect the Pi (directly, if possible) to an LED or three and set up a little program to turn the LEDs on/off. Have you any suggestions on how I can get started? [I have played around with an Arduino UN0 connected to a Windows 10 driven desktop PC] |
David J. Ruck (33) 1635 posts |
Andrew Conroy of CJE fame is RISC OS’s LED-meister, and has written lots of BASIC programs interfacing with I/O. Damned if I can find a link to point you at though. |
Griffin (8981) 2 posts |
I started looking into it because of the cooperative nature. I wanted to use it to make some realtime machine controls. I’m not sure the license is agreeable though…might have to go to Linux with an RT kernel. I have other conerns for using it in that application, too. Still, I appreciate it for its retro vibe. I might play around with it on a hobby level, if I have time. |
Gavin Smith (217) 88 posts |
There are various bits and pieces out there to help you get started with the GPIO module in RISC OS if you search for it. This blog post might inspire you: http://danceswithferrets.org/geekblog/?p=1157
There are a couple of BBC BASIC libraries for the JAM HAT and the Pi-Stop here: http://www.owlart.net/ And there are some articles coming up in Archive Magazine about using GPIO with RISC OS.
The source code is under the Apache 2.0 license. Or did you mean something else? |
Andrew Conroy (370) 740 posts |
If your’re coding in BASIC, this would toggle an LED:
|
Andrew Conroy (370) 740 posts |
Is that fame, or infamy?
To be honest, I rarely publish my code as it’s only written in BASIC (and we know how that’s received round these parts) and I’m not a good programmer, so it would probably serve more as a “this is how you shouldn’t do it” than a guide to how you should.
http://www.owlart.co.uk/ is the preferred domain. Those two libraries are also on PlingStore, which is probably where you’d be better getting them from. |
Rick Murray (539) 13840 posts |
I think you might have your wires a little mixed up. BASIC is fine. It’s assembler we stress over, mainly because of the maintenance issues each time ARM fiddle with how bits of the processor work. |
Paolo Fabio Zaino (28) 1882 posts |
yup, +1! @ Andrew You are doing a great job with both the LED libraries and code and the other things, so I think a lot of people like what you’re doing sir, at least I do :) |
RMAC Harvey (9300) 8 posts |
I’m powering up Lego using GPIO on my Rasberry Pi 3 (thanks CJE Micros), RISC OS and BBC Basic. So far managed to get a Geek Servo’s DC motors running and just ordered a pack of switches from RS Components to see how I can control it. Not tried to use a HAT,PWM’s etc. just basic switching using a “Maker Drive”. All exciting stuff. Welcome to Rob Basath too. I’m using RISC OS more for the same reason, now that the “7th” version of the operating system that cannot be named is being no longer supported and the 10th is heavy going on personal data. |
Bryan (8467) 468 posts |
Some of us are still quite happy with the “5th” version, although the red squirrels are no longer seen with it. Thinks.. I must get the Lego Technic out of the loft. |
Arron Dick (9400) 11 posts |
Must get myself some of the Lego, I wonder if my old high school still has there’s with a Beeb or two… Just got !TwinWorld running under RISC OS Direct 5.27 using RPCEmu (I’m saving up for a Pi 400!) |
Les May (9404) 2 posts |
This seems to be the appropriate place for my first contribution. I started with an A310 in 1988 and moved onto a A7000 and later still a RISC PC. These had to go into storage due to lack of space when my job necessitated access to first a series of Windows machines and later a move to Linux. The RISC OS machines were used to write sound analysis programs in BASIC. Bird calls were sampled via an Armadillo sampler and some hardware I built to take advantage of the Acorn ADC podule. Just as I was about to buy a R Pi a friend who had also been a RISC OS user handed me three which had been found unsuitable for the purpose for which they were purchased. So what are my impressions of the R Pi version? I always liked the restful colouring of the original desktop so I soon found a way of changing the ‘wallpaper’. Having always used the screen editor built into BASIC for my programming on the Acorn machines I was a bit disappointed to find it seems to have got lost in the Pi version. (Or is it just that it I have not been able to find it yet? Yes I know all about getting to the command line.) This is quite important to me as my vision is not what it used to be and I find the text in EDIT a bit hard to read. The other thing I have noticed is that there seems to be an assumption that using the WIMP is the only way to go in future. One of the joys of using the old Acorn machines was being able to take over the whole machine to perform one job, analysing bird calls, as fast as possible and getting the resulting images on the screen. (The A310 ran at 8MHz). The job I want to use a R Pi for is to detect ‘down draughts’ which reach the ground using a naked thermistor which will respond very quickly and comparing its resistance with a second shielded thermistor which will respond only slowly. Measuring the resistance of each thermistor can be done by determining how long it takes to charge a capacitor to a voltage which causes a change from logic 0 to logic 1 on a GPIO pin. As it is only the relative time that is needed this can be done by updating a counter, then reading the count when the logic transition occurs. This could be done using BBCBASIC SDL 2.0 running under Raspian but I assume RISC OS is better because it can run as a single task with the only interrupt coming from the centisecond timer. (Can this be switched off?) The other advantage is that RISC OS uses only a single core and hence a cooler R Pi, a consideration when I will be wanting to run it for long periods unattended. I’ve taken the SYS calls for reading/writing the GPIO pins from posts on the forum together with program snippets that people have posted, but there does not seem to be a location where all this information is presented in a single easily digested format. If anyone has come across one I would be grateful if they could enlighten me. When I showed the friend who gave me the R Pi machines and who had bought his A440 when I bought my A310 he said “RISC OS was written by people who knew what they were doing!” I agree. |
Mike Freestone (2564) 131 posts |
Typing EDIT at the basic prompt starts the full screen editor. Or goto Display>Font and Display>Font size in the desktop !edit to make things bigger |
Alan Adams (2486) 1149 posts |
This sounds like an interesting project. The most important consideration is what degree of precision do you want to measure the times to? You won’t be able to get better than 1 centisecond using RISC OS and the GPIO. This is because firstly the timers are run from the centisecond interrupt, and secondly because the GPIO module code doesn’t allow you to attach an interrupt service routine to the GPIO pins. I have a similar requirement, which could only be solved by using an interrupt routine called via the centisecond interrupt, which polls the GPIO to find out whether a transition had occurred on the pin, then captured the timer value. This was a small piece of assembler, the rest being done in BASIC. (Note: it could be done more precisely, by ignoring the GPIO module, and accessing the hardware more directly. That is definitely outside the scope of using BASIC.) I would also be worrying about how repeatable the detection of a ramping-up voltage passing a threshold would be just using the GPIO pins. If that needed to be precise, I’d be thinking of a comparator and a zener diode reference voltage. You’ll also need a way to reset the ramp to zero. This could I guess be done by setting the pin to an output and outputting a 0, then switching the pin to an input and waiting for a 0-1 transition. I’d prefer to use a second pin to drive a transistor to pull the ramp low. It is simpler code, and probably faster to execute. There’s less risk of a transient affecting the ramp during the switch of mode too.
Most people use StrongED or Zap in preference to Edit. Text in StrongED can be set to something more readable. (Possible also in Zap, but I don’t use that one.) Best wishes with the project. |
Rick Murray (539) 13840 posts |
Generally, you won’t get better than centisecond accuracy with RISC OS as the built in timers are still the same as on the BBC Micro. ;-) However, if you are okay with assembler, you could bash the hardware directly, in which case you might find TimerMod to be useful: https://armclub.org.uk/free/
Both StrongEd and Zap support a wide range of possible text styles. The standard VDU text, outline fonts, and the fonts supplied with ZapRedraw (to my mind, these are the most useful).
I have a feeling he might have been talking about ARMBE? It’s around somewhere, it’s just that the desktop is so much more useful that people generally use Zap or StrongEd (or Edit if they’ve not seen the light). |
Les May (9404) 2 posts |
Thank you all for the helpful comments. As I shall be comparing the resistance of a naked thermistor, which will respond very quickly to a rapid temperature change, with a shielded one which will respond much more slowly, I don’t need to know the actual time taken to charge the two separate capacitors, only the relative times, I can get this information by polling a pin in a repeat…until loop and incrementing a counter. I anticipate that each reading will take 0.1 to 0.2 seconds which is why the centisecond timer cannot be used. The down draughts I have experienced last for several seconds to a minute or more so there is some scope for taking several readings and averaging if the threshold voltage differs slightly each time. Using a transistor to restore the capacitor to ground each time is a useful idea I’ll try if needed. |