X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fplugins%2Fps2.c;h=b7514162a9e64bcdb5e0aa6f9be0515d15d45599;hp=aa43efc208effde5591cecee3d3b927934ca436b;hb=0c3db8ce9f40190ec063347e21ed382d5486cb67;hpb=a296978bfea3cd0a8b6a1eda8ca5c627d0523e0d diff --git a/firmware/apps/plugins/ps2.c b/firmware/apps/plugins/ps2.c index aa43efc..b751416 100644 --- a/firmware/apps/plugins/ps2.c +++ b/firmware/apps/plugins/ps2.c @@ -11,8 +11,31 @@ #include "ps2.h" #include "jtag.h" +//! Handles a monitor command. +void ps2_handle_fn( uint8_t const app, + uint8_t const verb, + uint32_t const len); + + +// define the ps2 app's app_t +app_t const ps2_app = { + + /* app number */ + PS2, + + /* handle fn */ + ps2_handle_fn, + + /* name */ + "PS2", -u16 mclock=0; + /* desc */ + "\tThe PS2 app spies on PS/2. For now, it just reports the\n" + "\tinter-character timing information.\n" +}; + + +u32 mclock=0; u32 clock=0; // Timer A0 interrupt service routine @@ -30,14 +53,12 @@ interrupt(TIMERA0_VECTOR) Timer_A (void) TDO P5.2 */ -// This is just a plugin for now. -#define ps2handle pluginhandle - u32 oldclock=0; //! Handles a monitor command. -int ps2handle(unsigned char app, - unsigned char verb, - unsigned int len){ +void ps2_handle_fn( uint8_t const app, + uint8_t const verb, + uint32_t const len) +{ switch(verb){ case START: WDTCTL = WDTPW + WDTHOLD; // Stop WDT @@ -60,10 +81,13 @@ int ps2handle(unsigned char app, while((P5IN&TDI));// && P5IN&TDO)); //Transmit the data only if it is new. - - if((cmddatalong[0]=clock-oldclock)>0x80) + if((clock-oldclock)>0x100){ + cmddatalong[0]=clock;//-oldclock; + cmddatalong[0]-=oldclock; + oldclock=clock; + txdata(app,verb,4); - oldclock=clock; + } } break; case STOP: