Hi
wysardry!
wysardry wrote: ↑Tue Oct 10, 2023 4:29 pm
I would find it useful if ugBASIC was compatible with a more established BASIC dialect so that fewer changes would need to be made for programs to run on other platforms (not available to ugBASIC).
At the time of this writing, ugBASIC is 90%-95% compatible with
MICROSOFT BASIC V2. At least, for the main commands related to the BASIC language, such as string management or memory allocation. The graphics and audio extensions are not present in that BASIC, so in those aspects it is not compatible -- although, if you want, you can use the
POKE command without problems.
wysardry wrote: ↑Tue Oct 10, 2023 4:29 pm
This could also help when deciding what syntax and behaviour to use for new features.
Generally speaking, that's not entirely true. The approach at the time in developing BASIC for a specific platform was to start from the characteristics of that platform. So when deciding the syntax or behavior of certain commands, a lot depended on how the underlying hardware moved. This is exactly one of the points where ugBASIC, with the isomorphic approach, tries to intervene to avoid penalizing one platform rather than another. In fact, the aspects that are common to all BASIC are captured by the general instructions in BASIC. For specific hardware behaviors, instructions are used that "mimic" such behaviors as much as possible, without necessarily introducing a common factor such as abstractions.
In other words: if hardware behaves in a certain way and we want to exploit it, the best thing is to invent commands to manipulate it rather than "leaning" on the standard developed many years ago, which probably didn't want to expose too deep details.
wysardry wrote: ↑Tue Oct 10, 2023 4:29 pm
I would suggest using ANSI Full BASIC as implemented in Decimal BASIC for modern machines and IS-BASIC on the Enterprise 64/128.
According to this page, the ISO standard was reviewed in 2008 and remains current.
As far as I know, the ANSI standard never reached the maturity level to truly represent a standard, at least for BASIC. There were few "de facto" BASIC standards in the 1980s, and those standards have influenced subsequent BASICs to some extent. Definitely not the ANSI standard. For example, DECIMAL Basic is based on a 1991 standard, but BASIC was well established more than a decade earlier. I cannot find info about IS-BASIC, but I think it is something similar.