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: 2) by stretch611 on Monday June 17 2019, @01:15AM (1 child)

    by stretch611 (6199) on Monday June 17 2019, @01:15AM (#856429)

    Without line numbers, how could I create the spaghetti logic I want through excessive GO TO ### commands?

    --
    Now with 5 covid vaccine shots/boosters altering my DNA :P
    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 1) by pTamok on Monday June 17 2019, @09:25AM

    by pTamok (3042) on Monday June 17 2019, @09:25AM (#856552)

    Basically, the target of a GOTO was a label

    GOTO target

    blah-blah

    target: PRINT "GOTO target reached"

    or something similar.

    Essentially, line numbers give a target at the beginning of each line, whether one is needed or not. Once you recognize that targets are only needed at the locations you wish to jump to, you can get rid of line numbers, and implement targets as unique labels, which is what BBC BASIC did.

    Of course, line numbers are useful for serialization of the program instructions, but the program source code in a text file tends not to get jumbled up, unlike 80-column punch cards.