An interview with Howard Scheer by Dan Eicher V - 20020220 Dan, I've looked at your questions, and I think it'd be easier to answer them if I first talk about some history: How I got involved in computers, how I met the other guys, the sequence of companies we worked at, and the work we did at each. So....let me take a textual walk down Memory Lane (that'd be 64K memory...), and then I'll answer your questions once you've got a feeling of the proper context. Howie ----- I grew up in Mt. Clemens, MI, a suburb just north of Detroit in Macomb county. I first logged onto a computer in 1975, when I was in 7th grade (12 years old). The machine was an HP-2000 dial-up machine housed at the Macomb Intermediate School District (called "the MISD", or just "the 'ISD"), a central district that served all the school districts in Macomb county. My math teacher was a man named Jim Munroe, a strict but caring man who was equally willing to help a serious student as he was to punish a problem student. We spent a couple of weeks in his class dialing in to the MISD computers, learning BASIC, and writing some small programs. This is where I got my first taste of writing software, and I was hooked almost immediately. The next year, in 8th grade, a couple of friends and I started staying after school and writing simple games (and other goofy things) on our own. We constantly bugged out new math teacher (Ms. Todd) to get us info and manuals and stuff like that. I knew at this point without a doubt that I wanted to write software for the rest of my life. In 9th grade I took my first Computer Science course. My teacher was a guy named Gary Kwiatkowski. Mr. "K" was a fun, friendly guy who did some things that really helped me advance my knowledge and, eventually, my career: Not only did he teach me a lot, but after I took both available comp sci courses the school offered, he allowed me to work as a "lab aid" in the computer lab one hour a day. This gave me a lot of time to experiment and learn on my own. In 11th grade, the school decided to stop using the dial-ups, and bought several TRS-80's. Within a week, my buddies and I knew more about them than Mr. K did (because we had much more opportunity to use them than he did). Mr. K went again "above-and-beyond" and helped me: Rather than let us to just vegetate, he called over to the MISD and talked to Dr. Thomas Hartsig, the Director of their Computer Based Instruction area, and asked him if there was anyone at the MISD that could come over a tutor us on the TRS-80's once a week. Dr. Hartsig sent over a young guy named Frank "Randy" Farmer. Randy was an interesting character. He was a year older than us - a senior at another high school in the county - who worked at the 'ISD after school. He was pretty talented at writing software, but one of his real assets was his ability to dream, and to "market" his dream to other people. Randy taught us about the TRS-80s, sure, but the most important thing he did was introduce us to two computer programs he had written: COM, a fully-functional email program (...imagine: A full-fledged email program running in 1978!); and SPB, a multi-player, 3-dimensional, real-time, text-based Star Trek space battle simulation. Randy had built a wonderful little "empire", where kids from 5 or 6 different school districts all logged in, communicated with each other, and played SPB together. While COM became an integral part of me and my buddies lives...sending email back and forth with other kids in 5 or 6 other school districts, SPB became an absolute obsession, especially with me. To this day, 24 years later, it is STILL the best game I've ever played. It's amazing how much I still think about it....a "silly little game". Because we used COM and SPB so much, and these programs gave us links to many students in other school districts, we made a lot of new friends. The strange aspect was we often "knew" these people for 6 months or more before we ever met them face-to-face! After we met face-to-face, we often laughed at the misconceptions we had about each other. Two of the key guys I met were Doug Dragin (who co-wrote SPB with Randy), and Joe Simko. Randy and Doug were both Class of '79, and Joe was class of '82, all from the same high school. In the summer of '79, my Dad and I were coming home from Boy Scout summer camp in '79. We pulled up in my parent's driveway, and I had barely gotten out of the car when Randy pulled in behind me. He got out and told me that I had a job interview at the 'ISD with Dr. Hartsig in two days. To some degree I was surprised, because I hadn't even applied for a job! On the other hand I wasn't: For some reason, I always knew I'd end up working there. I interviewed, and started working there on August 6th, 1979. Already working there with Randy was Doug, and soon after Matt Decker (from Randy & Doug's high school) and Mike Reno (from my high school) joined us. Although I knew "of" Doug before working at the 'ISD, it wasn't until I started working there that we really got to know each other. Doug and I hit it off immediately. Any time we'd get together, within five minutes we'd both be laughing our fool heads off at something or other. It ALWAYS seemed to happen. In fact, we started expecting it: We almost could not be in the same room together, because as soon as we both realized the other was there, we'd look at each other, anticipating the laughter that was inevitable, and THAT would make us both laugh. I became good friends with Randy, Doug, and Matt, and we started hanging out together. Mike and I got along well, too, and he was a good guy, but we seemed to move in different circles. We worked mainly in BASIC on the Apple ][ and the Atari 800, doing simple mathematics educational software. I graduated from high school in '80, and in early '81 there was a budget cut at the 'ISD, so they layed off everyone who wasn't still in high school (which was everyone but Mike). Although he still was working at the 'ISD, Dr. Hartsig started another company on the side, which he called MicroCourseware International (or MCI for short). Dr. Hartsig had a Ph.D in Mathematics, and he had an exclusive contract with Scott, Foresman & Co. to produce some mathematics educational software on the TI-99/4A. Randy and Doug has started working for Dr. Hartsig from the get-go. Joe Simko (another one of the SPB guys) started working there, as did Mike Reno (From the 'ISD) and another guy named Doug Craig. That summer Doug and I were hanging out together, and Doug was fascinated with the arcade game "Star Castles", and wanted to see if he could write it on the TI., and convinced me to work on it with him. We used the equipment at MCI, and Doug began helping me learn the TI. When Dr. Hartsig found out, he said to me, "Well, you're already learning the machine, you might as well work here." So I did. I started there in August of '81. Just about then, Randy left the 'ISD and MCI, and moved to California. At MCI I worked with Doug on Numeration 2, I did some work with Doug Craig on Addition and Subtraction 3, and then did Mighty Multiplication 2 on my own. Interesting tid-bit: Video games often had things called "Easter Eggs" in them. In the "Good Ole Days", the customers would not let us put our names on the games....so some people would take it upon themselves to add some secret software that, under special circumstances known only to the programmer, would display their name. These were called "Easter Eggs" because if you wanted to find them, you really had to look for them. That's all I'll say about "Easter Eggs". (Smile) At MCI, we worked in a language called GPL (Graphics Programming Language). It's syntax and approach was similar to a macro assembly language, but it was actually interpreted when it ran in the TI. The development system we used was a TI minicomputer...but the funny thing was the processor in this mini computer was the same processor as in the TI-99/4A. (This amused us immensely.) Once we ran our code through the assembler, we'd load it into a piece of hardware that contained RAM but would simulate a cartridge, and then run it on the 99/4A. In the spring of '83, the contract MCI had with Scott, Foresman & Co. was ending, and Dr. Hartsig was looking around for additional work for MCI. Meanwhile, another guy we knew from SPB (Jim) had gotten a job at K-Byte, a local software house that was just getting into writing games. Jim and Doug Dragin were friends, and he dragged Doug over to K-Byte. Soon after, Doug Craig joined him, and for a while the Doug's worked at both MCI and K-Byte. K-Byte was very impressed with both Dougs, and had just gotten their first 5 contracts with Atarisoft, and needed additional people to handle them. They asked the Dougs if they knew anyone else....and they recommended Joe, Mike, and myself. We started there in May of '83. Doug Dragin took Donkey Kong/C64. Doug Craig took Donkey Kong/TI. Joe got Defender/C64. Mike Reno got Dig Dug/C64. I got Pac-Man/TI. (After about a year, Matt Decker (from the 'ISD) joined us there. See how all these names keep popping up over and over?!) Those were interesting days. I refer to K-Byte as "software boot camp". The five of us were doing the company's top-of-the-line, most visible, most important projects. Management had trusted their entire business on the five of us, and three of us were virtual unknowns to them (me, Joe, and Mike). To say the least, there was a lot of pressure. You had to be productive, or you died; there was no room to "coddle" people, our bring them along slowly: It was sink or swim. I was 19. I worked 60-hours weeks all that summer (6 10-hour days). You had to learn how to make quick, precise decisions, on things like what aspects of the game you could reproduce what you couldn't, based upon what the machine was capable of doing and what it wasn't, or how much time you had. You also had to learn how not to "choke". I learned more at K-Byte about actual coding than anywhere else I've been. Anywhere. I also learned more about Life, and about myself. All of this stuff...especially the pressure and the challenge of it all...got my adrenaline going. It was exciting....and it was fun. I loved working at K-Byte. The personalities were great, and the talent pool was phenomenal. I don't think I'll ever be with another group that is as talented as the people that worked there. And I could spend hours telling hilarious stories about all the wonderful characters that worked there, and the outrageous things we did. When we developed for the TI at K-Byte, we used the TI itself. We had an expansion box attached to it that gave the machine extra memory, and simulated a cartridge. This time, however, we programmed in actual TMS-9900 assembler, not GPL. This gave the code a definite performance boost (recall that GPL was interpreted, which made it slower), something very necessary for games. Pac-Man/TI took about 4 months. At K-Byte, it seemed like every project had the same schedule: We'd quote it as a 16-week project. Management would pressure us to reduce that estimate to 14 weeks. Then they'd tell us, "You've got 12....and pretend you started 2 weeks ago." So we'd have to do a 16-week project in 10 weeks. We'd bust our asses, finish in 14 weeks (2 weeks ahead of what we originally estimated), but according to management we were 4 weeks late. HAHAHAHAH! Doug Craig started Donkey Kong a week or so before I started at K-Byte, so when I started he helped me by setting up an identical development environment for me, and that's what I used to Pac-Man. For graphics, we used the high-tech solution known as "graph paper". We literally drew the graphics on graph paper, and colored in the "pixels" with colored pencils. I really enjoyed doing graphics...especially animation. Interesting tid-bit: Doug Craig drew the graphics for Donkey Kong/TI. Doug Dragin, always wanting to find the easiest way to do the job, not too proud to use someone else's stuff, and often late on his projects, just used the same images on Donkey Kong/C64. Good example of software reuse.... After I did Pac-Man/TI and Doug Craig did Donkey Kong/TI, we did Ms. Pac-Man/TI and Moon Patrol/TI respectively. I don't think anyone else did any TI work at K-Byte, so (unless Doug Craig did another one that I don't remember) we did only four projects on the TI there. Here's a question for you: Are you familiar with how TI graphics work? The main graphics you see are part of the playfield, which is a bit-map that covers the entire screen. In addition to this there are four sprites, which are small 16-by-16 squares of pixels that the TI graphics chip superimposes over the playfield without erasing what's underneath (so they're good for displaying objects that move around because they can move without erasing the playfield underneath). Now, the TI graphics chip only supports 4 sprites, the sprites are single color, and they are only 16-by-16 pixels. With that in mind, how can there be four ghosts, one piece of fruit, and Pac-Man, all on the screen, all at one time? Also, how can the ghosts have two colors: One for their bodies and another for their eyes? See if you can guess how we did it.... In the fall of '85 I left K-Byte and began working as a contractor at General Motors. K-Byte was going through some turmoil, and I decided maybe it was time to get a "real job" in the "real world". (The 40% pay hike I got didn't hurt, either.) After a few years, GM bought EDS, and got rid of virtually all their other contractors. My contract company, FACS, brought me back in-house, and started looking for other work that wasn't automotive. I suggested video games. Soon the FACS started a games division. We hired Doug Dragin...and I was actually Doug's boss. That went for a couple of years, but FACS went out of business. I ended up at Ford, and the area I was in became Visteon after the Ford/Visteon spin-off. So now I'm a supervisor at Visteon. So where is everyone else now? Doug and I are still close friends. In fact, I was the best man at his wedding. (I helped introduce him to the gal he married.) Joe Simko and I have been roommates for over 10 years...and we haven't argued once. I'm typing this note on his computer, in fact. We're still good friends with Matt Decker. We talk to Randy occasionally, but it's harder because he's out in California. Whew! This ended up longer than I expected. Hope you weren't bored. OK...now to answer your questions. My responses are interspersed below. Howie Q: What was that attitude of the developer that had experience with other micro's like the Atari and Commodore towards the TI? A: Since the TI was more or less the first machine we worked on in assembly language, we sorta liked it. However, the general consensus was that the Commodore-64 was by far the easiest machine to work on, because of it's very powerful and versatile graphics chip. The Atari was a good machine also. It's strength was it was easy to scroll individual scan lines differing amounts. The Lucasfilm game "Ballblazer" was a classic example of something the Atari could do fairly easily that the C-64 had problems with. The general consensus, however, that the C-64 was the easiest to work on. Q: Did you port code from existing games, or was each port started from scratch? A: We wrote them all from scratch. I think once in a great while we'd get hardcopy listings of the original source code, but I don't think anyone ever referenced it at all. Instead management would roll an arcade unit into the building and we'd play it to analyze how the game worked. I personally enjoyed analyzing the behavior of opponents in games, and then writing logic to simulate that behavior. We did multiple versions of Crystal Castles at K-Byte (C-64, Vic-20, IBM-PC, Apple-][) and virtually all versions used my logic for all the enemy creatures. Q: How long did it take to complete an average game? A: Early on it was about 4 months (Pac-Man/TI, Ms. Pac-Man/TI). Later, on other machines, as games got more complicated, the times grew longer. Q: What was the QA associated with a game, as once you burnt a 100000 carts, it's kind of to late? A: Well, we'd test it a lot, but the majority of the testing fell on the people at Atarisoft. They were the ones making all the cartridges, so they were the ones who would suffer if there were bugs, so they did most of the testing. Q: What did you develop on? Did they just give you a 4a and an TI's editor/assembler or did you use mini-computers simulating the TI? A: I covered that above: For the Scott, Foresman & Co. stuff we had a minicomputer, but for the Atarisoft stuff we used the TI itself. Interesting tid-bit: Doug Dragin (whose initials were "DDD" and who we often called "3D") developed something he called the 3D-Bugger. It was special hardware (and some associated software) that allowed one Atari 800 to act as the development/debug machine for another. Later it was modified so that the Atari could be used as a development/debugger for any 6502-based machine (Atari, C-64, Vic-20, or Apple-][). This really helped development on these machines. Q: Did you developed your own development tools in house - ie.. for graphics, for sound? A: As I said, for graphics on the TI we used graph paper. For TI sound we simply used trial and error. later, for other machines we developed other in-house tools for graphics and sounds. Interesting tid-bit: At K-Byte we hired a good friend of mine named Jeff Webb to do the sounds and music. Jeff had a degree in Chemistry, but he was a smart guy with a strong music background. Funny thing: Jeff was in Mr. Munroe's same 7th grade math class with me all those years ago.... To this day, he still swears at me for getting him into the computer business....he says that if it weren't for me he could he happily working with carcinogens in a chemical lab somewhere. (Giggle...) Q: Was there different people that worked on the sound, graphics, over all design, code? A: Some of us had more talent (or maybe interest) in sounds and graphics. I liked playing with sounds and graphics, and did (I think) a pretty decent job at it. Doug Craig did as well. Joe liked it less, and Doug even less. Later, as the demand for better and better quality increased, we brought in specialized people (like Jeff) to do that specialty work. Q: What was the best/worst thing about programming on the TI? A: The processor was pretty powerful (as compared with the 6502), which was nice. However, the graphics chips were not as powerful as those other machines. One item that was a pain were the peripherals, like the joysticks. TI published a technical manual that had this 49-position joystick (7 positions horizontally, 7 positions vertically). At MCI, Doug Craig and I started a sword fighting game that was based on that joystick....only to find that TI never produced any of those joysticks! And the joysticks they did have weren't very good. (Of course, the Atari joysticks weren't winning any prizes, either.) Q: What tactic did use to get around the fact that a base TI only had 256 bytes of directly address able cpu memory? A: We simply designated the first page of 256 bytes as those that were directly accessible, and used them like "registers' are used in other assembly languages. Even though the other memory addresses were not DIRECTLY accessible, there were load instructions that would move data from a non-directly-addressable location to a directly-accessible one. (Similarly there were store instructions that would perform the inverse operation.) Once the data was loaded into a directly-accessible location, we could do what we wanted with it and store it back when we were done. Interesting tid-bit: The TI allowed you to specify WHICH page of 256 bytes was directly accessible. This scheme seemed designed to support multi-processing (i.e., each individual thread would have it's one page of memory, and context-swapping could be done by simply changing the page that you wanted to directly access). However, I suppose someone COULD have used that to have a single thread address all the memory directly if they wanted to get tricky. We never did either of these, however. Q: Did atari give you the size of eprom that the module had to be, or did you code and tell them? A: Actually, the "ROM size" issue is a funny story. A: The hardware we had that extended the memory for development gave us more usable memory than could be addressed in a cartridge. I believe 8K was the most that a cart could contain (don't quote me on the exact numbers here, but I remember the general concepts of this story and am sure at least that part right). Anyway, as I developed, it became clear that I was going to need more than 8K...I was getting closer to 12K. (Doug Craig was in the same boat with Donkey Kong.) The president of K-Byte (Pat Flynn) asked a guy he knew to be an experienced programmer (Keith Dreyer, who later worked at K-Byte as a supervisor) to come and talk to me to see if I really needed the memory I said I needed. We talked for about 10 minutes, and Keith went back to Pat and said, "Unless you want "Pac-Man" to be reduced to "P-Man", we're going to have to find a way to address more memory. K-Byte was not only writing the software, but we also had a manufacturing facility, and had the contract to burn the PROMS, stuff the cartridges, stuff the boxes, and shrink-wrap the whole thing. THAT'S where K-Byte expected to make it's money. Pat contacted Atari, and told them of the problem. They threw it back into Pat's lap, and I think the implication was that if Pat couldn't provide a playable game in a cartridge, the whole contract was off. Pat said, "We can solve it. I'll call you back in half an hour." Then he called in Pete Mueller, his hardware genius, and said, "Here's the problem. Can you solve it?" Pete said, "Give me some time." Pat said, "You have half an hour." Pete literally ran off, and half an hour later he had the answer. What we did was put two PROMS on the board, and had them addressed at the EXACT SAME memory locations. Then Pete added a little extra circuitry to the cart to select which PROM was active (one or the other) at a given time. The signal to the hardware that we wanted to switch was if it detected a write to ROM, it'd switch. [TECHNICAL NOTE: ] On the software side, we developed the code in two separate pieces, one for each chip. Each was in effect a separate program. At a known location, on BOTH PROMS, we had what we called a little "window" routine, which was identical on each chip. When we wanted to call a subroutine on the other chip, we'd put the address of that routine in a specific memory location and call the window routine. It'd handle swapping PROMS, calling the routine, and then swapping back before it returned. The tricky part was that only one chip was visible to the CPU at any given time, so you had to make sure all the data a routine accessed was on the same chip as the routine. Pac-Man ended up using 12K of memory, if I remember correctly, an 8K chip overlaid with a 4K. When we first finished, I remember Doug Craig was trying to debug Donkey Kong, and he had this nasty bug that he couldn't track down. I just happened to be shooting the breeze with him at his desk, and he showed me what was happening. I said, "It almost looks like you're switching PROM chips when you don't mean to." Sure enough, that's what the problem was. Doug was moving a register to itself as a quick, non-destructive way of comparing the value in that register to zero. Well, that's in effect writing to ROM, so that caused a switch. The problem Doug had didn't show up during development because in development the code was in RAM...there was no ROM to write to, and no extra hardware to make any switch. It only showed up after we put the code onto a cartridge. THAT'S why Doug was so mystified by the bug at first. (Note: I'm not "patting myself on the back" here, saying I helped Doug debug his code because he couldn't do it, or anything like that. Doug was a very talented guy, and EXTREMELY capable. It just goes to show that two heads are better than one...something that's obscured from one person is often obvious to another, no matter who the two people are.) Q: Did they at least give you a copy of the finished cartridge? One thing I really like about the atari stuff, and I saved them, were the boxes. They were SOO kewl.. A: Yes...they did give us complementary cartridges, shrink-wrapped in the boxes. I think In still have mine somewhere. Q: When you started work for SF, did they just hand you a GPL manual and tell you to go to it? A: We had a GPL manual, but I learned from Doug Dragin and from just looking at code. Q: If you ran in to something you didn't understand could you call someone at TI? A: Probably. Don't remember if we ever did that....except maybe once to find out when those 49-position joysticks would be produced. (Their answer: Never.) I DO think that Scott Foresman would get questions answered for us....it was in their best interests to make sure we didn't get stuck technically. Q: How did the 990 work.. A: The 990 development station had a monochrome ASCII text monitor (80 column, 24 line I think...standard stuff). We'd write the code there, assemble it, and then load it into that unit that simulated a GROM cartridge, and run the code on the TI-99/4A. Q: When working on PAC-MAN did you have a hard drive or did you use dual (multiple) single sided floppys for your compile? A: Hard drive?! What was a Hard Drive?! We're talking 1984, man! We were lucky they didn't make us use cassette tapes! C: If you were working off of floppy's on a game the size of pac-man, that must have been PAINFUL!!!! =) A: Hey, if all you've eaten your whole life is gruel, then you have no idea how good a steak tastes. I know; that's a cryptic answer, but I think you get my drift: We just didn't know any better. Q: Did you use the standard Editor/Assembler package TI put out, or did Atari have a special version? A: I am virtually positive it was the standard editor/assembler when we worked in true assembler. Q: When you worked for Scott Foresman, did they give you a programming standards guide? Things like use these font's, these colors, these naming conventions etc? A: HAHAHAHAHAHAHAHAHAHAH!!!!!! No, they did not give us standards or tell us how to name variables, and I'm laughing because there is a VERY funny story associated with that. I told you about "Easter Eggs", right? Well, let's just say that certain people at MCI decided to put Easter Eggs into their SF modules. Some people hid them very well, so a person could never find them by looking at the source code. Well, Mike Damas (one of the six of us that worked there) decided to put one in, but he didn't hide it. It was FRIGGIN' OBVIOUS what he was doing, and you could see it by looking at the first page of the source code! Well, SF wanted to copyright the source code, and so we sent it to them. Well, they happened to look at Damas' code, and saw the Easter Egg! Then they tried entering similar secret key sequences at the same points in other programs, and they found (almost) all the rest of the Easter Eggs. Well, the same day they did that, they looked at Mike Reno's code. Mike had a penchant for using profane labels, like SHITTER or DUMFUK (pardon my French). When the SF people found the Easter Eggs and those labels, they blew a gasket. Imagine having to take source code in front of a judge with DUMFUK and SHITTER right there on teh front page, in capital letters!!! HAHAHAHAHAHAH!!!!! (Reno always was a rebel.....) Mr. Hartsig had a talk with us, but that was all that happened. =========================================================================== [Note: According to the CYC the following cartridges were actually produced and released by Atarisoft. Centipede Defender Dig Dug Donkey Kong Jungle Hunt Moon Patrol Ms. Pac-Man Pac-Man Picnic Paranoia Pole Position Protector Shamus ]