"Birth of BASIC"
linux.org/threads/birth-of-basic.43959/
You guys don't know what you're missing. Try QB64 Phoenix Edition.
qb64phoenix.com/forum/index.php
(Fill in the rest of the web address. For the moment the "main" site redirects to the forum, that's why I write more of the address at the tail. Also new people might not be permitted to post complete web links until "trusted" later.)
For those impatient to be told right here: QB64 is a front end for
g++ which accepts "scripts" written in BASIC that were compatible with the M$ products QuickBASIC v4.5, QBasic for MS-DOS, and to a lesser extent, M$ BASIC PDS v7.1 and Visual BASIC for MS-DOS. The original author, from the same country as one of your administrators, originally aimed at 100% compatibility with the interpreter-only QBasic. There is at least 95% support for Linux and MacOS although the focus is on Windows.
(Some people and sites insist there was a "later" QuickBASIC. They even call it improperly like "QuickBASIC v7.1" or "QB71". But that was
only the QuickBASIC Extended editor/interpreter that was part of the Professional Development System, which also came with Programmers Workbench, the debugger Codeview and pretty much the same libraries and programming tools as Microsoft C, back in the early 1990's. One did less-complex programs in QBX with "extended" memory, that the regular QuickBASIC couldn't do. More complex programs requiring many source-code files were done with the Workbench-CodeView combination. The system was able to produce programs that ran in "protected mode" Windows and OS/2, while QuickBASIC couldn't.)
If you have some BASIC programs lying around give QB64PE a try, but please look over the source code first! Watch those endless loops without a way to break out of it with "escape" or other keypress! The old single-precision self-counting FOR... NEXT loops aren't going to work, must either use _DELAY which could be pensive, or inside a looping structure try "_LIMIT 20" or something like that. For example, study the original "NIBBLES.BAS" program that came with QBasic. It will have to be adjusted for PC's much faster than Intel 386SX and stuff like that.
Note that after the original programmer disappeared from the set, a few years passed until last year when there was a large quarrel and breakup. So now there's the Phoenix Edition which will hit v3.7 soon, and there's also the "official-dot-com" edition which is at v2.1. If you want to get serious with graphics, music and Unicode then Phoenix Edition is strongly recommended. If you don't much care about "Windowsisms" then the "official" version should be good enough but it hasn't seen as many updates, and programs using Phoenix Edition keywords and features won't be compatible. Of a certain interest, you could get fancy information, notification, save, open and input dialog boxes if Yad or Zenity were installed on your Linux system with QB64PE v3.4 and later. Not from "qb64-dot-com" offering. In the past it depended on "xmessage" which was ugly and tended to mess up depending on fonts installed in the system. Rendering text in graphics screens promises to be even faster with the upcoming release of Phoenix Edition!
No QB64 doesn't support object-oriented programming like Freebasic does, which is mostly good, but bad for example if you want to redefine the "MOD" operator so it "properly works" with negative dividends and/or divisors for some people. Freebasic also supports "real" pointers like C/C++ while in QB64 one has to use _MEM variables which could be clunky. Freebasic supports macros which are more graceful than those in C, while QB64 can't, cannot even have functions with constant expressions in a CONST statement such as "CONST CRLF = CHR$(13) + CHR$(10)" which sucks. QB64 has a primitive preprocessor, which allows it to recognize rudimentary "signal" variables like which version/release of QB64, operating system it was compiled on and 64-bit support, which sets console-only mode and disables the "mainwin", and which supports include files. Finally Freebasic executables which are console programs could be much smaller than those created by QB64 and might occupy less RAM. But don't expect any response out of "CHAIN", "COMMON SHARED", "DEF FN", "FIELD" and a few other outdated statements found in a lot of GW-BASIC and M$QuickBASIC programs in particular. "CALL INTERRUPT" doesn't work in QB64 but, for example there are functions like _MOUSEINPUT to handle the mouse. "INP" and "OUT" statements that were very necessary for cheap EGA graphics programming are emulated; they aren't recommended used in new programs (Windows limitation).
On Github there are a few hundred QB64 "repositories". More confusingly there's an AUR package for the last "dot-org" version
which should never be considered! Always download the latest version of QB64, either from the link I provided above, or from "qb64-dot-com". Don't ask "what's the difference?", just download it and use it.
THIS JUST IN: QB64 Phoenix Edition v3.7 is out now!