Wednesday, August 5, 2015

Computers, Computers

30


Even with having two jobs at the time, the entry price of an IBM PC was still beyond my grasp and I continued to use my TRS-80 for four and a half years since I'd bought it. I had reached the end as far as updating it as well; while there were other options such as buying a third party color display interface for it, it had never been adopted as a common place add-on and thus there was no software that used it beyond what the third party company had come up with. After his first year with his IBM PC, my friend Jeff liked it so much he decided to get himself a second one... Sort of.
His own TRS-80 had become relegated to a forgotten room to run his online site as he had otherwise lost interest in it, and when it came time for his second IBM PC-ish computer, he decided to give one of the 'clones' a try. One of the greatest expenses for an IBM PC was the ROM BIOS. The Read-Only Memory Basic Input/Output System was embedded code that a computer started with when turned on. I'll say it's kind of like the computer's DNA that gets the computer going from scratch and provides a minimum library of software routines it can call to read the keyboard, display a letter on the screen, initially access external storage devices such as a disk drive, etc. While many IBM PC work-alike computers had come up with their own ROM BIOS to be the core of their machines, they didn't match the IBM PC version closely enough and often software written for the PC wouldn't run on the work-alikes. A clone manufacturer could always buy the IBM PC ROM BIOS to put into their computer thus guaranteeing they'd be one hundred percent compatible, but the license fee IBM charged for that ensured the cost of the clone computers would be as high as their own prices for a PC, thus any clone computer couldn't compete.
The Phoenix Technologies company came up with a novel approach to address this problem. Have you heard the joke that if you get enough monkeys locked into a room with typewriters they will eventually type-up Hamlet by accident? Phoenix came up with the idea of finding a group of computer coders who had no experience with the IBM PC and told them to create a ROM BIOS for them. They then told them what point of memory each BIOS routine would have to be placed into and what that routine did, but left it up to the coders to determine how to make it fit and work in that bit of memory from scratch. With this technique, Phoenix had a ROM BIOS created that was a perfect work-alike of the IBM PC's ROM BIOS with a legally verifiable story that any coding similarity between their ROMs was a coincidence as the people who created theirs had, provably, never seen IBM's code. Thus perfect IBM PC clones could be cranked-out at a significantly lower price.
Jeff decided that he would test this out for himself and bought his second IBM PC as a Phoenix ROM based clone that we assembled from various chosen parts. While he could have mail ordered all of these parts himself, he had a friend who had already become versed in doing this and was rapidly turning this familiarity into a small business out of his home. Jeff took me on his trip there and picked out his case, motherboard, various interface cards and storage hardware and assembled them into a working machine while we were there. His friend then added up the cost for all the parts Jeff had chosen, added a little bit on top for himself, and Jeff went home with an IBM PC clone for effectively half the price of buying a new IBM PC, itself. Jeff plopped this computer on the same table right next to his IBM PC and then spent the next month and more trying all of his PC software on the clone side-by-side to find something that didn't work. I was often in the seat next to him as we did this and we couldn't find anything that tripped-up the clone... that we cared about. I think one exception was the IBM PC diagnostic software which noticed the clone's Phoenix Technologies ROM didn't perfectly match the IBM image and thus assumed it was corrupt. But as all other programs were fooled, who cared what the IBM diagnostic software thought of it?
After two months of hands-on experience with this clone at Jeff's house I realized, with the vastly lower price, I could finally enter the IBM PC world at home and soon made an appointment at the friend's house to assemble and buy my own clone. This time Jeff joined me and helped me select a handful of improved items, such as a flip-top case for my version of the clone, and I was on my way home and raring to go. My TRS-80 computer was packed away into its Radio Shack made luggage cases and stacked in a corner of my bedroom and my PC clone put in its place on top of my custom made computer desk. While the desk had holes for the TRS-80 components to slip into, the clone's case and keyboard were bigger and just sat over the spots where the holes were, hiding them nicely while not falling in. I was into the modern computer world once again... Which as I was starting to learn, meant I'd be outdated by the end of the decade. By the mid-nineteen nineties, people's computer purchases were outdated by the end of each year, and by the end of the first decade of the twenty-first century, people's computer purchases were outdated by the end of each month. Today, whatever you see on the shelf is already outdated and you just decide to accept it. Or you make the mistake of buying some cutting-edge technology through the mail and it's outdated as it arrives at your door step.
One thing I didn't have to worry about becoming outdated in Nineteen Eighty-Six was the computer at my new accredited College. They had a fully fledged version of the TI-990 minicomputer that my Business College had and these computers, products of the nineteen seventies, had long since been outdated: That's how the colleges had gotten them so cheaply. This new College equally had more computer languages to master that were also outdated as I'd come to learn and one of them was RPG II. Report Program Generator, mark 2, it was a language so limited that all you could really do with it was read existing data on a computer and chose a format to output it in, most often to a printer. The Final for the class was to, you guessed it, read a file of existing data and print it out in two different formats. The teacher told us we'd have to create two different programs for this as he wanted one format to be a full listing of the data, and the second format to be a summary. Being the annoying computer smart ass that I was, I realized I could do it in one RPG II program given my now year & a half of direct experience using and running the TI-990 system at the Business College. Still, as the teacher had told us we'd need to write two programs, I didn't want to turn in a single program for the Final and get dinged for only doing half the coding, even if it did everything the teacher had wanted. So at the end of the class, I went up to him and asked if I could go ahead and do it as one RPG program. He assured me I couldn't. I said, ''Yes, but if I could write a single RPG program that could do it, would that be allowed for my Final?'' He had enough experience with me to get that twinkle in his eye as he realized that, if anyone could pull that rabbit out of a hat, I could. Yes, he said he'd like to see that if I could figure out how to.
RPG II allowed you to take the same data and output it as two different files, so if the school had two printers, I could write one program that would print the data in different formats to two different printers at the same time, yet the school only had the one printer. But I had become familiar with how the TI-990 accessed its printer and there were two ways. The most common way was the 'spool', essentially a method where things intended for the printer were written to the harddrive and then printed-up the next time the printer was free. But I knew you could also address the printer directly, which caused your program to wait until the printer was free, then run and directly use the printer until it was done. My solution for the Final was to have one output file go directly to the printer while the other one went to the spool. Thus the program waited until the printer was free, printed the full data to the printer directly while spooling the summary. Once the full listing was done, the spool noticed the printer was free and popped-out the summary print-out immediately afterward. The teacher was very impressed and gave me top marks!
Unfortunately I wasn't able to capitalize on this with a future computer class or job opportunity with him as my days at the College were rapidly coming to an unexpected end...




impatient? Paper, eBook
help me break even: Shop 

No comments:

Post a Comment