home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / disks / disk416.lzh / Intoxicated / source / handler.s next >
Text File  |  1990-12-16  |  2KB  |  99 lines

  1.             OPT        C+,L+,S-,Y+
  2.             
  3.             INCDIR    "DevpacAm:include/"
  4.             
  5.             INCLUDE    "devices/inputevent.i"
  6.             
  7.             INCLUDE    "exec.offsets"
  8.             
  9. ExecBase    =        4
  10.             
  11.             XREF    _IntuitionBase
  12.             XREF    _LinkerDB
  13.             XREF    _Common
  14.             
  15.             XDEF    _MHandler
  16.             
  17.             
  18.             IDNT    handler.a
  19.             SECTION    handler,CODE
  20.  
  21.             
  22. SinTab        DC.B    0,5,10,14,18,21,23,25
  23.             DC.B    25,25,23,21,18,14,10,5
  24.             DC.B    0,-5,-10,-14,-18,-21,-23,-25
  25.             DC.B    -25,-25,-23,-21,-18,-14,-10,-5
  26.             
  27. xAngle        DS.W    1
  28. yAngle        DS.W    1
  29. xDev        DS.B    1
  30. yDev        DS.B    1
  31.             
  32.             
  33. _MHandler    MOVE.L    A0,D0
  34.             
  35. .Again        CMP.B    #IECLASS_RAWMOUSE,ie_Class(A0)
  36.             BNE.B    .NotMouse
  37.             
  38.             MOVE.W    D0,-(SP)
  39.             LEA        xAngle(PC),A1
  40.             
  41.             MOVE.W    ie_X(A0),D0
  42.             ADD.W    (A1),D0
  43.             AND.W    #$FF,D0
  44.             MOVE.W    D0,(A1)
  45.             
  46.             LSR.W    #3,D0
  47.             MOVE.B    SinTab(PC,D0.W),D1
  48.             MOVE.B    4(A1),D0
  49.             MOVE.B    D1,4(A1)
  50.             SUB.B    D0,D1
  51.             
  52.             EXT.W    D1
  53.             
  54.             MOVE.W    ie_Y(A0),D0
  55.             ADD.W    D1,ie_Y(A0)
  56.             
  57.             ADD.W    2(A1),D0
  58.             AND.W    #$7F,D0
  59.             MOVE.W    D0,2(A1)
  60.             
  61.             LSR.W    #2,D0
  62.             MOVE.B    SinTab(PC,D0.W),D1
  63.             ASR.B    #1,D1
  64.             MOVE.B    5(A1),D0
  65.             MOVE.B    D1,5(A1)
  66.             SUB.B    D0,D1
  67.             
  68.             EXT.W    D1
  69.             ADD.W    D1,ie_X(A0)
  70.             
  71.             
  72.             MOVE.W    (SP)+,D0
  73.             
  74. .NotMouse    CMP.B    #IECLASS_RAWKEY,ie_Class(A0)
  75.             BNE.B    .NextEvent
  76.             
  77.             CMP.W    #$40,ie_Code(A0)
  78.             BNE.B    .NextEvent
  79.             MOVE.W    ie_Qualifier(A0),D1
  80.             AND.W    #IEQUALIFIER_RELATIVEMOUSE|IEQUALIFIER_LCOMMAND|IEQUALIFIER_RCOMMAND,D1
  81.             CMP.W    #IEQUALIFIER_RELATIVEMOUSE|IEQUALIFIER_LCOMMAND|IEQUALIFIER_RCOMMAND,D1
  82.             BNE.B    .NextEvent
  83.             
  84.             MOVEM.L    D0/A0/A6,-(SP)
  85.             MOVE.L    ExecBase,A6
  86.             LEA        _LinkerDB,A1
  87.             MOVE.B    _Common+4(A1),D1
  88.             MOVE.L    _Common+0(A1),A1
  89.             CLR.L    D0
  90.             BSET    D1,D0
  91.             JSR        _LVOSignal(A6)
  92.             MOVEM.L    (SP)+,D0/A0/A6
  93.             
  94. .NextEvent    MOVE.L    ie_NextEvent(A0),A0
  95.             MOVE.L    A0,D1
  96.             BNE.W    .Again
  97.             
  98.             RTS
  99.