Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для A1lpy
16 / 1 / 0
Регистрация: 24.07.2018
Сообщений: 22
emu8086

Выключение ПК средствами биос

09.09.2018, 20:12. Показов 5649. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как можно выключить компьютер средствами прерываний биос чтобы пк выключался при запуске программы на голом железе без винды?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2018, 20:12
Ответы с готовыми решениями:

Получение строки от пользователя в буфер средствами биос
Как можно получить строку от пользователя, введённую через клавиатуру средствами прерываний BIOS?

Предотвратить выключение программы при загрузке и парсинге сайтов средствами Jsoup
Есть вот такой код для загрузки и парсинга сайтов. Если сюда скормить левый адрес для загрузки или при обработки Jsoup будет непойми что,...

Сбросил БИОС. Какую выставить частоту процессора? (биос)
Я сбросил биос (путём снятие батарейки и отключение 20-контактного кабеля). Подключил всё обратно и включил пк и у меня появилось вот такое...

18
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
09.09.2018, 21:06
A1lpy, никак. Во времена, когда стандартизировался биос, компьютеры выключались кнопками, тумблерами, а то и прямо из розетки.
2
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,921
Записей в блоге: 13
09.09.2018, 21:40
На другом форуме в 2004 году JinX предлагал следующее решение
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MOV     AH,0Dh
INT     21h
MOV     AX,5300h
XOR     BX,BX
INT     15h
JB      Ext
MOV     AX,5301h
XOR     BX,BX
INT     15h
MOV     AX,5308h
MOV     BX,0FFFFh
MOV     CX,0001h
INT     15h
MOV     AX,5307h
MOV     BX,0001h
MOV     CX,0003h
INT     15h
Ext:INT     20h
int 20h - видимо остатки фрагмента DOS com программы.
Остальные вызовы прерываний DOS и BIOS (подсистемы APM) можно уточнить в RBIL

Добавлено через 4 минуты
По отзыву ТС предложенный код программно отключал питание компьютера.

Добавлено через 12 минут
Смотрите, что ещё нашёл.
Pavia утверждает:
https://wiki.osdev.org/Shutdown
И далее идём по ссылкам
Основных 2 метода это через APM и через ACPI.
У каждого свои плюсы и недостатки.
APM это старая технология и может не заработать да и у многих она глючила из-за кривых BIOS'ов поэтому на экране светилась надпись нажмите кнопку.
C ACPI нужен эмулятор AML кода - благо в минимальном рабочем примере там всего пара-тройка команд.
К сожалению, ничего из этого проверить не могу - нужен чистый DOS, т.е. требуется некоторая подготовка.
1
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
09.09.2018, 21:41
Ну если биос поддерживает Advanced Power Management v1.2, то да, должен вырубить.
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,921
Записей в блоге: 13
09.09.2018, 21:54
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
Ну если биос поддерживает Advanced Power Management v1.2, то да, должен вырубить.
Кстати, да.

A1lpy, как согласуются
1) проставленный вами префикс emu8086
2) постановка вопроса в первом сообщении
Цитата Сообщение от A1lpy Посмотреть сообщение
при запуске программы на голом железе без винды
0
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
09.09.2018, 22:00
Просто у меня был комп с аппаратным тумблером. Я не могу даже предположений никаких сделать, какой APM подобную технику мог программно выключить. Разве что из ЦПУ вылезал бы маленький чёртик и отжимал кнопку.
2
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
09.09.2018, 23:16
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
никак.
я бы не был так котегоричен
все биосы поддерживают ACPI
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
;fasm-code
org 100h
;---------------------------------
; INT 15 (5301h) - Advanced Power Management v1.0+ - CONNECT REAL-MODE INTERFACE
;        --[in]--        BX = device(ID) of system BIOS (0000h)
;---------------------------------
    mov   ax,5301h
    xor   bx,bx
    int   15h
 
;---------------------------------
; INT 15 (530Eh) - Advanced Power Management v1.1+ - SET DRIVER VERSION
;        --[in]--        BX = 0, CX = APM driver version(BCD)
;---------------------------------
    mov   ax,530Eh
    xor   bx,bx
    mov   cx,0102h    ; CH = major, CL = minor
    int   15h
 
;---------------------------------
; INT 15 (5307h) - Advanced Power Management v1.2 - TURN OFF SYSTEM
;        --[in]--        CX = 3, BX = 1 (for all power-managed devices)
;---------------------------------
    mov   ax,5307h
    mov   bx,1
    mov   cx,3
    int   15h
retf
2
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,921
Записей в блоге: 13
09.09.2018, 23:24
Вы правы, тумблер - только чёртик.
Вероятнее, возможность появилась уже в эпоху Windows и для DOS уже не требовалось и своевременно толком не описывалась, да и реализации в BIOS содержали ошибки (производитель не проверял ненужное).

Подозреваю, что в Windows через драйвера материнской платы идёт обращение к каким-то портам или устройствам на PCI шине.
1
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
09.09.2018, 23:40
ФедосеевПавел, машина перезагрузится даже если ты запишешь в системные регистры левые значения, например загони -1 в какой-нить регистр MSR, где должно быть 1. Проц не дурак.. у него есть инстинкт самосохранения
1
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
09.09.2018, 23:45
Цитата Сообщение от R71MT Посмотреть сообщение
все биосы поддерживают ACPI
Ну насчёт все я бы тоже не был так категоричен. Вот мой тот с тумблером точно не поддерживал.
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,921
Записей в блоге: 13
09.09.2018, 23:50
Перезагрузка была возможна и в IBM PC XT (или её аналоге Искра 1030М) - дальний переход на адрес начальной загрузки процессора.

Программное отключение блока питания ATX стало возможно много позже. Помню, что i485 были ещё с блоками питания AT, а уже Pentium с ATX. По крайней мере в компьютерах, которые сам видел. Может быть в это время были ещё переходные модели.
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
10.09.2018, 00:38
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
Вот мой тот с тумблером
фигга-се... где ты его выкопал?
Миниатюры
Выключение ПК средствами биос  
1
 Аватар для A1lpy
16 / 1 / 0
Регистрация: 24.07.2018
Сообщений: 22
11.09.2018, 19:31  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
1) проставленный вами префикс emu8086
тем, что emu8086 не поддерживает int 15h
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6812 / 2052 / 238
Регистрация: 14.12.2014
Сообщений: 4,305
Записей в блоге: 12
11.09.2018, 19:46
Цитата Сообщение от A1lpy Посмотреть сообщение
тем, что emu8086 не поддерживает int 15h
Вот и спрашивают: почему стоит такой префикс, если он не поддерживает int 15h? Это раз.
И запустить emu8086 без винды не получится. Это два.
1
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
12.09.2018, 05:26
Цитата Сообщение от R71MT Посмотреть сообщение
фигга-се... где ты его выкопал?
Да все 486-е и раньше. Выключение компьютера программно появилось только в форм-факторе ATX, для чего блок питания был переделан под это дело. В него выработку напряжения дежурки добавили, разъем в материнку изменили. А те которые AT у них блок питания выключался механическим выключателем и потому никакого ACPI в биосе быть не могло за полной бессмысленностью.
А у меня даже XT-ха есть. 4.77 MHz родной 8086 проц. Правда пылится в загашничке. Но можно запустить. Так у него корпус не стояк, а лежак и блок питания такой капитальный по размерам. Впрочем, у первых AT тоже корпуса лежаки были и такие-же БП.
3
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
12.09.2018, 16:36
Цитата Сообщение от A1lpy Посмотреть сообщение
как можно выключить компьютер средствами прерываний биос чтобы пк выключался при запуске программы на голом железе без винды?
Универсально только через acpica.

Добавлено через 1 минуту
Цитата Сообщение от R71MT Посмотреть сообщение
все биосы поддерживают ACPI
Но это никак не обязывает их поддерживать вызовы по работе с питанием.
1
 Аватар для Kukuxumushu
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
12.09.2018, 18:02
Цитата Сообщение от Ethereal Посмотреть сообщение
Да все 486-е и раньше.
Не, у меня был селерон 600-й, до 2010 года служил, я на нём даже 3D-модели делал)) Просто там корпус был АТ, чипсет 430й вроде или 440й, не помню уже.
1
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
13.09.2018, 00:35
Kukuxumushu, не держит он acpi да и флаг ему в руки
давай ему поставим atx
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8663 / 4500 / 1670
Регистрация: 01.02.2015
Сообщений: 13,921
Записей в блоге: 13
26.09.2018, 20:42
Сегодня на оф.сайте FreeDOS появилась новость о очередной простой оболочке. Помимо прочего оболочка предлагала отключение и перезагрузку. В исходнике видно, что производится обращение к штатной для FreeDOS утилите fdapm с различными параметрами FDAPM WARMBOOT и FDAPM POWEROFF.
Об утилите fdapm на ibiblio
Там приводится ссылка на авторскую страничку https://www.auersoft.eu/soft/

Т.к. автор утилиты предполагает использование утилиты как упрощения доступа к большому числу функций APM из командной строки (пакетного файла), то исходники несколько велики для быстрого вникания в суть. Но, тем не менее, достойны для изучения при необходимости.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2018, 20:42
Помогаю со студенческими работами здесь

Виснет БИОС, и мерцает начальный экран биос
Кто встречался с подобной проблемой? Скажите что за причина, я конечно не уверен что это материнка, может проц, а может еще что. ...

Материнская плата M5A78L-M LE (БИОС) БИОС выдает "This CPU is not supported by this model. Please check CPU QV
Здравствуйте! Материнская плата M5A78L-M LE, процессор AMD Phenom II X4 965 Black. Сегодня обновил БИОС с версии 1102 до 1601 – от сюда...

При включении ноута жму f2 чтоб попасть в биос но загружается ос а в биос попасть не получается
У меня похожая проблема на моём ноуте сначала стояла винда потом поставил убунту потом опять поставил винду с востановочного диска но при...

Выключение Бп
Всем привет сегодня чиню БП и в нём такая проблема:При нагрузке(включенной мамке) комп работает ~3 секунды а потом выключается,а без...

Выключение ПК
Суть проблемы: надо по событию выключить комп (win xp). Напишите плз. как это сделать в с# а то я никак не могу корректный запрос в msdn...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru