BASIC on Early Mainframes
IBM System/360 was the mainframe that changed the world! So, what about BASIC?
I was originally going to write about random access file I/O, which I will do, but I took a diversion this week looking at mainframes. I’m not an expert on mainframes, but I find them fascinating, and there are still mainframes in use today, 2024. Supposedly about 10,000 machines are in use (NOTE: THE FOLLOWING IS VERY INACCURATE, SEE THE COMMENTS BELOW: and each one needs a staff of 1,000 people. NOT SO. I STAND CORRECTED). I find it fascinating that BASIC was invented on mainframes in this type of environment. It is even more remarkable that when it was invented, almost all computing was done via batch systems. Even though they were physically huge and costly, they were, by today’s standards almost minuscule computers. I recently learned that there was even a mid-60s model IBM System/360 that had 32KW (or 64KB) of memory. About five years later DEC and HP were creating minicomputers with this amount of memory.
I talked with a mainframe specialist at Unisys a few years back. When I mentioned how quickly things changed in the ‘60s and ‘70s, he pointed out that, then and now, mainframes are superior at I/O. They aren’t good number crunchers, but they are superior in transaction processing, such as ATMs, airline reservations, Credit card transactions, etc. They have always used I/O channels, which are outboard computers that manage I/O. They are good at real-time transactions and batch jobs. They are good at consolidating key business data in one place. For those types of uses, mainframes are superior.
So BASIC was invented to run on mainframes. As I’ve discussed before, Kemeny and Kurtz were visionaries who saw people using computers from home. They assumed that people would dial into mainframes from their homes, and several companies pursued this goal, such as Compuserve and a General Electric Subsidiary named GEIS. Some of these companies went on to become ISPs (Internet Service Providers).
In the ‘60s and ‘70s, most computer scientists believed that home users would eventually become programmers. (As an aside, many politicians are pushing ‘coding’ as a way to invigorate our economy. That was before the AI people said we may not need programmers). The computer scientists of the ‘60s and ‘70s never imagined the world we have today where powerful applications are easily accessed from everywhere. Since they believed ordinary people would learn to program, BASIC was created as a way to facilitate this use. Famous computer scientists created languages for small children such as Small Talk by Alan Kay, and Logo by Seymour Papert.
Although the average person never learned to program, and the average elementary school student never learned to program, it did have a powerful impact on the early home hobbyist computers and business computers. In the 70s I would have been flabbergasted to hear that only a decade later a lot of people would have computers. If I had heard that when you powered on one of the business machines it would go directly into BASIC, I would have assumed DEC would be a big player in that market. Sadly, that’s a story for another time.
Mainframe BASICs
Over the last couple of weeks, I’ve been playing with mainframe emulators on my laptop. It’s funny to think that I could run a huge ‘70s-style data center on my laptop. I have emulators for an IBM 370, DEC-10, Burroughs B5500, DEC PDP-11 minicomputer, PDP-8 minicomputer, and HP minicomputer.
When you think of the BASIC language, the two surprising ones on the list are the mainframes from IBM and Burroughs. At the University of Delaware, I had access to numerous DEC machines and a Burroughs 6700. I gravitated to the PDP-11s because I saw them as the future, and my first exposure was to PDP-11s. I regret now that I didn’t look more closely at the Burroughs machine. Burrough’s Master Control Program had an amazing time-sharing environment that was modeled off of DTSS at Dartmouth.
The user interface worked very much like BASIC. The Command Line Interface called CANDE for Command and Edit, worked almost the same as a BASIC editor. Lines were numbered, even though many of the compilers didn’t need them. I didn’t use this system much in High School, although I did have access. It had an amazing list of languages like ALGOL, Lisp, Fortran, BASIC, COBOL, PL/1, SNOBOL, and probably some I’m missing. I loaded a B5500 emulator on my laptop and it’s been fun to see what I missed all those years ago. The B5500 was an early ‘60s computer, but it was ahead of its time in my opinion. It didn’t have a complicated batch job entry system, and time-sharing was handled as a first-class citizen in the OS architecture. The hardware is interesting as well, it has a stack-based architecture. Unisys continues to sell mainframes that have their heritage in Burrough’s B line of machines. One of the last jobs I worked on before I retired had Unisys machines and COBOL. Their mainframe was built out of a cluster of Intel Xeon processors that ran code to emulate the old architecture, and it runs faster than the old machines. Wikipedia has a nice article on the current machines and the programming languages provided by Unisys OS 2200 Programming Languages. Sadly they don’t include BASIC, even though I found it on the emulated B5500. I suspect it was software contributed to the Burroughs user community.
That brings me to IBM. I was surprised to find out that IBM has at least two implementations of BASIC for the mainframe, and both of them run on the System/360 architecture. I’ve heard of two but I’ve only been able to find one that works on the MVS 3.8j TK-4 (this is a free operating system from IBM that was used on System/370s computers in the mid-80s.) Key add-on products are not free, but hobbyists have filled the void. Even though I had worked for IBM in the ‘80s I had worked primarily on PC operating systems, and the only mainframe apps I used were office applications that ran on VM/CMS, which continues to be the main time-sharing system offered by IBM today, with a new name z/VM. I’ll have to look into whether z/VM supports either or both of the two BASIC languages that run under MVS. I suspect they are both open source.
If you’re interested in how BASIC runs on an IBM MVS mainframe, check out Moshix's tutorial on installing BASIC360 on MVS 3.8j TK-4. It runs as a batch job, so there is a huge amount of effort just to run a small program. I guess this is why IBM never advertised BASIC. It’s also strictly an implementation of the very first BASIC released by Dartmouth. By the way, their BASIC360 is implemented in PL/1.
Here’s a comment from Jeff Savit: "Supposedly about 10,000 machines are in use and each one needs a staff of 1,000 people" The former sounds about right, the latter is orders of magnitude too high.
There were indeed implementations of BASIC for VM/CMS, such as VS BASIC, which might still run on current CMS on z/VM. It was never open source - VS BASIC was a licensed product that didn't get much uptake. VS BASIC was very straightforward to use on CMS - the command name followed by command line arguments including the source code file.
When I taught Business student Freshmen the introduction to computers (circa 1970) at the University of Rhode Island we had BASIC on 360/50. The mainframe worked well and so did BASIC time sharing, but the IBM terminals, 2741s, were always in need of repair. Although slow and noisy, held up much better.