BBC BASIC
« Purpose of the forum »

Welcome Guest. Please Login or Register.
Jan 20th, 2018, 4:17pm


Cross-platform BBC BASIC (Win32, Linux x86, Android, Mac OS-X, Raspberry Pi)

« Previous Topic | Next Topic »
Pages: 1  Notify Send Topic Print
 sticky  Author  Topic: Purpose of the forum  (Read 2296 times)
Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 689
xx Purpose of the forum
« Thread started on: Dec 13th, 2015, 1:45pm »

I have set up this forum as a place to discuss and coordinate development of a cross-platform SDL-based 32-bit version of BBC BASIC for Intel x86-based Operating Systems. Development will initially concentrate on a Linux (86) version, but it should be relatively straightforward (famous last words!) to port it to Mac-OS X and Android (86) as well. Admittedly there are very few Android tablets with Intel processors, the (now discontinued) Tesco Hudl2 being one, so supporting this platform will probably be a low priority.

I anticipate that development of this version of BBC BASIC will be a collaborative activity, with me contributing the run-time engine and other people the IDE and 'compiler' (I don't know enough about Linux or MacOS to determine whether creation of standalone executables is practical). The expectation is that the IDE will itself be written in BBC BASIC, so don't hesitate to volunteer if you are interested in contributing.

Although based on the BBC BASIC for Windows run-time engine, the 'look and feel' of this version of BBC BASIC will be significantly different, with a user interface more like that of the BBC Micro and Acorn Archimedes (e.g. by default a relatively coarse bitmapped font, although the *FONT command will be supported). In order to preserve its cross-platform nature it is anticipated that access to native Operating System features (e.g. GUI widgets) will be restricted.

However I am hopeful that the generic BBC BASIC functionality will be fairly comprehensive, including full emulation of MODE 7 and the SOUND and ENVELOPE statements. Performance-wise pure BASIC code should run at approximately the same speed as in BB4W, but some input-output operations will be significantly slower because of the way SDL works (it uses OpenGL under the hood).

I should emphasise that this will not become a paid-for product. These versions of BBC BASIC will be made available as freeware and I expect development to be an ongoing and relatively informal process, so suggestions for modifications and new features will be welcomed (but not necessarily implemented!).

Richard.

User Image
User IP Logged

JG Weston
New Member
Image


member is offline

Avatar




Homepage PM

Gender: Male
Posts: 1
xx Re: Purpose of the forum
« Reply #1 on: Dec 13th, 2015, 3:10pm »

Quote:
In order to preserve its cross-platform nature it is anticipated that access to native Operating System features (e.g. GUI widgets) will be restricted.


I think this is the right approach from my experience of prototyping for the Risc PI using BBC4W. The Basic part is a doddle once one realiases that Risc is Archimedes not BBC, and so some constructs are not 100% compatible. Sticking to the BBC subset is fine, but sorting out real time screen handling is not so easy, as the hardware environments are not compatible.

If such requirements become desirable later, then an OSCLI style interface could be designed and written by those familiar with each hardware at an assembler level.
User IP Logged

Acexbe
New Member
Image


member is offline

Avatar




PM


Posts: 2
xx Re: Purpose of the forum
« Reply #2 on: Dec 13th, 2015, 3:55pm »

Hello,

At the moment I am using BB4W on a chromebook with a Linux partition.
The chromebook has a intel cpu, so I can use Wine for running the BB4W setup.
BB4W native on linux is an old dream or should it be called BB4L?
But some dreams do come out...

Regards,

Manuel
« Last Edit: Dec 13th, 2015, 4:31pm by Acexbe » User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 689
xx Re: Purpose of the forum
« Reply #3 on: Dec 13th, 2015, 5:30pm »

on Dec 13th, 2015, 3:10pm, jgw321 wrote:
I think this is the right approach

I hope others agree. I suspect there may be a subset of people who would have preferred a 'BB4L', i.e. something similar to BB4W but for the Linux platform. However that was never likely to be practical nor is it something that particularly interests me.

To put things in perspective it took me about 18 months to develop BB4W, and there is no particular reason to expect that a 'BB4L' would be much quicker (my current degree of understanding of Linux is comparable to what it was of Windows when I started back in 2000 - and I am far less capable than I was then). By contrast it has taken me about two weeks to develop the SDL version from scratch to what I have today, which is a substantially functional version of BBC BASIC for Linux (albeit with no IDE).

So whatever views there might be about what would have been preferable in an ideal world, it is very clear to me that the approach I am adopting is the right one, in actually creating something that would almost certainly never have existed otherwise. So if you want to keep me motivated I suggest any 'back seat drivers', who think I could and should have done something different, keep quiet. grin

Quote:
an OSCLI style interface could be designed and written by those familiar with each hardware at an assembler level.

OSCLI already works, principally to access the built-in 'star' commands, but it will also 'shell out' to the native Operating System's command-line interface. Hopefully the common Unix heritage of Linux and MacOS should result in a reasonable degree of compatibility, but of course that is as yet unconfirmed.

Richard.
User IP Logged

sqwubbsy
New Member
Image


member is offline

Avatar




PM


Posts: 1
xx Re: Purpose of the forum
« Reply #4 on: Dec 14th, 2015, 07:45am »

Richard

Usual approach in a Unix environment is to implement a standalone command line application with appropriate flags etc to select program options etc.

There are plenty of Linux programming IDEs that can then be interfaced to a back-end application in this way, eclipse is the heavyweight example but there are others such as Code::Blocks, Geany, Anjuta each of which has their advocates etc. These IDEs are comprehensive and allow for command syntax, project manager, debugging etc. Being Open Source it would be easier for the BB4L community to implement a front-end by modifying a configuration file for one of these exisiting IDEs rather than stating from scratch.

(Apologies in advance if I'm stating the obvious!)

Mark
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 689
xx Re: Purpose of the forum
« Reply #5 on: Dec 14th, 2015, 08:34am »

on Dec 14th, 2015, 07:45am, sqwubbsy wrote:
(Apologies in advance if I'm stating the obvious!)

No, it's not at all "obvious" but nor do I think it's very relevant to the kind of development I'm doing. As I've said, I don't understand Linux (and nor do I want to, at my age!) at the level that would be necessary to do native application development on that platform.

That's why I alighted on SDL as a way of developing a program that would run on Linux without having to understand anything about Linux! That has allowed me, as a dyed-in-the-wool Windows enthusiast, to create a version of BBC BASIC that will run on Linux without having to do any of the development on Linux itself.

That probably upsets the 'purists' but pragmatically it has allowed me to achieve something that I couldn't have hoped to (and wouldn't have tried to) in a more conventional way.

Of course the down side is that the 'Operating System' I am interfacing with is SDL, not Linux. In BBC BASIC for Windows my code talks directly to the Win32 API, giving it access to the power, flexibility and speed of Windows. In the Linux version I am constantly frustrated by what I can't do, and how clunky it all is, because of having to work with the very limited capabilities of SDL.

But nevertheless it succeeds in providing a Linux version of BBC BASIC with the enhancements to the language that BB4W offers (80-bit floats, structures, huge strings, IA-32 assembler etc.) albeit with a crude 'BBC Micro like' user interface.

Richard.
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 689
xx Re: Purpose of the forum
« Reply #6 on: Apr 12th, 2016, 4:54pm »

on Dec 13th, 2015, 1:45pm, Richard Russell wrote:
I anticipate that development of this version of BBC BASIC will be a collaborative activity, with me contributing the run-time engine and other people the IDE and 'compiler'

By way of an update, there are currently two 'IDEs' (at this stage actually little more than program editors) under development. One, being developed by a user, is an IDE for use with the Linux (and, should it ever exist, MAC OS) versions; it runs in Windows too. This uses a fairly conventional GUI, but created entirely in generic BBC BASIC code rather than making use of any OS-specific features. From what I've seen so far it is impressive!

The other, which I am developing myself, is a touch-optimised IDE for use with the Android (86) version. This uses a simplified interface that makes full use of the screen real-estate, which is particularly important with a small device such as a smartphone. Everything is controlled using simple touch gestures, such as a 'tap', a 'swipe' or a 'long press' (it runs in BB4W too, using the mouse to perform these actions).

Richard.
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 689
xx Re: Purpose of the forum
« Reply #7 on: Dec 19th, 2017, 12:12pm »

There seems to be some confusion over the distinction between 'Cross Platform' on the one hand and 'BBCSDL' on the other. As far as I am concerned the former term should be considered to encompass BBC BASIC for Windows (BB4W) because that remains the principal means of running BBC BASIC programs on Windows.

BBCSDL refers to the specific code implementation based on SDL 2.0 which can be compiled to run on multiple platforms. Although one of them is Windows, there is no suggestion that it should be used in preference to BB4W unless (1) you are specifically writing code intended to run on multiple platforms or (2) you don't have the full (paid-for) version of BB4W.

Questions specifically related to BB4W are, of course, welcome here but if you are offering 'general purpose' code solutions I would naturally prefer that they be suitable for running on both BB4W and BBCSDL unless this is impractical.

Richard.
User IP Logged

Pages: 1  Notify Send Topic Print
« Previous Topic | Next Topic »

Donate $6.99 for 50,000 Ad-Free Pageviews!


This forum powered for FREE by Conforums ©
Sign up for your own Free Message Board today!
Terms of Service | Privacy Policy | Conforums Support | Parental Controls