I worked for Grumman Data Systems on the MassTape project for several years, and really enjoyed working there, and made some friends that I still hear from 30 years later, but, as they say, all good things must come to an end. The MassTape project was cancelled. My next job was working for a little company called Ontel. Ontel made a device called an Intelligent Terminal. At that time, lots of companies made devices called Terminals, which were not computers, but were used to communicate with a computer. There were basically two kinds. One kind had a keyboard and a character-at-a-time printer, sort of a glorified electric typewriter. You would type something at the keyboard, and the printer would print what you typed, but at the same time the characters you typed went to the computer that the terminal was attached to. The other type had a CRT instead of a printer, but it was essentially the same thing. The CRT could only display characters. No fancy graphics or images like today's computers. Ontel, however, made a third type, an Intelligent Terminal. This was a CRT terminal that had a microprocessor inside. Today we would call it a personal computer, or PC, but they hadn't invented that term yet. The Apple and the IBM PC were still in the future.
When I joined Ontel, the "intelligent" part of the Intelligent Terminal was very hard to use. The only way to get a program into the microprocessor was by using a cartridge tape drive which was attached. You had to get your program onto a tape cartridge, and when you started the computer, it would read the tape, load your program and run it. They also had a primitive program development system. You loaded a text editor into the computer from a tape, and typed your program into the editor, which saved it onto another tape. You then loaded a program called an assembler, which translated your program from something called assembly language into the machine instructions that the microprocessor could understand, and this was saved on yet another tape. This was very slow and cumbersome.
Just about that time, IBM had invented something they called the Diskette. Others called it a floppy disk. The IBM Diskette at the time was 8 inches in diameter, inside a square black flexible plastic envelope. It held about 240 thousand characters of data. IBM used it to load microcode into its new System/370 mainframe computers. A few companies had come along that produced Diskettes and Diskette drives for use by other machines. Ontel decided build a Diskette controller and attach Diskette drives to their machine. This created a bit of a problem. Diskettes are not as simple as a tape cartridge. Tape cartridges were used just like punch cards in the old days, sequentially. You read data from the tape in sequence. Diskettes were called random-access devices. You could potentially read data from different places on the Diskette at any time, in any order. This was a great capability, but it required that you have software to do this, like an Operating System.
So, I ended up writing the first Operating System for the Ontel. We gave it the very imaginative name of DOS, which stood for Disk Operating System. A few years later, when IBM came out with the PC, they used the same name. I wish we had trademarked it. Let me give you an idea of how difficult this was. Firstly, everything had to be written in assembly language. Assembly language is a human readable version of the instructions that the computer understands. It is very difficult to write programs in assembly language, and nowadays, unlike then, very few programmers use it. Secondly, the Ontel OP-1, as it was called, had only 64k of memory. That's 65536 bytes of memory. The computer you are reading this on probably has one or more billion bytes of memory. Also, the operating system can't take up all the memory of the computer -- you have to leave some memory for the programs that people bought the computer to use. So I was given 4k, that 4096 bytes for the Operating System to run in. Again for comparison, most operating systems today use several million bytes of memory.
I won't bore you with all the details of how I did it, except to say that I used a concept called transients, which were tiny (256 byte) pieces of the operating system that were read in from the Diskette when they were needed, so the Operating system was much larger than 4k, but only a little of it was in memory at any given time. Sometimes I would spend days trying to fit a particular functional piece of code into that 256 bytes. I would look for unusual ways to use the computer instructions, just to save one or two bytes.
DOS turned out to be very successful and I became the manager of the Operating Systems department at Ontel. We had a very talented group of programmers and DOS and its successors went a long way to make the Ontel OP-1 a success. Eventually, IBM came out with the PC, which killed off Ontel, but I really am proud of the work I did there, and of DOS, which was quite possibly the first Disk Operating System for a Personal Computer.
Copyright © 2007 by Jeff Kravitz