8 ms·
40-Year old BASICA utility code for teaching
- fuzzfactor 2y agoOriginal 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.
- norton120 2y agoThese 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 2y agoA 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 2y agoSpreadsheets 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.
- tombert 2y agoYep, completely agree. I remember I saw a talk six or seven years ago where they said something to effect of "spreadsheets are the best programming language because they allow people to program without even realizing they're programming", and I agree with that sentiment. 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.
- rlawson 2y agoHow neat! Thanks for sharing. Wish we could get back to everyday people being creators as well as consumers
- deleted 2y ago[deleted]
- syx 2y agoThis 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 2y agoI 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 2y agoIt's 3.5 inches, not millimeters :)
- rsynnott 2y ago3.5mm floppy disks are, of course, what they used to have instead of micro-SD cards.
- ale42 2y 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 https://github.com/rwtodd/bascat
- lloydatkinson 2y agoWhat a weird Git repo structure. One branch for each language, instead of a directory for each language.
- hedora 2y agoI had a colleague that did something similar. It generated a lot of confused “which branch do I check out?” slack messages.
- lloydatkinson 2y agoIt seems totally at odds with common sense. Now, every time you need to make some change across multiple branches you have to go through a lot of unnecessary pain.
- throwanem 2y agoI'm sure, for this historical-interest repository, that that will pose a real problem.
- lloydatkinson 2y agoWell... yes? What if an another newer or older version of the code is found on a floppy or stack of printed code?
- dpweb 2y ago3.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 :)
- pjmlp 2y agoI 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 2y 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).
- hedora 2y agoWe 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 2y agoThe 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.
- hedora 2y agoCome to think of it, it was a hole punch.
- _mlbt 2y agoGW-BASIC is open source and should presumably be able to run this code with possibly minimal changes. https://github.com/microsoft/GW-BASIC/ https://github.com/microsoft/GW-BASIC/
- tssva 2y agoIt 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 2y agoA 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.
- slushy-chivalry 2y agoAmazing Now if only the education system improved as well and stopped feeding the kids useless information.
- deleted 2y ago[deleted]