Энтузиаст с ником LuciOfStars решил вручную набрать весь исходный текст интерпретатора Altair BASIC с открытой копии распечатки кода от Билла Гейтса.
«Здесь нет ни ИИ, ни OCR, просто идиот со слишком большим количеством свободного времени. Увидев, что размещённый исходник Altair BASIC был сканированной бумажной лентой, я подумал, что было бы неплохо иметь его в цифровом документе для сохранения и обновления. Я никогда не писал на ассемблере, и я не эксперт по типографике! Не стесняйтесь указывать и смеяться над любыми глупыми ошибками. Посмотрим, сколько дней это займёт!», — пояснил автор проекта, который решил не особо торопиться и набирать несколько десятков строк в сутки.
Пользователь Reddit ответил на такую инициативу LuciOfStars:Это не «бумажная лента» (это цифровой носитель информации), просто распечатка. И числа в левой половине на самом деле не являются частью исходного файла, это номера строк и вывод машинного кода, произведённый ассемблером. Вам, вероятно, лучше не тратить время на их расшифровку.
Я не пытаюсь вас отговорить, но вот несколько вещей, которые вам следует учесть:
• отключите проверку орфографии, это только усложнит задачу! Это, конечно, не поможет с самим кодом, и похоже, что вы хотите воспроизвести всё идеально, включая опечатки в комментариях;
• я настоятельно рекомендую вам хотя бы немного ознакомиться с языком ассемблера 8080, прежде чем пытаться это сделать;
• инструменты, используемые для создания этого вывода, добавляют ещё один уровень сложности. Они использовали ассемблер системы PDP10 с набором макросов, чтобы адаптировать его для генерации кода 8080, поэтому он использует несколько иной синтаксис и директивы, чем собственные ассемблеры 8080 (например, от Intel или Digital Research);
• некоторые символы трудно читать, и без знания контекста и хотя бы части специфичного для PDP10 синтаксиса будет невозможно просто угадать. Например: десятичные числа иногда имеют префикс «^D», а восьмеричные числа — «^O», что выглядит довольно похоже в этом скане. Директива «RADIX» изменяет значение по умолчанию, когда такого префикса нет, для большинства из них это должно быть 10, но я думаю, что оно начинается как восьмеричное. Адреса памяти будут восьмеричными (например, «RAMBOT==^O20000» в строке 13), символы ASCII могут быть любыми, но они, похоже, предпочитают десятичные для них («^D13» — это CR, «^D10» — это LF).
Существуют эмуляторы PDP-10 с хорошо поддерживаемыми копиями различных операционных систем для них, поэтому кто-то может проверить, что набранный исходник может быть собран.
«У меня есть некоторый (поверхностный) опыт работы с ассемблером GB/GBC, но в остальном я новичок. Что касается проверки орфографии, я придумал, как от неё избавиться. А путаница с бумажной лентой была просто моей неопытностью», — ответил LuciOfStars.
Пока энтузиаст не особо продвинулся с набором кода, но он особо не торопится.
Также автора перепечатывания кода предупредили, что Билл Гейтс не любит таких любителей, которые воруют его Altair BASIC и не дают ему денег. В некотором роде то, что делает LuciOfStars, может быть просто несправедливо по отношению к Гейтсу.
2 апреля 2025 года Билл Гейтс в честь 50-летия Microsoft в своём блоге Gates Notes представил исходный код Altair BASIC (более 7 тыс. строк с комментариями), который он написал в соавторстве с Полом Алленом.
Гейтс назвал этот проект «самым крутым кодом», который он когда‑либо писал, и символом скромного начала компании.
«До того, как появился Office, Windows 95, Xbox или AI, был Altair BASIC. В 1975 году Пол Аллен и я создали Microsoft, потому что мы верили в наше видение компьютера на каждом столе и в каждом доме. Пять десятилетий спустя Microsoft продолжает изобретать новые способы сделать жизнь проще и работать более продуктивно. 50-летие — это огромное достижение, и мы не смогли бы этого сделать без таких невероятных лидеров, как Стив Балмер и Сатья Наделла, а также многих людей, которые работали в Microsoft на протяжении многих лет. Кажется, будто вчера мы с Алленом сгорбились над PDP-10 в компьютерной лаборатории Гарварда, написав код, который станет первым продуктом нашей новой компании. Этот код остается самым крутым кодом, который я когда‑либо писал... Я все еще получаю удовольствие, видя его, даже все эти годы спустя», — написал Билл Гейтс на своем веб‑сайте Gates Notes.
Altair BASIC был выпущен для микрокомпьютеров MITS Altair 8800 и стал первым продуктом компании Microsoft. Интерпретатор занимает менее 4 КБ и может работать на системах с 4 КБ ОЗУ. У Билла Гейтса и Пола Аллена не было возможности купить компьютер Altair 8080, поэтому при разработке и тестировании они использовали самодельный эмулятор процессора Intel 8800, запускаемый на системе PDP-10, к которой у них был доступ. Код предложен для загрузки в виде PDF‑файла (100 МБ) со сканом бумажных распечаток ассемблерного кода.
Источник новости: habr.com