;-------------------------------------------------------------------------
;MuchMore's InputHandler
;© 1989 by Fridtjof Siebert
;compiles with a68k
;-------------------------------------------------------------------------

  XDEF MMInputHandler ; Then Handler Procedure
  XDEF WakeUpSignal   ; Signal to be send to awake MuchMore (byte)
  XDEF SigTask        ; TaskPtr to MuchMore's main task
  XDEF Sleeping       ; true while waiting for alt-ESC

ie_nextevent = 0;
ie_class     = 4;
ie_subclass  = 5;
ie_code      = 6;
ie_qualifier = 8;

Signal = -30-294;

SigTask:      dc.l 0;
WakeUpSignal: dc.b 0;
Sleeping:     dc.b 0;


MMInputHandler:

        move.l  A0,-(A7);  presave eventlist;
        tst.b   Sleeping;
        beq.s   rts;
loop:   cmp.b   #$10,ie_qualifier+1(A0); test if lAlt is set end rest is clear
        bne     next;
        cmp.w   #$45,ie_code(A0); test ESC
        bne.s   next;
        clr.w   ie_code(A0);
        move.l  $4,A6;
        move.l  SigTask,A1;
        moveq   #0,D0;
        move.b  WakeUpSignal,D1;
        bset    D1,D0;
        jsr     Signal(A6);
        sf      Sleeping;
        bra.s   rts;
next:   move.l  ie_nextevent(A0),A0;
        move.l  A0,D0;
        bne.s   loop;
rts:    move.l  (A7)+,D0;
        rts;

        end;
