Are there versions of BBC Basic with extensions (like procedures)

discussion of beeb/electron applications, languages, utils and educational s/w
evert67
Posts: 47
Joined: Mon Jul 14, 2003 8:45 pm

Are there versions of BBC Basic with extensions (like procedures)

Postby evert67 » Wed Sep 20, 2017 7:53 pm

BBC Basic was the first programming language I learned and I still love it.

However, since then I've learned many other programming languages and Turbo Pascal has long been my favourite.

Now I'm looking for an extended version of BBC Basic (preferably for the PC, so I can make use of more memory). It doesn't have to be a functional programming language (impossible with BBC Basic, I think) and it even doesn't have to be object-oriented.

However, it would be very nice if it features procedures and a couple of other things that have become standard in more modern programming languages. Does anyone know whether such a version of BBC Basic exists?

Thanks!

RobC
Posts: 1736
Joined: Sat Sep 01, 2007 9:41 pm

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby RobC » Wed Sep 20, 2017 8:21 pm

evert67 wrote:Now I'm looking for an extended version of BBC Basic (preferably for the PC, so I can make use of more memory).

BBC BASIC for Windows: http://www.bbcbasic.co.uk/bbcwin/bbcwin.html

Another option is to get a Raspberry PI and run RISC OS:
https://www.riscosopen.org/content/sales/risc-os-pico

evert67 wrote:However, it would be very nice if it features procedures and a couple of other things that have become standard in more modern programming languages.

AFAIK, BBC BASIC has always had procedures but there are lots of extra features in BBC BASIC for Windows.

User avatar
hoglet
Posts: 6391
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby hoglet » Wed Sep 20, 2017 8:31 pm

These is something called BBC Advanced Basic for the 6502 Co Processor:

This is from an advert:

Code: Select all

Advanced BASIC                      for BBC B/B+/Master

  Tubelink is proud to offer the most powerful version of BASIC
  ever written for a 6502-based BBC micro.  Advanced BASIC
  (Archimedes BASIC V) is a new version of BASIC, for the BBC
  micro models B/B+/Master with 6502 second processor or
  Turbo, and is compatible with Acorn's new Archimedes BASIC V.

  Just look at some of the features it has to offer...
  . Over 35 new keywords
  . New program loop structures (CASE, WHILE, etc)
  . Multi-line'IF' statements
  . New graphics commands (CIRCLE, ELLIPSE, etc)
  . New error handling and TRACE debugging modes
  . Instant on-screen help on keywords and status
  . New statements and functions
  . Mouse support (new MOUSE keyword)
  . New string handling features
  . INSTALL and LIBRARY commands for procedures
  . Extended assembler
  . Includes Acorn's very latest 1987 Hi-BASIC

  Advanced BASIC can even be used to run Archimedes
  programs on your model B/B+/Master, or alternatively for writing
  programs which could be run on an Archimedes micro.

  Advanced BASIC is supplied on disc for loading into a sideways
  RAM system, or on 16k EPROM, together with comprehensive
  user guide and 1987 Hi-BASIC on disc under license from
  Acorn. (To use extended graphics commands on B/B+ requires
  Acorn's GXR ROM.  Mouse commands require suitable driver
  ROM, eg.  Chauffeur or AMX Super ROM).  State make and
  model of second processor in use.  Full leaflet on request.

  gbp 29.95 on 40/80 track disc - gbp 34.95 on 16k EPROM

  Unique offer: Advanced BASIC and PMS B2P 65CO2 second
  processor for just gbp 115 - saving gbp 15 on the normal RRP.
  Includes Advanced BASIC, second processor, instruction
  guides, and Tube Toolkit ROM.  Add gbp 5 if Advanced BASIC ROM
  version required. (B2P is only suitable for model B use.)

There is a copy on Jonathan's site:
http://mdfs.net/Software/BBCBasic/BBC/

The full help file is here:
https://acorn.huininga.nl/pub/docs/sour ... IC/BASHELP

Dave

evert67
Posts: 47
Joined: Mon Jul 14, 2003 8:45 pm

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby evert67 » Wed Sep 20, 2017 8:40 pm

RobC wrote:
evert67 wrote:Now I'm looking for an extended version of BBC Basic (preferably for the PC, so I can make use of more memory).

BBC BASIC for Windows: http://www.bbcbasic.co.uk/bbcwin/bbcwin.html

Another option is to get a Raspberry PI and run RISC OS:
https://www.riscosopen.org/content/sales/risc-os-pico

evert67 wrote:However, it would be very nice if it features procedures and a couple of other things that have become standard in more modern programming languages.

AFAIK, BBC BASIC has always had procedures but there are lots of extra features in BBC BASIC for Windows.


Yeah, I had heard from BBC Basic for Windows but didn't know it was the Archimedes implementation and not the BBC micro implementation. So it has procedures?

I've read the FAQ, but is there a list with the extensions it has over the BBC micro implementation?

Thanks!

User avatar
sydney
Posts: 1968
Joined: Wed May 18, 2005 9:09 am
Location: Newcastle upon Tyne

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby sydney » Wed Sep 20, 2017 9:14 pm

BBC BASIC has had procedures and functions since 1981.

User avatar
flaxcottage
Posts: 2739
Joined: Thu Dec 13, 2012 8:46 pm
Location: Derbyshire

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby flaxcottage » Wed Sep 20, 2017 10:19 pm

Yes my favourite procedure was PROCOnMan. 8) :lol:
- John

Currently running Level 4 Econet with BBC B, BBC B+ 128K, Master 128K, 4Mb A3000, 4Mb A3020, 4Mb A4000, 4Mb A5000 dual FDD; UK101; HP41CX setup; Psion 3a, 3mx and 5mx; Z88; TI-58c, TI-59 and printer, HP-16C programmer's calculator

User avatar
jgharston
Posts: 2661
Joined: Thu Sep 24, 2009 11:22 am
Location: Whitby/Sheffield

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby jgharston » Thu Sep 21, 2017 3:36 am

To reinforce what other people have already said, BBC BASIC has AWAYS had procedures, I can't understand how somebody could have managed to actively prevent themselves from noticing this.

Naturally, there's a description of the different functionality of different versions of 6502 BBC BASIC on the Wiki, and you could have found almost the same information on the other Wiki by using any web search of your choice

and there's a very short summary of different versions on mdfs.net, more as an aid memoir for programmers writing a BASIC interpreter as to what they should call it. (eg if it hasn't got TIME$ it must be BASIC II, if doesn't have WHILE/etc, it must be BASIC IV, etc.)

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.25
(C) Copyright J.G.Harston 1989,2005-2015
>_

User avatar
paulv
Posts: 3557
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby paulv » Thu Sep 21, 2017 6:47 am

So in terms of modern languages, most are based on an OO paradigm with classes and methods. Methods are simply functions that return a result or not. BBC BASIC has both Functions DEF FNxxxxxx and Procedures DEF PROCxxxxxxxx where a PROCedure is essentially a FuNction that returns nothing/null/void.

Like everyone else has said, BBC BASIC has had procedures and functions since forever and since then it's just evolved to support more aspects of modern computing such as the WIMP environments we have etc.

I too don't quite understand how you might have missed these original features of BBC BASIC unless you're maybe mixing it up with a different language of the era?

Paul

evert67
Posts: 47
Joined: Mon Jul 14, 2003 8:45 pm

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby evert67 » Fri Sep 22, 2017 12:33 pm

You guys are right. I think I programmed in BBC Basic from when I was 15 until I was about 19. I published in various magazines, but I haven't programmed in BBC Basic at all since then. I still remember how much I hated the GOSUB and this must have caused that I forgot BBC Basic had procedures, too. When I was about 19 I got a PC and switched to Turbo Pascal and then Delphi. At the Uni I was taught many languages, but Delphi always remained my language of choice. I quit programming when I left Uni, and haven't done any serious programming since. I guess I was about 25.

Recently I wanted to start programming again. And since so many people use Java, I used this too. It was not too bad, but what I hated was that I had to "program" the user interface and couldn't "draw" it like I could with BBC Basic. That's quite understandable now with all those different screen formats, particularly on mobile devices, but still...

So recently I wondered in which language I would program my next project. I was considering Java, Delphi (or one of its succcessors), Python and BBC Basic. BBC Basic has, of course, the disadvantage that it doesn't run on all platforms, but it does have all features I like (except OO, which I'm not a big fan of anyway). I told you about a Java already. I don't know Python well, but it seems pretty user-friendly to me. So I guess I'm now hesitating between Python and BBC Basic.

Is there anyone here who has experience with both languages (I realize there are two versions of Python)? Which do you prefer and why?

User avatar
BigEd
Posts: 1397
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby BigEd » Fri Sep 22, 2017 12:59 pm

(BBC Basic, in the SDL flavour, supports lots of platforms and for free - see here.)

crj
Posts: 146
Joined: Thu May 02, 2013 4:58 pm

Re: Are there versions of BBC Basic with extensions (like procedures)

Postby crj » Sat Sep 23, 2017 12:39 am

paulv wrote:So in terms of modern languages, most are based on an OO paradigm with classes and methods. Methods are simply functions that return a result or not.

That's not really a useful definition of an object-oriented message/method.

The key point about the object-oriented paradigm is that it compartmentalises data and the code which manipulates it. Because the object's internal state is only ever manipulated through methods, it is possible for the implementation to enforce correctness, maintain invariants, etc. in a way that makes it easier (a) to determine which component of a complex software system failed and (b) substitute a different object that exhibits the same interface but is implemented in another way.

In terms of BBC Basic, there are three related concepts:
  • A subroutine: like GOTO, except you use GOSUB. This remembers where you started and RETURN goes back there once the subroutine is finished.
  • A procedure: similar to GOSUB, except:
    • You give it a name, not a line number
    • It can have local variables
    • You can pass it arguments
  • A function: extremely like a procedure, but it can return a result, and a function call is an expression, not a statement.


Return to “software: other”

Who is online

Users browsing this forum: No registered users and 1 guest