# Downgrade #24

uav1606

Журнал "Downgrade" #24

### От редактора.


Приветствую, уважаемые читатели.

Перед вами 24-й номер журнала. Определённой темы у него нет, поэтому тут самые разнообразные статьи, более или менее равномерно распределённые по рубрикам.

Как ни странно, в этот раз статьи набрались достаточно быстро (обычно лето – «мёртвый сезон»). Надеюсь, что и следующий номер удастся выпустить до Нового года.

В этом выпуске у нас целых три новых автора – Eddison, MMichael (пополнение с «Полигона Призраков») и Евгений Злобин.

Надеюсь на их поддержку и в будущих номерах.

Уважаемые читатели, если у вас есть статьи, какие-то замечания, предложения, или вы бы хотели опубликовать своё письмо в рубрике «Письма читателей» – пишите мне на e-mail uav16060 [some strange sign] mail.ru


uav1606


### Новости, события, комментарии


20 лет Google

4 сентября 1998 года Сергеем Брином и Ларри Пейджем была основана компания Google.

Начиная с простого поисковика (одного из многих), компания стала теперь многомиллиардной корпорацией, которая разработала браузер Chrome, владеет ОС Android и такими сервисами, как YouTube, Gmail, Hangouts, выпускает смартфоны и «умные» часы, занимается исследованиями в области искусственного интеллекта и многим другим.

Посмотреть, как выглядела главная страница Google 20 лет назад можно по этой ссылке:

http://web.archive.org/web/19981111183552/http://google.stanford.edu:80


30 лет с выхода MS-DOS 4.0

Летом 1988 года Microsoft выпустила новую версию своей ОС – MS-DOS 4.0. Четвёртая версия включала довольно много нововведений: файловый менеджер DOS Shell, новые команды – mem (информация о памяти), tree (показ дерева каталогов), fc (сравнение файлов) и другие, также появилась возможность размещать дисковые буферы и служебную информацию fastopen в EMS-памяти, команда SELECT (инсталляция DOS) получила усовершенствованный интерфейс и функциональность.

Была улучшена поддержка видеоадаптеров EGA и VGA, добавлены дополнительные ключи к некоторым командам и т.д.


EmuParadise и The Iso Zone прекратили распространение ROM’ов под угрозой судебных исков

Этим летом сразу несколько крупных распространителей ROM-файлов вынуждены были закрыться из-за угроз судебных разбирательств с Nintendo.

Поводом для этого послужил июльский судебный иск против администрации сайтов LoveROMS.com и LoveRETRO.co. В жалобе представители Nintendo подчеркнули, что указанные ресурсы являлись коммерческими проектами, чьи владельцы сознательно обогащались на чужой интеллектуальной собственности.

Не став дожидаться повестки в суд, 8 августа администрация сайта EmuParadise.me изъяла из публичного доступа всю библиотеку ROM-файлов для всех консолей. EmuParadise являлся одним из крупнейших веб-архивов ретроигр и просуществовал в таком виде 18 лет.

Следом примеру коллег последовал основатель другого известного источника abandonware-игр — The Iso Zone (www.theisozone.com). Ресурс специализировался на ISO-образах старых PC-игр, но содержал и богатую библиотеку ROM-файлов для консолей. Сейчас работа сайта прекращена.

Активность юристов Nintendo связывают с успешными продажами NES Classic Edition и SNES Classic Edition (реплик NES и SNES соответственно), а также запуском сервиса Switch Online.


Doom 2 с улучшенной графикой

Bifurcator & Black Edition Team выпустили модификацию Doom Slayer Chronicles, предназначенную для работы с движком GZDoom. Мод имеет существенно переработанную, по сравнению с оригиналом, графику – текстуры высокого разрешения, динамическое освещение и многое другое.

Официальная страница проекта (там можно скачать мод и посмотреть скриншоты):

https://moddb.com/mods/doom-slayer-chronicles


10 лет сайту Old-DOS.ru

Именно в июне 2008 года открылся Old-dos.ru – крупнейший в Рунете архив старых программ, на момент написания заметки – 15428 файлов! Причём, что не менее важно, программы строго классифицированы, имеют описания и скриншоты. Не говоря уже о дополнительных сервисах сайта – фотогалерея, библиотека, форум и т.д.

Долгих лет и процветания проекту!


В Duck Hunt можно управлять уткой

Для многих ретрогеймеров стало сюрпризом опубликованное Сетом Рогеном в Twitter сообщение о том, что в известной приставочной игре Duck Hunt, оказывается, можно управлять уткой. (Эта игра вышла в 1984 году для приставок NES, суть её в стрельбе из «светового пистолета» по взлетающим уткам.)

Роген случайно обнаружил, что со второго геймпада можно менять направление полёта утки.

Многие читатели ему не поверили, так что он даже привёл отрывок из отсканированного мануала на игру, где об этом говорится.

Ссылка на оригинал новости:

https://twitter.com/Sethrogen/status/1041748707874467840


И снова рекордные цены на первые компьютеры Apple

Один из них был продан на аукционе Charitybuzz за 210 тысяч долларов (цена при этом во время торгов выросла в три раза).

Другой Apple I ушёл за $375 тысяч с аукциона RR Auction.

Как отмечается, всего было выпущено около 200 таких компьютеров, но известно только 16 из них (в том числе и этот), которые до сих пор в рабочем состоянии.

Абсолютный рекорд же принадлежит Apple I, проданному в 2014 году за 905 тысяч долларов.


Shadow Warrior бесплатно

Сервис GoG.com выложил в бесплатный доступ Shadow Warrior – популярный в конце 90-х 3D-шутер от 3D Realms. Скачать его можно абсолютно бесплатно:

https://gog.com/game/shadow_warrior_complete

Комплект состоит из DOSBox, Shadow Warrior и двух дополнений – Wanton Destruction и Twin Dragon. Также в набор входит руководство пользователя и саундтрек.


Двадцатилетие Windows 98

25 июня 1998 года увидела свет Windows 98. Новая версия ОС включала предустановленный Active Desktop, поддержку «Каналов», панель быстрого запуска, анимацию меню и другие усовершенствования интерфейса. (Впрочем, в Windows 95 тоже можно было почти всё это получить, но требовалась установка обновления IE.) Также система получила улучшенную поддержку AGP, USB и различных режимов энергосбережения (ACPI 1.0 – режимы Standby и Hibernate). Новая версия Windows поддерживала технологию Windows Driver Model (WDM), появилась возможность получать обновления с узла Windows Update, также было добавлено множество других улучшений и усовершенствований.


Chaos Constructions 2018

25 и 26 августа в Санкт-Петербурге прошёл фестиваль Chaos Constructions 2018. Как всегда, не обошли стороной и ретрокомпьютерную тематику, включая выставку разных околокомпьютерных редкостей, как-то: Panasonic WJ-MX, БК-0010-01, «Вектор-06Ц», NEC PC Engine, ZX Next, Macintosh Classic, «Электроника Б3-01» и многое другое.

Кроме демосцены, ASCII/ANSI-графики и компьютерной музыки на этот раз были представлены также соревнования по старым компьютерным играм, включая турниры по Ultimate Mortal Kombat 3 на Sega Megadrive, River Raid на Atari, а ещё Warcraft 2 и Doom.

Официальная страница фестиваля:

https://chaosconstructions.ru/


Умер бывший директор «Ангстрема»

24 июня 2018 года на 88 году жизни скончался Эдуард Евгеньевич Иванов. С 1976 по 1981 годы он был директором «Ангстрема», с 1980 года — директором НПО «Научный центр», а в 1987-1991 годы занимал пост заместителя министра электронной промышленности СССР. Иванов был награжден двумя орденами Ленина, орденом Трудового Красного Знамени и другими медалями СССР, имел звание Героя Социалистического Труда.


Разработчик собрал $113 000 на создание DOS-игры

Речь о проекте Дэвида Мюррея (известного по YouTube-каналу The 8-bit Guy) под названием Planet X3 – продолжении игры Planet X2, выпущенной в прошлом году для Commodore 64. Изначально Дэвид планировал собрать на Kickstarter $30 000, но достаточно быстро сумма достигла солидных $113 640. Сейчас идёт процесс разработки, а посмотреть информацию об игре можно на официальной странице проекта на Kickstarter:

https://www.kickstarter.com/projects/1973096722/planet-x3-for-ms-dos

Planet X3 представляет собой стратегию реального времени на фантастическую тематику.

Ориентировочная дата выхода – май 2019 года.


Новые статьи на тему кризиса ИТ

Веб-разработчик из Канады Nick Heer опубликовал статью, где раскритиковал современные громоздкие и медлительные сайты (Bullshit Web) и веб-разработчиков, которые их создают. В качестве примера он привёл сайт CNN, на загрузку статьи с которого потребовалось 30 секунд при скорости интернета 50 Мбит/c.

При открытии одной страницы CNN было получено:

- около 100 скриптов общим размером в несколько мегабайт;

- 11 web-шрифтов размером 414 КБ;

- 4 набора CSS-стилей размером 315 КБ;

- 20 блоков iframe.

Также было выполнено 29 XML HTTP-запросов общим размером 500 КБ.

Оригинал статьи тут:

https://pxlnv.com/blog/bullshit-web/


Схожую по тематике статью под названием «Моё разочарование в софте» опубликовал Nikita Prokopov, но на этот раз затронута тема программирования вообще, а не только веб-разработки.

Автор обрушился с жёсткой критикой на разработчиков и на их раздувшиеся неповоротливые программы.

Оригинал здесь:

http://tonsky.me/blog/disenchantment/

Русский перевод можно прочитать тут:

https://m.habr.com/post/423889/


Doom 3 на Windows 98 и видеокарте Voodoo 2

Lazy Game Reviews удалось запустить игру Doom 3 под операционной системой Windows 98 с использованием видеокарты Voodoo 2 с 12 МБ видеопамяти. (При минимальных требованиях Windows 2000 и 64 МБ соответственно.)

Для того чтобы это стало возможно, игру пришлось существенно переработать, например, уменьшить размер текстур и снизить до минимума прочие настройки графики.

Здесь вы можете оценить графику адаптированной игры и посмотреть инструкции по её модификации:

https://www.youtube.com/watch?v=KQSIT18bOvg

Надо признать, что в некоторых моментах модифицированный вариант выглядит даже более жутко, чем оригинал. :-)


Windows 95 как приложение

Felix Rieseberg сделал Windows 95 доступной в виде обычного приложения для macOS, Windows и Linux. Т.е. вы просто качаете и устанавливаете программу и получаете виртуальную машину с полностью функциональной Windows 95.

Причём вы можете добавлять в систему свои программы – на скрине выше виден Windows Commander, скопированный и запущенный на этой виртуальной машине.

Скачать всё это можно здесь:

https://github.com/felixrieseberg/windows95/releases


Найден последний секрет в Doom

Спустя 24 года после выхода игры, игрок под ником Zero Master смог наконец-то добраться до последнего нераскрытого секрета на 15 уровне. О секрете было известно и до этого, но открыть его могли только с помощью читов.

Проблема была в том, что активационная «кнопка» находилась за телепортом, и при любой попытке до неё добраться игрок просто телепортировался в новую локацию. Zero Master применил хитрость, заманив демона в окрестности телепорта, чтобы тот толкнул игрока в нужное место, не вызывая телепортации.

Смотрите видео:

https://www.youtube.com/watch?v=irNoHfnLXRM

Джон Ромеро (один из создателей Doom) лично поздравил геймера.

Оригинал новости:

https://twitter.com/romero/status/1035609232501030912


Обзор подготовили:

Вячеслав Рытиков (eu6pc)

mr_r0ckers

uav1606


### Интервью с Евгением Пелегой


Вашему вниманию предлагается интервью с Евгением Пелегой, также известным как DrPass – программистом, разработчиком модулей для компьютеров «Поиск», а также активным участником downgrade-сообщества.


Расскажите, как Вы впервые познакомились с компьютерами?


Первое знакомство было, скорее, виртуальным, и не совсем про компьютеры – мне купили книжку про программируемые калькуляторы, в далёком 1987-м году. Но этого было уже достаточно, настолько интересным это оказалось. «Вживую» потрогать компьютер у меня получилось достаточно скоро, уже в 1988-м у моего школьного товарища дома появился «Спектрум». Это была чистая классика, «Ленинград», 48К, магнитофон «Весна», крохотный ч/б телевизор «Электроника 408». В школе через пару лет уже появился дисплейный класс, он был по тем временам крут, там стояли «Поиски-2», с дисководами, цветными мониторами, но нам к этому сокровищу приближаться было не положено, это было только для старших классов.


Как и почему Вы увлеклись программированием? На каком языке писали первые программы?


Нетрудно догадаться, первым языком был Бейсик, на том же «Спектруме» (целую «эпоху» программирования на калькуляторе «Электроника МК-61» я тут пропущу ☺). По счастливому совпадению, другому моему товарищу купили замечательную книжку по программированию, как раз на «Спектрумах». Оставалось только совместить эти две штуки – возможность взять почитать книжку у одного и возможность посидеть за компьютером у другого. Получалось нечасто, но получалось. ☺

Но уже тогда было понятно, что Бейсика, да и «Спектрума» целиком уже мало, хотелось чего-то более сложного и мощного. И вот тут как раз в мои цепкие лапы попал «Поиск 1.04» и вместе с ним Паскаль. И это уже было надолго.


DrPass в 1995 году


Расскажите о разработанных Вами программах. Я видел графический редактор Painterman для ПК «Поиск».


Есть ли ещё какие-то программы, разработанные в то время? Если что-то сохранилось, может быть, поделитесь с читателями?


Painterman – это скорее «проба пера» в юности. По сути, это моя первая программа, которая выглядела «как настоящая». Я на основе его кода потом разработал библиотеку визуальных компонент для Турбо-Паскаля, которая имитировала вид Windows 95. Кстати, неплохая получилась библиотека – окна, кнопки, текстовые поля, даже поддержка справочной системы с гиперссылками была. Она «гуляла» по моему институту, но, ввиду отсутствия интернетов в те годы, так и умерла в его стенах.

Что было реализовано:

- кнопки с текстом и с картинками;

- диалоговые окна;

- поля для ввода текста (Ctrl+C/Ctrl+V не поддерживался :-), только набор текста, Del с Backspace, и стрелки влево-вправо;

- хинты;

- TrackBar;

- ProgressBar;

- имитация гиперссылок в тексте;

- ну и всё это поддерживало мышь, можно было нажимать на кнопки, таскать ползунки, устанавливать курсор в текстовые поля.


А то, что писал уже потом, это C++ Builder, Delphi, это уже не так интересно.


Вы занимались программированием в течение длительного времени. Можете сказать, чем программирование «тогда» отличается от программирования «сейчас»? Есть разница в подходе, методах, какие-то особенности?


Подход к программированию сильно менялся за всю мою жизнь. Если брать 1980-е годы, когда я писал детские программы, в прямом и переносном смысле, то… программы у взрослых дяденек и тётенек тогда были примерно такими же. Опыта не было ни у кого, «правильных практик» при построении архитектуры, интерфейсов пользователя ещё не наработали, инструменты были простыми. Зрелость пришла в 1990-е. Мы стали использовать паттерны проектирования, появились различные стандарты обмена данными, на смену локальными приложениям пришли клиент-серверные и распределённые системы и появились средства быстрой разработки приложений, например, Visual Basic, Delphi. А, наверное, самое продуктивное время – это было начало 2000-х. К тому времени десктопные инструменты разработки уже были просто великолепны, в разработку ещё брали профессионалов, а не всех подряд, JavaScript всё ещё был языком для придания динамики веб-страницам, а веб-разработка не захватила всё и вся.

Сейчас мы вернулись в прошлое. Если четверть века тому назад вы могли, например, мышкой нарисовать интерфейс приложения и увидеть сразу, как он будет работать, то современные инструменты вам такого не позволят. Вам надо будет вручную верстать компоненты, настраивать вложенные контейнеры, подгоняя элементы друг к другу. При этом код, который делает то же самое, сейчас будет более громоздким и будет потреблять на порядок больше ресурсов компьютера. Странно, да? Но вполне естественно – ведь индустрии разработки ПО платят преимущественно за потраченное время на разработку, а не за результат.


Вы в своё время много писали про ПК «Поиск», несколько вопросов по нему.


«Поиск-1» имел достаточно уникальную, как мне показалось, видеосистему (из описаний я так понял,  что она была похожа на Tandy, но не полностью совместима) и абсолютно несовместимую «звуковую карту». По идее, это должно было привести к появлению собственной демосцены. Было ли такое? Или народ больше сил тратил на то, чтобы заставить работать на «Поиске» программы от РС?


Может быть, сейчас есть энтузиасты, создающие демо для «Поиска»?


Вы знаете, «Поиск», при всём уважении к нему, был совершенно непригоден для демосцены. Есть такая микросхемка, Motorola MC6845, которая в оригинальном IBM PC отвечала за выборку из видеопамяти и за формирование синхросигналов в видеоадаптерах MDA, CGA и Hercules. И хотя советский завод «Светлана» производство её клона освоил, в «Поиске» на ней сэкономили. Масса функций была реализована на недорогой рассыпухе и программно. При прямой записи в видеопамять обращение к адресу перехватывалось специальным регистром-защёлкой, срабатывало прерывание, и процессор выполнял необходимую эмуляцию. Всё это работало ну очень медленно по сравнению с настоящим прямым доступом в аппаратных видеоадаптерах. Этого с горем пополам хватало для игр (видели, как неспешно на «Поиске» бегал «Принц Персии»?), но для демо это было губительно.


Известны ли Вам попытки в начале 90-х создать аналог AdLib или другой популярной звуковой карты для «Поиска»? VGA-адаптер делался, про полноценный контроллер RS-232 Вы сами писали, а звук?


Кроме «Ковоксов» (и редкого оригинального звукового синтезатора), наверное, нет. Дело в том, что Sound Blaster и его аналоги были построены на уникальных чипах, которые разрабатывались под заказ для этих карт. AdLib был попроще, он использовал FM-синтезатор «общего назначения», который за границей был доступен в розницу. Но «у нас» он, в отличие от спектрумовской AY, не продавался (скорее всего, просто потому, что не было спроса). Поэтому аналог AdLib стало возможным сделать только сейчас.


Вы являетесь активным участником проекта по созданию реплик плат расширения «Поиска» на zx-pk.ru. Расскажите про уже сделанные платы и про планы на будущее.


Наверное, не совсем так. К репликам я имею мало отношения, немного консультировал разработчиков реплики «Поиска-2», и, наверное, всё. Я занимался не репликами, а новыми устройствами, которые не производились ранее.

Больше всего я приложил руку к двум первым платам проекта производства плат расширения к «Поиску» – адаптеру IDE и адаптеру СОМ-портов. Не скажу, что это сложная разработка, для IDE «Поиска» я адаптировал существующий проект XT IDE, выкинул немного лишних деталек и переделал на отечественную элементную базу, т.к. иностранный набор логики 74ALS несколько шире, чем отечественный 1533, и некоторые микросхемы (кстати, очень удобные) просто не имеют отечественных аналогов.


Адаптер COM-портов сделал на основе «Поиска-2». Без выкидывания лишних деталек тоже не обошлось, в советских компьютерах был интерфейс токовой петли, который сейчас не востребован, поэтому я его просто убрал.

Дальше собирал это на макетке, подключал, отлаживал. После того, как получалось, публиковал схему. Плату разводил мой коллега Mifody из Ростова, ну и в итоге результат вы знаете.


Как Вы относитесь к дизайну первого «Поиска» – «клавиатуре», в которую вставляются модули расширения, чем-то напоминающие картриджи приставок?


Моноблок с клавиатурой – это самый популярный форм-фактор для домашнего компьютера 1980-х годов, это было абсолютно естественно. И знаете, он тогда как раз помещался на журнальный столик. ☺ То, что в него можно было всунуть целых четыре модуля расширения, это было ого-го как здорово. Но вот полноразмерные модули, как по мне, были некоторым перебором. Они мешали, они цеплялись. А почти все модули расширения на самом деле вполне можно было упаковать в «половинки», ну, кроме разве что адаптера жёсткого диска и какой-то экзотики а-ля программатор или звуковой синтезатор. Видели, например, аналогичные модули для «Электроники» МС 1502? Там всё помещается в два раза меньший объём. Да, тот же адаптер жёсткого диска «Поиска» более сложный, адаптеры и у МС 1502, и, например, у «Спектрумов» не имеют адаптивной схемы ФАПЧ. Но как показывает практика, без неё вполне можно жить.


У Вас в подписи к сообщениям на zx-pk.ru указано два Spectrum-совместимых компьютера: «Олимпик-С» и «Парус ВИ-201». Я так понимаю, что «Олимпик» был когда-то у вашего товарища, которого Вы упоминали в статьях. А «Парус»?


Нет, это были мои зверушки. ☺ История у них была нехитрая. «Олимпик-С» мне просто как-то попался на радиорынке, с выщипанными конденсаторами, а у меня как раз было свободное время. Взял, восстановил. «Парус» купил целенаправленно, я когда-то давно хотел такой компьютер (его рекламировали по телевизору, с красивыми игрушками, ну и в душу запал, сами понимаете).


Я так понимаю, что Вы больше собираете устройства (и компьютеры, и калькуляторы), с которыми сталкивались в детстве или молодости, или же на самом деле Ваша коллекция обширнее?


В основном да, я больше уделял внимания девайсам, с которыми я сталкивался в жизни. Но если мне попадались компьютеры, которые просто были интересными, я их тоже приобретал и/или восстанавливал. Так у меня, например, поселилась ЕС 1841 и ДВК-3, ноутбук (если так можно его назвать) Amstrad PPC512 и другие. Последний, кстати, как-то раз очень даже пригодился по своему прямому назначению.


Amstrad PPC512


Поиск-2


Как Вы оказались в рядах даунгрейдеров? Как активный член многих downgrade-сообществ, что можете сказать о сегодняшнем положении Downgrade?


Как-то само собой получилось. Я с самого начала интересовался внутренним устройством компьютеров, ассемблером и так далее – вплоть до физических принципов работы. И так получилось, что локомотив прогресса (если это так можно назвать) увёл ИТ далеко от этого, а даунгрейд бережно сохранил знания. ☺

И не зря, я смотрю на даунгрейд лет 15 назад и сейчас, это совершенно другой уровень. Если тогда мы решали вопросы «как подключить и отформатировать MFM-диск», то сейчас те же люди разрабатывают схемы, пишут прошивки, разводят платы, собирают всё это и, ёлки-палки, оно работает!


Мне  попадались  на  Bash.org Ваши цитаты с различных форумов. Как Вы относитесь к такой популярности? :)


Забавно. ☺ Действительно, только что глянул, по моему нику находится несколько моих цитат с разных форумов. Думаю, ещё лет двадцать флейма, и на тоненький сборник анекдотов насобираю. ;)


Чем Вы сейчас занимаетесь: где живёте, кем работаете? Есть ли у Вас ещё какое-то хобби, кроме старых компьютеров?


К сожалению, обстоятельства в последние годы заставили отойти от хобби. Как вы, наверное, знаете, я из Донецка. Когда началась война, мы были вынуждены уехать из города. Вывезти удалось далеко не всё, т.к. технику везти через блокпосты – дело проблематичное. Ехать было особо некуда, т.к. мы коренные дончане, и все родные/знакомые жили тут. Поэтому выбрали Днепропетровск (точнее, сейчас уже Днепр), т.к. это был самый близкий крупный город к родной земле.

Поэтому первые годы я больше занимался тем, чтобы восстановить нормальную жизнь своей семьи в новом городе. Сейчас мы с товарищем открыли небольшую фирму по разработке ПО, пробуем себя в бизнесе. Ну и самое главное – у меня полтора года назад родилась дочка. Компьютерами очень интересуется, особенно тем, что у них внутри. Так что воспитываю нового даунгрейдера.  ☺


Большое спасибо за интервью! Удачи в Ваших начинаниях!


Вопросы подготовили:

Андрей Шаронов (Andrei88)

uav1606

Отвечал Евгений Пелега (DrPass)


### Одна гитара на всех (Письма читателей)


Уважаемая редакция, хотелось бы написать о небольшом опыте, полученном, хоть и при достаточно печальных обстоятельствах год назад, но, возможно, весьма поучительном. Так как изложенное не очень тянет на статью, а с юмором такая история, хоть и забавная, не очень вяжется, решил – пусть будет письмом – уж больно хочется поделиться впечатлениями.

В общем, случилась беда – не сказать, что нежданная – проблема назревала минимум пять лет, и, в какой-то момент, всё равно это должно было случиться – у монитора, к которому подключались старые компьютеры, вконец изломался шнур. Привычному положению вещей, когда на старом компьютере с ЭЛТ-монитором запущена Windows 3.11 и какая-то программа или игра, а на стоящем напротив четвёртом пеньке пишется статья, пришёл конец. Старому и новому компьютеру предстояло делить один новый монитор. Проблема воспринималась как временная, поэтому разворачивать программы для дистанционного управления старой машиной не захотел, как и покупать мониторный коммутатор KVM. Удалось выкрутиться и «штатными» средствами.

Спасло меня тогда четыре вещи:

– у старого компьютера к материнской плате был подключен динамик, который исправно работал;

– отсутствие подключенного монитора не останавливало загрузку;

– при установке винды я дал прописать ей необходимые переменные окружения, поэтому Windows можно было запустить простой командой WIN;

– старый компьютер был подключен локальной сети – даже, если запускался без монитора.

Конечно, когда требовалось запустить на старом компьютере программу или игру – к нему подключался новый монитор. Четвёртый пенёк, конечно же, был при этом выключен. Старый же системный блок, в этом случае, ставился на диван рядом с рабочим столом. Мышь вытягивалась на стол, клавиатура же находилась на системнике. Так и устанавливались программы, проверялись, настраивались, запускались игры, делались скриншоты к статьям и т.д. Когда же возникала необходимость в дополнительных устройствах, например, сканерах, они занимали своё место среди подушек рядом с системником. ☺ Возможно, не так удобно – особенно, когда с утра возникало желание провести эксперимент, а потом топать в институт, но получалось вполне себе неплохо.

Но вот эксперименты закончены, и нужно результаты перекинуть на новый компьютер. Что же делать? Вот тут-то и спасло перечисленное выше. Команду запуска Windows в autoexec.bat прописывать не стал, но ввести правильно команду из трёх букв можно и вслепую.

В общем – запускаем компьютер – как уже писал выше – он подключен к локальной сети, вводим WIN и ждём окончания загрузки. Как это узнать? На свитче загорится светодиод, когда компьютер будет в сети. Как только загорелся, можно обращаться к расшаренной папке, куда были скинуты скриншоты.

Когда же скриншоты перекинуты, можно выключать компьютер. Не хотелось это делать варварски – без парковки, поэтому и тут пришлось проявить некоторую «ловкость рук» ☺ – сперва зайдём в Windows – ведь на экран выводится приглашение ввода пароля. Жмём на клавиатуре Esc – да, нас пропустили без проблем – если что, нажмите несколько раз для гарантии – по хрусту жёсткого диска можно понять – процесс пошёл. Немного ждём и... Alt+F4 с «энтером» ☺ – нам винда больше не нужна. ☺ Можно повторить несколько раз так же. После этого набираем команду парковки – например diskmon /park – удобный парковщик из утилит Нортона – в том числе, удобен тем, что после окончания парковки выдаёт на динамик соответствующий звук. Как только его получили – питание можно выключать.

Собственно, таким образом я экспериментировал со старыми компьютерами с конца 2016-го до октября 2017-го – в том числе, так проводились эксперименты с «Русским офисом», например – когда действительно ставил на диван и планшетный сканер тоже. ☺ Правда, уже в конце сентября или в октябре вопрос с монитором решился – купил точно такую же модель, которая теперь обслуживает старые машины и сборки, не имеющие корпуса. ☺


Андрей Шаронов (Andrei88)


______________________________________


Наверное, проблема с монитором для старых систем и местом для него знакома многим читателям нашего журнала. У меня есть несколько CRT-мониторов, но вот места катастрофически не хватает. Поэтому часто использую современный ЖК Acer P226HQV – к счастью, у него два входа – DVI и VGA. К DVI подключен относительно современный компьютер, а VGA использую для старых систем – подключал и 286-й, и даже XT – изображение было нормальным.

Вообще, было бы интересно, если бы другие читатели журнала тоже рассказали о том, кто как решает подобные проблемы.


uav1606


### Йо-хо-хо, и бутылка ROM-a!


Название: «Пираты Кремниевой долины» / «Пираты Силиконовой долины» / Pirates of Silicon Valley

Год выпуска: 1999

Жанр: драма, биография

Перевод:  профессиональный (многоголосый/ двухголосый, закадровый)

Длительность: 1 час 36 минут

Ссылка:  http://rutracker.org/forum/viewtopic.php?t=3766296


Хорошие художники копируют, великие художники воруют. Именно эти слова Пабло Пикассо как нельзя лучше подходят для краткого описания данной картины. Действие фильма разворачивается в США начала 70-х годов, на самой заре компьютерной эпохи. Мы с вами будем иметь возможность наблюдать за появлением на свет, развитием и соперничеством двух титанов компьютерного мира – компаний Apple и Microsoft.


Перед нами предстанут молодые Билл Гейтс и Пол Аллен, Стив Джобс и Стив Возняк, Тим Патерсон и Стив Балмер. Мы заглянем за кулисы таких известных компаний как IBM и XEROX, MITS и Hewlett-Packard, побываем на компьютерной выставке и в студенческом общежитии.


На наших глазах произойдет рождение Apple I и «создание» MS-DOS, мы станем свидетелями многих исторических событий. Картина весьма точно передаёт дух того времени, с ног до головы погружая зрителя в особую атмосферу романтики и авантюризма.


Нелишним будет упомянуть о типе данного фильма – он художественный. Смотреть его будет одинаково интересно как заядлому компьютерщику, так и совсем неискушенному зрителю. К отрицательной стороне картины стоит отнести некоторые исторические пробелы в сценарии: например, в фильме полностью отсутствует упоминание о Гэри Килдалле (Gary Kildall) и его ОС CP/М, которую, как известно, изначально планировали на роль «операционки» для IBM PC. К сожалению, авторский коллектив предпочёл об этом умолчать…

Подытоживая вышесказанное, можно утверждать: если вам интересна «компьютерная» история и вы до сих пор не видели данного фильма – запланируйте его просмотр на свободный вечер. Будет интересно!


Вячеслав Рытиков (eu6pc)


### Ретрокомпьютер мечты своими руками


Несколько лет назад я впервые задумался о сборке компьютера, который мог бы удовлетворить большинство моих «хотелок» по части ретрогейминга, эдакой машины на все времена. К концу 17 года мысль начала постепенно материализовываться. Случилось это во многом благодаря идеям, подаренным нам известным австралийским гиком Филом и ценным сведениям и комплектующим, приобретённым на «Полигоне Призраков».

Главной целью проекта было собрать универсальный компьютер, на котором без особых трудностей полноценно работают игры, начиная с эпохи появления первых персональных компьютеров IBM XT (начало 80-х), до периода бурного развития трёхмерных игр (конец 90-х). Типа XT-286-386-486-Pentium-Pentium II в одной машине.

Компьютер также должен обеспечивать соответствующее аутентичное звуковое сопровождение игр знаковыми звуковыми картами и синтезаторами Roland-GUS-SB.

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


Сборка компьютера


Сердцем собираемой машины стал процессор AMD K6 2+, ключевым преимуществом которого является возможность программной смены множителя. Он, наряду с K6 III+, был последним процессором в линейке AMD K6 и предназначался для мобильных компьютеров. Процессор имеет 64 Кбайт кэша первого и 128 Кбайт второго уровня.

В бета-версии компьютера применяется 450 МГц-версия, немного разогнанная до 500. Кстати, с разгоном у этих камней дела обстоят очень хорошо.


Фото http://cpu-world.com


Материнскую плату будем использовать такую – Gigabyte GA-5AX.


Она поддерживает широкие диапазоны питающих процессор напряжений, множителей и частот системной шины. На борту 2 ISA, 1 AGP 1.0 и 5 PCI слотов. Хорошая мать, особенно для оверклокеров, но в моём случае это неактуально – чем выше я поставлю частоту системной шины, тем быстрее будет работать компьютер в «режиме старых процессоров» – для игр типа Quake I и III это хорошо, а для приложений из восьмидесятых – плохо. Найти и купить её оказалось ещё сложнее, чем добыть процессор, но она того стоила.

Идём дальше, видеокарты. На текущем этапе в компьютере будет стоять 32-мегабайтная RIVA TNT 2 M64. Не «ах», конечно, но и не такая плохая. Для DOS разницы особо нету, а в винде есть и более быстрые платы, но озадачиваться в этот раз не буду – во-первых, выбор у меня на сегодня невелик, а во-вторых, в итоге всё равно дело упирается в процессор с его ограничениями. Потом, конечно, заменим её на что-то более достойное.


Естественно, хорошему компьютеру нужна поддержка Glide. Её будут осуществлять в SLI две Voodoo 2, куда без них.


Ещё компьютер будет укомплектован 3.5" и 5.25" FDD (в моей коллекции есть значительно более древние компы, и наличие в этом приводов гибких дисков мне обязательно пригодится).


Памяти 128 мегабайт, пока собирал ящик, нашёл более приличную, но буду ещё подбирать – со скоростью разбираться.


Винт – обычный Барракуда на 80 гигов. Пока, думаю, хватит, особенно если сеть прикручу.


Корпус нашёл в закромах.

Звук – тема отдельной статьи. О нём в следующий раз.

По комплектующим, вроде, всё. Собираем, выставляем как надо перемычки. Вот такой аппарат в итоге получился.


Идём дальше. Компьютер будет работать в MS-DOS и Windows 98. Раньше был любителем Win 98 IF, но поняв, какой это утюг неповоротливый, решил всё настраивать по старинке.

Поскольку львиная доля приложений будет работать в среде ДОСа, необходимо сделать так, чтобы нормально функционировали как приложения, использующие только нижнюю память, так и те, кто использует EMS/XMS.

Было создано загрузочное меню, позволяющее выбрать варианты – чистая загрузка, HIMEM, HIMEM + ЕММ, Win 98 и соответствующие файлы конфигурации и автозапуска. В этом деле мне понравилась и пригодилась годная статья «Битва за память» Артёма Васильева.


Перейдём, наконец, к делу.


Компьютер должен заменить системы, работающие на процессорах: 8086, 386, 486, Pentium, PII, и просто так этого не добиться. Перед нами, по сути, встаёт две задачи. Первая_– поэтапно пошагово снижать его производительность до минимально возможного уровня. Вторая – обеспечить в нормальном режиме максимальную скорость работы системы.

Я протестировал несколькими бенчмарками часть своей компьютерной коллекции, построенной на процессорах разных поколений. Результат свёл в таблицу.


Для XT, 286, 386 есть ещё результаты теста SysInfo:


Полученные данные ожидаемо коррелируют со сборной таблицей «Phil's Ultimate VGA Benchmark Database Project».

Таким образом, определены значения, которым примерно должен соответствовать наш компьютер в разных режимах работы. Особенно важно добиться снижения производительности в режимах 386 и 8086 процессоров, для остальных случаев это малопринципиально.


Снижение производительности


Процессор K6 2+ позволяет в реальном времени менять коэффициент умножения в диапазоне от 2 до 6, для него также доступна функция включения/выключения кэша. В совокупности это предоставляет широкие возможности управлять производительностью компьютера.

Частота системной шины выставляется перемычками на материнской плате. Значение, установленное в моём случае – 83 МГц. При использовании стандартного множителя 6 внутренняя частота процессора составит 500 МГц, при множителе 2, соответственно, 166 МГц. Многовато конечно, но это какой-никакой компромисс.

Управление работой L1-кэша также сильно влияет на производительность, его работой можно управлять с помощью специальных утилит в ДОСе и Windows или задавать значение в настройках BIOS.

Управлять камнем мы будем из командной строки с помощью простой утилиты Setmul. Снижая его частоту и отключая кэш, мы будем «переключать» его в режимы разных процессоров.

Вот настройки и результаты бенчмарков в режимах 386-486-Pentium-Pentium II.


UPD. После того, как я начал более глубоко разбираться с результатами тестирования с различными комбинациями множителя и кэша процессора/MB (значительно позже написания основного текста этого материала), то с некоторым удивлением (для себя) заметил, что реальная производительность процессора K6 2+ больше зависит от того, активирован ли его кэш, нежели от коэффициента умножения (смотрите графики производительности в тестах на представленной диаграмме).


2-6 – множители; L1D – кэш первого уровня выключен, L1E – кэш включен.


А как же с работой в режимах XT и 286, ведь даже с минимальным множителем и отключенным кэшем компьютер слишком быстр?

Тут уже придётся замедлять скорость с помощью специальных утилит. Перебрал я их много, но в итоге остановился на одной – софтине от польских разработчиков под названием Bremze. Утилита запускается из командной строки, с ключами или без оных. Если просто запустить файл brem70, то в любое время (даже при уже запущенной игре) комбинациями клавиш Alt + < и Alt + > мы можем подобрать необходимое замедление. Также, запуская программу с ключом /sXX, двухзначной цифрой (от 00 до 80) мы задаём нужную степень «торможения», подобранную под наши потребности экспериментальным способом. Для меня оптимальными оказались значения 10 и 24. При установке параметра 25 SysInfo 8.0 показывает значение производительности процессора 0.5, что даже меньше, чем у оригинального IBM XT, хотя такое сравнение и не совсем правильно.

Настройки и результаты тестов для работы в режимах XT – 286:


Результаты тестов в виде диаграммы:


Думаю, вполне себе ничего.


Повышение производительности


Теперь будем пробовать достичь максимальной производительности 3D-приложений в DOS и Windows. Напомню, в бета-версии компа пока установлена TNT2.

Выяснилось, что производительность процессора K6 2+ для трёхмерной графики можно увеличить. Чтобы это сделать, нам понадобятся две утилиты – setk6v3 и k6wcx. Про метод Write Combining писали и на «Полигоне», и на сайте philscomputerlab.com, и даже на форуме IXBT в далёком 2001 году. Сути пока я до конца не понял, вот что про это пишут: «…Intel P6 и AMD K6, K7 очень плохо работают в 3D. Связано это с неэффективным использованием системной памяти. Для решения этой проблемы есть специальные утилиты, так называемые DOS Graphic бустеры». K6wcx как раз и является одной из этих утилит.

Вкратце. Запускаем файл SETK6D.EXE. Сохраняем себе адрес начала видеопамяти карты (выделен на скриншоте).


Всё, больше нам этот файл не потребуется.

Для ускорения грузим файл k6wcx.exe с параметрами a0000 1 EХ000000 XXX, где EХ000000 – определённый выше адрес видеопамяти, а XXX – число, полученное умножением установленной видеопамяти на 8. Остальное не трогаем.

В результате получился вот такой прирост.


Однако, неплохо!


Результаты тестирования


Игры времён «Пентиумов» – Screamer, NFS II и III, Fallout, Quake II, Unreal и Unreal Tournament – работают отлично. Prehistorik 2, имеющая проблемы со звуком на машинах старше 386, тоже звучит как надо.

Самая прожорливая игра до 2000 года – Deus EX – жутко тормозит. Такого слона наша лошадка не утащит. Ясное дело, что чудес ждать не стоит – производительность K6-2+ 500 находится на уровне Pentium II 300, а этого для 3D маловато.

Испытания в режиме XT проводились на таких древних играх, как Apple Panic (1982), Alley Cat (1983), Burger Time (1983), Donkey Kong (1983), Moon Bugs (1983), Pacman (1983), Set the Hostages (1981), My Chess (1979) и других.


Выводы и размышления


• В действительности, стопроцентной гарантии работы всех приложений периода 1979-2000 годов, естественно, нет. Отсюда гарантированно выпадает некоторый процент игр:

- 1979-1985 годов (как программно не замедляй систему, будут такие, на которых это не сработает), уж слишком низкой была производи-тельность первых IBM XT. На данный момент думаю, что доля таких составит 7…10%;

- древняя экзотика, требующая определённое железо (в основном, видеокарты);

- мощные игры 1997-1999 годов, такие как Quake, Unreal работают, но для комфортной игры в высоком разрешении производительности компьютера недостаточно.

• Двух Voodoo этому компу много. Оставлю одну, а SLI-пару поставлю в более мощный, типа PIII, чтобы в более поздних играх иметь возможность играть с максимальными настройками и раскрыть весь потенциал glide.

• Заставить работать данный процессор на уровне типового 486DX4 или раннего Пентиума (не говоря уж об XT и 286) без использования замедлялок не представляется возможным.  Хотя, опускать скорость до уровня 486 не особо и актуально, ибо на частоте 166 МГц комп прекрасно запускает игры 90 – 96 годов.

• Раз так слабо частота процессора с выключенным кэшем влияет на производительность, то имеет смысл попробовать использовать в компьютере более быстрый процессор (например, 500 МГц), разогнанный до 600…650 МГц, что может дать прирост скорости играм 1997-2000 годов, не мешая использовать машину в роли компьютерных динозавров 80-х.

• Плюсом, подобрав более быструю видеокарту, возможно, получиться поднять своё ЧСВ, запустив нормально игру 2000 года Deus EX, для которой на данный момент этот системник явно слабоват. :)

• В большинстве старых игр нет возможности выхода в DOS, и это плохо. Я нашёл отличную резидентную программу Vbreak, которая по четырёхкратному нажатию CTRL принудительно завершает запущенную программу.


UPD 08.2018

В процессе свежих испытаний процессор менялся на новый K6-2+ 500. На 600 МГц в тестах он глючил, пришлось запускать на частоте 570. 3DMark2000 показал прирост производительности на 10%,  3DMark99 – 7%. Это, конечно, ни о чём. K6-III+ у меня пока нет. Думаю, с таким процессором, имеющим вдвое больший кэш, на частоте 650 МГц увеличения производительности в 20…25% добиться можно. Из буханки хлеба можно сделать троллейбус, но зачем?..

Смена видеокарты смысла особого также не имеет, таки на плате всего лишь AGP 1.0.

Подытоживая вышенаписанное, можно сказать, что идея построения универсального компьютера по данной схеме очень интересная, а результаты выше всяких похвал. Игры 1986…1999 годов работают на нём просто отлично. Для совсем старых, хоть их и не так много, и у большинства популярность весьма низкая – лучше использовать XT, или, в крайнем случае, 286 с кнопкой «Турбо». Чтобы полноценно насладиться графикой игр 1999…2005 годов, компьютер должен быть совершенно иной. Вот его этой осенью-зимой мы и соберём, не забыв потестить и написать небольшой материал. Главные роли в проекте получат: мать ASUS p5pe-vm с 775 сокетом и AGP 8x, процессор Core 2 Duo E6700, а главная роль достанется видеокарте HD3850.


Eddison


### Необыкновенные приключения иностранного «железа» в России

(к 25-летию Ассоциации «История и компьютер»)


Эта удивительная история произошла более 20 лет назад, связана она напрямую со старым компьютерным железом, и поэтому, может быть, будет интересна читателям Downgrade. В начале 90-х в России была создана и до сих пор успешно функционирует Ассоциация «История и компьютер» (АИК). На заре её существования, выступая где-то в Европе перед западными профессорами, её тогдашний лидер, ныне уже академик, на вопрос, какие проблемы, чего не хватает новорожденной Ассоциации, ответил, что историки в России есть, а вот компьютеров-то у них и нет.

Наша Раша тогда ещё не была всемирным пугалом, слова «Перестройка» и «Горбачёв» были крайне популярны, западная профессура прониклась и реально попыталась как-то помочь. Поэтому, когда буквально спустя несколько месяцев в одном из университетов Европы решили полностью обновить компьютерный парк, устаревшие компьютеры решили отправить в порядке помощи этим самым голодающим русским историкам.

В итоге в середине 90-х в адрес АИК поступило более сотни (!) системных блоков IBM PS/2 model 30, модель от 11.08.1987 г. в корпусах стандарта Slim. На момент своего появления на свет (но не приезда к нам!), эти компьютеры имели несколько важных новинок. Они одни из первых были оборудованы только 3,5"-дисководами, модулями памяти нового стандарта SIMM, а также новыми «круглыми» разъёмами под мышь и клавиатуру.

Однако на момент отправки в Россию спустя чуть ли не десять лет, в соответствии с законом Мура, они уже совершенно устарели, почему их русским и отправили, т.к. пристроить их ещё куда-то или распродать в Европе было крайне затруднительно. Непосредственное же использование этих компов было затруднено по ряду причин. В поступившей комплектации винчестер отсутствовал, в наличии были только два 3,5" FDD по 720 КБ. Поскольку мы в то время уже как-то незаметно проскочили этап дискет на 720 КБ, пришлось их создавать искусственно из дискет на 1,44 МБ, заклеивая маркировочное отверстие, по которому дисковод определял ёмкость дискеты, и форматируя их на вдвое меньшую ёмкость с использованием драйверов.

86 процессор с частотой 8 МГц и 640 КБ ОЗУ (изначально стояло вроде как 512, но можно было доставить – гнёзд под планки памяти было два, больше ставить было бессмысленно, процессор не видел верхнюю память, несмотря на все ухищрения в config.sys) предполагали использование только MS-DOS (или OS/2, для которой был свой БИОС). В родном европейском университете машины работали в локальной сети с загрузкой ОС через сетевые карты, устанавливаемые в один из трёх разъёмов расширителя 8-битной шины ISA параллельно материнской плате. К нам компьютеры приехали уже без сетевых карт, которые прежние рачительные хозяева аккуратно вытащили, справедливо рассчитывая, что они ещё им самим пригодятся. Поэтому загружать ОС можно было только с дискет.

Самой большой проблемой стал распаянный на матплате графический адаптер MCGA (Multi-Color Graphics Array, ч/б 640x480 с частотой 60 Hz, или цветной режим 320x200 с 256 цветами), который применялся только в этих моделях IBM и был уже тогда полным анахронизмом. Этот недостаток был устранён установкой дискретной 8-битной видеокарты VGA со стандартным разъёмом D-Sub в свободный слот расширителя шины ISA. Интересно, что позже я вроде ещё раз столкнулся с этим видеостандартом, но уже в российской реинкарнации IBM PC в виде самой первой модели бэушной ЕС1840 с выцветшим монохромным зелёным дисплеем, также без винчестера, которую смог выбить для кафедры из войск связи, но это уже другая история.

Севшие в ноль жёлтые батарейки материнских плат требовали ввода даты при каждом включении компьютера, в противном случае время создания файлов начинало отсчитываться с рождества компьютерного – 1.01.1980 г. Нажатие клавиши F1 позволяло проскочить этап сваливания в зашитый в БИОС Бейсик, поэтому особо с перепайкой батареек мы не заморачивались.

При изучении внутренностей доставшейся нам халявы компьютерно-гуманитарной помощи несколько удивило продвинутое хайтековское конструкторское решение американских инженеров, касающееся конструкции сетевого выключателя. Так как клавиша включения была вынесена на переднюю панель, а блок питания располагался, соответственно, у задней стенки, их соединение было чисто механическое, через весь корпус шла обычная проволочная тяга без каких-либо электронных изысков. Специально нашёл в сети фотографию блока со снятой крышкой, где эта проволока отчётливо видна.


(Фото k-systems-store с eBay – прим. ред.)


Поскольку данная модель – первая в этом неудачном и быстро почившем в бозе семействе – не имела ещё системной шины MCA, подключение внешних устройств, включая клавиатуру и мышь к разъёмам PS/2 (единственному, что осталось от этой машины на многие последующие годы) затруднений не вызвало, как и установка русскоязычных драйверов. Разъём под параллельный порт был стандартным, любой 9-игольчатый матричный принтер (других тогда у нас ещё просто не было) подключался без труда.

В итоге получился пригодный для набора и распечатки текстов в «Лексиконе» компьютер, который мог запускать также ДОСовские игры. Объём их определялся ёмкостью дискеты. К примеру, первые версии культового «Принца Персии» (дистрибутив которого был не так давно случайно найден и восстановлен) запускались без каких-либо проблем.

Следующим шагом по усовершенствованию этого железа стала установка в другой слот расширения карты адаптера MFM-винчестера, ёмкость которого могла быть от 20 МБ и выше. Сам винчестер размещался на месте удаляемого второго дисковода гибких дисков. Интересно, что первоначально мы попытались заказать в московском представительстве IBM «родной» хард на 20 МБ, но озвученная цена за него в 1700 американских рублей (притом, что полный системник c 486 CPU тогда уже стоил порядка штуки баксов) повергла в шок. Фирма, тем не менее, вежливо разъяснила, что в цену включена стоимость многолетнего хранения диска на складе.

Заставить MS-DOS загружаться с жёсткого диска не удалось, загрузка шла с дискеты, с возможностью дальнейшего подключения винта в качестве накопителя. Тем не менее, даже после такого апгрейда компьютеры продолжали оставаться совершенно устаревшими, т.к. уже завершалась эпоха 286 и 386 процессоров.

Поэтому в итоге несколько десятков американских 86-х, после некоторых сложных обменных операций, трансформировались в появившийся из подвалов МГУ-шного НИИЯФа первый в российской исторической науке PC на 486 процессоре (частота CPU в 25 МГц, распаянного непосредственно на матплате, не требовала даже пассивного радиатора охлаждения) с четырьмя мегабайтами ОЗУ на борту.

К сожалению, ни одного PS/2 в АИК к настоящему времени не сохранилось. А жаль. Такой ретрокомпьютер сейчас выставлен на eBay за 800 долларов. Правда вместе с монохромным монитором и SCSI-винчестером на 160 МБ.


Злобин Е.В., РГГУ, Москва


### Особист всея компьютера


Как говорят даунгрейдеры, у большинства программ, используемых сейчас на современных мощных компьютерах, есть либо менее требовательный к ресурсам машины аналог, либо старая версия – также менее требовательная. Более того, не так давно можно было говорить, что у множества таких программ есть старые версии под DOS и Windows 3.х, причём старая версия для третьей винды могла иметь практически такой же внешний вид, что и её современный потомок. Такое можно было говорить, например, про MS Word до 2003-го, Excel, конечно же, PROMT – по крайней мере, автор, имевший PROMT XT и X-translator Platinum, видел много схожего в их интерфейсе и интерфейсе старика Stylus – и третьего – для Windows 95, и второго – для Windows 3.x – тем более, что версии 2.21 и 2.51 умели встраиваться в Word, так что, сходство и удобство было бы достаточным, чтоб получивший опыт работы со старой версией человек мог легко пересесть на более новую версию редактора, таблицы или переводчика. Кстати, тогда находил статью, которая предлагала использовать компьютеры с Windows 3.11 именно таким способом – дёшево и сердито – освоите Word 6.0, Excel 5.0 и можете говорить при устройстве на работу, что владеете офисом – в 2000-м ворде и экселе, которые будут стоять на рабочем компьютере, вы увидите те же самые функции... В общем, из этого логично вытекало утверждение, что и у других программ есть версии под Windows 3.11, которые можно найти в интернете и поставить на старый компьютер.

Когда автор обзавёлся такой старой машиной – помянутым сто раз в других статьях 386SX40 – и установил на неё третью винду, встал вопрос наполнения компьютера старыми версиями программ. Была поставлена соответствующая версия Word, Windows Commander – «ДИСКо Командир» удалось скачать чуть позже. Следующим должен был стать, например, антивирус. На основном компьютере работал DrWeb, также был известен AVP Касперского, но вот незадача – антивирус Данилова будто перепрыгнул этап Windows 3.x – сразу после версий для DOS появились версии для Windows 9x. По крайней мере, автору не удалось найти упоминаний версий антивируса, работающих под Windows 3.x или хотя бы под Win32s. Версия антивируса Касперского для третьей винды упоминалась – 2.0 – но тогда её тоже почему-то не удалось найти. Зато нашлась версия ревизора дисков ADinf – 16-разрядная, виндозная, российская! Тогда в распоряжении автора было очень мало программ, созданных отечественными компаниями для Windows 3.x, и каждая новая была радостью и приятной находкой. Вот и этот ревизор был установлен на старом компьютере. Компьютер просканирован, вроде бы были найдены даже следы, похожие на вирусную активность, и всё. Программа говорила, что, по косвенным признакам, возможно, это вирусы, а возможно – и нет. Никакой однозначности.

Собственно, в этом и суть программы-ревизора – по косвенным признакам выявлять вирусную активность – возможно, что это и не вирус вовсе, но именно такая «подозрительность» позволяет выявлять заразу абсолютно нового типа, неизвестную антивирусным сканерам. Хоть и у программы тоже есть лечебный модуль. Однако пользоваться программой было настолько непривычно, что эксперименты достаточно скоро были закончены (да ещё и модуля лечащего не нашлось тогда, вроде) и программа была отложена.

Но только на время – спустя 12 лет тема очередного номера была посвящена отечественным программам и железкам, да ещё и для номера взяли интервью с Мостовым. Всё подталкивало к тому, чтобы на компьютере снова водрузить ADinf и запустить его во всей красе. Собственно, этому будет посвящена нынешняя статья.


Скачиваем и устанавливаем


Итак, на дворе уже не 2005-2006-ой год, а 2018-й, следовательно, нет необходимости лазить по FTP-серверам, сравнивать скачанные архивы, подбирать версии и т.д. Заходим на Old-dos в твёрдой уверенности, что нас ждёт куча различных версий ADinf, лечащих модулей и DrWeb до кучи. Оказалось, что не совсем – если для DOS собраны практически все версии, то для Windows придётся повыбирать – доступно три версии ADinf и две версии лечащих модулей. Мостовой в интервью утверждал, что в свободно распространяемых версиях отсутствует поддержка лечащего модуля, так что автор выбрал версию ADinf, отмеченную как 3.12 Full (http://old-dos.ru/dl.php?id=6591) и самый близкий к ней хронологически лечащий модуль: http://old-dos.ru/dl.php?id=6592. Хотя, возможно, стоило выбрать версию ADinf, выпущенную до лечащего модуля, но и так, вроде бы, они друг друга увидели. Так как Мостовой заявил, что есть интеграция с DrWeb, был выбран соответствующий антивирус для DOS – DrWeb 4.02: http://old-dos.ru/dl.php?id=8245.

Устанавливалось это всё в следующем порядке:

• Файлы DrWeb были скопированы в каталог C:\DRWEB.

• ADinf.

• ADinf Cure Module.

Самым «капризным» оказался ADinf – чтобы программа нормально установилась, все файлы должны лежать в каталоге с названием Disk1. После того, как будут установлены файлы версии программы для Windows, начнётся установка ДОСовской версии. По окончании последней будет запущена версия для DOS с предложением создать таблицы контрольных сумм файлов.

Увы, автор не сделал скриншота первого запуска DOS-версии ADinf и создания таблицы, но выглядит это примерно так же, как и на рис. 1.


Рис. 1. Создание таблицы DOS-версией ADinf – примерно такую процедуру предлагают произвести пользователю во время установки


После окончания создания таблицы и выхода из программы пользователь увидит рекламку «ДиалогНауки», см. рис. 2.


Рис. 2. Рекламка «ДиалогНауки» – выводится на экран при выходе из DOS-инсталлятора


Собственно, после этого можно считать, что ADinf для Windows установлен на вашем компьютере. Теперь очередь за лечащим модулем.

При установке модуль попытается найти установленную версию ADinf. Однако даже когда ADinf будет найден, поиск не прекратится (см. рис. 3).

Для того чтобы продолжить установку до того, как инсталлятор перероет все папки, следует нажать кнопку «Прервать поиск». Только после этого станет активной кнопка «Далее». Автор для пущей верности ещё и выделил строчку C:\ADINF в списке «Каталоги, в которых найден ADinf».


Рис. 3. Идёт поиск ADinf


После этого несколько раз задали вопросы насчёт настройки, но автор не стал открывать настроечного диалога. В конце установки инсталлятор предложил создать лечащую дискету, но есть возможность отказаться.

После всех манипуляций в диспетчере программ создастся программная группа ADinf (см. рис. 4). Теперь можно приступать к экспериментам с программой.


Рис. 4. Программная группа ADinf


Возможности основной программы


После щелчка по значку «ADinf for Windows» откроется главное окно программы, показанное на рис. 5.


Рис. 5. Главное окно программы ADinf for Windows


Для начала работы необходимо, чтобы система получила сведения о текущем содержимом дисков компьютера, с которым в дальнейшем будет производить сравнение. Для этого необходимо нажать кнопку «Создать таблицы». После этого запустится процесс создания таблиц, включающих сведения о каталогах, файлах и контрольных суммах файлов (см. рис. 6).


Рис. 6. Создание таблиц сведений о содержимом дисков компьютера. Интересно, что логотип анимированный, и змейка в углу в процессе создания таблиц (или же выполнения другого действия ревизора) будет качать кончиком хвоста и головой


После создания таблиц можно приступать к проверке. Программа предлагает на выбор несколько режимов проверки:

• Проверить всё – будут проверяться все логические диски, доступные программе, включая дискеты в дисководах.

• Проверить диск(и) – будут проверяться только те логические диски, которые отметит пользователь в меню слева.

• Поиск стелс – также на выбранных дисках будут искаться стелс-вирусы.

Автор попробовал два последних режима на диске C: компьютера (см. рис. 7 и рис. 8).


Рис. 7. Сканируем диск C: (и тут машем хвостом и качаем головой ☺)


Рис. 8. Ищем стелс-вирусы


К сожалению или к счастью, программа не нашла каких-либо признаков вирусной активности, так что, автор получил соответствующее сообщение (см. рис. 9).


Рис. 9. Ничего не найдено


В прошлый же раз программа нашла признаки деятельности вирусов-спутников. Автор надеялся на что-то подобное и в этот раз, но не получилось. Решив нагадить программе (не со зла или из вредности, а чтоб посмотреть, как будет работать лечащий модуль и связка с DrWeb), автор создал текстовый файл, который программа проигнорировала.

Тогда было решено удалить парочку не очень нужных каталогов. Тут программа действительно подняла кипиш по поводу пропажи (см. рис. 10).


Рис. 10. Два каталога исчезли. Ваши действия?


По нажатию кнопки «Показ.» программа даёт возможность посмотреть, что за файлы или каталоги были удалены (см. рис. 11), однако восстановить нет возможности.


Рис. 11. Подробная информация об удалённых файлах


Единственное, что может сделать программа – это обновить таблицы, чтобы при следующем сканировании учесть отсутствие данных файлов и каталогов. Либо не делать ничего.

Примерно такая же реакция была на создание bat-файла – автор туда записал строчку запуска Norton Commander. Появление нового исполняемого файла также встревожило программу и также отразилось на отчёте (рис. 12).


Рис. 12. Найден новый исполняемый файл – ничего особенного, но вдруг


В данном случае, при вызове меню подробных сведений, программа предложит удалить файл (см. рис. 13).


Рис. 13. Подробные сведения о новом файле. Если он вам не нравится – удалим, и дело с концом


С одной стороны, наличие файла воспринимается программой примерно так же, как и удаление каталогов, но уже появление кнопки удаления даёт надежду, что в программе какими-то манипуляциями можно вызвать лечащий модуль и DrWeb, но об этом в следующих разделах.


Лечащий модуль


Разглядывая группу программы ADinf на рис. 4 или на экране монитора, читатель может заметить ярлык удаления лечащего модуля, но не увидит отдельного ярлыка запуска. Однако лечащий модуль начнёт работать уже после первого запуска – едва только Вы закроете окно ADinf.

Внизу экрана, где находятся значки свернутых программ, появится значок, аналогичный значку ADinf в программной группе (см. рис. 14).


Рис. 14. Первый запуск лечащего модуля после закрытия программы ADinf for Windows


Это запустился лечащий модуль. Он так же, как и основной ревизор, обновляет собственные таблицы. Двойной щелчок по значку откроет окно программы (см. рис. 15).


Рис. 15. У лечащего модуля тоже есть собственное окно, где отображаются действия программы. Только открывается оно не пользователем, а основной программой ADinf


Кнопку вызова лечащего модуля читатель может увидеть в диалоговых окнах на рис. 10 и рис. 12, но в обоих случаях кнопка неактивна. Как же её можно активировать? Возможно, если программа ревизора сравнивает текущую структуру файлов и каталогов с таблицей-оригиналом, то, может быть, лечащему модулю тоже нужен образец, чтобы восстановить исходное состояние файла после изменения? Хорошо, тогда сохраним сведения о новом файле в таблицу, а после изменим его.

Действительно, после того, как файл добавили в таблицу, а потом изменили, в диалоговом окне стала активна кнопка «Лечить» (см. рис. 16).


Рис. 16. Как только у программы появились сведения о начальной структуре файла, кнопка запуска лечения оказалась активна


После нажатия на кнопку откроется диалоговое окно, которое сообщит о том, что лечащий модуль будет запущен после закрытия программы (см. рис. 17). Однако после закрытия главного окна нам сообщают, что лечение может быть произведено только с помощью специальной дискеты, которую нам предлагали создать при установке (см. рис. 18). Так что, если вы собираетесь пользоваться возможностями восстановления файлов средствами лечащего модуля, лучше эту дискету действительно сделать.


Рис. 17. Ваша заявка на лечение принята ☺


Рис. 18. Увы, лечение производится только лечащей дискетой, а не программой, установленной на компьютере


Однако у программы есть ещё один вариант проверки и лечения неизвестных файлов – возможность интеграции с внешним антивирусом DrWeb.


В союзе с DrWeb


Как говорил в интервью Мостовой, у ADinf есть возможность интеграции с DrWeb. Для этого автор и скачал версию «доктора» для DOS примерно тех же лет. Как же интегрировать две программы? Оказалось, что за интеграцию с DrWeb отвечает диалог, открывающийся по команде Работа->DrWeb (см. рис. 19).


Рис. 19. Диалоговое окно настройки взаимодействия с внешним антивирусом DrWeb


В первую очередь необходимо указать местоположение антивируса. При нажатии кнопки «Искать» вверху диалогового окна откроется стандартный диалог открытия файла, где необходимо будет найти каталог, куда был установлен антивирус. В случае автора антивирус находится в каталоге C:\DRWEB.

После указания пути до исполняемого файла антивируса, можно поставить галочку «Использовать информацию ADinf» (см. рис. 20) – в этом случае антивирус будет сканировать именно подозрительные для ADinf’a файлы.

Теперь программу можно запустить кнопкой «Начать сканирование». Другой вариант – запуск антивируса после закрытия главного окна ADinf – для этого должна быть установлена галочка «Предлагать запустить DrWeb» в блоке настройки действий после закрытия главного окна ADinf – «Перед выходом из ADinf, если файл не пуст». Именно такая настройка представлена на рис. 20.


Рис. 20. Если отметить галочкой пункт «Использовать информацию ADinf», DrWeb будет сканировать только подозрительные файлы, а не все диски. Вот она – интеграция!


И при такой настройке после закрытия окна пользователь получит сообщение, как на рис. 21.


Рис. 21. Запуск антивируса после закрытия ADinf


Теперь снова произведём сканирование, так, чтобы программа сообщила об изменённом файле, а потом запустим DrWeb одним из возможных способов.

Хотелось, чтобы DOS-программа запустилась в фоне, а ADinf выдал бы собственный виндозный диалог, где бы показывал текущее состояние антивируса. Просто у автора DrWeb для DOS ассоциируется, в первую очередь, с версиями из мультизагрузочных дисков, которые просто выводили на экран список адресов файлов. Здесь же пользователю открывается на весь экран главное меню антивируса, который сперва подгружает базы (см. рис. 22), сканирует оперативную память – первый мегабайт (см. рис. 23) и, наконец, сканирует подозрительный файл (см. рис. 24).

Из Windows под 486-м процессором на частоте 33 МГц все действия происходят очень вальяжно. Но при этом при нажатии клавиши Esc сразу появляется диалог «Вы хотите прервать операцию?».

Закрывать же программу пользователю придётся самому – сочетанием клавиш Alt+X, как и, собственно, ADinf. ☺


Рис. 22. Загрузка вирусных баз


Рис. 23. Сканирование оперативной памяти


Рис. 24. Результат сканирования подозрительного файла


Заключение


Что можно сказать в заключение? Несмотря на различные спорные моменты, программа оставила положительное впечатление. Приятный интерфейс, выполненный в серо-зелёно-голубых тонах, анимированный логотип и интеграция с «братским» антивирусом не может не радовать. Программа в полном оснащении действительно смотрится очень солидно (а есть ещё аппаратно-программный комплекс Sheriff, с которым ADinf может интегрироваться). Поэтому подобную связку можно порекомендовать поставить хотя бы для экспериментов. В конце концов, ревизор не висит в памяти и его можно периодически запускать посмотреть – не случилось ли на компьютере чего подозрительного и непонятного. А для простых проверок можно использовать тот же DrWeb – тем более, «ДиалогНаука» во всех материалах по антивирусам пишет – на вопрос «Что лучше – ADinf с лечащим модулем или DrWeb?» стоит отвечать – оба в одной связке.


Андрей Шаронов (Andrei88)


### PCem – эмулятор старых PC


Время идёт, и постепенно мы дошли до потребности (и возможности) эмулировать уже не только ZX Spectrum или другие «восьмибитки», но и когда-то, казалось бы, мощнейшие персональные компьютеры «IBM PC XT/AT совместимые».  Одним из таких эмуляторов и является открытый проект PCem:

https://pcem-emulator.co.uk/

В отличие от DOSBox, а также VMware, VirtualBox, VirtualPC и подобных, эмулятор PCem пытается на более низком уровне имитировать всю аппаратуру выбранного и сконфигурированного старого компьютера, в том числе и правильное быстродействие, и специфические возможности. PCem это удаётся в достаточной степени, чтобы даже заработали драйвера для старых видеокарт или звуковых плат. Хотя и не стоит ожидать слишком многого – к примеру, если выбрать в игре звуковую плату Roland, звук будет корректно воспроизводиться, но ценимого некоторыми знатоками фирменного звучания вы не получите.

На каком-то этапе от PCem в результате конфликта разработчиков отпочковался его форк — 86Box: https://github.com/86Box/86Box (сначала назывался PCem-X и являлся экспериментальной веткой), оба проекта развиваются достаточно активно и продолжают заимствовать наработки друг друга. Какой из них предпочтительнее – сказать непросто. У каждого есть преимущества и недостатки, 86Box кажется более продвинутым, поддерживает больше устройств, и он быстрее за счёт оптимизации под конкретные процессоры, зато PCem выглядит более стабильным и содержащим меньше ошибок. Интересно, что в свою очередь от 86Box произошло ответвление проекта VARCem:  https://www.varcem.com/  — по идеологии его разработчиков, он ориентирован на более точную эмуляцию старых XT и AT.

Так или иначе, в этой статье рассмотрим работу с новейшей 14-й версией PCem, причём под Linux. Отчасти потому, что мало кто об этом рассказывает, отчасти просто потому, что автор статьи использует его как основную систему. В настройке при этом много общего, хотя интерфейс Windows-версии более продвинутый.

В отличие от Windows-версии с готовыми запускающимися файлами, Linux-версию предлагается скомпилировать. Каких-либо сложностей на этом этапе не встретилось, достаточно внимательно прочитать файл Readme-LINUX.txt и установить перед компиляцией библиотеки SDL2, wxWidgets 3.x и OpenAL, если компиляция осуществляется в Debian или Ubuntu, надо не забыть ещё поставить dev-версии этих библиотек.

Что действительно способно доставить затруднения — это поиск файлов с бинарными образами BIOS старых компьютеров, в том числе и образы ROM от различных устройств, в первую очередь видеокарт. Из лицензионных соображений авторы PCem их не распространяют вместе с программой, поэтому их приходится искать где-то на просторах интернета.

За основу можно взять архив с прошивками для 11-ой версии:

https://sites.google.com/site/zretrofiles/pliki/PCemV11Win.zip

Затем скачать архив с ROM с проекта 86Box, который менее щепетилен в отношении прав на BIOS-ы машин 20-летней давности. По ссылке https://emulation.miraheze.org/wiki/86Box в разделе Downloads качаем ROM для виртуальных машин. Из этих двух архивов результат из архивной папки roms/machines следует поместить в папку ~/.pcem/roms и ~/.pcem/nvr соответственно. Кроме того, из roms/video нужные BIOS от видеоплат надо поместить в корень папки roms, вынув их из поддиректорий с названиями видео.

В Windows-версии их надо поместить в папки roms и nvr основной программы.

Если какие-то нужные файлы, тем не менее, не найдены, можно их поискать следующим образом. Например, найдём файл для машины roms/dtk. Находим в исходных текстах файл mem.c, а в нём находим конструкцию вида:

case ROM_DTKXT:

f=romfopen("dtk/dtk_erso_2.42_2764.bin","rb");

Отсюда ясно, что нам нужен файл dtk_erso_2.42_2764.bin, вводим в «Гугле»/«Яндексе» это имя файла и находим, откуда скачать нужный файлик. Кладём его в папку roms/dtk.

Многие файлы прошивок ROM для видеоадаптеров можно найти на сайте http://www.vgamuseum.info/

Пользователям Linux-версии эмулятора необходимо не забывать, что в Linux, в отличие от Windows, в файловой системе учитывается регистр букв, и поэтому, если файл с BIOS представлен в верхнем регистре, его надо перевести в нижний, иначе эмулятор его не увидит.

Но будем надеяться, что вы успешно выполнили квест с поиском нужных файлов и всё установили. Запускаем эмулятор. В появившемся окошке есть кнопка конфигурирования новой машины.  Давайте для начала запустим оригинальный IBM PC и полюбуемся на его встроенный BASIC.

В окне Configure PCem на вкладке, изображающей материнскую плату, выбираем в строчке Machine [8088] IBM PC, в строчке с CPU – 8088/4.77, Memory 64KB (самые первые PC по умолчанию имели отнюдь не 640 КБ). На вкладке с монитором выбираем MDA и 8-bit, на вкладке с дисками выбираем FDD1 – пятидюймовый 360 КБ, хотя это и не вполне аутентично, на первых «писишках» стояли дисководы, рассчитанные на 160 КБ дискеты. Односторонние. Ok. Окно закрывается, и в списке компьютеров мы видим «ibm pc» — так мы назвали эту машину. Нажимаем кнопку запуска. Компьютер попытается загрузиться с дискеты, и, не обнаружив её, запустит встроенный в BIOS язык Бейсик.


Сразу на всякий случай приведу полезные клавиши, используемые при работе эмулятора:

Ctrl+Alt+PgDn — переключение в полноэкран и обратно;

Ctrl+Alt+PgUp — screenshot.

Нажатие mouse1+3 или среднего колеса мыши отпускает «захваченный» эмулятором курсор мыши. По нажатию правой кнопки мыши в «отпущенном» состоянии появляется небольшое меню, в котором можно поменять образ дискеты или CD-ROM, пропорции экрана и масштаб для видео.

Сейчас попробуем сконструировать и запустить компьютер посерьёзнее. Пусть это будет 386-й с 4 МБ, с винчестером 120 МБ, со звуковой платой Sound Blaster AWE32. Установим на этот компьютер Windows 3.1

Конфигурируем новый компьютер.


На вкладке Audio выбираем Sound Blaster AWE32. На вкладке с дисками остановимся подробнее.


Первоначально хотелось выбрать аутентичный MFM-винчестер, но оказалось, что такая конфигурация несовместима с наличием CD-ROM. Который хотелось бы иметь, чтобы не копировать файлы через дискету.  К сожалению, эмулятор «не понимает», что теоретически он мог быть подключен через звуковую плату. В результате довольно реалистично при загрузке выводится (BIOS-ом компьютера) сообщение об ошибке в контроллере дисков. Вопрос решился выбором позиции [IDE] XTIDE (AT), что означает наличие дополнительной ISA-платы с IDE-интерфейсом. Следует не забыть выставить параметры диска.


Как можно видеть, для жёсткого диска необходимо использовать какой-то файл с его образом. В Linux проще всего это сделать, просто создав вначале пустой файл нужного размера (120 МБ). Например, командой:

dd if=/dev/zero of=at386dx33.img bs=1024 count=122880

Для работы с «новыми» дискетами придётся сначала по правой кнопке мыши в меню Disc  создать чистую дискету (или с помощью dd), затем «вставить» и отформатировать её (или использовать mkfs), затем смонтировать mount -o loop и записать туда данные.


Для видео выберем Trident TVGA8900D.


Если мы сейчас попытаемся загрузиться, обнаружим, что есть какие-то ошибки. Придётся зайти в BIOS свежесозданного компьютера и установить там правильные параметры для жёсткого диска.


Теперь мы найдём образ загрузочной дискеты и установим Windows 3.1. Всё это можно найти на сайте http://old-dos.ru/  Рекомендую использовать загрузочный образ MS-DOS 6.22 с поддержкой CD-ROM, впрочем, дальнейшая установка совершенно типичная для таких компьютеров, всё отличие только в том, что вместо физических дискет и компакт-дисков используются их образы.  Эмулятор понимает простые *.img-образы дискет и *.iso-образы компакт-дисков.


Драйвера для SB AWE32 и для Trident 8900 советую брать с сайта old-dos.ru  Для видео там не совсем подходящая версия, без буквы D, из-за чего отсутствуют некоторые режимы с True Color, но мне не удалось поставить правильный драйвер, возникали какие-то глюки при установке.

В целом система работает, звук есть, видео нормально установилось в 1024x768x256c.


В MS-DOS можно поиграть в DOOM, для нормальной работы звуковой карты требуется выставить в autoexec.bat переменную:

SET BLASTER = A220 I7 D1 H5


Посмотрим теперь, что покажут программы тестирования, насколько точно эмуляция соответствует 386DX-33.

Судя по всему, неплохо, что можно увидеть на этих скриншотах:


Заключение

С эмулятором PCem можно долго развлекаться, «собирая» различные конфигурации и пытаясь на них запустить старое ПО.


MMichael


### Издеваемся над Amiga OFS


Мы любим разрушать что-нибудь... Эта фраза прозвучала в телепередаче «Американский чоппер». В одной из серий, если память не подводит, семейка Тэйтлов танком расплющила легковушку!!! Что может быть круче?! Но в виртуальном мире все наоборот. Разбить кувалдой жёсткий диск или, на худой конец, отформатировать его – проще простого. А вот обхитрить файловую систему посложнее будет.

Тему издевательств над FAT раскрыл uav1606 в номере 17 журнала. Так что возьмёмся за какую-нибудь другую ФС. Достаточно старую (чтобы попасть в категорию downgrade), довольно простую (чтобы сломать её оказалось по силам) и в то же время необычную. Amiga OFS (Old File System) – идеальный кандидат.


Планируем


Все приключения будут происходить в эмуляторе FS-UAE Amiga Emulator и Linux (Linux Mint 18.3 Sylvia 64bit).

Поиск в Интернете по фразе «amiga ofs format» выводит на статью The .ADF (Amiga Disk File) format FAQ от Laurent Clevy. А там и до ADFlib недалеко – библиотеки, предназначенной для работы с OFS и написанной на языке C.


В целом план такой:


1. «Устанавливаем» Amiga OS в эмуляторе (слово взято в кавычки, потому что этот процесс совсем не похож на привычную установку Windows XP в Virtual Box).

2. Берём образ чистой дискеты.

3. Манипулируем на низком уровне образом дискеты с помощью ADFlib (не выходя из Linux).

4. Подключаем образ и запускаем эмулятор.

5. Проверяем, уже находясь в Amiga OS, привели ли манипуляции к желаемому результату.

6. Повторяем пункты 2-5 до тех пор, пока не добьёмся успеха.


Сразу отметим, что цель создания полноценного окружения Amiga OS не ставится. В рамках статьи вполне хватит командной строки и простейшего файлового менеджера.


Запускаем эмулятор


FS-UAE Amiga Emulator устанавливается в Linux просто: посредством системы управления пакетами. Есть смысл установить также FS-UAE Launcher. FS-UAE Launcher – это утилита с графическим интерфейсом для настройки эмулятора.


Кроме эмулятора, нам понадобятся:


1. Amiga ROM – сам компьютер, т.е. железо, представленное в виде ROM-файла.

2. Kickstart ROM (аналог BIOS'а) – минимально необходимый набор программ для запуска ОС.

3. Образ загрузочного жёсткого диска, содержащий Workbench и прочее ПО, предназначенное для повседневной работы пользователя.


Образ жёсткого диска (System_P96.hdf) был скачан с сайта classicwb.abime.net, а Kickstart – с какого-то форума. К сожалению, готовых сборок вида «эмулятор» + «Amiga ROM» + «Kickstart ROM» + «образ диска» на сайте FS-UAE нет и не предвидится. Что-то там с копирайтами, надо покупать по-хорошему у компании «Amiga Forever»...

Разобраться с интерфейсом FS-UAE Launcher'а несложно, этот этап мы пропустим. Получилась такая конфигурация (сохраняются настройки в каталог $HOME/Documents/FS-UAE/Configurations):


# FS-UAE configuration saved by FS-UAE Launcher

# Last saved: 2018-09-02 14:37:20

[fs-uae]

amiga_model = A1200

floppy_drive_0 = $HOME/Projects/ADFlib/regtests/Dumps/blank.adf

hard_drive_0 = System_P96.hdf

kickstart_file = Kickstart 3.1 (40.069) (A1200) (Commodore) (1993).rom

save_disk = 0

writable_floppy_images = 1


Тут всё более-менее понятно. Но некоторые моменты требуют пояснения:

• floppy_drive_0 = $HOME/Projects/ADFlib/regtests/Dumps/blank.adf – это образ дискеты-полигона для испытаний, его мы берём из тестового набора библиотеки ADFlib;

• writable_floppy_images = 1 – эта опция значительно упрощает жизнь. Дело в том, что эмулятор по умолчанию не трогает файлы образов. Например, мы подключаем образ дискеты, запускаем эмулятор, создаём на дискете каталог, находясь в Amiga OS. Все эти изменения не отражаются в подключенном нами образе, а пишутся в отдельный файл. При последующих запусках эмулятор берёт оригинальный образ, затем накладывает на него «патч». И мы видим в эмуляторе дискету со всеми созданными ранее каталогами и т.п. Этот подход в целом правильный. Но в нашем случае не годится. Ведь «патчи», накладываемые эмулятором, могут оказаться неприменимыми после ручных вмешательств в файл образа. writable_floppy_images = 1 предписывает эмулятору все изменения фиксировать (а стало быть, и считывать их) только в пределах файла образа.

Наконец, после нажатия кнопки Start в FS-UAE Launcher'е, мы наблюдаем процесс загрузки:


Нужно лишь пять раз нажать на кнопку Cancel в окошке «Please insert volume DH1 in any drive», т.к. после каждого нажатия окошко будет появляться снова. :) И один раз кликнуть Cancel в окошке «Intuition is attempting to reset ...» Затем появится Workbench:


Компилируем ADFlib


После того, как ADFlib склонирована из Git-репозитория, можно приступать к работе. Отправной точкой служит скрипт autogen.sh. Его запускаем в первую очередь:


ADFlib $ ./autogen.sh


И получаем сообщения, которые свидетельствуют об отсутствии в системе утилит для сборки библиотеки из исходных текстов (список может отличаться в зависимости от дистрибутива Linux, т.к. в конкретном дистрибутиве часть пакетов может быть установлена по умолчанию):


./autogen.sh: 2: ./autogen.sh: libtoolize: not found

./autogen.sh: 3: ./autogen.sh: aclocal: not found

./autogen.sh: 4: ./autogen.sh: autoconf: not found

./autogen.sh: 5: ./autogen.sh: autoheader: not found

./autogen.sh: 6: ./autogen.sh: automake: not found


Попробуем установить необходимые пакеты, просто перечислив пять утилит из лога, приведённого выше:


ADFlib $ sudo apt-get install    \

libtoolize \

aclocal    \

autoconf   \

autoheader \

automake


И получим в ответ:


Reading package lists... Done

Building dependency tree

Reading state information... Done

E: Unable to locate package libtoolize

E: Unable to locate package aclocal

E: Unable to locate package autoheader


Выкинем ошибочные наименования и проявим немного смекалки (логично, что libtoolize находится в пакете libtool):


ADFlib $ sudo apt-get install  \

autoconf \

automake \

libtool


Снова запустим autogen.sh:


ADFlib $ ./autogen.sh


И получим кучу сообщений:

...

src/Makefile.am:5: warning: source file '$(NATIVE_DIR)/adf_nativ.c' is in a subdirectory,

src/Makefile.am:5: but option 'subdir-objects' is disabled

automake: warning: possible forward-incompatibility.

...

Но ошибок среди них нет, только предупреждения; можно двигаться дальше. Убеждаемся, что в директории с исходниками появился файл configure, и запускаем:


ADFlib $ ./configure


Снова ошибки:

...

configure: error: C++ compiler cannot create executables

See `config.log' for more details


Недолго думая, устанавливаем g++ – компилятор C++ от GNU. Хотя нам С++ вроде бы не нужен... Но, судя по данным GitHub, в ADFlib 95,9% кода написано на С и 0,6% на С++; хоть мало, но есть!


ADFlib $ sudo apt-get install g++


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

Как видим, процесс непростой, Makefile генерируется автоматически: autogen.sh–> configure–>Makefile. А всё из-за портируемости ADFlib: достаточно лишь перегенерировать Makefile и перекомпилировать код под целевую платформу.

Остаётся только выполнить:


ADFlib $ make


Вообще-то, нас не интересуют объектные файлы ADFlib. Что действительно нам понадобится, так это написанные разработчиками библиотеки тестовые программы. Они берут эталонные образы дисков и производят на них операции по созданию файлов, каталогов и пр. Затем проверяют, что элементы были действительно созданы.

Находится всё это добро в подкаталоге regtests:


bash

ADFlib $ tree regtests


regtests/

...

├── Dumps

│   ├── blank.adf

│   ├── links.adf

│   ├── testffs.adf

│   ├── testhd.adf

│   ├── testhd.ami

│   ├── testhd.cmd

│   └── testofs.adf

└── Test

...

├── dir_test2

├── dir_test2.c

...

├── file_test

├── file_test.c

...

├── hd_test

├── hd_test.c

...

├── Makefile

...


Dumps – это коллекция образов дисков. dir_test2.c, file_test.c и т.д. – исходные тексты тестовых программ. А собратья без расширения – автоматически сгенерированные скрипты оболочки (они нужны для того, чтобы тестовые программы было проще вызывать из командной строки).


Программируем


Запустим, к примеру, dir_test2 (это тест создания директорий). Для этого зайдём в каталог regtest/Test и выполним (в качестве аргумента мы указываем образ дискеты, на которой будет производиться тестирование):


ADFlib/regtests/Test $ ./dir_test2 ../Dumps/blank.adf


В результате получим:


Warning <adfReadBootBlock : incorrect checksum>
Name : toto
Type : Floppy Double Density : 880 KBytes
Filesystem : OFS
Free blocks = 1751
Read/Write
created 3/04/1999 19:34:44
last access 3/04/1999 19:34:48,   3/04/1999 19:34:47
Trashcan        2    882  3/04/1999 19:34:47         ----rwed
Trashcan.info   3    883  3/04/1999 19:34:47    1172 ----rw-d
Trashcan        2    882  3/04/1999 19:34:47         ----rwed
dir_1a          2    887  2/09/2018 20:45:18         ----rwed
Trashcan.info  -3    883  3/04/1999 19:34:47    1172 ----rw-d
Trashcan        2    882  3/04/1999 19:34:47         ----rwed
dir_1a          2    887  2/09/2018 20:45:18         ----rwed
dir_5u          2    888  2/09/2018 20:45:18         ----rwed
Trashcan.info  -3    883  3/04/1999 19:34:47    1172 ----rw-d


Как видим, две директории (dir_1a и dir_5u) были успешно созданы.

Теперь всё готово для проведения экспериментов. В некотором смысле демонстрируемый в этой статье подход топорный и неправильный. По-хорошему, нужно было оставить тестовые программы в покое. А по их образу и подобию написать свои. Но на практике тупой способ лучше. :) Да и как мы будем компилировать и запускать наши программы? Ведь Makefile'ы были сгенерированы автоматически, в них чёрт ногу сломит.


Поступим так:


1. Откроем в текстовом редакторе исходник dir_test2.c.

2. Напрограммируем в нём что-нибудь эдакое.

3. Перекомпилируем dir_test2.c (весь проект компилировать уже не понадобится).

4. Запустим скомпилированный тест.

5. Запустим FS-UAE (предварительно подсунув ему модифицированный образ дискеты) и проверим, что получилось.

6. Повторим шаги 2-5 до тех пор, пока не добьёмся желаемого результата.


Склеим несколько команд в одну, позволяющую компилировать тестовую программу (в случае необходимости), возвращать образ дискеты в первоначальное состояние (в «зачистке» полигона помогает система контроля версий) и запускать тест:


ADFlib/regtests/Test $ make     && \

git checkout ../Dumps/blank.adf && \

./dir_test2 ../Dumps/blank.adf


Несколько замечаний по поводу «грязного» кода:

• код специально отформатируем «в высоту», чтобы он лучше помещался в колонки журнала;

• мы не будем освобождать память, выделенную под служебные структуры данных, т.к. наши тесты настолько быстро запускаются и отрабатывают, что память не успевает исчерпываться, а по завершении тестовой программы она всё равно целиком возвращается ОС;

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


Главное, что необходимо сделать в конце всех манипуляций – зафиксировать изменения в образе дискеты посредством библиотечных процедур вроде adfWriteEntryBlock().


Два каталога с одинаковым именем


Пожалуй, ни в одной ОС нельзя создать два одноимённых каталога. Но низкоуровневые манипуляции с файловой системой позволяют вытворить эту штуку.

Создадим в корневом каталоге дискеты директорию mydir, а в ней – ещё одну mydir. Затем «отредактируем» заголовок директории. Имена переменных выбраны следующим образом:


dir_name – имя каталога (всегда равно mydir);

dir_hash – хэш имени (для строки mydir равен 30);

mydir_sector и mydir_entry – номер сектора и заголовок каталога соответственно;

mydir_nested_sector – номер сектора вложенного каталога.


// Make two directories with

// the same name possible.

if (dir_hash < HT_SIZE - 1) {

mydir_entry ->

hashTable[dir_hash + 1] =

mydir_nested_sector;

} else {

mydir_entry ->

hashTable[dir_hash - 1] =

mydir_nested_sector;

}

//


Заголовок каталога (наверное, это наиболее подходящий перевод для «Entry»), наряду с контрольной суммой, сведениями о времени модификации и т.п., содержит хэш-таблицу имён находящихся в каталоге элементов, таких как файлы и другие каталоги. Функция вычисления хэша простая (см. функцию adfGetHashValue() в src/adf_dir.c), область её значений лежит в отрезке от 1 до 71 (включительно). Таблица реализована в виде одномерного массива. В качестве индекса выступает хэш имени, а в качестве значения – номер сектора заголовка элемента, т.е. каталога или файла.

Когда OFS читает содержимое каталога, просматривается хэш-таблица. Если значение ячейки (т.е. номер сектора, по которому располагается заголовок) равно нулю, такая ячейка игнорируется. В противном случае OFS делает шажок вперёд и считывает сведения о файле/подкаталоге (номера сектора достаточно для однозначной идентификации).

Очевидно, что если каталог содержит всего один подкаталог, то в его хэш-таблице значения всех ячеек будут равны нулю, кроме одной. Поэтому добавление в таблицу постороннего элемента приводит к появлению в листинге каталога-близнеца:


В файловом менеджере аналогичная ситуация:


Бесконечный листинг каталога


Размер хэш-таблицы невелик. А длинный хэш сводит на нет все её преимущества. Так что возникновение коллизий – не такое уж редкое явление. Разные строки, например, dir_1a и dir_5u, имеют одинаковый хэш. Если хэш добавляемого элемента в таблице существует, возникает коллизия, и элемент добавляется в связный список, который, наряду с таблицей, хранится в заголовке каталога.

«Замкнём» список элементов с одинаковым хэшем в каталоге на сам этот каталог:


// Make "infinite" listing

// of directory.

mydir_entry ->

nextSameHash =

mydir_sector;


mydir_entry ->

hashTable[dir_hash] =

mydir_sector;

//


Важно, что записать себя самого в хэш-таблицу тоже нужно. Иначе «бесконечный» листинг не заработает.

В командной строке листинг будет печататься ооочень долго (в течение 10 минут точно):


А в файловом менеджере вообще ничего не отобразится (видимо, содержимое каталога отрисовывается только после получения полного списка элементов).


Рекурсивный каталог


Ну а теперь самое интересное. Возможно ли сделать каталог, в который заходишь снова и снова? Попробуем.

Первая мысль, которая приходит в голову – взять на вооружение приём из предыдущего параграфа, а именно:


mydir_entry ->

hashTable[dir_hash] =

mydir_sector;


Но этот приём не заработает. Листинг каталога окажется пустым. Из-за чего – непонятно. Наверное, OFS обрабатывает такую «цикличность» особым образом...

Но обхитрить OFS возможно!


// Make circular directory

// (link the directory to itself)

if (dir_hash < HT_SIZE - 1)

{

mydir_entry ->

hashTable[dir_hash + 1] =

mydir_nested_sector;

}

else

{

mydir_entry ->

hashTable[dir_hash - 1] =

mydir_nested_sector;

}

mydir_entry ->

hashTable[dir_hash] =

mydir_sector;

//


Как это действительно работает, остаётся только гадать. Скорее всего, в листинг попадает «легальный» подкаталог (тот факт, что он находится в хэш-таблице «не по адресу», OFS не смущает). А исходный каталог отбрасывается (о «наивном» зацикливании говорилось абзацем выше). Но при попытке войти в подкаталог (посредством команды CD или двойного щелчка в файловом менеджере), OFS попадает в исходный каталог, ведь он находится в хэш-таблице как раз по правильному адресу:


В файловом менеджере всё прозаичнее – каталог выглядит неоткрываемым, т.е. сколько по нему не щёлкай мышью, ничего не меняется.

К сожалению, добиться полного эффекта рекурсии (когда приглашение командной строки всё время удлиняется и принимает вид toto:mydir/mydir/mydir/mydir/mydir ...) не получилось.

Но у командной строки Amiga есть «плюшка» в виде автодополнения имён. Если набрать CD, пробел, затем пару начальных букв каталога, например, my, затем нажать Tab, то имя дополнится до mydir. Повторное нажатие Tab выведет имя подкаталога (при его наличии). В случае с нашим рекурсивным каталогом, каждое нажатие Tab добавляет mydir. И так до бесконечности:


К слову, из приведённого выше скриншота видно, что длинный путь воспринимается командами CD и DIR вполне нормально. Но всё равно мы пришли туда, откуда вышли. :)

При попытке удалить рекурсивный каталог OFS приходит в замешательство. Естественно, удалить каталог, который содержит вложенный, одной лишь командой DELETE нельзя. Нужно задействовать переключатель ALL, который предписывает рекурсивное удаление (для верности добавим FORCE). Да, директория не удаляется:


Но всё же придётся признать, что Amiga – качественная и продвинутая ОС. Подкрепим это утверждение примером. У команды DIR есть опция ALL, которая позволяет получить листинг каталога и всех содержащихся в нём элементов. Что вы думаете? Она обнаруживает наш трюк! И говорит об этом прямым текстом:


И, по традиции, предупреждение


Всё вышеизложенное рассказано исключительно для понимания работы механизмов Amiga OFS, а ни в коем случае не для того, чтобы кому‐то навредить.

Исходный код примеров можно найти на GitHub: dir_test2.c.


flaz14


### 1C для домашнего пользователя


Фирма 1С известна, в первую очередь, своими продуктами «Бухгалтерия», «Предприятие» и «Торговля и склад». Для домашних пользователей, в первую очередь, предназначены всевозможные репетиторы, а также издания игр. Но сегодняшняя статья не об этом. Одним из выпускаемых компанией продуктов является программа учёта домашних финансов «1С Деньги» – насколько она известна и популярна, автор судить не берётся – домашние бухгалтерии у нас вообще не очень популярны, но, при этом, на «Авито» можно встретить «Деньги» версии 7.7 и 8.0 – а вот «Декарта» так просто не найдёшь. ☺ В этой же статье речь пойдёт о версии данной программы для Windows 3.1 – «1С Деньги 1.2».

Программу можно взять на сайте Old-dos: http://old-dos.ru/dl.php?id=18354. Поставилась программа без проблем – она не стала спрашивать серийного номера, которого, собственно, и не было среди дискет, задавать каверзные вопросы на знание руководства пользователя, чем грешил Stylus, а просто спросила, как звать пользователя и... поставилась.

Собственно, при установке, программа создаёт группу в диспетчере программ, где находится ярлык для запуска самой программы и ярлык электронного руководства. При запуске же (с относительно слабым компьютером, возможно, придётся подождать и посмотреть на симпатичную «заставку» с кошельком) открывается довольно красивое главное окно (см. рис. 1).


Рис. 1. Главное окно программы – выглядит достаточно симпатично, но ничего не отражает


Обычно бухгалтерская программа – даже для домашнего пользования – сразу же выводит таблицу или счетов, или же общего движения средств по всем счетам. Как видим, здесь такого нет. Зато кнопки всех операций программы выведены на панель инструментов:

• добавить запись о поступлениях;

• добавить запись о расходах;

• указать сведения об обмене валют;

• просмотреть операции по счетам;

• отметить операции с долгами – берём в долг, даём в долг – две отдельных кнопки;

• учёт долгов;

• работа со счетами.

Несмотря на красочное оформление, интуитивно понятно назначение только двух первых кнопок. Однако, прежде чем заносить сведения о доходах и расходах, нам всё равно надо будет создать счета в соответствующем диалоге (см. рис. 2). Его можно открыть нажатием кнопки с книжкой (рядом с кнопкой распечатки отчёта) или же командой Учет->Счета.

Автору такая команда показалась более интуитивно понятной.


Рис. 2. Диалог работы со счетами


В данном диалоге мы нажимаем кнопку «Нов. счет» – крайняя левая на нижней панели инструментов – и открываем уже действительно диалог добавления нового счёта (см. рис. 3).


Рис. 3. Диалог добавления нового счёта


В данном диалоге необходимо выбрать тип счёта – программа предоставляет достаточно обширный список – автор бы сам придумал максимум три типа, а тут и банковский счёт (причём, есть просто счёт, а есть накопительный), и кредитная карта, и, конечно же, наличные, кредит, долг, а отдельно – имущество и ценные бумаги. Да уж, вот когда понимаешь, что капитал – не только деньги, но и вещи, недвижимость, станки и даже машина. ☺

Как только вы нажмёте кнопку «Выбрать», откроется диалог настройки счёта (рис. 4), где вам нужно будет указать валюту, дату открытия, начальную сумму, а также неплохо бы указать и название.


Рис. 4. Диалог настройки созданного счёта


После нажатия кнопки «Создать», счёт появится в списке. При этом каждому типу счёта, как видно, соответствует своя картинка.

Теперь, когда у нас созданы счета, можно заносить информацию об операциях уже указанными выше кнопками, отвечающими за добавления доходов и расходов. При нажатии крайней левой кнопки на основной панели управления (добавление доходов), запустится соответствующий мастер (см. рис. 5-7), который попросит ввести вас сумму, которая будет добавлена, а потом – указать счёт, на которой эта сумма придёт.


Рис. 5. Диалог добавления нового поступления на счёт. Интересно, что внизу выводятся сообщения программы со смайликом. На данный момент программа считает, что мы вносим 0 руб. – сумма обновится только, когда мы щёлкнем на другой элемент диалогового окна


Рис. 6. Здесь уже программа поняла, что мы хотим внести 100 руб., и ничего не имеет против


Рис. 7. А вот отрицательное число вызывает требование убрать минус


После нажатия кнопки «Далее» – в случае корректной суммы она будет доступна – мы попадаём на второй шаг, где необходимо выбрать счёт, куда придут деньги.


Рис. 8. Выбор счёта, куда придут деньги


На третьем шаге программа выведет на экран текст, где подробно опишет, какую операцию мы хотим произвести. Собственно, этот шаг можно пропустить, нажав кнопку «Утверждаю» ещё на предыдущем этапе, но можно прочитать и подтвердить или отменить действие сейчас.


Рис. 9. Третий шаг – программа рассказывает, что собирается сделать, и в вашей воле утвердить операцию или же отменить


Добавление расходов соседней кнопкой запускает такой же мастер, только теперь будет регистрироваться покупка (см. рис. 10).


Рис. 10. Собственно, если категории доходов могли вызвать вопросы, то категории расходов знакомы каждому ☺


На втором шаге мы выбираем счёт для списания и добавляем операцию в список.

Но как теперь просмотреть все наши записи? Один из вариантов – вызов простого учёта по кнопке справа от значка доллара (см. рис.11) – на экране будут выведены операции по счёту в хронологическом порядке.


Рис. 11. Список операций со счетами с указанием даты и суммы – то, что любая другая программа выводит в основном окне


Но это ещё не всё. Как и «Декарт», программа имеет достаточно неплохие инструменты отчётности, доступные в выпадающем меню «Отчеты». Здесь есть диаграмма (см. рис. 12), табличный отчёт, графики и диаграммы динамики благосостояния. И всё это прорисовано не менее красиво, чем в «Декарте».


Рис. 12. Диаграмма распределения денег по счетам – разве что хотелось бы не только оттенков жёлтого ☺


Ещё один инструмент программы – планирование. Я так понял, что программа позволяет планировать как покупки, так и погашения по кредитам, добавлять напоминалки, что, думаю, кому-то тоже будет полезно, правда, сам всегда пользовался подобными программами именно для учёта текущего состояния дел, а не планирования. Хотя, может быть, и это стоило бы делать. ☺


В заключение стоило бы сказать, что программа показалась автору весьма симпатичной, умелой и достаточно шустрой. Самое интересное, в своё время попадалась статья, где программа критиковалась за большое количество специфической для бухучёта лексики. Как знать, или программисты пошли навстречу простому пользователю, и версия программы, которая описывается в этой статье, уже была подредактирована, либо бухгалтерская терминология настолько въелась в повседневную речь, что мы её уже перестали замечать и более-менее сносно понимаем.


Андрей Шаронов (Andrei88)


### Просто добавь 3D


О ремейках старых игр в журнале писали неоднократно. Были это и просто стилизации под аркады для DOS, имитирующие CGA-расцветку и выпуклый монитор, были обычные ремейки игр с восьмибитных платформ под Windows, и необычные, но под Windows 3.x (игры от Nikita). В этот же раз разговор пойдёт, как видно из названия, о трёхмерных ремейках ряда классических игр, выполненных компанией AxySoft. Однако данные игры порадуют даунгрейдера не только тем, что являются ремейками классических игр, но и своей нетребовательностью. Разработанные в начале 2000-х игры прекрасно идут на компьютерах под управлением Windows 98. У автора каждая игра прекрасно работала на компьютере с процессором AMD K6-2 500 МГц с 60 МБ ОЗУ (странный объём объясняется тем, что 4 мегабайта откроила себе встроенная видеокарточка, а автор посчитал планку 64 МБ более аутентичной и наотрез отказался  ставить 128 ☺). Единственное требование – наличие трёхмерного ускорителя – абы какого. Главное, чтобы ваша видеокарта имела средства работы с DirectX – даже встроенная видеокарта от SiS на компьютере автора прекрасно справилась с задачей. Но попытка запустить AirXonix на нетбуке, где поддержка трёхмерного ускорения не предусмотрена вообще, успехом не увенчалась – в программной отрисовке игра дико тормозила. Поэтому лучше лишний раз проверить, насколько хорошо ваша видеокарточка дружит с DirectX, а, следовательно, и с игрой.

В некоторых играх это можно увидеть в диалоге настроек. Например, вот так это выглядит в помянутой выше игре AirXonix: на рис. 1 показан вариант с программной отрисовкой, на рис. 2 – с использованием аппаратных средств видеокарты.


Рис. 1. Используется программная отрисовка (см. надпись в верхней части окна)


Рис. 2. Используются аппаратные возможности (пусть и не выдающиеся) видеокарты


Примерно такие же средства конфигурирования имеют другие игры, по умолчанию же каждая игра запускается в режиме поддержки аппаратного ускорения, если таковое возможно.

Демонстрационные версии игр – имеющие определенные ограничения, но всё равно интересные (а автор знакомился с ними именно в таком виде), можно скачать со странички разработчика по адресу http://www.axysoft.com/download.htm, а игру TetRize (последнюю версию 3.0) – по адресу http://www.axysoft.com/tetrize.htm.

В настоящей статье автор выбрал для описания только несколько игр – собственно, многолетнее знакомство вообще ограничивалось только игрой AirXonix, однако, думается, что оставленные за кадром игры покажутся читателям не менее интересными и украсят как старые, так и новые компьютеры.


Разделяй и властвуй


Как уже догадался читатель, в первую очередь речь пойдёт об игре, с которой не только началось знакомство с серией, но и с миром компьютерных игр вообще. Были, конечно же, среди таких игр и первый Doom, и тетрис из комплекта игр Microsoft, и другой его собрат, как ни странно, тоже для Windows 3.x – Wintris, и Unreal Tournament... Но была и вот такая достаточно скромная, но захватывающая игрушка_– AirXonix. Пожалуй, самый большой её недостаток, по мнению автора, то, что игра не под DOS – стильно бы смотрелась. Но зато есть двумерные аналоги практически для любой операционной системы.

Собственно, по полю катаются шарики. За границы поля выкатиться они не могут, потому, столкнувшись с границей, откатываются назад. Вы управляете летающим волчком, который может прокладывать новые границы, чем, соответственно, отбирать свободное пространство у катающегося шарика. Ваша задача –  ограничить свободное пространство до определённого предела, после чего вы попадаёте на следующий уровень.

Как это выглядит на экране, вы можете увидеть на рис. 3.


Рис. 3. AirXonix – игровой момент


Но не так всё просто. Во-первых, игра идёт на время – на выполнение уровня даётся минута. Автор иногда терял жизнь именно из-за того, что слишком долго возился с уровнем, собирая, например, бонусы. Кроме того, если волчок не закончил прокладку новой границы, а шарик с ней уже столкнулся, граница начинает разрушаться – «волна разрушения» несётся от «эпицентра удара» в обе стороны и, не дай бог, доберётся до волчка – тоже минус жизнь. Однако как только вы достигнете «земли» – т.е. проложенной ранее границы, разрушения прекратятся, и остатки ваших трудов перестанут разрушаться – по крайней мере, сами собой. На некоторых уровнях шарики сами могут потихоньку разрушать границы и высвобождать новые пространства. Кстати, ещё забыл отметить – ограничивать перемещения шариков вам будут мешать катающиеся по полю мины – если попадёте под мину... думаю, понятно. ☺

Какие же есть бонусы? Во-первых, очки – значок доллара; во-вторых, жизни – сердце; в-третьих, дополнительное время – часы; в-чётвертых (а заодно и в-пятых), ускорение и замедление – ускоряется волчок, замедляются шарики. Последним бонусом является знак вопроса – тут может быть что угодно – любой из перечисленных бонусов, темнота, приближение камеры к волчку, раскачивание поля, замедление движения волчка, а несколько раз автор просто терял жизнь – в общем, уж тут точно не соскучишься.

В демонстрационной версии, которую можно взять с сайта, доступно семь уровней. В принципе, этого достаточно, чтобы и оценить игру, и поиграть под настроение. Автор несколько лет играет в неё именно в таком режиме – прошёл семь уровней, и красота – и то не всегда получается ☺.

Что до фразы, вынесенной в подзаголовок, так это одна из стратегий игры – автору кажется, что гораздо эффективней сперва огородить каждый шарик в собственное поле, а уж потом потихоньку у каждого отбирать свободное пространство.


Из жизни пресмыкающихся


Собственно, куда более знаменитой является игра Snake – змейка была и в «тетрисе», и в мобильном телефоне, и на компьютерах. На «Денди» даже была трёхмерная вариация на эту тему – Rattle’n’Roll, входившая в состав сборника 7 в 1 (как видите, не только «Чёрный плащ» и «Чудеса на виражах» захватывали обладателей сего картриджа ☺). Увы, ремейка последней игры найти не удалось, зато есть такая игрушка, как AxySnake – здесь вы управляете... собственно, змеёй. Большой, трёхмерной, ползущей змеёй (есть три на выбор) – вы лопаете грибы, яблоки, ягоды, от которых растёте (см. рис. 4). На уровне есть бетонные блоки, которые ограничивают ваше движение, камни, которые вы можете есть, но от этого ничего хорошего не происходит, пень, в который змейка может с размаху удариться головой.

Как легко представить, это ещё не всё. Коварство любой классической змейки в том, что, становясь длиннее, змейка становится более неповоротливой. В данном случае можно также укусить себя за хвост – ничего особо страшного не произойдёт, но потерянную часть живого веса придётся отращивать заново.

Выход с уровня появляется при достижении определённой длины – ключик. Сперва необходимо проглотить его, а потом прорваться к выходу.


Рис. 4. Игровой момент, первый уровень – увы, дальше пройти не получилось


Почему прорваться? А вы видели глаза, глядящие из темноты? Так вот эта гадина (мангуст или кто?) стремится выскочить и съесть змейку (см. рис. 5).

Именно она представляет основную проблему и основную опасность при прохождении уровней.


Рис. 5. Упс, съели...


Одним из плюсов игры является то, что нажатие кнопки «Вперёд» может ускорить движение змейки – только так автору удалось пройти один раз первый уровень – змейка давилась камнями, натыкалась на пень, но быстро набрала вес и быстро проскользнула к выходу с уровня.


Тетрис плюс 3D


Попытки сделать трёхмерный тетрис не без успеха предпринимались даже Алексеем Пажитновым. Позже создавались не менее интересные вариации другими программистами. Собственно, идея проста – в трёхмерном тетрисе игрок находится на вершине «стакана» и смотрит в глубину. Поэтому в распоряжении игрока уже три измерения, и он может, соответственно, позиционировать фигуры в двух измерениях, также поворачивать их в двух вертикальных плоскостях. Что тут можно изобрести нового? А ничего! Несмотря на название раздела, игроку даже не придётся иметь дело с трёхмерным тетрисом. AxySoft предлагает просто «пригламуренную» версию классического тетриса, а заодно и такую же версию игры Color Blocks.

В игре TetRize, а именно так называется навороченный ремейк тетриса, нам предлагают три игры – обычный тетрис и две вариации Color Blocks (см. рис. 6). Конечно, можно было бы вздохнуть: «Прокололись в этот раз», и двинуться дальше, но здесь уместен вопрос не «Что?», а «Как?». А сделали очень и очень красиво. Пейзаж на фоне (кстати, если отметить пункт «Dynamic background» в опциях, он ещё анимированным будет), приятные цвета и плавность... Нет, ПЛАВНОСТЬ! Фигурки при повороте покачиваются, линии, подлежащие уничтожению, вылетают – анимация очень приятная.


Рис. 6. Три игры на выбор


Рис. 7. Классический тетрис – ничего нового, но смотрится очень красиво, особенно в движении. Если вся плавность и быстрота сохранятся при процессоре Pentium 133-166 и памяти 32 МБ – просто чудесная игра


К вариациям игры Color Blocks есть всё же претензии – не всегда понятно, жёлтые квадратики или зёленые. Ну и хотелось бы увидеть вариацию игры TETCOLOR, где можно было поворачивать фигурки на манер классического тетриса. Здесь же игра, как писал выше, представляет два варианта Color Blocks – с вертикальными (рис. 8) и горизонтальными (рис. 9) полосками.


Рис. 8 Вариация игры Color Blocks


Рис. 9. Вариация игры Color Blocks с горизонтальными полосками – увы, крутить их тоже не получится


Не обошлось в играх без бонусов. Вам предлагаются дополнительные очки – значок доллара и уничтожение всех фигурок в стакане_– красный кружок с белым крестиком. Воспользоваться бонусом можно только тогда, когда фигурка пройдёт по нему своим ходом. Если вы сбросите фигурку пробелом, бонус останется на месте.

К недостаткам игры можно отнести ограничение по времени. Для оценки игры и принятия решения, покупать или нет полную версию, пользователю даётся ровно час. На сайте Old-dos доступна для скачивания более ранняя версия, лишенная такого недостатка http://old-dos.ru/dl.php?id=18264.

Вообще, тема тетриса и его вариаций достойна отдельной и очень большой статьи, но всё равно радостно, что творение Пажитнова не забывают и тащат практически в любой сборник ремейков.

Вариации на тему PacMan’a

Куда уж без него? Как и предыдущие игры (разве что Xonix не такая популярная), PacMan является легендой. Автор мучил эту игру на «Денди» – игра была, как легко догадаться, на одном из картриджей «9999 в 1». Компания AxySoft посвятила игре целых три разработки разной степени вариативности.

Одной из наиболее близких и чем-то перекликающихся с AirXonix игр является Alonix. Сходство заметно даже по ярлыку – у «главного героя» тоже пропеллер, правда, трёхлопастной. Удирать по лабиринту игроку предстоит от подобий медуз, по крайней мере, у автора противники вызывали именно такую ассоциацию, и других вертушек.

Задача наша проста – в лабиринте собрать все точки. Периодически на уровне возникают бонусы. Увы, лопать своих врагов мы не можем, но зато можно прибавить скорости (значок молнии), получить дополнительные очки (да, доллар), получить дополнительную жизнь.


Рис. 10. Alonix – игровой момент


Следующая, близкая к PacMan’у игра – это SkyMaze – здесь мы управляем… можно сказать, головастиком, а можно – колобком с ножками и в кепке. Задача такая же – собрать все точки в лабиринте. На первом уровне мы увёртываемся от насекомых, на втором – от каких-то таких же колобков-головастиков, только зубастых и зелёных. Бонусов на уровне куча – в основном очки, время, на втором уровне – заморозка противников и, конечно же, новые жизни. Чего ещё нужно для сражения с противниками?

Однако главным противником будут не насекомые, а вы сами, вернее, не особо поддающийся управлению персонаж. Бежит по прямой он быстро, а вот повернуть – не всегда получается.


Рис. 11. SkyMaze – так порой хочется крикнуть: «Баранкин, не будь идиотом!» – особенно на первом уровне


Последняя игра, которую бы хотелось рассмотреть – это MoneyMania. Здесь наш герой собирает не какие-то точки, крошки или чего подобное, а вполне себе натуральные монеты. Видимо, серебряные. Сам же герой – голова римского воина – прям какой-то звёздный легионер, собирающий серебро на летящей среди звёзд платформе... Трудно назвать как-то иначе то, что творится на экране (см. рис. 12).


Рис. 12. Айн-цвай, звёздный... лыгыонэр!


Как и в других играх, собирать монеты нам будут мешать. В этот раз какие-то летающие тарелки (а что ещё может быть среди звёзд?). Кстати, пролетающие на фоне астероиды, хоть и напрягают игрока, на деле никак не влияют на игровой процесс.

Однако игра достаточно сильно отличается от PacMan’a  и от предыдущих игр. Здесь враги не ставят целью преследовать игрока. Просто двигаются по определенной траектории, которую можно без особого труда понять и приспособиться. Кроме того, на уровне есть бомбы, которые можно толкать – в том числе во врагов. Правда, при столкновении со «стенкой лабиринта» такая бомба также взрывается, так что стоит смотреть, куда вы её собираетесь толкнуть. При этом, рано или поздно, ваши противники снова вернутся на уровень. Увы, про бомбы такое сказать не могу. Среди бонусов попадаются, в основном, ускорение и дополнительное время. Новые жизни автор не увидел, хотя, должны всё же быть.


Заключение


В конце следовало бы написать, что игры оставили очень приятное впечатление – как красотой, интересностью, нетребовательностью к ресурсам компьютера и т.д. В принципе, всё это верно – до последней буквы. Но всё же осадок остался.

Как успели заметить читатели, игры относятся к условно-бесплатным, т.е. shareware. Стоимость одной такой игры – 14$. Конечно же, скачанные игры имеют определённые ограничения. Какие-то не пускают на более сложные уровни, как AirXonix, какие-то обещают дополнительные бонусы в случае регистрации, как Alonix. Однако TetRize и SkyMaze отсчитывают время. Причём сперва казалось, что игра ограничивает время работы в сутки – поиграл 45 минут и будя – условно-бесплатной игре автор готов простить и получасовую или даже двадцатиминутную возможность. Но здесь на следующий день таймер не сбрасывается.

Хорошо это или плохо, стоит платить разработчикам или нет – решать читателям. Автор же больше всего рад, что полюбившийся ему AirXonix не страдает таким недугом – проходить бесплатные семь уровней можно снова и снова. И уж тем более со звуком – пока что, к сожалению, на компьютере, где установлены игры, звук отсутствует, но это дело поправимое. ☺


Андрей Шаронов (Andrei88)


### Просто разный юмор


___________________________________________________

10 простых шагов захождения на сайты в 2018 году:


1. Открываешь сайт.

2. Отказываешься от пуш-уведомлений.

3. Закрываешь уведомление о кукисах.

4. Закрываешь попап с предложением подписки.

5. Закрываешь онлайн-чат.

6. Закрываешь окошко «Ваш город....?».

7. Закрываешь окошко «Не нашли что искали? Оставьте телефон, мы сразу перезвоним».

8. Закрываешь попап «Подпишитесь на наши соц. сети».

9. Извиняешься перед окружающими за свои громкие маты.

10. Вспоминаешь, зачем открыл сайт.

___________________________________________________


### Над журналом работали


Дизайн/вёрстка/главный редактор – uav1606

Редактор – Вячеслав Рытиков (eu6pc)


Авторы:

Андрей Шаронов (Andrei88)

MMichael

Eddison

Вячеслав Рытиков (eu6pc)

Евгений Злобин

flaz14

uav1606

mr_r0ckers


Интервью:

Евгений Пелега (DrPass)


Сайт журнала:

http://dgmag.in


Раздел журнала на «Железных Призраках Прошлого»:

http://www.phantom.sannata.ru/articles/dgmag/


Группа ВКонтакте:

http://vk.com/dgmag


E–mail главного редактора:

uav16060 [cobaka] mail.ru