Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06798 Core Critical (emulation) Always 23 days ago 23 days ago
Tester drencorxeen View Status Public Platform MAME (Official Binary)
Assigned To Resolution Duplicate OS Windows 10 (64-bit)
Status [?] Closed Driver coco3.cpp
Version 0.192 Fixed in Version Build 64-bit
Summary MESS-specific 06798: m6809 incorrectly handling opcode 0x104F
Description On a real m6809 CPU if you run a opcode of 0x104F the real 6809 will ignore the 0x10 opcode part of the instruction and will process the opcode of 0x4F which on a m6809 is a CLRA.

Please test on coco3, coco1, coco2.
Steps To Reproduce Created a test assembly language program to load register D with $FFFF, then issue a 6309 instruction CLRD, then after that writing register A and register B to specific memory locations and using basic to peek and print the values should yield a 0 for A and 255 for B, but the m6809 core in MAME ignores both bytes of the CLRD where it should have only ignored the 0x10.

I am including a DSK image for testing.

Steps once disk image is mounted in drive 0:

LOAD"6309.BAS"
RUN
On real CoCo 1, 2, 3 with a real m6809 in it the outputs as follows:
0
255

On emulator outputs:
255
255
Additional Information So the 6309 instruction CLRD (0x104F) the (0x10) is ignored on a real m6809 CPU and thus it still processes the (0x4F) part of the instruction and does a CLRA.

I have tested this on a system that does in fact have a real m6809 on it and thus I know in this case how the emulation for the m6809 is not handling this situation correctly.
Flags
Regression Version
Affected Sets / Systems
Attached Files
zip file icon 6309.zip (695 bytes) 23 days ago Uploaded by drencorxeen
Relationships
duplicate of 06797Acknowledged MC6809 incorrectly handling opcode 0x104F 
Notes
0
There are no notes attached to this issue.