|
|
| version 1.24, 2012/02/05 02:18:10 | version 1.25, 2012/02/05 02:22:49 |
|---|---|
| Line 42 load_segreg(int idx, UINT16 selector, UI | Line 42 load_segreg(int idx, UINT16 selector, UI |
| /* real-mode or vm86 mode */ | /* real-mode or vm86 mode */ |
| *sregp = selector; | *sregp = selector; |
| segdesc_clear(&sel.desc); | segdesc_clear(&sel.desc); |
| sel.desc.u.seg.limit = 0xffff; | |
| segdesc_set_default(idx, selector, &sel.desc); | segdesc_set_default(idx, selector, &sel.desc); |
| *sdp = sel.desc; | *sdp = sel.desc; |
| return; | return; |
| Line 385 segdesc_init(int idx, UINT16 sreg, descr | Line 384 segdesc_init(int idx, UINT16 sreg, descr |
| CPU_REGS_SREG(idx) = sreg; | CPU_REGS_SREG(idx) = sreg; |
| segdesc_clear(sdp); | segdesc_clear(sdp); |
| sdp->u.seg.limit = 0xffff; | |
| segdesc_set_default(idx, sreg, sdp); | segdesc_set_default(idx, sreg, sdp); |
| } | } |
| Line 397 segdesc_set_default(int idx, UINT16 sele | Line 395 segdesc_set_default(int idx, UINT16 sele |
| __ASSERT((sdp != NULL)); | __ASSERT((sdp != NULL)); |
| sdp->u.seg.segbase = (UINT32)selector << 4; | sdp->u.seg.segbase = (UINT32)selector << 4; |
| /* sdp->u.seg.limit */ | sdp->u.seg.limit = 0xffff; |
| sdp->u.seg.c = (idx == CPU_CS_INDEX) ? 1 : 0; /* code or data */ | sdp->u.seg.c = (idx == CPU_CS_INDEX) ? 1 : 0; /* code or data */ |
| sdp->u.seg.g = 0; /* non 4k factor scale */ | sdp->u.seg.g = 0; /* non 4k factor scale */ |
| sdp->u.seg.wr = 1; /* execute/read(CS) or read/write(others) */ | sdp->u.seg.wr = 1; /* execute/read(CS) or read/write(others) */ |