summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKATO Takenori <kato@FreeBSD.org>1996-12-08 16:27:26 +0000
committerKATO Takenori <kato@FreeBSD.org>1996-12-08 16:27:26 +0000
commit6f1344579b0502c5e706efa285b25d4d39330016 (patch)
tree4dfc40890c22cbdb35cb1da0bd517798440499f5
parente2d6a260acd8335c2b8437675954c57b3d12bfeb (diff)
Notes
-rw-r--r--sys/pc98/pc98/syscons.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/sys/pc98/pc98/syscons.c b/sys/pc98/pc98/syscons.c
index 5448033d0b14..71589c9fd71d 100644
--- a/sys/pc98/pc98/syscons.c
+++ b/sys/pc98/pc98/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.14 1996/11/09 00:39:59 asami Exp $
+ * $Id: syscons.c,v 1.15 1996/12/04 04:21:11 asami Exp $
*/
#include "sc.h"
@@ -3217,10 +3217,20 @@ static scr_stat
static void
init_scp(scr_stat *scp)
{
-#ifndef PC98
- scp->mode = M_VGA_C80x25;
-#else
+#ifdef PC98
scp->mode = M_PC98_80x25;
+#else
+ if (crtc_vga)
+ if (crtc_addr == MONO_BASE)
+ scp->mode = M_VGA_M80x25;
+ else
+ scp->mode = M_VGA_C80x25;
+ else
+ if (crtc_addr == MONO_BASE)
+ scp->mode = M_B80x25;
+ else
+ scp->mode = M_C80x25;
+
#endif
scp->font_size = FONT_16;
scp->xsize = COL;
@@ -4210,12 +4220,21 @@ set_normal_mode()
outb(GDCIDX, 0x04); outb(GDCREG, modetable[0x04+55]);
outb(GDCIDX, 0x05); outb(GDCREG, modetable[0x05+55]);
outb(GDCIDX, 0x06); outb(GDCREG, modetable[0x06+55]);
+ if (crtc_addr == MONO_BASE) {
+ outb(GDCIDX, 0x06); outb(GDCREG,(modetable[0x06+55] & 0x03) | 0x08);
+ }
+ else {
+ outb(GDCIDX, 0x06); outb(GDCREG,(modetable[0x06+55] & 0x03) | 0x0c);
+ }
#else
outw(TSIDX, 0x0002 | (modetable[0x02+4]<<8));
outw(TSIDX, 0x0004 | (modetable[0x04+4]<<8));
outw(GDCIDX, 0x0004 | (modetable[0x04+55]<<8));
outw(GDCIDX, 0x0005 | (modetable[0x05+55]<<8));
- outw(GDCIDX, 0x0006 | (modetable[0x06+55]<<8));
+ if (crtc_addr == MONO_BASE)
+ outw(GDCIDX, 0x0006 | (((modetable[0x06+55] & 0x03) | 0x08)<<8));
+ else
+ outw(GDCIDX, 0x0006 | (((modetable[0x06+55] & 0x03) | 0x0c)<<8));
#endif
splx(s);
}