File tree Expand file tree Collapse file tree 2 files changed +7
-7
lines changed
Expand file tree Collapse file tree 2 files changed +7
-7
lines changed Original file line number Diff line number Diff line change @@ -1862,8 +1862,8 @@ uint64_t w65816_tick(w65816_t* c, uint64_t pins) {
18621862 case (0x60 <<4 )|1 : _SA (c -> PC );break ;
18631863 case (0x60 <<4 )|2 : _VDA (0 );_SA (_SP (++ _S (c )));break ;
18641864 case (0x60 <<4 )|3 : _VDA (0 );_SA (_SP (++ _S (c )));c -> AD = _GD ();break ;
1865- case (0x60 <<4 )|4 : c -> PC = (_GD ()<<8 )|c -> AD ; _SA ( c -> PC ++ ) ;break ;
1866- case (0x60 <<4 )|5 : _FETCH ();break ;
1865+ case (0x60 <<4 )|4 : _SA ( _SP ( _S ( c ))); c -> PC = (_GD ()<<8 )|c -> AD ;break ;
1866+ case (0x60 <<4 )|5 : ++ c -> PC ; _FETCH ();break ;
18671867 case (0x60 <<4 )|6 : assert (false);break ;
18681868 case (0x60 <<4 )|7 : assert (false);break ;
18691869 case (0x60 <<4 )|8 : assert (false);break ;
@@ -1973,7 +1973,7 @@ uint64_t w65816_tick(w65816_t* c, uint64_t pins) {
19731973 case (0x6B <<4 )|2 : _VDA (0 );_SA (_SP (++ _S (c )));break ;
19741974 case (0x6B <<4 )|3 : _VDA (0 );_SA (_SP (++ _S (c )));c -> AD = _GD ();break ;
19751975 case (0x6B <<4 )|4 : _VDA (0 );_SA (_SP (++ _S (c )));c -> PC = (_GD ()<<8 )|c -> AD ;break ;
1976- case (0x6B <<4 )|5 : c -> PBR = _GD ();_FETCH ();break ;
1976+ case (0x6B <<4 )|5 : c -> PBR = _GD ();++ c -> PC ; _FETCH ();break ;
19771977 case (0x6B <<4 )|6 : assert (false);break ;
19781978 case (0x6B <<4 )|7 : assert (false);break ;
19791979 case (0x6B <<4 )|8 : assert (false);break ;
Original file line number Diff line number Diff line change @@ -752,10 +752,10 @@ def i_rts(o):
752752 o .t ('_VDA(0);_SA(_SP(++_S(c)));' )
753753 # load return address high byte from stack
754754 o .t ('_VDA(0);_SA(_SP(++_S(c)));c->AD=_GD();' )
755- # put return address in PC, this is one byte before next op, do junk read from Stack
756- o .t ('c ->PC=(_GD()<<8)|c->AD;_SA(c->PC++) ;' )
755+ # put return address in PC, this is one byte before next op, do junk read from stack
756+ o .t ('_SA(_SP(_S(c)));c ->PC=(_GD()<<8)|c->AD;' )
757757 # next tick is opcode fetch
758- o .t ('' );
758+ o .t ('++c->PC; ' );
759759
760760#-------------------------------------------------------------------------------
761761def i_rtl (o ):
@@ -769,7 +769,7 @@ def i_rtl(o):
769769 # put return address in PC, read PBR from stack
770770 o .t ('_VDA(0);_SA(_SP(++_S(c)));c->PC=(_GD()<<8)|c->AD;' )
771771 # next tick is opcode fetch
772- o .t ('c->PBR=_GD();' );
772+ o .t ('c->PBR=_GD();++c->PC; ' );
773773
774774#-------------------------------------------------------------------------------
775775def i_rti (o ):
You can’t perform that action at this time.
0 commit comments