Mail Archives: djgpp/1992/07/06/21:11:34
Dear Mr. delorie and all djgpp users,
Japanese go32 users found that go32 doesn't run under Cyrix Cx486DLC/SLC.
Mr. Shibata has just found that the trouble is resolved if granulity bits
in TSS segments are reset. I report the diff file for Cx486 below.
And I want to hear whether this is a bug or this is a safe design for i486
and only the Cyrix CPU has any problem.
--
Makoto Kobayashi
*** control.c Mon Jul 6 01:38:18 1992
--- e:control.c Mon Jul 6 01:29:48 1992
**************
*** 543,557 ****
fillgdt(g_core, 0xffffffffL, 0, 0x92, 3);
fillgdt(g_acode, 0xefffffffL, 0x10000000L, 0x9a, 3);
fillgdt(g_adata, 0xefffffffL, 0x10000000L, 0x92, 3);
! fillgdt(g_ctss, sizeof(TSS), ptr2linear(&c_tss), 0x89, 3);
! fillgdt(g_atss, sizeof(TSS), ptr2linear(&a_tss), 0x89, 3);
! fillgdt(g_ptss, sizeof(TSS), ptr2linear(&p_tss), 0x89, 3);
! fillgdt(g_itss, sizeof(TSS), ptr2linear(&i_tss), 0x89, 3);
fillgdt(g_rc32, 0xffff, (word32)_CS*16L, 0x9a, 3);
fillgdt(g_grdr, 0xffff, (word32)gr_paging_segment*16L, 0x9a, 0);
! fillgdt(g_v74, sizeof(TSS), ptr2linear(&v74_tss), 0x89, 3);
! fillgdt(g_v78, sizeof(TSS), ptr2linear(&v78_tss), 0x89, 3);
! fillgdt(g_v79, sizeof(TSS), ptr2linear(&v79_tss), 0x89, 3);
setup_tss(&c_tss, go_real_mode);
setup_tss(&a_tss, go_real_mode);
--- 543,557 ----
fillgdt(g_core, 0xffffffffL, 0, 0x92, 3);
fillgdt(g_acode, 0xefffffffL, 0x10000000L, 0x9a, 3);
fillgdt(g_adata, 0xefffffffL, 0x10000000L, 0x92, 3);
! fillgdt(g_ctss, sizeof(TSS), ptr2linear(&c_tss), 0x89, 1);
! fillgdt(g_atss, sizeof(TSS), ptr2linear(&a_tss), 0x89, 1);
! fillgdt(g_ptss, sizeof(TSS), ptr2linear(&p_tss), 0x89, 1);
! fillgdt(g_itss, sizeof(TSS), ptr2linear(&i_tss), 0x89, 1);
fillgdt(g_rc32, 0xffff, (word32)_CS*16L, 0x9a, 3);
fillgdt(g_grdr, 0xffff, (word32)gr_paging_segment*16L, 0x9a, 0);
! fillgdt(g_v74, sizeof(TSS), ptr2linear(&v74_tss), 0x89, 1);
! fillgdt(g_v78, sizeof(TSS), ptr2linear(&v78_tss), 0x89, 1);
! fillgdt(g_v79, sizeof(TSS), ptr2linear(&v79_tss), 0x89, 1);
setup_tss(&c_tss, go_real_mode);
setup_tss(&a_tss, go_real_mode);
----------------------------------------------------------------
- Raw text -