DEVELOPMENT OF "IFR FLIGHT SIMULATOR"

Ron Wanttaja

I'm a bit old-fashioned.  I was taught to be modest; to not brag
about my accomplishments.  I've posted a lot of my experiences
over the years to the aviation newsgroups, but in all but very
few cases, they've been along the lines of "Well, look what
stupid thing I've done now...."

If I'm going to tell the "IFR Flight Simulator" story, though, I
have to abandon my usual themes of ignorance, stupidity, and luck.
 Most of us have defining events of our lives, and there's no
question that "IFR" was one of the biggest ones in mine.  To tell
the whole story, to fully explain how things came about, I'll
have to grit my teeth and abandon modesty.  For once, I *did* do
something right.

As you'll see, though, one of my usual traits still shines
through:  Luck.  Luck in catching the home-computer frenzy early,
luck in making some decent decisions early-on, luck in finding a
decent, honest, company to market "IFR," and luck in making the
right friends.  Especially the friends.

I'll have to apologize for any gaps or VIC-20 faux-pas in the
following.  It's been a long time since I last fired up my VIC,
though I finally abandoned using Commodore computers only six
years ago.  I kept a scrapbook from the period, which helps. 
I've got all the hardware, even all the tapes.  But a subsequent
move has apparently buried my hard-copy of the code itself.  So
I'm going to have to resurrect some of the programming details
from rather faulty memory.

As I write this, I'm sitting in a comfortable armchair pounding
on a laptop computer about half the size of a Sears catalog.  A
CD player plays quietly in the background.  From the kitchen
comes a hum as the dishwasher flips through its programmed wash
cycle.  I can hear the the faint muttering of a TV upstairs, as
my wife watches QVC as she telecommutes using her Pentium-II PC.

It's hard to think back 17 years, to when I bought my computer. I
was just out of the Air Force, freshly married, working as a
junior engineer for one of the biggest aerospace companies in the
world.

Home PCs were all the rage.  It was 1982, and IBM was selling its
8086 machine for about $2,000..

Now, $2,000 for an IBM sounds like an OK deal today, but that was
a HECK of a lot of money in 1982.  It was about a tenth of what
my Lieutenant's pay had been at the time I'd left the Air Force.

Fortunately, a bunch of upstart companies were introducing
"Computers for the rest of us."  There was the Timex-Sinclair
1000, the Atari 400, the TI-99...and the Commodore VIC-20

I was facing some minor surgery that would lay me up for a couple
of weeks, and thought that it'd be a good time to get a computer
so I'd have something to fiddle with.

We lived on a hill overlooking a shopping complex, and there were
several computer stores there.  At one store, a very earnest,
*very* young man explained the virtues of the VIC-20 to me.  I
was completely computer-illiterate, but Dave Paulsen was able to
make it understandable.

The VIC had a full-size keyboard, a definite plus.  It used the
TV for a display device, showing 23 columns and 25 rows of rather
squat characters.  In addition to the full upper-and-lower case
character set (an advantage over some of its competitors) it also
had a bunch of characters shaped like triangles, etc. that could
be used to build shapes.  It had 3.5K of RAM.  To put things
better in proportion, that's 0.0035 Meg.

I paid my $300 for the computer and went home happy.  After a
couple of days I was back...it was getting too tiresome to have
to retype the programs in all the time, so I sprung $40 for the
Commodore "Datasette"; their storage device using standard
cassette tapes.  The Datasette was one of the drawbacks of the
VIC, as far as I was concerned...other companies' computers used
a conventional cassette recorder.

Anyway, I programmed happily away.  As a newlywed in a new job,
money was tight, so I didn't buy any games.  I wrote my own.  I
don't recall any particular details of these early games, except
for one.  It was the typical artillery game, where you entered in
the angle of the gun barrel, trying to range in on the target. 
Being a Hornblower fan, I set it up as a nautical game called "On
the Uproll."  The ballistics programming was easy; I spent most
of my time getting the character-graphics navy cannon to recoil
across the screen when it fired.....

IFR started as one of these games.  I've got an old flying buddy
who occasionally came to town with his wife to visit her parents.
Rick and I go waaaay back, and love to bicker about trivia.  We
automatically take opposite sides of every issue, just so we
could argue it back and forth.

Anyway, Rick and I had done a lot of electronic experimenting in
our high-school days.  On one of his visits, he mentioned he was
using a new transducer to build a digital airspeed indicator for
aircraft.

"G'wannnn," I told him.  "As I pilot, I want an analog needle so
that trends are more obvious.  Flickering numbers don't tell you
as much as a rapidly-falling needle."

We argued it back and forth, to the usual dismay of our wives. 
But it didn't end when Rick went back to Boise.  By God, I *knew*
I was right...and I would write a flight simulator program with a
digital airspeed readout to prove it to Rick, the next time he
came to town!

I knew displaying an outside view would be way beyond my
programming capabilities, and would probably slow the simulation
down to a crawl even if I *could* write one (the VIC had
something like a 0.5 Mhz clock speed).  The lack of an outside
view didn't bother me.  At that time, visual displays even on
REAL simulators were rare, and non-existent on the ATC-510s and
war-surplus Link Trainers that were all the simulation devices
General Aviation ever saw.

The first problem was how to display the aircraft's attitude.  I
needed an artificial horizon (AH), or the whole thing would be a
waste of time.

The ordinary character graphics were too clumsy...they weren't
set with the right charcters for all the conceivable positions an
AH would need.  Besides a one-character-wide AH was too small.

Fortunately, in reading some of the programming magazines, I
discovered how to "reprogram" character definitions to make the
character look however I wanted.  I could set up a 3x3 matrix of
characters for a bitmapped area for my AH.  I redefined several
other characters to surround the gauges to  look like instrument
frames.

But when I programmed the AH in BASIC...it was slow, horribly
slow.  That was just a subroutine to draw one instrument...how
slow would it get by the time everything was working?

I scanned though the VIC's Programmer's Reference Guide.  I had
always skipped over the machine-language programming section, but
looked at it with renewed interest.  I'd recently taken an off-
hours course at work on programming the 8080 processor, and
noticed how a lot of the 6502 codes looked similar.  On the
course I'd taken, we'd programmed EEPROMs by entering hex codes. 
Reading up on the VIC, it appeared I could POKE a decimal
equivalent into the VIC memory.  Reading the RAM map carefully
gave me the hints I'd needed as to where to put the machine
language code.

I still had the programming forms left over from the 8080 course.
The Programmer's Guide had the appropriate hex numbers for the
6502 operations.  I hadn't heard of assemblers or any sort of
aids that would let me just enter in the Op code itself.

Out of that ignorance, I ended up writing a simple hex-to-
decimal-to-POKE routine to program the machine language.  I wrote
the Op Code (INP, ROL, etc.) on the form, then wrote down the
proper hex value.  The program let me key in the hex, which it
would then convert to decimal and POKE into memory.  The program
also saved the resulting machine language program to the cassette
drive.

Fortunately, allocating memory to machine code wasn't a problem
anymore.  I'd spent $150 for a 16K memory expansion for the VIC. 
That's about $9,000/Meg, BTW.

The simple program I wrote to display the AH information worked
blazingly fast...but it had a problem.  I wasn't much of a
Machine Langauge programmer...I wasn't able to do more than a
"four-banger" calculator could do.  I couldn't come up with an
easy way to do Sines and Cosines, so I used a "cheat" routine to
compute the relative tilt of the AH based on the roll angle of
the aircraft.

Unfortunately, the "cheat" didn't have a 90-degree point.  It
worked up to about a 60-degree bank, but the line started
distorting past that.

But as I considered *why* I was writing the simulator, I realized
I didn't need it to be able to roll past 60 degrees.  Having the
BASIC program handle the control reversals involved with rolling
inverted, etc. slowed the program down just too much.

So I made the decison:  The flight model wouldn't allow rolling
to ninety degrees or flying inverted.  What to do about the AH,
though?  Older model AHs couldn't handle aerobatic maneuvers and
"spilled" if their limits were exceeded.  I merely put in a
subroutine into the AH machine code that changed the display to
"OFF" if roll or pitch limits were exceeded.

With that, it was time for the flight model.  I'd played around
with the early Microsoft Flight Simulator on a friend's IBM, and
there were a couple of things I didn't like about it.  First was
the keyboard interface.  As a pilot, I was offended.  If I had a
flight simulator, it was GOING to be joystick only.

Second...and probably most important...I didn't like the
"remoteness" of the control feel.  Too often, the airplane
operated contrarily to my actions the controls.  I'd flown a
variety of aircraft and simulators, right up to a KC-135
simulator at CAP camp.  I'd *never* had problems in basic control.
 So however else I worked the flight model, I would always have
it so that the airplane always responded the same way to the
joystick input (except for modes like stalls, of course).

Unfortunately, the VIC-20 used the Atari joysticks, which were
switch-type devices, not analogs.  Pulling the stick back
activated a switch, and no matter how hard or far you pulled back,
all that would happen is that that single switch would activate.

So control would be pretty simple.  Pulling back on the stick
would give one pitch rate, and one pitch rate only.  Actually, I
used the "fire" button on the stick as a rate doubler...pressing
"Fire" gave twice the rate of control.  But the pilot ALWAYS had
control.  Once in a roll or pitched up or down, the airplane
maintained that attitude until the pilot changed it or the
airplane stalled or crashed.

With this limitation, the fidelity of the flight model didn't
have to be too close.  There was no reason to write a complex,
interactive flight model when the only controls were the four
little switches.

I started with an airspeed model, with an airspeed "delta" being
defined by the throttle position, pitch position, flap setting,
and landing gear extension.  Each factor was multiplied by a
constant to set the relative impact of each factor.  Also include
was an airframe drag factor that varied by the current
airspeed...otherwise, the airspeed would just keep increasing
without limit.  The total "delta" was added to the current
airspeed to compute the new airspeed.

Altitude was handled similarly.  The altitude delta depended upon
the pitch angle multiplied by the airspeed, with flap position
causing some altitude drop as well.  An additional decrease in
altitude depended upon the amount of roll, too...that way, the
pilot needed to add some back pressure in a turn to maintain
altitude, just like a real airplane.

All of these delta factors were just simple math..though I may
have squared the airframe drag factor in the airspeed equation. 
From my earlier programming, I knew that complex math slowed down
the execution speed, so I kept the math as simple as I could.

The airspeed calculation looked good, the altitude calcuation
looked good, the AH was working, and the airspeed and altitude
readouts were simple PRINT statements.  Time to fly!

I started the program...and immediately the altitude dropped from
zero to negative numbers.  This started the second, probably most
frustrating part of programming a flight simulator:  Getting all
the subsidary rules to work right.

What had gone wrong?  Well, I had nothing in the program to
detect WHEN THE AIRPLANE WAS ON THE GROUND.  It just calculated
its new altitude, and the program didn't care if the altitude was
negative.

There were a lot of things like that that had to be caught and
accounted for.  Like I mentioned earlier, the program would
always change attitude based on pilot input on the simple four-
switch stick.  But, of course, it SHOULDN'T do it when the
airplane was sitting still on the ground!  And if the airplane is
rolling along at 25 MPH, moving the stick back should lift the
nose off the ground...but the effectiveness should be less than
when the plane is moving at 75 MPH, and moving the stick to
either side shouldn't cause the plane to bank.  If the plane is
banking at 45 degrees, moving the stick back shouldn't cause
pitch-up at the same rate as in level flight.

The computer, of course, didn't know it was simulating an
airplane.  All it knew was the programming I told it.  So I had
to set a number of flags, gimmick some of the basic flight
equations, and include IF-THEN statements to cover wide variety
of flight conditions.

With the basic laws set, it was time to tweek the flight-dynmanic
constants.  I wanted the airplane to fly like a common light
aircraft, so I diddled the constants to produce the proper rates
of climb and cruise speeds for the Cessna 172.

This was one of the more enjoyable aspects, since it involved
"test flying" the simulator.  Establish level flight, then drop
the flaps...how much should the airspeed sag, and how should the
altitude start dropping?  If it seemed too much or too little,
change the constant for that factor and try it again.

(It was necessary to have the altitude decrease with flaps
lowering...the pilot had to apply power and pitch up to maintain
altitude.  The plane thus ended in a nose-high pitch attitude in
level flight...just the sort of realistic effect I was looking
for.)

I got the flight dynamics working pretty good.  The only
unrealistic result is that the Best Rate of Climb speed came out
at about 90 MPH...a bit more than the actual 172RG.  Considering
the simplicity of the model, though, I was happy overall.

And wonder of wonders, Rick had been right.  Flying with the
digital airspeed and altitude displays wasn't much different than
using analog gauges.  I hadn't flown regularly since going into
the Air Force six years earlier.  I *really* enjoyed "test
flying" the simulator.

With the dynamics up to snuff, it came time for the REAL fun
programming:  Problem subroutines!

Something I didn't mention earlier is that I had some prior
flight simulator experience, in that I helped restore a WWII
model Link Trainer a few years' prior to IFR.  The Link is an
analog computer in vacuum (uses a vacuum system to "store"
altitude, has an vacuum manifold for the airspeed value, etc.  I
ended up using the Link Trainer systems as direct inspirations
for IFR.

Take stalls.  On the Link Trainer, a pendulum is held forward by
the airspeed vacuum manifold and the pitch positon.  If the
airspeed drops too low for the current pitch angle, the pendulum
drops back, leaking vacuum out of the altitude storage tank.  It
also triggers another pendulum, which drops left or right
depending upon rudder position and puts the Link into a spin.

I pulled the same sort of thing with IFR.  I wanted stalls to be
a BAD thing, not the gentle experience they often are.  So when
the airspeed dropped below the limit value (set by bank angle and
flap position), the nose dropped a LOT and the plane ALWAYS spun.
I didn't have rudder pedals, so had a random number generator
pick the spin direction if wings were level, or spun the opposite
direction from the bank if the plane was tilted.

Turbulence generation came almost directly from the Link.  The
link used vacuum bags to control the fuselage attitude.  A small
motor turned a set of cams, which could be cranked into close to
a set of keys like a piano.  When a cam hit a key, vacuum was
leaked from one of the bags.  In IFR's case, I generated a random
number and XORed it with the output from the joystick!  A
magazine mentioned the memory locations that set the display X
and Y positions, so when turbulence bumped the airplane, I had
the instrument panel jerk up/down/left/right as appropriate.

Other subroutines were fun.  Fly too fast and exceed Red Line? 
Do burst of white noise for a loud rushing noise from the speaker,
and have the airplane pitch down at 45 degrees, rocking the wings
as it plummeted into the ground.

Land gear up?  Shake the panel up and down with a scraping sound
from the speaker as the plane slides on its belly.

Crash into the ground or land with too much bank?  Change the
screen to RED with an explosion.

Land going too fast?  Have the pitch pop up as the plane bounces.

Land off the runway?  Increase the drag factor due to the mud,
and shake the screen as the plane taxis over rough ground.  Use
the random number generator to taxi the plane into a "Tree" on
occasion to discourage off-runway operations.

Other instruments were added.  I added a turn needle, basically
as a backup for if the AH spilled.  Fuel quantity was easy, and
fuel burn rate worked linearly with throttle position.  A VSI was
simple enough.

Once the flight model and the instruments were working, it was
time to actually fly the plane SOMEWHERE.  I drew up a map,
including four airports and a mountain range.  There ws a high
straight pass on one leg of the L-shaped range, and a lower Z-
shaped pass on the other leg.  I used an ordinary Sine/Cosine
calculation with the speed to determine the movement over the map,
and a simple machine language routine to determine the height of
the ground at any particular location.  Postion was given to the
pilot by a digital display of Latitude and Longitude at the
bottom of the screen.

Or at least, they were similar to Lat and Long.  The map itself
was initially 256 miles across (don'cha love 8-bit systems).  I
started by displaying the numbers as Lat and Longs...but soon
realized that 256 miles doesn't cause a real big difference in
lat and long (about 4 degrees total, in fact).  I didn't want to
be flying by noting the fourth decimal places, so I dropped the
total map scale down from 256 miles.  On my first flight betwen
the two farthest-apart runways, I soon realized that my actual
time in flight would approach *two hours*...most of which was the
droning along in flight that's the most boring part of flying. 
So I scaled the map down by a factor of ten.

One other item that came out of this was the addition of a
"pause" key.  I had deliberately not included one ("There ain't
no pause in a real airplane").  Then I got a phone call one day
while on a tight approach....

One other reach at realism worked out better.  I didn't like
having an "end flight" key that worked in the air, because, again,
you just can't quit flying when you want to.  But then I decided
to make it work in the air as well...but when you hit the "e" key
in flight, the words EJECT would flash on the screen....and the
instrument panel would shoot out the bottom of the display
accompanied by a loud WHOOOOSH!

But while I was adding all the heading and position calculations
and the tests to determine when to enter the special subroutines,
bad things were happening to the flyability of the aircraft.  It
was taking over a second to cycle through all the
calculations...which meant that the joystick postion was only
being read once a second, and thus the aircraft attitude would
only be updated at the same rate.  This gave an incredibly
ponderous control feel..and it tooks something like ten second to
roll 45 degrees.

The solution was simple:  I just called the stick-reading and
attitude-display subroutine *four* times instead of once during
the full cycle of the calculations and subroutines.  While it
didn't affect the calculations, this quadrupled the apparent
control rate.  The instruments updated once a second as before,
but at least the airplane seemed a lot more nimble.

I eventually had the program working pretty well.  I'd developed
the Saturday habit of stopping by the store where I'd bought the
VIC, and I'd enjoyed chatting with David, who'd sold me my
computer.  One Saturday I brought by a tape with the working
version of IFR.  We loaded up the program, and I let him fly
around for a while.

"Y'know," said David.  "You could probably sell this."

I was a bit stunned.  I wasn't that familiar with the games on
the market for the VIC; I had enjoyed just writing my own.

But it sure sounded good.  While we were better-off than many
newlyweds, we certainly didn't feel that comfortable, financially.
 My wife was going to school full-time, with only a part-time job
on Saturdays.  "It'd be nice to make enough money back to pay for
the computer," she said.  "And a new convertible top for the VW,"
I dreamed.

So, what the heck.  I wasn't sure how, exactly, to keep myself
from getting ripped off.  I called around and got the forms to
apply for a copyright.  Scanning through the ads in the computer
magazines yielded the names of about six companies whose product
ads also invited submissions of new programs.  I filed the
copyright report, and sent a query letter off to the companies.. 
"I have written a program for the VIC-20 in which you might be
interested.  IFR is a realistic simulation of instrument
flight...."  To show I was at least SOMEWHAT cagy, I included a
comment as to how I'd already filed for a copyright.

Most of companies responded favorably, willing to examine the
program.  A couple of them made me a bit skittish.  The one from
Academy Software impressed me the most:  It was professional, it
mentioned that I didn't have to wait to get the copyright
verification back before I was protected (very true), and
included a signed non-disclosure agreement.

I sent the program in to them, and they loved it.  They called,
offering me a 15% royalty on sales.

At the time, I'd had absolutely no experience in any sort of
royalty sales.  I went to take to David at the computer store. 
He allowed it sounded fairly good, except for the lack of an
advance on royalties.  But we knew software sales were iffy at
best, so that was no big drawback.

This being the usual Saturday mill-around at the computer store,
there were a number of other fellow computer geeks around.  "Man,
why give THEM all the gravy," said one.  "Publish it yourself!"

I didn't really consider that option.  There were a number of
self-published programs at the store...tapes in plastic bags,
with mimeographed instructions and cheesy-looking art.  I felt
that a publisher that could afford to advertise in COMPUTE!
probably had pretty good marketing and distribution.  Besides, I
just didn't want the hassle of doing it all myself.

So I signed, in March 1983.  They came back with a set of desired
changes, most of which I felt were pretty reasonable.

One, though, rather threw me.  I'd written the program on my VIC,
which, with the 16K memory expansion added to the 3.5K internal,
had a total memory of 19.5K.  I knew most folks wouldn't have
that pricy expansion, so I'd written it to run within the 11.5K
that an 8K RAM cartridge would give.

Academy wanted to shorten it further...so that it'd fit on an 8K
ROM chip.  "If we limit it to folks who have memory cartridges,
we'll cut down on sales," said Academy's Bob Weidner.  "We'd have
to bring it out on both tape and disk, too."

In any case, the thought that IFR would come out as a cartridge
really pumped me up.  I quickly cut the required 4K out of the
program, mostly by elminating the detailed crash modes and the
ejection seat.  But as I kept looking at the program, I found
unneeded and duplicated code.  I quickly trimmed enough that I
was able to replace the deleted features.

All I had for a storage device was the cassette drive, and
Academy quickly got tired of having to load in tapes.  They
sprung me a $200 advance so that I could buy a disk drive for my
VIC.  The reality of having a big 180k storage device was a minor
consideration, next to NOT having to take five minutes to read
the program from a cassette tape.

We needed an instruction manual, too.  I didn't have a printer
for my VIC (or for that matter, any sort of word processor) so I
went to my friends Judy and Bo Stringer's place and used their
IBM.  I learned Wordstar as I went, ending up with about twenty
pages.  I drew the maps by hand, which Academy redrew in decent
format.

Versions went back and forth as bugs were eliminated.   Finally,
in July, I received the first FEDEX package of my life:  An IFR
cartridge, and a sample of the cover art to go with the
insructions.  I opened the package and just started laughing: 
The cover art was PERFECT!  A head-on, wide-angle view of a
Cessna landing in the raid, with a narrow mountain pass in the
background and the inset of a sweaty hand on a joystick in front
of the IFR panel.

A real joy it was, too, when I plugged the cartridge into my VIC.
Power switch on, and there it was... "IFR (FLIGHT SIMULATOR) By
Ron Wanttaja."  No loading, no waiting.  Just like an Atari game.

Right about the same time, an advertisement in the Seattle Times
newspaper caught my eye.  Compufair, the first-ever citywide
computer fair aimed at general users, was being held in the
Seattle Center Exhibition Hall (a leftover from the 1962 World's
Fair) in September 1983.  As part of the program, they were
having a contest... for "Individual innovators or anyone else
with a bright new idea in computing."  Seven finalists would be
picked for the "Cloud Nine Idea" contest, and all would receive
free display booths at Compufair.  The winner would receive
$1000!

I put in an entry, and on August 30th, received notice that I was
a finalist.  I would get a free booth, a table, and a couple of
chairs...everything else was up to me.  I had two weeks to put it
all together.

Academy was thrilled...except the production plans for the IFR
cartridge would make it JUST miss the show date.  Instead, they
printed up advertising sheets with coupons for $10 off the mail-
order price of $40.

Now, how can I spiff up the booth?  Judy Stringer volunteered to
sew up fluffy clouds for the backdrop.  I had a 727 pilot seat
I'd bought from Boeing Surplus and a B-50 autopilot joystick that
I'd bolted to it (I'd built an A-D converter to allow it to work
with the VIC).  I bought some particle board and cut out a 1/4
scale Cessna rudder, covered it in white contact paper, then put
"IFR" slanting down the tail just like Boeing put the model
numbers on its new jetliners.

Somehow we were ready by the weekend of the show.  Bo and Judy
hauled our TV, the pilot chair, and the rest of the gear down to
the Center on Thursday.  Friday morning the show started.

I damn near talked myself hoarse.  I usually had a pretty good
crowd.  A lot of pilots came by, and several of them managed to
take off, fly to the other airport, and fly a successful
instrument approach.  Many wanted to buy the program, and were a
bit disappointed when all I had were order sheets.

I still remember one older man.  His arms were loaded with
purchases, and he was being followed by his wife, who had a
suffering expression.  He saw my booth, and his eyes positively
lit up.  He almost ran over to try his luck flying the program. 
Turns out he was an airline pilot.

The local CBS affiliate even did a live report from the fair for
their noon news show...with me sitting in the pilot chair, flying
IFR, while the reporter interviewed me on the air.

Sunday noon came the announcement of the winner.  It wasn't
me...but the winner had a cool teaching program that he needed
money to bring market, so it was a good choice.  I'd given alway
all my discount certificates, and turned down about a half-dozen
offers to buy the 727 seat....

So there was my moment in the limelight...fun while it lasted.  I
took Bo and Judy and David out for dinner that Sunday night,
after we took down the display.

Back at my engineering job on Monday, it was like Cinderella back
scrubbing the hearth.  The ball was over...or so I thought.

I got a call from Bob at Academy in the middle of the week.  "We
just got a massive order from Toys-R-Us.  Your royalty on that
sale comes to eighteen thousand dollars."

I was absolutely, totally stunned.  That was a signficant
percentage of my salary at that time.

I couldn't stay at work. I went home, and called my wife's school.
 I'm sure she (and everyone else) thought there was some sort of
dire emergency.  Everyone else probably STILL thought so when I
told her the news...she screamed, long and loud.

We went out to eat that night, too.

As the VIC version of IFR wrapped up a couple of months earlier,
Academy asked me to do a Commodore 64 conversion, and I was right
in the middle of THAT project.  The Toy-R-Us order included
orders for the C-64 version, so we had to get it competed and
published in time to get it in the stores before the Christmas
rush.

The C-64 version was about the same as the VIC, with the addition
of twin fuel tanks and a DME.  Everything else worked the same. 
The 6502 machine code worked the same on the 6510, with some
minor changes necessary.

We made it, with a month to spare.  I had been haunting the local
Toy-R-Us, and it was another big thrill to see the red boxes on
the shelves, proclaiming "IFR FLIGHT SIMULATOR by Ron Wanttaja." 
The chain started advertising for Christmas..and there was IFR,
in the ads.  Academy printed up posters, which Toys-R-Us
displayed in their computer area.  Academy added IFR to their
full-page ads in the computer magazines.

One hell of a feeling.

The reviews started coming out.  They all seemed to take the
"There I was" approach... "Ceiling is 200 feet in light rain...."
The reviews extolled the play and interface of the game, with the
only negatives referring to the rather crude depiction of the
panel.  A fair hit.

Academy passed on a few fan letters, too.  One was written on
stationery from the Hotel Lexington in New York, from a 747 pilot
who just loved the program. I got letters from happy mothers,
telling me how their kids had developed an interesting in
aviation science from playing with my program.  Once letter was
from the "Institute of Social Sciences" in The Hague, with some
small suggesions but a closing comment calling it the "Best
simulation I have yet seen."   Some letters expresed admiration
at how well the airplane model worked, others asked about how
some of the little tricks were done.

Not every one was positive, of course.  One writer stated his
opinion clearly and distinctly:  "It stinks!"  He didn't like the
lack of an outside view...again, a fair hit.

All this trickled in during 1984, the first full year of release.
Personally, I was waiting for my first royalty check.  The
contract specified the delay between sales and royalties, so I
knew the first one of my quarterly payments would come out about
mid-August.

Good timing, really.  I was turning 30 that month, with the
visions of over-the-hilldom dancing through my head.  I was
looking for a nice check to make it seem like I'd accomplished
something with my life.

It did.  It was a tad over $25,000....more than my yearly salary.
I had driven home from work to open the envelope when my wife
said it had arrived.  I drove back to work laughing maniacally
all the way.  I deposited the check, keeping out $500, which I
gave to my wife for a shopping spree.

The next quarterly payment came in mid-November.  It, too was
over $25,000.

We opened up an interest-bearing checking account to deposit this
windfall.  We nicknamed the checkbook, "Bottomless."

Our friends Bo and Judy took a trip, and I picked them up at the
airport.  On the way home, I said, "Hey, there's an interesting
airplane at that little airstrip near your place.  Let me show
you."

We drove onto the ramp and stopped in front of a Cessna 150. 
"What do you think?"

They looked on silently for a moment.  "What's so interesting
about it?"

"I bought it, yesterday."  After thirty years of dreaming, I
finally owned my own airplane.

Fortunately, my wife and I have simple tastes.  We didn't go
crazy buying sports cars, stereos, or trips to Europe on the
Concorde.  Other than the airplane, there was only one major
expense:  We finally had the down payment to buy our own home.

Oddly enough, though, the VW never *did* get a new top.

We had some taxes to worry about, though.  One of the secretaries
at work had a daughter who'd just started a tax company, so we
worked with her.  Income Averaging was still allowed, so the big
windfall of that year was softened by my lower salaries in years
past (including the last year or two I was in the Air Force). 
Still, my engineering salary that year all went to pay the tax
bill.

That second $25,000 royalty was the peak, though.  Sublogic had
finally come out with their flight simulator for the Commodore 64.
 It was slow and clunky in operation, but it did have that all-
important outside view people wanted.

Royalties for the second year were about a third of the first
year, and subsequent years showed similar drops.  Commodore came
out with a new set of computers, the Commodore 16 and PLUS/4, and,
per Academy's request, I ported IFR to those platforms.  Due to
the rarity of joysticks for these computers, I had to break down
an allow optional keyboard control.  It was mostly for naught,
thougy, as the computers flopped in the US,  Pretty soon my
annual royalties dropped to below $1,000.

Other things were happening in my life, though.  In 1985, my
airplane suffered an engine failure due to bad gasoline.  I
managed to nurse the glide to a safe landing at my home field,
then wrote up a report of the incident for the Usenet newsgroup
net.aviation.  Response was positive, and I decided to work on
the tale a bit and submit it to FLYING magazine.  They bought it,
my first sale as a freelance writer.

I eventually sold the Cessna and joined a local Flying Club
flying a small homebuilt open-cockit airplane called a "Fly
Baby."  I submitted an article to PRIVATE PILOT magazine about
the airplane...but the editor of a sister magazine intercepted
the article, and felt it worked far better in HIS magazine: 
KITPLANES.  He called me and invited me to send him lots more
articles...just the thing a freelancer dreams of.

His name was familiar, though.  Eventually, I looked in my
scrapbook.  He had written a report on flight simulators for an
aviation magazine back in 1986.  He had panned IFR.

I kidded him about it, but he kept buying my articles.  Within a
year, a book publisher had talked to him about writing a book on
building homebuilt airplanes. He didn't have the time to do
it...but told them to contact me.  TAB Books sent me a letter
inviting me to write a such book for them.  The book turned out
to be 100,000 words long, and was written on the Commodore 128
left over from my IFR days.

KITPLANE CONSTRUCTION was published in 1991.  The first edition
came out in five printings, with the second edition published in
1996.  The book even won a journalism award.

Back in 1986, I started working on a novel about a young boy in
the US Navy during the War of 1812.  Working title for the book: 
ON THE UPROLL, the same name I'd used for that cannon-firing game
I'd orginally written for the VIC.  Not quite as much success on
that; I sent it to publisher after publisher. The name eventually
morphed to THE KEY TO HONOR.

Fast-forward back to 1994.  I was facing the big 4-0.  Like my
30th birthday, I needed a bit of perking up.  It came late, but
it came:  Two months after my birthday, a publisher
enthusiastically bought THE KEY TO HONOR and asked if I could
make a series of it.  The first sequel, THE PRICE OF COMMAND,
came out last year.  I'll start the next book, A DASH OF DARING,
right about when I finish writing up this report.

All through this, I kept working at my aerospace job.  I had
tried to write new programs after the fade of IFR back in the mid
'80s, but the competition was no longer individual hackers like
myself.  Games were built by teams now; able to merge multiple
talents together and crank out high-quality products a lot
quicker.  I was lucky IFR had come out when it did.

"Lucky," of course, sums things up pretty well.  I was never so
much a good programmer as a lucky one...I hit the market with the
right product at the right time.  I'm lucky at the variety of
decisions resulted in just the right combination of accuracy and
playability.  I'm lucky in my wife, who tolerated the distraction
and lack of attention that development of the program engendered
(and who proudly wore the "Computer Widow" T-Shirt I bought her).
I'm lucky in my choice of Academy, with them turning out to be
100% honest and upfront.  I'm especially lucky in my friends,
from Rick Reierson to David Paulsen to Bo and Judy Stringer and a
host of others who helped.

Thanks, guys.  It was a heck of a ride while it lasted....

Ron Wanttaja (ron@wanttaja.com) March 29, 1999
http://www.wanttaja.com/

1