From ef168abf269db218e2412c58ba0c032c3b7417f0 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 2 Jul 2013 18:49:21 -0400 Subject: [PATCH] disassembler - calculate pc relative addresses --- cpu/CpuModule_Disassembler.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpu/CpuModule_Disassembler.c b/cpu/CpuModule_Disassembler.c index 5736710..a176802 100644 --- a/cpu/CpuModule_Disassembler.c +++ b/cpu/CpuModule_Disassembler.c @@ -373,9 +373,11 @@ static ULO cpuDis71(ULO pcp, STR *sdata, STR *soperands) static ULO cpuDis72(ULO pcp, STR *sdata, STR *soperands) { ULO disp = memoryReadWord(pcp); + ULO ea = pcp + disp; + if (disp & 0x8000) ea += 0xffff0000; cpuDisWordAppend(disp, sdata); - sprintf(cpuDisEoS(soperands), "$%.4X(PC)", disp); + sprintf(cpuDisEoS(soperands), "$%.4X ; $%.4X(PC)", ea, disp); return pcp + 2; }