Board.KolibriOS.org
http://board.kolibrios.org/

Выключение ПК.
http://board.kolibrios.org/viewtopic.php?f=3&t=1933
Page 1 of 3

Author:  asmars [ Sat Sep 24, 2011 8:45 pm ]
Post subject:  Выключение ПК.

Всем привет!

Такой вопрос: как можно выключить комп.. из под своей ОС ?

в помощь дали этот код..
Code:
MOV     AX,5300h
XOR     BX,BX
INT     15h
JB      Ext
MOV     AX,5301h
XOR     BX,BX
INT     15h
MOV     AX,5308h
MOV     BX,FFFFh
MOV     CX,0001h
INT     15h
MOV     AX,5307h
MOV     BX,0001h
MOV     CX,0003h
INT     15h
Ext:INT     20h


___________________
Помочь != решить за меня.

Author:  Mario [ Sat Sep 24, 2011 9:07 pm ]
Post subject:  Re: Выключение ПК.

Код для BIOS и будет работать только в реальном режиме процессора. В Колибри также есть подобный кусок, однако надеяться на 100% работу на всех компьютерах бесполезно.

Author:  art_zh [ Sat Sep 24, 2011 10:38 pm ]
Post subject:  Re: Выключение ПК.

kernel/trunk/boot/shutdown.inc

на многих платформах - не работает (новые биосы на APM забили, ждем ACPI).

Для гарантированного выключения своего собственного компьютера рекомендую ознакомиться с документацией к PM-регистрам южного моста.
У тебя какой чипсет?

Author:  CleverMouse [ Mon Sep 26, 2011 11:52 pm ]
Post subject:  Re: Выключение ПК.

art_zh, выражайся аккуратнее, например, как Mario - "есть подобный кусок". Он отнюдь не единственный и безальтернативный и даже не основной; основной вариант уже давно - выключение через ACPI, kernel/trunk/kernel.asm, неподалёку от system_shutdown.

Author:  art_zh [ Tue Sep 27, 2011 12:45 am ]
Post subject:  Re: Выключение ПК.

CleverMouse
да, я про это чудо забыл - оно тоже нифига не работает на очень многих платформах.
Прямой шатдаун гораздо эффективнее.

Author:  CleverMouse [ Tue Sep 27, 2011 12:58 am ]
Post subject:  Re: Выключение ПК.

art_zh, да, конечно, единственный правильный способ - это писать свой, единственный и неповторимый код для каждого чипсета, а универсальные способы хором "нифига не работают на очень многих платформах". Мы все верим.

Author:  art_zh [ Tue Sep 27, 2011 1:07 am ]
Post subject:  Re: Выключение ПК.

Именно это я и имею в виду. Хотя и не претендую на "единственно правильный способ".
Чел спросил - я посоветовал как с моей точки зрения лучше.

Вот пример рестарта для ю.мостов AMD SB700/800/Hudson :
Code:
pm_restart:      
     mov   ax, 6
     mov   dx, 0xCF9   ; reset reg
     out   dx, ax

Все остальное (универсальное и нерабочее) - в топку.

Author:  Mario [ Tue Sep 27, 2011 1:54 am ]
Post subject:  Re: Выключение ПК.

Не ругайтесь! Самый надежный способ это выдернуть штепсель из розетки. Все остальные способы (даже выключатель питания) дюже ненадежные.

Author:  CleverMouse [ Tue Sep 27, 2011 8:18 pm ]
Post subject:  Re: Выключение ПК.

Итак, налицо:
- подмена тезиса с выключения - которое появилось не так давно и не является стандартным - на перезагрузку, которую умели делать уже в очень далёкие времена;
- употребление без комментариев как "всем известное" нетривиального утверждения, на деле не подтверждаемого фактами - "нерабочее".
Товарищи, перед нами демагог. Может быть, помочь товарищу "уйти в науку" до зимы административными методами?

Author:  SoUrcerer [ Tue Sep 27, 2011 8:22 pm ]
Post subject:  Re: Выключение ПК.

CleverMouse, чего ж так жестко-то? Это мужское эго, наверное. Если товарищ хочет уйти в науку, то мы ему поможем, а пока что причин на это не видимвижу. Это было моё альтер-эго с манией величия.

Author:  Mario [ Tue Sep 27, 2011 11:20 pm ]
Post subject:  Re: Выключение ПК.

CleverMouse wrote:
Товарищи, перед нами демагог. Может быть, помочь товарищу "уйти в науку" до зимы административными методами?

Собственно чего так резко то? Артем вроде никого не оскорблял, а за демагогию тут можно много кого расстреливать - меня в частности тоже. Каждый имеет право на свою точку зрения, даже если она в конечном счете окажется ошибочной. Я тут не наблюдаю никакого криминала.

Author:  art_zh [ Wed Sep 28, 2011 1:59 am ]
Post subject:  Re: Выключение ПК.

Direct shutdown для некоторых SB800+ и Гудзонов (я еще не видел ни одной материнки с этими мостами, на которой бы работал "универсальный" код):
Code:
   mov   dx, 0x0804   
   mov   ax, 0x3400
   out   dx, ax
; THE END...

Я против ACPIzации Колибри.
Это моя твердая позиция, к черту демагогию.

Author:  Serge [ Wed Sep 28, 2011 11:46 am ]
Post subject:  Re: Выключение ПК.

art_zh
А если надо кеши сбросить и винты запарковать ? У меня материнка отключается когда винт уже явно останавливается.

Author:  CleverMouse [ Fri Sep 30, 2011 3:03 pm ]
Post subject:  Re: Выключение ПК.

Последние две фразы art_zh инициировали бурную флудильню про необходимость ACPI вообще, которую я выделила в отдельную тему.

Ключевое слово - "некоторых". Я так понимаю, что подмена с выключения на рестарт была вызвана именно желанием представить свою позицию в более выгодном свете, чтобы избавиться от упоминания, что это работает только на одиночных чипсетах.

Когда выясняется, что некоторый код якобы где-то не работает, ВНЕЗАПНО именно в сообщении, критикующем этот код и предлагающем свой подход... скажем так, это вызывает некоторые сомнения в истинности утверждения.

Author:  Artyom [ Fri Sep 30, 2011 9:54 pm ]
Post subject:  Re: Выключение ПК.

В общем я не помню где это было (заклаку потерял), но один челоек из форума (разработчик ядра, вроде) создавал свою тестовую версию
системы (не совсем KOS) для архитектуры IA-32 (x64) с ипользованием APIC и простым ACPI. Вопрос: А повторить или переписать готовый код
на Asm слабо?

Page 1 of 3 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/