home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d968 / justlook.lha / JustLook / Source / Handlers.asm next >
Assembly Source File  |  1993-12-04  |  2KB  |  94 lines

  1.  
  2. ; Handlers.asm, For use in JustLook.
  3. ; © Kamran Karimi.
  4. ;
  5. ; Assembled with SAS/C 6.00 assembler.
  6. ; asm -iinclude: Handlers.asm
  7.  
  8.  
  9.  include "devices/inputevent.i" 
  10.  
  11. ExecBase equ  4
  12.  
  13. Signal   equ -324
  14.  
  15.  XREF _Me
  16.  
  17.  XREF _NoKey_Port
  18.  XREF _NoMouse_Port
  19.  XDEF _DisableIE
  20.  
  21.  XREF _LeftMask
  22.  XREF _MidMask
  23.  XREF _RightMask
  24.  XDEF _WaitIE
  25.  
  26.  SECTION TheHandlers,CODE
  27.  
  28. _DisableIE: 
  29.  move.l  a0,-(a7)
  30. CheckLoopDIE: 
  31.  move.l  _NoKey_Port,d0
  32.  beq     KeyNotDisabled
  33.  cmpi.b  #IECLASS_RAWKEY,ie_Class(a0)
  34.  beq     Null_It
  35. KeyNotDisabled: 
  36.  move.l  _NoMouse_Port,d0
  37.  beq     MouseNotDisabled
  38.  move.b  ie_Class(a0),d0
  39.  cmpi.b  #IECLASS_POINTERPOS,d0
  40.  beq     Null_It
  41.  cmpi.b  #IECLASS_NEWPOINTERPOS,d0
  42.  beq     Null_It
  43.  cmpi.b  #IECLASS_RAWMOUSE,d0
  44.  bne     NotAMouseEvent
  45. Null_It: 
  46.  cmpi.b   #$ff,ie_SubClass(a0)
  47.  beq      CheckNextDIE
  48.  move.b  #IECLASS_NULL,ie_Class(a0)
  49. NotAMouseEvent:
  50. MouseNotDisabled:
  51. CheckNextDIE: 
  52.  move.l  (a0),d0
  53.  move.l  d0,a0
  54.  bne     CheckLoopDIE
  55.  move.l  (a7)+,d0
  56.  rts
  57.  
  58. _WaitIE:
  59.  move.l  a0,-(a7)
  60. CheckLoopWIE:
  61.  cmpi.b  #IECLASS_RAWMOUSE,ie_Class(a0)
  62.  bne     CheckNextWIE
  63.  moveq   #0,d0
  64. TestLeftButton:
  65.  cmpi.w  #IECODE_LBUTTON,ie_Code(a0)
  66.  bne     TestMidButton
  67.  or.l    _LeftMask,d0
  68. TestMidButton:
  69.  cmpi.w  #IECODE_MBUTTON,ie_Code(a0)
  70.  bne     TestRightButton
  71.  or.l    _MidMask,d0
  72. TestRightButton:
  73.  cmpi.w  #IECODE_RBUTTON,ie_Code(a0)
  74.  bne     SignalIt
  75.  or.l    _RightMask,d0
  76. SignalIt:
  77.  tst.l   d0
  78.  beq     CheckNextWIE
  79.  move.l  a6,-(a7)
  80.  movea.l ExecBase,a6
  81.  movea.l _Me,a1
  82.  jsr     Signal(a6)
  83.  move.l  (a7)+,a6
  84.  bra     ExitWIE
  85. CheckNextWIE:
  86.  movea.l (a7),a0
  87.  move.l  (a0),d0
  88.  movea.l d0,a0
  89.  bne     CheckLoopWIE
  90. ExitWIE:
  91.  move.l  (a7)+,d0
  92.  rts
  93.  end
  94.