Пример #1
0
        // set current video mode
        public static void SetMode(VGAMode mode)
        {
            // set mode id
            ModeID = mode;

            // set mode
            switch (mode)
            {
            // 80x25 text mode
            case VGAMode.Text80x25:
            {
                SetModeProperties(80, 25, 4, true, false);
                fixed(byte *ptr = VGAModeRegisters.Mode80x25_Text)
                {
                    WriteRegisters(ptr);
                }

                SetFont(VGAFontData.Font8x16_Data, 16);
                SetColorPalette(Palette16);
                break;
            }

            // 80x50 text mode
            case VGAMode.Text80x50:
            {
                SetModeProperties(80, 50, 4, true, false);
                fixed(byte *ptr = VGAModeRegisters.Mode80x50_Text)
                {
                    WriteRegisters(ptr);
                }

                SetFont(VGAFontData.Font8x8_Data, 8);
                SetColorPalette(Palette16);
                break;
            }

            // 90x60 text mode
            case VGAMode.Text90x60:
            {
                SetModeProperties(90, 60, 4, true, false);
                fixed(byte *ptr = VGAModeRegisters.Mode90x60_Text)
                {
                    WriteRegisters(ptr);
                }

                SetFont(VGAFontData.Font8x8_Data, 8);
                SetColorPalette(Palette16);
                break;
            }

            // 320x200 graphics mode
            case VGAMode.Pixel320x200:
            {
                SetModeProperties(320, 200, 8, false, false);
                fixed(byte *ptr = VGAModeRegisters.Mode320x200x256_Pixel)
                {
                    WriteRegisters(ptr);
                }

                ClearColorPalette();
                SetColorPalette(Palette256);
                break;
            }

            // 320x200 double buffered graphics mode
            case VGAMode.Pixel320x200DB:
            {
                SetModeProperties(320, 200, 8, false, true);
                fixed(byte *ptr = VGAModeRegisters.Mode320x200x256_Pixel)
                {
                    WriteRegisters(ptr);
                }

                ClearColorPalette();
                SetColorPalette(Palette256);
                break;
            }

            // default to 80x25 text mode
            default: { break; }
            }

            // clear the screen
            Clear(0);
        }
Пример #2
0
 // initialization
 public static void Initialize(VGAMode mode)
 {
     SetMode(mode);
 }