|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Dmitry Rud 2:5020/400 13 Sep 2000 22:14:14 To : Ilya Naumov Subject : Re: VESA text modes & more -------------------------------------------------------------------------------- Hi! Ilya Naumov <Ilya.Naumov@p15.f1930.n5020.z2.fidonet.org> writes: > DR> Hе знаю как в FreeBSD 4, а в тройке нужно еще 'options "VM86"'... > нет такой буквы в 4.x и выше. не путай человека. =) Я не путаю, я специально про номер версии оговорился ;) > DR> Есть тут у меня некий патч от Mike E. Matsnev, который устанавливает > DR> развёртку 98 Hz и, опционально, режим 100х37 символов (патч маленький, > DR> меньше 2К; насколько я помню, он в начале августа по этой эхе > DR> пролетал)... Hужно? > > а чего.. кидай.. >>>> === freebsd-console-vesa-100x37-800x600-100Hz.patch === This patch changes the refresh rate of the VESA 800x600x4 mode to 98Hz, should hopefully work on all cards with VESA bios. Remember, the 60Hz refresh rate no longer works. The second part changes the default width and height of the SC_PIXEL_MODE in vidcontrol to 100x37 from 80x25 (dunno why they use 80x25 anyway, when the hardware is set to a much better mode, the small active rectangle in the middle of the screen looks really ugly). Mike E. Matsnev - --- src,orig/sys/i386/isa/vesa.c Sat Jan 29 18:08:40 2000 +++ src/sys/i386/isa/vesa.c Thu Mar 16 11:44:31 2000 @@ -1016,7 +1016,25 @@ if (!(info.vi_flags & V_INFO_GRAPHICS)) info.vi_flags &= ~V_INFO_LINEAR; - if (vesa_bios_set_mode(mode | ((info.vi_flags & V_INFO_LINEAR) ? 0x4000 : 0))) + if (mode == M_VESA_800x600) { /* XXX ignores V_INFO_LINEAR */ + unsigned char crtc[0x19]; + unsigned char reg; + if (vesa_bios_set_mode(mode)) + return 1; + for (reg=0;reg<0x19;++reg) { + outb(0x3d4,reg); + crtc[reg]=inb(0x3d5); + } + if (!vesa_bios_set_mode(M_VESA_1024x768)) { + outb(0x3d4,0x11); + outb(0x3d5,crtc[0x11]&0x7f); + for (reg=0;reg<0x19;++reg) { + outb(0x3d4,reg); + outb(0x3d5,crtc[reg]); + } + } + } else + if (vesa_bios_set_mode(mode | ((info.vi_flags & V_INFO_LINEAR) ? 0x4000 : 0))) return 1; if (adp->va_info.vi_flags & V_INFO_LINEAR) - --- src,orig/usr.sbin/vidcontrol/vidcontrol.c Wed Jan 12 15:30:33 2000 +++ src/usr.sbin/vidcontrol/vidcontrol.c Thu Mar 16 11:51:48 2000 @@ -317,8 +317,11 @@ if (ioctl(0, mode, NULL) < 0) warn("cannot set videomode"); if (mode == SW_VESA_800x600) { - size[0] = 80; /* columns */ - size[1] = 25; /* rows */ + /* changed by Mike */ + size[0] = 100; /* columns */ + size[1] = 37; /* rows */ + /*size[0] = 80;*/ /* columns */ + /*size[1] = 25;*/ /* rows */ size[2] = 16; /* font size */ if (ioctl(0, KDRASTER, size)) { ioerr = errno; >>>> ======== -- rnd. --- ifmail v.2.15dev5 * Origin: Glaub' an die Macht des Efeuwaldes... (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/8974f5a5d285.html, оценка из 5, голосов 10
|