Прочтите все это для более полной информации об X ;-)
From Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>:
xdos начиная с dosemu версии pre-0.60.4.2 с патчем из моих последних писем получил ряд новых возможностей. В частности, он должен теперь понимать клавиши с дополнительной цифровой клавиатуры (клавиши с праого края MF-клавиатуры), а также NumLock и keyevents в диапазоне латинских символов, даже если вы запустили xdos на удаленном X-терминале.
Если что-то не работает так, как ожидалось, проверьте следующее:
! When using ServerNumLock in your XF86Config, the following codes/symbols
! are available in place of 79-81, 83-85, 87-91
keycode 136 = KP_7
keycode 137 = KP_8
keycode 138 = KP_9
keycode 139 = KP_4
keycode 140 = KP_5
keycode 141 = KP_6
keycode 142 = KP_1
keycode 143 = KP_2
keycode 144 = KP_3
keycode 145 = KP_0
keycode 146 = KP_Decimal
keycode 147 = Home
keycode 148 = Up
keycode 149 = Prior
keycode 150 = Left
keycode 151 = Begin
keycode 152 = Right
keycode 153 = End
keycode 154 = Down
keycode 155 = Next
keycode 156 = Insert
keycode 157 = Delete
From Rainer Zimmermann <zimmerm@mathematik.uni-marburg.de>
Некоторая базовая информация о поддержке X в dosemu. Она может даже оказаться полезной.
О чем нужно позаботиться:
Icon "xdos" dosemu.xpm
Здесь предполагается, что была определена PixmapPath. В противном случае
задайте полный путь к файлу.Обратите внимание, что xdos сам по себе не включает пиктограмму, поэтому нужно сообщить об этом оконному менеджеру. Я выбрал этот вариант, чтобы xdos не требовал библиотеку Xpm.
Erik Mouw <J.A.K.Mouw@et.tudelft.nl> & Arjan Filius <I.A.Filius@et.tudelft.nl>
Мы внесли крупные изменения в X.c, которые позволяют под X работать в графическом режиме. К сожалению, при этом пришлось отключить поддержку cut-and-paste, но мы считаем, что графика гораздо интереснее (когда все установится, мы вернем cut-and-paste назад). Графика работает через vgaemu, эмулятор VGA. Состояние работы:
Erik
Steffen Winterfeldt <Steffen.Winterfeldt@itp.uni-leipzig.de>
Я работал над кодом для X и эмуляцией VGA последние несколько месяцев. Вот текущие результаты:
В текущей версии 4-х и 8-битовые SVGA режимы поддерживаются на всех типах X дисплеев. Режимы Hi-color поддерживаются только на дисплеях с в точности совпадающей глубиной цвета (15 or 16); режимы true color поддерживаются только на true color дисплеях, но всегда и 24- и 32-битовые.
Кроме того, сейчас в hi- и truecolor нельзя изменять размер окна графики, гамма-коррекция также игнорируется.
Поскольку типичный графический режим 320x200x8 часто будет использоваться со значительным масштабированием, а современные графические карты весьма быстры, я добавил кое-что для поедания времени CPU: вы можете включить билинейную интерполяцию. Она здорово улучшает качество изображения (но довольно медленная, т.к. у меня не было времени написать оптимизированную версию - пока она на обычном C). Если билинейный фильтр будет слишком медленным, попробуйте линейный, который интерполирует только по горизонтали.
Учтите, что (би)линейная фильтрация доступна не на всех комбинациях VGA/X-дисплей. В этом случае используются обычные процедуры рисования.
Если VGA-режим не поддерживается на текущем X-дисплее, экран графики просто останется черным. Это не значит, что xdos рухнул.
Поддержка VESA является (или должна быть) практически VBE 2.0 - совместимой. Для справок я использовал несколько документов, включая неофициальные спецификации VBE 2.0 от SciTech Software. Я сравнивал их с некоторыми реализациями стандарта VBE 2.0, включая SciTech's Display Doctor (ранее известного как UniVBE). К сожалению, реализация и описание разошлись в нескольких местах. В таких случаях я считал, что правильно так, как в работающей программе.
Единственная неподдерживаемая функция VBE - запись/восстановление состояния VGA. Но эта возможность редко используется, и ее отсутствие не должно вызвать много проблем.
VBE позволяет использовать горизонтальный и вертикальный скроллинг даже в текстовых режимах. Эта возможность не реализовывалась.
Если вы подозреваете, что линейный фрейм-буффер (LFB) вызывает неполадки, его можно отключиь в dosemu.conf, также как и интерфейс защищенного режима. Учтите, однако, что LFB работает быстрее, чем переключение банков, даже в DOSemu.
Список VBE-режимов по умолчанию включает много режимов среднего разрешения, удобных для игр (типа Duke3D). Вы можете также создавать собственные режимы в dosemu.conf. Однако учтите, что один и тот же режим не может быть определен дважды, второе (и последующие) определения будут проигнорированы.
Режимы, которые определены, но не поддерживаются из-за нехватки видеопамяти или за-за того, что они не могут быть отображены на вашем X-дисплее, помечаются в VBE-листе как неподдерживаемые (но остаются в нем). Учтите, что поддержки для 4-битных режимов VESA сейчас нет.
Существующий интерфейс между VGAEmu и X будет пытаться обновить сразу все некорректные видеостраницы. Это может, в особенности в VBE/SVGA режимах высокого разрешения, заметно нарушить обработку сигналов DOSEmu. В настоящий момент это не исправляется, но вскоре будет переработано (потем запуска отдельного процесса для обновления).
Если вы считаете, что именно в этом причина ваших проблем, попробуйте поиграть значением veut.max_max_len в env/video/n_X.c, возле строки 2005. Эта переменная ограничивает количество видеопамяти, которое обновляется за одно прерывание таймера. Это может существенно уменьшить нагрузку от обновления экрана, но в той же степени ухудшит качество картинки.
Гамма-коррекция работает как в 4, так и в 8-битовом режимах. Поскольку парсер файла конфигурации не понимает чисел с плавающей точкой, значение гамма в dosemu.conf должно указываться в процентах: gamma 100 = gamma 1.0. Большие числа дают большую яркость, меньшие - делают графику темнее. Разумные значения лежат в диапазоне 50 ... 200.
В файле dosemu.conf вы можете указать объем видеопамяти, который должен использовать VGA эмулятор. Это значение будет округлено вверх до ближайшего целого блока в 256К. Чтобы не запутать DOS-приложения, нужно использовать стандартные значения, например 1024, 2048, 4096. Учтите, что какое бы значение вы ни указали, 4-битовые режимы поддреживаются только до размера 800x600.
Вы можете влиять на начальный размер окна графики разными способами. Обычно это то же самое значение (в пикселах), что и в графическом режиме VGA, за исключением моды 0x13 (320x200, 256 цветов), которая растягивается в mode13fact раз (по умолчанию в 2). Либо, можно явно указать размер окна в dosemu.conf при помощи winsize. В любом случае потом вы сможете изменить размер окна.
Параметр конфигурации fixed_aspect позволяет зафиксировать отношение сторон графического окна при его масштабировании. Либо, aspect_43 устанавливает отношение сторон в 4:3. Идея заключается в том, что когда программа работает в DOS, она отображается на мониторе 4:3. Благодаря этому у вас не будет сложностей с режимами типа 640x200 (и даже 320x200), которые в противном случае выглядели бы искаженными.
Примечание переводчика: данный файл подвергнут некоторым сокращениям, в основном опущены разделы "To Do" трех-четырехлетней давности.