User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sat Jun 29, 2019 10:47 pm

ZXDunny wrote:
Sat Jun 29, 2019 10:20 pm

But Sinclair BASIC was in no way anything like as limited as C64 BASIC was. I mean, literally.
Agreed. Even has some advantages over Commodore BASIC 7, though BASIC 7 has a few features missing from the Sinclair BASIC. The C64 only had BASIC 2.

Still would like the URL to get it from.

URL?
Though you have me curious, as I really like BASIC. What does it minimally require to run (can it be plopped onto bare metal with just Frame Buffer and Keyboard support)?
If you want to port it to a different architecture you only have to modify one file - currently in linux it uses SDL to provide a framebuffer. Sound requires the bass libs (simply because I work in audio programming for a living and can't be arsed to implement audio). With no libs then audio is simply disabled. So the absolute minimum would be a pointer to a framebuffer and some way to call the keyup/down handlers. If you have some 3D graphics acceleration via OpenGL then you can have nice scaling to full screen.
What is its native resolution (your BASIC)? Also how do you implement the scaling?

URL?
I am always interested in looking at a different BASIC implementation, and that is one I have never played with.
It's been available for the pi for many years now. I've not rebuilt it recently as I tend to spend most of my time actually writing it. I've made huge changes to the Windows build over the last year or so that will require handling properly - but I lack time at present to port it to the Pi.
While I am sure it has been around for a few years, the Raspberry Pi is only a bit more than 7 years old (almost 8 if you include the early prototypes). So definitely not many years yet (The Commodore 64 was on the market for 10 years, the Apple II for 16 years).
Also what is the URL for the source? As it is an old fashioned BASIC that can run on the RPi I must assume ARM Assembly as the language of implementation (as traditional 8-bit style BASIC were only ever implemented in Assembly language, often requiring hand porting to other platforms).
Why assume asm? It's written in object-pascal so can be built with FPC. Due to recent changes to the editor, it won't run on the pi until I port the interface unit (that's the file I was talking about earlier) - a lot has changed with the compositor. As the pi isn't an 8bit CPU there's no real reason to use assembly language for anything like this.
Pascal works. I hope it is not using to much OO features of Object Pascal. Though the best BASIC interpreter on the ARM, that is a clasic style Line Numbered BASIC interpreter that is a bit more up to date is written in ARM Assembly, that is BBC BASIC V aka ARM BASIC, part of RISC OS.

Could I get the URL for the source?
It's a bytecode interpreter and it's pretty quick compared to other interpreters.

A gallery of things it can do:

https://www.youtube.com/user/ZXSpin/videos

None of it is hardware accelerated, it's all done in software via the interpreter.
My internet connection is not reliable enough for youtube.

Could I get the URL for the source please?
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sat Jun 29, 2019 10:55 pm

ZXDunny,
Honestly, it's like I'm invisible or something
Did you say something? Did you ask a question?

Ah yes, ZXSpin, looks like a neat project.

You said it does not run on the Pi yet. I guess people may have been waiting for you to fix that soon as you said.
Memory in C++ is a leaky abstraction .

ZXDunny
Posts: 119
Joined: Sun Jul 08, 2012 7:57 pm

Re: Searching for BASIC

Sat Jun 29, 2019 11:08 pm

It's already been ported to the Pi. Several years ago, if memory serves. I'll see if I can dig it out - it'll be on this forum somewhere, I'm sure...

The current state of the editor is what isn't compatible as yet.

Source is here: https://zxnet.co.uk/websvn/listing.php?repname=SpecBAS

It's horrible, but that's how I roll. Anyone wanting to port will need to create or modify the linux/specbas.pas - in windows, it uses mainform.pas for the front end so that can be used as a template.

The last rPi build is here: http://freestuff.grok.co.uk/specbas-raspi.zip

It's been considerably improved since then, but I'm just one guy with a full time job and a family.


DavidS:

It can use GDI or OpenGL for scaling, I suppose if anyone was interested they could implement a shader to get the display up on the screen. It will use whatever you want it to use, all it needs is a framebuffer (and preferably a way to allocate a surface).

It has no native resolution, that's up to you. I use 800x480 with 2x editor character scaling, but that's just me.

I do not expect anyone to actually build this for the Pi, and I'll let you all know when I manage to find the time to do it.

User avatar
John_Spikowski
Posts: 1614
Joined: Wed Apr 03, 2019 5:53 pm
Location: Anacortes, WA USA
Contact: Website Twitter

Re: Searching for BASIC

Sat Jun 29, 2019 11:47 pm

I hear you D. It's hard to get motivated when bitterness over ancient BASIC's gets personal.

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sun Jun 30, 2019 1:46 am

I have not seen any bitterness over ancient BASIC's getting personal here.
Memory in C++ is a leaky abstraction .

User avatar
John_Spikowski
Posts: 1614
Joined: Wed Apr 03, 2019 5:53 pm
Location: Anacortes, WA USA
Contact: Website Twitter

Re: Searching for BASIC

Sun Jun 30, 2019 6:26 am

You're not a BASIC programmer so I understand your position.

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sun Jun 30, 2019 6:39 am

Certainly I am a BASIC programmer.

Oddly enough I even have a certificate that says so. Dated 1976.
Memory in C++ is a leaky abstraction .

User avatar
John_Spikowski
Posts: 1614
Joined: Wed Apr 03, 2019 5:53 pm
Location: Anacortes, WA USA
Contact: Website Twitter

Re: Searching for BASIC

Sun Jun 30, 2019 8:10 am

Which BASIC language are you currently using?

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sun Jun 30, 2019 12:41 pm

ScriptBasic wrote:
Sun Jun 30, 2019 8:10 am
Which BASIC language are you currently using?
Not sure who directed to, though taking as general broadcast:

I personally primarily use ARM BASIC. Though I do from time to time use others, including FreeBASIC (strange syntax, if they wanted to copy QucikBASIC they forgot the GUI related commands, statements, and functions from QuickBASIC [the ones for creating windows, menus, buttons, Icons, etc, that as kids we would play with for hours just messing around on the Macintosh computers]).

Though I prefer ARM BASIC (AKA BBC BASIC V), the only thing it is really missing as a language is support for structured Data types, though we get around this with indirection.

I would like to see a BASIC that has the structure and syntax of ARM BASIC and adds support for structured data types and GUI commands as builtins (instead of having to call the OS).
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sun Jun 30, 2019 1:10 pm

It was a rhetorical question aimed at me.

Rhetorical because ScriptBasic knows I'm not currently using any BASIC variant and I'd rather become a drain cleaner than have to program in any kind language with "BASIC" in it's name.

ScriptBasic seems to be implying that I'm not a BASIC programmer. I guess literally that is true. But I think I earned my BASIC stripes well enough. On all kind of BASICs from the mainframes in the 1970's to the 8 bit BASICs of the 80's to BASIC on the AtariST then to the PC and VisualBASIC.

I did not know there was some kind of BASIC Programmer License that expired over time.

Just like ScriptBasic creator Peter Verhas, I realized it was time to move on to better thing a long time ago. Well, in my case that was about 1976.
Memory in C++ is a leaky abstraction .

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sun Jun 30, 2019 2:11 pm

Heater wrote:
Sun Jun 30, 2019 1:10 pm
It was a rhetorical question aimed at me.

Rhetorical because ScriptBasic knows I'm not currently using any BASIC variant and I'd rather become a drain cleaner than have to program in any kind language with "BASIC" in it's name.

ScriptBasic seems to be implying that I'm not a BASIC programmer. I guess literally that is true. But I think I earned my BASIC stripes well enough. On all kind of BASICs from the mainframes in the 1970's to the 8 bit BASICs of the 80's to BASIC on the AtariST then to the PC and VisualBASIC.

I did not know there was some kind of BASIC Programmer License that expired over time.

Just like ScriptBasic creator Peter Verhas, I realized it was time to move on to better thing a long time ago. Well, in my case that was about 1976.
Ok I see. And yet you made the very serious suggestion of implementing a boot to full screen BASIC Interpreter and screen editor earlier in this thread.

I will likely always use BBC BASIC. Now for production work I use C, Charm, Pascal, ARM Assembly, 65816 Assembly, 680x0 Assembly, and a few others I do not think I should list.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sun Jun 30, 2019 3:22 pm

DavidS,
And yet you made the very serious suggestion of implementing a boot to full screen BASIC Interpreter and screen editor earlier in this thread.
Indeed I did.

If you are going to program within the confines of something like BBC BASIC and it's SDL display/IDE then why bother having all that X Windows and desktop and other junk? Why not keep it simple and just put that display into the frame buffer on boot up? Present it like the BBC computer presented it. (I have no idea what the RISC machine did)

Thing is, that argument does not apply to just BASIC. Why not do it with other languages to create a simple system?

Squeak Smalltalk could do the same. Like BASIC that is how Smalltalk was intended to be used, it was the OS !

Or what about Javascript running under node.js and putting up an Electron GUI, in the frame buffer?

That's not to say that all the facilities of Linux would not be there behind the scenes when required.
Memory in C++ is a leaky abstraction .

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sun Jun 30, 2019 4:12 pm

Heater wrote:
Sun Jun 30, 2019 3:22 pm
DavidS,
And yet you made the very serious suggestion of implementing a boot to full screen BASIC Interpreter and screen editor earlier in this thread.
Indeed I did.

If you are going to program within the confines of something like BBC BASIC and it's SDL display/IDE then why bother having all that X Windows and desktop and other junk? Why not keep it simple and just put that display into the frame buffer on boot up? Present it like the BBC computer presented it. (I have no idea what the RISC machine did)
BBC BASIC V (the ARM version, also part of RISC OS) gives you access to any function of the OS, so you can still use the Window Manager and anything else. This goes for any good port to another system as well (not sure if I would want to write X programs in BBC BASIC, though it could be done).

Thus there is a good reason to have all the other stuff there. Many full blown GUI applications are written in BBC BASIC on RISC OS. If speed is needed for some reason then including some Assembly for speed critical sections is natural in BBC BASIC.

In RISC OS most people write there BBC BASIC programs in a text editor (that supports the tokenized code format) and save them running them the same way you would any other application.
Thing is, that argument does not apply to just BASIC. Why not do it with other languages to create a simple system?

Squeak Smalltalk could do the same. Like BASIC that is how Smalltalk was intended to be used, it was the OS !

Or what about Javascript running under node.js and putting up an Electron GUI, in the frame buffer?
You could do any of that if you wanted. Though why someone would want to use more crippled languages like JS is beyond me. At least BBC BASIC has proper universal indirection operations, and proper variable types, as well as a simple means to directly call the Operating system, and a easy to directly run ARM native code that is in the programs address space (remember RISC OS does use memory protection).
That's not to say that all the facilities of Linux would not be there behind the scenes when required.
And they could all be used directly from BBC BASIC (assuming a complete implementation of BBC BASIC, compatible with BBC BASIC V, of course).
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
RichardRussell
Posts: 652
Joined: Thu Jun 21, 2012 10:48 am

Re: Searching for BASIC

Sun Jun 30, 2019 4:36 pm

DavidS wrote:
Sun Jun 30, 2019 12:41 pm
I would like to see a BASIC that has the structure and syntax of ARM BASIC and adds support for structured data types
BBC BASIC for Windows and BBC BASIC for SDL 2.0 fit the bill as regards data structures, as I'm sure you know:

Code: Select all

    DIM myStruct{a, b&, c%, d%%, e#, f$, g(1), h&(2), i%(3), j%%(4), k#(5), l$(6), subStruct{}=protoStruct{}}
    myStruct.c% = 1234
and GUI commands as builtins
I don't share that view. IMO a BASIC interpreter should include as builtins only things which cannot (e.g. for performance or syntax reasons) be satisfactorily implemented in a library. The main reason is to avoid bloat; unlike a compiled language every built-in feature has to be included in the run-time engine, whether your BASIC program needs it or not. If the feature is implemented in a library, you can choose whether to include that library or not which is more efficient and typically results in a smaller executable. GUI features are eminently suitable for implementation in a library IMHO (e.g. dlglib.bbc supplied with BBCSDL which supports dialogue boxes and controls).

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sun Jun 30, 2019 5:00 pm

RichardRussell wrote:
Sun Jun 30, 2019 4:36 pm
DavidS wrote:
Sun Jun 30, 2019 12:41 pm
I would like to see a BASIC that has the structure and syntax of ARM BASIC and adds support for structured data types
BBC BASIC for Windows and BBC BASIC for SDL 2.0 fit the bill as regards data structures, as I'm sure you know:

Code: Select all

    DIM myStruct{a, b&, c%, d%%, e#, f$, g(1), h&(2), i%(3), j%%(4), k#(5), l$(6), subStruct{}=protoStruct{}}
    myStruct.c% = 1234
Of that I am aware. Though those two versions of BBC BASIC are not quite the same (is there a way to call a kernel SWI in SDL BBC BASIC?).

It would be nice to see that kind of thing come to BBC BASIC V, then we could have it on RISC OS (where the 32-bit BBC BASIC is truly at home).
and GUI commands as builtins
I don't share that view. IMO a BASIC interpreter should include as builtins only things which cannot (e.g. for performance or syntax reasons) be satisfactorily implemented in a library. The main reason is to avoid bloat; unlike a compiled language every built-in feature has to be included in the run-time engine, whether your BASIC program needs it or not. If the feature is implemented in a library, you can choose whether to include that library or not which is more efficient and typically results in a smaller executable. GUI features are eminently suitable for implementation in a library IMHO (e.g. dlglib.bbc supplied with BBCSDL which supports dialogue boxes and controls).
I actually agree with the concept of a library for the GUI functions, though with the caveat that it should be a standard interface, and use tokens reserved by the interpreter, and be called/loaded only if used. The problem with not having a standard within the language definition for these things is that it makes applications that use these things non-portable.

I could not use any of my BBC BASIC RISC OS programs in BBC BASIC for SDL simply because the way it interacts with the OS to produce GUI elements, support messaging, do file I/O, implement GPIO routines, and the like.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sun Jun 30, 2019 6:21 pm

DavidS,
I would like to see a BASIC that has the structure and syntax of ARM BASIC and adds support for structured data types and GUI commands as builtins
I don't think so. Functions like that should not be part of the language syntax. They should just be functions. Python learned this lesson with it's old print vs new print()

Clearly "BBC BASIC V (the ARM version, also part of RISC OS)" is a very different animal to the BBC BASIC most people will know from the BBC Micro. Looks like it was nicely integrated into the OS and GUI, like VisualBASIC on Windows.

The downside of all that tight integration of a programming language and an OS is that it makes the code non-portable. Ultimately a dead end.
Though why someone would want to use more crippled languages like JS is beyond me.
In what way is JS anymore crippled than BASIC?

"BASIC has proper universal indirection operations" - Not sure what you mean exactly. You mean like pointers in C? A high level language should not deal in such low level things.

"...and proper variable types,.." - Not really. No compared to proper typed languages like Ada.

"...as well as a simple means to directly call the Operating system,..." - Pretty much all languages can get you to OS functionality easily enough.

"...and a easy to directly run ARM native code that is in the programs address space..." - What a cop out. When our language fails us we will drop into assembler! Any way, many languages have a back door into C and assembler if you really need.

Anyway, the whole point of my suggestion is to somehow create a machine that is as simple and inviting to program as the C64 and the like back in the day.
Memory in C++ is a leaky abstraction .

User avatar
rpdom
Posts: 17174
Joined: Sun May 06, 2012 5:17 am
Location: Chelmsford, Essex, UK

Re: Searching for BASIC

Sun Jun 30, 2019 6:54 pm

Heater wrote:
Sun Jun 30, 2019 6:21 pm
Clearly "BBC BASIC V (the ARM version, also part of RISC OS)" is a very different animal to the BBC BASIC most people will know from the BBC Micro. Looks like it was nicely integrated into the OS and GUI, like VisualBASIC on Windows.
It's been a long time since I used BBC BASIC V, but IIRC the majority of the GUI (or WIMP as it was called back then) interfacing was handled by OS system calls, not part of the actual BASIC language. It did have a MOUSE function that returned X, Y and button state of the mouse. Mostly it was the same as the earlier BBC BASIC on the BBC MICRO. The majority of simple programs could be ported over with no changes. More complex ones took a bit of work. I managed it with the suite of programs I was working on at the time.
Unreadable squiggle

jahboater
Posts: 5760
Joined: Wed Feb 04, 2015 6:38 pm
Location: West Dorset

Re: Searching for BASIC

Sun Jun 30, 2019 7:02 pm

Heater,
Heater wrote:
Sun Jun 30, 2019 6:21 pm
"BASIC has proper universal indirection operations" - Not sure what you mean exactly. You mean like pointers in C? A high level language should not deal in such low level things.
Interesting take on what a high level language is ...
C++ has several different types of pointer. D, Fortran, C, Ada, Pascal, etc etc all have pointers and I really thought they were HLL's.
I must be wrong :(

User avatar
John_Spikowski
Posts: 1614
Joined: Wed Apr 03, 2019 5:53 pm
Location: Anacortes, WA USA
Contact: Website Twitter

Re: Searching for BASIC

Sun Jun 30, 2019 7:18 pm

That is the idea of extension modules to add low level functionality and present a high level interface for it.

Heater
Posts: 15954
Joined: Tue Jul 17, 2012 3:02 pm

Re: Searching for BASIC

Sun Jun 30, 2019 8:04 pm

jahboater,
Interesting take on what a high level language is ... I must be wrong
Of course you are not wrong.

How long is a piece of string? There is high level then there is more high level and...

DavidS did not say "pointer", he said "indirection". One can have indirection without thinking of crude memory addresses. Indirection could well mean "X refers to a Y, when I say X I mean a Y, not X itself.". As opposed to C which requires a "*" to mean the the thing the pointer points at, not the pointer itself.

As soon as you have pointers to raw memory you have dropped a level or two in abstraction.

Now that I think about it, C is silly. Given that X has the type of a pointer to a Y, why do we need the "*" to get to the Y that X points to?
Memory in C++ is a leaky abstraction .

jahboater
Posts: 5760
Joined: Wed Feb 04, 2015 6:38 pm
Location: West Dorset

Re: Searching for BASIC

Sun Jun 30, 2019 8:16 pm

Heater wrote:
Sun Jun 30, 2019 8:04 pm
Now that I think about it, C is silly. Given that X has the type of a pointer to a Y, why do we need the "*" to get to the Y that X points to?
Because you don't always want the indirection?
Say Z also has the type of a pointer to a Y

Z = X;

would be ambiguous. Does it mean copy the pointer, or does it mean *Z = *X
Uuuugh!

Anyone who finds * and & difficult to understand will not get far in programming.

User avatar
RichardRussell
Posts: 652
Joined: Thu Jun 21, 2012 10:48 am

Re: Searching for BASIC

Sun Jun 30, 2019 9:12 pm

DavidS wrote:
Sun Jun 30, 2019 5:00 pm
Though those two versions of BBC BASIC are not quite the same
The interpreters are (at least, BBC BASIC for Windows and the 32-bit x86 editions of BBC BASIC for SDL 2.0 share identical code). The differences lie in areas which would be considered part of the OS on the BBC Micro or in RISC OS, but for reasons of emulation are part of the BB4W and BBCSDL packages.
(is there a way to call a kernel SWI in SDL BBC BASIC?).
There has never been a RISC OS build, so the question of SWIs hasn't arisen. SYS can be used to call an OS API of course, but different OSes mean different APIs.
I could not use any of my BBC BASIC RISC OS programs in BBC BASIC for SDL simply because the way it interacts with the OS to produce GUI elements, support messaging, do file I/O, implement GPIO routines, and the like.
File I/O is surely compatible (at least if you use BGET#, BPUT# and GET$#). In respect of GUI elements, my understanding is that RISC OS is a cooperative multi-tasking system so compatibility with Windows or SDL would be hard to achieve, at least without some undesirable compromises.

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sun Jun 30, 2019 9:16 pm

Heater wrote:
Sun Jun 30, 2019 6:21 pm
DavidS,
I would like to see a BASIC that has the structure and syntax of ARM BASIC and adds support for structured data types and GUI commands as builtins
I don't think so. Functions like that should not be part of the language syntax. They should just be functions. Python learned this lesson with it's old print vs new print()

Clearly "BBC BASIC V (the ARM version, also part of RISC OS)" is a very different animal to the BBC BASIC most people will know from the BBC Micro. Looks like it was nicely integrated into the OS and GUI, like VisualBASIC on Windows.

The downside of all that tight integration of a programming language and an OS is that it makes the code non-portable. Ultimately a dead end.
Obviously you are not familiar with BBC BASIC V. There is nothing OS Specific in the language it self. The portability problem comes in that we have to call RISC OS SWI's to use the GUI (because there are no window management commands in BBC BASIC).

We have standards for the most common other kinds of user input/output in the standard libraries of most programming languages, so why not for using a window manager.
Though why someone would want to use more crippled languages like JS is beyond me.
In what way is JS anymore crippled than BASIC?

"BASIC has proper universal indirection operations" - Not sure what you mean exactly. You mean like pointers in C? A high level language should not deal in such low level things.
You believe that a HLL should be crippled in its abilities???
"...and proper variable types,.." - Not really. No compared to proper typed languages like Ada.
Ada goes to far with it.
"...as well as a simple means to directly call the Operating system,..." - Pretty much all languages can get you to OS functionality easily enough.
That is arguable, a will leave it be.
"...and a easy to directly run ARM native code that is in the programs address space..." - What a cop out. When our language fails us we will drop into assembler! Any way, many languages have a back door into C and assembler if you really need.

Anyway, the whole point of my suggestion is to somehow create a machine that is as simple and inviting to program as the C64 and the like back in the day.
C is a good language. It is the likes of JS that are crippled in ability.
That would be a RISC OS machine, as we definitely need the HW abstraction in order to keep it inviting to noobs.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: Searching for BASIC

Sun Jun 30, 2019 9:19 pm

Heater wrote:
Sun Jun 30, 2019 8:04 pm
jahboater,
Interesting take on what a high level language is ... I must be wrong
Of course you are not wrong.

How long is a piece of string? There is high level then there is more high level and...

DavidS did not say "pointer", he said "indirection". One can have indirection without thinking of crude memory addresses. Indirection could well mean "X refers to a Y, when I say X I mean a Y, not X itself.". As opposed to C which requires a "*" to mean the the thing the pointer points at, not the pointer itself.

As soon as you have pointers to raw memory you have dropped a level or two in abstraction.

Now that I think about it, C is silly. Given that X has the type of a pointer to a Y, why do we need the "*" to get to the Y that X points to?
In this case I am speaking of pointers, and all the indirection tricks built on the use of pointers.

The terminalogy of BASIC sorry.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
RichardRussell
Posts: 652
Joined: Thu Jun 21, 2012 10:48 am

Re: Searching for BASIC

Sun Jun 30, 2019 9:25 pm

rpdom wrote:
Sun Jun 30, 2019 6:54 pm
Mostly it was the same as the earlier BBC BASIC on the BBC MICRO.
The addition of a WHILE loop, CASE statement, multi-line IF...ENDIF clause, passing arrays to functions and making them LOCAL, whole-array arithmetic (including the dot-product), the SWAP statement, the SYS statement to call OS functions, compound operators, assigning to a substring, binary constants, support for libraries etc. qualify BASIC V as a much more significant language upgrade to me.

Return to “Other programming languages”