Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как выключить ATX-блок из pm?

1.9K
14 ноября 2006 года
lodstosw
9 / / 14.11.2006
Я пишу ОС, отлаживая на VMWare, в общем, мне бы хотелось узнать, как можно выключить компьютер (виртуальный пока что) из защищенного режима? Например, windows 98 с этим справляется влегкую - VMWare гаснет, а как это мне сделать? Возможно ли это?
7
14 ноября 2006 года
@pixo $oft
3.4K / / 20.09.2006
Я,конечно,в асме не силён,особенно в ЗР;могу только предложить задизассемблить ответственный за это код в 98-ой винде и посмотреть.Или спроси у кого-нить
PS VMWare rulez;)
551
14 ноября 2006 года
Pavia
357 / / 22.04.2004
windows 98 использует APM (Advanced Power Management) BIOS
551
14 ноября 2006 года
Pavia
357 / / 22.04.2004
Вот код пока не проверял должен работать в реальном режиме
Код:
mov ax,5301h
xor bx,bx
int 15h ; подключиться к APM BIOS
mov ax,530fh
mov bx,1
mov cx,1
int 15h ; запустить сервис BIOS
mov ax,5307h
mov bx,1
mov cx,3
int 15h ; выключить компьютер

для защищенного режима, код измениться нужно будет вызвать 5302h или 5303h получишь адресса для базы сегмента данных, кода и точку входа и тд. Через точку входа будешь вызывать из защищенного режима. Подробнее в APM12.rtf.

Phantom-84 писал что выходит в реальный режим и там выключается через int 15h.
349
16 ноября 2006 года
Phantom-84
656 / / 27.10.2005
Там есть интерфейс и для защищенного режима, но для реального появился немного раньше и должен гарантированно присутствовать, а так как я иду по пути повышения универсальности, то выбрал интерфейс реального режима.

Просто так выключить не получится. Там есть одна хитрая вещь. Нужно сообщить версию "APM-драйвера", большую или равную версии APM, поддерживающей полное выключение компьютера.
551
17 ноября 2006 года
Pavia
357 / / 22.04.2004
Не понял куды сообщить? Тут перечитал спецификацию для совместимости с APM1.0 нужно брать ID=0FFFFh выключение там поддерживается.
Код:
mov ax,5301h
xor bx,bx
int 15h ; подключиться к APM BIOS
mov ax,530fh
mov bx,0FFFFh
mov cx,1
int 15h ; запустить сервис BIOS
mov ax,5307h
mov bx,0FFFFh
mov cx,3 ; здесь ошибка была поправил
int 15h ; выключить компьютер
261
18 ноября 2006 года
ahilles
1.5K / / 03.11.2005
как альтернатива: перевести комп в реальный режим и оттуда выключить его
349
19 ноября 2006 года
Phantom-84
656 / / 27.10.2005
Pavia, дай мне тоже почитать... Я же когда-то писал на sysbin'е, что при использовании интерфейса версии 1.0 осуществить выключение редко когда получается... Здесь есть одна проблема: лично мне трудно найти компьютеры, в которых действительно имеется в наличии версия 1.0, но по спецификации последующих версий они будут работать, как версия 1.0 (не считая возможности вызова дополнительных функций), пока не будет вызвана функция APM Driver Version (0Eh) с указанием версии "APM-драйвера", большей или равной 1.1. У меня в оси выключение происходит при наличии версии 1.1 или выше с использованием идентификатора устройства 0001h. Тот фрагмент, который ты вывесил (с использованием идентификатора 0FFFFh без вызова функции с номером 0Eh), не приводит к нужному результату. Может быть, это происходит потому, что в действительности на компьютере имеется более новая версия. Мне бы почитать спецификацию версии 1.0, а то я стал сильно сомневаться, что этой версией вообще поддерживается полное выключение компьютера.
349
23 ноября 2006 года
Phantom-84
656 / / 27.10.2005
Последовательность вызовов именно такая при условии, что имеется версия 1.1 и выше, а управление получено от BIOS и ни какой софт еще не коннектился к данному интерфейсу. Но лично меня все-таки интересует информация по версии 1.0!
551
23 ноября 2006 года
Pavia
357 / / 22.04.2004
Насчет APM 1.0 спецификации на нее нет. Но есть на APM 1.2 в которой говорится о том что есть ID=FFFFh который использовался в APM 1.0 для обозночения всех устройств. Этот ID должен поддерживать и APM 1.2
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог