<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx</link><description>Ah, the ISA bus...</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1557635</link><pubDate>Tue, 30 Jan 2007 19:13:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1557635</guid><dc:creator>jwf</dc:creator><description>&lt;p&gt;I guess real developers used ball point pens. I recall having a nice red button at the end of a cord that looped into the back of the PC - the periscope switch.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1557644</link><pubDate>Tue, 30 Jan 2007 19:18:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1557644</guid><dc:creator>BryanK</dc:creator><description>&lt;p&gt;I believe SMIs (and perhaps SMM in general?) also disable the NMI. &amp;nbsp;(This may depend on the interrupt controller, but I doubt it.) &amp;nbsp;No idea whether Windows has support for SMM, but I don't see why it wouldn't.&lt;/p&gt;
&lt;p&gt;And yes, I've seen one machine get &amp;quot;so badly wedged&amp;quot; that an NMI had no effect. &amp;nbsp;It did require &amp;quot;help&amp;quot; from the hardware: I eventually tracked it down to the sound card not liking something about the dual-core CPU (or perhaps SMP in general?). &amp;nbsp;Dumping the sound card and changing over to the onboard sound chip prevented the hard-lockups. &amp;nbsp;Disabling one core also helped, but I didn't want to be limited to one core.&lt;/p&gt;
&lt;p&gt;(How did I know it stopped NMIs from working? &amp;nbsp;Well, relatively easily: I turned on the NMI watchdog in Linux (most IO-APICs have the ability to set up an NMI watchdog), figuring it was a driver running into a deadlock. &amp;nbsp;But it never saw an NMI from the watchdog when it was hung.)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1557648</link><pubDate>Tue, 30 Jan 2007 19:21:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1557648</guid><dc:creator>Xan</dc:creator><description>&lt;p&gt;NMIs can be disabled also by outing some values in I/O ports of the chipset (the processor could still listen to them on its NMI pin, but if the wire is cut ...)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1557654</link><pubDate>Tue, 30 Jan 2007 19:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1557654</guid><dc:creator>Hayden</dc:creator><description>&lt;p&gt;Aha, memories.&lt;/p&gt;
&lt;p&gt;I once was working on an 80188 embedded system using TDREM, the embedded version of the Turbo Debugger remote client. The serial port was a plug-in board, so I arranged the serial interrupt to be NMI and not one of the INT pins. &lt;/p&gt;
&lt;p&gt;If the code was in a loop, you could just press CTRL-break on the PC running TD, and you had control. &lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1557655</link><pubDate>Tue, 30 Jan 2007 19:27:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1557655</guid><dc:creator>BOFH</dc:creator><description>&lt;p&gt;Ah yes, the NMI...&lt;/p&gt;
&lt;p&gt;I just remembered I installed a switch on the front panel of my Amiga 500+ and connected it to the NMI pins somewhere on the motherboard.&lt;/p&gt;
&lt;p&gt;Next to it I had another switch installed that would short out the crystal, effectively turning off the CPU clock.&lt;/p&gt;
&lt;p&gt;Now why did I have that..?&lt;/p&gt;
&lt;p&gt;I also remember have the Hardware Reference Manual permanently open by the computer those years.&lt;/p&gt;
&lt;p&gt;Uh, the flashbacks...&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1557665</link><pubDate>Tue, 30 Jan 2007 19:32:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1557665</guid><dc:creator>LarryOsterman</dc:creator><description>&lt;p&gt;And of course there was always the IBM PC Jr, which used NMI for the keyboard interrupt.&lt;/p&gt;
&lt;p&gt;When Microsoft commented that it was a bad idea to the IBM hardware guys, they were couldn't figure out why we were so upset - after all, one interrupt was as good as another, right?&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558011</link><pubDate>Tue, 30 Jan 2007 21:01:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558011</guid><dc:creator>Michael Geary</dc:creator><description>&lt;p&gt;I made my own &amp;quot;Periscope switch&amp;quot; for my original IBM 5150 five-slot PC. I took the game adapter card and soldered a thin coax cable to NMI and ground with a pushbutton at the other end of the cable. A lot of people made these - it was a quick and easy project.&lt;/p&gt;
&lt;p&gt;I think I finally threw this card out a couple of years ago, after it sat in a drawer for ten years!&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558080</link><pubDate>Tue, 30 Jan 2007 21:11:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558080</guid><dc:creator>Ben Cooke</dc:creator><description>&lt;p&gt;One annoying effect of the inversion of the PCI cards is that the connectors on them are usually &amp;quot;upside down&amp;quot; when installed in a tower case.&lt;/p&gt;
&lt;p&gt;Now, I realise that the correct way up for a D-SUB connector depends on your point of view, but as someone who grew up with connectors with the &amp;quot;big side&amp;quot; up -- on my Amiga, on my games consoles and even the on-board connectors on my more modern PCs -- having the &amp;quot;small side&amp;quot; uppermost is something I just can't get used to.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558167</link><pubDate>Tue, 30 Jan 2007 21:23:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558167</guid><dc:creator>sergio</dc:creator><description>&lt;p&gt;I still have somewhere the hand-made extension that connected to the ZX Spectrum bus and provided the NMI switch plus some circuit to trick processor to think shortly that it has less memory. That way it &amp;quot;rebooted&amp;quot; and initialized only first X KB leaving the rest intact. Very cool for avoiding to load again the machine programs which stuck (it was not a pleasure loading anything from the tape). The &amp;quot;normal&amp;quot; reset switch I had built-in. Quite a feat for the small case. Both thanks to the magazines of that time and to my friend who was &amp;quot;the hardware guy&amp;quot; (he previously soldered for him all the circuits of his first DIY home computer).&lt;/p&gt;
&lt;p&gt;(And you try and tell the young people of today that ..... they won't believe you.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Four_Yorkshiremen_sketch"&gt;http://en.wikipedia.org/wiki/Four_Yorkshiremen_sketch&lt;/a&gt;)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558405</link><pubDate>Tue, 30 Jan 2007 21:52:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558405</guid><dc:creator>Mike Dunn</dc:creator><description>&lt;p&gt;In my youth, I created NMIs by with RUN/STOP-RESTORE.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558441</link><pubDate>Tue, 30 Jan 2007 21:57:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558441</guid><dc:creator>Marc Bernard</dc:creator><description>&lt;p&gt;Reminds me of the time I used a pencil to configure a station...&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://nomagichere.blogspot.com/2005/08/in-trenches.html"&gt;http://nomagichere.blogspot.com/2005/08/in-trenches.html&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558474</link><pubDate>Tue, 30 Jan 2007 22:04:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558474</guid><dc:creator>Stu</dc:creator><description>&lt;p&gt;I still have several machines with both ISA and PCI slots around and in all of them, the PCI slots are above the ISA slots, such that only one mounting bracket is &amp;quot;shared&amp;quot;.&lt;/p&gt;
&lt;p&gt;Were there really ever motherboards where all of them were shared? &lt;/p&gt;
&lt;p&gt;Looking at the design of my computers, there is not enough space between the slots for an extra one, so the case design would have to have been modified.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558496</link><pubDate>Tue, 30 Jan 2007 22:14:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558496</guid><dc:creator>Erwin Alva</dc:creator><description>&lt;p&gt;Mike Dunn:&lt;/p&gt;
&lt;p&gt;&amp;gt; In my youth, I created NMIs by with RUN/STOP-RESTORE.&lt;/p&gt;
&lt;p&gt;Ah, yes. Those good old VIC-20 and C-64 days...&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558756</link><pubDate>Tue, 30 Jan 2007 22:50:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558756</guid><dc:creator>Jules</dc:creator><description>&lt;p&gt;&amp;quot;Were there really ever motherboards where all of them were shared?&amp;quot;&lt;/p&gt;
&lt;p&gt;I used to regularly work on Compaq machines that had (IIRC) 4xPCI and 3xISA, and all of the ISAs share with a PCI. &amp;nbsp;And two of the pairs were the wrong way up, because they branched out from both sides of a daughterboard.&lt;/p&gt;
&lt;p&gt;&amp;quot;One annoying effect of the inversion of the PCI cards is that the connectors on them are usually &amp;quot;upside down&amp;quot; when installed in a tower case.&amp;quot;&lt;/p&gt;
&lt;p&gt;A question on this topic: are PCIe cards upside-down or are they back to being the right way up again? &amp;nbsp;I don't yet have a PCIe machine, so can't easily check...&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1558834</link><pubDate>Tue, 30 Jan 2007 23:19:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1558834</guid><dc:creator>Sean W.</dc:creator><description>&lt;p&gt;Jules: &amp;nbsp;Glancing into the window in the side of this computer to double-check, the answer is yes, PCIe cards are still &amp;quot;upside-down.&amp;quot;&lt;/p&gt;
&lt;p&gt;My personal favorite way of testing device drivers (and new code in an OS kernel), though, is the crashes-vs.-reboots test, which is sorta like printf debugging, only a *lot* harder to suffer through. &amp;nbsp;On the plus side, it works even if you don't have a kernel debugger at your disposal. &amp;nbsp;Just insert code in your device driver at the spots where you think the bugs are such that the driver pulls high the system's reset line on one side of a conditional test, and falls into an infinite loop on the other side. &amp;nbsp;(Obviously, you wanna remove that code in the production version; and a little psychic debugging can help a lot here too.) &amp;nbsp;Thus you now have a boolean status output where you had no status before: &amp;nbsp;If the machine reboots, it's a 1, and if it hangs, it's a 0.&lt;/p&gt;
&lt;p&gt;I don't recommend doing debugging that way if you can absolutely avoid it; it's slow and painful. &amp;nbsp;But it *does* work.&lt;/p&gt;
&lt;p&gt;(Actually, back in the day, I used to keep an ancient parallel dot-matrix printer around for driver debugging, since it was so easy to feed status info out to it, and the output didn't disappear on a crash or reboot. &amp;nbsp;But it's been a long time since I did driver work, and I'm not sure what happened to that old printer now.)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1559225</link><pubDate>Wed, 31 Jan 2007 00:36:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1559225</guid><dc:creator>Mike Dunn</dc:creator><description>&lt;p&gt;I hated those machines where the slots were on a daughterboard. I once had a Dell in a whacky desktop case, where in order to add/remove any cards, you had to pull a lever and pull out the whole assembly: daughterboard, all the cards, and the backplate. And of course, the attached cables always got in the way.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1559399</link><pubDate>Wed, 31 Jan 2007 01:10:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1559399</guid><dc:creator>James</dc:creator><description>&lt;p&gt;This reminds me of the Power Computing PPC systems, which had NMI buttons on the front for debugging purposes, and of AGP, which uses what used to be the ISA position to share a space with a PCI slot.&lt;/p&gt;
&lt;p&gt;Meanwhile, we've progressed from using ballpoint pens on ISA slots to using pencils on the CPU itself: one of the overclocking tricks is to use pencil markings to short the cut traces on Athlon CPU packaging, thus unlocking the CPU frequency multiplier.&lt;/p&gt;
&lt;p&gt;Raymond, are you sure you need hardware to be 'misbehaving' to block NMIs? Setting the top bit of I/O port 70h is supposed to have that effect without an actual malfunction. (Various other things could also stop the NMI handler firing as expected, of course: trashing the stack it tries to use, installing your own NMI handler in its place, corrupting the handler code...)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1559971</link><pubDate>Wed, 31 Jan 2007 03:22:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1559971</guid><dc:creator>steveg</dc:creator><description>&lt;p&gt;I used to reset the good ol' 6502 with a screwdriver across the correct pins. Hmmm... just did a quick google, looks like I was shorting RST + CLK, oh well, did the trick.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1560121</link><pubDate>Wed, 31 Jan 2007 04:13:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1560121</guid><dc:creator>Jon</dc:creator><description>&lt;p&gt;Jules: unless you have a BTX machine (Dell, Apple or Gateway), in which the slots become &amp;quot;right side up&amp;quot; again, for cooling purposes. Under some circumstances (difficult in routing the traces), the data lanes become reversed or otherwise switched and the PHY is supposed to fix this. This is referred to as lane reversal or lane swizzling.&lt;/p&gt;
&lt;p&gt;The higher-end Dell servers all have physical NMI switches. They're disabled by default in the BIOS.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1560734</link><pubDate>Wed, 31 Jan 2007 05:18:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1560734</guid><dc:creator>Feroze</dc:creator><description>&lt;p&gt;Win9x and Wdeb remind me of something. Whenever windows breaks into debugger,and then resumed by pressing 'g',it would lose the mouse. This was very annoying, until somebody told me of a trick to get the machine to redetect the mouse. It consisted of the following commands in the debugger:&lt;/p&gt;
&lt;p&gt;o 64 d4&lt;/p&gt;
&lt;p&gt;o 60 e9&lt;/p&gt;
&lt;p&gt;i 60&lt;/p&gt;
&lt;p&gt;i 60&lt;/p&gt;
&lt;p&gt;i 60&lt;/p&gt;
&lt;p&gt;g&lt;/p&gt;
&lt;p&gt;I had no idea why this worked, but it did (most of the time)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1560781</link><pubDate>Wed, 31 Jan 2007 05:34:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1560781</guid><dc:creator>KJK::Hyperion</dc:creator><description>&lt;p&gt;A PCI &amp;quot;death button&amp;quot; is possible as well, but rather more complicated:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.microsoft.com/whdc/system/CEC/dmpsw.mspx"&gt;http://www.microsoft.com/whdc/system/CEC/dmpsw.mspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(with circuit schematics!)&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1562439</link><pubDate>Wed, 31 Jan 2007 10:22:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1562439</guid><dc:creator>Jules</dc:creator><description>&lt;p&gt;&amp;quot;o 64 d4&lt;/p&gt;
&lt;p&gt;o 60 e9&lt;/p&gt;
&lt;p&gt;i 60&lt;/p&gt;
&lt;p&gt;i 60&lt;/p&gt;
&lt;p&gt;i 60&amp;quot;&lt;/p&gt;
&lt;p&gt;Port 64 is the keyboard controller. 'd4' is the command to send the next byte of output to the mouse.&lt;/p&gt;
&lt;p&gt;Port 60 is the keyboard interface. 'e9' is the byte sent the mouse which is described as &amp;quot;Status request. The mouse responds with &amp;quot;acknowledge&amp;quot; then sends the following 3-byte status packet (then resets its movement counters.)&amp;quot;&lt;/p&gt;
&lt;p&gt;You then read 3 bytes from the mouse, which should leave just the last byte of the status packet in the buffer (containing the mouse's resolution).&lt;/p&gt;
&lt;p&gt;According to the docs, the mouse also sends a single byte status code when it is powered on. &amp;nbsp;Presumably, on resumption from the debugger, the driver is reinitialised (?) and checks for the presence of the mouse by attempting to read that status byte, and if there isn't anything there assumes there is no mouse. &amp;nbsp;Your process leaves a single byte in the right register so the driver is tricked into believing that a just-powered-on mouse is connected.&lt;/p&gt;
&lt;p&gt;Useful references:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH20/CH20-2.html"&gt;http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH20/CH20-2.html&lt;/a&gt; - how the keyboard controller works&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.computer-engineering.org/ps2mouse/"&gt;http://www.computer-engineering.org/ps2mouse/&lt;/a&gt; - how a PS/2 mouse works&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1562467</link><pubDate>Wed, 31 Jan 2007 10:36:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1562467</guid><dc:creator>Mouser</dc:creator><description>&lt;p&gt;&amp;gt; o 64 d4&lt;/p&gt;
&lt;p&gt;This means write next byte to mouse&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH20/CH20-2.html"&gt;http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH20/CH20-2.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;gt;o 60 e9&lt;/p&gt;
&lt;p&gt;This means status request, reset counters in mouse&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.computer-engineering.org/ps2mouse/"&gt;http://www.computer-engineering.org/ps2mouse/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E9h (Status Request) - The mouse responds with &amp;quot;acknowledge&amp;quot; then sends the following 3-byte status packet (then resets its movement counters.):&lt;/p&gt;
&lt;p&gt;&amp;gt;i 60&lt;/p&gt;
&lt;p&gt;&amp;gt;i 60&lt;/p&gt;
&lt;p&gt;&amp;gt;i 60&lt;/p&gt;
&lt;p&gt;g&lt;/p&gt;
&lt;p&gt;&amp;gt;I had no idea why this worked, but it &lt;/p&gt;
&lt;p&gt;&amp;gt;did (most of the time)&lt;/p&gt;
&lt;p&gt;I guess if you break in the middle of &amp;nbsp;reading the mouse, either the mouse or the controller get into a wierd state. This sequence works to reinit the mouse and controller.&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1566608</link><pubDate>Wed, 31 Jan 2007 21:01:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1566608</guid><dc:creator>strik</dc:creator><description>&lt;p&gt;Mike Dunn:&lt;/p&gt;
&lt;p&gt;&amp;gt; In my youth, I created NMIs by with RUN/STOP-RESTORE.&lt;/p&gt;
&lt;p&gt;No, RESTORE generated the NMI. The RUN/STOP was only needed as the C64 was programmed to ignore the NMI if that key was not pressed.&lt;/p&gt;
</description></item><item><title>Meandering Bits  &amp;raquo; Blog Archive   &amp;raquo; Good Ideas, Cool Photos and Odd Uses for Ballpoint Pens</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1574331</link><pubDate>Thu, 01 Feb 2007 20:17:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1574331</guid><dc:creator>Meandering Bits  » Blog Archive   » Good Ideas, Cool Photos and Odd Uses for Ballpoint Pens</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://blog.edwardholets.com/2007/02/01/good-ideas-cool-photos-and-odd-uses-for-ballpoint-pens/"&gt;http://blog.edwardholets.com/2007/02/01/good-ideas-cool-photos-and-odd-uses-for-ballpoint-pens/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Unusual uses for a ball-point pen: Breaking into the debugger</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1604125</link><pubDate>Mon, 05 Feb 2007 15:48:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1604125</guid><dc:creator>Been there, done that</dc:creator><description>&lt;p&gt;Reminds me of the &amp;quot;good ol' days&amp;quot;, when men were men, and...anyway, one fellow I worked with did all sorts of electrical trouble-shooting and never needed a voltmeter....he'd just start prodding the open terminals looking for a &amp;quot;tingle&amp;quot;. He told me that if he couldn't get a good feel he'd grab hold of a water pipe with one hand and keep prodding at the circuitry until he felt something bite at him. He swore he only did this on 110 AC because &amp;nbsp;that was &amp;quot;safe&amp;quot;, but not so much on DC or 480 vac....(go figure)&lt;/p&gt;
&lt;p&gt;I don't think he did too good on computer mother boards...the voltage was too low to give him a good tingle.&lt;/p&gt;
&lt;p&gt;I guess I was a wimp...I always used a meter.&lt;/p&gt;
</description></item><item><title>What does an NMI error mean? (The infamous "Hardware Malfunction")</title><link>http://blogs.msdn.com/oldnewthing/archive/2007/01/30/1557491.aspx#1769276</link><pubDate>Tue, 27 Feb 2007 18:11:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1769276</guid><dc:creator>The Old New Thing</dc:creator><description>&lt;p&gt;Your memory is probably bad.&lt;/p&gt;</description></item></channel></rss>