Author |
Topic: BBC BASIC for Windows version 6.00a released (Read 2850 times) |
|
rtr2
Guest
|
 |
BBC BASIC for Windows version 6.00a released
« Thread started on: Jan 1st, 2015, 5:03pm » |
|
Today I have released BBC BASIC for Windows version 6.00a. This version includes the following modifications:
Support for legacy 40-bit (5-byte) floating-point variables has been removed.
'Suffixless' variables are now always 80-bit (10-byte) variants.
A 64-bit signed integer variable type is introduced, which has a %% suffix.
Strings are no longer limited to a maximum length of 65535 characters.
PTR# and EXT#, which read or write the file pointer and length now return and accept 64-bit values.
The assembler now accepts the FCOMI, FCOMIP, FUCOMI and FUCOMIP instructions.
The command *FLOAT 80 selects that floating-point indirection and numeric data files use 80-bit variants.
A *HEX command controls whether hexadecimal conversion and the bit-shift operators work with 32-bit or 64-bit numbers.
The *FONT command supports the strikeout attribute (Q).
A new compiler directive REM!Fast is implemented.
The manifest includes the Windows 10 compatibility identifier.
A new menu selection Run... Debug and toolbar button are added.
A new Step Line toolbar button is added.
Other components of BBC BASIC for Windows changed in this release are as follows:
Updated Cross Reference, Differences, Module Viewer and Profiler add-in utilities.
Updated CLASSLIB, EVENTLIB, MULTIWIN and SOCKLIB libraries. To upgrade your copy of BBC BASIC for Windows to version 6.00a, and at the same time update your libraries, utilities, example programs and manual, download and install UPGRADE.EXE from here:
http://www.rtrussell.co.uk/bbcwin/download.html
Please note that version 6.00a is not fully compatible with earlier versions. Ensure that you read the Compatibility considerations section of the documentation before deciding to upgrade.
Sadly, but inevitably, BB4W v6.00a cannot be guaranteed to be as bug-free as its predecessors, because significant modifications have been made and it has not had extensive testing over a long period. Let's hope the Beta Testers have done their job thoroughly!
Richard.
|
« Last Edit: Jan 1st, 2015, 5:06pm by rtr2 » |
Logged
|
|
|
|
David Williams
Developer
member is offline

meh

Gender: 
Posts: 452
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #1 on: Jan 1st, 2015, 9:01pm » |
|
on Jan 1st, 2015, 5:03pm, g4bau wrote:Today I have released BBC BASIC for Windows version 6.00a. |
|
Well, firstly, Happy New Year to you & Sue.
Thanks for the release of BB4W 6.00a. I expect I'll give it a whirl at some point (but not before reading the compatibility considerations, as you have advised us to do).
I'm pretty much glued to my Android device these days, and rather lacking time for - or interest in - programming, but such interest comes in waves with me. (Like fairly recently when I was learning C just so I could create a DLL to use with BB4W, and also save myself a lot of time writing assembler code.)
on Jan 1st, 2015, 5:03pm, g4bau wrote:A new compiler directive REM!Fast is implemented. |
|
This has piqued my interest somewhat.
Regards,
David. --
|
|
Logged
|
|
|
|
rtr2
Guest
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #2 on: Jan 2nd, 2015, 09:20am » |
|
A couple of things pertinent to the new release:
Occasionally people report problems with 'truncated downloads', especially at times of net congestion. So you can check whether the file has been received in its entirety here are the correct lengths:
upgrade.exe: 3,744,224 bytes bbcwdemo.exe: 3,652,696 bytes
If you have persistent download problems try the alternative mirror (so if you were using rtrussell.co.uk try bbcbasic.co.uk and vice-versa).
Secondly, 'false positives' from virus scanners are occasionally reported. To give you confidence that BB4W v6 is clean, here are the Virus Total reports:
Virus Total report on bbcwin6.exe Virus Total report on bbcwdem6.exe Virus Total report on bbcwrun6.exe
Richard.
|
|
Logged
|
|
|
|
TonyTooth
New Member
member is offline


Posts: 2
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #3 on: Jan 3rd, 2015, 10:42am » |
|
Hi Richard - I've tried 6.00a. I was a bit apprehensive about what it would mean for my many, many floating-point ASM programs - but suffice to say it just seems a matter of changing all the QWORD loads and stores into TBYTEs. That's quickly done in one go with the EDIT - REPLACE facility in the IDE.
|
|
Logged
|
|
|
|
rtr2
Guest
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #4 on: Jan 3rd, 2015, 10:56am » |
|
on Jan 3rd, 2015, 10:42am, TonyTooth wrote:it just seems a matter of changing all the QWORD loads and stores into TBYTEs. |
|
I think I would have preferred to leave the assembler code unchanged, and simply ensure that all the variables which it references have the proper # suffix (meaning '64-bit double'). That way the programs remain compatible with BB4W v5, which they don't with the changes you propose.
Of course it's an entirely different matter if you actually want to take advantage of the increased precision of 80-bit floats compared with 64-bit doubles, but I assume you don't.
Richard.
|
|
Logged
|
|
|
|
TonyTooth
New Member
member is offline


Posts: 2
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #5 on: Jan 3rd, 2015, 11:01am » |
|
Yes - fair point. I tried that too. Only problem is that it takes forever! It's OK doing it once or twice, but I've probably got over 100 FP ASM facilities.
|
|
Logged
|
|
|
|
rtr2
Guest
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #6 on: Jan 3rd, 2015, 12:55pm » |
|
on Jan 3rd, 2015, 11:01am, TonyTooth wrote:I tried that too. Only problem is that it takes forever! |
|
Fair enough, but I think you were lucky not to have encountered any instructions like:
Code: since in this and similar cases there's no tbyte equivalent, and a search-and-replace approach would give rise to syntax errors probably quite difficult to resolve.
Richard.
|
|
Logged
|
|
|
|
rtr2
Guest
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #7 on: Jan 3rd, 2015, 9:30pm » |
|
You may have noticed that I've made no mention of the speed of BB4W v6 (or, more precisely, its relative speed compared with v5). This is deliberate, not because I want to withhold the information but because there's no simple answer which wouldn't be misleading.
The most honest, if not necessarily helpful, answers are "it depends" and "it will probably not be very different from v5". If you search back through the v6 threads you will find some references to speed, in one extreme case noting that it ran at only half the speed of v5.95a. But that really isn't typical.
If you want a slightly more quantitative answer, my expectation would be that a program running in v6.00a may well run a little slower than it would in v5.95a in the default *FLOAT40 mode, but if you're lucky it might run a little faster than the same program running in *FLOAT64 mode.
If you're really concerned, check it for yourself. BB4W v5.95a remains available and supported should you decide it is a better choice for your program(s).
Richard.
|
|
Logged
|
|
|
|
DDRM
Administrator
member is offline


Gender: 
Posts: 321
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #8 on: Jan 5th, 2015, 3:28pm » |
|
Hi Richard,
Brilliant - thanks!
Downloaded and installed flawlessly. I've been using the 6 beta for a while with no problems, so I don't expect any now, and it's great to have the help referring to V6.
As you say in the other thread it is possible to have shortcuts to both versions on the desktop - I didn't even need to fiddle with them after installing.
Best wishes,
D
|
|
Logged
|
|
|
|
rtr2
Guest
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #9 on: Jan 11th, 2015, 04:38am » |
|
on Jan 3rd, 2015, 9:30pm, g4bau wrote:If you want a slightly more quantitative answer, my expectation would be that a program running in v6.00a may well run a little slower than it would in v5.95a in the default *FLOAT40 mode, but if you're lucky it might run a little faster than the same program running in *FLOAT64 mode. |
|
I'm always uneasy about speed benchmarks, since their relevance depends on how similar the operations performed in the benchmark program are to those performed in your own program(s).
However, to put some flesh on the bone I ran this program on the different varieties and configurations of BB4W:
Code: INSTALL @lib$+"ARRAYLIB"
TIME = 0
DIM A(200,200)
FOR R% = 0 TO DIM(A(),1)
FOR C% = 0 TO DIM(A(),2)
A(R%,C%) = RND(1) * 10^RND(3)
NEXT
NEXT R%
PROC_invert(A())
PRINT TIME The results were as follows when run in the IDE:
BB4W v5.95a (*FLOAT 40): 610 cs BB4W v5.95a (*FLOAT 64): 680 cs BB4W v6.00a: 610 cs
So in this particular case v6.00a ran at the same speed as v5.95a in its default *FLOAT 40 mode, and a little faster than v5.95a in *FLOAT 64 mode. As they say, YMMV.
Richard.
|
|
Logged
|
|
|
|
David Williams
Developer
member is offline

meh

Gender: 
Posts: 452
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #10 on: Jan 30th, 2015, 11:59am » |
|
Currently working on a BB4W project for which 80-bit floats will be useful and possibly even necessary. Will post something to this forum if I make reasonable progress.
David. --
|
|
Logged
|
|
|
|
KenDown
Full Member
member is offline


Posts: 181
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #11 on: Mar 7th, 2015, 4:06pm » |
|
Is there any way I can install v. 6 without overwriting my v. 5.95a?
|
|
Logged
|
|
|
|
rtr2
Guest
|
 |
Re: BBC BASIC for Windows version 6.00a released
« Reply #12 on: Mar 7th, 2015, 4:38pm » |
|
on Mar 7th, 2015, 4:06pm, KenDown wrote:Is there any way I can install v. 6 without overwriting my v. 5.95a? |
|
v6.00a does not overwrite v5.95a. Because of the potentially incompatible differences I renamed the executables as BBCWIN6.EXE and BBCWRUN6.EXE so they will not overwrite the original (v5) BBCWIN.EXE and BBCWRUN.EXE. On most of my PCs I have desktop shortcuts to both v5 and v6 so I can easily run either.
The libraries, example programs and add-in utilities will be replaced, but that is usually what you will want (for example the APLIB.DLL which comes with v6.00a is less likely to cause MalwareBytes to report a false positive than the one which comes with v5.95a).
Also bear in mind that the same Registry entries are used, so things like the 'recent programs' list and the customization settings are shared between v5.95a and v6.00a.
Richard.
|
|
Logged
|
|
|
|
|