trunk/src/emu/cpu/i86/i86.c
| r29398 | r29399 | |
| 1354 | 1354 | |
| 1355 | 1355 | case 0x8c: // i_mov_wsreg |
| 1356 | 1356 | m_modrm = fetch(); |
| 1357 | | PutRMWord(m_sregs[(m_modrm & 0x18) >> 3]); // guess: ignore bit 5 |
| 1358 | | if(m_modrm & 0x20) logerror("%s: %06x: Mov Sreg - Invalid register\n", tag(), pc()); |
| 1357 | PutRMWord(m_sregs[(m_modrm & 0x18) >> 3]); // confirmed on hw: modrm bit 5 ignored |
| 1359 | 1358 | CLKM(MOV_RS,MOV_MS); |
| 1360 | 1359 | break; |
| 1361 | 1360 | |
| r29398 | r29399 | |
| 1369 | 1368 | case 0x8e: // i_mov_sregw |
| 1370 | 1369 | m_modrm = fetch(); |
| 1371 | 1370 | m_src = GetRMWord(); |
| 1371 | m_sregs[(m_modrm & 0x18) >> 3] = m_src; // confirmed on hw: modrm bit 5 ignored |
| 1372 | 1372 | CLKM(MOV_SR,MOV_SM); |
| 1373 | | switch (m_modrm & 0x38) |
| 1374 | | { |
| 1375 | | case 0x00: /* mov es,ew */ |
| 1376 | | m_sregs[ES] = m_src; |
| 1377 | | break; |
| 1378 | | case 0x08: /* mov cs,ew */ |
| 1379 | | m_sregs[CS] = m_src; |
| 1380 | | break; |
| 1381 | | case 0x10: /* mov ss,ew */ |
| 1382 | | m_sregs[SS] = m_src; |
| 1383 | | m_no_interrupt = 1; |
| 1384 | | break; |
| 1385 | | case 0x18: /* mov ds,ew */ |
| 1386 | | m_sregs[DS] = m_src; |
| 1387 | | break; |
| 1388 | | default: |
| 1389 | | logerror("%s: %06x: Mov Sreg - Invalid register\n", tag(), pc()); |
| 1390 | | } |
| 1391 | 1373 | break; |
| 1392 | 1374 | |
| 1393 | 1375 | case 0x8f: // i_popw |