Live data from Hacker News

BBC Basic returns on multiple platforms, open sourced

bbcbasic.co.uk

101–110 of 120 posts

Re: BBC Basic returns on multiple platforms, open sourced

#101

Earlier quoted context omitted.

The integrated assembler was very good. I worked for Acorn in the early 80s (was co-author of Acorn ISO Pascal), and we used our own H/W and S/W for all software development. ISO Pascal came in two 16K ROMS, one holding the compiler (in VM code), and one everything else (virtual machine, screen editor, Pascal libraries etc) which was all written in assembler using BBC Basic. The combination of BASIC with the basic ab…

There's no contact in your profile so I'll say it here: Thank you! That work had a big impact on me when I was getting started and I still think of the B incredibly fondly.

Thanks - it's great to hear that. Acorn was an amazing place to work at that time - an absolute dream job for me straight out of college.

Re: BBC Basic returns on multiple platforms, open sourced

#102
post #90

Earlier quoted context omitted.

>- integrated assembler - you could inline assembly language really easily Yes, as easily as this: some BASIC statements here [ some assembly statements here ] some BASIC statements here IOW, you just had to enclose your assembly language statements in square brackets. That's it. Of course, you would need to know what memory addresses to operate on, in a real-life program, as opposed to a demo, so that you could shar…

On your last point: on the first pass the assembler wouldn't know about labels that came later on the assembly, but on the second pass it would have seen them. IIRC normal way to run the assembler was to do to a for loop from 0 to 3 with step size 3, as 0 indicated suppressing all assembler errors.

Ah, got it, thanks. But why not 0 to 1 with step size 1? Wouldn't that also give two passes, which should be sufficient, and which the said normal way also does?

Re: BBC Basic returns on multiple platforms, open sourced

#103
post #102

Earlier quoted context omitted.

On your last point: on the first pass the assembler wouldn't know about labels that came later on the assembly, but on the second pass it would have seen them. IIRC normal way to run the assembler was to do to a for loop from 0 to 3 with step size 3, as 0 indicated suppressing all assembler errors.

Ah, got it, thanks. But why not 0 to 1 with step size 1? Wouldn't that also give two passes, which should be sufficient, and which the said normal way also does?

There were four OPT (modes) for the assembler, numbered 0 to 3. 0 suppressed all errors and screen output. 3 did the opposite.

Using 1 would suppress errors, which would mean you wouldn't know if your code was bad.

You could use 0 and 3 or, if you don't want a listing, 0 and 2.

Search this page for 'first pass', for a more complete explanation: https://central.kaserver5.org/Kasoft/Typeset/BBC/Ch43.html

Re: BBC Basic returns on multiple platforms, open sourced

#104

Earlier quoted context omitted.

Before getting my hands on a BBC Micro I'd done all my teenage programming on an Apple II - so the killer feature of BBC Basic for me was that it had a renumber command. No more having to re-type code because I'd used-up all the line numbers between line 110 and 120. A little thing but it felt like magic.

I absolutely hated line numbers. In my current paid job I'm paid to develop Visual Basic applications, not a single line number in sight. Basic has certainly come a long way since the 80s.

Structured Basic was already a thing in the 80's, see VMS Basic, or Turbo Basic.

Re: BBC Basic returns on multiple platforms, open sourced

#105
This 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.

Re: BBC Basic returns on multiple platforms, open sourced

#106
post #102

Earlier quoted context omitted.

Ah, got it, thanks. But why not 0 to 1 with step size 1? Wouldn't that also give two passes, which should be sufficient, and which the said normal way also does?

There were four OPT (modes) for the assembler, numbered 0 to 3. 0 suppressed all errors and screen output. 3 did the opposite. Using 1 would suppress errors, which would mean you wouldn't know if your code was bad. You could use 0 and 3 or, if you don't want a listing, 0 and 2. Search this page for 'first pass', for a more complete explanation: https://central.kaserver5.org/Kasoft/Typeset/BBC/Ch43.html

I think it's clear now - mode 0 is used to suppress the error messages about yet-unseen labels in the first pass, and 3 to give the output with any errors. Meanwhile, by the end of the first pass, all labels would have been seen, so in the second pass, the assembler could insert the correct addresses for them, at the places where those labels were used in jump statements, even if some of those statements were before where the labels were defined.

But I'll check that page out anyway.

Thanks again.

Re: BBC Basic returns on multiple platforms, open sourced

#107
post #106

Earlier quoted context omitted.

There were four OPT (modes) for the assembler, numbered 0 to 3. 0 suppressed all errors and screen output. 3 did the opposite. Using 1 would suppress errors, which would mean you wouldn't know if your code was bad. You could use 0 and 3 or, if you don't want a listing, 0 and 2. Search this page for 'first pass', for a more complete explanation: https://central.kaserver5.org/Kasoft/Typeset/BBC/Ch43.html

I think it's clear now - mode 0 is used to suppress the error messages about yet-unseen labels in the first pass, and 3 to give the output with any errors. Meanwhile, by the end of the first pass, all labels would have been seen, so in the second pass, the assembler could insert the correct addresses for them, at the places where those labels were used in jump statements, even if some of those statements were before…

100% correct.

Re: BBC Basic returns on multiple platforms, open sourced

#108
post #94

Earlier quoted context omitted.

>Those BBC TV shows had the unusual feature of broadcasting software over the end credits. Just had to tape the screeching and play it back into the computer. Can you explain this? Do you mean that BASIC programs were encoded as sound in some way, and then could be uploaded into the computer and run?

Never used a BBC but 8bit computers of this era often used cassettes to load and save data. The tape would contain bleeps and blurps which would be decoded into bytes by the computer. EG this is the sound produced by an Amstrad cpc464 loading a game: https://www.youtube.com/watch?v=OvChkOHgDIo This meant that to copy software you didn't even need a computer, just a double cassette deck. And that by recording the cred…

Got it, thanks.

Re: BBC Basic returns on multiple platforms, open sourced

#109
post #94

Earlier quoted context omitted.

>Those BBC TV shows had the unusual feature of broadcasting software over the end credits. Just had to tape the screeching and play it back into the computer. Can you explain this? Do you mean that BASIC programs were encoded as sound in some way, and then could be uploaded into the computer and run?

Yes. That's exactly it. Just like an acoustic modem. And also how software and data was stored on compact audio cassette when disk drives (the floppy kind, not the hard kind) were too expensive or out of reach of the average person.

Makes sense. Thanks.

Re: BBC Basic returns on multiple platforms, open sourced

#110
post #94
post #29

Earlier quoted context omitted.

I donated my BBC Model B+ to a computer museum recently, along with a stack of Acorn User magazines (available on the Internet Archive, BTW) and software on cassette. Felt strong pangs of regret driving away. I can still feel the excitement of figuring it all out, a world opening up to me. Those BBC TV shows had the unusual feature of broadcasting software over the end credits. Just had to tape the screeching and pla…

>Those BBC TV shows had the unusual feature of broadcasting software over the end credits. Just had to tape the screeching and play it back into the computer. Can you explain this? Do you mean that BASIC programs were encoded as sound in some way, and then could be uploaded into the computer and run?

Not just basic programmes, anything digital can be encoded in this way.

Software has even been distributed on vinyl records and flexi singles!

You could connect a domestic cassette recorder up to a BBC Micro and use to save and load software onto normal cassettes!

There were favoured devices that would give better results and better cassettes for data storage and so on.

Its all ancient history and folklore now :-)

Post reply on HN