|
|
| version 1.21, 2004/01/05 15:47:18 | version 1.22, 2004/01/08 16:29:56 |
|---|---|
| Line 255 void i286c_step(void) { | Line 255 void i286c_step(void) { |
| } | } |
| UINT32 i286c_selector(UINT sel) { | |
| I286DTR *dtr; | |
| UINT32 addr; | |
| UINT32 ret; | |
| dtr = (sel & 4)?&I286_LDTRC:&I286_GDTR; | |
| addr = (dtr->base24 << 16) + dtr->base + (sel & (~7)); | |
| ret = i286_memoryread_w(addr+2); | |
| ret += i286_memoryread(addr+4) << 16; | |
| TRACEOUT(("selector idx=%x %s rpl=%d - real addr = %.6x", | |
| (sel >> 3), (sel & 4)?"LDT":"GDT", sel & 3, ret)); | |
| return(ret); | |
| } | |
| // ---- test | // ---- test |
| #if defined(I286C_TEST) | #if defined(I286C_TEST) |