summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/pc386/console/vgainit.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/i386/pc386/console/vgainit.c')
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/vgainit.c757
1 files changed, 0 insertions, 757 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/console/vgainit.c b/c/src/lib/libbsp/i386/pc386/console/vgainit.c
deleted file mode 100644
index ce83ae59b1..0000000000
--- a/c/src/lib/libbsp/i386/pc386/console/vgainit.c
+++ /dev/null
@@ -1,757 +0,0 @@
-/*
- * Copyright (c) 1999 Greg Haerr <greg@censoft.com>
- * Copyright (c) 1991 David I. Bell
- * Permission is granted to use, distribute, or modify this source,
- * provided that this copyright notice remains intact.
- *
- * Alternate EGA/VGA Screen Driver Init, direct hw programming
- */
-#include <i386_io.h>
-
-#ifdef __rtems__
-#define ROMFONT 0 /* =0 no bios rom fonts available*/
-#else
-#define ROMFONT 1 /* =1 uses PC rom fonts */
-#endif
-
-/* defines are defined in device.h of the MicroWindows package */
-#define MODE_SET 0 /* draw pixels as given (default) */
-#define MODE_XOR 1 /* draw pixels using XOR */
-#define MODE_OR 2 /* draw pixels using OR (notimp)*/
-#define MODE_AND 3 /* draw pixels using AND (notimp)*/
-#define MODE_MAX 3
-typedef int MODE; /* drawing mode*/
-
-/* Define one and only one of the following to be nonzero*/
-#define VGA_ET4000 0 /* TSENG LABS ET4000 chip 800x600*/
-#define VGA_STANDARD 1 /* standard VGA 640x480*/
-#define EGA_STANDARD 0 /* standard EGA 640x350*/
-
-#define DONE 0
-#define IN 1
-#define OUT 2
-
-#define RAM_SCAN_LINES 32 /* number of scan lines in fonts in RAM */
-#define FONT_CHARS 256 /* number of characters in font tables */
-#define CHAR_WIDTH 8 /* number of pixels for character width */
-
-#define PALREG 0x3c0
-#define SEQREG 0x3c4
-#define SEQVAL 0x3c5
-#define GRREG 0x3ce
-#define GRVAL 0x3cf
-#define ATTRREG 0x3da
-#define CRTCREG 0x3d4
-#define CRTCVAL 0x3d5
-
-#define GENREG1 0x3c2
-#define GENREG2 0x3cc
-#define GENREG3 0x3ca
-
-#define DATA_ROTATE 3 /* register number for data rotate */
-
-typedef struct {
- int action;
- int port1;
- int data1;
- int port2;
- int data2;
-} REGIO;
-
-#if ROMFONT
-extern FARADDR rom_char_addr; /* address of ROM font*/
-extern int ROM_CHAR_HEIGHT; /* ROM character height*/
-#endif
-
-/* local data*/
-static REGIO graphics_on[];
-static REGIO graph_off[];
-
-/* entry points*/
-void ega_hwinit(void);
-void ega_hwterm(void);
-
-/* local routines*/
-static void writeregs(REGIO *rp);
-static void out_word(unsigned int p,unsigned int d);
-static void setmode(MODE mode);
-
-void
-ega_hwinit(void)
-{
- writeregs(graphics_on);
-}
-
-void
-ega_hwterm(void)
-{
- setmode(MODE_SET);
-
- /* Copy character table from ROM back into bit plane 2 before turning
- * off graphics.
- */
- out_word(SEQREG, 0x0100); /* syn reset */
- out_word(SEQREG, 0x0402); /* cpu writes only to map 2 */
- out_word(SEQREG, 0x0704); /* sequential addressing */
- out_word(SEQREG, 0x0300); /* clear synchronous reset */
-
- out_word(GRREG, 0x0204); /* select map 2 for CPU reads */
- out_word(GRREG, 0x0005); /* disable odd-even addressing */
-
-#if ROMFONT
- {
- FARADDR srcoffset;
- FARADDR destoffset;
- int data;
- int ch;
- int row;
-
- srcoffset = rom_char_addr;
- destoffset = EGA_BASE;
- for (ch = 0; ch < FONT_CHARS; ch++) {
- for(row = 0; row < ROM_CHAR_HEIGHT; row++) {
- data = GETBYTE_FP(srcoffset++);
- PUTBYTE_FP(destoffset++, data);
- }
- destoffset += (RAM_SCAN_LINES - ROM_CHAR_HEIGHT);
- }
- }
-#endif
-
- /* Finally set the registers back for text mode. */
- writeregs(graph_off);
-}
-
-/* Set the graphics registers as indicated by the given table */
-static void
-writeregs(REGIO *rp)
-{
- for (; rp->action != DONE; rp++) {
- switch (rp->action) {
- case IN:
- inp(rp->port1);
- break;
- case OUT:
- outp(rp->port1, rp->data1);
- if (rp->port2)
- outp(rp->port2, rp->data2);
- break;
- }
- }
-}
-
-/* Output a word to an I/O port. */
-static void
-out_word(unsigned int p,unsigned int d)
-{
- outp(p, d & 0xff);
- outp(p + 1, (d >> 8) & 0xff);
-}
-
-/* Values for the data rotate register to implement drawing modes. */
-static unsigned char mode_table[MODE_MAX + 1] = {
- 0x00, 0x18, 0x10, 0x08
-};
-
-/* Set the drawing mode.
- * This is either SET, OR, AND, or XOR.
- */
-static void
-setmode(MODE mode)
-{
- if (mode > MODE_MAX)
- return;
- outp(GRREG, DATA_ROTATE);
- outp(GRVAL, mode_table[mode]);
-}
-
-#if VGA_ET4000
-
-/* VGA 800x600 16-color graphics (BIOS mode 0x29).
- */
-REGIO graphics_on[] = {
- /* Reset attr F/F */
- IN, ATTRREG, 0, 0, 0,
-
- /* Disable palette */
- OUT, PALREG, 0, 0, 0,
-
- /* Reset sequencer regs */
- OUT, SEQREG, 0, SEQVAL, 0,
- OUT, SEQREG, 1, SEQVAL, 1,
- OUT, SEQREG, 2, SEQVAL, 0x0f,
- OUT, SEQREG, 3, SEQVAL, 0,
- OUT, SEQREG, 4, SEQVAL, 6,
-
- /* Misc out reg */
- OUT, GENREG1, 0xe3, 0, 0,
-
- /* Sequencer enable */
- OUT, SEQREG, 0, SEQVAL, 0x03,
-
- /* Unprotect crtc regs 0-7 */
- OUT, CRTCREG, 0x11, CRTCVAL, 0,
-
- /* Crtc */
- OUT, CRTCREG, 0, CRTCVAL, 0x7a,
- OUT, CRTCREG, 1, CRTCVAL, 0x63,
- OUT, CRTCREG, 2, CRTCVAL, 0x64,
- OUT, CRTCREG, 3, CRTCVAL, 0x1d,
- OUT, CRTCREG, 4, CRTCVAL, 0x68,
- OUT, CRTCREG, 5, CRTCVAL, 0x9a,
- OUT, CRTCREG, 6, CRTCVAL, 0x78,
- OUT, CRTCREG, 7, CRTCVAL, 0xf0,
- OUT, CRTCREG, 8, CRTCVAL, 0x00,
- OUT, CRTCREG, 9, CRTCVAL, 0x60,
- OUT, CRTCREG, 10, CRTCVAL, 0x00,
- OUT, CRTCREG, 11, CRTCVAL, 0x00,
- OUT, CRTCREG, 12, CRTCVAL, 0x00,
- OUT, CRTCREG, 13, CRTCVAL, 0x00,
- OUT, CRTCREG, 14, CRTCVAL, 0x00,
- OUT, CRTCREG, 15, CRTCVAL, 0x00,
- OUT, CRTCREG, 16, CRTCVAL, 0x5c,
- OUT, CRTCREG, 17, CRTCVAL, 0x8e,
- OUT, CRTCREG, 18, CRTCVAL, 0x57,
- OUT, CRTCREG, 19, CRTCVAL, 0x32,
- OUT, CRTCREG, 20, CRTCVAL, 0x00,
- OUT, CRTCREG, 21, CRTCVAL, 0x5b,
- OUT, CRTCREG, 22, CRTCVAL, 0x75,
- OUT, CRTCREG, 23, CRTCVAL, 0xc3,
- OUT, CRTCREG, 24, CRTCVAL, 0xff,
-
- /* Graphics controller */
- OUT, GENREG2, 0x00, 0, 0,
- OUT, GENREG3, 0x01, 0, 0,
- OUT, GRREG, 0, GRVAL, 0x00,
- OUT, GRREG, 1, GRVAL, 0x00,
- OUT, GRREG, 2, GRVAL, 0x00,
- OUT, GRREG, 3, GRVAL, 0x00,
- OUT, GRREG, 4, GRVAL, 0x00,
- OUT, GRREG, 5, GRVAL, 0x00,
- OUT, GRREG, 6, GRVAL, 0x05,
- OUT, GRREG, 7, GRVAL, 0x0f,
- OUT, GRREG, 8, GRVAL, 0xff,
-
- /* Reset attribute flip/flop */
- IN, ATTRREG, 0, 0, 0,
-
- /* Palette */
- OUT, PALREG, 0, PALREG, 0x00,
- OUT, PALREG, 1, PALREG, 0x01,
- OUT, PALREG, 2, PALREG, 0x02,
- OUT, PALREG, 3, PALREG, 0x03,
- OUT, PALREG, 4, PALREG, 0x04,
- OUT, PALREG, 5, PALREG, 0x05,
- OUT, PALREG, 6, PALREG, 0x06,
- OUT, PALREG, 7, PALREG, 0x07,
- OUT, PALREG, 8, PALREG, 0x38,
- OUT, PALREG, 9, PALREG, 0x39,
- OUT, PALREG, 10, PALREG, 0x3a,
- OUT, PALREG, 11, PALREG, 0x3b,
- OUT, PALREG, 12, PALREG, 0x3c,
- OUT, PALREG, 13, PALREG, 0x3d,
- OUT, PALREG, 14, PALREG, 0x3e,
- OUT, PALREG, 15, PALREG, 0x3f,
- OUT, PALREG, 16, PALREG, 0x01,
- OUT, PALREG, 17, PALREG, 0x00,
- OUT, PALREG, 18, PALREG, 0x0f,
- OUT, PALREG, 19, PALREG, 0x00,
-
- /* Enable palette */
- OUT, PALREG, 0x20, 0, 0,
-
- /* End of table */
- DONE, 0, 0, 0, 0
-};
-
-/* VGA 80x25 text (BIOS mode 3).
- */
-static REGIO graph_off[] = {
- /* Reset attr F/F */
- IN, ATTRREG, 0, 0, 0,
-
- /* Disable palette */
- OUT, PALREG, 0, 0, 0,
-
- /* Reset sequencer regs */
- OUT, SEQREG, 0, SEQVAL, 1,
- OUT, SEQREG, 1, SEQVAL, 1,
- OUT, SEQREG, 2, SEQVAL, 3,
- OUT, SEQREG, 3, SEQVAL, 0,
- OUT, SEQREG, 4, SEQVAL, 2,
-
- /* Misc out reg */
- OUT, GENREG1, 0x63, 0, 0,
-
- /* Sequencer enable */
- OUT, SEQREG, 0, SEQVAL, 3,
-
- /* Unprotect crtc regs 0-7 */
- OUT, CRTCREG, 0x11, CRTCVAL, 0,
-
- /* Crtc */
- OUT, CRTCREG, 0, CRTCVAL, 0x5f, /* horiz total */
- OUT, CRTCREG, 1, CRTCVAL, 0x4f, /* horiz end */
- OUT, CRTCREG, 2, CRTCVAL, 0x50, /* horiz blank */
- OUT, CRTCREG, 3, CRTCVAL, 0x82, /* end blank */
- OUT, CRTCREG, 4, CRTCVAL, 0x55, /* horiz retrace */
- OUT, CRTCREG, 5, CRTCVAL, 0x81, /* end retrace */
- OUT, CRTCREG, 6, CRTCVAL, 0xbf, /* vert total */
- OUT, CRTCREG, 7, CRTCVAL, 0x1f, /* overflows */
- OUT, CRTCREG, 8, CRTCVAL, 0x00, /* row scan */
- OUT, CRTCREG, 9, CRTCVAL, 0x4f, /* max scan line */
- OUT, CRTCREG, 10, CRTCVAL, 0x00, /* cursor start */
- OUT, CRTCREG, 11, CRTCVAL, 0x0f, /* cursor end */
- OUT, CRTCREG, 12, CRTCVAL, 0x0e, /* start high addr */
- OUT, CRTCREG, 13, CRTCVAL, 0xb0, /* low addr */
- OUT, CRTCREG, 14, CRTCVAL, 0x16, /* cursor high */
- OUT, CRTCREG, 15, CRTCVAL, 0x30, /* cursor low */
- OUT, CRTCREG, 16, CRTCVAL, 0x9c, /* vert retrace */
- OUT, CRTCREG, 17, CRTCVAL, 0x8e, /* retrace end */
- OUT, CRTCREG, 18, CRTCVAL, 0x8f, /* vert end */
- OUT, CRTCREG, 19, CRTCVAL, 0x28, /* offset */
- OUT, CRTCREG, 20, CRTCVAL, 0x1f, /* underline */
- OUT, CRTCREG, 21, CRTCVAL, 0x96, /* vert blank */
- OUT, CRTCREG, 22, CRTCVAL, 0xb9, /* end blank */
- OUT, CRTCREG, 23, CRTCVAL, 0xa3, /* crt mode */
- OUT, CRTCREG, 24, CRTCVAL, 0xff, /* line compare */
-
- /* Graphics controller */
- OUT, GENREG2, 0x00, 0, 0,
- OUT, GENREG3, 0x01, 0, 0,
- OUT, GRREG, 0, GRVAL, 0x00,
- OUT, GRREG, 1, GRVAL, 0x00,
- OUT, GRREG, 2, GRVAL, 0x00,
- OUT, GRREG, 3, GRVAL, 0x00,
- OUT, GRREG, 4, GRVAL, 0x00,
- OUT, GRREG, 5, GRVAL, 0x10,
- OUT, GRREG, 6, GRVAL, 0x0e,
- OUT, GRREG, 7, GRVAL, 0x00,
- OUT, GRREG, 8, GRVAL, 0xff,
-
- /* Reset attribute flip/flop */
- IN, ATTRREG, 0, 0, 0,
-
- /* Palette */
- OUT, PALREG, 0, PALREG, 0x00,
- OUT, PALREG, 1, PALREG, 0x01,
- OUT, PALREG, 2, PALREG, 0x02,
- OUT, PALREG, 3, PALREG, 0x03,
- OUT, PALREG, 4, PALREG, 0x04,
- OUT, PALREG, 5, PALREG, 0x05,
- OUT, PALREG, 6, PALREG, 0x06,
- OUT, PALREG, 7, PALREG, 0x07,
- OUT, PALREG, 8, PALREG, 0x10,
- OUT, PALREG, 9, PALREG, 0x11,
- OUT, PALREG, 10, PALREG, 0x12,
- OUT, PALREG, 11, PALREG, 0x13,
- OUT, PALREG, 12, PALREG, 0x14,
- OUT, PALREG, 13, PALREG, 0x15,
- OUT, PALREG, 14, PALREG, 0x16,
- OUT, PALREG, 15, PALREG, 0x17,
- OUT, PALREG, 16, PALREG, 0x08,
- OUT, PALREG, 17, PALREG, 0x00,
- OUT, PALREG, 18, PALREG, 0x0f,
- OUT, PALREG, 19, PALREG, 0x00,
-
- /* Enable palette */
- OUT, PALREG, 0x20, 0, 0,
-
- /* End of table */
- DONE, 0, 0, 0, 0
-};
-
-#endif
-
-#if VGA_STANDARD
-
-/* VGA 640x480 16-color graphics (BIOS mode 0x12).
- */
-static REGIO graphics_on[] = {
- /* Reset attr F/F */
- { IN, ATTRREG, 0, 0, 0 },
-
- /* Disable palette */
- { OUT, PALREG, 0, 0, 0 },
-
- /* Reset sequencer regs */
- { OUT, SEQREG, 0, SEQVAL, 0 },
- { OUT, SEQREG, 1, SEQVAL, 1 },
- { OUT, SEQREG, 2, SEQVAL, 0x0f },
- { OUT, SEQREG, 3, SEQVAL, 0 },
- { OUT, SEQREG, 4, SEQVAL, 6 },
-
- /* Misc out reg */
- { OUT, GENREG1, 0xe3, 0, 0 },
-
- /* Sequencer enable */
- { OUT, SEQREG, 0, SEQVAL, 0x03 },
-
- /* Unprotect crtc regs 0-7 */
- { OUT, CRTCREG, 0x11, CRTCVAL, 0 },
-
- /* Crtc */
- { OUT, CRTCREG, 0, CRTCVAL, 0x5f },
- { OUT, CRTCREG, 1, CRTCVAL, 0x4f },
- { OUT, CRTCREG, 2, CRTCVAL, 0x50 },
- { OUT, CRTCREG, 3, CRTCVAL, 0x82 },
- { OUT, CRTCREG, 4, CRTCVAL, 0x54 },
- { OUT, CRTCREG, 5, CRTCVAL, 0x80 },
- { OUT, CRTCREG, 6, CRTCVAL, 0x0b },
- { OUT, CRTCREG, 7, CRTCVAL, 0x3e },
- { OUT, CRTCREG, 8, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 9, CRTCVAL, 0x40 },
- { OUT, CRTCREG, 10, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 11, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 12, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 13, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 14, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 15, CRTCVAL, 0x59 },
- { OUT, CRTCREG, 16, CRTCVAL, 0xea },
- { OUT, CRTCREG, 17, CRTCVAL, 0x8c },
- { OUT, CRTCREG, 18, CRTCVAL, 0xdf },
- { OUT, CRTCREG, 19, CRTCVAL, 0x28 },
- { OUT, CRTCREG, 20, CRTCVAL, 0x00 },
- { OUT, CRTCREG, 21, CRTCVAL, 0xe7 },
- { OUT, CRTCREG, 22, CRTCVAL, 0x04 },
- { OUT, CRTCREG, 23, CRTCVAL, 0xe3 },
- { OUT, CRTCREG, 24, CRTCVAL, 0xff },
-
- /* Graphics controller */
- { OUT, GENREG2, 0x00, 0, 0 },
- { OUT, GENREG3, 0x01, 0, 0 },
- { OUT, GRREG, 0, GRVAL, 0x00 },
- { OUT, GRREG, 1, GRVAL, 0x00 },
- { OUT, GRREG, 2, GRVAL, 0x00 },
- { OUT, GRREG, 3, GRVAL, 0x00 },
- { OUT, GRREG, 4, GRVAL, 0x00 },
- { OUT, GRREG, 5, GRVAL, 0x00 },
- { OUT, GRREG, 6, GRVAL, 0x05 },
- { OUT, GRREG, 7, GRVAL, 0x0f },
- { OUT, GRREG, 8, GRVAL, 0xff },
-
- /* Reset attribute flip/flop */
- { IN, ATTRREG, 0, 0, 0 },
-
- /* Palette */
- { OUT, PALREG, 0, PALREG, 0x00 },
- { OUT, PALREG, 1, PALREG, 0x01 },
- { OUT, PALREG, 2, PALREG, 0x02 },
- { OUT, PALREG, 3, PALREG, 0x03 },
- { OUT, PALREG, 4, PALREG, 0x04 },
- { OUT, PALREG, 5, PALREG, 0x05 },
- { OUT, PALREG, 6, PALREG, 0x06 },
- { OUT, PALREG, 7, PALREG, 0x07 },
- { OUT, PALREG, 8, PALREG, 0x38 },
- { OUT, PALREG, 9, PALREG, 0x39 },
- { OUT, PALREG, 10, PALREG, 0x3a },
- { OUT, PALREG, 11, PALREG, 0x3b },
- { OUT, PALREG, 12, PALREG, 0x3c },
- { OUT, PALREG, 13, PALREG, 0x3d },
- { OUT, PALREG, 14, PALREG, 0x3e },
- { OUT, PALREG, 15, PALREG, 0x3f },
- { OUT, PALREG, 16, PALREG, 0x01 },
- { OUT, PALREG, 17, PALREG, 0x00 },
- { OUT, PALREG, 18, PALREG, 0x0f },
- { OUT, PALREG, 19, PALREG, 0x00 },
-
- /* Enable palette */
- { OUT, PALREG, 0x20, 0, 0 },
-
- /* End of table */
- { DONE, 0, 0, 0, 0 }
-};
-
-/* VGA 80x25 text (BIOS mode 3).
- */
-static REGIO graph_off[] = {
- /* Reset attr F/F */
- { IN, ATTRREG, 0, 0, 0 },
-
- /* Disable palette */
- { OUT, PALREG, 0, 0, 0 },
-
- /* Reset sequencer regs */
- { OUT, SEQREG, 0, SEQVAL, 1 },
- { OUT, SEQREG, 1, SEQVAL, 1 },
- { OUT, SEQREG, 2, SEQVAL, 3 },
- { OUT, SEQREG, 3, SEQVAL, 0 },
- { OUT, SEQREG, 4, SEQVAL, 2 },
-
- /* Misc out reg */
- { OUT, GENREG1, 0x63, 0, 0 },
-
- /* Sequencer enable */
- { OUT, SEQREG, 0, SEQVAL, 3 },
-
- /* Unprotect crtc regs 0-7 */
- { OUT, CRTCREG, 0x11, CRTCVAL, 0 },
-
- /* Crtc */
- { OUT, CRTCREG, 0, CRTCVAL, 0x5f }, /* horiz total */
- { OUT, CRTCREG, 1, CRTCVAL, 0x4f }, /* horiz end */
- { OUT, CRTCREG, 2, CRTCVAL, 0x50 }, /* horiz blank */
- { OUT, CRTCREG, 3, CRTCVAL, 0x82 }, /* end blank */
- { OUT, CRTCREG, 4, CRTCVAL, 0x55 }, /* horiz retrace */
- { OUT, CRTCREG, 5, CRTCVAL, 0x81 }, /* end retrace */
- { OUT, CRTCREG, 6, CRTCVAL, 0xbf }, /* vert total */
- { OUT, CRTCREG, 7, CRTCVAL, 0x1f }, /* overflows */
- { OUT, CRTCREG, 8, CRTCVAL, 0x00 }, /* row scan */
- { OUT, CRTCREG, 9, CRTCVAL, 0x4f }, /* max scan line */
- { OUT, CRTCREG, 10, CRTCVAL, 0x00 }, /* cursor start */
- { OUT, CRTCREG, 11, CRTCVAL, 0x0f }, /* cursor end */
- { OUT, CRTCREG, 12, CRTCVAL, 0x0e }, /* start high addr */
- { OUT, CRTCREG, 13, CRTCVAL, 0xb0 }, /* low addr */
- { OUT, CRTCREG, 14, CRTCVAL, 0x16 }, /* cursor high */
- { OUT, CRTCREG, 15, CRTCVAL, 0x30 }, /* cursor low */
- { OUT, CRTCREG, 16, CRTCVAL, 0x9c }, /* vert retrace */
- { OUT, CRTCREG, 17, CRTCVAL, 0x8e }, /* retrace end */
- { OUT, CRTCREG, 18, CRTCVAL, 0x8f }, /* vert end */
- { OUT, CRTCREG, 19, CRTCVAL, 0x28 }, /* offset */
- { OUT, CRTCREG, 20, CRTCVAL, 0x1f }, /* underline */
- { OUT, CRTCREG, 21, CRTCVAL, 0x96 }, /* vert blank */
- { OUT, CRTCREG, 22, CRTCVAL, 0xb9 }, /* end blank */
- { OUT, CRTCREG, 23, CRTCVAL, 0xa3 }, /* crt mode */
- { OUT, CRTCREG, 24, CRTCVAL, 0xff }, /* line compare */
-
- /* Graphics controller */
- { OUT, GENREG2, 0x00, 0, 0 },
- { OUT, GENREG3, 0x01, 0, 0 },
- { OUT, GRREG, 0, GRVAL, 0x00 },
- { OUT, GRREG, 1, GRVAL, 0x00 },
- { OUT, GRREG, 2, GRVAL, 0x00 },
- { OUT, GRREG, 3, GRVAL, 0x00 },
- { OUT, GRREG, 4, GRVAL, 0x00 },
- { OUT, GRREG, 5, GRVAL, 0x10 },
- { OUT, GRREG, 6, GRVAL, 0x0e },
- { OUT, GRREG, 7, GRVAL, 0x00 },
- { OUT, GRREG, 8, GRVAL, 0xff },
-
- /* Reset attribute flip/flop */
- { IN, ATTRREG, 0, 0, 0 },
-
- /* Palette */
- { OUT, PALREG, 0, PALREG, 0x00 },
- { OUT, PALREG, 1, PALREG, 0x01 },
- { OUT, PALREG, 2, PALREG, 0x02 },
- { OUT, PALREG, 3, PALREG, 0x03 },
- { OUT, PALREG, 4, PALREG, 0x04 },
- { OUT, PALREG, 5, PALREG, 0x05 },
- { OUT, PALREG, 6, PALREG, 0x06 },
- { OUT, PALREG, 7, PALREG, 0x07 },
- { OUT, PALREG, 8, PALREG, 0x10 },
- { OUT, PALREG, 9, PALREG, 0x11 },
- { OUT, PALREG, 10, PALREG, 0x12 },
- { OUT, PALREG, 11, PALREG, 0x13 },
- { OUT, PALREG, 12, PALREG, 0x14 },
- { OUT, PALREG, 13, PALREG, 0x15 },
- { OUT, PALREG, 14, PALREG, 0x16 },
- { OUT, PALREG, 15, PALREG, 0x17 },
- { OUT, PALREG, 16, PALREG, 0x08 },
- { OUT, PALREG, 17, PALREG, 0x00 },
- { OUT, PALREG, 18, PALREG, 0x0f },
- { OUT, PALREG, 19, PALREG, 0x00 },
-
- /* Enable palette */
- { OUT, PALREG, 0x20, 0, 0 },
-
- /* End of table */
- { DONE, 0, 0, 0, 0 }
-};
-
-#endif
-
-#if EGA_STANDARD
-
-/* EGA 640x350 16-color graphics (BIOS mode 0x10).
- */
-static REGIO graphics_on[] = {
- /* Reset attr F/F */
- IN, ATTRREG, 0, 0, 0,
-
- /* Disable palette */
- OUT, PALREG, 0, 0, 0,
-
- /* Reset sequencer regs */
- OUT, SEQREG, 0, SEQVAL, 0,
- OUT, SEQREG, 1, SEQVAL, 1,
- OUT, SEQREG, 2, SEQVAL, 0x0f,
- OUT, SEQREG, 3, SEQVAL, 0,
- OUT, SEQREG, 4, SEQVAL, 6,
-
- /* Misc out reg */
- OUT, GENREG1, 0xa7, 0, 0,
-
- /* Sequencer enable */
- OUT, SEQREG, 0, SEQVAL, 0x03,
-
- /* Unprotect crtc regs 0-7 */
- OUT, CRTCREG, 0x11, CRTCVAL, 0,
-
- /* Crtc */
- OUT, CRTCREG, 0, CRTCVAL, 0x5b,
- OUT, CRTCREG, 1, CRTCVAL, 0x4f,
- OUT, CRTCREG, 2, CRTCVAL, 0x53,
- OUT, CRTCREG, 3, CRTCVAL, 0x37,
- OUT, CRTCREG, 4, CRTCVAL, 0x52,
- OUT, CRTCREG, 5, CRTCVAL, 0x00,
- OUT, CRTCREG, 6, CRTCVAL, 0x6c,
- OUT, CRTCREG, 7, CRTCVAL, 0x1f,
- OUT, CRTCREG, 8, CRTCVAL, 0x00,
- OUT, CRTCREG, 9, CRTCVAL, 0x00,
- OUT, CRTCREG, 10, CRTCVAL, 0x00,
- OUT, CRTCREG, 11, CRTCVAL, 0x00,
- OUT, CRTCREG, 12, CRTCVAL, 0x00,
- OUT, CRTCREG, 13, CRTCVAL, 0x00,
- OUT, CRTCREG, 14, CRTCVAL, 0x00,
- OUT, CRTCREG, 15, CRTCVAL, 0x00,
- OUT, CRTCREG, 16, CRTCVAL, 0x5e,
- OUT, CRTCREG, 17, CRTCVAL, 0x2b,
- OUT, CRTCREG, 18, CRTCVAL, 0x5d,
- OUT, CRTCREG, 19, CRTCVAL, 0x28,
- OUT, CRTCREG, 20, CRTCVAL, 0x0f,
- OUT, CRTCREG, 21, CRTCVAL, 0x5f,
- OUT, CRTCREG, 22, CRTCVAL, 0x0a,
- OUT, CRTCREG, 23, CRTCVAL, 0xe3,
- OUT, CRTCREG, 24, CRTCVAL, 0xff,
-
- /* Graphics controller */
- OUT, GENREG2, 0x00, 0, 0,
- OUT, GENREG3, 0x01, 0, 0,
- OUT, GRREG, 0, GRVAL, 0x00,
- OUT, GRREG, 1, GRVAL, 0x00,
- OUT, GRREG, 2, GRVAL, 0x00,
- OUT, GRREG, 3, GRVAL, 0x00,
- OUT, GRREG, 4, GRVAL, 0x00,
- OUT, GRREG, 5, GRVAL, 0x00,
- OUT, GRREG, 6, GRVAL, 0x05,
- OUT, GRREG, 7, GRVAL, 0x0f,
- OUT, GRREG, 8, GRVAL, 0xff,
-
- /* Reset attribute flip/flop */
- IN, ATTRREG, 0, 0, 0,
-
- /* Palette */
- OUT, PALREG, 0, PALREG, 0x00,
- OUT, PALREG, 1, PALREG, 0x01,
- OUT, PALREG, 2, PALREG, 0x02,
- OUT, PALREG, 3, PALREG, 0x03,
- OUT, PALREG, 4, PALREG, 0x04,
- OUT, PALREG, 5, PALREG, 0x05,
- OUT, PALREG, 6, PALREG, 0x06,
- OUT, PALREG, 7, PALREG, 0x07,
- OUT, PALREG, 8, PALREG, 0x38,
- OUT, PALREG, 9, PALREG, 0x39,
- OUT, PALREG, 10, PALREG, 0x3a,
- OUT, PALREG, 11, PALREG, 0x3b,
- OUT, PALREG, 12, PALREG, 0x3c,
- OUT, PALREG, 13, PALREG, 0x3d,
- OUT, PALREG, 14, PALREG, 0x3e,
- OUT, PALREG, 15, PALREG, 0x3f,
- OUT, PALREG, 16, PALREG, 0x01,
- OUT, PALREG, 17, PALREG, 0x00,
- OUT, PALREG, 18, PALREG, 0x0f,
- OUT, PALREG, 19, PALREG, 0x00,
-
- /* Enable palette */
- OUT, PALREG, 0x20, 0, 0,
-
- /* End of table */
- DONE, 0, 0, 0, 0
-};
-
-/* EGA 80x25 text (BIOS mode 3).
- */
-static REGIO graph_off[] = {
- /* Reset attr F/F */
- IN, ATTRREG, 0, 0, 0,
-
- /* Disable palette */
- OUT, PALREG, 0, 0, 0,
-
- /* Reset sequencer regs */
- OUT, SEQREG, 0, SEQVAL, 1,
- OUT, SEQREG, 1, SEQVAL, 1,
- OUT, SEQREG, 2, SEQVAL, 3,
- OUT, SEQREG, 3, SEQVAL, 0,
- OUT, SEQREG, 4, SEQVAL, 3,
-
- /* Misc out reg */
- OUT, GENREG1, 0xa7, 0, 0,
-
- /* Sequencer enable */
- OUT, SEQREG, 0, SEQVAL, 3,
-
- /* Crtc */
- OUT, CRTCREG, 0, CRTCVAL, 0x5b, /* horiz total */
- OUT, CRTCREG, 1, CRTCVAL, 0x4f, /* horiz end */
- OUT, CRTCREG, 2, CRTCVAL, 0x53, /* horiz blank */
- OUT, CRTCREG, 3, CRTCVAL, 0x37, /* end blank */
- OUT, CRTCREG, 4, CRTCVAL, 0x51, /* horiz retrace */
- OUT, CRTCREG, 5, CRTCVAL, 0x5b, /* end retrace */
- OUT, CRTCREG, 6, CRTCVAL, 0x6c, /* vert total */
- OUT, CRTCREG, 7, CRTCVAL, 0x1f, /* overflows */
- OUT, CRTCREG, 8, CRTCVAL, 0x00, /* row scan */
- OUT, CRTCREG, 9, CRTCVAL, 0x0d, /* max scan line */
- OUT, CRTCREG, 10, CRTCVAL, 0x00, /* cursor start */
- OUT, CRTCREG, 11, CRTCVAL, 0x0f, /* cursor end */
- OUT, CRTCREG, 12, CRTCVAL, 0x00, /* start high addr */
- OUT, CRTCREG, 13, CRTCVAL, 0x00, /* low addr */
- OUT, CRTCREG, 14, CRTCVAL, 0x00, /* cursor high */
- OUT, CRTCREG, 15, CRTCVAL, 0x00, /* cursor low */
- OUT, CRTCREG, 16, CRTCVAL, 0x5e, /* vert retrace */
- OUT, CRTCREG, 17, CRTCVAL, 0x2b, /* retrace end */
- OUT, CRTCREG, 18, CRTCVAL, 0x5d, /* vert end */
- OUT, CRTCREG, 19, CRTCVAL, 0x28, /* offset */
- OUT, CRTCREG, 20, CRTCVAL, 0x0f, /* underline */
- OUT, CRTCREG, 21, CRTCVAL, 0x5e, /* vert blank */
- OUT, CRTCREG, 22, CRTCVAL, 0x0a, /* end blank */
- OUT, CRTCREG, 23, CRTCVAL, 0xa3, /* crt mode */
- OUT, CRTCREG, 24, CRTCVAL, 0xff, /* line compare */
-
- /* Graphics controller */
- OUT, GENREG2, 0x00, 0, 0,
- OUT, GENREG3, 0x01, 0, 0,
- OUT, GRREG, 0, GRVAL, 0x00,
- OUT, GRREG, 1, GRVAL, 0x00,
- OUT, GRREG, 2, GRVAL, 0x00,
- OUT, GRREG, 3, GRVAL, 0x00,
- OUT, GRREG, 4, GRVAL, 0x00,
- OUT, GRREG, 5, GRVAL, 0x10,
- OUT, GRREG, 6, GRVAL, 0x0e,
- OUT, GRREG, 7, GRVAL, 0x00,
- OUT, GRREG, 8, GRVAL, 0xff,
-
- /* Reset attribute flip/flop */
- IN, ATTRREG, 0, 0, 0,
-
- /* Palette */
- OUT, PALREG, 0, PALREG, 0x00,
- OUT, PALREG, 1, PALREG, 0x01,
- OUT, PALREG, 2, PALREG, 0x02,
- OUT, PALREG, 3, PALREG, 0x03,
- OUT, PALREG, 4, PALREG, 0x04,
- OUT, PALREG, 5, PALREG, 0x05,
- OUT, PALREG, 6, PALREG, 0x14,
- OUT, PALREG, 7, PALREG, 0x07,
- OUT, PALREG, 8, PALREG, 0x38,
- OUT, PALREG, 9, PALREG, 0x39,
- OUT, PALREG, 10, PALREG, 0x3a,
- OUT, PALREG, 11, PALREG, 0x3b,
- OUT, PALREG, 12, PALREG, 0x3c,
- OUT, PALREG, 13, PALREG, 0x3d,
- OUT, PALREG, 14, PALREG, 0x3e,
- OUT, PALREG, 15, PALREG, 0x3f,
- OUT, PALREG, 16, PALREG, 0x08,
- OUT, PALREG, 17, PALREG, 0x00,
- OUT, PALREG, 18, PALREG, 0x0f,
- OUT, PALREG, 19, PALREG, 0x00,
-
- /* Enable palette */
- OUT, PALREG, 0x20, 0, 0,
-
- /* End of table */
- DONE, 0, 0, 0, 0
-};
-
-#endif