Killer Bees



I took a bit of a break from reverse engineering yesterday, and instead put together a better example to showcase Rick's work.  There aren't many small EXEC programs with source code out there, but "Killer Bees", the demo program written by David Rolfe is one example.  It seems an appropriate choice and was converted to be compatible with modern Intellivision assemblers in 2016.


I've put together a version of Killer Bees with Rick's debugger integrated which can be downloaded here.

The package includes the amended source code; look for the string "RKD_" in killerbees.asm to find the calls into Rick's debugger.  As well as the main call into the debugger which is placed at the start of CTRL, the subroutine that processes control inputs, breakpoint A can be triggered at the start of the HITMINE routine, called whenever your avatar hits the bees/mine.  There is also an unconditional trap at the start of the the HITDONE routine, which occurs when the your avatar transitions back into its regular state.

So it is possible to trigger the debugger's interactive mode either by pressing both lower action buttons, or by touching the bees/mine and then waiting for the timer to expire and revert your avatar to its normal blue colour.


Having activated the debugger, it is then possible to enable breakpoint A from within the UI by pressing 1 on the left controller, and run to a breakpoint using Clear on the right controller.  This breakpoint will then be triggered when you next walk into the bees/mine.

Notice how the debugger does not disable sprites, and therefore, the bees/mine overlap the second memory inspector data field.  The use of the debugger against the green background of Killer Bees also shows that the secondary memory inspector is simply rendered in black text, rather than being hidden as the breakpoint fields are.  This is something that was probably done simply to distinguish its fields from those of the first memory inspector, given the limited space on a single line.  This is another small bit of circumstantial evidence that there is no real functional difference between the first and second inspectors.

Comments