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 istartedi on Monday June 17 2019, @04:37AM (3 children)

    by istartedi (123) on Monday June 17 2019, @04:37AM (#856499) Journal

    The obvious bad was the kind of trouble you got into when you wanted to insert more lines in than you had numbers, requiring an ugly refactor or poor use of GOSUB if you had it.

    Perhaps the one good was that when you jumped down to assembly to get real speed, you were already familiar with the concept of addresses, so JMPing around in ASM programs was a familiar concept.

    We were working with less main memory than a typical JPEG or an annoying JavaScript, in order to run an entire operating system with a built-in programming language.

    Crippled languages were forgivable given those constraints, and as others have said here, the BBC version of BASIC took up more precious ROM space.

    --
    Appended to the end of comments you post. Max: 120 chars.
    Starting Score:    1  point
    Moderation   +1  
       Insightful=1, Total=1
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3  
  • (Score: 3, Informative) by kazzie on Monday June 17 2019, @07:52AM (2 children)

    by kazzie (5309) Subscriber Badge on Monday June 17 2019, @07:52AM (#856527)

    The way the BBC Micro dealt with the lack of precious memory space was to have the BASIC ROM swap out with other ROMs, in a system called Sideways ROM. The original models chopped the 64K of address space into 16K for the OS, up to sixteen 16K Sideways ROM slots, and up to 32K of RAM. (Later models and expansions put extra RAM in some of the Sideways slots, and moved the display RAM into shadow memory instead.)

    The Z80 second processor add-on (which Z80 BBC BASIC was writen for) had its own 64K of RAM, with display and I/O tasks still handled by the BBC Micro.

    This flexibility came with a higher price tag, of course, which hampered the BBC Micro in the home marked.

    • (Score: 3, Informative) by choose another one on Monday June 17 2019, @03:35PM

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

      The fun thing about the paged / sideways ROMs was that there were spare ROM slots (3?) on the mother board and you could buy software on ROM. Before floppy disks became common a lot of more "serious" BBC micro software actually came that way. You _could_ copy it, but it was more expensive to buy 16K EEPROMs to copy it onto than it was to just buy new ROMs.

      Having your software in ROM was seriously cool because it left you tons and tons of data memory to play with (nearly 32K!), so much memory you could do _anything_.... Tricky bit was that you couldn't write BASIC software to run from ROM, because the BASIC ROM would be swapped out, so you had to do it all in assembler or cross-compile from serious (then) hardware.

    • (Score: 2) by theluggage on Thursday June 20 2019, @08:33PM

      by theluggage (1797) on Thursday June 20 2019, @08:33PM (#858205)

      The Z80 second processor add-on (which Z80 BBC BASIC was writen for) had its own 64K of RAM, with display and I/O tasks still handled by the BBC Micro.
      This flexibility came with a higher price tag, of course, which hampered the BBC Micro in the home marked.

      For some bizarre reason, Acorn decided that, because CP/M was for business, the Z80 processor needed to come with a complete business software suite 'worth' about £1000, including a wp/spreadsheet/database that you'd never heard of, an application generator (remember 'The Last One'? It wasn't that...) and the CIS COBOL compiler (which on its own retailed for over £400). I'm sure they licensed it at a fraction of retail price, but I doubt it was free (software was really expensive in those days). Of course, what people really wanted CP/M for was to run those copies of Wordstar and DBase 2 which they'd... acquired...

      There was a somewhat cheaper 6502 second processor too, with a clean 64K memory map and a souped-up 6502 running at something sick like 4MHz - now that was the fastest thing on 8 bits at the time (Best. Implementation. Ever. of Elite :-) )