This commit is contained in:
zsknight
2001-06-28 02:03:44 +00:00
parent dce2293746
commit 6f088e9021

View File

@@ -52,21 +52,21 @@ EXTSYM dmadata
%macro restoredl 0 %macro restoredl 0
mov dword[flagnz],0 mov dword[flagnz],0
test dl,80h test dl,80h
jz near %%noneg jz %%noneg
or dword[flagnz],10000h or dword[flagnz],10000h
%%noneg %%noneg
test dl,2h test dl,2h
jnz near %%zero jnz %%zero
or dword[flagnz],1 or dword[flagnz],1
%%zero %%zero
mov dword[flagc],0 mov dword[flagc],0
test dl,01h test dl,01h
jz near %%nocarry jz %%nocarry
mov dword[flagc],0FFh mov dword[flagc],0FFh
%%nocarry %%nocarry
mov dword[flago],0 mov dword[flago],0
test dl,40h test dl,40h
jz near %%nov jz %%nov
mov dword[flago],0FFh mov dword[flago],0FFh
%%nov %%nov
%endmacro %endmacro
@@ -799,25 +799,21 @@ COPemulmode
sub ebx,[initaddrl] sub ebx,[initaddrl]
add bx,2 add bx,2
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata]
mov cx,[xs] mov bx,[xs]
mov al,[xpb] mov cl,[xpb]
call membank0w8 mov [eax+ebx],cl
dec bx
dec cx or bx,word[stackor]
or cx,word[stackor] mov cl,[xpc+1]
mov al,[xpc+1] mov [eax+ebx],cl
call membank0w8 dec bx
or bx,word[stackor]
dec cx mov cl,[xpc]
or cx,word[stackor] mov [eax+ebx],cl
mov al,[xpc] dec bx
call membank0w8 or bx,word[stackor]
mov [xs],bx
dec cx
or cx,word[stackor]
mov [xs],cx
xor eax,eax xor eax,eax
xor bh,bh xor bh,bh
mov ax,[esi] mov ax,[esi]
@@ -842,25 +838,20 @@ COPemulmode
sub ebx,[initaddrl] sub ebx,[initaddrl]
inc bx inc bx
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata]
mov cx,[xs] mov bx,[xs]
mov al,[xpc+1] mov cl,[xpc+1]
call membank0w8 mov [eax+ebx],cl
dec bx
dec cx or bx,word[stackor]
or cx,word[stackor] mov cl,[xpc]
mov al,[xpc] mov [eax+ebx],cl
call membank0w8 dec bx
or bx,word[stackor]
dec cx
or cx,word[stackor]
xor eax,eax xor eax,eax
mov [xs],cx mov [xs],bx
mov ax,[esi] mov ax,[esi]
xor bh,bh xor bh,bh
mov [xpc],ax mov [xpc],ax
mov bl,[xpb] mov bl,[xpb]
test eax,8000h test eax,8000h
@@ -894,23 +885,17 @@ COPemulmode
sub ebx,[initaddrl] sub ebx,[initaddrl]
inc bx inc bx
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata]
mov cx,[xs] mov bx,[xs]
mov al,[xpc+1] mov cl,[xpc+1]
call membank0w8 mov [eax+ebx],cl
dec bx
dec cx or bx,word[stackor]
or cx,word[stackor] mov cl,[xpc]
mov al,[xpc] mov [eax+ebx],cl
call membank0w8 dec bx
or bx,word[stackor]
dec cx mov [xs],bx
or cx,word[stackor]
xor eax,eax
mov [xs],cx
xor eax,eax xor eax,eax
xor bh,bh xor bh,bh
mov cx,[esi] mov cx,[esi]
@@ -1228,21 +1213,21 @@ COPemulmode
%endmacro %endmacro
%macro POPMacroP 0 %macro POPMacroP 0
mov cx,[xs] mov eax,[wramdata]
inc cx mov bx,[xs]
and cx,word[stackand] inc bx
call membank0r8 and bx,word[stackand]
mov [xs],cx mov cl,[eax+ebx]
mov [xs],bx
xor bh,bh xor bh,bh
mov dl,al mov dl,cl
restoredl restoredl
test byte[xe],01h test byte[xe],01h
jnz near .emul jnz near .emul
mov bl,dl mov bl,dl
mov edi,[tableadc+ebx*4] mov edi,[tableadc+ebx*4]
test dl,00010000b test dl,00010000b
jnz near .setx jnz .setx
endloop endloop
.setx .setx
mov byte[xx+1],0 mov byte[xx+1],0
@@ -1319,55 +1304,41 @@ COPemulmode
%endmacro %endmacro
%macro RTIMacro 0 %macro RTIMacro 0
mov byte[doirqnext],0
cmp byte[nmistatus],3 cmp byte[nmistatus],3
jne near .nodis658162 jne .nodis658162
test byte[curexecstate],01h test byte[curexecstate],01h
jz near .nodis65816 jz .nodis65816
and byte[curexecstate],0FEh and byte[curexecstate],0FEh
call changeexecloop call changeexecloop
.nodis65816 .nodis65816
cmp byte[curexecstate],0 cmp byte[curexecstate],0
jne near .nn jne .nn
xor dh,dh xor dh,dh
.nn .nn
.nodis658162 .nodis658162
mov byte[curnmi],0 mov byte[curnmi],0
test byte[xe],1 test byte[xe],1
jne near emulRTI jne near emulRTI
mov eax,[wramdata]
mov cx,[xs] mov bx,[xs]
inc cx inc bx
and cx,word[stackand] and bx,word[stackand]
call membank0r8 mov dl,[eax+ebx]
mov [xs],cx
mov dl,al
restoredl restoredl
inc bx
mov cx,[xs] and bx,word[stackand]
inc cx mov cl,[eax+ebx]
and cx,word[stackand] inc bx
xor eax,eax and bx,word[stackand]
call membank0r8 mov ch,[eax+ebx]
mov [xpc],al inc bx
and bx,word[stackand]
inc cx mov al,[eax+ebx]
and cx,word[stackand]
xor eax,eax
call membank0r8
mov [xpc+1],al
inc cx
and cx,word[stackand]
xor eax,eax
call membank0r8
mov [xpb],al mov [xpb],al
mov [xs],cx mov [xs],bx
xor bh,bh xor bh,bh
xor eax,eax xor eax,eax
mov ax,[xpc] mov ax,cx
mov bl,dl mov bl,dl
mov edi,[tableadc+ebx*4] mov edi,[tableadc+ebx*4]
mov bl,[xpb] mov bl,[xpb]
@@ -1387,7 +1358,7 @@ COPemulmode
mov [initaddrl],esi mov [initaddrl],esi
add esi,eax add esi,eax
test dl,00010000b test dl,00010000b
jnz near .setx jnz .setx
endloop endloop
.setx .setx
mov byte[xx+1],0 mov byte[xx+1],0
@@ -1410,40 +1381,29 @@ COPemulmode
endloop endloop
emulRTI emulRTI
mov cx,[xs] mov eax,[wramdata]
inc cx mov bx,[xs]
and cx,word[stackand] inc bx
call membank0r8 and bx,word[stackand]
mov [xs],cx mov dl,[eax+ebx]
mov dl,al
or dl,00110000b or dl,00110000b
restoredl restoredl
inc bx
mov cx,[xs] and bx,word[stackand]
inc cx mov cl,[eax+ebx]
and cx,word[stackand] inc bx
xor eax,eax and bx,word[stackand]
call membank0r8 mov ch,[eax+ebx]
mov [xpc],al mov [xs],bx
inc cx
and cx,word[stackand]
xor eax,eax
call membank0r8
mov [xpc+1],al
mov [xs],cx
xor bh,bh xor bh,bh
xor eax,eax xor eax,eax
mov ax,[xpc] mov ax,cx
mov bl,dl mov bl,dl
mov edi,[tableadc+ebx*4] mov edi,[tableadc+ebx*4]
xor bl,bl xor bl,bl
mov [xpc],ax mov [xpc],ax
test eax,8000h test eax,8000h
jz near .loweraddr jz .loweraddr
mov esi,[snesmmap+ebx*4] mov esi,[snesmmap+ebx*4]
mov [initaddrl],esi mov [initaddrl],esi
add esi,eax add esi,eax
@@ -1456,49 +1416,27 @@ emulRTI
%endmacro %endmacro
%macro RTLMacro 0 %macro RTLMacro 0
mov eax,[wramdata]
mov cx,[xs] mov bx,[xs]
inc cx inc bx
and cx,word[stackand] and bx,word[stackand]
xor eax,eax mov cl,[eax+ebx]
call membank0r8 inc bx
mov [xpc],al and bx,word[stackand]
mov ch,[eax+ebx]
inc cx inc bx
and cx,word[stackand] and bx,word[stackand]
xor eax,eax mov al,[eax+ebx]
call membank0r8
mov [xpc+1],al
inc cx
and cx,word[stackand]
xor eax,eax
call membank0r8
mov [xpb],al mov [xpb],al
mov [xs],bx
; inc bx
; and bx,word[stackand]
; mov cl,[eax+ebx]
; inc bx
; and bx,word[stackand]
; mov ch,[eax+ebx]
; inc bx
; and bx,word[stackand]
; mov al,[eax+ebx]
; mov [xpb],al
mov [xs],cx
xor bh,bh xor bh,bh
xor eax,eax xor eax,eax
mov ax,[xpc] mov ax,cx
inc ax inc ax
mov bl,[xpb] mov bl,[xpb]
mov [xpc],ax mov [xpc],ax
test eax,8000h test eax,8000h
jz near .loweraddr jz .loweraddr
mov esi,[snesmmap+ebx*4] mov esi,[snesmmap+ebx*4]
mov [initaddrl],esi mov [initaddrl],esi
add esi,eax add esi,eax
@@ -1511,27 +1449,23 @@ emulRTI
%endmacro %endmacro
%macro RTSMacro 0 %macro RTSMacro 0
mov eax,[wramdata]
mov cx,[xs] mov bx,[xs]
inc cx inc bx
and cx,word[stackand] and bx,word[stackand]
call membank0r8 mov cl,[eax+ebx]
mov [xpc],al inc bx
and bx,word[stackand]
inc cx mov ch,[eax+ebx]
and cx,word[stackand] mov [xs],bx
call membank0r8
mov [xpc+1],al
mov [xs],cx
xor bh,bh xor bh,bh
xor eax,eax xor eax,eax
mov ax,[xpc] mov ax,cx
inc ax inc ax
mov [xpc],ax mov [xpc],ax
mov bl,[xpb] mov bl,[xpb]
test eax,8000h test eax,8000h
jz near .loweraddr jz .loweraddr
mov esi,[snesmmap+ebx*4] mov esi,[snesmmap+ebx*4]
mov [initaddrl],esi mov [initaddrl],esi
add esi,eax add esi,eax