BBCSDL - Functional Differences from Other BBC BASIC implementations?

for discussion of bbc basic for windows/sdl, brandy and more
alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

BBCSDL - Functional Differences from Other BBC BASIC implementations?

Post by alex_farlie » Thu Aug 16, 2018 7:45 pm

Is there a list of the Functional Differences?

It would be nice to know when writing code, so that it's reasonably cross platform...

I think there was a posting way-back about the differences, but it would be nice to have a link or a fuller explanation.

(Title amended in response to comments in thread)...
Last edited by alex_farlie on Thu Aug 16, 2018 9:09 pm, edited 2 times in total.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations (such as BB4W)?

Post by Richard Russell » Thu Aug 16, 2018 8:35 pm

alex_farlie wrote:
Thu Aug 16, 2018 7:45 pm
Is there a list of the Functional Differences
You refer in the subject line to "other BBC BASIC implementations"; given that this is Stardot they are primarily Sophie's 6502 version in the BBC Micro / BBC Master / Acorn Electron and her ARM version in the Acorn Archimedes / RISC PC. Possibly Brandy should also be included in that set, because its compatibility with ARM BASIC is very good. BB4W and BBCSDL have a lot more in common than either of them do with Sophie's versions, indeed you may find that they are not considered to be BBC BASIC at all by some members of this forum!

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Thu Aug 16, 2018 9:08 pm

Richard Russell wrote:
Thu Aug 16, 2018 8:35 pm
alex_farlie wrote:
Thu Aug 16, 2018 7:45 pm
Is there a list of the Functional Differences
You refer in the subject line to "other BBC BASIC implementations"; given that this is Stardot they are primarily Sophie's 6502 version in the BBC Micro / BBC Master / Acorn Electron and her ARM version in the Acorn Archimedes / RISC PC. Possibly Brandy should also be included in that set, because its compatibility with ARM BASIC is very good. BB4W and BBCSDL have a lot more in common than either of them do with Sophie's versions, indeed you may find that they are not considered to be BBC BASIC at all by some members of this forum!
Ah. Well I must apologise for a poorly worded title then, generally whatI was trying to find was the list you posted a while ago of the differences between BB4W and BBCSDL. (Perhpas this is a page that could be on the wiki or in the Manual?) The main differences I was aware of was how SYS calls to library functions worked, and the additional *VOICE command that was implemented (On BBCSDL there were predefined voices, not voice generators like on RISC OS., In BB4W the *VOICE functionality is implemented using an additional library, with a different interface AIUI ).

The differences between ARM BASIC V , Brandy and BB4W/BBCSDL are more substantial , Brandy in some respects implements it's own SYS interface in emulation of some RISC OS SWI's, It doesn't as far as I know, allow external library calls to the Host OS, like BB4W does... BB4W and BBCSDL have language extensions , such as indrect procedure calls and function pointer equivalents, NOT present in ARM BASIC V or Brandy . I am also not sure as to the existence of an Assembler in Brandy..

On 8bit BASIC, various OS functions could be 'vectored' to do specialist handling in machine code, something that's not at all straightforward to do (or necessarily advisable) in ARM BASIC V, BB4W, BBCSDL, or Brandy for obvious reasons, BBCSDL is nominally cross-platform and vectoring to extned it tended to be machine specfic.

BB4W itself has some documented differences in variable handling between versions, but with reasonably portable code this isn't a concern for a normal programmer.

I still think some kind of document detailing various functional differences between Implementations would be useful though.
Last edited by alex_farlie on Thu Aug 16, 2018 9:13 pm, edited 2 times in total.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Thu Aug 16, 2018 9:22 pm

alex_farlie wrote:
Thu Aug 16, 2018 9:08 pm
what I was trying to find was the list you posted a while ago of the differences between BB4W and BBCSDL.
I don't remember posting such a list (that's not to say I didn't; have you tried searching for it?). Since Stardot is "for users of Acorn computers and emulators" I would probably get into trouble if I was to attempt to answer such an off-topic question here. I wouldn't want yet another forum to be 'off limits'! :roll:

Edit: I tried doing my own search for 'voice' and this is all I could find. I hope it's helpful.
Last edited by Richard Russell on Thu Aug 16, 2018 9:32 pm, edited 1 time in total.

User avatar
Elminster
Posts: 4074
Joined: Wed Jun 20, 2012 9:09 am
Location: Essex, UK
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations?

Post by Elminster » Thu Aug 16, 2018 9:25 pm

I think you are safe in the miscellaneous software for Mac,pc area this is posted in

Soruk
Posts: 625
Joined: Mon Jul 09, 2018 11:31 am
Location: Basingstoke, Hampshire
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Soruk » Thu Aug 16, 2018 9:34 pm

alex_farlie wrote:
Thu Aug 16, 2018 9:08 pm
The differences between ARM BASIC V , Brandy and BB4W/BBCSDL are more substantial , Brandy in some respects implements it's own SYS interface in emulation of some RISC OS SWI's, It doesn't as far as I know, allow external library calls to the Host OS, like BB4W does... BB4W and BBCSDL have language extensions , such as indrect procedure calls and function pointer equivalents, NOT present in ARM BASIC V or Brandy . I am also not sure as to the existence of an Assembler in Brandy..
Brandy has no assembler in it, admittedly this helps maintain its portability, nor can it call out to host OS libraries. SWIs are entirely unimplemented except on builds for RISC OS where they are passed through - but that is something that I may look at in due course for the fork I'm working on targeting Linux.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations?

Post by Richard Russell » Thu Aug 16, 2018 9:40 pm

Elminster wrote:
Thu Aug 16, 2018 9:25 pm
I think you are safe in the miscellaneous software for Mac,pc area this is posted in
I wouldn't want to risk it, but in any case I don't have the kind of list Alex is asking for. In fact I had completely forgotten about the *VOICE difference, so had I tried to answer the question 'from memory' I wouldn't even have mentioned it! Failing memory is one of the most annoying and frustrating symptoms of my condition.

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations?

Post by alex_farlie » Thu Aug 16, 2018 9:43 pm

Richard Russell wrote:
Thu Aug 16, 2018 9:40 pm
Elminster wrote:
Thu Aug 16, 2018 9:25 pm
I think you are safe in the miscellaneous software for Mac,pc area this is posted in
I wouldn't want to risk it, but in any case I don't have the kind of list Alex is asking for. In fact I had completely forgotten about the *VOICE difference, so had I tried to answer the question 'from memory' I wouldn't even have mentioned it! Failing memory is one of the most annoying and frustrating symptoms of my condition.
Hmm.. My memory could be wrong as well..

So is there somewhere more appropriate where a list could be built up?

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Thu Aug 16, 2018 9:45 pm

Soruk wrote:
Thu Aug 16, 2018 9:34 pm
alex_farlie wrote:
Thu Aug 16, 2018 9:08 pm
The differences between ARM BASIC V , Brandy and BB4W/BBCSDL are more substantial , Brandy in some respects implements it's own SYS interface in emulation of some RISC OS SWI's, It doesn't as far as I know, allow external library calls to the Host OS, like BB4W does... BB4W and BBCSDL have language extensions , such as indrect procedure calls and function pointer equivalents, NOT present in ARM BASIC V or Brandy . I am also not sure as to the existence of an Assembler in Brandy..
Brandy has no assembler in it, admittedly this helps maintain its portability, nor can it call out to host OS libraries. SWIs are entirely unimplemented except on builds for RISC OS where they are passed through - but that is something that I may look at in due course for the fork I'm working on targeting Linux.
You are also aware the Napolean Brandy variant that managed to provide native grpahics on Win32? ( I prefer BB4W/BBCSDL for other reasons than Brandy original non-support of Win32 )

Soruk
Posts: 625
Joined: Mon Jul 09, 2018 11:31 am
Location: Basingstoke, Hampshire
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Soruk » Thu Aug 16, 2018 9:55 pm

alex_farlie wrote:
Thu Aug 16, 2018 9:45 pm
You are also aware the Napolean Brandy variant that managed to provide native grpahics on Win32? ( I prefer BB4W/BBCSDL for other reasons than Brandy original non-support of Win32 )
I'm aware of it, but not looked that closely. Then again, I not targeting Win32. Matrix Brandy is emulating the RISC OS display using SDL 1.2.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Thu Aug 16, 2018 9:57 pm

Soruk wrote:
Thu Aug 16, 2018 9:34 pm
that is something that I may look at in due course for the fork I'm working on targeting Linux.
I would say that SYS is the most valuable single statement in BB4W/BBCSDL, because it makes possible so many things that wouldn't be without extending the language itself. It's what allows me to claim that BBC BASIC can be used to do (virtually) anything that C or Python or Java etc. can, a claim that has been justified by the large range of applications it has been used for (see here for a few examples).

But with that power comes some major complications, not least that if you are going to interact with the native OS using SYS you need to be able to work with machine addresses (and they will be 64-bit addresses in the case of a 64-bit OS). No longer can BBC BASIC run in a sandbox, with a virtual 32-bit memory space to provide compatibility with earlier versions. This could be tricky for Brandy, unless it has a way of working with 64-bit integers (BB4W and BBCSDL do, of course).

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Thu Aug 16, 2018 10:07 pm

Soruk wrote:
Thu Aug 16, 2018 9:55 pm
alex_farlie wrote:
Thu Aug 16, 2018 9:45 pm
You are also aware the Napolean Brandy variant that managed to provide native graphics on Win32? ( I prefer BB4W/BBCSDL for other reasons than Brandy original non-support of Win32 )
I'm aware of it, but not looked that closely. Then again, I not targeting Win32. Matrix Brandy is emulating the RISC OS display using SDL 1.2.
Including what RISC OS calls SpriteOps ? That was the BIG difference to me... was 'sane' handling of doing scaled graphics... It can also be done in BB4W via libraries (GFXLIB was one that basicly dis some clever stuff with Direct X in Windows, but wasn't portable). SDL has all manner of routines for bitmapped image handling as evidenced by the recent Jigsaw example in BBCSDL. ) I'm not sure SDL is aware of !Sprites format though... Hmmm

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Thu Aug 16, 2018 10:12 pm

Richard Russell wrote:
Thu Aug 16, 2018 9:57 pm
they will be 64-bit addresses in the case of a 64-bit OS
This is very relevant to the OP's original question. It's not only the differences between BB4W and BBCSDL that may be of interest to programmers, but the differences between 32-bit and 64-bit BBCSDL too; in fact they are likely to be more significant. At the moment only the iOS edition is 64-bits, but Apple have announced that Mac OS will be dropping support for 32-bit apps within a few months, and Linux only supports 32-bit apps with an optional extension that many people prefer not to install.

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations?

Post by alex_farlie » Thu Aug 16, 2018 10:19 pm

It also occurs to me that BASIC V implemented quite a lot of what was considered in COMAL ( For which there was orignally a BBC Micro version).

I wonder if anyone took the book COMAL on the BBC Microcomputer and attempted to adapt the listings for BASIC V?

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Thu Aug 16, 2018 10:27 pm

Richard Russell wrote:
Thu Aug 16, 2018 10:12 pm
Richard Russell wrote:
Thu Aug 16, 2018 9:57 pm
they will be 64-bit addresses in the case of a 64-bit OS
This is very relevant to the OP's original question. It's not only the differences between BB4W and BBCSDL that may be of interest to programmers, but the differences between 32-bit and 64-bit BBCSDL too; in fact they are likely to be more significant. At the moment only the iOS edition is 64-bits, but Apple have announced that Mac OS will be dropping support for 32-bit apps within a few months, and Linux only supports 32-bit apps with an optional extension that many people prefer not to install.
The differences in Assembly between ia32 and ia64 are also signifcant.. Unlike i8x6-> ia32 there aren't simple conversions.. Ia64 also isn't the only 64 bit architecture for PC.

You also have technologies like WebAssembly, and IL... (There was at one time \a project to make an OWL BASIC for .NET, but I haven't heard anything of that project in a while...)

I don't see BBCSDL or Brandy being ported to .NET any time soon. I don't even think .NET/Mono exists on platforms like RISC OS..

I wonder if BBC BASIC is eventually going to end up being defined as it's OWN virtual machine spec to be honest...

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Thu Aug 16, 2018 10:45 pm

alex_farlie wrote:
Thu Aug 16, 2018 10:27 pm
The differences in Assembly between ia32 and ia64 are also signifcant..
Certainly, as they also are between 32-bit and 64-bit ARM assembly language. But since I still don't have either an x86-64 or arm64 assembler for BBCSDL it's moot! That isn't a concern for the iOS edition, because Apple don't permit 'arbitrary code execution' so an assembler wouldn't be usable anyway. But it's a major factor delaying a 64-bit Mac OS or Linux edition.
Unlike i8x6-> ia32 there aren't simple conversions..
Not to IA64, no, but the conversion from IA32 to x86-64 is no more difficult than it was from 16-bit x86 to IA32.
Ia64 also isn't the only 64 bit architecture for PC.
IA64 (Itanium) is obsolete and need not concern you. There is only one practical 64-bit PC architecture, and that's (AMD) x86-64.
Last edited by Richard Russell on Thu Aug 16, 2018 10:49 pm, edited 1 time in total.

Soruk
Posts: 625
Joined: Mon Jul 09, 2018 11:31 am
Location: Basingstoke, Hampshire
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Soruk » Thu Aug 16, 2018 10:59 pm

alex_farlie wrote:
Thu Aug 16, 2018 10:07 pm
Including what RISC OS calls SpriteOps ? That was the BIG difference to me... was 'sane' handling of doing scaled graphics... It can also be done in BB4W via libraries (GFXLIB was one that basicly dis some clever stuff with Direct X in Windows, but wasn't portable). SDL has all manner of routines for bitmapped image handling as evidenced by the recent Jigsaw example in BBCSDL. ) I'm not sure SDL is aware of !Sprites format though... Hmmm
Not yet. Before I get to sprites, I want to make sure the BBC-level graphics are as complete as possible. Also - Richard's BBCSDL is working with SDL 2.0, Brandy is using SDL 1.2.

This is the last I'll mention of this on this thread, there's a separate thread for my fork of Brandy.
Last edited by Soruk on Thu Aug 16, 2018 11:09 pm, edited 1 time in total.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Thu Aug 16, 2018 11:12 pm

Soruk wrote:
Thu Aug 16, 2018 10:59 pm
BBCSDL is working with SDL 2.0, Brandy is using SDL 1.2.
Migrating Brandy to SDL 2.0 would be easy enough, wouldn't it (support for surfaces is pretty much the same I think)? It might even bring performance benefits, since SDL 2 is hardware-accelerated. Although God knows I don't want the already enormous speed advantage of Brandy to get even greater!

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Fri Aug 17, 2018 4:55 pm

alex_farlie wrote:
Thu Aug 16, 2018 9:08 pm
what I was trying to find was the list you posted a while ago of the differences between BB4W and BBCSDL.
I still have no recollection of posting such a list, nor can I find it in a search, so I've created one from scratch! You can see it here but it's bound to be incomplete/inaccurate. Let me know as and when you find errors or omissions and I'll attempt to update it.

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Fri Aug 17, 2018 5:54 pm

Richard Russell wrote:
Fri Aug 17, 2018 4:55 pm
alex_farlie wrote:
Thu Aug 16, 2018 9:08 pm
what I was trying to find was the list you posted a while ago of the differences between BB4W and BBCSDL.
I still have no recollection of posting such a list, nor can I find it in a search, so I've created one from scratch! You can see it here but it's bound to be incomplete/inaccurate. Let me know as and when you find errors or omissions and I'll attempt to update it.
Thanks (it's now bookmarked for reference) , Thank you producing this. In your previous notes on *VOICE you state the choice is a pre-determined set of voices, should the documentation indicate what these are in more detail?

David1664
Posts: 59
Joined: Thu Feb 25, 2010 2:24 am
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by David1664 » Fri Aug 17, 2018 6:20 pm

Richard Russell wrote:
Fri Aug 17, 2018 4:55 pm
I still have no recollection of posting such a list, nor can I find it in a search, so I've created one from scratch! You can see it here but it's bound to be incomplete/inaccurate. Let me know as and when you find errors or omissions and I'll attempt to update it.
Many thanks for that list. I'm especially interested in the description of the @platform% system variable.

David.
--

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Fri Aug 17, 2018 6:40 pm

Richard Russell wrote:
Fri Aug 17, 2018 4:55 pm
alex_farlie wrote:
Thu Aug 16, 2018 9:08 pm
what I was trying to find was the list you posted a while ago of the differences between BB4W and BBCSDL.
I still have no recollection of posting such a list, nor can I find it in a search, so I've created one from scratch! You can see it here but it's bound to be incomplete/inaccurate. Let me know as and when you find errors or omissions and I'll attempt to update it.
Not an Error or Omission, but a "Be Careful"... Between version 5.9 (?) and Version 6 of BB4W certain variable storage changed (per the documentation), code that made assumptions about "internal" storage may need to be checked more carefully ( like the pointer hack used to create "dynamic data structures" in a Wiki example.) . I am reasonably assuming BBCSDL uses the extended precision (post v6 style).
(Irrelevant to differences between BB4W/BBCSDL)

I'll re-read the documentation to see if it's covered, but did the behaviour of PRINT# and INPUT# change between BB4W versions and BBCSDL, given the change in variable size in memory between versions 5.9 and 6? Data files written on other implementations (such as BASIC 2/4) already needed to be run through a convertor, before use on BB4W/BBCSDL.

Not an omission or error as such but a "cross-platform" consideration... Text handling... Some systems use CRLF, some use only CR or LF, there being no common line-end approach. Windows , Mac and Linux have different line termination conventions.

Not BB4W/BBCSDL differences, but some Functional differences from earlier BBC BASIC implementations and related code that may be of interest to people reading:

A programming tactic on the BBC Micro was to do VDU23;8202;0;0;0; to alter the cursor behaviour in some instances ( I found it used in a BASIC game) On later implementations an explicit OFF command to hide the cursor was provided, given the different graphics chipsets.

Palette Animation: Old-style VDU 19 reprogramming is different on BB4W/BBCSDL from older systems, and to some extent doesn't make sense in a multi-windowed, million colour video environment.. On older systems, the effect would change content already on-screen, on BB4W, BBCSDL it doesn't. A possible workaround for BB4W is on the BB4W wiki, but is Windows specific.

RISC OS style SpriteOp's are not supported on BB4W/BBCSDL., although on BBCSDL similar effects can be obtained by other means. !Sprites format is not (currently) supported.

BB4W and BBCSDL have their own much extended MOUSE support compared to earlier implementations. The old style OSWORD mouse call (Typically in respect of an AMX mouse) in BBC Micro code is completely unsupported in BB4W/BBCSDL.

Code using BBC MICRO era MOS Calls (typically OSWORD or OSBYTE) will need to be substantially re-written for BB4W/BBCSDL. In many cases the effect of the MOS function concerned can be achieved by other means provided by the language or an appropriate SYS function, or don't make sense in modern implementations.

BB4W as noted in the documentation implements an ia32 assembler... There is currently not an assembler for other architectures ( As I understand it)

There are differences in the level of support for extended PLOT and GCOL functionality originally introduced in the Graphics Extension ROM, As noted RECTANGLE SWAP is specific to BB4w (at present).

(Sorry to be a pain but you did ask for potential omissions... Those are some I've encountered so far.... Elsewhere there used to be a guide on how to Port RISC OS style Apps in BASIC to BB4W, but I've not been able to find it again.)


Striking through the information that it is irrelevant to BBCSDL/BB4W differences.
Last edited by alex_farlie on Fri Aug 17, 2018 10:28 pm, edited 3 times in total.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Fri Aug 17, 2018 6:41 pm

alex_farlie wrote:
Fri Aug 17, 2018 5:54 pm
In your previous notes on *VOICE you state the choice is a pre-determined set of voices, should the documentation indicate what these are in more detail?
BBCSDL doesn't have any formal documentation (separate from that of BB4W). I've consistently said that I don't have the time or inclination to create such documentation myself and, since BBCSDL is a collaborative project, that it should be one of the aspects that somebody else (or a group of people) contribute. Other aspects which await volunteers are the x86-64 and arm64 assemblers needed by the 64-bit editions, and the 'Compile' (create executable) feature that requires expertise in the specific target platforms, which I don't possess.

I can appreciate that to somebody who has previously experienced BB4W (a paid-for product that comes with extensive documentation) a free, partially user-supported, largely undocumented product such as BBCSDL must come as quite a culture shock. But that's the way it is. I still intend to publish the source code, once somebody can be found to give me the necessary help (I have zero experience of GitHub and the like), at which point there will at least be a source of information other than what's in my head!

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Fri Aug 17, 2018 6:46 pm

alex_farlie wrote:
Fri Aug 17, 2018 6:40 pm
Between version 5.9 (?) and Version 6 of BB4W certain variable storage changed
BB4W version 5 is obsolete. Whenever I refer to BB4W these days I mean version 6, but to add 'v6' to every single reference would be overkill.
did the behaviour of PRINT# and INPUT# change between BB4W versions and BBCSDL
As I note in the 'differences' document, the BB4W (v6) and BBCSDL (32-bit) interpreters are substantially identical, so no.

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Fri Aug 17, 2018 7:04 pm

Richard Russell wrote:
Fri Aug 17, 2018 6:41 pm
alex_farlie wrote:
Fri Aug 17, 2018 5:54 pm
In your previous notes on *VOICE you state the choice is a pre-determined set of voices, should the documentation indicate what these are in more detail?
BBCSDL doesn't have any formal documentation (separate from that of BB4W). I've consistently said that I don't have the time or inclination to create such documentation myself and, since BBCSDL is a collaborative project, that it should be one of the aspects that somebody else (or a group of people) contribute. Other aspects which await volunteers are the x86-64 and arm64 assemblers needed by the 64-bit editions, and the 'Compile' (create executable) feature that requires expertise in the specific target platforms, which I don't possess.

I can appreciate that to somebody who has previously experienced BB4W (a paid-for product that comes with extensive documentation) a free, partially user-supported, largely undocumented product such as BBCSDL must come as quite a culture shock. But that's the way it is. I still intend to publish the source code, once somebody can be found to give me the necessary help (I have zero experience of GitHub and the like), at which point there will at least be a source of information other than what's in my head!
I'm confident that there are Stardot contributors that understand Github, and may be able to advise further.

Soruk
Posts: 625
Joined: Mon Jul 09, 2018 11:31 am
Location: Basingstoke, Hampshire
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Soruk » Fri Aug 17, 2018 7:22 pm

alex_farlie wrote:
Fri Aug 17, 2018 7:04 pm
I'm confident that there are Stardot contributors that understand Github, and may be able to advise further.
If it helps, there's a very nice front end for Git that integrates well in Windows - TortoiseGit. It's very popular amongst the Windows users where I work.

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by alex_farlie » Fri Aug 17, 2018 7:31 pm

Richard Russell wrote:
Fri Aug 17, 2018 6:46 pm
alex_farlie wrote:
Fri Aug 17, 2018 6:40 pm
Between version 5.9 (?) and Version 6 of BB4W certain variable storage changed
BB4W version 5 is obsolete. Whenever I refer to BB4W these days I mean version 6, but to add 'v6' to every single reference would be overkill.
did the behaviour of PRINT# and INPUT# change between BB4W versions and BBCSDL
As I note in the 'differences' document, the BB4W (v6) and BBCSDL (32-bit) interpreters are substantially identical, so no.
File handling would be another "Be Careful:" area... Although I think it is something the documentation (for BB4W) notes already. :)

As the file-handling is identical between BB4W and BBCSDL, the concern would be the difference in handling between code written on early systems like BASIC 2 and 4, and in BB4W, BBCSDL..

Given your comment below I'm going to look into this in more depth...
Last edited by alex_farlie on Fri Aug 17, 2018 7:54 pm, edited 1 time in total.

User avatar
Richard Russell
Posts: 1258
Joined: Sun Feb 27, 2011 10:35 am
Location: Downham Market, Norfolk
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by Richard Russell » Fri Aug 17, 2018 7:44 pm

alex_farlie wrote:
Fri Aug 17, 2018 7:31 pm
File handling would be another "Be Careful:" area...
Why? I should have known better than to write the 'differences' document, which has given you ammunition to scare people into not trying BBCSDL.

alex_farlie
Posts: 147
Joined: Sun Jul 07, 2013 10:46 pm
Contact:

File handling (Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?)

Post by alex_farlie » Fri Aug 17, 2018 7:51 pm

Richard Russell wrote:
Fri Aug 17, 2018 7:44 pm
alex_farlie wrote:
Fri Aug 17, 2018 7:31 pm
File handling would be another "Be Careful:" area...
Why? I should have known better than to write the 'differences' document, which has given you ammunition to scare people into not trying BBCSDL.
My file handling concern proved to be completely unfounded :oops: , BBCSDL behaves as BB4W does, and I would encourage anyone reading to try BBCSDL as soon as possible. It is an excellent cross-platform implementation.
Last edited by alex_farlie on Fri Aug 17, 2018 9:51 pm, edited 3 times in total.

User avatar
dhg2
Posts: 148
Joined: Tue Oct 25, 2016 8:37 pm
Contact:

Re: BBCSDL - Functional Differences from Other BBC BASIC implementations ?

Post by dhg2 » Fri Aug 17, 2018 8:05 pm

Richard Russell wrote:
Fri Aug 17, 2018 6:41 pm
I still intend to publish the (BBCSDL) source code, once somebody can be found to give me the necessary help (I have zero experience of GitHub and the like)
What sort of help do you need? I have absolutely no experience with github myself, I'm asking because I think knowing what specific sort of help you need, or what you need the help with (in relation to git/github), may make it more likely that someone here will volunteer the help.
And as a big fan of BBCSDL, I'm eager to see you get the help you need in making the source code available.
Last edited by dhg2 on Fri Aug 17, 2018 8:06 pm, edited 1 time in total.
Regards,
- Patrick

Post Reply

Return to “classic languages (e.g. BASIC) on non-acorn platforms”