From Burn-Out to Born Again
Witold Urbanowicz
'Twas the week before Christmas and all through the house ...You get the picture. I had just come in from walking the dog. It was late and, more important, the house was quiet. The rest of the family was tucked away for the night. So was the Atari 800.
There it sat neatly stacked on the living room shelf. Next to the cassette player lay operating manuals along with little boxes labelled Bio-Rhythms and Star Raiders.
Vacationing friends had kindly consented--after a few subtle hints from my nine-year old son--to leave their personal computer in our care. So for the past week, our living room had been an extraterrestrial battle-zone. The walls echoed with the sounds of hyper-space thrusters, photon-lasers and thermonuclear explosions. My wife and I kept our distance. She could not stand the noise and the violence. For me, there were other reasons.
I had spent the better part of my early adult life programming, analyzing, and trouble-shooting commercial computer systems. As I looked at the compact console sitting there on the shelf, my mind went back about ten years.
I could still remember being ushered through a door into a room about the size of a basketball court. It was like walking into the future. Inside this air conditioned, climate controlled world sat the company's four computer systems, along with their respective disk drives, tape drives, printers, and various other peripherals.
I was led past rows of lights flashing on main frame panels. Long lines of tape drives danced back and forth. Disk packs whirled secretively inside their stacked enclosures. Printers spewed out reports by the truckload. Adrenalin began racing through my own system at a speed, I was certain, approaching that of the computers themselves.
Each of the four computer systems had a nickname. "Poppa Bear I" and "Poppa Bear II" were twin systems with individual core capacities in the megabyte range. These were used to run the major financial systems of the corporation. "Momma Bear", weighing in at 512K, was devoted to teleprocessing. It communicated with computers across the country. "Baby Bear", a little 48K three-partition machine was used nights for the smaller systems, but during the day was dedicated to the programming and systems people for compilations and testing. "Baby Bear" was to be my own personal computer for the next few years.
As the years passed, the software became more complex, requiring more and more core as well as faster and faster processing speeds. My skills and responsibilities were naturally upgraded to keep up with the larger and more complex applications. As deadlines became more critical and the problems more intricate, the pace became absolutely frantic. Murphy's Law reigned supreme.
"Baby Bear" became a dim memory and my family life was in danger of becoming the same. By now it had become a frequent occurrence for me to work months on end at all hours in order to bring a project in on time. For the most part, the results of this effort--the bottom line--were meant for someone I would never meet in a city I would never see.
Several times after the project had been completed, I asked whether it was serving the intended users well, only to discover that the project had been scrapped or that the reports were piling up somewhere in a storeroom in unopened boxes.
About the third or fourth time this happened, I was sitting in the computer room at five in the morning. I had gone about 72 hours without sleep. It had been months since I had seen the kids. I felt as gray and flat as the tile floor beneath my feet. It was then that I decided to leave the field.
When I left, I never wanted to see another computer in my life. Any thrill or satisfaction I may have felt in the early part of my career had not just disappeared. It had been slowly ground out of me.
All these thoughts and images ran through my mind in a matter of nano seconds that evening as I stared at the Atari on the shelf. It seemed to be waiting for me. I wondered if I had put enough distance between myself and the past. After all I had been out of the business for several years. How could it hurt to sit down for a few minutes to see what the little fellow could do?
In less time than you can say Beginners All Purpose Symbolic Instruction Code, I had the Atari off the shelf and ready to go. Although I had never programmed in Basic before, there was enough of a logical similarity to other high level languages that with a little prompting from the Basic manual I was off and running.
Over the next few evenings, I reintroduced myself to the world of IFs, THENs, GOTOs, strings, subscripts and various other programming concepts. The feeling was definitely odd. It was like meeting old friends I had not seen in years. They had not changed one bit--for better or for worse. Some, like the nested IFs, still caused me no small amount of trouble whenever I took them for granted. Others, as in the case of the GOTO, were still as straightforward as ever.
Then suddenly, about two nights before Christmas as I worked my way through Sound and Graphics, it hit me. Without even realizing it, I was having fun. It was like the old days when I had worked with "Baby Bear" at my first job. But there was a significant difference. The room I sat in was my own. The light by which I worked was soft. The colors and fabrics in the room were part of a human environment. I did not have to fight anyone to get computer time. I was a person enjoying a personal experience.
Now it was time to put together what I had learned the past few evenings. What better way was there than to write a program. The question was, what to write? The answer came quickly. With Christmas not two days away, what better project could there be than to create a present for the children--a small electronic game they could play.
After a bit of thought, I set down some basic specifications. The program would have to be relatively straightforward and short. I didn't have that much time. Plus I was still quite rusty. However, I wanted something that would pose an appropriate challenge to my skills. Finally it also had to be something the children would find entertaining as well as challenging.
I finally decided on an electronic version of the old Shell Game. Working into the early hours of the morning, I was able to finish the initial logic for the game, leaving the testing for the following night.
And so the proverbial Night Before Christmas found St. Nick at his Atari testing a last minute present for the big day. Time flew, and soon the morning light seeped into the living room to announce the arrival of the children as they made their way to the tree and the presents which lay beneath. They were somewhat surprised to find me up at that hour.
"What are you doing?" they asked.
"You'll see," I managed to reply.
Paper ripped and the camera clicked. In less than an hour the booty lay displayed. My daughter modeled her clothes while my son hooped and beeped his way to electronic heaven with his new hand-held game.
Several hours later, my daughter remembered seeing me when she had first awakened. Leading the kids to the living room, I told them to turn on the computer. This they did and sat down to play. I watched as their faces lit up while trying to follow the shells being moved around on the screen. I followed the squeals of delight when they guessed which shell the pea was under and groaned along with them when their guesses were wrong. Finally my daughter turned to me.
"Daddy, you did this?" she asked.
I nodded.
"Really?" my son added.
All I could do was beam.
Seeing the "bottom line" in my children's faces, I forgot about the hours of frustration the night before while debugging the program. The thrill and satisfaction I had felt years ago when I first worked with "Baby Bear" had returned. Unfortunately, so did the neighbors.
I was actually sad to see the Atari go. Still, I had been given a second chance to look into the future and found once more that it was good.
Listing 1.
S DIM A$(1) 7 DIM B$(1) 10 MOVE 100:MVA=1:MV2=2:MV3=3:MV4=4 20 MV5=5:PH=0:P1=1:P2=2:P3=3 30 X10=10:X15=15:X20=20:POS1=1 40 NEG1=-1:NXTMOV=600:RNDMOV=800 45 SETUP=900 50 FRTY=40:FIFTY=50 60 Y=10:Z=Y:SV2=2 80 X40=40:X60=60:X80=80 85 ZERO=0:MV10=10 90 GRAPHICS 3 92 COLOR 2 94 SETCOLOR 4,9,2 96 GOTO 300 100 FOR M=MVA TO MVB 110 COLOR 2 120 PLOT X,Y 130 PLOT W,Z 140 FOR S=SVA TO SVB:NEXT S 150 COLOR 4 160 PLOT X,Y 170 PLOT W,Z 180 X=X+XV:Y=Y+YV 190 W=W+WV:Z=Z+ZV 200 NEXT M 205 COLOR 2 210 PLOT X,Y 220 PLOT W,Z 230 RETURN 300 REM * * * MAINLINE * * * 400 GRAPHICS 7 405 COLOR 1 410 SETCOLOR 4,9,2 415 PLOT 61,39:DRAWTO 62,39 420 PLOT 61,38:DRAWTO 62,38 425 Y=38 427 RNDH=ZERO 430 FOR M=MVA TO MV4 435 COLOR 2 440 PLOT X40,Y:DRAWTO X40+3,Y 445 PLOT X60,Y:DRAWTO X60+3,Y 450 PLOT X80,Y:DRANTO X80+3,Y 455 Y=Y+1 460 NEXT M 465 PRINT "READY?" 470 INPUT A$ 475 IF A$<>"Y" THEN 465 480 P1=4:P2=1:P3=4 485 FOR M=MVA TO MV4 490 COLOR 2 500 PLOT X40,Y:DRAWTO X40+3,Y 505 PLOT X60,Y:DRAWTO X60+3,Y 510 PLOT X80,Y:DRAWTO X80+3,Y 515 FOR S=SVA TO FIFTY:NEXT S 520 COLOR 4 525 PLOT X40,Y-4:DRAWTO X40+3,Y-4 530 PLOT X60,Y-4:DRAWTO X60+3,Y-4 535 PLOT X80,Y-4:DRAWTO X80+3,Y-4 540 Y=Y+POS1 545 NEXT N 560 GRAPHICS 3 570 COLOR 3 575 SETCOLOR 4,9,2 580 Y=X10:Z=Y 585 PLOT X10,Y 590 PLOT X15,Y 592 PLOT X20,Y 595 NXTCNT=X15 600 NXTCNT=NXTCNT-POS1 605 SVB=SVB-CH 610 IF NXTCNT=ZERO THEN 650 620 RNDMOV=((INT(3*RND(1))*10)+800 622 IF RNDH=RNDMOV THEN 620 624 RNDH=RNDMOV 630 GOTO RNDMOV 650 GRAPHICS 7 652 COLOR 2 654 SETCOLOR 4,9,2 656 Y=X20+X20:XA=Y:XB=Y+X20:XC=Y+Y 660 WA=XA+3:WB=XB+3:WC=XC+3 670 FOR M=MVA TO MV4 672 COLOR 2 674 PLOT XA,Y:DRAWTO WA,Y 674 PLOT XB,Y:DRAWTO WB,Y 674 PLOT XC,Y:DRAWTO WC,Y 679 Y=Y-POS1 680 NEXT M 685 PRINT "PICK A SHELL - A,B,C" 687 INPUT A$ 690 Y=36:Z=Y 692 IF A$="A" THEN 700 694 IF A$="B" THEN 710 696 IF A$="C" THEN 720 698 GOTO 685 700 C=P1:X=X40:W=X+3 705 GOTO 725 710 C=P2:X=X60:W=X+3 715 GOTO 725 720 C=P3:X=X80:W=X+3 725 FOR M=MVA TO MV2 730 COLOR 2 73? PLOT X,Y:DRAWTO X,Z 734 FOR S=SVA TO FRTY:NEXT S 736 COLOR 4 738 PLOT X,Y+4:DRAWTO W,Z+4 740 COLOR C 744 PLOT X+1,Y+4:DRAWTO X+2,Z+4 746 Y=Y-POS1:Z=Y 748 NEXT M 750 FOR M=MVA TO MV2 752 COLOR 2 754 PLOT X,Y:DRAWTO W,Z 756 FOR S=SVA TO FRTY:NEXT S 757 COLOR 4 758 PLOT X,Y+4:DRAWTO W,Z+4 760 Y=Y-POS1:Z=Y 762 NEXT M 775 IF C=POS1 THEN 790 780 PRINT "PICK ANOTHER" 785 GOTO 687 790 PRINT "GOOD EYES !" 792 PRINT "READY FOR A CHALLENGE ?" 793 PRINT "ENTER 1 OR 5 OR 10 OR 20" 794 INPUT CH:CH=MV2*CH 795 GOTO 300 800 X=X10:W=X2O:MV=MV10 803 PH=P1:P1=P3:P3=PH 805 GOTO SETUP 810 X=X10:W=X15:MV=MV5 813 PH=P1:P1=P2:P2=PH 815 GOTO SETUP 820 X=X15:W=X20:MV=MV5 823 PH=P2:P2=P3:P3=PH 825 GOTO SETUP 900 XV=ZERO:YV=POS1 905 WV=ZERO:ZV=NEG1 910 MVB=MV3 915 GOSUB MOVE 920 XV=NEG1:YV=ZERO 925 WV=NEG1:ZV=ZERO 930 MVB=MV 935 GOSUB MOVE 940 XV=ZERO:YV=NEG1 945 WV=ZERO:ZV=POS1 950 MVB=MV3 955 GOSUB MOVE 960 GOTO NXTMOV
Witold Urbanowicz, 135 Eastern Parkway, Brooklyn, NY 12238.
Table of Contents
Previous Section: Original Adventure in 32K
Next Section: Speedread +