This was a trivial, but very useful hack for work. The code is meant for an 8751, with 24 relays or optocouplers driven off ports 0-2. Under serial port control, it will blip a selected relay for a half second or so.
I built this in a matter of hours (showing off) to solve a problem at work - a complex system in the lab, being remotely debugged from people's desks and when it crashed they had to phone the lab for someone to push one of the many reset buttons, which was a big bottleneck.
The source file is 437 lines long. Of these, lines 28-255 (of which 120 are assembly language instructions) are original code. Everything else was recycled routines from my previous projects.
This code might be useful to someone because it's simple, clean and easy to modify. It just puts up a prompt, and expects commands like "1"-"12" to blip the hard reset relays, and "1s"-"12s" to blip the soft reset relays. Also you can say "$name 1 cpu0" for example, to give a symbolic name; this way "cpu0" and "cpu0s" become synonymous to "1" and "1s". The serial port runs at 9600 baud with an 11.0592MHz crystal.
Here is the code: reset.asm
The actual gadget fell victim to a lab cleanup at some point, and it was too trivial to bother drawing a schematic for, so all that's left is the code.
Back to my projects page