trunk/src/emu/cpu/i386/i386.c
| r32567 | r32568 | |
| 977 | 977 | if((desc.flags & 0x0004) || (DPL == CPL)) |
| 978 | 978 | { |
| 979 | 979 | /* IRQ to same privilege */ |
| 980 | | if(V8086_MODE) |
| 980 | if(V8086_MODE && !m_ext) |
| 981 | 981 | { |
| 982 | 982 | logerror("IRQ: Gate to same privilege from VM86 mode.\n"); |
| 983 | 983 | FAULT_EXP(FAULT_GP,segment & ~0x03); |
| r32567 | r32568 | |
| 1183 | 1183 | } |
| 1184 | 1184 | CHANGE_PC(m_eip); |
| 1185 | 1185 | |
| 1186 | | m_CPL = m_sreg[CS].selector & 0x03; |
| 1186 | m_CPL = (m_sreg[SS].flags >> 5) & 3; |
| 1187 | 1187 | // printf("286 Task Switch from selector %04x to %04x\n",old_task,selector); |
| 1188 | 1188 | } |
| 1189 | 1189 | |
| r32567 | r32568 | |
| 1301 | 1301 | |
| 1302 | 1302 | CHANGE_PC(m_eip); |
| 1303 | 1303 | |
| 1304 | | m_CPL = m_sreg[CS].selector & 0x03; |
| 1304 | m_CPL = (m_sreg[SS].flags >> 5) & 3; |
| 1305 | 1305 | // printf("386 Task Switch from selector %04x to %04x\n",old_task,selector); |
| 1306 | 1306 | } |
| 1307 | 1307 | |
| r32567 | r32568 | |
| 3517 | 3517 | m_sreg[CS].selector = 0xf000; |
| 3518 | 3518 | m_sreg[CS].base = 0xffff0000; |
| 3519 | 3519 | m_sreg[CS].limit = 0xffff; |
| 3520 | m_sreg[CS].flags = 0x9b; |
| 3520 | 3521 | m_sreg[CS].valid = true; |
| 3521 | 3522 | |
| 3522 | 3523 | m_sreg[DS].base = m_sreg[ES].base = m_sreg[FS].base = m_sreg[GS].base = m_sreg[SS].base = 0x00000000; |