У Поиска нет текстового режима. И видимый 80x25 это есть графический 640x200 1bpp. Как получается еще один цвет, кроме белого, я если честно не очень понял. Вот что пишет ТО по этому поводу:
Код:В графическом режиме 640 х 200 точек отображение произво- дится в формате 1 бит на точку. Каждая точка может иметь два цвета из 16 возможных. В символьном режиме 80 символов х 25 строк отображение производится также в формате 1 бит на точку, но каждый байт содержит неиспользуемый для формирования знака бит D7, кото- рый может нести информацию о цвете символа.Короче какая-то магия с портами 0x6A, 0x6B и каким-то 7-мым битом где-то.Код:4.5.8. В конце каждого элементарного цикла регенерации оперативной памяти происходит загрузка содержимого видеопа- мяти в сдвиговые регистры, выполненные на элементах D72 и D77. Загрузка данных осуществляется выходным сигналом "S/L" контроллера ОЗУ (потенциал низкого уровня). Текущий адрес определяется содержимым основного счетчика (микросхемы D23, - 37 - D24 и D25), состоянием выходного сигнала триггера D12.1:9 и состоянием сигнала управления порта 68Н (бит 6). Данные в сдвиговые регистры загружаются так, как показано в таблице 4.12. Т а б л и ц а 4.12 -----------T------------------------------- ¦ Р а з р я д +---T---T---T---T---T---T---T--- ¦ 7¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 +---+---+---+---+---+---+---+--- ¦ Четный банк ¦Нечетный банк -----------+---T---T---T---+---T---T---T--- регистр 1 ¦D7L¦D5L¦D3L¦D1L¦D7H¦D5H¦D3H¦D1H -----------+---+---+---+---+---+---+---+--- регистр 2 ¦D6L¦D4L¦D2L¦D0L¦D6H¦D4H¦D2H¦D0Н Четные биты видеопамяти загружаются в один регистр, не- четные - в другой. Выходные сигналы сдвиговых регистров D72 и D77 поступают на мультиплексор данных (микросхема D48). Сюда же поступает сигнал с выхода схемы управления цветом, выполненненной на элементах D4.2, D46 и D4.3. Данная схема позволяет по- чить в символьном режиме 80 символов х 25 строк и дополни- тельно цвет символа, в отличие от графического 640х200 то- чек.
Думаешь, я ТО не читал, прежде чем делать эмуляцию? И схему не смотрел?
Про бит D7 проще из схемы узнать - это как бы альтернативный цвет засвеченных точек (из остальных семи). Я так понял, первая точка будет всегда незасвеченная, отсюда и полоски на инверсных символах. В принципе, при определённых настройках портов она может и не обнуляться, но тогда появятся вертикальные линии у символов с альтернативным цветом. Можно поиграться портами в отладчике.
Вообще, круто! Скорость очень похожа на настоящую. Только что-то checkit v3 не запускается в эмуле. И цвет все-таки надо поправить.
А мне всё-таки кажется, что я сделал правильно. Нортон вообще не устанавливает регистр палитры, он остался такой, какой был при установке режима, т.е. палитра номер ноль. Более того, в конфигурации Нортона установлен ч/б режим, т.е. реально использованы цвета 0,7,15, чёрный, серый и белый. А биос Поиска в псевдотектовом режиме 80х25 преобразовывает их в цвет фона, нормальный цвет и альтернативный цвет. А в палитре номер ноль это как раз чёрный, серый и зелёный (точнее, основная палитра с нулевым цветом фона).
Последний раз редактировалось b2m; 25.11.2013 в 16:08.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну зачем спорить, если уже много человек сказало, что не было в текстовом режиме зеленого. Было только 3 цвета - черный, белый и бирюзовый. При переключении на русский цвет фона менялся на синий, остальные цвета оставались как есть.
Возможно была другая прошивка ПЗУ палитры. Другого объяснения у меня нет.
А что по поводу checkit? Вообще, побольше бы деталей.. Вижу, что x86 в виде отдельного плагина. С нуля писалось или где-то позаимствовано? Исходников нам не видать конечно?
Не смотрел ещё.
Писал с нуля, поэтому не уверен в 100% точности эмуляции процессора. Исходников не будет.Я уже где-то писал, что единственный заимствованный код в эмуляторе - процессор Z80, потому что мне до сих пор лень писать свою реализацию. Даже несмотря на неприлично большой размер имеющейся z80.dll
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)