The Results of Learning Robotron Development
Eugene offered me to work for Williams… but only if I complete my college. A year later, I tried to call him, even if my college was dragging. This was 1988 with the “arcade crash”, so there was no job for me.
About 1 year later, I found a job in a small company that design light systems for discotheques, bars, etc I used my knowledge of both Electronic and Embedded firmware to design the light system in the bar “Dagober” located in Quebec city. This bar, large enough to host two thousand people wanted to emulate a well known bar in New York. The ceiling is covered with 8 large metallic supports, each one holding 24 theater style of lamp. The 8 racks cover the entire ceiling. There is 3 “chain block” motor attached to each rack. The electronic circuit detect the position of the chain of each motor with a precision of one thousandth of inch. The result is that the entire ceiling appear to change shape as the elevation and angle of each rack is changed.
I designed many other electronic/software device for that company. The most spectacular on the performance point of view is a laser controller which is connected to two mirrors. The Motorola 78HC705, with only 8K of EPROM and 128 bytes of RAM could update a shape of 32 points in real-time, making the usual translation, rotation, zoom, etc
While returning to university for a third time, after I understood the hard way that the employers don’t care about the actual capacity of somebody, but only care about diploma, I found another job slightly paying more (barely a few percent above minimum salary), I designed the firmware for the Delta Airline vehicle called “plane mate”. Their is about 10 such vehicle at the JFK airport in New York. These over-sized bus (3 times heavier than a city bus) can raise up to 20 feet to reach the door of a 747 airplane.
The system is made of 13 electronic module using a very primitive micro-controller : the 8051, very slow with a clock of 11 MHz which is divided by 12. My experience with optimized state machine that I learned from the study of pin-ball machines firmware, and some of Robotron programming techniques helped to make this code the most efficient possible. I was amazed myself to see the two modules that control the hydraulic proportional valves able to compute a PID loop and maintain the lifting/lowering so that the rear and front never tilt more than 0,5 inches. The loop compensate even when the sections inside each pistons are not perfectly matched and stop moving suddenly, while other sections are still extending or retracting.
Finally, when I got the university diploma, the employers started to show interest., I got a “real job” at Ilco Unican, paid 3 to 4 times more than the minimum salary. I studied a large security system as used in some company and government, which detect the electronic card swiped at any door and display the user info and picture. I debugged the code that manage the heart of the communication: a DLL which can open dozens of serial ports, many TCP-IP clients and one TCP-IP server. The code was said to take 100% of CPU time in some cases. The other programmers were developing GUI in C++ and none of them could understand that kind of code dealing with multiple threads, strict timing, etc The problem was also that this code was maintained by the previous company (Ilco bought the company and fired all GUI employee, but kept on contract the “bright one” for the tasks that are too complex. I used my long experience in reverse engineering to verify if the binary executable matched the source code (it did match, in this case). I fixed the 100% CPU problem by inserting a few “sleep(1)” in some loops to allow the operating system to take back ownership of the CPU and effectively perform the Ethernet or serial port task before giving back the CPU to our application. I also added some debugging panels to this DLL which was previously running in the dark with no interactions to help understand what happen. Of course, these features were not accessible by the end users so that nobody could compromise the security.
After a year, thanks to my University diploma, more serious employer showed interest. I moved from Quebec (Canada) to California. The company, Spectra-physics, needed an embedded programmer to move the next generation of laser away from the primitive 8051, using a x86 instead. My mention of “Borland” for C compiler turned out to be the magical word to open the door. I continued to use the programming techniques of Robotron:2084 to create multitask under DOS without needing the operating system.
By the way, I think that Robotron is still, 25 years later, a potential learning tool for teaching how to create a multi-thread (sharing a single stack pointer) and multi-task (isolated application sharing CPU time). I was thinking using MAME with the good debugger as base and adding some inter-active way to modify Robotron executable on the fly. Each tank, spheroid, etc is a task which show on the screen it’s relative speed and any tweaking to speed-up one type of object would immediately show how it is steeling the limited CPU resource.
Once the lesson is clear, the programmer could go back on it’s Java or C# or Python, and create his own multi-task dispatcher instead of depending on the operating system. Such code would speed-up by a few order of magnitude in some cases.
As I said, Robotron is an admirable example of Object Oriented code, written in 6809 assembler. It is very easy to convert the concepts in Python or LabView graphical language.
Follow-up to story being published for the online community:
The study of Robotron was for me equivalent to writing a thesis for a Phd or writing a book… It was a specific application that I choose to teach me how microprocessors work. For example, I discovered the ‘linked list’ when studying the operating system part of Robotron.
When, some years later, I was being taught this concept, it appeared to me easy while other student were struggling to understand this, for their point of view brand new concept. For me, instead of being an abstract concept that may or may not ever be used, it was on the contrary being seen as one of the secret of Robotron object oriented design.
It was only appropriate that after 25 yrs, Christian was brought back in touch with the Vid Kids. The wonders of the Internet…
Larry’s reply: Christian, I can’t tell you how much I enjoyed reading your articles about your amazing work and time we spent together in Chicago. Eugene and I were blown away at the level you studied and worked out every detail of what was at the time an enormous program. I didn’t understand at the time that you brought the system to a crawl to allow you to move the appearance reverse-explosion to the corner. Very clever. In both our pinball and videogame systems we used similar stress tests (but we could easily add delays to the IRQ service code so we did it in software) so it’s not a big surprise that the program kept running (gasping along). Robotron was the first game to use the blitter, not Stargate, however even though Defender and Stargate were similar games they used the most differing hardware scenarios so I can see where there was confusion (Stargate will run on Robotron hardware, Defender won’t, but Stargate doesn’t use the blitter chips because they didn’t exist when Stargate was created).
Eugene’s response: This is incredible – the first time the real story of Christian Gingras is told! At the time we met him he spoke only French, so we never understood the entire story!
Jean-Francois Rainville (Feb. 2013):
I was a close friend of Christian since we were studying together at College de Limoilou in Quebec City. One day I was match with him in a lab exercise useless to say that this guy was a leap ahead of everybody. The problem with him was that he was so bright that it wasn’t easy for him to stay focus on what the teacher was saying. He’s knowledge was way far superior to any teacher I can think of at the time.
One day after class he said to me “do you like video games” I was a real arcade junkie and very fascinated by Williams stuff. When I said that I was a good player at Robotron he said come and play at my place????? Really??? (We were in 85) You have a Robotron at home? Yes! He said. I made it myself. I went with him and believe it or not he made a real Robotron out of wire-wound stuff!!! I was a real mess it was looking like an invention from a mad scientist! And to my total surprise we play Robotron with that wire ball hook on a TV set (he manage to get a TV working with this since he wasn’t able to afford himself an RGB monitor).
We stay friend for few years (till he move in California) and he teach me most of my electronics skills that are today my best tools. I can’t recall anything learn at school but being a close friend of him was the best college somebody can dream of.
He spent few time to read and decode the program around NARC since it was working with TMS 34010 from Texas Instruments. That was a fascinating processor with lots of graphic power (for the time) that was very interesting as well. When he move in California he gave to me his NARC and his High Speed. I still have those machine today and I fully renovated those in my personal arcade in honor of “the good old time”.
My arcade can be see here: https://picasaweb.google.com/106732082650797211887/Arcade02?authuser=0&feat=directlink
Too bad I sold my Robotron (yes, I bought one in 89) at the time it was the only really debug Robotron along with Christian odd “wire ball” 😉
One last thing to say about this was that many year after this (I think we were in 93). I decide to make a trip in Chicago with my girlfriend. Then over there, I thought it would be very interesting to visit Williams and have a chat with those fascinating peoples over there. I told I was a friend of Christian and till I’m here, if I can visit the factory. I finally end-up speaking to Mr. George Petro (NARC programmer) who said come anytime you want I will be more than happy to show you whatever you want to see.
Wow I had the time of my life over there!! They were very nice and I spoke to everybody ( Larry and Eugene even if we’re not there). Never had to chance to thanks those guys maybe the message will get through now. 😉 I remember the design studio for Mortal Kombat and I was very impress with the technique use for getting all the moves on screen with real actors! Everybody was remembering the story of Christian. George was just saying “This guy is a friend of Christian Gingras, you know the guy from Quebec who found glitches with Robotron without any source code” Everybody was clearly remembering that story. Twilight Zone was in Prod. I was blast away by all the work needed to produce a pinball machine. Mostly Cuban women working on a chain getting all the posts in place with pneumatic screwdrivers. I spent one after noon over there. There was a real good atmosphere in the engineering department. Williams was unique! And the people over there very special.
Now I am working in Chemical process as a designer of process control. I travel around the world to start up new plants. It’s very interesting for sure but I would quit everything I Williams was still existing and I had a chance to work over there…
Click HERE for photo album
Click HERE for more technical information about the shot-in-the-corner patch
Return to the main page for Christian Gingras HERE