;Copyright (C) 1997-2005 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach )
;
;http://www.zsnes.com
;http://sourceforge.net/projects/zsnes
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either
;version 2 of the License, or (at your option) any later
;version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.



;*******************************************************
; InitReg                          Initializes Registers
;*******************************************************

%macro setreg 2
    mov edi,%1
    add edi,[regptr]
    mov eax,%2
    mov [edi],eax
%endmacro

;*******************************************************
; Registers     Note : Remember to restore AH, ECX, & DX
;*******************************************************

%macro checkmultchange 0
    ; execute multiplication
    cmp byte[multchange],0
    je .nomult
    push edx
    push eax
    xor bh,bh
    mov bl,[mode7B+1]
    mov ax,[mode7A]
    test bl,80h
    jz .noneg
    mov bh,0FFh
.noneg
    imul bx
    mov [compmult],ax
    mov [compmult+2],dl
    pop eax
    pop edx
    mov byte[multchange],0
.nomult
%endmacro

%macro mouse4016doxA 2
    cmp byte[JoyAPos],%1
    jne .nx7
    mov bx,[mousexpos]
    shr bx,%2
    and bx,1
    mov al,bl
.nx7
%endmacro

%macro mouse4016doyA 2
    cmp byte[JoyAPos],%1
    jne .ny7
    mov bx,[mouseypos]
    shr bx,%2
    and bx,1
    mov al,bl
.ny7
%endmacro

%macro mouse4017dox 2
    cmp byte[JoyBPos],%1
    jne .nx7
    mov bx,[mousexpos]
    shr bx,%2
    and bx,1
    mov al,bl
.nx7
%endmacro

%macro mouse4017doy 2
    cmp byte[JoyBPos],%1
    jne .ny7
    mov bx,[mouseypos]
    shr bx,%2
    and bx,1
    mov al,bl
.ny7
%endmacro
