

http://shoorick.ho.ua/monsters/
Moderator: Shaos
 
														 
														 
														
 
														 
														Code: Select all
sum = 0
store byte 0 at $$+5
repeat $
  load a byte from $$ + % - 1
  sum = sum + a
end repeat
store byte (-sum) and $FF at $$+5
 
														 
														 ). может, как нибудь и поизучаю (давно уж пора). насчет озушки на борту сетевухи - даже не помню, подключена ли она параллельно пзухе или нет, но в любом случае никто не запрещает повесить регистр (а то и не один) на шину данных параллельно пзу и вырезать для него кусок адресного пространства. чтоб избавиться от блокировки, думаю, достаточно выбрать дешифрацию адреса так, чтобы читабельные регистры (при наличии таковых) не попадали в адреса, по которым биус ищет сигнатуры АА55.
 ). может, как нибудь и поизучаю (давно уж пора). насчет озушки на борту сетевухи - даже не помню, подключена ли она параллельно пзухе или нет, но в любом случае никто не запрещает повесить регистр (а то и не один) на шину данных параллельно пзу и вырезать для него кусок адресного пространства. чтоб избавиться от блокировки, думаю, достаточно выбрать дешифрацию адреса так, чтобы читабельные регистры (при наличии таковых) не попадали в адреса, по которым биус ищет сигнатуры АА55.
 
														
Работа с модулями ПЗУ для карт PCI выполняется в соответствии с моделью DDIM(СМ. выше). POST определяет наличие ПЗУ по полю Expansion ROM Base Address в конфигурационном пространстве и назначает ему адрес в свободном пространстве памяти. После этого программированием регистра команд разрешается считывание ПЗУ, и в нем ищется сигнатура заголовка АА55Н. Когда сигнатура найдена, POST ищет подходящий образ (по типу кода и совпадающий по идентификаторам с обнаруженными устройствами PCI) и загружает его в ОЗУ (в область C0000-DFFFFh), оставляя разрешенной запись в эту область. Далее чтение ПЗУ запрещается (записью в поле Expansion ROM Base ^Address), и вызывается процедура инициализации (по адресу 3). При вызове процедуры POST сообщает номер шины (в регистре АН), номер устройства (AL[7:3]) и номер функции (AL[2:0]), благодаря чему процедура узнает точные координаты аппаратных средств. После этого определяется размер области, которую следует оставить в памяти (по байту 2, который может быть модифицирован процедурой инициализации), и для этой области запрещается запись. Если процедура инициализации «урезает» занимаемую память, она должна позаботиться о достоверности контрольной суммы области, описанной байтом 2. Если память освобождается полностью (процедура обнуляет байт 2), то контрольная сумма, естественно, не нужна. Расширение для VGA (определяется по коду класса) обрабатывается особым образом — загружается по адресу C0000h. Процедура инициализации может определить наличие PnP BIOS в системе, проверив значение контрольной структуры PnP по адресу, указанному в Е5: DI, и исполняться в зависимости от обнаруженного системного окружения.
 
														 
														 
														
 
														 
														 другое дело зачем это нужно - вряд ли на 128 кб долго просидишь
 другое дело зачем это нужно - вряд ли на 128 кб долго просидишь 
 
														 
														
