projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some fixes towards 0.2.37-pre5
[fw/sdcc]
/
sim
/
ucsim
/
s51.src
/
jmp.cc
diff --git
a/sim/ucsim/s51.src/jmp.cc
b/sim/ucsim/s51.src/jmp.cc
index d66b05a0cdac8f7c27d98d6fa7105a32f0a7dcb0..914c972827b453d3325c8055d0933f97f5b9bebd 100644
(file)
--- a/
sim/ucsim/s51.src/jmp.cc
+++ b/
sim/ucsim/s51.src/jmp.cc
@@
-280,7
+280,7
@@
t_uc51::inst_reti(uchar code)
proc_write_sp(*aof_SP);
PC= h*256 + l;
proc_write_sp(*aof_SP);
PC= h*256 + l;
- was_reti= TRUE;
+ was_reti=
DD_
TRUE;
class it_level *il= (class it_level *)(it_levels->top());
if (il &&
il->level >= 0)
class it_level *il= (class it_level *)(it_levels->top());
if (il &&
il->level >= 0)
@@
-503,6
+503,7
@@
t_uc51::inst_djnz_addr_addr(uchar code)
addr = get_direct(fetch(), &event_at.wi, &event_at.ws);
jaddr= fetch();
addr = get_direct(fetch(), &event_at.wi, &event_at.ws);
jaddr= fetch();
+ tick(1);
if (--(*addr))
PC= (PC + (signed char)jaddr) & (EROM_SIZE-1);
return(resGO);
if (--(*addr))
PC= (PC + (signed char)jaddr) & (EROM_SIZE-1);
return(resGO);
@@
-522,6
+523,7
@@
t_uc51::inst_djnz_rn_addr(uchar code)
reg = get_reg(code & 0x07, &event_at.wi);
jaddr= fetch();
reg = get_reg(code & 0x07, &event_at.wi);
jaddr= fetch();
+ tick(1);
if (--(*reg))
PC= (PC + (signed char)jaddr) & (EROM_SIZE-1);
return(resGO);
if (--(*reg))
PC= (PC + (signed char)jaddr) & (EROM_SIZE-1);
return(resGO);