40-Year old BASICA utility code for teaching
github.com
github.com
He mentioned how long grades took him to calculate because he had a lot of custom weighting for stuff, and he was doing everything with a Texas Instruments calculator, and he was dreading it because the semester was almost over. I said something like "Couldn't you do this with Excel or something?"
He didn't really know what Excel was, but my dad had like a week before taught me how to use it for basic number crunching stuff, so I loaded it up on his computer, and showed him some very basic arithmetic stuff, and how to use cells as variables and roughly how copying and pasting worked. He was immediately amazed and I left feeling super smart.
The next week, I chatted with him again, and he had completely overtaken my Excel ability. He learned a bunch of little tricks I was unfamiliar with, had redone all of the gradebooks with it, added a lot of conditionals, color coding, and I think might have even been using the VBA. He also added graphs to look at how much he had to curve things and to see if tests were fair. It was life-changing for him; a task that used to take him hours of manual work was reduced to about fifteen minutes of playing copypaste.
Excel is particularly interesting to me, because it's very immediately useful, but you can also go super deep with learning new features, and it keeps getting more useful!
They give you access to a lot of programming logic, they're visual, they're reactive, they're easy to learn, and maybe most importantly, the results are instant. Instead of having to try and understand data types and scope and having to run a program from scratch for every change, you can just change a value and see the result right away.
I use spreadsheets for nearly anything involving "numbers" (outside of stuff with lots and lots of data), because it's a lot less of a headache than setting up a "real" language. They're wonderful.
Actually this is not related to CP437. For normal ASCII text, CP437 and UTF-8 are identical... the problem is that BASICA/GW-BASIC were storing the source code in tokenized binary form, probably to save disk space. See for example this decoding utility: https://github.com/rwtodd/bascat
It seems like finding this version took at least half a miracle, so I feel like the potential and probably not too effortful reorganization of the repo to accommodate another is a problem worth leaving to be solved only once it's known to be worth taking the trouble.
For that matter, given manual reconciliation of two versions of very old, not previously version-controlled code would almost certainly be required anyway, the additional friction imposed by this repo structure very likely is net neutral in any case.
https://retrocomputing.stackexchange.com/questions/7104/how-...
https://slions.net/threads/deciphering-gw-basic-basica-prote...
I remember seeing some BASIC games that could not be listed. Found that very frustrating as a kid trying to learn BASIC. Maybe now I can finally get to see something of how those games were made, assuming that at least some games were only protected in this way.
Just opening the file in PC-BASIC seems to be the easiest solution: "PC-BASIC can read and write Protected files created by GW-BASIC. Unlike GW-BASIC, however, it does not disable accessing the unencrypted contents of the file. The encryption used by GW-BASIC has been broken many decades ago, so Protected mode offered little protection anyway; disallowing access is a small security hazard as it would allow someone to send you a program that you cannotinspect before running it."
This BASICA.EXE is the full 79kb GW-Basic 3.22 copyright Microsoft 1983, 1984, 1985, 1986, 1987.
A different version I have been using for decades is 78kb and launches with a different text header: COMPAQ Personal Computer BASIC Version 3.31 copyright Compaq Computer Corp. 1982, 1988. Copyright Microsoft 1983, 1987.
Thought to be equivalent but doesn't say anything about GW-Basic on the Compaq one.
I use it to run a program I wrote decades ago to calculate caustic soda according to reporting standards that were already arcane at the time. And GW-Basic was the "new Basic platform" for the IBM PCs and compatibles that looked like they might be here to stay by about then, and beginning to show up in a number of offices. My code was originally written in 1980 on a Hewlett-Packard gas analyzer designed in the 1970's. Even though caustic has nothing to do with gas commodities I was so fortunate to have a benchtop Basic instrument I could do anything with, and caustic was just calculations.
Once PCs got more powerful and proliferated I waited a few more years before converting caustic code from HP-Basic to IBM-Basic. HP-Basic was two optional ROMs that cost $1500 you plugged into the instrument PCB. Early IBM-Basic was still ROM-based too, this is the one that was launched from DOS using the 4kb BASICA.COM (rather than basica.exe). So it's the basica.com (sometimes renamed to basica.exe !) that doesn't work when you try to run it, because it is really meant for the antique motherboard with the specific ROMs. If you have both basica.com and basica.exe in the same directory on the command line in DOS, and you type in just "BASICA" without the extension it will run the .com if present (and errorfail with Incorrect DOS Version) rather than the full executable.
In the late '80's once it looked like GW-Basic had good penetration, made the final tweaks to my code and ran it under DOS 5, DOS 6. Booted Win3.x and W9x to DOS whenever, and since NT5 just works in a Windows command instance as long as you don't try a 64-bit version of Windows.
BASIC Advanced (BASICA) also required the presence of the cassette BASIC ROM. It added additional features above disk BASIC but required more memory. It was originally launched via basica.com. This eventually changed to basica.exe. At this time basica.com became just a launcher of basica.exe.
Non-IBM versions of MS-DOS, at least the versions targeted for PC clones, shipped with basic.com and basica.com being launchers for basica.exe. This is true at least as far back as Compaq DOS 1.10. Earlier versions of MS-DOS were branded by OEMs and included versions of GW-BASIC which didn’t make direct reference to GW-BASIC such as the Compaq example you gave. I have a Zenith Z-161 luggable in my collection and the Zenith version of MS-DOS it runs has a BASIC which is gw -basic but reports itself Zenith BASIC and simply includes Microsoft in the copyright notice.
https://robhagemans.github.io/pcbasic/
Edit: I'm now seeing that the OP project uses PC-BASIC for the Docker mode.
Using DOS (obtained from W98SE) booted to its own FAT32 filesystem on a HDD, SSD or floppy if you got 'em.
Also works on Windows 10 32-bit if you enable NTVDM,reboot beforehand. In file manager double-click basica.exe in the original 204kb Program folder after unzipping. Doesn't need to be stored on FAT32 for this. Basica.exe doesn't launch from regular W10 command line, but can alternatively be launched using the Run routine from the Start menu though.
I got fortunate with the disks - I just bought a USB 3.5mm reader and hooked it up to my Ubuntu machine, and there the files were, no corruption that I can tell. I'm glad other people are also enjoying the find!
She also had a utility to copy original software disks onto the “high density” disks, then read back the data.
From what I could tell, it worked like a charm. 10% of the copies failed, but whatever.
(Coursework was stored on unmodified disks, of course.)
The rest of us had tapes.
And yes the high school computers were running MS-DOS 3.3, with two 5 1/4" drives and no hard disk.
I suspect you're thinking of the Amstrad Spectrum +2 (grey, largely the same as the Sinclair ZX Spectrum 128) vs Amstrad Spectrum +2A (black, contained a +3 motherboard minus the FDD controller, and less compatible with external peripherals).
Now if only the education system improved as well and stopped feeding the kids useless information.