Readit News logoReadit News
norton120 · a year ago
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.
tombert · a year ago
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!

glimshe · a year ago
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.
ale42 · a year ago
> 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

greenbit · a year ago
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 ..
ale42 · a year ago
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...).
lloydatkinson · a year ago
What a weird Git repo structure. One branch for each language, instead of a directory for each language.

Deleted Comment

abdulhaq · a year ago
Probably an ex-subversion user
hedora · a year ago
I had a colleague that did something similar. It generated a lot of confused “which branch do I check out?” slack messages.
wlindley · a year ago
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...
dhosek · a year ago
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).
norton120 · a year ago
very cool to learn - I'll update the readme
dlachausse · a year ago
GW-BASIC is open source and should presumably be able to run this code with possibly minimal changes.

https://github.com/microsoft/GW-BASIC/

tssva · a year ago
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.
fuzzfactor · a year ago
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.

incanus77 · a year ago
An excellent project that I have used and contributed to is PC-BASIC, a ground-up emulator in Python that is very good:

https://robhagemans.github.io/pcbasic/

Edit: I'm now seeing that the OP project uses PC-BASIC for the Docker mode.

fuzzfactor · a year ago
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.

syx · a year ago
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?
norton120 · a year ago
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!

chungy · a year ago
It's 3.5 inches, not millimeters :)
rsynnott · a year ago
3.5mm floppy disks are, of course, what they used to have instead of micro-SD cards.
dpweb · a year ago
3.5" disks, nice. We were still on 5 1/4" in high school in 87-88.. True floppys! I remember thinking 3.5" hard disk - wow the technology :)
hedora · a year ago
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.)

unregistereddev · a year ago
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.
pjmlp · a year ago
I was envious of a friend of mine with a ZX Spectrum +3A, with the builtin drive.

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.

lproven · a year ago
+3, not +3A.

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).

rlawson · a year ago
How neat! Thanks for sharing. Wish we could get back to everyday people being creators as well as consumers

Deleted Comment

slushy-chivalry · a year ago
Amazing

Now if only the education system improved as well and stopped feeding the kids useless information.

Deleted Comment