General
History of Jeff's Emulators
Return to the
Vavasour family web site : Jeff's home page : Jeff's
emulation page
JEFF MEET COMPUTER, COMPUTER MEET JEFF
I was introduced to computers with our family's purchase of a Tandy/Radio Shack TRS-80 Model I back in 1977. I was hooked. I tore through the Level I BASIC manual and was soon rendering images of my favourite sci-fi ships in 128x48 1-bit-depth (i.e. black and white) glory. Soon we'd upgraded to Level II, 48K with two 5 1/4" floppy disk drives (storing 100K per floppy -- they were 3rd-party Percom drives which stored a whole 12.5K more than Radio Shack's own). In 1980, I borrowed my father's TRS-80 Assembly Language Programming book and took the plunge into assembly. (This lead to one of my first -- but far from my last -- moments of pure frustration. After assembling my first program, the computer insisted that the file didn't exist when I tried to run it. Seems I forgot about that pesky /CMD that had to end the file name -- which is equivalent to .EXE for you PC folk.)
Over the years I honed my programming skills and did some freelance software development: databases for video and commercial rental companies (an opportunity my father passed on to me), high school management software, TRS-80-to-PC transfer utilities, etc. Through this work, I earned enough to buy a computer of my very own: a Tandy 1000. I'd kept up on the assembly programming on the TRS-80 and tinkered with it somewhat on the PCs available to me, writing an entire program using MS-DOS's DEBUG. (That was pretty tedious with absolute addresses and no symbols, particularly when I wanted to insert more code in the middle of something I'd already written.)
LONGING FOR THE GOOD OLE DAYS
I soon found that, on the PC, I missed the "to the metal" experience I had with the TRS-80. I knew the TRS-80 inside out and decided I wanted to get to the same level on a PC. I got every technical book I could get my hands on. But, what to program? First, it was a graphics editor. I was jealous of the drawing programs on the Amiga and wanted the same functionality on the Tandy 1000. It was not much better than Windows' Paint by modern standards, but I was pleased with the outcome at the time.
Still, I was nostalgic for my TRS-80 days. Over Christmas break in 1989, I was idly browsing through some old issues of 80 Micro (the quintessential TRS-80 magazine) and came upon a June 1983 article called "Apple Core". The intention intrigued me: the article claimed that this program would read 6502 machine code, and, one instruction at a time, perform the equivalent operation in the TRS-80's Z-80 processor. (The 6502 is the core CPU of the TRS-80's chief competitor, the Apple II, hence the name.) The program didn't actually run Apple software. It didn't simulate the keyboard or screen or anything so complicated. Still, it was the inspiration I needed. I felt I knew the Z-80 well and the keyboard and graphics were done simply enough in the TRS-80. I resolved to write an emulator for my Tandy 1000 which would run TRS-80 software.
I'd already written a TRS-80-to-PC transfer program, so getting the ROM and TRS-80 programs over to my PC was simple enough. After three nights' effort I'd finished the rudamentary structure and managed to get the program to assemble. The first execution of the emulator wasn't as spectacular as it might've been. The TRS-80 Model I, Level II powers up with the question "MEMORY SIZE?" My emulator powered up with the prompt "MMMMMMMMMMMMM..." Still, this was enough to encourage me and by the end of the week I had an emulator that could even boot NEWDOS/80, albeit slowly. (A Tandy 1000 was a 7MHz computer.)
It wasn't until I got a 20MHz Tandy 2810HD 286 notebook that I really revisited the emulator seriously. The notebook was fast enough to run the emulator reasonably, and I was soon moving to Vancouver to start grad school, so wouldn't have access to the family TRS-80 anymore. I did some bug fixes and posted to the Usenet newsgroup comp.sys.tandy to see if there'd be any interest. I got two responses: Terry Stewart from New Zealand and George Phillips coincidentally from Vancouver. Terry encouraged me to make the emulator more user-friendly (it needed it) and release it as shareware. I did, and the evolution of that product is what you see here.
Incidentally, George had worked on a no-disk TRS-80 Model III Emulator (available from Ira Goldklang's TRS-80 Revived Page). We kept in touch, compared notes, and eventually when I started working with Digital Eclipse Software, Inc. George and his brother Peter did some emulation and programming contract work with us for a couple years.
THE POSSIBILITIES OPEN UP
The thing I really missed in our family's TRS-80 Model I was real graphics. I wanted colour and I wanted high resolution (or at least a programmable character set). When the TRS-80 Colour Computer came out, I wanted one. But, they were expensive and our still-young TRS-80 Model I -- peripherals and all -- had become quite an investment. In 1993, I realised I now could fulfill that desire and build my own TRS-80 CoCo in emulation. Well, actually, the first step was buying a real TRS-80 CoCo at an antique(!) store for $20.
Why emulate a computer when you owned it? For the fun and challenge of it. Plus, if it worked there'd be no digging out and setting up clunky equipment in my small university residence. Three computers could live happily inside one notebook.
A fellow grad student, Lori Paniak, was also a CoCo enthusiast and leant me the technical manuals he'd still owned. I was on my way. The Usenet newsgroup bit.listserv.coco was also tremendously supportive. On the advice of some enthusiasts there and with their assistance, I upgraded my plans and set about emulating the backward-compatible CoCo 2 instead of the original model. The result, like the Model I Emulator before it, was distributed to the Internet community via the SimTel Archives.
(Incidentally, my Timex/Sinclair 1000 Emulator came about after Lori said that my TRS-80 Model I Emulator was the most ridiculous piece of software he'd ever seen. I took that as a challenge.)
NEXT UP...
What other computers had I missed out on? The TRS-80 Model III (successor to the Model I, not the Colour Computer) ought to be emulated, I thought. I decided to see if there was interest from surviving TRS-80 software companies in marketing such a product. Roy Soltoff of Microsys linked me up with Stan Slater of Computer News 80. Stan said there might indeed be interest if it also supported the more-advanced TRS-80 Model 4. (To me the Model 4 had been more of a business "power-house" so I hadn't thought about it much.) Calling around, I located an abandoned Model 4 at a Radio Shack repair centre, an hour away by bus. I simply paid the repair bill and it was mine. The repair centre had one technical manual and no photocopier, so I sat there for the better part of an hour hand-copying the details I needed to get to work.
Incidentally, optimisation became my goal for my Model III/4 Emulator. I rewrote its Z-80 core with the result being 3x faster than my earlier Model I effort. (The menu system, on the other hand, was borrowed from my CoCo 2 Emulator, albeit without the colour.)
FAME, AT LAST!
Some amazing things started happening as a result of my effort. Two entirely different groups found out about my CoCo 2 Emulator, and the consequences would be significant to myself and my career.
First, Rick Cooper, owner of Rick's Computer Enterprises and editor of CoCo Friends Disk Magazine, apparently found out about my project and decided to start a "bounty fund". (No, they weren't gunning for my head.) CFDM was a still-thriving association of CoCo enthusiasts whose machine of choice was the CoCo 3. The CFDM community was an extraordinary one. Rick's goal was to raise $1000 in donations which he would then turn over to me if I completed a CoCo 3 Emulator within a year. I love challenges, and grad school gave me the flexible time I needed. They had their emulator within a couple months. Meanwhile, Rick had raised funds so much in excess of his original goal that I was invited for an all-expenses-paid trip to CFDM's headquarters in Kentucky to attend a CoCo enthusiast convention dubbed "Rick's Picnic".
But Rick wasn't the only one that had taken notice. Digital Eclipse Software Inc. was a MacIntosh productivity software company. They'd also ventured into games. Specifically, they'd developed the first commercial video game emulations: the classic arcade video games Joust, Defender, and Robotron could be played faithfully on your '020 Mac back in 1994. (Incidentally, this was nearly two years before any arcade video game emulation had turned up on the Internet, and was back when Microsoft Arcade had also first come out on the Mac.)
Seems that these arcade games used the exact same processor as the TRS-80 CoCos -- a Motorola 6809 CPU -- and Digital Eclipse was looking for someone to program the PC version of their successful Mac game emulations. Out of the blue in November of 1994 I received a phone call from Andrew Ayre, President of Digital Eclipse in Emeryville, California. (By one of those extraordinary coincidences, though neither of us knew it at the time, we had both grown up in the same Eastern-Canadian city and gone to the same high school, though four years apart.) Initially he just wanted to licence my 6809 emulator, but after a couple phone interviews I was offered the whole job. The result was Williams Arcade Classics, and it was a critical success.
(As an aside, in the time between the CoCo 3 Emulator and Digital Eclipse contacting me, I started thinking about an Atari 2600 Emulator. I had a DOS-based prototype running on a 486/33MHz back in 1994. This was before Activision's Atari 2600 Action Pack, when it was still not believed it could be done. I had pitched it to Activision, conincidentally, at the beginning of their project, but they had their hearts set on a Windows 3.1-based product. Nonetheless, I did provide images of a few of their cartridges which they used in the package.)
Williams Arcade Classics lead to other projects and soon I took an industrial leave from grad school to pursue this video game contract work full-time. Being Digital Eclipse's first non-Mac programmer, I was in a unique position. As the company's focus changed exclusively to non-Mac games and started hiring new people to fulfill this role, I had the opportunity to provide critical input and earned de facto seniority.
In late 1997, we established a permanent Canadian-based arm of Digital Eclipse here in Vancouver. In 2003, Digital Eclipse merged with ImaginEngine to form Backbone Entertainment. Backbone in turn merged with The Collective in 2005 to form Foundation 9 Entertainment, which then went on to acquire interests in other companies including Pipeworks Software, Circle of Confusion, Shiny Entertainment and Amaze Entertainment. The Vancouver arm of Foundation 9, later known as Backbone Vancouver, had grown to 100 people by the time I relinquished my position as Studio Head in 2006. In Winter 2005, I'd also helped establish a second studio appropriately called Backbone Charlottetown, in Prince Edward Island's capital of Charlottetown, off the East Coast of Canada.
So, amazingly, my nostalgia for the TRS-80 and longing to have a CoCo of my own has lead me to be, as of 2006, a VP of the largest independent video game developer in the world, one which has shipped hundreds titles.
All content ©2000 Jeff Vavasour. Updated December 29, 2009.