6502: update prev commmit (moves P |= F_I; to STATE_RESET instead of device_reset) (nw)

This commit is contained in:
hap 2019-08-15 17:03:39 +02:00
parent 6374f364c2
commit 5af23eec34
4 changed files with 5 additions and 4 deletions

View File

@ -9,6 +9,8 @@
TODO: TODO:
- device_start SP = 0x01bd; can't be right. At power-on, SP = 0(0x100) - device_start SP = 0x01bd; can't be right. At power-on, SP = 0(0x100)
and at RESET, it is decremented 3 times without writing to the stack and at RESET, it is decremented 3 times without writing to the stack
see: https://www.pagetable.com/?p=410
In other words, the first couple of cycles of STATE_RESET aren't emulated
***************************************************************************/ ***************************************************************************/
@ -116,7 +118,6 @@ void m6502_device::init()
void m6502_device::device_reset() void m6502_device::device_reset()
{ {
P |= F_I;
inst_state = STATE_RESET; inst_state = STATE_RESET;
inst_substate = 0; inst_substate = 0;
inst_state_base = 0; inst_state_base = 0;

View File

@ -97,7 +97,7 @@ vbl_zpg
# exceptions # exceptions
reset_16 reset_16
PC = read_arg(0xfff1); P |= F_I; PC = read_arg(0xfff1);
PC = set_h(PC, read_arg(0xfff0)); PC = set_h(PC, read_arg(0xfff0));
prefetch(); prefetch();
inst_state = -1; inst_state = -1;

View File

@ -1218,7 +1218,7 @@ tya_imp
# exceptions # exceptions
reset reset
PC = read_arg(0xfffc); P |= F_I; PC = read_arg(0xfffc);
PC = set_h(PC, read_arg(0xfffd)); PC = set_h(PC, read_arg(0xfffd));
prefetch(); prefetch();
inst_state = -1; inst_state = -1;

View File

@ -114,7 +114,7 @@ jmp_zpi
prefetch(); prefetch();
reset740 reset740
PC = read_arg(0xfffe); P |= F_I; PC = read_arg(0xfffe);
PC = set_h(PC, read_arg(0xffff)); PC = set_h(PC, read_arg(0xffff));
prefetch(); prefetch();
inst_state = -1; inst_state = -1;