These scripts were written by my father in the 1980s, he was a middle school science teacher and wrote these to help him manage classrooms. I think it’s a cool example of the way personal computing changed life in that era; he was never a software engineer, just a guy that needed to automate some tedious work. I encoded the BAS files in utf8 so they are easier to read.
A bit tangential, but I had a chemistry teacher in high school (~2007) who I liked a lot, but was not super tech-savy. I was staying after class to get some help with a homework assignment, but we ended up chatting a bit because he was funny and very friendly.
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!
Spreadsheets are one of the best technological advancements in the past 100 years - and I'm not exaggerating. There is just so much you can do with them; they are probably the most accessible way for a human to access the power of CPUs and computation. For most problems, I'd rather use a spreadsheet than a general-purpose programming language, because the spreadsheet itself offers a quick away to leverage data structures and functions.
> Because DOS systems used CP437 encoding it is unlikely any of your editors will even be able to open the .BAS programming files in the Program directory
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
Wasn't there a way to tell BASIC to save in ASCII, rather than tokenized? Something like sticking ",A" onto the end of the save command? Or maybe I'm thinking of gwbasic ..
Not sure about BASICA, but GWBASIC definitely had this ",A" at the end of the filename to save in text format. It even had a ",P" flag to save in "protected" tokenized format (which you can't "officially" list, although a POKE at the good undocumented place could remove the flag: https://www-user.tu-chemnitz.de/~heha/hsn/chm/gwbasic.chm/to...).
Heath/Zenith's ZBASIC on the MSDOS-but-not-PCDOS Z-100 used a similar format but with at least different keywords. Somewhere I had a set of programs I had written in ZBASIC but could never load after selling that computer. Wonder if I still have the floppies squirreled away, now that I have a Greaseweazel to read those diskettes...
This was also a feature in Applesoft Basic, where the BASIC keywords were all tokenized to save space (and also speed up execution since the code was pre-tokenized when it was executed).
It should be able to run them without any changes. GW-BASIC was derived from BASICA and is functionally identical. BASICA required the cassette basic rom which shipped with IBM machines and GW-BASIC did not.
A full version of BASICA.EXE is included in the Program folder with the zipped DOS .BAS program files if you download norton120's package.
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.
Original programs work as is on bare metal on a UEFI system with CSM enabled.
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.
This is fascinating, thank you for preserving this work!
Do you have more details on the machine used by your father to develop these utilities? what process did you follow to extract these from the 3.5mm floppy disk?
I know we had a 486 at some point when I was a kid, but this code would have predated that machine by a few years so I'm not entirely sure. There were also machines at the school (where he worked) but not 100% sure what they had when.
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!
We were still using 5 1/4”, but the school CS teacher had a special press that cut a notch into the 360K (?) ones to trick the Apple II’s into using them in 720K mode.
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 special press was fancy! I used a hole punch (the type intended for punching small round holes in paper), and as long as you lined it up correctly it worked great.
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).
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!
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
Deleted Comment
https://github.com/microsoft/GW-BASIC/
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.
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).
Deleted Comment
Now if only the education system improved as well and stopped feeding the kids useless information.
Deleted Comment