On balance



How does Rick's debugger compare to the others we know about?

When evaluating the Koenig native debugger it is important to understand the context in which it was written and used.  Rick's debugger was one of four tools known to be employed at Mattel to test Intellivision games.  The others were the:
  • APh Datawidget and its built in debugger Dopey
  • MAGUS RAM cartridge
  • Blue Whale test harness and debugger

APh Datawidget

The first, and probably the most sophisticated, of these tools was the APh Datawidget and its debugger named Dopey.  Judging by the Datawidget documentation recently discovered, Rick's debugger seems to have provided similar features, such as breakpoints, register inspection and instruction stepping to Dopey, the stock debugger for the Datawidget. APh also had an enhanced symbolic debugger, named Crosspatch, for use with the Datawidget.  While John Sohl probably saw this in use at APh's offices in 1980, there is no evidence that Crosspatch was deployed at Mattel.  Mattel also only had a limited number Datawidgets and they do not seem to have been widely used, probably because access to them became a constraint.  It is not clear why Mattel did not acquire more Datawidgets, however, there are suggestions that production was restricted in some way, that they were too expensive, or that Mattel may have viewed the design as flaky.

Instead, most Mattel developers seem to have used the MAGUS board for day-to-day testing.  These were also made by APh and much more common.  The available documentation suggests that the MAGUS was a relatively simple RAM board, rather than a full diagnostic system.  Developers could upload and download programs from their PDP-11 development machines, inspect and alter memory on the MAGUS and run games, but that was it.  MAGUS does not appear to provide facilities to inspect CPU registers, single step code or use breakpoints.  These limitations must have made testing with MAGUS significantly more difficult.

Mattel Keyboard Component / Blue Whale

The final test harness was the Blue Whale development system, based on recalled Intellivision Keyboard Components.  These started to be rolled out in the final quarter of 1982 and had significant updates in January and September of 1983. Like the Datawidget the Blue Whale development kit contained a debugger.  Again, the Blue Whale version provided similar features to Rick's debugger, although its implementation was rather different, requiring a hardware modification to the Master Component to implement key features like breakpoints and single stepping.  Like the Datawidget, the Blue Whale's debugger was controlled from the developer's terminal, which with its full keyboard and 80x24 text screen, would probably have been easier to use than Rick's Master Component based solution.

More details of all of these tools can be found in Intellivision development tools thread on AtariAge. However, their features, along with those of the modern JzIntv debugger, are also summarised in the following table:

Therefore, with this context, it seems likely that Rick's debugger was primarily intended to be used with the MAGUS RAM cartridge. When combined in this way it would have significantly enhanced the debugging capabilities at the developer's disposal. The result was probably not quite as capable or easy to use as the Blue Whale or Datawidget, but would have been a significant improvement over using the MAGUS on its own.  Any shortcomings are more a consequence of the constraints imposed by running on an unmodified Master Component than a problem with the debugger itself. Having to share the Intellivision's resources (notably its memory space, low resolution screen and controllers) with the game necessitates usability compromises.  Also, the way in which entry point calls are used to trigger the debugger would upset the timing of games slightly more than the hardware modifications used by other tools.  As a consequence, the act of using it risked affecting the behaviour of timing sensitive bugs to a greater degree.

Assuming Rick's debugger was primarily used with the MAGUS, it is interesting to speculate as to whether a shared memory area could have been established as a means of communication between the debugger and a program running on the developer's PDP-11.  This might have allowed debugging to be controlled from the developer's terminal, in a similar manner to the Datawidget or Blue Whale, giving access to a full keyboard and larger text screen.  However, it is also possible that hardware design of the MAGUS prohibited this.

Overall, it looks as though Rick's debugger represents an excellent solution, given the constraints of running on an unmodified Intellivision Master Component, and it provides a number of usability features not seen in the other tools available.  The fact that it was put together in a few weeks, as compared with the months of development that appear to have been invested in the other tools used by Mattel is quite remarkable.

Comments