Fix to cpu emulation mode

This commit is contained in:
z_demo_z
2002-06-02 01:26:10 +00:00
parent 673a298283
commit 695a0e6aa2
7 changed files with 31 additions and 0 deletions

View File

@@ -393,6 +393,7 @@ NEWSYM joinflags
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpb] mov cl,[xpb]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -448,6 +449,7 @@ BRKemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpc+1] mov cl,[xpc+1]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -537,6 +539,7 @@ BRKemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpb] mov cl,[xpb]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -592,6 +595,7 @@ COPemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpc+1] mov cl,[xpc+1]
mov [eax+ebx],cl mov [eax+ebx],cl

View File

@@ -382,6 +382,7 @@ EXTSYM dmadata
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpb] mov cl,[xpb]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -437,6 +438,7 @@ BRKemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpc+1] mov cl,[xpc+1]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -535,6 +537,7 @@ BRKemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpb] mov cl,[xpb]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -590,6 +593,7 @@ COPemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpc+1] mov cl,[xpc+1]
mov [eax+ebx],cl mov [eax+ebx],cl

View File

@@ -392,6 +392,7 @@ EXTSYM dmadata
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpb] mov cl,[xpb]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -447,6 +448,7 @@ BRKemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpc+1] mov cl,[xpc+1]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -545,6 +547,7 @@ BRKemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpb] mov cl,[xpb]
mov [eax+ebx],cl mov [eax+ebx],cl
@@ -600,6 +603,7 @@ COPemulmode
sub ebx,eax sub ebx,eax
mov [xpc],bx mov [xpc],bx
mov eax,[wramdata] mov eax,[wramdata]
xor ebx,ebx
mov bx,[xs] mov bx,[xs]
mov cl,[xpc+1] mov cl,[xpc+1]
mov [eax+ebx],cl mov [eax+ebx],cl

View File

@@ -1903,8 +1903,13 @@ COp5B: ; TCD i
endloop endloop
COp1B: ; TCS i COp1B: ; TCS i
mov ax,[xa] mov ax,[xa]
test byte[xe],1
jnz .emul
mov [xs],ax mov [xs],ax
endloop endloop
.emul
mov [xs],al
endloop
COp7B: ; TDC i COp7B: ; TDC i
mov ax,[xd] mov ax,[xd]
mov [xa],ax mov [xa],ax

View File

@@ -1896,8 +1896,13 @@ COp5B: ; TCD i
endloop endloop
COp1B: ; TCS i COp1B: ; TCS i
mov ax,[xa] mov ax,[xa]
test byte[xe],1
jnz .emul
mov [xs],ax mov [xs],ax
endloop endloop
.emul
mov [xs],al
endloop
COp7B: ; TDC i COp7B: ; TDC i
mov ax,[xd] mov ax,[xd]
mov [xa],ax mov [xa],ax

View File

@@ -1896,8 +1896,13 @@ COp5B: ; TCD i
endloop endloop
COp1B: ; TCS i COp1B: ; TCS i
mov ax,[xa] mov ax,[xa]
test byte[xe],1
jnz .emul
mov [xs],ax mov [xs],ax
endloop endloop
.emul
mov [xs],al
endloop
COp7B: ; TDC i COp7B: ; TDC i
mov ax,[xd] mov ax,[xd]
mov [xa],ax mov [xa],ax

View File

@@ -152,6 +152,7 @@ NEWSYM NMIemulmode
mov [xs],cx mov [xs],cx
xor bh,bh xor bh,bh
mov [xpb],bh
mov bl,[xpb] mov bl,[xpb]
xor eax,eax xor eax,eax
mov ax,[nmiv8] mov ax,[nmiv8]
@@ -320,6 +321,7 @@ NEWSYM IRQemulmode
mov [xs],cx mov [xs],cx
xor bh,bh xor bh,bh
mov [xpb],bh
mov bl,[xpb] mov bl,[xpb]
xor eax,eax xor eax,eax
mov ax,[irqv8] mov ax,[irqv8]
@@ -428,6 +430,7 @@ NEWSYM IRQemulmodedeb
mov [xs],cx mov [xs],cx
xor bh,bh xor bh,bh
mov [xpb],bh
mov bl,[xpb] mov bl,[xpb]
xor eax,eax xor eax,eax
mov ax,[irqv8] mov ax,[irqv8]
@@ -534,6 +537,7 @@ NEWSYM NMIemulmodedeb
mov [xs],cx mov [xs],cx
xor bh,bh xor bh,bh
mov [xpb],bh
mov bl,[xpb] mov bl,[xpb]
xor eax,eax xor eax,eax
mov ax,[nmiv8] mov ax,[nmiv8]