;Copyright (C) 1997-2007 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach ) ; ;http://www.zsnes.com ;http://sourceforge.net/projects/zsnes ;https://zsnes.bountysource.com ; ;This program is free software; you can redistribute it and/or ;modify it under the terms of the GNU General Public License ;version 2 as published by the Free Software Foundation. ; ;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