Microsoft открыла код BASIC 6502, запустившего Commodore и Apple II

Microsoft открыла код BASIC 6502, запустившего Commodore и Apple II

Microsoft открыла код BASIC 6502, запустившего Commodore и Apple II

Microsoft выложила на GitHub полный исходный код Microsoft BASIC для процессора 6502 — версии 1.1 от 1978 года, на которой работали такие легендарные машины, как Commodore PET, VIC-20, Commodore 64 и Apple II. Теперь 6 955 строк ассемблерного кода доступны под лицензией MIT — каждый может изучать, использовать и даже изменять софт, с которого фактически начиналась революция персональных компьютеров.

Написанный Биллом Гейтсом и Риком Вейландом интерпретатор BASIC стал для миллионов людей в конце 70-х и начале 80-х первой возможностью «поговорить» с компьютером напрямую.

Простейшие команды вроде 10 PRINT "HELLO" и 20 GOTO 10 превращались в бесконечный поток текста на экране — и в первый опыт программирования для целого поколения.

Особенность кода в том, что он умещался в смешные по нынешним меркам объёмы памяти, когда каждый килобайт стоил сотни долларов. Процессор MOS 6502 обходился всего в $25, а его конкуренты — в восемь раз дороже. Поэтому именно этот чип стал сердцем домашних компьютеров и игровых приставок, от Atari 2600 до NES.

Интересная деталь из истории: Commodore в 1977 году заплатила Microsoft всего $25 000 за бессрочную лицензию на использование BASIC — без отчислений за каждую проданную машину. Учитывая миллионы Commodore PET и C64, выпущенные позже, в Redmond наверняка вспоминают этот контракт с лёгкой грустью.

В опубликованной версии 1.1 уже есть исправления и оптимизации, сделанные в 1978-м совместно инженером Commodore Джоном Фигансом и самим Гейтсом. Код поддерживал условную компиляцию — по сути, из одной кодовой базы собирались варианты и для Apple II (Applesoft BASIC), и для KIM-1, и для других систем.

Зачем это всё сегодня? Для энтузиастов ретрокомпьютеров — это шанс прикоснуться к «чистому» историческому артефакту, увидеть, как программисты выжимали максимум из железа с минимальными ресурсами. Эти приёмы до сих пор актуальны, когда речь идёт об оптимизации — будь то смарт-часы или спутники.

Microsoft в последние годы регулярно открывает старый код: раньше компания публиковала исходники GW-BASIC, MS-DOS 4.0 и даже самого первого Altair BASIC. Для корпорации, которая когда-то называла Linux «раковой опухолью» и «коммунизмом», это настоящая метаморфоза. А теперь — ещё и красивый жест: в Git-репозитории у исходников BASIC стоят фиктивные временные метки коммитов от июля 1978 года.

Telegram Desktop удалил почти 800 ГБ данных из-за проверки орфографии

Пользователь Хабра под ником virtual-anvil обнаружил опасную ошибку в Telegram Desktop для Windows: мессенджер рекурсивно очищал папку C:\custom, где хранились программы, проекты и другие данные общим объёмом около 800 ГБ.

Сначала перестали запускаться приложения — их EXE-файлы просто исчезли. Папки оставались, а содержимое постепенно растворялось.

Проверка через Process Monitor показала, что Telegram самостоятельно открывал C:\custom, обходил вложенные каталоги и запрашивал права на удаление файлов.

Причиной оказалась не вредонос и даже не апдейтер, решивший выйти из-под контроля, а библиотека проверки орфографии lib_spellcheck. Telegram хранит добавленные пользователем слова в файле custom. После изменений в версии 7.1.0 Windows-код начал обращаться к этому словарю, но путь к рабочей папке оставался пустым.

К пустой строке добавлялось /custom, а Qt превращал её в C:\custom. Код ожидал увидеть служебный файл, находил вместо него каталог и запускал removeRecursively(), методично удаляя всё доступное.

Ошибка затронула Telegram Desktop 7.1.0 и 7.1.1 для Windows со встроенной проверкой орфографии. Версии находились в распространении около 66 часов. На Linux и macOS такую цепочку не обнаружили.

Пользователь передал разработчикам логи и открыл тикет № 31170. Ошибку подтвердили и исправили: путь теперь задаётся до выхода из функции, а библиотеке запретили работать со словарём при пустом адресе. Патч вошёл в Telegram Desktop 7.1.2.

Владельцам версий 7.1.0 и 7.1.1 на Windows стоит немедленно обновиться.

RSS: Новости на портале Anti-Malware.ru