banner
Центр новостей
Безупречная экспертиза в этой области.

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

Jun 03, 2023

Мы не уверены, существует ли какая-то одна характеристика, которая квалифицирует человека как хакера. В конце концов, мы довольно эклектичная группа, с навыками, которые варьируются по всей карте, и то, что один человек считает тривиальным, другие сочтут черной магией. Но в одном мы уверены: если вы читаете исходный код POST для материнской платы PC-XT только для того, чтобы заставить клавиатуру работать, вы в значительной степени принадлежите к нашему типу людей.

Именно в такой позиции оказался [Андерс Нильсен] по мере продвижения своего проекта «PC-XT с нуля», целью которого является создание работающей винтажной IBM Model 5160 середины 80-х годов с использованием как можно большего количества деталей, соответствующих тому или иному периоду. В первой части серии был описан деликатный процесс поднятия материнской платы, чтобы не выходил волшебный дым. Увидев немного жизни в старой плате, [Андерсу] понадобилось немного ввода-вывода, в частности видео и клавиатуры. Видеочасть уравнения была относительно тривиальной: VGA-карта начала 90-х годов от eBay — не совсем правильная по времени, но достаточно хорошая, чтобы было что отображать.

Клавиатура — это совсем другое дело. Найти клавиатуру, которая могла бы взаимодействовать с PC-AT, не так уж и сложно, но у PC-XT был совершенно другой протокол, не говоря уже о массивном 5-контактном разъеме DIN. Как и во многих других случаях, решение заключалось в создании адаптера из Arduino, но этот процесс не был простым. Во-первых, встал вопрос о работе с выходами с открытым коллектором на клавиатуре, что потребовало изменения кода. Затем [Андерс] взял осциллограф, чтобы проверить форму сигнала, и обнаружил странную прямоугольную волну частотой 9 Гц поверх тактового сигнала клавиатуры. В конечном итоге это стало признаком того, что клавиатура застряла в режиме производственного тестирования, согласно чтению исходного кода самотестирования при включении питания (POST). Небольшая настройка кода Arduino заставила все работать.

Мы должны сказать, что нам нравится это глубокое погружение во внутреннюю часть компьютерной истории. [Андерс] рассказал о следующем шаге, который будет использовать пустой разъем ПЗУ на старой сетевой карте для загрузки ассемблерного кода в XT. Мы очень ждем этого подвига.