home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Mark Pilgrim / Mousebroken 1.0.1 / source / Modules source ƒ / Restless mouse / Restless module.c next >
Encoding:
C/C++ Source or Header  |  1994-10-30  |  1023 b   |  79 lines  |  [TEXT/KAHL]

  1. /* Restless Mouse -- a Mousebroken mouse module */
  2. /* written 11/93 by Mark Pilgrim */
  3. /* This module placed in the public domain. */
  4.  
  5. #include "Retrace.h"
  6.  
  7. extern Boolean CrsrNew : 0x8CE;
  8. extern Point mTemp : 0x828;
  9. extern Point RawMouse : 0x82C;
  10.  
  11. unsigned long    me;
  12. unsigned int    iter;
  13.  
  14. void header(void);
  15. void main(void);
  16.  
  17. void header(void)
  18. {
  19.     asm
  20.     {
  21.         dc.l    0
  22.         move.l a0, d0
  23.         lea header, a0
  24.         jmp main
  25.     }
  26. }
  27.  
  28. #include "SetUpA4.h"
  29.  
  30. void main(void)
  31. {
  32.     VBLTask*        myVBL;
  33.     unsigned char    thisChar;
  34.     
  35.     RememberA0();
  36.     SetUpA4();
  37.     
  38.     asm
  39.     {
  40.         move.l d0, myVBL
  41.     }
  42.     
  43.     if (me != 'MMdl')
  44.     {
  45.         me = 'MMdl';
  46.         iter=0;
  47.     }
  48.     
  49.     thisChar=*((unsigned char*)(ROMBase+iter));
  50.     switch ((thisChar&0x38)>>3)
  51.     {
  52.         case 0x00:
  53.             RawMouse.h++;
  54.             mTemp.h++;
  55.             break;
  56.         case 0x01:
  57.         case 0x02:
  58.         case 0x03:
  59.             RawMouse.h--;
  60.             mTemp.h--;
  61.             break;
  62.         case 0x04:
  63.         case 0x05:
  64.             RawMouse.v++;
  65.             mTemp.v++;
  66.             break;
  67.         case 0x06:
  68.         case 0x07:
  69.             RawMouse.v--;
  70.             mTemp.v--;
  71.             break;
  72.     }
  73.     
  74.     iter++;
  75.     CrsrNew = TRUE;
  76.     myVBL->vblCount = 3;
  77.     RestoreA4();
  78. }
  79.