@@ -386,19 +386,20 @@ namespace casioemu {
386
386
*/
387
387
impl_flags_out = PSW_Z;
388
388
(this ->*(handler->handler_function ))();
389
+ reg_psw &= ~impl_flags_changed;
390
+ reg_psw |= impl_flags_out & impl_flags_changed;
391
+
392
+ if (handler->hint & H_WB && impl_operands[0 ].register_size )
393
+ for (size_t bx = 0 ; bx != impl_operands[0 ].register_size ; ++bx)
394
+ reg_r[impl_operands[0 ].register_index + bx] = (uint8_t )(impl_operands[0 ].value >> (bx * 8 ));
395
+
389
396
if (code_viewer) {
390
397
if ((code_viewer->debug_flags & DEBUG_BREAKPOINT) && code_viewer->TryTrigBP (reg_csr, reg_pc)) {
391
398
emulator.SetPaused (true );
392
399
} else if ((code_viewer->debug_flags & DEBUG_STEP) && code_viewer->TryTrigBP (reg_csr, reg_pc, false )) {
393
400
emulator.SetPaused (true );
394
401
}
395
402
}
396
- reg_psw &= ~impl_flags_changed;
397
- reg_psw |= impl_flags_out & impl_flags_changed;
398
-
399
- if (handler->hint & H_WB && impl_operands[0 ].register_size )
400
- for (size_t bx = 0 ; bx != impl_operands[0 ].register_size ; ++bx)
401
- reg_r[impl_operands[0 ].register_index + bx] = (uint8_t )(impl_operands[0 ].value >> (bx * 8 ));
402
403
403
404
if (!(handler->hint & H_DS))
404
405
break ;
@@ -441,14 +442,11 @@ namespace casioemu {
441
442
output << std::hex << std::setfill (' 0' ) << std::uppercase;
442
443
for (StackFrame frame : stack) {
443
444
output << " function "
444
- << frame.new_csr << " :" << frame.new_pc
445
- << " returns to " << std::setw (6 );
445
+ << frame.new_csr << " :" << frame.new_pc << " returns to " ;
446
446
if (frame.lr_pushed ) {
447
447
uint16_t saved_lr, saved_lcsr = 0 ;
448
448
MMU &mmu = emulator.chipset .mmu ;
449
- saved_lr = ((uint16_t )mmu.ReadData (frame.lr_push_address + 1 ))
450
- << 8 |
451
- mmu.ReadData (frame.lr_push_address );
449
+ saved_lr = ((uint16_t )mmu.ReadData (frame.lr_push_address + 1 )) << 8 | mmu.ReadData (frame.lr_push_address );
452
450
if (memory_model == MM_LARGE)
453
451
saved_lcsr = mmu.ReadData (frame.lr_push_address + 2 );
454
452
output << saved_lcsr << " :" << saved_lr;
0 commit comments