CMOS, насколько я знаю, выполнена на отдельной микросхеме, доступ к ней осуществляется через порты 0х70/0х71.
А что подразумевается под логической структурой памяти? В реальном режиме (и это не только сразу после POST'а) память _условно_ делится на...
q_q Угу, это я скопировал неправильно из NotePad, а про еах забыл :(. push ebx mov ebx, [env] l00p: cmp [ebx], 0x0 jz .end_l00p push dword...
Не хочу сказать глупость, но мне кажется, что порт 0х60 -- СОМ-клавиатура, 0х64 -- PS/2. Но могу и ошибиться. И получается, что на ноуте СОМ стоит?
device Правильнее сказать, что это в С указатель хранится в стеке. Вопрос в том, кто туда его положит? Это должна сделать т.н. CRT -- библиотека...
AntiB 8259
+ так и не исправлена маскировка прерываний: set_int_ctrlr: mov al, 11 out dx, al jmp SHORT $+2 mov al, ah inc dx out dx, al jmp...
В том-то и дело, что не dummy. Точнее, dummy, но при отсутствии 32 обработчиков исключений, обработчики прерываний "смещаются". В результате...
JAPH Опередил :). AntiB +не хватает обработчика прерывания 0.
Это, конечно, круто, но где я возьму 'pmode.inc'?
Тогда выложи исходник (полностью, чтобы можно было собрать).
Попробуй: acc_int_gate = 00001110b acc_trap_gate = 00001111b +, насколько я помню, ловушками (trap) являются только int 0x1 & int 0x3, остальные...
trap_acc чему равен? Помимо этого: int 0x1 использовать нежелательно -- как-никак, EFLAGS.TF & DRx используют это прерывание.
AntiB Хм, а что там сейчас переделывать, если все работает? Я прочитал это: http://wasm.ru/forum/viewtopic.php?pid=172103#p172103 Беда в том, что...
AntiB Я думаю, что твой код по переключению в PM запросто влезет в 512 байт. Сделай плоский бинарник, положи его в MBR и загрузись с него. BIOS...
rei3er //offtop: а ты с АТА не разбирался? Не могу понять, как мне обнаружить правильно присутствие/отсутствие винчестеров на канале.
AntiB Залей куда-нибудь образ флешки (если она не очень большая, если большая, то залей ту часть, где твой код есть, чтобы с этого образа можно...
Какие значения имеют code_acc, data_acc? И ребут происходит именно при записи в видеопамять? Вообще, Bochs хорошо помогает в таких случаях.
Возможно, поможет флаг EFLAGS.TF? Правда, для обработки исключения SEH использовать не удастся -- либо через отладочные события, ибо через ring0.
diamond Я так и сделал теперь. Просто сам факт удивил.
Имена участников (разделяйте запятой).