Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Sunday June 16 2019, @10:40PM   Printer-friendly
from the digital-archeology-now-before-its-too-late dept.

Programmer David Given has done the leg work to contact and ask R. T. Russel about releasing the Z80-based BBC BASIC as Free Software. It is now available under the non-reciprocal zlib license:

As part of the work I've been doing with cpmish I've been trying to track down the copyright holders of some of the more classic pieces of CP/M software and asking them to license it in a way that allows redistribution. One of the people I contacted was R.T. Russell, the author of the classic Z80 BBC BASIC, and he very kindly sent me the source and agreed to allow it to be distributed under the terms of the zlib license. So it's now open source!

[...] So the reason why this is important is that BASIC has, rightly, a reputation for being a pretty terrible language; but BBC BASIC was a dialect specifically commissioned by the BBC in 1981 as an educational aid. As a result, BBC BASIC supports named procedures, local variables, recursion, and other structured programming features. Unlike Microsoft BASIC, you can write proper structured, maintainable programs in BBC BASIC without needing to refer to any line numbers anywhere. And it'll run faster that way: [...]

[...] The original version was written by Sophie Wilson at Acorn in 1981 for their 6502-based range of BBC Micro computers and during the early eighties every school child in the United Kingdom was exposed to it, spawning a whole generation of bedroom programmers.

Earlier on SN:

[Ed's Comment: 170619-0724UTC. Added additional link to the original story]


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Insightful) by ledow on Monday June 17 2019, @12:33PM (4 children)

    by ledow (5567) on Monday June 17 2019, @12:33PM (#856597) Homepage

    I would argue that those who think unannotated, indechiperable Z80 assembly language is the language in which to distribute software, are significantly more worthy of ridicule than people who wrote things in BASIC.

    Never got the BASIC-hate. There's nothing wrong with it (line numbers? Fortran has line numbers in many implementations too... why does having optional line numbers make it "bad"?), it's just not very suited to complex tasks, multi-programmer interaction and huge performance, but it's not supposed to be (there's a kind of clue in the name).

    BBC BASIC, and many that emulated it, was a perfect bridge language from literally-never-written-code-people to people directly manipulating CPUs, memory and hardware.

    Any later abstraction and condemnation that because some implementation of it doesn't have explicitly named subroutines (except BBC BASIC) somehow makes it "bad" really needs to be weighed against that *self-same assembly code*, that does name some things (but calls them things like "PUSH" and "PUSH$" but doesn't tell you what the hell they are actually doing). There's a whole file for something that just says "Sorry", for instance.

    This was an era of at-home programmers, programming for themselves, to use the computer, to automate BASIC calculations and tasks, and allow them to control their computer. There is literally *nothing wrong with that*.

    You can complain that it may have encouraged some sloppy programming habits, but that's only when looked down upon from a perspective 30-40 years later... even C, Java, et al suffer that exact problem too.

    Fact is, without BASIC, I would never have bothered to learn to code. It's that simple. Because nothing else *was* that simple. I can now probably knock up any program you like, in any language you like, given enough time. I don't claim it'll be amazing and ground-breaking but it'll work. And there are places that are running my code years later which - let's be honest - nobody else understands *because they don't code*, not because I didn't leave behind the full source + documentation of what it did. Hell, I spend more time patching major commercial companies sloppy code than I do my own. I regularly get asked "How did you do that?" and then "Oh, our developer was just asking because they haven't done that yet and wondered how you fixed it". Some companies have actually asked to pay me for my code, and some others have actually included it in their offering to other customers.

    BASIC did exactly what it said on the tin - gave a beginner an all-purpose (bit-banging to high-level loop, I/O to memory manipulation) instruction code made of symbols they could understand (e.g. PRINT, INPUT, IF... THEN.. etc.). No, it's not suitable to run a huge commercial enterprise on, nobody ever said it was. No it's not supposed to be ideal. Neither was damn Excel and I've seen more than enough businesses built on it (without even using VBA!).

    This is history that needs to be preserved, not ridiculed. Equally... that code to *make* BASIC is absolute damn useless and unreadable. But to ridicule BASIC because it *could* be misused is only justification to say: Why did not one single home computer come bundled with a C compiler built into the ROM, then?

    Starting Score:    1  point
    Moderation   +1  
       Insightful=1, Total=1
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3  
  • (Score: 3, Interesting) by opinionated_science on Monday June 17 2019, @12:43PM

    by opinionated_science (4031) on Monday June 17 2019, @12:43PM (#856601)

    In this age of machine learning getting cheaper every day, we are more likely to see a ML based explanation of assembler code.

    Kinda recursive ; the biological wet ware made the original machines and now are building machines to understand what was previously written by the wet ware!!

  • (Score: 3, Insightful) by theluggage on Monday June 17 2019, @02:51PM

    by theluggage (1797) on Monday June 17 2019, @02:51PM (#856655)

    Never got the BASIC-hate.

    Well, if - like many - you started with BBC BASIC then you missed out on the true horrors of regular BASIC:

    Before BBC BASIC:

    M$ = "Hello World": MX%=100: MY%=200: GOSUB 2160

    With BBC BASIC:

    PROCshowmessage("Hello World",100,200)

    ...it was hardly the same language. Not that I'm knocking the earlier BASICs - if you had a home computer with 4k RAM and a domestic cassette tape recorder, a Pascal or C compiler was hardly an option - even running an assembler was a bit of a juggle.

    Thing is, the language wars - which are still going today - aren't based on practicality and don't factor in the 'bad programmers can write bad programs in any language' element. Back in the day "Structured Programming" was the thing, and if a young person ever saw a GOTO statement they would be irrevocably damaged for life. These days, the language warriors are mostly on the "functional programming" bandwagon - better to scare off budding programmers with baffling Haskell than let them be corrupted by filthy procedural languages. This doesn't stop languages like C, PHP and Javascript getting mass adoption because they are practical solutions to practical problems. (PHP, in particular, is an abomination of a language, but its supported by your web hosting service and has a huge library of useful functions).

    Why did not one single home computer come bundled with a C compiler built into the ROM, then?

    ...not through the relative merits of C versus BASIC as a language, but because, running a compiled language - especially one with such reliance on libraries and header files as C - on a system with limited RAM and no floppy drives was hugely impractical, even if you could fit the compiler and run-time library into the usual 8 or 16k ROM. (C without stdio.h and clib is like... [metaphor excluded for space reasons]). That said, you could buy Pascal, COMAL, Logo, Lisp, BCPL, PROLOG and FORTH in ROM for the BBC Micro. Pascal was two ROMS (16-socket ROM expansion boards were a popular accessory for the BBC!) and was usable without disc, but that was about as much use as a chocolate teapot - you only got the minimal 'ISO level 0' version of the language* and your verbose Pascal source code had to share RAM with the compiled code - the full-blown compiler needed a floppy drive and the second processor add-on for the BBC.

    (*if anybody is about to wax lyrical about Pascal based on experience of extended implementations like VAX Pascal, Turbo Pascal or Delphi then you've never tried bog-standard Pascal).

  • (Score: 3, Interesting) by choose another one on Monday June 17 2019, @03:51PM (1 child)

    by choose another one (515) Subscriber Badge on Monday June 17 2019, @03:51PM (#856673)

    BBC BASIC, and many that emulated it, was a perfect bridge language from literally-never-written-code-people to people directly manipulating CPUs, memory and hardware.

    To that end it included inline assembler capability - a particularly awesome feature. It allowed you to work mostly in BASIC but drop down to ASM for writing tight loops, blits, IRQ handlers, or raw IO/control stuff. Wrote an entire CAD/CAM system for robot control in it once - all the UI was in BASIC and the stepper motor driver and control stuff in inline assembler.

    Without the BASIC intro / framework I would never have got into programming that sort of stuff, way too high an entry barrier, but without the assembler capability what I/we did wouldn't have been possible, it was indeed a perfect system for its time.

    Still got the code somewhere, on fan-fold paper. No idea what it does as in those days I subscribed to stuff like "Real Programmers don't need comments -- the code is obvious." (and yeah, I know, I was using BASIC...). And comments took up valuable memory, I think, maybe. Fun times.