diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pc98/cbus/gdc.c | 7 | ||||
-rw-r--r-- | sys/pc98/cbus/syscons_cbus.c | 2 | ||||
-rw-r--r-- | sys/pc98/pc98/pc98gdc.c | 7 | ||||
-rw-r--r-- | sys/pc98/pc98/syscons_pc98.c | 2 |
4 files changed, 12 insertions, 6 deletions
diff --git a/sys/pc98/cbus/gdc.c b/sys/pc98/cbus/gdc.c index df3a3e7..4543e0f 100644 --- a/sys/pc98/cbus/gdc.c +++ b/sys/pc98/cbus/gdc.c @@ -1096,14 +1096,17 @@ gdc_set_hw_cursor_shape(video_adapter_t *adp, int base, int height, start = celsize - (base + height); end = celsize - base - 1; + +#if 0 /* * muPD7220 GDC has anomaly that if end == celsize - 1 then start * must be 0, otherwise the cursor won't be correctly shown * in the first row in the screen. We shall set end to celsize - 2; * if end == celsize -1 && start > 0. XXX */ - if ((end == celsize - 1) && (start > 0)) + if ((end == celsize - 1) && (start > 0) && (start < end)) --end; +#endif s = spltty(); master_gdc_cmd(0x4b); /* _GDC_CSRFORM */ @@ -1111,7 +1114,7 @@ gdc_set_hw_cursor_shape(video_adapter_t *adp, int base, int height, | ((celsize - 1) & 0x1f)); /* cel size */ master_gdc_word_prm(((end & 0x1f) << 11) /* end line */ | (12 << 6) /* blink rate */ - | (blink ? 0x20 : 0) /* blink on/off */ + | (blink ? 0 : 0x20) /* blink on/off */ | (start & 0x1f)); /* start line */ splx(s); diff --git a/sys/pc98/cbus/syscons_cbus.c b/sys/pc98/cbus/syscons_cbus.c index c461b0a..92bc77b 100644 --- a/sys/pc98/cbus/syscons_cbus.c +++ b/sys/pc98/cbus/syscons_cbus.c @@ -169,7 +169,7 @@ sc_get_cons_priority(int *unit, int *flags) void sc_get_bios_values(bios_values_t *values) { - values->cursor_start = 0; + values->cursor_start = 15; values->cursor_end = 16; values->shift_state = 0; if (pc98_machine_type & M_8M) diff --git a/sys/pc98/pc98/pc98gdc.c b/sys/pc98/pc98/pc98gdc.c index df3a3e7..4543e0f 100644 --- a/sys/pc98/pc98/pc98gdc.c +++ b/sys/pc98/pc98/pc98gdc.c @@ -1096,14 +1096,17 @@ gdc_set_hw_cursor_shape(video_adapter_t *adp, int base, int height, start = celsize - (base + height); end = celsize - base - 1; + +#if 0 /* * muPD7220 GDC has anomaly that if end == celsize - 1 then start * must be 0, otherwise the cursor won't be correctly shown * in the first row in the screen. We shall set end to celsize - 2; * if end == celsize -1 && start > 0. XXX */ - if ((end == celsize - 1) && (start > 0)) + if ((end == celsize - 1) && (start > 0) && (start < end)) --end; +#endif s = spltty(); master_gdc_cmd(0x4b); /* _GDC_CSRFORM */ @@ -1111,7 +1114,7 @@ gdc_set_hw_cursor_shape(video_adapter_t *adp, int base, int height, | ((celsize - 1) & 0x1f)); /* cel size */ master_gdc_word_prm(((end & 0x1f) << 11) /* end line */ | (12 << 6) /* blink rate */ - | (blink ? 0x20 : 0) /* blink on/off */ + | (blink ? 0 : 0x20) /* blink on/off */ | (start & 0x1f)); /* start line */ splx(s); diff --git a/sys/pc98/pc98/syscons_pc98.c b/sys/pc98/pc98/syscons_pc98.c index c461b0a..92bc77b 100644 --- a/sys/pc98/pc98/syscons_pc98.c +++ b/sys/pc98/pc98/syscons_pc98.c @@ -169,7 +169,7 @@ sc_get_cons_priority(int *unit, int *flags) void sc_get_bios_values(bios_values_t *values) { - values->cursor_start = 0; + values->cursor_start = 15; values->cursor_end = 16; values->shift_state = 0; if (pc98_machine_type & M_8M) |