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...
No comments:
Post a Comment