Re:Raspberry Pi Boot to BASIC
by musicale on Thursday January 06, 2022 @11:21AM
(#29825528)
(2021)
RISC OS Pico [1] (I think it was short for Pi Computer) booted the Pi directly into BBC BASIC. It would be great if they'd make it a supported image on the current Pi boards.
The .zip archive is still available if you follow the links on archive.org (and even includes the book "First Steps in Programming RISC OS Computers" and associated demo programs.) Its 2.1MB boot .IMG is somewhat smaller than Ubuntu. Has anyone tried it?
Re:Raspberry Pi Boot to BASIC
by vitovito on Thursday January 06, 2022 @03:22PM
(#29829485)
Just did! Has only bootloaders from 2014, though, and firmware changes with the Pi itself mean it won't work on the latest Raspberry Pi models, nor will replacing the RISCOS.IMG from a current version with the Pico version.
Write the latest full RISC OS (through Raspberry Pi Imager or elsewhere). Edit CMDLINE.TXT per their instructions, and after it boots, on your keyboard, press F12 to open a command line at the bottom of the screen, type in the commands from their instructions, and then also type:
Unplug Desktop
Then press Ctrl-Break to reboot. You don't need to copy files to other SD cards or anything. It will boot immediately into BBC BASIC in Mode 7 (40x25, Teletext pixels, 16 colors).
In swapping the SD card between a Pi 1/2 and a Pi 4, I was getting occasional misfires, though, and it wouldn't boot into BASIC, getting hung up on the wrong networking driver, or complaining about a missing desktop. Ctrl-Break to reboot should fix it.
Re:Raspberry Pi Boot to BASIC
by pmyteh on Thursday January 06, 2022 @11:41AM
(#29825833)
Yes. Or, assuming the old mechanism still works, using *Configure Language to boot into BASIC by default every time the machine starts.
My guess is that the RISC OS version of BBC BASIC will also have slightly better compatibility with things like old printed program listings than BBC BASIC for Linux, so may be a better choice for the full nostalgia hit.
I do recall that there is a port of MMBasic for the Raspberry Pi floating around somewhere. I think it is on the forums at https://thebackshed.com but I couldn't tell you how to find it. I do think it runs under Linux and not on bare metal but I might be mis-remembering.
Re:Raspberry Pi Boot to BASIC
by jameskeim on Friday January 07, 2022 @01:59PM
(#29843214)
Actually dug through because I only had a vague recollection. So the Pi-Cromite version I remembered has been discontinued. However, there is a MMBasic for Linux that cribs some code from that project. And, it can be compiled for the Raspberry Pi. I might venture to suggest that this might be one of the most fully featured Basic implementations that can found for the Raspberry Pi.
Link here: https://github.com/thwill1000/MMB4L
Re:Raspberry Pi Boot to BASIC
by tombert on Thursday January 06, 2022 @01:45PM
(#29827930)
My first computer was a hand-me-down C64 from my dad, and it's part of the reason that I started programming while I was so young. I never got good at programming it, but I thought it was so cool that you start programming immediately after booting up. This would have been ~1998-1999, WELL past the the C64 hayday, but I had a lot of fun playing with it.
I didn't really know how to use DOS on my parents' Windows computer, and so as far as I knew at the time, the only way to do programming there was to install a bunch of compilers and that scared me.
Re:Raspberry Pi Boot to BASIC
by philjohn on Thursday January 06, 2022 @03:12PM
(#29829330)
If only you'd known DOS shipped with Q-Basic! After we got a Cyrix 386 back in the 80's I moved on from Commodore Basic (on the C128) to that, then Turbo Basic, Turbo Pascal and then Turbo C.
Re:Raspberry Pi Boot to BASIC
by tombert on Thursday January 06, 2022 @03:28PM
(#29829577)
Yep! Had I known about Q-Basic there's a very high likelihood I would have eaten that up, but this was really before I knew how to use the internet, and I wouldn't have even known what to look for on Lycos if I did know.
I played with C64 Basic for a few years, until eventually I got the courage to download Visual Studio Express and learn a bit of C++ when I was 13, and hop over to Linux full time and use Emacs + GCC when I was 14/15, largely because the heavy reliance on the command line for Linux reminded me a bit of C64 basic.
Occasionally I miss how integrated coding was with the operating system in the past. I think overall de-emphasizing coding is a good thing since I feel like the computer is useful enough to justify non-nerds having access to it, but there was something so cool about how accessible it was to, for example, make a game on the C64.
If I want to make a game now, I basically have two options: A) Start from "scratch" and learn OpenGL/DirectX/Vulkan/SDL and basically learn a masters-degree-level of information about graphics engineering, or B) Download something third-party like Unity or GameMaker [1] and work from there. I'm not going to say it's "worse" now, but it's definitely a steeper learning curve than just hoping into Basic and playing around with `poke`.
[1] To be clear, both of those things are pretty cool, not knocking them.
Re:Raspberry Pi Boot to BASIC
by pjmlp on Friday January 07, 2022 @01:47AM
(#29835843)
Only starting with MS-DOS 5.0, until then it was GW-BASIC/BASICA.
And the competition DR-DOS/PC-DOS lacked them (PC-DOS had the early versions though).
I also made a similar Borland progression, although Turbo C 2.0 only took a couple of months and was quickly replaced by Turbo C++ 1.0 on the same year.
After Turbo Pascal 6, dealing with C was a downgrade.
Re:Raspberry Pi Boot to BASIC
by hereforphone on Thursday January 06, 2022 @03:15PM
(#29829376)
One of my very first computers was an IBM PCjr. I got it way after it was obsolete, but my parents didn't have money so I took what I could get. With the cartridge inserted I could boot to 'gwbasic'. I started programming there, a long time ago, and I still program today. It's nice to see this part of history resurfacing.
Re:Raspberry Pi Boot to BASIC
by pjmlp on Thursday January 06, 2022 @01:57PM
(#29828134)
Regarding the BASIC nostalgia, only recently did I became aware that the original BASIC (Dartmouth BASIC) was actually JIT based and it was the adaption of BASIC into the home computers that kind of made its interpreted version more widely known.
While there were several flavours of BASIC compilers there were never as widely spread as these interpreters.
I find it interesting, it could have been yet another what-if, had the compilers been as widely accessible.
Re:Raspberry Pi Boot to BASIC
by boznz on Thursday January 06, 2022 @02:34PM
(#29828720)
Boot-to-Basic Computers are great fun and excellent for learning but just do not have the stack to build real world applications in 2021 on eg SQL, sockets, SSL, etc
I would love to be able to just turn on the computer and have a simple basic program run a touchscreen interface to my factory SQL systems but we truly must stand on the shoulders of giants in this regard.
(talking about boot-to-basic here no basics that run on an OS and can access the whole OS stack)
Re:Raspberry Pi Boot to BASIC
by zekica on Thursday January 06, 2022 @11:58AM
(#29826093)
You can probably make it boot to basic a lot quicker. Don't need to wait for all services to start up. Even LibreELEC boots faster. If I'm correct and this uses SDL, SDL2 supports kms/drm.
Re:Raspberry Pi Boot to BASIC
by incanus77 on Thursday January 06, 2022 @01:17PM
(#29827463)
There are a number of ways to accomplish this today. All have trade-offs, but generally, the main illusion-breaker is when they are user space programs that run on top of Linux, mostly on account of random console spew (which can be remedied) and boot-to-prompt time (which can be made to generally about <10 seconds, at best — DietPi and TinyCoreLinux are both useful here).
Incidentally, the RISC OS Pico[1] mentioned is out of date and won’t run on the Pi 400 or other newer Pi’s.
Aside from the excellent PC-BASIC[2] and BBC BASIC[3] mentioned, another in that vein is MatrixBrandy[4], a fork of Brandy BASIC[5]. PC-BASIC is excellent if, like me, you grew up on an IBM PCjr, since that is a very specific brand of GW-BASIC with better graphics & polyphonic sound. But, being Python, it’s relatively slow when doing things like POKEing the emulated graphics buffer and the like. MatrixBrandy is C-based and very fast, but has a number of BBC Micro-era quirks in the spirit of emulating those old systems.
Another fun route is emulators that have been ported to a Pi bare metal mode, such as a fork of the C64 emu VICE[6] called BMC64[7].
Lastly, there are some fun from-scratch fantasy consoles like PICO-8[8], TIC-80[9], and LIKO-12[10], all of which are based on SDL under the hood. To my knowledge, the only one with a bare metal version is TIC-80’s[11]. There is also Pixel Vision 8[12]. Generally, you code in Lua in these.
Re:Raspberry Pi Boot to BASIC
by bellyfullofbac on Thursday January 06, 2022 @11:36AM
(#29825768)
My PC XT didn't boot into BASIC, I wonder why. It's long gone now so I can't investigate what hardware it actually had.
This boots X11/Wayland and then an SDL app on top of it, I wonder what it would take to write a shell or init that the kernel loads straight after it's done loading itself up. Maybe The systemd folks can make systemd-basic...
Re:Raspberry Pi Boot to BASIC
by jandrese on Thursday January 06, 2022 @12:01PM
(#29826144)
I remember our school computers you had to start the machine without anything in the floppy drive to get dumped into BASIC.
Unfortunately it was a very limited BASIC. I guess there wasn't much space in the BIOS ROMS. It was pretty much always worth it to boot DOS and start GWBASIC.
RISC OS Pico [1] (I think it was short for Pi Computer) booted the Pi directly into BBC BASIC. It would be great if they'd make it a supported image on the current Pi boards.
The .zip archive is still available if you follow the links on archive.org (and even includes the book "First Steps in Programming RISC OS Computers" and associated demo programs.) Its 2.1MB boot .IMG is somewhat smaller than Ubuntu. Has anyone tried it?
[1] https://web.archive.org/web/20181109020010/https://www.risco...
When I tried RISC OS' own instructions to have the equivalent experience with their latest OS versions, they seemed to be missing a step, too, as I'd still boot to a desktop on a Pi 4: https://www.riscosopen.org/wiki/documentation/show/Raspberry...
Write the latest full RISC OS (through Raspberry Pi Imager or elsewhere). Edit CMDLINE.TXT per their instructions, and after it boots, on your keyboard, press F12 to open a command line at the bottom of the screen, type in the commands from their instructions, and then also type:
Then press Ctrl-Break to reboot. You don't need to copy files to other SD cards or anything. It will boot immediately into BBC BASIC in Mode 7 (40x25, Teletext pixels, 16 colors).In swapping the SD card between a Pi 1/2 and a Pi 4, I was getting occasional misfires, though, and it wouldn't boot into BASIC, getting hung up on the wrong networking driver, or complaining about a missing desktop. Ctrl-Break to reboot should fix it.
https://www.bencollier.info/projects/electronics/emulation/f...
My guess is that the RISC OS version of BBC BASIC will also have slightly better compatibility with things like old printed program listings than BBC BASIC for Linux, so may be a better choice for the full nostalgia hit.
I think using a Cortex M7 with its simpler memory model keeps it closer to the spirit of the 8 bit machines than is possible with a Cortex A series.
[1] https://geoffg.net/maximite.html
I do recall that there is a port of MMBasic for the Raspberry Pi floating around somewhere. I think it is on the forums at https://thebackshed.com but I couldn't tell you how to find it. I do think it runs under Linux and not on bare metal but I might be mis-remembering.
I, of course, desperately wanted LOGO (and of course the robot turtle, too!), but my family couldn't afford it.
I didn't really know how to use DOS on my parents' Windows computer, and so as far as I knew at the time, the only way to do programming there was to install a bunch of compilers and that scared me.
Simpler times!
I played with C64 Basic for a few years, until eventually I got the courage to download Visual Studio Express and learn a bit of C++ when I was 13, and hop over to Linux full time and use Emacs + GCC when I was 14/15, largely because the heavy reliance on the command line for Linux reminded me a bit of C64 basic.
Occasionally I miss how integrated coding was with the operating system in the past. I think overall de-emphasizing coding is a good thing since I feel like the computer is useful enough to justify non-nerds having access to it, but there was something so cool about how accessible it was to, for example, make a game on the C64.
If I want to make a game now, I basically have two options: A) Start from "scratch" and learn OpenGL/DirectX/Vulkan/SDL and basically learn a masters-degree-level of information about graphics engineering, or B) Download something third-party like Unity or GameMaker [1] and work from there. I'm not going to say it's "worse" now, but it's definitely a steeper learning curve than just hoping into Basic and playing around with `poke`.
[1] To be clear, both of those things are pretty cool, not knocking them.
And the competition DR-DOS/PC-DOS lacked them (PC-DOS had the early versions though).
I also made a similar Borland progression, although Turbo C 2.0 only took a couple of months and was quickly replaced by Turbo C++ 1.0 on the same year.
After Turbo Pascal 6, dealing with C was a downgrade.
While there were several flavours of BASIC compilers there were never as widely spread as these interpreters.
I find it interesting, it could have been yet another what-if, had the compilers been as widely accessible.
I would love to be able to just turn on the computer and have a simple basic program run a touchscreen interface to my factory SQL systems but we truly must stand on the shoulders of giants in this regard.
(talking about boot-to-basic here no basics that run on an OS and can access the whole OS stack)
UEFI Basic
https://github.com/LHerrmeyer/UEFI_Basic
However it does rely on NuttX for the runtime services.
which is (or was in 2013) a minimal bare-metal BASIC for the Pi.
Via HN: https://news.ycombinator.com/item?id=8228763
10 PRINT "CHAZ WOZ ERE "; 20 GOTO 10
You can test it here:
https://bbc.godbolt.org/
[1] https://github.com/AOZ-Studio/AMOS-Professional-Official
Sure what you have then is an Amiga emulator that boots strait into AMOS but I think that’s fine as it would be a great beginner environment.
Incidentally, the RISC OS Pico[1] mentioned is out of date and won’t run on the Pi 400 or other newer Pi’s.
Aside from the excellent PC-BASIC[2] and BBC BASIC[3] mentioned, another in that vein is MatrixBrandy[4], a fork of Brandy BASIC[5]. PC-BASIC is excellent if, like me, you grew up on an IBM PCjr, since that is a very specific brand of GW-BASIC with better graphics & polyphonic sound. But, being Python, it’s relatively slow when doing things like POKEing the emulated graphics buffer and the like. MatrixBrandy is C-based and very fast, but has a number of BBC Micro-era quirks in the spirit of emulating those old systems.
Another fun route is emulators that have been ported to a Pi bare metal mode, such as a fork of the C64 emu VICE[6] called BMC64[7].
Lastly, there are some fun from-scratch fantasy consoles like PICO-8[8], TIC-80[9], and LIKO-12[10], all of which are based on SDL under the hood. To my knowledge, the only one with a bare metal version is TIC-80’s[11]. There is also Pixel Vision 8[12]. Generally, you code in Lua in these.
[1] https://web.archive.org/web/20181109020010/https://www.risco...
[2] http://robhagemans.github.io/pcbasic/
[3] https://www.bbcbasic.co.uk/bbcbasic.html
[4] https://github.com/stardot/matrixbrandy
[5] https://sourceforge.net/projects/brandy/
[6] https://vice-emu.sourceforge.io
[7] https://accentual.com/bmc64/
[8] https://www.lexaloffle.com/pico-8.php
[9] https://tic80.com
[10] https://liko-12.github.io/
[11] https://github.com/nesbox/TIC-80/tree/master/build/baremetal...
[12] https://pixelvision8.github.io/Website/
10
20
25
30
This boots X11/Wayland and then an SDL app on top of it, I wonder what it would take to write a shell or init that the kernel loads straight after it's done loading itself up. Maybe The systemd folks can make systemd-basic...
I still have my IBM PC (5150), taking up a lot of closet space.
Unfortunately it was a very limited BASIC. I guess there wasn't much space in the BIOS ROMS. It was pretty much always worth it to boot DOS and start GWBASIC.
Mine didn't either, it booted into DOS 3.0(?) and I got to BASIC by running BASICA.EXE.
If I had to guess, it booted into DOS if you had a hard disk and otherwise booted BASIC from a ROM?