; Mouse driver for use with Amos with Multi No or "nil=Execall(-132)"
;
;Author: Paul Overy -95- Ver2
;My very first MC program.

TEST_X: move.b  x,ox
        move.b  $dff00b,d0
        move.b  d0,x
        move.b  ox,d1
        sub.l   d1,d0
        bmi.s   X_NEG
        bpl.s   X_POS
        
TEST_Y: move.b  y,oy
        move.b  $dff00a,d2
        move.b  d2,y
        move.b  oy,d3
        sub.l   d3,d2
        bmi.s   Y_NEG
        bpl.s   Y_POS
        bra.s   CLIP
        
X_POS:  cmp     #127,d0
        blt.s   TEST_Y
        sub.l   #256,d0
        bra.s   TEST_Y
        

X_NEG:  cmp     #-127,d0
        bgt.s   TEST_Y
        add.l   #256,d0
        bra     TEST_Y
       
Y_POS:  cmp     #127,d2
        blt.s   CLIP
        sub.l   #256,d2
        bra.s   CLIP
        
Y_NEG:  cmp     #-127,d2
        BGT.s   CLIP
        add.l   #256,d2
        
CLIP:   add.l   d0,d4
        cmp     #128,d4
        bgt.s   INSIDE_SCREEN_X1
        move.l #128,d4
        INSIDE_SCREEN_X1:
        cmp 	#446,d4
        blt.s   INSIDE_SCREEN_X2
        move.l  #446,d4
        INSIDE_SCREEN_X2:

        add.l   d2,d5
        cmp     #51,d5
        bgt.s   INSIDE_SCREEN_Y1
        moveq.l #51,d5
        INSIDE_SCREEN_Y1:
        cmp     #290,d5
        blt.s   INSIDE_SCREEN_Y2
        move.l  #290,d5
        INSIDE_SCREEN_Y2:
        rts
        
        EVEN
        
        
x       dc.w	0
y       dc.w    0
ox	dc.w	0
oy      dc.w    0