12 ms·
BBC Basic returns on multiple platforms, open sourced
- __rito__ 3y agoWhat things would be the most fun, most edifying, and most hacky to do with these? Any blog or book recommendations?
- wiz21c 3y agoLLVM !
- asicsp 3y agohttps://www.bbcmicrobot.com/learn/index.html https://www.bbcmicrobot.com/learn/index.html might help (discussion: https://news.ycombinator.com/item?id=25569146 https://news.ycombinator.com/item?id=25569146)
- teamonkey 3y agoThis is a google webcache link - because there is zero chance the original site will stand up - but it contains PDFs of BBC Basic books from the '80s which have entered public domain. http://webcache.googleusercontent.com/search?q=cache:4YHOl0leXO4J:8bs.com/othrdnld/manuals/publications.shtml&hl=en&gl=uk&client=firefox-b-d http://webcache.googleusercontent.com/search?q=cache:4YHOl0l...
- bazzargh 3y agoFun/edifying: https://xr.bbcmic.ro/ https://xr.bbcmic.ro/ Dominic Pajak's VR BBC Micro??? Blog: https://blog.mousefingers.com/ https://blog.mousefingers.com/ Paul Malin posted a bunch of hints on how to do the demoscene-ish things we do with the bbcmicrobot (ex-twitter, now mastodon) The stardot forums have everything: https://www.stardot.org.uk/forums/ https://www.stardot.org.uk/forums/ lots of lore on how to do stuff, plus old posts with manuals and books for the BBC Micro, including the Acorn GXR ROM manual for the extended graphics routines I've been doing BBC Microbot posts since the start of the pandemic, after not having touched a beeb since maybe 1988. When I'm doing this stuff it does feel like a lot of lore is beyond the horizon of online history, like doing graphics without matrix multiplication - so eg https://surma.dev/things/ditherpunk/ https://surma.dev/things/ditherpunk/ talks about bayer dithering etc algorithms that are too much code, so is https://extremelearning.com.au/a-simple-method-to-construct-isotropic-quasirandom-blue-noise-point-sequences/ https://extremelearning.com.au/a-simple-method-to-construct-..., but it at least led me to the right search terms to get to https://en.wikipedia.org/wiki/Low-discrepancy_sequence#Additive_recurrence https://en.wikipedia.org/wiki/Low-discrepancy_sequence#Addit... which does let you dither in very little code https://media.hachyderm.io/media_attachments/files/111/444/495/491/347/974/original/ca90e56e018e93b2.png https://media.hachyderm.io/media_attachments/files/111/444/4... - and that's before digging into the specifics of the machine. A lot of the better tricks I see others do on the beeb involve knowing things about its memory layout, 6502 assembler and so on, I think I'd need to spend ages reading the back issue magazines of the 80s on archive.org to get up to speed on all this - it's just not collected anywhere any more
- blowski 3y agoIf you're teaching 10 year old kids to code, is there an advantage to using something like this over Python or JavaScript?
- zozbot234 3y agoEven today, BASIC is a much simpler language than Python or JavaScript, which ought to make it easier to learn. It would also be a bit easier to transition to a more advanced language like Go/Rust if starting from BASIC than Python/JS.
- Mr-Frog 3y agoMaybe. Having been a 10-year old when both of these languages were available, my main goals were to make things that looked cool to share with friends and family. My dad set me up with a BASIC256 environment around the time it was released, and I liked it because it gave immediate feedback and had a built-in graphics interface. JavaScript: Cool language, but I was not excited about all of my work happening in a web browser. I wanted to make imperative programs, but most JavaScript tutorials were focused on enabling little DOM manipulations that were not very exciting to me. Plus, the heavy focus on Async programming went over my head. If NodeJS was around when I was first dabbling with JavaScript I probably would have stuck around with it more. Python: Probably the best thing to introduce to a kid these days, but I used a shared family Windows computer with restricted users and setting up environments and package managers was always a pain. I ended up spending a lot of time with Scratch, mostly for the collaborative online community. Overall my trajectory was BASIC256->Scratch->C++->Python/Java/everything else
- blowski 3y agoMine (starting in late 1980s) was GW-BASIC -> Visual Basic (esp with Access) -> Ruby -> PHP/WordPress -> JavaScript -> everything else. It worked then because it was hard to find education material, and the alternatives (C, Lisp) were so damned hard. I think the trade-off is that Python has an immense ecosystem - libraries (e.g. PyGame Zero), education material, people. Plus you can point to real-world examples of people building stuff with Python - you can make actual money with it. I'd be worried that teaching BASIC puts them in a niche - one where they make progress more quickly, but struggle to get out of.
- tomalpha 3y agoThe killer features of BBC Basic for me were: - instant-on - you turned on the power switch at the back of the BBC Micro, got the double beep, and in less than a second were dropped into a REPL / shell with the language - integrated assembler - you could inline assembly language really easily - great documentation - before the web, documentation meant books - of which there were many - but also crucially in the BBC Micro's case also many television shows from the BBC. - direct access to hardware - I realise this isn't BBC Basic itself really, but being able to PEEK and POKE (well, use ? and ! operators) to memory-mapped hardware addresses was great fun, and a great way to learn about how things worked. The nostalgia for me around the language is strong, but without the hardware platform I'm not sure I'd want to go back to it.
- baz00 3y ago> instant-on Sometimes replaced with a smoke screen at this age: https://www.youtube.com/watch?v=TU55-7dWMi0 https://www.youtube.com/watch?v=TU55-7dWMi0
- mrlonglong 3y agoMine did that some time ago. I've put it into storage for when I can afford to have it recapped and reconditioned.
- bartread 3y agoPossibly this would be more up your alley in that case: http://www.mkw.me.uk/beebem/ http://www.mkw.me.uk/beebem/. I must admit, I feel somewhat similarly to you. I want to prod at the hardware and write some assembly code. Whereas if I wanted to work with SDL there are better ways for me to do that. With that being said, BBC Basic was a great entry point into programming for a lot of people and it's perhaps the case that it could still be so, so I do appreciate the fact this project exists.
- mattbee 3y agohttps://virtual.bbcmic.ro/ https://virtual.bbcmic.ro/ is the full experience (clack clack clack)
- LeoPanthera 3y agoThis is cool, but not new. "Returns" is a bit misleading, it never went away. Apart from anything else, BBC BASIC is built into RISC OS which can run natively on the Raspberry Pi.
- lowbloodsugar 3y agoWait, what?
- sillywalk 3y agoFor Pi Zero & ZeroW & Zero2W, Pi 1 models A & A+ & B & B+, Pi 2 model B, Pi 3 models A+ & B & B+, Pi 4 model B, Pi 400 rev 1.0, Compute Module 1 & 3 & 3+. https://www.riscosopen.org/content/downloads/raspberry-pi https://www.riscosopen.org/content/downloads/raspberry-pi
- JdeBP 3y agoLooking at the difference page, it's not BBC BASIC as one might remember it. But that's not possible outwith actual BBC Micro hardware, complete with Kenneth Kendall's voice in ROM. And I suspect that Kenneth Kendall cannot be open sourced. (-: It looks like it has preserved the spirit of BBC Micro development on modern platforms, though. The use of INKEY$(-256) to determine underlying platform is amusing.
- fanf2 3y agoIt’s a reimplementation in C by Richard Russell. If you want a version by Sophie Wilson (who created BBC BASIC) there’s one in RISC OS written in ARM assembler.
- fanf2 3y agoBugger, I forgot the link, https://gitlab.riscosopen.org/RiscOS/Sources/Programmer/BASIC https://gitlab.riscosopen.org/RiscOS/Sources/Programmer/BASI...
- binarycrusader 3y agoFor those curious what Kenneth’s sampled / synthesized voice sounded like:https://youtu.be/_goT9PPpn7I?si=WKdkH4VMlKCLEZ78 https://youtu.be/_goT9PPpn7I?si=WKdkH4VMlKCLEZ78
- dfawcus 3y agoWell one could always grab his "BBC BASIC (86) Plus for MS-DOS" from his site (https://www.bbcbasic.co.uk/bbcbasic/dosbasic.zip https://www.bbcbasic.co.uk/bbcbasic/dosbasic.zip), and run it in some from of "DOS Box". As his page about it states: "BBC BASIC (86) Plus is an implementation of BBC BASIC for PC compatibles running MS-DOS™; it has been designed to be as compatible as possible with Version 4 of the 6502 BBC BASIC resident in the BBC Micro Master series." (https://www.bbcbasic.co.uk/bbcbasic/bbcdos.html https://www.bbcbasic.co.uk/bbcbasic/bbcdos.html) That should then give you something close to the form I used on my Model A back around '83.
- benj111 3y agoI feel Dibley should have a pudding bowl hair cut and goofy teeth. Am I just of a slightly young generation?
- Arch-TK 3y agoIt's good to see old software being released as open-source with no-strings-attached OSI approved open source licenses. Although this trend also attracts certain for-profit entities who like to release their code as "open source" to join the bandwagon, except the license used is decidedly not open source.
- vkaku 3y agoAmazing! My first computer, historically was the BBC Micro and it was so much fun to type and view those programs from the 80s books they released. One of the things I noticed about the new interpreter's restrictions was that framebuffer pixel accesses have become significantly slow and we're unable to do such things fast because of our dependency on GPU/Host transfers for all new rendering.
- zozbot234 3y agoGPU programming is more about compositing textures/surfaces, applying various kinds of "3D" projections along the way. In BASIC terms, those "textures" are glorified sprites. You could use shaders to accelerate the kind of 2D pixel-perfect rendering you'd do on a plain old framebuffer, but that's still a matter of research and quite far from the established paradigm.
- vkaku 3y agoInserts rant about A[x] taking too long because the programming interface to A does all those fancy things ^
- Retr0id 3y agoYou can still do framebuffer pixel access pretty fast if you want to, the main issue is just that the average framebuffer today has exponentially more pixels.
- vkaku 3y agoIf that app ran in a 640x480 mode, memory accesses would be just as fast as the VGA applications 25 years ago, correct? I do think there's a lot more going on than that. Here's SDL's current pixel access code: https://github.com/libsdl-org/SDL/blob/main/src/video/SDL_surface_pixel_impl.h https://github.com/libsdl-org/SDL/blob/main/src/video/SDL_su... To do a pixel read there's at least a lock, memcpy, format conversion and an unlock.
- 3y ago
- strangesmells06 3y agoCant wait to get my hands on this BBC! Basic was the first language I learned so its nice to see it repackaged. 256 Megs is alot! Modern BBC is alot bigger than what we used to have available to us in the 90s.
- lproven 3y agoI think you do not understand the name here, or what it means.
- al_be_back 3y agogood 'ol BBC was ahead of it's time - inspired a generation of hackers. Try get Netflix or Amazon to do that as a side hustle! [1] [1] a computer + a language + dev tools
- robertlagrant 3y agoI have a bad memory, but I remember distinctly showing my Gran a text adventure I'd made in BBC Basic at the age of about 14. I can imgaine now she had no idea what I was talking about, but she was very nice about it!
- lsllc 3y agoSite is hugged to death: https://web.archive.org/web/20231129084247/https://www.bbcbasic.co.uk/bbcsdl/index.html https://web.archive.org/web/20231129084247/https://www.bbcba... Edit: Here's the open source on GitHub: https://github.com/rtrussell/BBCSDL https://github.com/rtrussell/BBCSDL
- mark_l_watson 3y agoThat is pretty cool, I am traveling without laptop but I just tried it on an iPad. My first computer was a PDP-8 single board that I had to program in octal (but I wrote an assembler on my company’s Dec-10, so slightly civilized). Later I bought serial number 71 Apple II and loved the built in basic. Older HN readers might have run across my open source Land of the Dwarf adventure game, and I wrote the shitty little chess program Apple distributed on their demo cassette in Woz’s Basic. So, BBC Basic just made me feel nostalgic.
- WillAdams 3y agoPlease write up a bit about the chess program and share it at: https://www.folklore.org/index.py https://www.folklore.org/index.py
- phendrenad2 3y agoWould be cool to see this or any BASIC shipped as a UEFI binary. Drop it into your EFI partition, now you can easily (well easily, depending on your firmware's implementation of EFI boot menu) boot your PC as a hyper-powerful Commodore 64. Ridiculous.
- zozbot234 3y agoUnfortunately the graphical capabilities of standard EFI are just too limited. You do get a graphical framebuffer and keyboard/mouse (which lets you do fancy BIOS setup screens) but that's pretty much it. So you're way better off booting some standard OS with a good collection of device drivers and running BASIC on top of that.
- cdcarter 3y agoWould BBC Basic need much more than something like a BIOS setup screen?
- dun44 3y agoI'd love to see a comparison between this and https://github.com/mist64/cbmbasic https://github.com/mist64/cbmbasic.
- SpaceManNabs 3y agoWhy did a broadcasting corporation have a version of BASIC?
- ttrrooppeerr 3y agoAnd why is always on the HN front page? Seems like never ending stream of news about it.
- jlarcombe 3y agoAs part of an ambitious public-service project to help increase computer literacy in Britain, supported by the Department for Trade & Industry and the Department for Education. They decided that they needed standardised hardware to support the project, and a standardised language with which to programme it. Acorn already had a somewhat more primitive but flexible BASIC, and were quite readily able to adjust it to fulfil the BBC's specification (drawn up by John Coll, an independent educator, who later wrote the BBC Micro manual).
- soneil 3y agoWell, they needed /something/ to run on the BBC micro. Part of the BBC's mandate (public funding requires public benefit, the mandate is essentially the contractual definition of the BBC's "deliverables") requires the production of educational content. As part of this, they had a programs for computer literacy in the early 80s - and commissioned a computer to go with them. So we had the BBC Micro running BBC Basic. We still had some left in school well into the 90s. It's an interesting bit of history, because it gave a huge boost to the company that won the contract. Acorn soon after went on to develop the Acorn RISC Machine, featuring the ARM1 processor.
- chasil 3y agoThe history of BBC Basic is on the wiki. Sophie Wilson wrote the language, first in 6502 assembler, later in ARM assembler. https://en.wikipedia.org/wiki/BBC_BASIC https://en.wikipedia.org/wiki/BBC_BASIC This linked article of interviews has much greater depth. http://news.bbc.co.uk/2/hi/technology/7307636.stm http://news.bbc.co.uk/2/hi/technology/7307636.stm
- ryp35 3y ago[flagged]
- tabtab 3y ago[flagged]
- junto 3y agoThis brings back a lot of fond memories. The Acorn BBC B was my first computer. We even had the speech ROM which felt like sci-fi. Those hours we spent waiting for the games to load via cassette. The games we had first were Kingdom?? and Meteors, and some text game where you started off in a dark room. Later I got Elite for my birthday and we played it solidly for over a whole year, every time we were allowed to play on it. Typing in the programs from magazines. Great memories.
- ochrist 3y agoTo people asking why a broadcasting corporation needed a programming language you might watch 'Micro Men'. It's available on YouTube. https://en.wikipedia.org/wiki/Micro_Men https://en.wikipedia.org/wiki/Micro_Men https://www.youtube.com/watch?v=XXBxV6-zamM https://www.youtube.com/watch?v=XXBxV6-zamM