1. Minor bugs in DIM, GET$# and INSTALL fixed.
2. 'GET$#file BY count' and 'GET$#file TO terminator' implemented.
3. RETURN <destination> implemented.
4. Compile dialogue layout revised.
5. Updated libraries.
6. Updated 'Add Windows Constants' and 'Memory Monitor' utilities.
To upgrade your copy of BBC BASIC for Windows to version 5.93a, 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
For those who don't yet have the full version of BBC BASIC for
Windows, a free non-time-limited trial version can be downloaded from
the same address.
Richard.
I regret to announce the release of BBC BASIC for Windows version
5.93a. Changes in this version include:
Why do you regret it?
Tom L - Satisfied BBC User (Paid, even!)
The need for an 'unscheduled' release to fix bugs (albeit very minor
ones) is always to be regretted.
Richard.
http://www.rtrussell.co.uk/
So that's why there are so few bugs in BBC!
Tom L
Few? I hope there are none! Of course there are 'features' that some
people might consider to be bordering on bugs, but generally these
will be things that BBC BASIC has done the same way for thirty years
and aren't likely to change now. :-)
It could probably be said that I am obsessive about fixing bugs; I
don't accept that they are a fact of life. On the other hand it does
mean that I am ultra-conservative when it comes to adding new
features, because I will often judge the risk of introducing bugs to
outweigh the potential value of the additions.
Richard.
http://www.rtrussell.co.uk/
Interesting way to think of it. Most others would phrase it more along the
lines of "we are pleased to announced that we've fixed some bugs."
--
- Are you saying that this isn't reality?
- This is data.
Does that mean we won't be seeing MAT functions any time soon? 8^(
Tom L
There are already quite a few matrix operations, using a slightly
different syntax of course:
MAT A = B -> A() = B()
MAT A = B + C -> A() = B() + C()
MAT A = B - C -> A() = B() - C()
MAT A = B * C -> A() = B() * C()
MAT A = x * B -> A() = B() * x
MAT A = ZER -> A() = 0
MAT A = CON -> A() = 1
Other functions are provided by the ARRAYLIB library:
MAT A = INV(A) -> PROC_invert(A())
MAT A = TRN(A) -> PROC_transpose(A())
x = DET(A) -> x = FN_det(A())
BBC BASIC also has:
A() = B() . C()
x = MOD(A())
x = SUM(A())
Richard.
http://www.rtrussell.co.uk/
On Jun 22, 7:15 pm, "Tom Lake" <tl...@twcny.rr.com> wrote:
> Does that mean we won't be seeing MAT functions any time soon? 8^(
There are already quite a few matrix operations, using a slightly
different syntax of course:
So maybe you expect me to read the manual? 8^)
Tom L
It's entirely voluntary, but if you don't you'll miss out on lots of
nice features. ;-)
For an example of the use of BBC BASIC's matrix operations see this
program on my web site. It makes extensive use of the SUM() function,
which few BASICs have:
http://www.bbcbasic.co.uk/bbcwin/examples/polyfit.html
It fits a fifth-order polynomial to a set of 20,000 'experimental'
data points blindingly fast (about 30 milliseconds on a Core 2 Duo).
Richard.
http://www.rtrussell.co.uk/
Does the BBC BASIC have the equivalent of a pointer datatype, or a
record datatype? I know this is a nonintelligent question since it can
be answered by reading the manual -- but I just became very, very
interested, having in my mind an exercise in the book
Abelson-Sussman-Sussman: SICP -- an exercise which is about creating a
small Scheme system in the programming language of one's choice.
regards, andy
Pointers in BBC BASIC are regular integers (In BBC BASIC a variable's
type is explicitly indicated by its suffix character - if any - such
as $ for string or % for integer). To get a pointer to a variable
etc. you use the ^ operator:
pointer_to_variable% = ^variable
I'm not entirely sure what you mean by a "record datatype" since the
term 'record' can be used for several different concepts (such as in
random-access files, databases, etc.). Can you explain in more
detail?
In case it's helpful, there's a large selection of BBC BASIC examples
at the Rosetta Code site:
http://rosettacode.org/wiki/Category:BBC_BASIC
Richard.
http://www.rtrussell.co.uk/
Hello Richard, and thanks for your answer.
By "a record datatype" I'm meaning a capability analogous to the Common
LISP DEFSTRUCT, or the C struct data_t {......} my_data, or the Pascal
RECORD DATA_S BEGIN ... END.
It is a little unfortunate that the same noun "record" is being used to
refer to conglomerates of data in databases and some other contexts.
I'm a paid used of the BBC BASIC, and I like it, up to the point of
maybe attempting to carry out this Scheme LISP exercise in the BBC BASIC
.... I mean, if I will have time for that.
regards, Antti "Andy"
BBC BASIC borrows the C terminology of 'structures' which contain
'members' (rather than Pascal's 'records' which contain 'fields'). In
BBC BASIC for Windows you use DIM to declare a structure (structures
are considered analogous with arrays, in that they both represent
collections of objects):
DIM my_data{....}
Details of BBC BASIC's structures can be found here:
http://www.bbcbasic.co.uk/bbcwin/manual/bbcwin2.html#structures
Richard.
http://www.rtrussell.co.uk/