Много-много лет назад, когда деревья были большие, а мощность процессоров меряли мегагерцами, на некоторых системных блоках можно было найти загадочную кнопку с гордым названием «Turbo».
Логика подсказывала: раз «турбо» — значит, должна ускорять. Но так ли она работала на самом деле? Кто её туда поставил и зачем? Давайте разбираться.
Гонка вооружений, которую никто не ожидал
Всё начиналось более чем невинно. В августе 1981 года IBM, гигант, до этого известный в основном мейнфреймами, выпускает на рынок свой IBM 5150. Сердцем новой машины стал процессор Intel 8088 с частотой 4.77 МГц.

Вслед за гигантом IBM производить свои IBM PC совместимые машины начали и другие компании, например, Compaq. Их стратегия была проста и гениальна: предложить то же самое, но дешевле. Настоящая гонка началась, когда производители перешли от простого копирования к апгрейду. Почему бы не сделать то же самое, но еще и мощнее, быстрее? Так на свет появились машины на базе Intel 8086, продвинутые версии которого — 8086-1 и 8086-2 — могли работать на частоте 10 и 8 МГц соответственно. По меркам того времени это был колоссальный скачок производительности. Казалось бы, вот он, триумф инженерной мысли! Но именно здесь и скрывалась ловушка, которая и привела к появлению самой парадоксальной кнопки в истории.
Казалось бы, что может быть плохого в высокой производительности? Однако стремительный рост частот обнажил фундаментальную проблему: железо стало обгонять софт. Большинство разработчиков начала 80-х воспринимали IBM PC как конкретное железное изделие, а не как платформу с долгосрочной совместимостью. Никто всерьёз не ожидал, что через пару лет машины с той же архитектурой будут работать в разы быстрее.
Поскольку большинство программ, разработанных специально под IBM PC, были заточены под частоту оригинального IBM 5150 — те самые 4.77 МГц, их запуск на машинах с 8-мегагерцовым CPU приводил к проблемам.
Первыми решение этой проблемы нашли производители акселераторов. Их гениальное инженерное решение было до смешного простым: обычный механический переключатель. Щелчок — и машина работает на полной скорости нового CPU. Ещё один — и компьютер сбрасывается в традиционные 5 МГц для запуска старого софта.

Некоторые производители клонов пошли дальше и реализовали переключение на уровне BIOS, назначив для этого «магические» комбинации клавиш вроде Ctrl+Alt+[+] или Ctrl+Alt+[\]. Это был уже более элегантный, программный подход.
Обратите внимание: на этом этапе термин «турбо» ещё не фигурировал. Это были просто «быстрый» и «медленный» (совместимый) режимы. Всё изменилось с приходом маркетологов, которые быстро смекнули, что «медленный режим» — это то, что интересно пользователям. Нужно было продавать скорость, производительность, мощь!
Как Eagle Computer «приручила» скорость
Лето 1984 года. Калифорния, Компания Eagle Computer, один из многочисленных производителей клонов, готовится совершить маркетинговый прорыв, который навсегда войдет в историю компьютерного железа. Они представляют новую линейку машин — Eagle PC Turbo.
Аппаратной основе было чем похвастаться: сердцем был уже не 8088, а более производительный 8086 с 8 МГц частоты. Но главной «фишкой», которую заметили все, стала не начинка, а просто кнопка.
Прямо на лицевой панели красовалась та самая легендарная кнопка с подписью «Turbo».
Большинство источников вроде этого предлагают нам такую версию. Вопреки логике, её нажатие переключало частоту процессора вниз, до совместимых 4.77 МГц. А «обычным», ненажатым состоянием был самый быстрый, 8-МГц режим. Eagle не изобретала саму функцию переключения, но они придумали для нее гениальное с точки зрения маркетинга название.
Пресса того времени встретила новинку с восторгом. Так, в декабрьском номере PC Magazine за 1984 год можно было прочитать восторженный отзыв:
«На самом деле, он настолько быстр, что Eagle пришлось разместить на передней панели кнопку для снижения скорости работы в целях совместимости с PC».


А вот в журнале PC Tech Journal иная формулировка:

Сложно сказать на 100%, что Eagle были абсолютно первыми, кто использовал этот термин. Однако само слово «турбо» было главным маркетинговым трендом того десятилетия. Его лепили на всё подряд, чтобы сделать акцент на мощности и превосходстве. Какая уважающая себя компания разместит на передней панели своего топового продукта огромную кнопку с надписью «Медленно»? А «Turbo» — это звучит мощно, технологично, да еще и продается на ура.
Идея оказалась настолько цепкой, что её мгновенно скопировали конкуренты. Уже через пару лет, когда мощные клоны подешевели и хлынули на массовый рынок, «турбо-кнопка» стала таким же обязательным атрибутом системного блока, как и дисковод для 5.25-дюймовых дискет. К 1988 году она была повсюду, увековечивая этот прекрасный оксюморон на корпусах миллионов компьютеров по всему миру.

Эпидемия «Турбо»
К началу 1990-х годов «гонка мегагерц» вышла на совершенно новый уровень. Если в середине 80-х разговор о 8 МГц вызывал восхищение, то теперь процессоры уверенно брали планку в 33, 40, 66 и даже 100 МГц. Пропасть между старым софтом и новым железом стала настолько огромной, что без функции принудительного замедления запустить классическую игру или программу стало практически невозможно. Кнопка «Турбо» превратилась из опции в мастхев.
Производители быстро смекнули, что саму функцию можно подать еще эффектнее. Так на системных блоках появилась культовая деталь, хорошо знакомая всем детям 90-х: индикатор, который с гордостью демонстрировал «текущую» частоту.

Логика его работы была до гениальности проста: нажал на «Турбо» — дисплей переключается с одного заранее прошитого числа, например, c «33», на другое — «66». Это создавало мощную иллюзию контроля и технологичности. Пользователь буквально видел, как его компьютер «ускоряется» или «замедляется».
Но здесь скрывалась самая большая ирония всей этой истории. Эти цифры довольно часто чистой воды бутафорией. Значения на дисплее не имели никакого отношения к реальной тактовой частоте процессора. На светодиодном модуле можно было настроить показ абсолютно любых символов. Это был стопроцентный маркетинговый трюк, призванный впечатлить покупателя и дать ему ложное, но приятное чувство участия в управлении мощностью машины.
Но есть и еще один нюанс. Если все было бы так однозначно, в интернете — как в ру-сегменте, так и на зарубежных ресурсах — не было бы столько дебатов, холиваров и выяснений, как же на самом деле работала эта кнопка? Ведь немало пользователей утверждают, что Turbo делала ровно то, что от нее и ожидали — ускоряла компьютер. Судя по количеству сторонников обеих версий, все зависело от реализации конкретной модели ПК.
Закат эпохи
Всё когда-нибудь заканчивается. Судьбу кнопки «Турбо» решили не новые процессоры, а новые подходы к созданию софта. Разработчики наконец-то осознали, что архитектура IBM PC — это надолго и тактовые частоты будут неуклонно расти. Поэтому перестали жестко привязывать логику работы программ к количеству тактов CPU, а новый софт стал учитывать тактовую частоту процессора.
С распространением такого подхода и постепенным уходом в прошлое софта 1980-х годов практическая необходимость в кнопке «Турбо» стала стремительно исчезать. Зачем нужен аппаратный переключатель, если совместимость обеспечивается на программном уровне?
К тому же, к середине 1990-х, с приходом процессоров Pentium, рынок ПК стал полем жесточайшей ценовой конкуренции. Каждый копейка был на счету. И производители задумались: а зачем нам платить за лишнюю кнопку и поддержку этой функции, если её почти никто не использует? Так, в погоне за снижением себестоимости, кнопка Turbo тихо и незаметно исчезла с лицевых панелей новых системных блоков.
Уже в нулевых она стала настоящим артефактом, а её функцию по замедлению взяли на себя программы вроде Mo'Slo или CPUKILLER. Они позволяли гибко настраивать степень «торможения» системы, что было куда удобнее бинарного переключателя.

Сейчас кнопку Turbo можно встретить не только на системниках того времени, но и на некоторых старых клавиатурах:

Но это уже совсем другая история, ведь предназначение у нее было вообще иное.
Комментарии (189)
vadimr
25.08.2025 15:19Когда производительность процессоров отвязалась от тактовой частоты, убрали индикацию частоты, а вместе с ней и кнопку.
PerroSalchicha
25.08.2025 15:19Да пораньше, на самом деле. Индикацию частоты убрали, когда частота начала переваливать за три знака :)
bolk
25.08.2025 15:19Lo/Hi было
PerroSalchicha
25.08.2025 15:19Lo/Hi - это не интересно было, частоту же как раз хотелось видеть, показать, что вот, пацаны, у меня пень 166.
BiTL
25.08.2025 15:19Эт когда она отвязалась? ) Все еще вроде зависит.
А так-то и раньше производительность зависела не только от частоты.vadimr
25.08.2025 15:19До Pentium Pro, основываясь только на частоте, уже можно было грубо судить о сравнительной производительности Intel-совместимых процессоров.
PerroSalchicha
25.08.2025 15:19А что произошло в этом плане с Pentium Pro? По-моему, никто не сомневался, что пень про 180 чутка медленнее, чем пень про 200 :)
vadimr
25.08.2025 15:19Тогда, вроде, начались Pentium Pro, Pentium II и Celeron с одинаковой частотой, но разной архитектурой и из-за этого разной производительностью.
rogoz
25.08.2025 15:19Вроде бы Pentium 1 60 MHz был быстрее 80486 100 MHz.
PerroSalchicha
25.08.2025 15:19Тогда, вроде, начались Pentium Pro, Pentium II и Celeron с одинаковой частотой, но разной архитектурой
Архитектура у них как раз одинаковая была, отличались примочки. Пень Про - без ММХ, но с быстрым кешем, Пень Два с ММХ, но кеш в два раза медленее, Целерон сперва вообще без кеша. Вот вы лучше попробуйте выбрать по частоте между Пентиум и 486 одного года выпуска :)
K0styan
25.08.2025 15:19Строго говоря, добавление сета инструкций, тех же MMX - это уже изменение архитектуры (хотя это всё т.н. семейство P6, да).
DMGarikk
25.08.2025 15:19раньше она очень сильно от неё зависила, разницу между Pentium 130 и Pentium 200 можно было даже в винде заметить, при том что разницу между FPM и EDO памятью так прям на глаз было сложнее уловить
DanilinS
25.08.2025 15:19Да, была такая кнопка. Реально меняла тактовую частоту. Естественно, на плате были контакты, что этим управляли. И они подключались к этой кнопке.
Обычно всегда была включена. Сбрасывать тактовую частоту приходилось в некоторых играх, где скорость игры была привязана к тактовой частоте. Что приводило к тому, что на высоких частотах игры становились не проходимы.
Я помню, что в одной игре приходилось отключать кэш на материнской плате. Иначе пройти динамический эпизод было невозможно.
Ivan22
25.08.2025 15:19я тоже такой фигней занимался, пока не нашел резидентную дос утилиту позвалявшую замедлять процессор на любой нужный % в любое время.
SargeT
25.08.2025 15:19Васе Гальперову не помешала бы такая, только для частоты кадров. А то поставит 60 FPS, заглючит игру, а потом ему половина аудитории Разбора Полётов объясняет в комментах, что если залочено у консольного порта 30, то играй на 30, не выпендривайся. А с кнопкой мог бы прямо на ходу переключаться :)
zx80
25.08.2025 15:19Сейчас не помешала бы кнопка Led (Вкл/Выкл подсветка внутри корпуса). Производители корпусов - ловите бизнес идею!
ferosod
25.08.2025 15:19А зачем её включать?
Zombieff
25.08.2025 15:19На некоторых видеокартах по умолчанию включена подсветка, и её не выключить без специального софта, который только под винду (а вдруг у меня линукс), а ещё есть индикация питания на материнской плате и на корпусе. Это если прям уж докопаться.
Но вообще для любителей RGB-подсветки и так обычно в софте для всей этой радости есть профили, которые вроде бы и на хоткеи повесить можно.
Самый бесполезный случай применения динамической RGB-подсветки, кстати — у меня на мыши SteelSeries Rival 100 может меняться цвет подсветки логотипа в зависимости от уровня здоровья в некоторых играх. Только логотип всегда закрыт ладонью.
А если бизнес-идею продавать, то тогда уж отдельный пафосный макропад для управления подсветкой. Для нишевой аудитории зайдёт за хорошие деньги.
DrGluck07
25.08.2025 15:19Пару дней назад начал проходить последнюю Мафию. Минут двадцать недоумевал почему подсветка на клавиатуре начала всячески моргать. Потом допёрло - Мафия управляет моей клавиатурой. Звучит зловеще, если подумать.
Ну т.е. добавить API для того чтоб игры и прочие программы умели управлять подсветкой Ладжитеку было не лень. А сделать чтоб их сраный G-HUB начал видеть мою гарнитуру G PRO X Wireless (сломалось после последнего апдейта), вот это они не могут, лапки у них, понимаете-ли.
szkn
25.08.2025 15:19Есть кнопка на материнских платах, управляющая подсветкой. Просто это обычно hi-end сегмент (40-60к за плату). Можно назначить также кнопку reset на корпусе, чтобы этим занималась.
VBDUnit
25.08.2025 15:19Без подсветки тяжело сейчас найти хорошее железо.
Я своё упаковал в глухой черный корпус и поставил в вентилируемую кладовку. Пусть себе там светится сколько хочет :)
konst90
25.08.2025 15:19У меня на цвет подсветки выведена загрузка процессора, зеленый-жёлтый-красный. Когда комп долго работает над какой-то задачей, очень удобно: перестало светиться красным расчёт закончен, можно смотреть результаты.
rasde
25.08.2025 15:19Не знаю насчет выключения, но вот смена режимов подсветки в некоторых корпусах бывает. В целом, если стоит задача просто выключать подсветку, а кулера имеют отдельный выход RGB/ARGB - достаточно просто подключить всю подсветку последовательно и в разрыв поставить кнопку-переключатель, заменив ею, например, кнопку Reset. Минус - не будет отключаться подсветка видеокарты, оперативы, материнки и иже с ними.
KEugene
25.08.2025 15:19В биосе все настраивается. Во всяком случае у Асуса. Можно включить и выключить или применить зашитый профиль. Для "тонкой" настройки - уже специальное приложение.
axe_chita
25.08.2025 15:19Есть такие корпуса с кнопкой LED. Собирал в них ПК неоднократно, обычно это стеклянные аквариумы ;)
Stawros
25.08.2025 15:19На моем Thermaltake Core как раз есть, как и кнопки режимов охлаждения, на стареньком Zalman i3 при снижении скорости охлаждения до минимума подсветка тоже отключалась (этакий ночной режим). Так что да, их есть на рынке, а задуматься можно разве что маркетплейсам, добавив в фильтры поиска галочку для тех кому оно нужно.
D03ER
25.08.2025 15:19Софтинка OpenRGB помогла управиться с подсветкой (если она управляемая, а не просто запитана). Есть и на винды и на линуксы
Swarg32
25.08.2025 15:19Не нужна никакая кнопка. Есть тенденция к подключению небольших мониторов, hmi или просто небольших мониторов. И вот на них уже имеет смысл что-то делать.
В интерфейсе hmi монитора можно хоть кнопку на все светодиоды, хоть ещё какое управление (яркость, цвета, режим). С обычным ещё проще, можно любой интерфейс программы + в зависимости от того, что сейчас запущено, можно менять, от какой программы сейчас выводить или дать возможность самому ещё переключать на нужный экран от софтин.K0styan
25.08.2025 15:19Для того, чтобы просто всю эту цветомузыку нафиг выключить - слишком сложное решение.
Swarg32
25.08.2025 15:19Ничего сложного совершенно. Просто штука, которая решает определённые задачи. Покупная готовая или самодельная (хоть из старого планшета или смартфона сделать можно), это другой момент. Куча всяких светодиодиков чуть ли не в любой штуке в компьютере это в принципе про украшательства, а не про необходимость. Ничем не лучше и не хуже кучи других вещей - минидисплеев в кнопках клавиатуры, доп. мониторов в ноутбуках (asus zenbook pro duo 15 oled и много ещё в каких экзотических моделях), небольшой дисплейчик на крышке ноутбука, на который что-то выводится, клавиатуры со встроенным монитором и т.д.
Так что кого-то и только ради управления цветомузыкой устроит. А так всякие мониторчики давно много кто использует много для чего. Кто-то информацию о частоте, температуре и прочем смотрит + иногда может что-то настраивать. В некоторых мини-пк уже есть встроеные небольшие мониторчики для этого. Выводят всякие картинки или видео. Работая в каком приложении на такой доп. мониторчкик делают отображение ещё чего-то нужного для этого приложения (это может быть и ещё одним окном этого приложения). И т.д. Вариантов много, как уже используется и тем более, как может быть использовано.
kma21
25.08.2025 15:19Самое интересное в этих ваших подсветках, что они управляются из ОС.
Т.е. даже если пользователь настроил её на какой-то свой профиль, то оно заработает только при запуске утилиты. В BIOS, в загрузчике работает дефолтный паттерн перебора цветов.
По крайней мере у моего ASUS так.
VaNnOrus
25.08.2025 15:19Если нужно просто погасить навсегда, то в настройках матери обычно есть опция, которая погасит подсветку даже до загрузки ОС
pvsur
25.08.2025 15:19Да есть такая кнопка у меня, уменьшает или гасит подсветку кулеров. Вот видюху и стойку поддержки видюхи не затрагивает, жаль...
K0styan
25.08.2025 15:19У меня единственный светящийся компонент - вообще БП - всё остальное выбирал без подсветки, а про БП даже не подумал, что она там может быть)
edo1h
25.08.2025 15:19Сейчас не помешала бы кнопка Led (Вкл/Выкл подсветка внутри корпуса)
а чем это лучше, чем какой-нибудь openrgb? зачем нужна аппаратная кнопка?
Wolf4D
25.08.2025 15:19Сейчас было бы круто иметь такую кнопку для сброса тактовой частоты / включения турбобуста. На ноутах есть на Fn, а вот на стационарнике нет
drWhy
25.08.2025 15:19За чем дело стало? Ловите. HP KBAR211. Довольно удобная, кстати. Чуть уменьшенная, но это даже лучше - в рюкзак влазит.
Вообще же модификатором (Ctrl, Alt, Shift, Fn,..) можно назначить при желании любую клавишу или их комбинацию (при условии, конечно, что это не будет конфликтовать со схемой разводки конкретной клавиатуры). Понадобится настраиваемый драйвер-фильтр клавиатуры.
Inn235
25.08.2025 15:19Интерфейс подключения: PS/2
Серьёзно?
drWhy
25.08.2025 15:19У меня USB версия. Вообще впервые увидел её в комплекте с достаточно современными неттопами.
Да и не благоволят бренды к устаревшим интерфейсам.Хотя лично мне и PS/2 не чужд - к одному из компов подключена наверно пятнадцатилетняя Logitech 250 - ей сносу нет, единственное часть кнопок пожелтела, наощупь не слышно.
Работает как часики.
Да и иногда без ps/2 в биос не войдёшь - к какой то материнке на полном серьёзе написано в мануале, что нажимать клавишу, чтобы войти в биос нужно с частотой одно нажатие в 0,2 с!
С usb клавиатуры в биос попасть так и не удалось, зато ps/2 шмогла.
Ne345
25.08.2025 15:19В старых компьютерах я сталкивался с тем, что при выключенном режиме Турбо переставала нормально работать передача данных с повышенной скоростью от периферийного устройства к процессору по COM порту. Я посчитал, что этот режим периодически приостанавливает процессор на какое-то время. Мало вероятно, что понижалась сама частота, подаваемая на COM порт. Тогда связь прекращалась бы вообще.
PerroSalchicha
25.08.2025 15:19Никогда такого не встречал, но чисто теоретически, такое могло быть, например, если вы нажимали кнопку Турбо уже при запущенной программе терминала. Которая свои коэффициенты для временнЫх интервалов рассчитывала при старте, и при изменении частоты процессора во время работы они становились некорректными.
Я посчитал, что этот режим периодически приостанавливает процессор на какое-то время.
Не приостанавливает. Если это не совсем древний компьютер времён первых РС ХТ, то микросхема UART принимает данные в буфер, а когда он наполняется, вызывает прерывание, и процессор забирает их оттуда. Частотой передачи чип UART рулит самостоятельно.
kavc
25.08.2025 15:19На некоторых системах "детурбирование" действительно производилось периодическим остановом CPU сигналом Halt, там могли наблюдаться пропуски прерываний, переполнения буфера и смежные с ними эффекты.
TimurZhoraev
25.08.2025 15:19Джамперы для выставления множителя на матплате - та же история. FSB 33 и далее 66/120/133/150 в середине 90х, особенно радовали Cyrix 586 и чипсеты SiS. При этом на некоторых матплатах в нулевых, уже в более поздних, если что-то сделать не так с частотой шины и таймингами то выгорала память.
StjarnornasFred
25.08.2025 15:19В современных игровых ноутбуках эта кнопка есть и она делает ровно это - переключает режимы процессора (и видеоускорителей) между обычным "рабочим" и ускоренным "игровым". Как вариант - переключает встроенный и дискретный видеоускоритель.
MaFrance351
25.08.2025 15:19А на некоторых это был режим энергосбережения. На Sony Vaio некоторых моделей был переключатель Speed/STAMINA.
Sergey-Fox
25.08.2025 15:19Она есть не только в ноутбуках, но и на мини-ПК. Тут недавно попался мне такой: AOKZOE AI с AMD Ryzen AI Max+ 395 (https://habr.com/ru/news/914452/). Так вот у него та самая кнопка "Турбо" для активации режима повышенной производительности, в котором, по словам производителя, увеличивается TDP процессора и возрастает скорость вращения вентиляторов.
p.s.: на блоках питания и видеокартах мне тоже такие кнопки встречались )
Squoworode
25.08.2025 15:19Сейчас кнопку Turbo можно встретить не только на системниках того времени, но и на некоторых старых клавиатурах:
Ох, снова вьетнамские флэшбэки от кнопок управления питанием над курсорным блоком...
Vsevo10d
25.08.2025 15:19Ничего, на ноутах питание в виде штатной клавиатурной кнопки в правом углу становится нормой, каждая новинка – хорошо ПТСРнутый флэшбек!
mayorovp
25.08.2025 15:19В правом углу всё с кнопкой в порядке, как и в варианте над блоком Insert-Home-PageUp. Проблемы были (и есть) с "гениальным" расположением кнопки выключения питания под клавишей Delete.
DikSoft
25.08.2025 15:19Asus:
Подержите моё пиво!
Squoworode
25.08.2025 15:19Ну, раз уж начали говорить о ноутбуках...
Нерпа ставит кнопку питания заподлицо с боковой панелью, ровно напротив портов на другом торце. В результате, когда включаешь провода, рука, держащая ноутбук, неизбежно нажимает на кнопку питания...
Хорошо ещё, рядом есть ещё один USB-порт. Воткнул свисток мыши туда, теперь он у меня служит маркером зоны, на которую нажимать не следует.
RH215
25.08.2025 15:19Кстати, некоторым такое нравится -- позволяет использовать ноутбук на док-станции с закрытой крышкой.
DikSoft
25.08.2025 15:19Рациональное объяснение такого идиотского, как у Asus, расположения кнопки, конечно, есть. Тем более, что на фото трансформер, который можно "вывернуть наизнанку" и использовать, как планшет с тачскрином (один раз попробовал, не зашло).
Но реализация - жесть. Каждый раз, когда нужно было его передвинуть, эта кнопка под рукой мешалась.
Akon32
25.08.2025 15:19На каких-то HP, кажется, "замаскированная" кнопка питания срабатывала с задержкой, и её расположение не вызывало проблем.
ts347
25.08.2025 15:19Я, видимо, один не испытывал с этими кнопками (управления питанием над стрелками) никаких проблем.
Реально? Сложно пойти в настройки электропитания и выключить? Раньше (в XP?) там еще был вариант «Спросить» или что-то такое.
Если не знаешь про эту настройку — ну развинти клаву и заклей чем-нибудь мембрану под этими кнопками.
Я вообще просто укорачивал эти кнопки, чтобы на них нельзя было нажать случайно.
Каждый раз вижу эти ветки стенаний и удивляюсь. Уж на хабре-то. Казалось бы.
mayorovp
25.08.2025 15:19Сам факт того, что первым делом приходится идти в настройки и выключать кнопку, как раз и показывает какая "чудесная" и "полезная" эта кнопка была. Это во-первых.
А во-вторых, не все в детстве играли за своим компьютером, который можно было настраивать или там калечить кнопки на клавиатуре.
Ну и приведённая вами настройка также отключает и кнопку на корпусе, это в-третьих.
balamutang
25.08.2025 15:19В ATM Turbo (если кто помнит что это)над курсором был ресет, вот это было тоже лихо
Timick
25.08.2025 15:19Что-то подобное и сейчас не помешало бы - переводить режим процессора и охлаждения в тихий. На корпусе кнопка не нужна так как сегодня он как правило расположен по дальше, а стандартное сочетание на клавиатуре самое оно.
DrGluck07
25.08.2025 15:19Так сейчас у каждого производителя материнок есть подобное приложение. Правда непонятно зачем оно, проц и так умеет тормозиться без нагрузки.
checkpoint
25.08.2025 15:19У меня кнопка "Reset" была подключена к кнопке джоя на SB16, на которой висел программный Watchdog (OS/2), который запускал режим отладки ядра, что позволяло выкинуть из памяти зависшую DOS Box прогу без рестарта системы.
BiTL
25.08.2025 15:19Всё изменилось с приходом маркетологов, которые быстро смекнули, что «медленный режим» — это то, что интересно пользователям. Нужно было продавать скорость, производительность, мощь!
Не понял логической цепочки.
Это создавало мощную иллюзию контроля и технологичности. Пользователь буквально видел, как его компьютер «ускоряется» или «замедляется».
....
Но здесь скрывалась самая большая ирония всей этой истории.
....
Это был стопроцентный маркетинговый трюк, призванный впечатлить покупателя и дать ему ложное, но приятное чувство участия в управлении мощностью машины.
Так и не понял - в чем был заговор. Автор что-то скрывает от нас! Не иначе как маркетолог! Пытается создать иллюзию, делает пасы рукаме и интригует!
Кнопка турбо действительно управляла скоростью компьютера и именно через частоту процессора. Понижает - или повышает - это вопрос точки зрения :)pes_loxmaty
25.08.2025 15:19Так в том и суть, что потребность иногда снижать частоты была, но продать кнопку TURBO можно с большим пафосом чем кнопку LEGACY MODE
BiTL
25.08.2025 15:19Так если абсолютно у всех была эта кнопка "Turbo", то в чем тайный смысл маркетинга? А еще можно пофантазировать, что кнопку включения назвали "Power" также из маркетинговых целей, так ведь круче! Power! А не "On/Off".
Кстати, даже у ZX Spectrum самопальных была кнопка "Turbo". Тоже видимо для пафоса и повышения продаж?Kerman
25.08.2025 15:19Это были скорее всего Profi, на которые ставился z80h. У меня был такой, там в турбо-режиме было 7 мГц, и в этом режиме многие игры ломались, так как были расчитаны на 3,5 мГц, а в halt умели не только лишь все. Вроде ещё на скорпионе такая кнопка была.
Daimos
25.08.2025 15:19В первой фразе 99% забыли НЕ и должно было быть так - что НЕ интересно пользователям.
panzerfaust
25.08.2025 15:19Однажды лет в 12 я набрался смелости и снял кожух с системника. И увидел, что кнопка "турбо" вообще никуда не подключена. Расстроился.
P1ngZer0
25.08.2025 15:19Классика. На многих корпусах турбо была чисто для вида, особенно в поздних сериях
accurate_random
25.08.2025 15:19Speed Level, или даже просто Level (можно было переключать, если бы проблема с софтом стала бы ступенчатой) - прогматичнее но эффективнее , он давал бы понять покупателю, что с данным производителем можно не расставаться очень долго. А остальные пусть делали - бы Turbo, в качестве бонуса могли - бы предоставлять покупателю несколько коробок жевательной резины (были популярны жевачки турбо). Каждому производителю - свою целевую аудиторию. Видимо маркетологи того времени любили эти жевачки, впрочем - может и нет, просто не вошёл тогда маркетинг в эту индустрию в полной мере.
Zara6502
25.08.2025 15:19в своё время приходилось кнопкой пользоваться чтобы замедлять некоторый софт и игры, которые неправильно работали, видимо была зависимость от частоты.
и так же когда свой P75 разогнал до 100 был удивлён что на панели светилось 75, полез изучать глюк и увидел тонну джамперов которыми сегменты и выставлялись, сделал просто слово HI, которое уже видел на других машинах (100 сделать не получилось бы, у меня было только под 2 цифры, а 99 как-то мне не нравится).
valera_efremov
25.08.2025 15:19На 775 сокете на какой то плате переключал перемычкой частоту озу на 1333мгц. Еще на ноутбуке с Intel Celeron M поднимал частоту процессора перемычкой ) И на материнке AMD AM2 видел кнопку Turbo ))
horray
25.08.2025 15:19Был у меня очень хороший P100, который гнался 100х2, и в этом режиме отлично работал везде кроме одной игрульки.
После некоторого размышления в заглушку на панели были вкручены три тумблера с проводами до джамперов переключения частоты, и стало можно переключать частоты не лазя в потроха.На 180, емнимс, 60х3 игрулька работала отлично.
rabitagorgor
25.08.2025 15:19Ну то есть всё началось с криворуких программистов, которые изначально писали софт как попало, не задумываясь о неизбежном прогрессе в быстродействии компьютеров.
DMGarikk
25.08.2025 15:19которые изначально писали софт как попало, не задумываясь о неизбежном прогрессе в быстродействии компьютеров.
как они должны были догадаться что в течении ближайших 10-15 лет скорость роста производительности компьютеров станет такой адской?
до этого софт писался под определенный комп и строго на нем работал, а с легкой руки MS и IBM с интелом закрытые вендорские решения софт+железо превратились в адский зоопарк под который еще никто не умел софт на тот момент
mayorovp
25.08.2025 15:19Вы так пишете, как будто это так просто - взять и быть пряморуким. Между тем, системный вызов sleep на настольных ОС появился куда позже кнопки "Turbo".
sic
25.08.2025 15:19Вот если появится персистентная память на скоростях +- последних DDR, ну допустим лет через 5, то снова окажется, что весь софт будто бы криворукими программистами написан.
CrashLogger
25.08.2025 15:19Сейчас никто не делает задержки в коде циклами. Для этого есть системный таймер, прерывания, планировщики задач. Поэтому любой современный софт не сломается, если его запустить на компьютере в 10 раз быстрее, только отзывчивость ui повысится.
vadimr
25.08.2025 15:19Современный софт может сломаться по другой технической причине: параллельные процессы завершатся в непредусмотренном порядке. Например, уже данные на обработку поступают, а ещё инициализация не закончилась.
CrashLogger
25.08.2025 15:19Для этого есть примитивы синхронизации. Иначе это race condition и баги будут независимо от скорости процессора.
vadimr
25.08.2025 15:19Если вы хотите объяснить, что хорошо писать хорошие программы и плохо писать плохие, то я против такого утверждения не возражаю. Тем не менее, обозначенная выше коллегой @sicпроблема реальна. Современные программы будут точно так же падать при разгоне компьютера, как старые. Ещё и больше, так как качество программирования упало.
edo1h
25.08.2025 15:19Сейчас никто не делает задержки в коде циклами
https://elixir.bootlin.com/linux/v6.16.3/source/arch/x86/lib/delay.c#L40
vadimr
25.08.2025 15:19Даже если бы они задумывались, у них не было знания о том, какие параметры в будущем изменятся, а какие нет.
В отличие от S/360, PC не создавался изначально как масштабируемая архитектура, и никто не прописывал, что произойдёт с теми или иными таймерами в следующих моделях.
CrazyElf
25.08.2025 15:19Вот оно что. Я помнится тогда ещё не мог понять, почему кнопка называется Turbo, но при этом в нажатом состоянии она частоту уменьшает. И на тот момент, когда я сидел за этими компами, необходимости переключать эту кнопку давно уже не было. Ну, разве что и правда для некоторых игр, да и то не факт. Помню уже смутно. Кажется, я в такие игры просто не играл, где это было бы нужно. Да и не спортивно как-то было переключать. ))
BiTL
25.08.2025 15:19Нет, в нажатом состоянии она не уменьшает ничего, а как раз в отжатом - замедляет. Если, конечно, правильно подключена.
Rohan66
25.08.2025 15:19Была вариация Тетриса - ПорноТетрис ))) (Постепенно открывались картинки). первые уровни проходились запросто, а потом скорость увеличивалась и всё...
Тогда взяли утилиту Нортона для измерения производительности компа ("в попугаях") и протестировали штук 30 386-х компов (приходили одной партией).
И вот что выяснилось - при средней производительности в районе 40-45 "попугаев" нажатия "волшебной" кнопки Turbo понижало количество "попугаев" в среднем до 10-15. Но нашлась одна машина, где скорость падала до 3-х.
Тетрис таки был пройден! )))) В нужный момент кнопка нажималась и фигурки начинали падать медленно и печально....
P.S. Могу сказать - тетрис был пройден полностью! Аж 2 раза. )))
CrashLogger
25.08.2025 15:19О, флэшбеки из детства. Я отреверсил формат ресурсов в этом тетрисе, написал декодер на турбо паскале и вытащил все картинки)
Shaman_RSHU
25.08.2025 15:19Поэтому перестали жестко привязывать логику работы программ к количеству тактов CPU, а новый софт стал учитывать тактовую частоту процессора.
Просто сейчас уже так не пишут - сейчас тенденция в ПО для рабочих станций стремится к перекладыванию json и обертыванию всего этого в контейнеры. И никто уже не учитывает тактовую частоту процессора, просто с каждой версией ПО необходимо всё больше ресурсов, даже если не столь много фичей туда добавили.
BiTL
25.08.2025 15:19просто и раньше нормальные программисты события в игре привязывали к таймеру, и этим играм было по-барабану, турбо/нетурбо.
P.S.: Сейчас такты процессора считать - странно, особенно учитывая, что основная нагрузка на GPU ложится.mayorovp
25.08.2025 15:19Интересно, а к какому таймеру их можно привязать? К тому, который в секундах время считает? А если нужна большая точность?
rogoz
25.08.2025 15:19Откалибровать процессорные задержки можно по секундному таймеру. Только есть ли он? Сумрачно вспоминается, что RTC появились не раньше AT 286.
Правда вроде ещё какой-то таймер есть на 18,2 срабатывания в секунду...
force
25.08.2025 15:19А потом программы на Паскале неожиданно начинали падать... (считалось количество процессорных тиков за 18.2мс и благодаря этому можно было делать любые задержки, правда когда за 18.2мс процессоры стали обрабатывать больше чем 65536 операций, получалось деление на 0)
MaFrance351
25.08.2025 15:19Runtime Error 200, ага. Была специальная утилита, позволявшая пропатчить экзешник, чтобы программа из-за этого не вылетала.
BiTL
25.08.2025 15:19таймер Intel 8253/8254, что стоял в IBM PC-совместимых по дефолту тикает со скоростью 18.2 раза в секунду. Но можно перепрограммировать хоть в 1/1000. Хотя для игровой анимации обычно хватает скорости равной частоте развертки.
PerroSalchicha
25.08.2025 15:19Программисты к системному таймеру привязывались редко и в основном по укурке. Во-первых, по дефолту у него слишком низкое разрешение. Во-вторых, он совсем вообще системный был, и перепрограммировать его было чревато. Нулевой канал отвечал за системные часы, первый за регенерацию памяти, второй за звук. Чтобы пользоваться хотя бы нулевым с каким-то иным разрешением, нежели 18.2мс, нужно было, чтобы ваша софтинка сама контролировала системное время.
Поэтому в играх таймер не использовался, обычно там было примерно как в турбо-паскале, сначала замерялась общая производительность процессора/памяти, потом на основании этого выставлялись временнЫе коэффициенты для внутреннего игрового цикла, который непрерывно вертелся, вычитывая порты клавиатуры и отрисовывая игровую ситуацию.
BiTL
25.08.2025 15:19Чтобы пользоваться хотя бы нулевым с каким-то иным разрешением, нежели 18.2мс, нужно было, чтобы ваша софтинка сама контролировала системное время.
Не вижу проблемы. Системное время не надо контролировать, просто вешаем свой обработчик на вектор 8 (сохранив старый) и из своего обработкичка вызываем старый через нужные промежутки тиков.
Вкратце:
Скрытый текст
#include <dos.h> #include "timer.h" static void interrupt (*old_timer)(); void interrupt timer() // ticks once per millisecond { static unsigned count_55ms = 0; // our code // execute default handler if (++count_55ms == 55) { old_timer(); count_55ms = 0; } else outp (0x20, 0x20); }; void main() { // timer init new_divisor (1193); // 1 tick per 1ms old_timer = _dos_getvect (8); // save vector _dos_setvect (8, timer); // set new vector // our program new_divisor (0); // restore timer _dos_setvect (8, old_timer); };
Если бы я сам не программировал таймер, я бы не спорил. А вы спорите со мной по вещам, которые я делал буквально вчера (чекайте мои статьи).И как вы думаете в DOS работают музыкальные плееры Adlib (OPL2), в том числе в играх, у которого в отличии от Sound Blaster нет своего прерывания? Ессесно на таймер вешается.
Пытаться измерить производительность и на этой основе выставлять временные коэфициенты - это полная хрень. Нам ведь нужно прерывание, а не просто delay(). А просто "делэй" можно сделать ожиданием обратного хода луча развертки, поскольку частота развертки у конкретных видеорежимов была одинаковая на всех компьютерах. Но это полумера.mayorovp
25.08.2025 15:19Пытаться измерить производительность и на этой основе выставлять временные коэфициенты - это полная хрень. Нам ведь нужно прерывание, а не просто delay().
Это вы куда-то не туда зашли, в типичном игровом цикле нужен именно delay.
А просто "делэй" можно сделать ожиданием обратного хода луча развертки
Интересное решение, но документацию тут вообще не найти.
BiTL
25.08.2025 15:19в типичном игровом цикле нужен именно delay.
Ну допустим вы откалибровали delay и он задает более менее одинаковую паузу на железе с разной производительностью.
Но рендер кадра ведь в разной ситуации может происходить с разной скоростью. И конечно на разных компьютерах кадр будет рендерится за разной время. В итоге и получается, что на 286-м игра работает с задуманной авторами скоростью, а уже на 386-м начинает летать в 2 раза быстрее. А на XT-шке наоборот будет все трагически медленно.
Вы же понимаете для чего нам таймер и как с его помощью сделать скорость движения объектов одинаковой на компьютерах с совершенно разной производительностью?Интересное решение, но документацию тут вообще не найти.
Да совершенно традиционная штука. Какая документация вам нужна? Вот традиционный код ожидания начала обратного хода вертикальной развертки:
mov dx, 3DAh @w1: in al, dx test al, 8h jnz @w1 @w2: in al, dx test al, 8h jz @w2
mayorovp
25.08.2025 15:19Но рендер кадра ведь в разной ситуации может происходить с разной скоростью.
Стандартным решением в геймдеве являются замеры времени, потраченного на логику и рендер, с последующим delay на вычисленный остаток кадра.
BiTL
25.08.2025 15:19Это сработает если рендер работает со скоростью вертикальной развертки или быстрее. Что будет когда рендер делает только 30 фпс? Делэй очевидно в этом случае не происходит, и не нужен. Но у вас все будет двигаться в два раза медленее.
Что касается старого железа и старых игр под DOS. Вы играли когда-нибудь в Jazz Jackrabbit, или в Zool? Ну или в подобные платформеры с плавной прокруткой экрана?
Так используется аппаратный скроллинг. Чтобы он работал, нужно 60 раз в секунду (или 70, зависит от видео-режима) дергать порты видеокарты. При этом спрайты в игре могут и не обновлятся/двигаться с такой же частотой. Реализуется это через прерывание, которое срабатывает 60 раз в секунду, выполняя вашу определенную процедуру. При этом рендер цикл может и не успевать обновляться, скроллинг экрана будет всеравно гладким.mayorovp
25.08.2025 15:19Что будет когда рендер делает только 30 фпс?
Если железо не тянет - тут ничего не исправить.
Точнее, варианты тут тоже есть (ограничение fps, обновления с переменным шагом времени), но с ними даже сейчас не все работать умеют.
Реализуется это через прерывание, которое срабатывает 60 раз в секунду
Можно и без прерывания, главное чтобы сам таймер был.
BiTL
25.08.2025 15:19Если железо не тянет - тут ничего не исправить.
Ну как... Если железо тянет 30 фпс, то игра все еще вполне гладко выглядит. Просто надо шаг анимации (движения камеры, и т.д.) умножить на количество пропущенных кадров, или прокрутить логику анимации/физики n-раз (в самом упрощенном случае. Есть, конечно, более продвинутые формулы). То есть компенсировать число пропущенных кадров.
Так делается в любых играх. Кто с этим неумеет работать? Не представляю.Можно и без прерывания, главное чтобы сам таймер был.
Без прерывания как? Аппаратный скроллинг экрана нужно инициировать только в момент обратного хода луча. Иначе будут дёргания экрана. При этом компьютер может и не успевать выполнить рендер-цикл за 1/60 секунды.
Также, если у нас (в DOS-игре) есть звук, музыка - как это должно работать без прерываний? Как в некоторых поделках , где все замирает в момент, когда из PC Speaker'a раздаются звуки? :)
mayorovp
25.08.2025 15:19Так делается в любых играх. Кто с этим неумеет работать? Не представляю.
Любой у кого игра работает по-разному в зависимости от fps. То есть почти каждый первый.
Аппаратный скроллинг экрана нужно инициировать только в момент обратного хода луча. Иначе будут дёргания экрана.
Где-то я читал что видеокарта сама позаботится чтобы читать параметры окна вывода лишь в начале кадра. Что правдоподобно, потому что сам бы я сделал именно так. Но проверить не могу.
При этом компьютер может и не успевать выполнить рендер-цикл за 1/60 секунды.
Не страшно, скролл раз в 30 секунд тоже плавный.
Также, если у нас (в DOS-игре) есть звук, музыка - как это должно работать без прерываний?
Надо просто расставить по коду рендера проверки. Выглядит муторно, но ничего сложного и на самом деле так десяток лет делали при написании GUI чтобы избегать фризов - а значит, и для геймдева сойдёт.
BiTL
25.08.2025 15:19Но проверить не могу.
Ну а я могу :) И проверял.
Не страшно, скролл раз в 30 секунд тоже плавный.
На глаз сильно отличается. Скролл с 60 фпс намного приятнее :)
Надо просто расставить по коду рендера проверки.
Ясно... Вопросов больше нет )
mayorovp
25.08.2025 15:19Скролл с 60 фпс намного приятнее :)
Только не в том случае, когда неподвижная точка интерфейса (скажем, спрайт ГГ в скроллере) рисуется с 30 фпс. Потому что это означает, что его будет дёргать туда-сюда каждый кадр.
PerroSalchicha
25.08.2025 15:19Если бы я сам не программировал таймер, я бы не спорил. А вы спорите со мной по вещам, которые я делал буквально вчера (чекайте мои статьи).
Вы-то может быть делали и вчера, я же не про вас, а про то, как писали игры сорок лет назад :) Сейчас реконструкторы ретро-технологий зачастую делают по-своему, не так, как это было раньше, и в софте, и в железе.
Пытаться измерить производительность и на этой основе выставлять временные коэфициенты - это полная хрень. Нам ведь нужно прерывание, а не просто delay().
Ммм, а зачем нам нужно прерывание? Как раз наоборот, мы запрещаем прерывания в игре и крутим этот самый delay(). Откалибровать его - задача простейшая.
Но рендер кадра ведь в разной ситуации может происходить с разной скоростью. И конечно на разных компьютерах кадр будет рендерится за разной время.
Во времена ХТ, до появления игр хотя бы с псевдо-3D, это было не актуально. Скорость рендеринга кадра от игровой ситуации зависела в пределах погрешности, а разницу в производительности разных компьютеров вполне себе нивелировала эта самая Delay. То, про что вы пишете, это стало актуальным где-то во времена второго Дума.
BiTL
25.08.2025 15:19Ммм, а зачем нам нужно прерывание? Как раз наоборот, мы запрещаем прерывания
Берем прерывание таймера, вешаем туда обработчик типа timer=timer+1, и вот у вас счетчик милисекунд, и можете делать хоть делэй правильный, хоть считать скорость рендера кадров, чтобы правильно инкременировать переменную анимации. И это позволит вашей игре работать правильно и на быстрых компьютерах, и на медленных.
Если вы запретите прерывания (даже на время вашего delay) станет невозможно озвучить игру фоновой музыкой и управление станет плохо-отзывчатым.То, про что вы пишете, это стало актуальным где-то во времена второго Дума.
Во времена второго Дума уже Пентиумы и Виндовс вышли. Нет, все было актуально раньше :) Кармак написал Commander Keen в 1990-м, и там уже все было как надо. Хотя полно и более ранних игр, где все синхронизировано правильно и надежно :)PerroSalchicha
25.08.2025 15:19Если вы запретите прерывания (даже на время вашего delay) станет невозможно озвучить игру фоновой музыкой и управление станет плохо-отзывчатым.
А что с музыкой-то не так? Я могу прекрасно в том же цикле идти по массиву нот и закидывать их в OPL-ку по мере необходимости.
Плавное управление запретом прерываний не испортить (если у компьютера вообще хватает производительности на вашу игру), зато если их разрешить, плохо отзывчивой может стать графика.
BiTL
25.08.2025 15:19Это если ваш цикл работает с достаточной скоростью и эта скорость никак не меняется. Вообще так никто не делал. Это и неудобно и неправильно. Прерывания для того и существуют, чтобы распараллелить процессы, и звук и ввод с клавиатуры никак не зависели от текущей позиции выполнения кода в основном цикле. Вы там можете хоть все на паузу поставить, но это не повредит плееру и обработки клавиатуры (мыши, или джойстика).
Ну а тем более в старых играх... И на старых IBM PC. Там рендер-цикл ваще никогда 60 фпс не выдавал. Графика очень медленная была. Отрисовка очередного кадра могла быть и 10 фпс, и 5 фпс.
По вашей схеме можно делать игры аля "Поле чудес", или "Балда", или какой-нибудь пасьянс, "шарики", "Перестройка". Даже какой-нибудь квест, вроде первых версий Space Quest и Larry. Но что-то более аркадное и технологичное, вроде Dangerous Dave, Prince of Persia или Commander Keen так не создать. Уже не говоря о чем-то вроде Алладина, Zool, Червяка Джима, Golden Axe, Jazz JackRabbit, Prehistorik 2, Realms of Chaos и прочем.PerroSalchicha
25.08.2025 15:19По вашей схеме можно делать игры аля "Поле чудес", или "Балда", или какой-нибудь пасьянс, "шарики", "Перестройка". Даже какой-нибудь квест, вроде первых версий Space Quest и Larry. Но что-то более аркадное и технологичное, вроде Dangerous Dave, Prince of Persia или Commander Keen так не создать.
Вы ошибаетесь. В типичных аркадах 1980-х, а-ля Принц Персии, скорость отрисовки кадра абсолютно детерминирована и в принципе, одинакова. И, к слову, Принц Персии, насколько я знаю, как раз использует цикл, а не таймер :)
Отрисовка очередного кадра могла быть и 10 фпс, и 5 фпс.
Ну, да, естественно. Цифра 60 FPS, это что-то на миллениальском, это из другой эпохи. А теперь представьте себе, что в это время ещё прерывания работают, в том числе и во время переноса изображения из буфера отрисовки на экранную плоскость. И да, баг со сбросом команды, выполняемой с префиксом REP, когда приходит прерывание, пофиксили лишь в 286-м :)
vadimr
25.08.2025 15:19Принц Персии изначально был написан для Apple II, поэтому, конечно, никакого таймера там не могло быть.
BiTL
25.08.2025 15:19Это не значит что при портировании на другие платформы все также и осталось. В дизасемблированных сорцах ДОС-порта таймер используется.
BiTL
25.08.2025 15:19"лишь на 286" - ну до 286-го то что было на PC и играми сложно назвать. На 286-м что-то както шевелиться начало, но все еще по сравнению с приставками и Амигой - это все был шлак.
Хотя, сейчас есть энтузиасты, которые и для XT-шки делают прикольные движки https://www.youtube.com/watch?v=nsXIA7VIqXM (исходники доступны, можете ознакомится, посмотреть - зачем и как используются прервывания :) )
axe_chita
25.08.2025 15:19До 286-го игры на ХТ вполне себе были были, навскидку Elite, F19, F15, LHX, F29 Retaliator, Simcity, Civilization, Kings bounty, Star control I, Abrams, Die hard, Gobliiins, Gods, Operation Wolf, Crackdown. Вообще, если доверять MobyGames то на 8088/8086 может работать 2115 игр :)
BiTL
25.08.2025 15:19Я в курсе. Хотя например Gobliiins и Gods это порты с Амиги и вышли в 91-92 годах, требуют VGA-адаптер, и что-то очень сомнительно, что будут на XT-шке работать. Ну и уж точно там юзается и таймер и прерывания (в Gods апаратный скроллинг, в Gobliiins звуковое сопровождение очень продвинутое.
PS: погуглил, Gods требует минимум 286-го, Gobliiins минимум 386-й. Так ша не морочьте мне голову.
VBDUnit
25.08.2025 15:19Есть мультимеднйные таймеры работающие на уровне ядра ОС, можно получить точность порядка 1 мс
[DllImport("winmm.dll", SetLastError = true)] private static extern uint timeBeginPeriod(uint uPeriod); [DllImport("winmm.dll", SetLastError = true)] private static extern uint timeEndPeriod(uint uPeriod); [DllImport("winmm.dll", SetLastError = true)] private static extern uint timeGetTime(); [DllImport("winmm.dll")] private static extern int timeSetEvent( int msDelay, int msResolution, TimerEventHandler handler, IntPtr userCtx, int eventType); [DllImport("winmm.dll")] private static extern int timeKillEvent(int timerId);
drWhy
25.08.2025 15:19К примеру к каналу таймера, по которому идёт рефреш ОЗУ.
Были досовские программы, которые успевали изменять вывод на экран между выводом строк.
vadimr
25.08.2025 15:19Если б ещё тогда был такой таймер, гарантированно калиброванный относительно изменения тактовой частоты.
BiTL
25.08.2025 15:19так ведь был https://ru.wikipedia.org/wiki/Intel_8253
vadimr
25.08.2025 15:19Никто не обещал, что в гипотетическом будущем компьютере его скорость сохранится.
BiTL
25.08.2025 15:19Скорость таймера программируется. Программа может любое разрешение поставить, 1/100 секунды, или 1/1000.
И нормальные игры и программы использовали таймер, так что работают прекрасно даже на современных компьютерах.vadimr
25.08.2025 15:19Откуда программист самого первого IBM PC мог знать, что скорость будущего таймера будет программироваться в тех же самых единицах, что и скорость самой первой модели? Хотя это в итоге так оказалось, но заранее знать было нельзя.
На практике, программирование по таймеру имело жалкий вид при использовании первых мультизадачных систем. Помнится, одним из преимуществ OS/2 считалось то, что она более-менее нормально эмулирует таймер для программ DOS, в отличие от Windows 3 и DesqView.
BiTL
25.08.2025 15:19Почему "самого первого"? Игры, например, далеко не сразу на IBM PC появились. И уж в 80-х годах вполне себе были стандарты.
Как вы вообще представляете себе работу анимации в играх без использования таймера? Как создать музыкальное сопровождение?
Вы программировали мультимедиа под DOS?vadimr
25.08.2025 15:19Я даже на Apple II программировал, где никакого таймера не было в принципе. Заучивали наизусть таблицу времени выполнения команд процессора в тактах (1 такт 6502 приблизительно равен 1 микросекунде). И анимация так, и музыка, и даже чтение битов с диска.
BiTL
25.08.2025 15:19Ну вот с таким опытом программирования люди и писали на PC игрушки, незная ничего о таймере, которые в итоге на более быстрых процессорах начинали работать ненормально быстро :)
И одно дело написать игру аля Alley cat, а другое дело - действительно что-то сложное и которая будет нормально работать на разном железе. Поэтому старые игры Кармака работают хоть на 286-м, хоть на Пентиуме, не требуя замедления. Кармак знал как программировать таймер :)
Viacheslav01
25.08.2025 15:19Ну например если взять синклер то там таймером были прерывания видео контроллера, насколько знаю на разных nes тоже, и уже тогда начались проблемы при переходе из зоны pal в зону ntsc
RolexStrider
25.08.2025 15:19Всё так. Почти. В 99% игр привязка была именно к процессору. К прерываниям - как сейчас помню - была привязка в играх Robin of the Wood и Bomb Jack 1. И на клонах они из-за этого не работали. Не из-за частоты прерываний, а из-за того, что вектор прерывания (единственный доступный для изменения) перенаправлялся в область ПЗУ, которая в оригинале содержала 256 нулей. Там был очень хитрый прикол: вроде бы по прерыванию должен был быть сразу переход на нулевой адрес, то есть вроде как сразу же Reset. Но обработчик прерывания (который должен естественно не просто сделать переход, а вернуться откуда стартовал) воспринимал это как таблицу векторов, в которой все элементы указывают на нулевой адрес. Он прыгал туда (но сохраняя все регистры, иначе это был бы просто аналог Reset) а встречал там команду ОТНОСИТЕЛЬНОГО перехода на отрицательное значение. Там и лежал реальный обработчик. Такой вот хак, там он был довольно распространенный. А вот в клонах - эту область ПЗУ с нулями любили использовать, например для добавления кириллицы.
Viacheslav01
25.08.2025 15:19Тем не менее и на оригинале и на клонах видеоконтроллер в начале кадра генерировал прерывание и оно должно было обрабатываться корректно иначе бы там много чего развалилось бы )
Игры скорее меняли вектор на что то свое, что вело в какое то место ПЗУ которое им подходило и тогда да ПЗУ с нестандартным кодом все ломало. Но это скорее вопрос к играм.
Но в нормальном виде все работало так, получали прерывание о начале кадра и начинали производить расчеты игрового состояния и вывод данных на экран, потом ждали опять кадра. Ну естественно если в кадр влазили )
Поэтому и были проблемы с тем, что пал 50 герц, а нтсц 60. Т.к. игры из европы в штатах были быстрее ну и могли пропускать кадры, т.к. не успевали пройти цикл за сокращенный промежутов кремени между кадрами.
d_nine
25.08.2025 15:19Пишут, в embedded на МК зачастую приходится настраивать ручками все частоты для таймеров и шин. Если требуется замедлятся/разгонятся (для работы от батареи например с уходом в ограниченный функционал/сон), то соответственно пишется хендлер, который корректирует все нужные настройки.
NeuroZ
25.08.2025 15:19Turbo + F11
и компьютерный зал парализован))) перезагрузка не помогает ;-)MaFrance351
25.08.2025 15:19Там ещё скорость повтора символов другими F-ами настраивалась, как сейчас помню.
Viacheslav01
25.08.2025 15:19Первопричиной кнопки действительно была совместимость по тактам, но вот с выпуском следующих поколений процессоров, в этом смысле кнопка турбо была бесполезна еще с 286, т.к. заопарк частот был таким, что надо было бы вводить 100500 кнопок на корпус, ну или одну деградировавшую любой камень до 4.77 мгц.
Т.ч. кнопка в общем то была чисто маркетинговым ходов все поколения PC начиная с AT. Разработчики софта тут непричем.
RolexStrider
25.08.2025 15:19Разработчики софта - нет. А вот библиотек и компиляторов, где задержки считались по времени выполнения пустых циклов (как в Turbo Pascal о котором выше писали) - очень даже. И разработчики софта охреневали: "Должно работать быстрее же, а оно теперь ВООБЩЕ не работает!"
Viacheslav01
25.08.2025 15:19Да кто бы небыли, когда у тебя 100500 вариантов процессоров и частот, никакая кнопка турбо не починит расчет задержки в пустом цикле. Писал только об этом, что начиная с АТ кнопка турбо уже не играла роли режима совместимости с 4.77, а была чисто маркетингом.
x-master
25.08.2025 15:19Да, автор явно погорячился с годами. Уже в 90-м году с массовыми ХТ 10-кой и 286-ми 12, практического смысла в кнопке не было. Не говоря уж о 386 и 486, на которые на тех же компаках, паккардах, асерах ее не ставили уже в середине 90-х. Имея ХТ 10-ку с 1992-го, я сталкивался с вопросом только пару раз, с очень древними играми, играть в которые было все равно уже не интересно просто по древней графике.
ED-209
25.08.2025 15:19Это как с обычным флюгером на крыше домика. Вроде кажется, что стрелочка должна показывать направление (куда, в какую сторону ветер дует), а на самом деле - ровно наоборот, указывает откуда именно дует.
100h
25.08.2025 15:19Прочитал я этот многословный опус и вспомнил, как было дело на самом деле.
В оригинальном PC/XT в качестве источника клоков для процессора, контроллера ПДП и шины ISA использовалась микросхема i8284 "Clock Generator and Driver fpr 8086, 8088 Pocessors" - так сказать, одна из чипсета.
Кварц на 14.318 МГц подключался прямо к 8284. Внутри частота делилась на 3 и результат 4.77 МГц шел на процессор (CLK), в то время как исходные 14.318 МГц поступали на разъемы расширения ISA (пин OSC).
Фичей 8284 была возможность подачи внешней частоты, отличной от 14.318 МГц на специальный вход EFI. Для выбора источника (кварц - внешний сигнал) служил НЕсихронный управляющий вход F/C. Несинхронный - значит момент переключения частот не был привязан к фронтам обоих опорных частот; неудачный момент подачи F/C мог привести к очень короткому импульсу CLK, что неминуемо вело к сбою.
Таким образом, частоту процессора можно было менять "статически", т.е. с последующей перезагрузкой.
Но 8284 была сделана умными людьми. Кварц работал всегда, вне зависимости от состояния F/C и сигнал OSC всегда был равен 14.318МГц - шина расширения не зависела от частоты процессора.
Когда появились версии 8086/8088, способные работать на 6 или 8 Мгц, то этой "фичей" воспользовались.
8284 была переведена в режим работы со внешним источником опорной частоты, а на вход EFI подавалась либо собственная частота с выхода OSC, либо повышенная от внешего генератора, напр. 24 МГц.
И переключение на это раз было сделано синхронным - ни положительный, ни отрицательный полупериод опорной частоты не мог быть короче полупериода максимальной из входных частот. Это позволило абсолютно прозрачно, на лету, менять частоту процессора. Несколько корпусов мелкой логики решали проблему.
Изначально вход переключения был выведен на внешний разъем материнской платы и кнопка на переднй панели управляла вышеописанным синхронным перекючателем. Чуть позже один из свободных битов порта 61h был также подключен к этой точке, что позволило менять частоту с клавиатуры.
Почему я это вспомнил - когда-то у меня была материнская плата оригинальной IBM PC/AT с процом 80286 на 6 Мгц. Когда появился более скоростной аналог от AMD (12 МГц), я захотел
"турбировать" (ну и слово!) свою AT-шку и спаял похожую схему, взяв за основу идею синхронного переключателя. Все прекрасно работало.
Порывшись в сети, я нашел схему клона PС/XT c "турбированием".
https://retrobrewcomputers.org/n8vem-pbwiki-archive/0/35845334/38282303/58469112/8088-MB - Schematic - 0.3.pdf
Турбо-переключатель в верхнем левом углу. Надо сказать, что турбо включается логической единицей, так что только от контактов кнопки зависело, в нажатом или отжатом состоянии эта единица появлялась. Без кнопки был лог. ноль и турбо было выключено.
Позже, когда появились микросхемы, заменившие собой всю эту мелкую рассыпуху, логика переключения ушла в них, но база осталась - без явного сигнала "турбо" было выключено. Это сделано специально, т.к. в обратном случае по умолчанию терялась совместимость с кучей программ для бизнеса, а это был неприемлемо с т.з. user experience. Рандомный офисный сотрудник должен иметь возможность использовать свой ПэКа не зная ничего о всяких там фичах. Помните, что в те годы ПК был сродни инопланетной технике на рабочем столе.keatis
25.08.2025 15:19О, спс за подробности! Мне, как бывшему владельцу компа той эпохи, коммент был интереснее статьи.
Viacheslav01
25.08.2025 15:19Почему я это вспомнил - когда-то у меня была материнская плата оригинальной IBM PC/AT с процом 80286 на 6 Мгц. Когда появился более скоростной аналог от AMD (12 МГц)
Просто челюсть в пол.
iago
25.08.2025 15:19вот это коммент! И емко и политкорректно выразил мнение об оригинальной статье, и подробностями и знанием матчасти наглухо уделал
dkuzminov
25.08.2025 15:19Да ладно кнопка Turbo... А вот та самая кнопка над клавишей "влево", которая к чертям собачьим выключала питание... Ее-то кто придумал? Мы должны знать героев в лицо.
sovbez
25.08.2025 15:19эту кнопку я через неделю уже выдернул плоскогубцами, хотя, говорят, можно было отключить программно
P1ngZer0
25.08.2025 15:19Помню эти индикаторы с 66 и 133, которые к реальной частоте не имели никакого отношения
sovbez
25.08.2025 15:19у меня кнопка переключала индикацию 120 на 40 и больше ни на что не влияла. Когда разобрал комп - понял почему: провода шли просто на индикатор на морде корпуса, а на материнке не было уже никаких пинов для подключения
LightTool
25.08.2025 15:19Ну, в допентиумную эпоху все примерно так и было. Но с приходом этих процессоров сохранившаяся кнопка Turbo наконец-то стала использоваться по созвучному ей назначению - для ускорения.
Суть была в разгоне. К ней привязывались две комбинации джамперов на плате, которые управляли частотами шины или множителем. В итоге оригинальный Pentium 75 можно было переключить на 90 МГц или, например, Pentium 100 на 133 МГц. Разумеется, после перезагрузки. Но суть в том, что на повышенных частотах процессоры тогда могли работать не стабильно, и когда надо было, чтобы система не висла по поводу и без повода, частоту снижали (возвращали на оригинальную).
Так что Turbo тоже какое-то время была именно Turbo.
orignal
А еще вместо частоты индикатор иногда показывал Lo и Hi, что стало предметом анекдотов.
vesowoma
Видел еще IUH, читать вероятно нужно было в зеркале.
У меня на первом рабочем компьютере кнопка ТУРБО занималась полезным делом - была включена в цепь питания дополнительного корпусного вентилятора.
drWhy
Как-то использовал для сброса CMOS, чтбы корпус лишний раз не вскрывать.
VelocidadAbsurda
А у меня переключала две запараллеленные микросхемы BIOS, когда экспериментировал с модификацией прошивок. При «окирпичивании» можно было переключиться на резервную копию BIOS, загрузиться, переключиться на битую и прошить её. Сейчас такого уже полно заводского (всякие Dual BIOS у Asus итд), а тогда сам придумывал, спаял и хвастался.
secondworld
Dual BIOS у Gigabyte был
monah_tuk
У себя сделал коммутацию биппера)
drWhy
Если помечтать...
Были такие процессоры - Crusoe, первые морфинговые, т.е. теоретически их структуру можно было изменять, меняя микрокод.
Можно было бы завязать на кнопку турбо переключение архитектуры, например - Itanic - Cerebras.
mynameco
это случилось, когда уже были 133 и 166 вроде частоты, они тупо не помещались в старые корпуса, там было только два знака.
pda0
Нарисовать слева единичку, а дальше можно оставить как было. :)
drWhy
FF ?
pes_loxmaty
В дополнительном коде это будет -1. Отрицательная частота )))
MaFrance351
Точно помню, что были трёхзначные индикаторы. Причём как усечённые, где в первом разряде только единичка, так и полноценные.
Причём не сказать, что они прямо уж редкие. Точно помню, что вот такой же у меня самого где-то лежит.
vesowoma
Полноценные трехсимвольные были относительно недолго, я в 2000 году когда брал компьютер, выбирал между двумя корпусами. В одном циферки, как раз можно было выставить 333, 633 или даже 666, были, в другом не было, как и кнопки турбо. Вот его взял.
А так из десятка разобранных корпусов, где были "цифры" пара двухсимвольных, остальные 2 1/2, как любят указывать в спецификациях мультиметров и других цифропоказывающих девайсов
Speccys
Перемычками можно было что хочешь написать на них, даже слово из 3 букв.
pes_loxmaty
У меня был 2 пенек, на системнике гордо светилось 266.
Однажды я прочел мануал от материнки, переставил джампера и частота процессора стала 333 (ну в биосе так писалось, какая уж реальная была хз). Но на системнике всё еще светилось 266. И только в этот момент я узнал, что к панели просто подходил проводок питания, а на 7сегментных индикаторах джамперами можно было выставить любые палочки )))
aitras
Подробное раскрытие темы)
Как настроить индикатор частоты ЦП на корпусе?