Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

Режим   Найти похожие ветки 

 
McSimm   (2002-12-27 10:54) [0]

Господа. Подскажите пожалуйста, если знаете.
Есть такая кнопочка на корпусе - когда она отпущена, горит 4.77 и компьютер работает с нормальной скоростью, а когда она нажата, горит 10 и компьютер летает.
Так вот, как из программы на Делфи-6 переключить режим "Turbo". Или это программно невозможно?

(как всегда, за ранние - спасибо :)


 
MBo   (2002-12-27 11:00) [1]

Нужно программно нажать alt-ctrl-+ (зависит от версии bios)
;))))


 
Anatoly Podgoretsky   (2002-12-27 11:04) [2]

Иногда никак, только через кнопку, опиши свою цель, может пригодятся другие методы


 
Игорь Шевченко   (2002-12-27 11:04) [3]

Как обычно, вдумчиво читаем MSDN и видим функцию
HalSetProcessorBoost, доступную из режима ядра. Пишется драйвер режима ядра, в программе на Delphi вызывается функция DeviceIoControl и все хорошо переключается. На время изменения режима желательно вызвать KeStallExecutionProcessor, чтобы никого случайно не зацепить.
После переключения необходимо вызвать еще HalCalibratePerformanceCounter, для учета изменения скорости счета.

С уважением,

P.S. Это все можно сделать только для Nt-систем, как в Win9X - не знаю.


 
LordOfSilence   (2002-12-27 11:06) [4]

Программа написанная в Delphi 6 не сможет нормально работать с такими компьютерами. Только в седьмой версии программисты Borland
смогли оптимизировать свой компилятор под эти цели. Для справки -
переключатель Turbo - это перевод новейших процессоров Intel
Pentium 4 в режим HyperThreading и обратно. :-))))


 
McSimm   (2002-12-27 11:10) [5]

>Anatoly Podgoretsky © (27.12.02 11:04)
Программа написана на Делфи 6. Строит модель валопровода турбины по данным с датчиков.

Просто иногда при длительных расчетах, лучше чтобы пользователь включил 10MHz, а вот когда программа переходит в режим 3D отображения, получается слишком быстро, хотелось бы включить нормальную скорость.


 
Anatoly Podgoretsky   (2002-12-27 11:22) [6]

Ну тогда другое дело, на эту вещь не было стандратов, что то было в биосах, но не во всех. Может что от Игорь Шевченко © (27.12.02 11:04) поможет.
Но сдается мне что нечь у тебя про ДОС программу


 
han_malign   (2002-12-27 11:22) [7]

2 McSimm
- не в службу - а в дружбу, а где та взял эмулятор защищенного режима для 286, сколько времени грузится Windows 95 и хватает ли 16-ти Мб XMM для работы Windows 95 и Delphi-6??? :)))


 
Ru   (2002-12-27 11:23) [8]

раньше чтоб не програмировать системный таймер програмисты запускали цикл и по колычеству тактов определяли время в течении которого длится процесс. с появлением более быстрых машин эти программы начинали работать очень быстро поэтому было введена кнопка турбо для переключения под программу. если программа работает быстро (очень быстро), то замедляете аппаратно машину. Лучше ставить на максиум и не мучаться.

А вопрос о программном переключении из ряда "как отловить нажатие ресет"


 
LordOfSilence   (2002-12-27 11:29) [9]

2 McSimm © (27.12.02 11:10)
Нет-нет, этого переключателя в Вашем случае совершенно недостаточно. Необходимо применять новейшие AGP-8х видеокарточки и, программно взаимодействуя с ее драйверами, переключать их в режимы антиалиасинга и трилинейной анизотропной фильтрации. Также не пренебрегайте вершинными и пиксельными шейдерами и не забудьте учесть специфическую реализацию в Вашей карточке конвейера текстур.


 
McSimm   (2002-12-27 11:35) [10]

> MBo © (27.12.02 11:00)

>Нужно программно нажать alt-ctrl-+ (зависит от версии bios)

Подскажи, пожалуйста - как узнать хендл окна BIOS`а, которому надо отсылать нажатия


 
Игорь Шевченко   (2002-12-27 11:41) [11]

McSimm © (27.12.02 11:35)

Нажатием не получится. Во-первых, не для всех BIOS срабатывает именно эта комбинация клавиш, во-вторых, поток RIT и драйвер клавиатуры не умеют различать именно эти клавиши (в NT/W2k/WinXP) как средство общения с BIOS. Способ с нажатием годится только для DOS-программ.

С уважением,


 
McSimm   (2002-12-27 12:19) [12]

>Игорь Шевченко © (27.12.02 11:04)
Игорь, решил воспользоваться твоим способом (окно bios все равно не получается найти).
Но я не нашел в MSDN функции HalSetProcessorBoost.

Что мне делать?

Сейчас проблема решается с помощью юзер-интерфейса:
ShowMessage("ВЫКЛЮЧИ ТУРБО !");
Но этот способ не всегда срабатывает :(


 
Игорь Шевченко   (2002-12-27 12:37) [13]

Функцию HalSetProcessorBoost можно найти в Driver Development Kit
(DDK) на сайте MS. Там же есть ее прототип (для С, разумеется, драйвер надо на С писать):

typedef unsigned char BOOLEAN;

BOOLEAN HalSetProcessorBoost (BOOLEAN Boost);


Кроме того, необходимо убедиться что установленная у тебя версия Hal поддерживает режим переключения процессора. Если не поддерживает, то на сайте MS, в разделе Downloads можно найти обновление Hal (он включен в сервис-паки для разных систем), с поддержкой Turbo.

Заранее предупреждаю, что траффика эти все download"ы съедят немеряно :-(

С уважением,


 
McSimm   (2002-12-27 13:06) [14]

Господа, заплачу 8.93 WMЖ (больше не дают - фонды исчерпаны).

Напишите пожалуйста драйвер для WINNT 4 переключения XT/AT в режим TURBO и обратно.
Пишите быстрее, т.к. куплена будет только одна разработка на конкурсной основе. Срок - до 20:00 27.12.2002г.


 
DiamondShark   (2002-12-27 13:11) [15]

Блин, он тут всех разводит, а народ на полном серьёзе ведется
;))


 
Ketmar   (2002-12-27 13:24) [16]

>DiamondShark © (27.12.02 13:11)
ну вот. пришел поручик и поломал весь удовольствий %-)

Satanas Nobiscum! 27-Dec-XXXVII A.S.


 
France   (2002-12-27 13:26) [17]

2DiamondShark © (27.12.02 13:11)
стопудово...


 
LordOfSilence   (2002-12-27 13:30) [18]

Гусары, молчать!!! :-)))


 
han_malign   (2002-12-27 13:41) [19]

Почти в тему.
- Когда при переходе на PII, программы скомпилированные на BP-7 c использованием модуля Crt начили при загрузке валится с "Run time error 200"(переполнение 16-битного счетчика при калибровке таймера), лечилось просто - полным отключением кэша процессора - даже ХТ-шный Дигер подтормаживал.
(1-вэ-эм эр-эс ха-тэ/а-тэ :)) )


 
Игорь Шевченко   (2002-12-27 13:46) [20]

han_malign © (27.12.02 13:41)

Дык, как минимум два патча CRT в инете ходило :-)


 
Ketmar   (2002-12-27 13:53) [21]

о. напомнили. пошел качать Диггера.

Satanas Nobiscum! 27-Dec-XXXVII A.S.


 
han_malign   (2002-12-27 13:59) [22]

Игорь Шевченко © (27.12.02 13:46)
- ну на самом деле компилились мы дельфями 1-ми(пропатченному для компиляции под ДОС, rtm), использую BP RTL и Super Visin(Украинское расширение Graphics Vision), так что заменить счетчик на 32-битный проблем не составило.
(Отрубил Иван-царевич голову Змею-горынычу, а утого две выросло - .. - отрубил 32768 голов, и Змей-горыныч умер - потому-что был 16-битным)


 
Игорь Шевченко   (2002-12-27 14:12) [23]

han_malign © (27.12.02 13:59)

:-))))

Забыл Кащей Бессмертный проапгрейдить змея горыныча...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.008 c
1-49094
Каспер
2002-12-26 08:32
2003.01.16
Сохранение/чтение Объектов TStringLista


8-49167
a_n_t
2002-09-27 14:05
2003.01.16
Проигрывание MOD


14-49298
Beglec
2002-12-25 15:46
2003.01.16
Email server под NT


3-48890
Essense
2002-12-20 12:47
2003.01.16
ModifySQL


4-49373
LocalMan
2002-11-27 20:28
2003.01.16
не мог ли ты б мне помочь с Random om





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский