Date   
Re: 64-bit BBC BASIC (again)

 

Downloaded and installed bb64, ran some basic programs (no assembler or SYS calls), worked as expected (also failed as expected when I didn't set things up properly).  Didn't try the IDE and I'm not used to working in command line mode so wasn't able to probe deeply.  When you do a *dir the resulting path contains \ as directory separator except for the very end where there's a /, just an inconsistency or intentional? -- K

Re: 64-bit BBC BASIC (again)

Richard Russell
 

On Thu, Dec 7, 2017 at 03:36 pm, Norman Vingoe wrote:
Once again Richard you have pulled a rabbit out of the hat.
I wouldn't go that far - after all I haven't actually solved any of the compatibility issues surrounding a 64-bit version.  However what I hopefully have done is to demonstrate that a 64-bit version of BBC BASIC should indeed be possible if these issues can be satisfactorily addressed.  In so doing I hope more effectively to engage people in actively thinking about them.

There was probably a greater response to the earlier thread than to any other subject discussed here in recent times, so let's see if we can direct that interest towards providing practical suggestions.  On the other hand if there's little or no take up - and it wouldn't be the first time - I won't pursue a 64-bit version any further.  The ball is in your court.

Richard.

Re: 64-bit BBC BASIC (again)

Norman Vingoe
 

Once again Richard you have pulled a rabbit out of the hat. I have had access to BBC Basic in various forms since my school first received a Model A, through Electron, Einstein, Z88 and 80386 PC to Android mobile and Hudl2.
However I'm currently limited until I've fixed a Windows 10 boot issue on my >1GB laptop, to Windows 32b on mY <1GB desktop PC.
So any 64b participation from myself will be delayed.

64-bit BBC BASIC (again)

Richard Russell
 

I make no apologies for raising this subject again, as it seems increasingly likely that it will have to be addressed somehow.  Apple's iOS is already 64-bits only, and they have announced that the next major release of Mac OS will no longer support 32-bit apps.  Some major Linux distributions have discontinued their 32-bit versions, and support for 32-bit apps on their 64-bit editions is reliant on installing 'multiarch', which can be tricky and which many users are reluctant to do.

At the moment it seems improbable that Android will drop support for 32-bit apps any time soon: it has always been a 'multi-architecture' OS with both x86 and ARM (and at one time even MIPS) binaries being supported.  However since Marshmallow it has introduced a rule that shared libraries must be Position Independent, and it's difficult and inefficient to create position-independent 32-bit x86 code (there are no program-counter-relative addressing modes).  Although compilers can often be configured to create such code, adapting assembly language code to be position-independent is all but impossible, and of course my x86 BBC BASIC interpreter is 100% assembler!

It's only Windows that is likely to continue to fully support 32-bit applications - and hence 'my' BBC BASIC - for the foreseeable future.  Several major Windows applications are still 32-bits, including Microsoft's own Visual Studio and parts of Internet Explorer.  But this is little consolation when all the recent BBC BASIC developments have been of the cross-platform editions (Windows, Linux, Mac OS, Android, Raspberry Pi).

In the earlier thread we discussed at length some of the problems related to creating a 64-bit version of BBC BASIC, not least that it is impossible to maintain full compatibility with the existing versions.  We considered some alternative approaches and their pros and cons.  But no clear front-runner emerged and no good solutions were forthcoming for some of the more intractable issues, such as the SYS statement.

So to help move this forward I have created a highly experimental 64-bit version of BBCSDL (for Windows only) which should have enough functionality to allow some practical testing to be carried out and some experience gained of the implications of a transition to 64-bits.  In this version I have made no attempt to tackle the major compatibility issues, for example @hwnd% and @memhdc% are still 32-bits whereas the handles returned from SDL may not be.  The SYS statement has limited functionality with no support at all for passing floats.  And of course there's no assembler!

This version can be downloaded as bb64.zip, its contents should be extracted to a directory created specifically for the purpose.  Do not put the files in the same folder as an existing (32-bit) BBCSDL installation since the 64-bit DLLs will overwrite the 32-bit ones and break everything.  bb64.exe is the executable and opens the same kind of 'immediate mode' window that BBCSDL does when not using one of the IDEs.  bb64 will run SDLIDE.bbc but it's rather flaky and prone to crashing.

Ideally I would like everybody to download this version and have a play.  Experiment with things that ought to work (let me know if they don't!) but more importantly think about those areas where full compatibility is impossible and make suggestions for how this can best be addressed.   Last, but not least, this version badly needs an assembler so it would be incredibly helpful if somebody could volunteer to write one.

Richard.

Re: Starting BB4W compiled program from Windows 10 task scheduler

J.G.Harston
 

Richard Russell wrote:
...
was this: "I figured it out. On the General Tab of the Task Scheduler
properties page, I had checked the "Run whether user is logged on or
not" box. Apparently, that starts the task in a separate session.
When I checked the "Run only when user is logged on" box instead, the
task does, indeed show up in the foreground."
Does that work for you?
Well, I can confirm it works for me, WinXP and Win7.

--
J.G.Harston - jgh@... - mdfs.net/jgh

Re: Starting BB4W compiled program from Windows 10 task scheduler

Richard Russell
 

On Tue, Nov 7, 2017 at 04:32 am, Richard Russell wrote:
Does that work for you?
Four weeks later and still no response. So I don't know whether my reply was helpful or not, nor whether the OP still has the problem or not.

Richard.

Re: Christmas Demo II

winstove
 

Brilliant! Thank you

Best regards

Nigel

Re: Christmas Demo II

Richard Russell
 

I've recreated this demo for BBCSDL, with David's permission.  It may be downloaded from here and runs on all the supported platforms (Windows, Linux, Mac OS, Raspberry Pi, Android).  There's also a YouTube video if you're too busy to download it and run it yourself!

Richard.

Re: Problem with COMLIBA

Richard Russell
 

On Sun, Nov 26, 2017 at 04:55 am, alan836975 wrote:
I closed other files, rebooted, and it all started again
You posted here before rebooting your PC?  The very first thing you should do, when anything 'unexplained' happens, is to reboot your PC!

> But I still have no idea what actually went wrong.

Would you expect to?  We are talking about Windows, a monstrously complex Operating System (Linux and Mac OS are just as complicated).  It can fail in myriad ways, and it's not really even worth speculating on the cause unless the failure is repeatable.  If you are inquisitive, check the event logs to see if there is anything around the time of the problem that might be relevant.

Richard.

Re: Problem with COMLIBA

Richard Russell
 

On Sun, Nov 26, 2017 at 04:22 am, alan836975 wrote:
Cam anyone offer any advice?
You've not really provided enough information to allow a 'remote' diagnosis.  Your post title implies that you suspect COMLIB of being involved, so a useful thing to do would be to check that COM is working properly on your PC; for example you can try running the supplied example program SPEAK.BBC (in the EXAMPLES\SOUNDS folder).  If that runs correctly it at least demonstrates that COMLIB is working; if it doesn't then it suggests that the problem is unrelated to BBC BASIC.

Richard.

Re: Problem with COMLIBA

 

OK, fixed it. I reckon that all 16GB of RAM was filled. I closed other files, rebooted, and it all started again. But I still have no idea what actually went wrong.

Alan Roberts

Problem with COMLIBA

 

I don't know what's happened or how it's happened. I'm stuck.

I'm adding DATA lines to a program I'm writing, and suddenly it's all stopped working. It uses various libraries:

FNusing v1.3
WINLIB2 v1.1
WINLIB5A v1.1
COMLIBA v3.4

Suddenly this morning, it refuses to run. It gets stuck on the last-but-one line of FNinvoke:

      DEF FN_invoke(O%,T%,N$,P$,U%)
      LOCAL M%,D%,I%,F%,R%,S%
      DIM D% LOCAL 15,I% LOCAL 15,M% LOCAL 2*LENN$+1
      SYS "MultiByteToWideChar",0,0,N$,-1,M%,LENN$
      SYS !(!O%+20),O%,I%,^M%,1,`LCID%,^F% TO R%
      IF R% THEN =R%
      !D%=!^P$:D%!8=LENP$/16
      IF T% AND 12 S%=-3:D%!4=^S%:D%!12=1
      SYS !(!O%+24),O%,F%,I%,`LCID%,T%,D%,U%,0,0 TO R%
      =R%

and all I can do is exit the program. I don't know what FN invoke does or why it gets stuck.

The thoroughly wierd thing is that it seems to have infected previous version of the program (I'm now on version 1.57a and have 78 previous versions on file here). The program's quite big and is rather important to me. Cam anyone offer any advice?

Alan Roberts

Re: Forces of Darkness - BBCSDL version

Richard Russell
 

The latest addition to FODSDL is a Full Screen option; this is activated by setting 'fullscreen 1' in the Config.txt file. It works on all the supported platforms, with the exception of Android of course - on which it always ran 'full screen' anyway! However it does increase the likelihood of crashing the Raspberry Pi because of apparently running out of graphics memory (I'm sure it shouldn't crash so badly; this is presumably an RPi bug).  The trick for making it work Full Screen on a Raspberry Pi 3 seems to be to run it directly rather than from the IDE. So for example run it using this command:

Code:
BBCBASIC/bbcsdl FODSDL/Fod.bbc 
(adapt the command to suit your installation directories, of course).

The new version may be downloaded as FODSDL.zip as before.

Richard.

Re: BBC BASIC for SDL 2.0 v0.19b released

Richard Russell
 

On Wed, Nov 22, 2017 at 01:35 pm, Kendall Castor-Perry wrote:
Are there major obstacles to supporting Linux on Arm?
Linux on ARM is supported: it's called the Raspberry Pi!  If you know of another general-purpose (desktop) ARM-based Linux device the RPi edition may run, so long as it uses the Hard Float ABI, supports OpenGL, and SDL2 is available.  Some major Linux apps like Dropbox are x86-only.

I think BBCBasic on iOS would be an absolute hoot
Current iOS is 64-bits only, it does not run 32-bit apps.  There was a long discussion in another thread on why a 64-bit version of BBC BASIC isn't feasible, at least not without introducing major incompatibilities with existing 32-bit versions.

Richard.

Re: BBC BASIC for SDL 2.0 v0.19b released

 

This is a rather trivial post, mostly to flag up that I do read the messages and have some interest in SDL.  I just needed to write a script to automate creation of a complex Excel formula in text form (because Excel can't do it and I have no time or inclination to figure VBA out).  BBCBasic has always been my scripting language of choice.  So I updated my SDL to the latest version and wrote the necessary program in BBCSDL (on Windows, using RTR's IDE) rather than in BB4W.  Naturally it worked fine.  I had an initial usage glitch because I started writing with lower case keywords before that option was set.  Setting the option doesn't recapture lines already written, you need to navigate to the lines themselves.  I suspect BB4W has this same behaviour.  Sorted out in a few seconds.  I expect that virtually all of the stuff I currently do with BB4W would work equally well in BBCSDL, which bodes well for cross-platform work, hence my next point.

I've been told that the Gemini PDA I supported on Indiegogo will be shipping in the new year.  For those who haven't heard of it, this is akin to a modern implementation of the clamshell Psion devices, except now with wifi, 4G (if you want it), lots of memory, a touchscreen as well as a proper mechanical keyboard, six ARM CPUs and dual boot to Linux or Android - neither of which I know how to use.

So one of my first familiarization tasks next year will be to install BBCSDL for Android and have a play, make sure I can do BBCBasic development on the move on that platform.  I'm not sure what use I'll make of Linux, and that triggers a question.  The release announcement for BBCSDL on Linux says x86 only.  Are there major obstacles to supporting Linux on Arm?  I'm not saying that I think there's any point to it, but I'm wondering whether the omission is simply due to there having been no reason to do it because Linux on Arm is not particularly common.

All this leaves my iPad as the only device that resolutely refuses to offer language support of the type that can get to the bare metal.  I think BBCBasic on iOS would be an absolute hoot, and of course it would be offered through an unparalled sales channel (the App Store).  I know from work I did with an app developer some years back that regular C code can be imported into the ObjectiveC framework that iOS apps use.  So, if Apple were to relent and make it possible to deliver at least some functionality of a BASIC interpreter on iOS, there are probably app developers out there that could take a C implementation, say BBCSDL, and bolt it into IOS.  That I would pay for!  All for now -- K

Re: Wiggio closing down

Richard Russell
 

On Tue, Nov 21, 2017 at 09:24 am, dai_m_leeds wrote:
I've got Jon Ripley's Cardlib, and the BB4WMAPMLIB, and various versions of David Williams' GFXLib and GLib, for example, if that's useful.
Those specific libraries were only ever available from the authors' own sites, not from Wiggio.  They must not be uploaded to a public repository without the explicit permission of the copyright holders.

Richard.

Re: Wiggio closing down

dai_m_leeds
 

On Sat, Nov 18, 2017 at 09:18 am, Richard Russell wrote:
There are now quite a lot of links at the Wiki (particularly from the 'Libraries' page) that go nowhere.

Hi Richard,

Maybe it's not a total disaster: I've got some of the libraries, and others may well also have some. Maybe if you post a list of the (most important?) "missing" files, we can try to reconstruct the archive?

I've got Jon Ripley's Cardlib, and the BB4WMAPMLIB, and various versions of David Williams' GFXLib and GLib, for example, if that's useful.

Best wishes,

D

Re: Wiggio closing down

Richard Russell
 

On Mon, Nov 20, 2017 at 11:18 am, Neil Murray wrote:
I received the information message at the top right 'You must be an organizer to access that page'.
Thanks for the confirmation.  Obviously at some point Wikispaces has introduced that restriction (one can understand why).  Requesting Jonathan or myself to do an export - so long as it's only infrequently - is a practical solution.

Richard.

Re: Wiggio closing down

Neil Murray
 

I became a member, opened 'BB4W Wiki' and signed in.
Then from groups.io, clicked the link 'export page'.
I received the information message at the top right 'You must be an organizer to access that page'.

Re: Forces of Darkness - BBCSDL version

Richard Russell
 

In case anybody is interested, you can find a video of Forces of Darkness running on a Raspberry Pi 3 here.  It doesn't always manage to keep up with the full frame rate (50 Hz) but it's remarkable that it runs as well as it does on such a low-powered machine.  Most Android devices will have a faster processor than the RPi, and quite possibly a faster GPU too, so the program should run at least as well on that platform.

Even if, like me, playing that style of video game doesn't appeal, you can still marvel at the skill of the programmer, and hopefully be impressed by what a program written in 100% BBC BASIC can achieve.  If you are inclined to try your hand at something similar, looking at the FODSDL source code should give you plenty of ideas.

Richard.