# Downgrade #25

uav1606

Журнал "Downgrade" #25

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


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

Этот номер (25-й) в некотором роде юбилейный. В связи с этим в нём два новшества.

Во-первых, мы сделали своеобразную «доску почёта» – фотографии редакции и авторов в слегка пикселизированном виде. За проделанную работу спасибо Вячеславу Рытикову (eu6pc) – он собирал и обрабатывал фото.

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

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

Тем не менее, в этом номере вы можете ознакомиться с результатами конкурса и почитать краткие описания присланных игр.

Тема №25 – «Компьютер и искусство». Конечно, редакцию, скажем так, не завалили статьями по теме номера, но в целом их набралось достаточно много – так как тема довольно широкая, думаю, почти каждый найдёт здесь что-то интересное или полезное для себя.

Ещё одна новость – Андрей Шаронов (Andrei88) теперь – помощник редактора. Он очень много сделал (и продолжает делать) для журнала, поэтому, мне кажется, это вполне заслуженно.

Как обычно, если у вас есть какие-то предложения, пожелания, новости, статьи, «письма в редакцию» – присылайте мне на e-mail uav16060 [cobakus] mail.ru

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


uav1606


### Теория Downgrade

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


30 лет антивирусу Aidstest

В 1988 году Дмитрий Лозинский создал первый на просторах СССР антивирус-полифаг– Aidstest. Точнее, изначально он умел отлавливать только один вирус – Vienna-648, но программа обновлялась, добавлялись сигнатуры новых вирусов. Антивирус быстро стал известным – спустя всего два года, в 1990 году, на конференции «Методы и средства защиты от компьютерных вирусов в MS-DOS» он был признан самой популярной антивирусной программой в СССР. Позже распространением Aidstest занималась компания «ДиалогНаука».

В 90-е этот антивирус был постепенно вытеснен Doctor Web’ом, умеющим, в отличие от программы Лозинского, находить также и полиморфные вирусы.

Последняя версия Aidstest была выпущена 27 сентября 1997 года, она умеет находить 1723 вируса.


Умер Александр Тарусов

15 ноября 2018 года в возрасте 46 лет скончался Александр Тарусов (Tarus) – один из администраторов «Полигона Призраков», много сделавший как для «Полигона», так и для downgrade-сообщества в целом, да и просто хороший человек.


Открыты исходники PC/GEOS

PC/GEOS – своеобразная графическая оболочка для DOS, некий упрощённый аналог первых версий Windows. Была разработана в 1990 году компанией GeoWorks.

Текущий владелец PC/GEOS – Blueway Software Works – решил выложить исходные коды этой оболочки в открытый доступ. Скачать их можно здесь:

https://github.com/bluewaysw/pcgeos


25 лет Doom

10 декабря 1993 года состоялся релиз легендарной Doom, ставшей эталоном шутеров от первого лица. Игра была выложена в виде shareware-версии в свободный доступ на FTP (традиционный тогда для id Software способ распространения).

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


Классические PC-игры на экране ТВ

Компания Unit-E анонсировала сбор средств на разработку PC Classic – своеобразной мини-приставки, позволяющей играть в классические DOS-игры на экране современного телевизора.

Если сбор средств завершится успешно, то выпуск PC Classic состоится весной или летом 2019 года.

Видеообзор нового устройства здесь:

https://www.youtube.com/watch?v=2sjbrqR36w4

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

https://unitetechno.com/dt_catalog/pc-classic/

Пока не сообщается, что же за «начинка» внутри устройства.


Умер Пол Аллен

15 октября 2018 в возрасте 65 лет скончался Пол Аллен – один из основателей корпорации Microsoft.

В 1983 году он ушёл из Microsoft, но до 2000-го входил в совет директоров. В 2000-х годах Аллен спонсировал множество различных перспективных проектов, таких как авиационно-космическая система для доставки грузов в космос, строительство телескопа для поиска внеземной жизни и множество других.


LISP исполнилось 60 лет

Язык программирования LISP (LISt Processing language — «язык обработки списков») был разработан Джоном Маккарти на протяжении 1958-1963 годов в рамках исследований по искусственному интеллекту.

Первый вариант языка был создан в октябре 1958 года и работал на IBM 704.

На данный момент это один из старейших используемых по сей день языков программирования высокого уровня.

Статья Джона Маккарти с первоначальным описанием LISP: https://web.archive.org/web/20131010134641/http://www-formal.stanford.edu/jmc/recursive/recursive.html.


В Японии закрывается последний оператор пейджеров

Tokyo Telemessage – последняя японская компания, которая до сих пор обеспечивает пейджинговую связь. Однако когда количество абонентов в 2018 году сократилось до 1500, она была вынуждена объявить о прекращении предоставления пейджинговых услуг. Произойдёт это в сентябре 2019 года.


Doom 2 + симулятор автобуса = ?

Revenant100 aka Marphy Black решил сделать довольно своеобразный гибрид из Doom 2 и, мягко говоря, не очень весёлого симулятора автобуса Desert Bus.

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

Видеообзор получившегося творения:

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

А здесь можно скачать саму карту (можно использовать, например, с GZDoom):

https://www.doomworld.com/forum/topic/102914-revenant-bus-a-doom-2-simulation-map/


20 лет Half-Life

19 ноября 1998 была официально выпущена игра Half-Life – культовый Sci-Fi шутер от Valve, быстро завоевавший сердца миллионов игроков по всему миру.

Многие игровые издания дали ей титул «игры года», также она многократно фигурировала в списках «лучших игр всех времён».

К сожалению, серия прекратила развиваться после выхода в 2007 году Half-Life 2: Episode Two. Но фанаты до сих пор хранят призрачную надежду на выход Half-Life 3.


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

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

uav1606


#### Кибершпионский боевик (книжная полка)


Любят у нас в шпионские боевики ввести этакого крутого хакера, который влёгкую найдёт в сети нужный компьютер, сервер, вход в корпоративную сеть, даже если эта сеть принадлежит ЦРУ/КГБ/ФСБ/СВР/Моссаду, сможет взломать, выкачать данные или же закинуть вирус. Но всё равно, основные приключения выпадают на долю бравых ребят с пистолетами. А если хакер – один из основных действующих лиц, то и ему придётся побегать, попрыгать, а то и пострелять. Редко встретишь персонажа, который больше в кадре работает головой, чем ногами. Ну, дело понятное – кино, экшн. Зато на книжных страницах можно и изобразить историю, где столкнутся два если не гения, то головастых парня и померяются, у кого мозги извилистей, кто хитрее, кто изворотливей, кто изощрённей.

Один из таких рассказов стал частью статьи, напечатанной в журнале «Юный техник» №2 за 1999-й год (ссылка).


Описанная история чем-то напоминает первый полнометражный фильм «Миссия невыполнима» – есть всё – компьютеры, шпионаж с кражей секретных данных, Центральная Европа и... победа Соединённых Штатов, только в этой истории, можно сказать, Лютер Стиккел и Итан Хант поменялись местами, ибо «преступник» был пойман скорее в виртуальном пространстве.

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

Дальше же читателя попытались познакомить с терминологией, но получилось, что в статье достаточно мирные программы обрели достаточно зловещие функции. Сниффер, которым, возможно, многие пользовались, например, чтобы посмотреть, что передаётся по последовательному порту от компьютера устройству и назад, вдруг стал записывать «первые 128 битов данных каждой программы», где обычно прячут пароль. Хотя, может быть, есть деятели, которые снифферами проделывают и такие фокусы. У нас как-то тоже говорили, что так следят за всеми, кто подключается к серверу городского узла связи – к сожалению, там приходилось в окне терминала вбивать ручками логин и пароль – и были разговоры о хитрых программах, которые логины и пароли перехватывают. Про «Демонов» (я считал, что это резидентные программы в NIXах, или не прав?) написано: «Могут открывать коды доступа, ключи к шифрам или другую информацию о зашифрованных данных». Конечно, на дворе 99-й год, да и статья написана по материалам заграничной печати, так что, не будем придираться к интересному чтиву. Благо, несмотря на недостатки, статья произвела впечатление на автора и пятнадцать лет назад, и сейчас ваш покорный слуга с интересом и удовольствием перечитал её. Посему и вам, читатели, желаю приятного чтения.


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


### Downgrade-видео

#### Jackrabbit (2015)


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


Сложно что-либо добавить к аннотации, скопированной с КиноПоиска. Дело даже не в избегании спойлеров. И не в отсутствии толковых отзывов на русском языке. Просто лучше один раз увидеть, чем сто раз услышать/прочитать. А если уж и читать отзывы, то на английском (а ещё лучше – ознакомиться с интервью с создателями фильма). Впрочем, не всем западным зрителям фильм понравился. Но всё же их комментарии более сдержанные, нежели у наших. В Рунете за словом в карман не лезут:


Как будто «Сталкера» смотрел. Все ждал когда начнут кидать гайки. Так и не дождался. Зона – одним словом с заглушкой в LPT-порту. Отстой редкостный.


С другой стороны, не всё так печально, и не все пишут в столь негативном ключе:


У Ридли Скотта в первом Чужом тоже ламповые моники в будущем ). Да, здешняя техника выглядит застарелой. Но в этом тоже есть свой прикол.


Так что эта статья – не обзор, а солянка из личных впечатлений, переводов интервью и всего того, что удалось нарыть на просторах сети. «Зайчик» – это не триллер в чистом виде и не массовое кино из разряда «посмотреть на ночь и забыть». Так что попробуем описать фильм не как вещь, а как явление, как произведение искусства. Тем более, что на самом деле так и есть.


WHERE DID THE RABBIT HOP FROM?


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

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

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

В качестве места съёмок был выбран Остин, штат Техас. Конечно, в родном городе снимать легче, чем где-нибудь на выезде. Тем не менее, съёмки требовали напряжённой работы, передвижений по городу, в том числе пешком – типичная ситуация для малобюджетного фильма. Наверное, ограниченность в финансах вкупе с хорошим знанием местности как раз и помогли создать атмосферу замкнутого мира Шестого Города. В кадре мелькают в основном небольшие улочки, широких видов немного. Но окружение выглядит правдоподобным для антиутопии: покосившиеся телеграфные столбы, жалкие домики на окраине и высотные здания в центре города на фоне всеобщей безысходности и пепельно-серого неба. Стоит отметить также сходство Сектора 6 с Восточным Берлином. А имя «большого брата» – VOPO Technologies – происходит от немецкого volkspolizei. Так называлась национальная полиция, которая шпионила за жителями социалистической части города.


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

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

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

Систематизировать и называть конкретные модели компьютеров муторно. Да и зачем это? В кадрах мелькают иногда «цельные» машины (в том числе ноутбуки) и узнаваемые устройства вроде контроллера NES. Но в основном – самопал какой-то. Один только компьютер Макса, собранный из «тетриса», чего стоит:


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


Затем в течение года фильм редактировался: сводились сцены, добавлялись спецэффекты.

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

Премьера состоялась в 2015 году на кинофестивале Трайбека (Tribeca Film Festival). Затем последовали показы на других фестивалях, появление фильма в стриминговых сервисах Amazon Prime Video, iTunes и т.д. Но на больших экранах картина так и не вышла, равно как и на дисках. Впрочем, к особенностям национальной локализации (читай, пиратства) мы ещё вернемся.


THIS SITE IS HOSTED BY VOPO TECHNOLOGIES


На фильме история не заканчивается. Есть ещё неофициальный сайт, ему посвящённый: jackrabbitfilm.net. Там можно посмотреть трейлер, найти информацию об основных личностях, вовлечённых в создание картины, ознакомиться с подробным списком кинофестивалей, на которых презентовали фильм, поиграть в аркадные игры, не выходя из браузера. Правда, видеть на веб-один-точка-ноль-сайте ссылки на iTunes и группы в социальных сетях довольно забавно. :)


Остановимся подробнее на играх.


TO THE MAXX! – гонки по пустыне на машине Макса с собиранием дискет.

NIGHT PATROL – что-то вроде симулятора полёта на вертолёте или дроне и стрельбы с него. Тут мы играем за плохих парней. Правда, попасть в цель с первого раза трудновато – прицел качается.

RADIO COMMAND – вот здесь стрелять повеселее будет. Да и боремся мы за справедливость.

HOT COFFEE – почувствуйте себя винтиком в корпоративной машине и будьте готовым оказаться на улице. Потому что наливать молоко в чашки непросто, а клиенты очень нетерпеливые.

COVER OF DARKNESS – вариация Pac-Man'а, только во вселенной «Кролика». Сразу вспоминаются сцены комендантского часа из фильма.

Наконец, JACKRABBIT: THE GAME – квест. Заходите, если желаете заняться взломом на компьютере Макса (знание английского языка приветствуется).

Понятно, что перечисленные выше игры не настолько увлекательны, чтобы скоротать вечер. Но сделаны они с душой. Графика, звуковые эффекты, музыка, управление – всё как надо, настоящий олдскул. А обложка RADIO COMMAND – это нечто! Очень аутентично она выглядит:


THE END

Не всё американское кино выходит из производственных цехов Голливуда. Самобытных фильмов гораздо больше, чем кажется. Одни получше, другие похуже. Но «Кролик Джек» заслуживает внимания уже просто потому, что он доверху завален устаревшими компьютерами.

А вообще, электронные штуковины, равно как и активная социализация посредством Сети и новомодных технологий – не самое главное в жизни.


flaz14


P. S. 1: ОСОБЕННОСТИ НАЦИОНАЛЬНОЙ ЛОКАЛИЗАЦИИ

«Кролик Джек» (другое название – «Зайчик», оригинальное – «Jackrabbit») официально на русский язык не озвучивался. Впрочем, любительский перевод неплохой: голосов несколько, эмоции выдержаны, нелепые реплики отсутствуют. Правда, реклама выбивает из колеи. А качество видео... Неизвестно, как оно сжато-пережато, но контуры объектов (даже неподвижных) шевелятся! Причём везде картинка одна и та же. Т.е. скачиваете вы торрент мегабайт на 800 (заявлены 720p) или даже на полторы тысячи мегабайт, открываете, а там от силы 320 точек по горизонтали. Зато бесплатно. :) Но остаётся с грустью признать, что настоящих фанатов «Зайчика» немного в Рунете. Иначе кто-нибудь обязательно бы свёл лицензионное видео и русскую озвучку воедино. Будем надеяться, что в будущем такой герой появится.


P. S. 2: СПИСОК ИНТЕРВЬЮ НА АНГЛИЙСКОМ

Jackrabbit Press Notes

A Conversation with Carleton Ranney

Inside the Film Jackrabbit

Tribeca’15 Interview: "JACKRABBIT" Director Carleton Ranney


#### Этот страшный искусственный интеллект


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

Этой теме посвящены целых три эпизода сериала (перевод Википедии):

• Дух из машины (Ghost in the Machine) – Сезон 1, Эпизод 6;

• Код для уничтожения (Kill Switch) – Сезон 5, Эпизод 11;

• Шутер от первого лица (First person shooter) – Сезон 11, Эпизод 13.

В том или ином виде в каждой серии Малдеру и Скалли противостоит искусственный интеллект, но с каждым новым эпизодом (и с годами) он становится всё более изощрённым, как по форме, так и по поведению. Но о каждом эпизоде, наверное, стоит поговорить отдельно. (Осторожно, спойлеры!)


Уравняйте меня хотя бы со зверем!


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

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


Рис. 1. Интерфейс управляющей системы «умного дома»


Вот только покупатели, если и были, то недостаточно много, и фирма решила от развития системы отказаться. Вот только дальнейшие действия руководства кажутся несколько странными – руководство решает поставить крест на системе полностью – вплоть до стирания управляющей программы (в фильме обозвана Центральной Операционной Системой) и, возможно, демонтажа оборудования. Возможно, решили сэкономить на обслуживании, возможно, ещё чего. Но факт остаётся фактом – систему, управляющую зданием «Эвриско», надо уничтожить. Так как система, ради удобства использования, видимо, имеет доступ к телефонам, компьютерам, а то ещё и имеет микрофончики в помещении (не для подслушивания разговоров, конечно же – чтобы от людей команды получать), то для неё перспектива кончины не является секретом, и система начинает мстить. Благо, когда в твоём распоряжении вся мощь автоматики здания, дело это, если не тривиальное, то не самое сложное – даже не нужно расставлять изощрённые ловушки – людишки их сами расставили – для своего удобства. Надо только немного иначе воспользоваться исполнительными механизмами. Одна команда – и лифт с ретивым ФБРовцем уже летит на всех парах вниз. Хочется чего-то более изощрённого? Система может даже испортить щиток, чтобы подать высокое напряжение на дверную ручку – так был убит глава компании, решивший уничтожить «умный дом» (с его убийства и начинается серия).


Рис. 2. Когда в твоих руках вся автоматика здания, даже лифт может быть превращён в страшную ловушку


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

С машинами (пусть и не такими умными), при необходимости поступают ещё более радикально и изощрённо – мы не просто уничтожаем их, а потрошим, извлекая из компьютеров органы, которые считаем хорошими, и выкидываем плохие. Сейчас право компьютера работать дальше и приносить радость и пользу людям «отстаивают» энтузиасты-даунгрейдеры, коллекционеры, но что будет, когда сам компьютер скажет: «Я тоже живой! Я тоже осознаю себя! Уравняйте меня хотя бы со зверем!»? Возможно, от своих железных друзей мы услышим много чего интересного – и об обращении, и о софте, который мы запускаем, и даже об апгрейде – посчитает ли компьютер это благом или нет. Но это дело будущего.

...Центральная Операционная Система в фильме в конечном итоге была уничтожена собственным создателем...


На пути к «Матрице»


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

Что было вначале? Главный идеолог и создатель искусственного интеллекта, Дональд Гелман, создал вирус, который уничтожит сбежавший искусственный интеллект? Или же интеллект сперва попытался уничтожить своих создателей? По крайней мере, серия начинается с того, что названный выше Гелман собирается в кафе запустить вирус и уничтожить гуляющую в сети программу искусственного интеллекта. Интеллект, в свою очередь, зовёт в кафе разных бандюганов (потом выяснится, что это не просто бандюки, а натуральные наркодилеры), обещая, что там сидят кинувшие их люди. Ну а потом искусственный интеллект «проявляет сознательность» и зовёт туда же полицию. Гелман гибнет в перестрелке. Остальных членов команды система пытается прикончить более простым и действенным методом – с помощью орбитального лазерного оружия. Правительство не особо распространяется о летающих на орбите лазерных пушках, а уж, тем более, о возможности стрельбы по территории самих Штатов, а не только СССР/России. Зато программа искусственного интеллекта быстро узнает о таких устройствах и успешно их применяет.


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


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


Рис. 4. Захваты, рама, очки виртуальной реальности – и пыточный инструмент готов


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

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

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


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


На дворе двухтысячный год. Технологии достигли немыслимых успехов – если раньше геймер мог рассчитывать увидеть трёхмерный мир по ту сторону «стекла» монитора или, хотя бы, через очки виртуальной реальности, то сейчас практически любая игра даст полноценный мир, где можно будет не просто вертеть головой и нажимать клавиши для перемещения, но и реально бегать и прыгать. Пусть по тёмным коридорам, а не открытым пространствам, но всё равно впечатляет (впечатляет даже «с высот» 2018-го такая игрушка ☺). Но в одном из игровых миров произошло ЧП. Читатель уже догадался – в стрелялке объявился неконтролируемый искусственный интеллект. Если его (хотя, в данном случае, скорее её) сородичам в прошлом требовались дополнительные технические средства для уничтожения неприятных людей, то сейчас, впервые, это можно сделать без использования аппаратных устройств. Девушка, ставшая олицетворением искусственного интеллекта, может убивать сама. Причём убивать по-настоящему. Оружие виртуальное, пули-клинки – тоже. Вот только раны и смерти реальные.


Рис. 5. В этой серии искусственный интеллект обретает не только лицо... но и фигуру


Для расследования такого странного и страшного происшествия и вызывают Малдера и Скалли.

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

Однако, как и предыдущие серии, все закончилось более-менее благополучно – разве что игра была стерта.


«Бонус-трек» – рождение «Одиноких стрелков»


В последних двух эпизодах, описанных в статье, кроме Малдера и Скалли, принимают участие персонажи, которые периодически появляются в сериале – группа хакеров «Одинокие стрелки». Становлению их команды посвящён отдельный эпизод – «Необычные подозреваемые» (Сезон 5, Эпизод 6).

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


Рис. 6. Собственно, «Одинокие стрелки» в сборе


Удивительно, но на задний план отступает даже молодой Малдер – он скорее связующее звено, и серия скорее даёт ответ на вопрос – как «Одинокие стрелки» повстречались с Малдером?

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

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


На этом автор заканчивает своё повествование и желает заинтересовавшимся сериалом или конкретными эпизодами приятного просмотра.


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


### Downgrade-железо

#### По следам IBM


Прочитав в прошлом (24) номере статью Евгения Злобина про фирменные IBM-компьютеры, доставшиеся их институту в качестве гуманитарной помощи, решил и я поделиться с читателями своим опытом общения с «голубым гигантом».

Было это гораздо позже – в начале 2000-х – когда нам достался комплект б/у оборудования из Европы.

Сама техника и соответственно компьютер были более древние, RS/6000  43P-140 предположительно 199х годов.


Собственных фото у меня не сохранилось, в статье используются фото Fabio Bizzy.

Кстати, у него отличная галерея:

http://gallery.bizzi.org/7043-140

Предприятие, где я тогда работал, рассматривало разные варианты обновления технологического оборудования, и среди них было то, что управлялось либо «Макинтошем» G-3, G-4, либо IBM RS/6000.

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

Сердцем машины был процессор IBM PowerPC 604e @ 332MHz.

Душой – операционная система AIX (UNIX от IBM) версии 4.2 с CDE (Common Desktop Environment), примерно такого вида:


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

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

Но на этом красота платы не заканчивалась. Она за сопоставимое время делала тот объём работы (вычислений), который чисто программными средствами у нас выполнял Pentium 4 2800 MHz с максимальным количеством памяти.

Физически связь с оборудованием осуществлялась по проприетарному (СКАЗИподобному) кабелю метров 15 длиной, обеспечивающему хороший и стабильный поток данных. И да, это было не SCSI, т.к. помимо встроенного SCSI на материнской плате, к которому были подключены HDD & CD-ROM,  была ещё отдельная скази-плата LSI, которую я за ненадобностью забрал себе. :-)

Через некоторое время эксплуатации выяснилось, что существует новая версия программного обеспечения (или, точнее сказать, связки ОС + софт, т.к. осуществлялся апгрейд путем установки образа чем-то вроде ACRONISa или GHOSTa), а поставщик сказал, что без увеличения памяти с 256 до 512 МБ об этом даже думать нечего.

Интернет уже был, и я занялся поиском. Результаты были не ахти, и я решил обратиться в саму IBM.

Первое, что я понял – вот что значит работать неторопливо. Процесс переписки и перезвона шёл не один день.

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

Это было несколько тысяч долларов.

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

Но, как писал выше, инет уже был, и в фирме http://www.bestmemory.ru/ мне предложили альтернативу – не то Kingston, не то Transcend. Хоть и за ощутимые, но уже сотни долларов.

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

Сеть была встроенная и вполне справлялась со своими обязанностями принимать файлы извне.

А вот качественный CD-ROM PLEXTOR был не востребован и использовался всего пару раз.

Бэкапы системных настроек делались по старинке на несколько трехдюймовых дискет.

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

Закончу просьбой к тем, у кого были такие компьютеры, откликнуться.


Romanson


### Downgrade-софт

#### PictureMan Pro – мультимедийная мастерская


Под Windows 3.х и, уж тем более, под Windows 9x разработано огромное количество растровых и векторных графических редакторов. Есть профессиональные, типа Adobe Photoshop, Adobe Illustrator, Corel Draw, Macromedia FreeHand и др. Есть попроще, типа Paint Shop Pro, Photo-Paint, Picture Publisher – такие редакторы оказались неплохим дополнением к сканерам, обеспечивая как процесс сканирования изображения, так и несложной обработки. Среди них немного выделяется PictureMan компании Stoik Software. Выделяется, собственно, тем, что программа разработана в России – по крайней мере, начинала Stoik Software в Зеленограде. И ещё тем, что продукты Stoik’a лицензировались компанией «Арсеналъ» для включения в состав «Русского офиса».

Программа PictureMan тяготеет к группе простых редакторов, дистрибутив которых умещается на паре-тройке дискет. Думалось, что и функционал будет примерно таким же, поэтому автор, зная, где взять дистрибутив третьей версии редактора, не спешил с написанием обзора, собираясь рассказать о программе, когда удастся найти полную версию «Русского офиса 95», куда, судя по рекламе во время установки сокращённой версии, включен PictureMan 3.0 или же более поздний. Однако, когда речь зашла о применении старых компьютеров и софта для создания прекрасного, было решено вытянуть программу, запустить и посмотреть, что же она умеет.

Итак, программу можно взять на сайте old-dos (http://old-dos.ru/dl.php?id=16577). Программа ставится без проблем, но только под 32-разрядную версию Windows. Автору, к сожалению, не удалось поставить программу под Win32s, но точно известно, что существует третья версия под Windows 3.x. Но есть и приятный сюрприз – устанавливая PictureMan Pro, вы ставите не просто графический редактор, пусть даже с интерфейсом на русском языке (таки да ☺), а целый комплекс мультимедийных программ:

• PictureMan – собственно, растровый графический редактор.

• MorphMan – небольшую программу для создания эффекта переливания одного изображения в другое.

• SoundMan – редактор озвучки видео.

• VideoMan – видеоредактор.

• VideoMan Capturer – программа захвата и записи видео.

Некоторые программы из этого комплекта будут рассмотрены в данной статье.


«Фотошоп» из Зеленограда


Как было написано выше – основная программа комплекта PictureMan – простой растровый редактор, так что идея нарисовать что-нибудь, как в пейнте, отпадает. Но можно попробовать подредактировать фотографию.


Рис. 1. Основное окно редактора PictureMan


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


Рис. 2. Фотография открыта в редакторе, так что можно приступать к её редактированию


Для начала попробуем снизить разрешение. Для этого выполняем команду Инструменты->Размер. Открывается диалоговое окно изменения разрешения изображения (см. рис. 3). Собственно, в разделе «Размер» и необходимо ввести нужное разрешение и нажать кнопку «Старт» для начала преобразования.


Рис. 3. Диалог изменения разрешения изображения


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

Кроме того, устанавливая галочку «Пропорционально», достаточно изменить только ширину изображения, чтобы пропорционально изменилась высота. Попытки автора изменить высоту, чтобы автоматически изменилась ширина, ни к чему не привели – программа возвращала старое значение высоты.

Теперь развернём фотографию по часовой стрелке на 90 градусов. Это можно сделать командой Инструменты->Поворот->Всего изображения. Здесь также откроется диалог (см. рис. 4), позволяющий указать угол поворота, режим сохранения изменений с такими же кнопками «Старт», «Подсказка», «Закрыть». Собственно, соглашаемся с углом поворота 90 градусов и жмём «Старт».


Рис. 4. Диалог поворота изображения


Итоговое изображение можно увидеть на рис. 5.


Рис. 5. Повернутая фотография с уменьшенным разрешением


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


Рис. 6. Оказывается, с помощью растягивания или сжатия подокна открытой фотографии, мы изменяем размер области редактирования, а не растягиваем или сжимаем изображение. Просто появляется вокруг фотографии белая кайма


Теперь приступим к исправлению искажения здания перспективой. Такая функция присутствует в фотошопе, есть она и у PictureMan. Здесь её можно вызвать командой Инструменты->Деформации->Перспектива. Открывается первое окно настройки изменения деформации перспективой (см. рис. 7).


Рис. 7. Диалоговое окно настроек изменения искажений перспективой


Первое, что стоит сделать – это нажать кнопку «Просмотр». На изображении появится пунктирная рамка с узелками (см. рис. 8).


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


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


Рис. 9. Диалог настройки параметров вставки результата


Результат автоматической коррекции приведён на рис. 10.


Рис. 10. Результат коррекции перспективы на автоматических настройках. Здание теперь стоит более ровно, но дефект преобразования виден в правом нижнем углу


Если посмотреть на правый нижний угол – можно увидеть дефект исправления перспективы. Один из вариантов избавиться от него – подрезать всё изображение. Это можно сделать командой Инструменты->Вырезать. Данная команда открывает соответствующий диалог (см. рис. 11).


Рис. 11. Диалоговое окно вырезания области. Собственно, задавать координаты необязательно – можно нажать кнопку «Новый» и выделить нужную область рамкой и нажать «Старт»


После применения обрезки, фотография немного потеряла, но при этом здание стоит достаточно вертикально (см. рис. 12).


Рис. 12. Результат обрезки


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


Фото превращается... Превращается фото...


Когда-то рассказывали о дипломной работе одной из студенток факультета дизайна, в которой было показано превращение серпа и молота в двуглавого орла в нескольких рисунках. Рисунков было где-то четыре, а то и шесть, и превращение шло постепенно. Конечно, программа MorphMan не претендует на лавры творца, и толкового дизайнера заменить едва ли сможет, но изобразить небольшой ролик-переливашку – почему бы и нет.


Рис. 13. Основное окно программы MorphMan


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


Рис. 14. Рабочее поле проекта


Щелчком по «окошку» начального и конечного изображения вызываем окно проводника, где выбираем нужный нам файл. В итоге должно получиться нечто похожее на рис. 15.

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


Рис. 15. Начальное и конечное изображение задано


Теперь кликнем по начальному и конечному изображению, чтобы они открылись в отдельных окнах увеличенными (см. рис. 16).


Рис. 16. Начальное и конечное изображения открыты в отдельных окнах. Такой большой размер позволит без проблем нанести реперные точки. Убедитесь, что функция установки реперных точек активна – обведённая красным кнопка нажата


Реперные точки устанавливаются щелчком левой кнопки мыши с зажатой клавишей Shift.

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


Рис. 17. Реперные точки на исходном изображении расставлены. Как видно, они продублировались на конечном изображении тоже


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


Рис. 18. Теперь и на конечном рисунке реперные точки на своих местах


Теперь в верхнем меню нажимаем пункт «Запуск!». Появляется меню сохранения AVI-файла проекта. Заодно в окне программы он также будет проигран.

Можно ли как-то подстроить этот проект? Да. В первую очередь, можно изменить скорость показа ролика. Это можно сделать в диалоговом окне, вызываемом командой Установки->Параметры сохранения – см. рис. 19.


Рис. 19. Параметры сохранения ролика. Можно задать цветность, первый кадр, а главное – скорость показа ролика


Например, автора больше устроила скорость показа 6 кадров в секунду. Ещё можно подстроить количество кадров, за которое будет осуществляться превращение. Это можно сделать внизу окна, введя число кадров в поле рядом с надписью Все. Например, интересный результат автор получил, введя 60 кадров при скорости 15 кадров в секунду.

Два варианта автор высылает в виде AVI- файлов – возможно, что их выложат для всеобщего обозрения (OUT.AVI – 10 кадров со скоростью 6 кадров в секунду, 60FRAME.AVI – 60 кадров со скоростью 15 кадров в секунду).

(Прим. ред.: скачать можно здесь: http://dgmag.in/N25/Stoik/morph.zip)

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

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


Рис. 20. Диалоговое окно руководства к программе MorphMan


Захватить...видео

Собственно, все остальные программы из состава комплекса предназначены для работы с видео. Автор хотел попробовать поиграться с музыкальной дорожкой в SoundMan, но программа сообщила: «Сперва видео». Поэтому попытки попробовать SoundMan и VideoMan были оставлены. Зато возникло желание попробовать захватить видео с помощью VideoMan Capturer.

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

Итак, запускаем программу. Главное окно показано на рис. 21.


Рис. 21. Главное окно VideoMan Capturer


Все основные настройки находятся в выпадающем меню Установки. Там можно настроить следующие параметры:

• Формат видео – разрешение и цветовая гамма настраиваются в диалоге, вызываемом пунктом Видео Формат.

• Выбрать источник видеопотока и настроить его опции можно в диалоге, вызываемом пунктом Видео Источник. К сожалению, в случае автора данный диалог позволил только выбрать источник – повлиять, например, на выдержку просто не получилось – как была автоматически настроена -3, так и не изменилась.

• В диалоге Компрессия можно выбрать кодек, которым будет сжиматься получаемое с источника видео.

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

Наверное, последний пункт – один из самых полезных диалогов настройки (см. рис. 22). Одна из интересных опций – ограничение захвата видео по времени. Может быть, при захвате видео, отснятого камерой, это не критично, но когда мы захватываем поток от веб-камеры, которая снимает и снимает – может пригодиться.


Рис. 22. Параметры захвата видео – пожалуй, самый полезный диалог настройки – действительно критичные для программы параметры, да ещё и такая полезная функция, как ограничение времени захвата. Когда веб-камера постоянно гонит поток видео, ограничить запись будет весьма полезно – тем более, у программы нет, похоже, кнопки остановки захвата


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

После этого можно было файл с захваченным видео сохранить на жёсткий диск.


Послесловие

Программы из состава PictureMan Pro оставили достаточно приятное впечатление. Приятным бонусом оказался русскоязычный интерфейс и анимированная стартующая ракета при установке программы. На компьютере с процессором P4 3 ГГц все программы работали, как легко догадаться, мгновенно, но, думается, и на машине с Windows 95 фатальных тормозов быть не должно.

Однако, как и у большинства программ российского производства, наиболее интригующим моментом является версия для Windows 3.x – да, такая версия упоминается в статье «Компьютерры» за 95-й год , и в том или ином виде она входила, возможно, в состав «Русского офиса». Можете себе представить, что для Windows 3.x существовал подобный комплекс программ, да ещё отечественного производства? Если версия Pro в таком составе найдётся в 16-разрядном исполнении, как минимум, она займёт достойное место в коллекции как Old-dos, так и в личной коллекции автора. И, конечно же, будет опробована на каком-нибудь 486-м компьютере


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


#### Когнитивные офисные технологии


Автор посвятил уже две статьи офисам-надстройкам, как их можно назвать – пакетам программ, которые вводят в Microsoft Office дополнительные функции. Описанные ранее Stylus Lingvo Office (см. Downgrade-журнал №14) и Русский офис (см. Downgrade-журнал №21) можно назвать конкурентами – оба комплекта добавляют в MS Office возможность ввода документов со сканера с последующим распознаванием (в обоих пакетах этим занимается FineReader  2.0 Standart) и переводом текста. Сегодняшний офис-надстройка тоже позволяет вводить со сканера текстовые документы, но вторым компонентом пакета является не переводчик, а электронный архив, вернее, система электронного документооборота.

В общем, прошу любить и жаловать – Cognitive Office 96. Когда-то на «Полигоне призраков» один из участников поинтересовался – интересен ли форумчанам диск от эпсоновского МФУ с такими программами. Автору стало немного завидно, что кому-то перепал диск с таким, незаслуженно редким, содержимым. Но автор сообщения снял образ диска и выложил его на всеобщее обозрение. Автор тоже скачал и, спустя много лет, выложил его на Old-dos.ru (ссылка). Сегодня же вашему вниманию предлагается и небольшой обзор данного пакета.


Кратко о пакете и его установке

Мы говорим «интегрированный пакет», но подразумеваем две программы, которые поставляются в виде отдельных инсталляторов.

Фактически, в содержимое диска входят:

• CuneiForm 96;

• CuneiForm 96iSE;

• Евфрат 96 SE.

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

Для экспериментов автор выбрал русские версии CuneiForm 96iSE и Евфрат 96SE. Папки с дистрибутивами данных программ были перекинуты на жёсткий диск старого компьютера, откуда и были установлены.

В составе диска не было серийного номера, поэтому, при установке был использован номер от CuneiForm 96SE http://old-dos.ru/dl.php?id=8971 – и для CuneiForm, и для «Евфрата».

Программы устанавливались в следующем порядке – сперва были установлены драйвера сканера, после – MS Word, CuneiForm и «Евфрат». В процессе использования оказалось, что, несмотря на то, что ярлыки обоих программ Cognitive Office располагаются в одной группе диспетчера программ, между ними практически отсутствует интеграция, но обо всём по порядку.


CuneiForm

Знакомство с компонентами офиса от Cognitive technologies начнём с системы оптического распознавания CuneiForm. Эта программа более знакома читателям, да и где-то читал у Леонтьева, что именно CuneiForm предполагалась основным компонентом офисного пакета.

В первую очередь, после установки, автор решил настроить интеграцию CuneiForm с MS Word. Для этого существует специальный макрос, ярлык которого находится в программной группе Cognitive-офиса – «MS WORD macros 96i-SE». Увы, просто так щёлкнуть и запустить макрос не получилось – оказалось, что каталог Word должен быть прописан в переменных окружения. Что ж, автор открыл свойства ярлыка и прописал там адрес исполняемого файла Word’a (см. рис. 1).


Рис. 1. Изменение команды запуска макроса, добавляющего вызов CuneiForm в Word


После этого рисунок ярлыка изменился и при щелчке запустился Word, а также открылся макрос (см. рис. 2).


Рис. 2. Макрос, который должен добавить возможность запуска CuneiForm из Word’a


Макрос представляет собой документ, содержащий инструкцию на английском языке по установке поддержки CuneiForm  в Word с заветной кнопкой Install в конце. Автор дважды щёлкнул по кнопке, но тут появилось сообщение о том, что в каталоге CuneiForm шаблон normal.dot не найден и макрос не может внести никаких изменений.

Неужели всё? Нет, автор решил попробовать запустить снова Word и из него уже открыть файл макроса. Благо, вызов этого файла  (строчка C:\CUNEI\CUNEI96.MAC) был записан в «историю» редактора (см. рис. 3).


Рис. 3. Вызов макроса был прописан в списке недавних документов, и его можно было без проблем снова открыть. В этот раз всё получилось удачно – строчка вызова CuneiForm после пункта «Выход» тому подтверждение


Во второй раз всё прошло удачно – после открытия файла, нажатия кнопки Install запустилась инсталляция, был модифицирован шаблон и в выпадающее меню «Файл» была добавлена строчка вызова CuneiForm (см. рис. 3).

Даже не понадобился перезапуск редактора. Увы, панели инструментов CuneiForm не добавила.

Теперь можно вызвать программу распознавания командой Файл->CuneiForm. После её выполнения откроется главное окно программы (см. рис. 4).


Рис. 4. Главное окно программы CuneiForm


Сканер выбираем в диалоговом окне, вызываемом по команде Файл->Выбрать из TWAIN списка. После этого запускаем сканирование и распознавание документа кнопкой «Скан & Распозн». Открывается диалог сканирования и, после получения изображения, уже сама CuneiForm запустит процесс распознавания:


Рис. 5. CuneiForm распознает полученный скан


Интересно, что программа сама определила язык документа – для опытов использовался первый лист даташита, который в своё время переводили «Сократ» в статье о «Русском офисе» и Stylus (причем, для Stylus’a тогда тоже сканировала и распознавала CuneiForm, правда, более ранняя версия ☺).

После распознавания документ открывается в окне редактора. Более поздние версии CuneiForm получат редактор, не уступающий по возможностям простым редакторам типа «Лексикона», увы, в 96-ой версии возможности редактирования минимальны (см. рис. 6).


Рис. 6. В дальнейшем это окно получит название Cognitive Editor и получит более серьёзные функции редактирования, но сейчас...


Чтобы передать результат распознавания в Word, необходимо просто закрыть окно CuneiForm. Открывается диалог, спрашивающий, передавать ли результат распознавания в качестве выходного файла или нет (см. рис. 7), и, после утвердительного ответа пользователя, текст станет доступен в Word’e (см. рис. 8). Именно так более ранняя версия CuneiForm передавала результат сканирования в Stylus.


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


Рис. 8. Результат распознавания текста в Word’e


Как видно, обыкновенная распознавалка текста, если можно так назвать программу, реализующую сложный алгоритм распознавания графики, но сервисные функции действительно всем давно знакомы и понятны.

Совсем другое дело «Евфрат»...


Евфрат

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

Откроется главное окно программы (см. рис. 9) представляющее собой подобие рабочего стола. Здесь находится пара папок, мусорная корзина и весьма стильная панель инструментов.


Рис. 9. Главное окно «Евфрата» – такое ощущение, что его делали абсолютно другие дизайнеры (кстати, в отличие от 16-разрядной CuneiForm, «Евфрат» требует наличия Win32s)


Практически все основные функции выпадающих меню дублируются кнопками панели инструментов – вызов CuneiForm, создание нового файла, папки, картотеки, поиск, выравнивание значков, очистка корзины, вызов настроек программы и др. Что представляет собой папка – в принципе, понятно – тем более, что две папки присутствуют на «рабочем столе» программы.


Рис. 10. Открытая папка


А вот что такое файл? Давайте создадим один. Нажимаем кнопку, и открывается диалог создания нового файла (см. рис. 11).


Рис. 11. Диалог создания нового файла


Оказывается, что под файлом подразумевается некий хитрый объект, который может содержать текстовые файлы или картинки, а то и всё вместе. Добавим к создаваемому файлу «Евфрата» текстовый файл ReadMe от этой же программы. Добавляем двойным щелчком и нажимаем OK. Программа поддерживает текстовые файлы, RTF, DOC, WRI, а также может добавить и графические файлы.

После закрытия диалога создания нового файла запускается процедура индексации (см. рис. 12).


Рис. 12. Запущена индексация добавляемого файла


После завершения индексации, на рабочем столе появится значок добавленного файла (см. рис. 13).

Двойной щелчок откроет файл во встроенном просмотрщике текстовых документов (см. рис. 14).


Рис. 13. Файл добавлен в архив и появился на рабочем столе «Евфрата» в виде значка


Рис. 14. Файл ReadMe.txt открыт встроенным просмотрщиком текстовых документов «Евфрата»


Автор решил попробовать добавить документ Word’a. Было бы логичным, что при двойном щелчке открылся бы редактор, использующийся по умолчанию для открытия файлов такого типа. То есть для тех же файлов *.DOC должен открыться MS Word. Создаём в ворде файл, сохраняем его, добавляем на рабочий стол «Евфрата», щёлкаем по нему два раза и... запускается встроенный просмотрщик. Но ведь при работе с файлами в «Евфрате» вполне логичной операцией будет вызов редактирования того или иного файла? Что делать?

Оказывается, проблему можно решить через контекстное меню, а именно через его пункт «Экспорт» (см. рис. 15).

После выбора пункта «Экспорт» при первом запуске появится диалоговое окно, которое спросит, каким приложением открывать данный файл (и предложит свой вариант – например, Word для файлов *.DOC), а после нажатия OK запустится внешняя программа.


Рис. 15. Если по файлу щёлкнуть правой кнопкой мыши, появится контекстное меню. И пункт «Экспорт» вызовет внешнее приложение, ассоциированное с файлом


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


Так есть ли интеграция?

Разглядывая интерфейс «Евфрата», читатель, наверное, заметил красивую кнопку вызова CuneiForm. Логично, что нажав эту кнопку, мы запустим программу распознавания и потом сумеем добавить результат распознавания, как один из документов.

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

Может быть, у CuneiForm есть свои средства передачи данных в «Евфрат»? Что ж, попробуем отсканировать и распознать ещё раз, а потом посмотрим в меню редактора. Оказалось, что в меню редактора действительно есть пункт, относящийся к «Евфрату» – команда Файл->Перейти в Евфрат (см. рис. 16).


Рис. 16. В меню редактора CuneiForm есть команда, связанная с «Евфратом», но она делает именно то, что написано в пункте меню – делает активным окно «Евфрата», но не передаёт ему данные


К сожалению, данная команда только активирует окно «Евфрата» и не более того. Но как же передать данные? Только сохранить в редакторе CuneiForm, например, в формат RTF, а потом добавить в «Евфрат», как рядовой документ.

Документ появится на рабочем столе (документ «Скан1» на рис. 15) и при двойном щелчке, как и все другие, будет открыт встроенным просмотрщиком (см. рис. 17).


Рис. 17. Встроенный просмотрщик «Евфрата» открывает результат распознавания CuneiForm


Заключение

Пакет программ Cognitive Office оставил достаточно неоднозначное впечатление. С одной стороны, на Old-dos это единственный пакет, включающий в себя полную версию программы электронного архива. К сожалению, комплекта «Русский офис» с полной версией «Дел в порядке» пока что нет. Но с другой – откровенно не порадовала практически нулевая интеграция программ между собой. Автор сетовал на то же, когда возился с «Русским офисом», но там в ворде была волшебная кнопка «Отсканировать и перевести», которая последовательно всё же запускала FineReader и «Сократ». И хоть «центром управления» «Русским офисом» была именно эта панель в ворде, она всё же выполняла связующие функции. Здесь же отсутствует даже такая интеграция. Да, есть кнопки и пункты меню, позволяющие из «Евфрата» вызывать CuneiForm, а из CuneiForm – «Евфрат», но только вызывать и не более того. Программы чем-то напомнили близнецов из фильма «Осьминожка» – Мишку и Гришку – во время выступления один брат с жутким акцентом окликал второго, тот же, в свою очередь, выкрикивал имя первого. Как-то глуповато смотрелось в фильме и как-то глуповато смотрится на дисплее компьютера, когда запускаешь Cognitive Office.

Что можно сказать в защиту пакета? Возможно, перед нами усечённая версия, поставлявшаяся с МФУ, и существует всё же полноценный интегрированный пакет Cognitive Office с единым инсталлятором и, возможно, более плотным взаимодействием программ. Вполне возможно, что «огрехи» поправили уже в 97-ой версии «Евфрата» (которая тоже может запускаться, вроде, из Windows 3.x) и, если автор дозреет до детального обзора именно архива, то будет делать это на 97-ой версии (разве что не попадётся под руку самая первая версия программы – «Евфрат 95»). Так или иначе, продукт у Cognitive Technologies получился достаточно неплохой, а «Евфрат», при всех его функциональных недостатках, очень и очень красив.


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


### Программирование

#### Making of Shiny


Название: Shiny

Тип: Intro

Платформа: Sinclair QL

Ссылка: http://pouet.net/prod.php?which=76026


Три года назад я предпринял попытку ознакомиться с Sinclair QL и, заодно, изучить процессор Motorola 68000. Эта попытка завершилась провалом, поскольку я получил массу противоречивых сведений, мне не удалось запускать нужные программы.

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


Эмулятор

На форуме посоветовали Q-Emulator (http://www.terdina.net/ql/winql.html)

Внешний вид эмулятора:


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

Выбор пал на QL2K (http://www.jadiam.org/QL/), достаточно взять версию 0.96а.


В одном паблике на Facebook я услышал негативный отзыв, что QL – убогий компьютер без дополнительных ROM, что так и оказалось – без Toolkit2 (TK2.ROM) с компьютером делать нечего.

При запуске эмулятор предлагает настройки, с которыми не нужно морочиться, работает с уже готовыми. Единственное, на что нужно обратить внимание – кнопка MDV WIN, которая позволяет задать пути к виртуальным устройствам.

Настройки программы:


Устройства называются следующим образом: MDV1_ – микродрайв (у оригинала 2, а у эмулятора 5), утилит работы с образом просто не нашлось, WIN1_ – WIN5_  – дискеты.


Софт

Ясно, что лучше всего использовать ассемблер и текстовый редактор. На вечно падающем сайте http://www.dilwyn.me.uk после нескольких проб я нашел Q-Mac и QED с описаниями функций. Но перед началом работы нужно подготовить файлы для запуска. Следует заметить, что большая часть программ доступна в странном виде – .ZIP-архив с метаданными в хвосте, которые скачиваются браузерами по-разному. Также эмуляторы не читают такие архивы. Поэтому решение было другим: использовать встроенную утилиту qlayt (не помешает почитать документацию):


del qlay.lst

del qlay.dir

dir/b > qlay.lst

qlayt -c qlay.lst


Запускаю эмулятор, жму F4, ввожу dir win3_, вижу файлы. Как их запустить? exec win3_qmac – ошибка!

Оказывается, что ось не различает текстовые и бинарные файлы, или эмулятор их криво перенёс.

Сработало так:


10 a=ALCHP(34542)

20 LBYTES win3_qmac,a

30 SEXEC win3_qmac,a,34542,4096

40 RECHP a


10 – отводится память размером 34542 байта – размер файла Qmac.

20 – загрузка файла по зарезервированному адресу в переменной А.

30 – сохранение бинарного файла из памяти, можно заменить на SEXEC_O, чтобы не задавался вопрос о перезаписи.

40 – освобождается зарезервированная память.


Заметно, что при обращении к устройству добавляется WIN3_, я работал с этим носителем (по умолчанию с папкой WIN3_). На будущее удобнее всего сохранить Бейсик- программы на диске, чтобы не пришлось набирать текст снова.

Формат строк немного непривычный – Linux-style с концом строки chr($0A). Мой исправленный вариант выглядел так (runk_bas):


100 fnm$='win3_kl_bin'

110 fl=FLEN(\ fnm$)

120 adr=ALCHP(fl)

130 LBYTES fnm$,adr

140 CALL adr

150 RECHP adr


Все типы файлов отделяются от имени подчёркиванием – _bin,_bas, .bin и .bas не воспринимались.

Кстати, изучение команд Бейсика тоже не помешает. Для редактирования строк используется команда EDIT номер.

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

Больше всего времени ушло на запуск QED и на изучение функций.

Подготовка к запуску:


10 a=ALCHP(7900)

20 LBYTES win3_QED,a

30 SEXEC win3_QED,a,7900,4096

40 RECHP a


Запуск:  EXEC win3_QED


Редактор запрашивает имя файла, если текстовый файл не найден, то будет создан. Ввожу win3_a_s – мой исходный текст, набираю пример:


filetype 0


section code


move.l #0,a0

lea.l  mess,a1

move.w $d0,a2

jsr    (a2)

rts

mess dc.w   12

dc.b   'Hello World!',10

end


Теперь нужно сохранить текст  и выйти из редактора:

F3,SA путь к файлу – сохранение;

F3,Q – выход.


Или другой пример – определение версии QDOS:


filetype 0


section code


UT_MTEXT equ $d0


clr.l d0

trap #1


lea M9,a1

move.l d2,(a1)


lea M8,a1

sub.l a0,a0

move.w UT_MTEXT,a2

jsr (a2)

rts


M8

dc.w M2-M1

M1       dc.b 'QDOS Version -  '

M9       ds.l 1

M2

*

end


Заморачиваться с нюансами исходных текстов я не стал, целью было получение рабочих бинарных файлов. Осталась компиляция исходного текста, которая описана в документации.


10 DELETE win3_hl_bin

11 DELETE win3_HL_rel

30 EXEC win3_qmac;'win3_a_asm -BIN win3_hl_rel'

31 VIEW win3_a_list

40 EXEC win3_qlink;'win3_hl_rel'


Единственное, что не удалось – это отключить генерацию листинга.

Запуск готового файла:


100 fnm$='win3_hl_bin'

110 fl=FLEN(\ fnm$)

120 adr=ALCHP(fl)

130 LBYTES fnm$,adr

131 CALL adr


Теперь, когда имеется готовый набор, можно приступить к созданию программы и к изучению ассемблера. Первая книга, что мне попалась – Assembly Language Programming on the Sinclair QL.


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

Достаточно  было принять тот факт, что формат хранения 16 бит и 32 бит отличается от принятого формата Intel.

Процессор содержит 8 адресных 32-битных регистров A0-A7, которые используются для обращения к памяти. A7 называют стеком, который применён для сохранения регистров. Есть 8 32-битных регистров данных D0-D7, причём инструкция указывает, с каким типом данных (байт, слово, длинное слово) будет выполнена операция.

Важно запомнить, что порядок операндов – source, destination.

Например, MOVE.L #0,D0 поместит 0 в регистр D0 (.L – длинное слово).

Согласно карте памяти, которая есть в книге, экранная память расположена по адресам $20000 и второй экран $28000. Непонятно, разберёмся дальше.

Какой видеорежим выбрать? 512х256 4 цвета или 256х256 8 цветов? Для задуманного эффекта я выбрал 8 цветов:


Чтение материала ещё более запутало, автор рисует некие схемы:


И, наверное, отчаявшись объяснить, приводит образец построения точки. Выходит, что адрес определяется как $20000+Y/128+X/4. Это меня совсем запутало, я решил подготовить графику.

Создание логотипа – это отдельная песня. Шрифт уже был выбран:


Но раскраска мне не понравилась:


Камрад AER сделал набросок по моей просьбе:


И я начал рисовать слово Shiny с помощью Graphics Gale стандартной палитрой. После нескольких проб и ошибок лого было получено. На PureBasic код конверсии выглядел так:


*m=AllocateMemory(32*256)

LoadImage(0,"lg5.bmp")

StartDrawing(ImageOutput(0))

For y.l=0 To 31; Step 2

For x.l=0 To 511 Step 2

d=(x>>2)&$7E+y*128

d1=x&6

co=Point(x/2,y)

cc=0

If Blue(co):cc|1:EndIf

If Red(co):cc|2:EndIf

If Green(co):cc|4:EndIf

co=cc

;Debug cc


d3.u=co<<6

d4.u=d3<<7

d4=d4&$8000

d3=d3&$C0

d3=d4|d3


If d1<>0

For i=1 To d1

d3=(d3>>1)|($8000*(d1&1))

Next i

EndIf


d3=((d3&255)<<8)|(d3>>8)

PokeW(*m+d,PeekW(*m+d)|d3)


Next x

Next y

StopDrawing()

CreateFile(0,"pic_bin")

WriteData(0,*m,32*256)

CloseFile(0)

FreeMemory(*m)


Хорошо, картинка загружается, остальная часть экрана отведена под эффект. Мне нужна таблица синуса, которую я хочу попробовать с помощью замысловатого алгоритма. Как тут быть? Отладчика я не нашёл. Ответ приходит сам: Easy68K (http://www.easy68k.com) – ассемблер и симулятор. Он позволяет рисовать и выводить текст на виртуальных устройствах.

Запускаю EDIT68K, после возни с алгоритмом и чтения документации, жму F9, Execute:


ORG    $1000

START:   ; first instruction of program


move.b    #33,d0   ; set window size

move.l    #(1024<<16+768),d1 ; 1024x768

trap    #15


* sin generation


lea sint,a0

clr.l d0 ; hl

clr.l d1 ; de

clr.l d3 ; counter

move.w #$08,d2 ; bc

glp:

move d0,d4

lsr.w #8,d4

cmp.b #$40,d4

bcs bra1

sub d2,d1

bra bra2

bra1:

add d2,d1

bra2:

add d1,d0

move d0,d4

lsr.w #8,d4

move.b d4,(a0)+

add #1,d3

cmp.w #256,d3

bne glp


*now draw

move.l  #$0000FFFF,D1; Pen color yellow

move.b  #80,d0; set pen color trap task

trap    #15; do task

lea sint,a0

clr.l d1

pllp:

move.b (a0)+,d2

*    asl.b #1,d2

move.b  #82,D0;draw pixel at X = D1, Y = D2

trap    #15     ; do task

add #1,d1

cmp.w #256,d1

bne pllp


SIMHALT             ; halt simulator


sint:

* Put variables and constants here


END    START; last line of source


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

Причём эффект на экране работает достаточно шустро, нет побочного эффекта как «сечение с лучом». Надо бы замедлить вывод на экран или синхронизировать.

Задаю на форуме вопрос о таймере, получаю массу примеров и ссылок на исходные тексты. Не работает.

Открываю QL technical guide (http://www.dilwyn.me.uk/docs/manuals/qltm.pdf) и начинаю читать.

Получается:


*setup interrupt

lea hook(pc),a0

lea routine(pc),a1

move.l a1,4(a0)

moveq #$1c,d0

trap #1 *системный вызов с определенными параметрами


Ниже в программе:


*interrupt

hook: ds.l 2

routine:*идея проста - на каждое прерывание tik увеличивается на 1

move.l a0,-(a7)

lea tik(pc),a0

add.b #1,(a0)

move.l (a7)+,a0

rts

tik: dc.b 0


А синхронизация сделана так:


zz:

lea tik(pc),a0

move.l #3,d2

wa3:

move.b (a0),d0 *получить tik

wa:

move.b (a0),d1

cmp.b d0,d1 *если tik отличается от предыдущего, то произошло прерывание

beq wa

dbra d2,wa3 * повторить три раза


Осталось две задачи – звук и видеорежим. Звук не эмулируется, возвращаюсь к видео.

Из документации находится важная ячейка:


mc_stat  equ      $18063

*b1 screen off

*b3 lores(1),hires(0)

*b6 (0)PAL, (1)NTSC

*b7 (0)VRAM from $20000,(1) $28000


*setup video

move.b mc_stat,d0

and.b #%01110111,d0

or.b  #%00001000,d0

move.b d0,mc_stat


Ага, теперь ясно, что можно использовать два экрана по разным адресам. Но мне трюк с буферами не понадобился, я использовал память $28000 для данных.


Я смотрю на экран и испытываю чувство усталости от проделанных шагов и сделанных открытий и чувство удовлетворения от того, что поставленная цель выполнена.

Каждый может описать свои чувства, когда первая написанная программа заработала – «Я всемогущ!».


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


Sh


### Интернет и сети

#### Сеть между Windows XP и Windows 3.1 for Workgroups


Обычно, когда обладатель Windows 3.1 заикается на форуме о поднятии сети между старым компьютером и основной машиной, например, под управлением Windows XP, ему советуют установить Windows 3.11 и пакет поддержки протокола TCP/IP от Microsoft. В большинстве случаев энтузиаст «тройки» удовлетворяется таким советом, ставит 3.11, поддержку TCP/IP и радуется установленной сети.

Однако Windows 3.11, на взгляд автора, несколько более требовательна к ресурсам компьютера, в частности, к объёму оперативной памяти – когда-то на 386SX40 с 4 МБ ОЗУ Windows 3.1 вела себя более стабильно, чем Windows 3.11. Что же можно сделать для Windows 3.1? Один из вариантов – сторонний пакет SuperTCP (часть 1, часть 2, часть 3) – достаточно интересный вариант. Стек содержит FTP-сервер, который может помочь при обмене (когда-то ставил его, но прошёл мимо и разворачивал сервер на основном компьютере, что было не так удобно), так что, надо будет тоже как-нибудь снова его попробовать, но в этот раз рассказ будет не о нём.

Своё самостоятельное знакомство с семейством Windows 3.x автор начал с Windows 3.1 for Workgroups, которая имела собственные средства работы с локальной сетью. Так почему бы не задействовать их? Автор надеется, что результат экспериментов будет интересен и читателю.

В качестве испытательного полигона была использована машина 486DX2 66 МГц, 8 МБ ОЗУ с английской версией Windows 3.1 for Workgroups.


Ставим сетевую карту

Прежде, чем перейдём к настройке, хотелось бы отметить одну деталь – при установке Windows 3.11 вы можете без проблем отключить поддержку сети – нет сети и не надо – 3.11 это переживёт. Но для Windows 3.1 for Workgroups сеть критична – если вы не установили сетевую карту, каждый раз при загрузке будете получать сообщение об ошибке. Даже если вы поставили и настроили SuperTCP, Windows не успокоится – ей на сторонние пакеты плевать. Так что, это тоже стало одним из стимулов к развёртыванию сети штатными средствами.

Итак, мы хотим установить сетевую карту. Windows 3.11 готова переварить практически любую сетевую карту для шины ISA, а то и для PCI тоже. Практически для любой ISAшной карточки вы найдёте отдельную папку с драйверами для Windows 3.11. Но будут ли эти драйвера работать на 3.1? Автор решил не искушать судьбу и выбрать карточку, для которой есть штатные драйверы. Например, достаточно беспроблемную карточку 3COM EtherLink III – достать такую карточку не проблема, а наличие драйверов в составе Windows 3.1 и 3.11 облегчало установку (на 3.11 примерно с такой же карточкой вообще не возникло проблем – разве что P’n’P ,вроде, отключил на всякий случай), так что, выбираем её.

Устанавливаем карту, запускаем компьютер и открываем панель управления (Control Panel), где щелчком по значку Network открываем диалог настройки сети (см. рисунок 1).


Рис. 1. Диалог настройки сети. Автору показался менее «цветастым», чем в Windows 3.11, но зато по умолчанию было разрешено расшаривание ресурсов


Для добавления сетевой карты нажимаем кнопку Adapters, которая откроет диалог добавления новой сетевушки (см. рис. 2). Нажимаем кнопку Add, выбираем в списке 3COM EtherLink III, ставим драйвера, перезагружаем компьютер и... Не знаю, как у вас, а вот у меня вылетела ошибка – Windows не может найти нужную карточку и не может запустить сеть. При этом программа диагностики (взята из архива драйверов https://www.helpjet.net/Fs-30449387-44714245-89436991.html) успешно тестировала сетевую карту, P’n’P был отключен... В чём же дело?


Рис. 2. Диалог добавления новой сетевой карты


Давайте тогда попробуем поставить драйвера от производителя. Благо, для Windows 3.11 драйвера лежат в том же архиве. Но установщик Windows 3.1 не находит там ничего. Но в комплекте есть драйвера NDIS2 – вот их (те, что лежат в папке DOS) Windows 3.1 успешно поставила.


Рис. 3. Вот теперь драйвер установлен. Обратите внимание, тут же установлена и поддержка протокола NetBEUI


После перезагрузки Windows вывела на экран диалог с логином и паролем, как Windows 3.11. Установку сетевой карты можно считать успешно завершенной.

Теперь очередь за протоколом обмена с большим компьютером. Казалось бы, есть TCP/IP от Microsoft, но ведь не зря для него рекомендуют Windows 3.11, на Windows 3.1, видимо, он работать не будет. Так что же делать?


NetBEUI – нет ничего проще?

Первое, что приходит на ум – протокол NetBIOS/NetBEUI – ведь его мы видели сто раз, даже когда настраивали сеть под Windows 3.11 – TCP/IP нужно было установить отдельно – пусть и из пакета от той же Microsoft, а IPX и NetBEUI были уже в поставке Windows. Так и в Windows 3.1 вместе с драйверами сетевой карты была установлена поддержка NetBEUI. Автор заодно в диалоге, вызываемом по нажатию кнопки Networks, установил поддержку Microsoft LAN manager (см. рис. 4).


Рис. 4. На всякий случай добавим поддержку Microsoft LAN manager


Осталось только проверить, чтобы компьютер под Windows 3.1 и компьютер под Windows XP находились в одной рабочей группе. Для этого в Windows XP щёлкаем правой кнопкой мыши по иконке «Мой компьютер», вызываем свойства, открываем закладку «Имя компьютера» (см. рис. 5).


Рис. 5. Вкладка настроек, где содержится имя компьютера


Нажав кнопку «Изменить» вызываем диалог изменения имени и рабочей группы (см. рис. 6). Забиваем название рабочей группы латиницей и без пробелов, чтоб легко было ввести такое же в Windows 3.1.


Рис. 6. Диалог изменения имени и рабочей группы


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


На старом компьютере средствами диспетчера файлов открываем доступ к одной из папок. Теперь компьютер должен быть доступен в сетевом окружении Windows XP. Открываем папку «Сетевое окружение», нажимаем в списке «Сетевые задачи» пункт «Отобразить компьютеры рабочей группы» и... старого компьютера нет (см. рис. 7). Как так?


Рис. 7. Несмотря на правильные настройки, старого компьютера в сетевом окружении нет


Казалось бы, Microsoft весьма консервативная компания. Сколько разных драйверов старых устройств тянется из версии в версию! Не все, конечно, например, драйверы плоттеров HP 7474 и подобных, поддерживающих первую версию HPGL, исчезли где-то во времена Windows 98 и 2000, но даже в Windows 7 есть драйвера для матричного принтера IBM Graphics. Резонно было предположить, что мелкомягкие сохранят поддержку старого протокола, и тоже будут устанавливать его по умолчанию для сетевой карточки. Но в данном случае Microsoft прекратила поддержку старого протокола.

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

http://sheltec.ru/12-ustanovka-protokola-NETBEUI-v-Windows-XP-e1524.html

Компоненты поддержки протокола NetBEUI для Windows XP доступны в архиве:

http://sheltec.ru/_imag_uploads/113/1524e-netbeui-xp.rar

Архив содержит файлы NBF.sys и NETNBF.INF. Эти два файла необходимо поместить в папки C:\Windows\System32\Drivers и C:\Windows\INF\, и только потом приступать к добавлению нового протокола через соответствующий диалог настройки сетевой карты. Увы, просто указать расположение INF-файла было недостаточно – автор сперва сделал именно так – протокол не заработал. Зато после правильной установки старый компьютер появился в сетевом окружении (см. рис. 8), и появилась возможность копировать данные как на старый компьютер, так и с него.


Рис. 8. Старый компьютер доступен в сетевом окружении


«Но есть ли другой вариант?» спросит читатель. Есть ли возможность использовать не хитрый протокол, при всём к нему уважении, а стандартный TCP/IP? Увы, невозможность использовать известный TCP/IP-32b базируется не только на рекомендациях Microsoft, но и на практических результатах. Под Windows 3.11 с тем же драйвером NDIS2 стек нормально запустился, но Windows for Workgroups 3.1 не обнаружила ничего. Но есть более ранний вариант, о котором речь пойдёт далее.


Microsoft TCP/IP для Windows for Workgroups

Как выяснилось, названный выше стек TCP/IP является не первым стеком TCP/IP от Microsoft. Конечно, ещё существовало несколько версий MS LAN Manager, о которых стоит как-нибудь поговорить, но не в этот раз. В этот раз разговор будет об обрезанном варианте, разработанном специально для Windows – MS TCP/IP для Windows for Workgroups:

http://sdfox7.com/win31/WFWTCP.EXE

Данный стек был разработан также для Windows 3.11, но всё равно хотелось попробовать его установить и на 3.1.


Рис. 9. Диалог настройки сетевой карты


Что ж, открываем настройки сетевой карты нажатием кнопки «Setup» в диалоге установки сетевых адаптеров (см. рис. 3). В открывшемся диалоге (см. рис. 9) нажимаем кнопку «Protocols».


Рис. 10. Диалог добавления протоколов


Открывается диалог добавления протоколов (см. рис. 10). Как видно, протокол NetBEUI уже установлен. Остался только пункт нового неизвестного системе протокола – у нас как раз такой. Выделяем пункт «Unlisted or Updated protocol» и нажимаем кнопку «Add». В появившемся диалоге указываем путь к каталогу, куда был распакован архив с драйвером протокола, и нажимаем «OK». Как ни странно, система нашла протокол (см. рис. 11)


Рис. 11. Несмотря на то, что стек протокола TCP/IP создавался для Windows 3.11, Windows 3.1 for Workgroups тоже его определила


После закрытия диалогов и согласия на выполнение изменений, Windows копирует нужные файлы, вносит изменения в файлы protocol.ini и system.ini, а также autoexec.bat и config.sys – туда прописываются программы, выполняющиеся в DOS (фактически все программы, входящие в состав стека ☺ – есть ощущение, что они брались из LAN Manager’a). После этого нам предлагают перезагрузить компьютер. Собственно, соглашаемся.

Компьютер уходит на перезагрузку, но во время загрузки возникают сообщения об ошибках. Казалось бы – конец, но нет – всё решается редактированием файла protocol.ini. В секцию [TCPIP] этого файла нужно внести следующие записи:


[TCPIP]

DefaultGateway0=192 168 122 1

NBSessions=6

SubNetMask0=255 255 255 0

IPAddress0=192 168 122 13

DisableDHCP=1

DriverName=TCPIP$

BINDINGS=MS$ELNK

LANABASE=1


Исправьте под себя следующие параметры:


• DefaultGateway0 – адрес основного шлюза;

• SubNetMask0 – маску подсети;

• IPAddress0 – IP-адрес компьютера.


Параметр DisableDHCP отключает автоматическое получение IP-адреса, что автору показалось странным – обычно наоборот включают. После этого необходимо снова перезагрузить компьютер.

Если продолжают появляться сообщения об ошибках при запуске DOS-овских программ, отвечающих за TCP/IP, попробуйте заменить строчку


BINDINGS=MS$ELNK

на

BINDINGS=ELNK


«Откуда такие познания?» – может спросить читатель. Автор кается – не такой уж он умный – такая запись была заимствована из одноимённого файла (protocol.ini) программы MS LAN Client 3.0, входящий, видимо, в состав LAN Manager’a. Так как названия программ, сообщения об ошибках и записи в autoexec.bat были очень похожи, автор решил попробовать взять запись из файла настроек MS LAN Client и вписать их в файл настроек стека, установленного под Windows 3.1 (кстати, в Windows 3.11 открывается графический диалог настройки параметров сети – в Windows 3.1 мы получаем сообщение о том, что никаких дополнительных настроек у драйвера нет – так-то ☺).

После данных исправлений у автора вполне успешно запустился стек TCP/IP и компьютер начал пинговаться. Но можно ли получить доступ к расшаренным папкам?

Увы, прямое обращение по IP-адресу реализовать не получилось – на команду

\\192.168.122.13

Windows XP отвечала об ошибке подключения. Однако через сетевое окружение компьютер был доступен – даже на машинах, где не был установлен NetBEUI – автор специально тестировал стек в институтской локальной сети – рабочий компьютер под Windows XP успешно увидел расшаренные папки и позволил копировать как на старый компьютер, так и с него. Однако случилась определённая накладка – компьютер появился в сети не сразу. Поэтому автор в диспетчере файлов открывал диалог добавления сетевого диска, через который сканировал компьютеры в рабочей группе и повторно расшаривал нужные папки. Что из этого помогло – сказать сложно, но после этого в «Сетевом окружении» компьютер появился.


Заключение

Возможно, читатель сочтёт задачу подключения Windows 3.1 for Workgroups достаточно надуманной, а эту версию третьей винды достаточно экзотичной, но в далёком 2005-м именно такая версия Windows 3.1 была единственной доступной автору, и желание запустить сеть, возможно, берёт корни ещё из тех времен.

Автору попадались и другие варианты организации сети между этой оболочкой и современными компьютерами. Например, предлагалось сперва установить MS LAN Manager, настроить его в DOS, а только потом устанавливать Windows. Возможно, что такой вариант избавил бы от ряда сложностей и ручных редактирований конфигурационных файлов. Однако, всё же, обычно сперва устанавливается Windows, а только потом пользователь задумывается, как же включить её в сеть, и именно для такой последовательности решалась задача.


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


### Downgrade-арт

#### Новогодний ASCII-арт


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

Конечно, назвать это полноценным ASCII-артом сложно, но вдруг кому-то пригодится – хотя бы как затравка для собственного творчества?

В общем, в разные годы я для украшения форума использовал вот эти три картинки:


Посмотреть код в HTML можно здесь:

http://dgmag.in/N25/ASCII/AllNY.htm

(Последний рисунок, если кто не догадался, моя попытка изобразить Деда Мороза и Снегурочку :-)

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

В HTML основным средством вывода таких артов является тег <pre>, позволяющий выводить предварительно отформатированный текст – с сохранением пробелов и тому подобного.

К сожалению, не всё так просто – если, например, просто вставить вот ту ветку ёлки с игрушкой в тег <pre>, то получится примерно вот такое:


Как по мне, слишком большой промежуток между рядами иголок, т.е. между строками. Исправить это можно примерно таким кодом:


<pre style="line-height: 90%;">

...

...


Это уменьшит междустрочный интервал и сплюснет изображение по вертикали:


Больше особых секретов и нет – цвет можно устанавливать тегом <font>:


...


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

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

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

Ну и я предпочитаю использовать только ASCII-символы – цифры, буквы и знаки препинания, а в артах из Интернета часто используется псевдографика.

Впрочем, в Сети встречаются вполне симпатичные образчики ASCII-арта, к примеру, вот эта ёлка:


Автор, по-видимому, kOoLiNuS, взято отсюда:

https://koolinus.wordpress.com/2005/12/25/merry-christmas/

Если у вас, уважаемые читатели, тоже есть какие-нибудь собственные ASCII-арты (или вы готовы поделиться секретами их создания) – присылайте, для этого рубрика «Downgrade-арт» и была создана.


uav1606


#### Микроинтро


В номере 8 журнала я упоминал о рекордсменах в жанре интро – программах всего в несколько десятков байт, которые рисуют какие-нибудь интересные замысловатые узоры. Мне стало интересно, насколько вообще сложно написать что-то подобное – чтобы программа была, скажем, не более 50 байт, и при этом рисовала что-нибудь на экране?

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

Скорее, надо смотреть в сторону каких-то простых алгоритмов.

Для начала, нужно выбрать видеорежим. Я решил использовать режим 13h (320х200, 256 цветов). Самый простой способ его установить такой:


MOV AX,0013H

INT 10H


В AH у нас 00h – функция выбора видеорежима, а в AL – 13h – его номер. Проще тут уже вряд ли получится.

Этот режим – один из самых простых для программиста, так как мы имеем линейную видеопамять с сегментным адресом A000h, в которой каждому пикселю соответствует один байт (итого 320*200=64000 байт). Т.е. пикселю (0;0) в верхнем левом углу экрана соответствует смещение 0, последнему пикселю этой строки – смещение 319, вторая строка начинается со смещения 320 и т.д.

А вот что дальше? Самое простое, что можно сделать – просто закрасить экран одним цветом. Но попробуем что-нибудь посложнее.

Можно сделать, например, так:


MOV AX, 0A000H

MOV ES,AX;стартовый адрес у нас

;будет в ES:DI

CLD

XOR DI,DI

XOR AL,AL

MAINLOOP:

STOSB  ;записываем AL по текущему

;адресу, DI увеличивается

;автоматически

INC AL ;меняем цвет для

;следующего пикселя

JMP MAINLOOP


Т.е. для начала мы инициализируем регистры, а потом в цикле с помощью команды STOSB записываем всё возрастающее значение AL (содержащее номер цвета), заполняя видеопамять. Обращу ваше внимание, что в таком варианте выход из программы не предусмотрен – только перезагрузка, что, впрочем, частое явление для маленьких интро.

В результате мы увидим вот такую  «картинку»:


Такие пёстрые цвета возникают из-за стандартной палитры VGA в режиме 13h:

https://en.wikipedia.org/wiki/Mode_13h

А периодичность возникает оттого, что регистр AL у нас проходит все значения от 0 до 255, а потом из-за переполнения становится снова 0 – этакий циклический счётчик без дополнительных усилий. Кстати, память мы заполняем в бесконечном цикле (нам это дальше пригодится) по тому же принципу – DI у нас проходит все смещения от 0 до 65535, потом снова становится 0, память начинает заполняться по кругу.

Так как 65536 (размер видеообласти) делится нацело на 256 (период, с которым начинает повторяться цвет пикселей, столько цветов в палитре), картинка у нас получается статичная.

Получается цветасто, но скучновато – а можно ли добавить динамики? Запросто.

Добавляем в наш код (прямо перед JMP MAINLOOP) что-то вроде такого:


CMP DI,65535

JNE NEXT

INC AL; INC - влево, DEC - вправо

NEXT:


Т.е. что мы делаем – когда DI (текущий адрес в видеопамяти) становится равным 65535, мы как бы начинаем новый цикл из 256 цветов раньше на один пиксель – как раз за счёт этого дополнительного INC AL. Получается, что следующий «кадр» будет смещён на один пиксель влево. Так как это всё делается в бесконечном цикле, картинка поползёт влево. Если вместо INC AL поставить DEC AL – картинка поползёт вправо.

В журнале это в динамике не покажешь, но можете глянуть в этой GIF'ке:

http://dgmag.in/N25/Intro/intr_002.gif


Что ещё можно придумать?

Например, можно попытаться сделать линии наклонными.

В начале кода добавляем MOV CX,320 (от этого числа будет зависеть этот самый наклон), а после фрагмента, добавленного нами для движения, вставляем вот это:


PUSH AX ; сохраняем AX - он нужен для

; деления, но в нём также

; хранится текущий цвет

XOR DX,DX

MOV AX,DI

DIV CX    ; делим DX:AX на CX, в AX

; частное, в DX - остаток

POP AX

CMP DX,0; остаток = 0?

JNZ NEXT2

INC AL  ; если да, то смещаем строку

NEXT2:


Получаем примерно такую картину:


Т.е. мы теперь после каждых 320 пикселей как бы пропускаем один пиксель, в результате вертикальные строки превращаются в наклонные (и по-прежнему продолжают ползти).

Ну и напоследок можно ещё разнообразить картинку, сделав так, чтобы указанный нами шаг (320 пикселей) динамически менялся, а ещё, чтобы в зависимости от него менялся и наклон линий, в итоге получаем такую программу:


.MODEL TINY

.CODE

ORG 100H

START:


MOV AX,0013H

INT 10H

MOV CX,320

MOV AX, 0A000H

MOV ES,AX; стартовый адрес у нас

; будет в ES:DI

CLD

XOR DI,DI

XOR AL,AL

MAINLOOP:

STOSB  ; записываем AL по текущему

; адресу, DI увеличивается

; автоматически

INC AL ; меняем цвет для

; следующего пикселя

CMP DI,65535

JNE NEXT

INC AL ; INC - влево, DEC - вправо

INC CL ;динамически меняем CX

NEXT:

PUSH AX; сохраняем AX - он нужен для

; деления, но в нём также

; хранится текущий цвет

XOR DX,DX

MOV AX,DI

DIV CX ; делим DX:AX на CX, в AX -

; частное, в DX - остаток

POP AX

CMP DX,0 ; остаток = 0?

JNZ NEXT2

ADD AL,CL;если да, то смещаем строку

NEXT2:

JMP MAINLOOP

END START


Что мы получаем в результате? Больше всего это напоминает помехи на экране взбесившегося телевизора. :-)

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

Для этой программы рекомендую примерно 7000-9000 циклов DOSBox – это где-то соответствует уровню 386-486 процессора. В окне DOS под Windows XP на 2 ГГц процессоре эта программа слишком уж мельтешила – невозможно различить детали. А на стандартных 3000 ползала медленновато.

Конечно, то, что у нас получилось – это не полноценное интро, а скорее что-то вроде тренировки. Но мы всё же получили COM-файл в 47 байт (кстати, его можно сделать ещё меньше), который даже рисует, гм... вот это самое нечто. :-)

Ну и если у вас будет желание – можете поиграться с различными параметрами – в некоторых вариантах картинка получается ещё интереснее.

Скачать исходники и бинарник можно здесь:

http://dgmag.in/N25/Intro/INTR2.zip


uav1606


#### Pixel-арт: обзор инструментария


Этот небольшой обзор посвящён софту, позволяющему создавать рисунки в стиле пиксельной графики.

В качестве рабочего был выбран не то чтобы даунгрейдерский, но достаточно устаревший уже компьютер на базе Athlon XP 2 ГГц (без SSE2)/1,5 ГБ ОЗУ/Windows XP.

Но для начала не совсем про софт.


Piskel

Вообще, сам я с некоторым недоверием отношусь к онлайн-инструментам, заменяющим полноценное локальное ПО – т.е. ко всяким онлайн-офисам и т.п. Тем не менее, решил попробовать онлайновый пиксельный (точнее, спрайтовый) редактор Piskel:

https://www.piskelapp.com/

К сожалению, в моей Опере 12.18 он работать отказался. Зато на Chrome 34.0.1847.137 заработал вполне нормально – без глюков и тормозов:


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

Полученный результат можно экспортировать в GIF, PNG и ещё несколько форматов. Причём можно сделать экспорт и в виде набора файлов – каждый кадр в отдельном файле.

В целом этот онлайн-редактор мне показался вполне удобным, так что – рекомендую.

Перейдём теперь к собственно софту. Упор я сделал на бесплатные программы.


Krita

В каком-то обзоре мне попалась ссылка на Krita (https://krita.org/). К сожалению, при изучении системных требований выяснилось, что программа, хоть и выглядит вполне симпатично, но требует Windows 7, поэтому даже качать я её не стал. Возможно, кто-то из читателей с ней поэкспериментирует и отпишется о результатах где-нибудь на форуме журнала или в статье, ну а я больше про Krita ничего сказать не могу.


GrafX2

Следующей программой для тестирования стала GrafX2:

http://grafx2.chez.com/

Она вполне нормально чувствует себя в Windows XP.

Интерфейс, по утверждению авторов, навеян амиговскими Deluxe Paint и Brilliance:


И правда, сделан он в каком-то ретростиле. По правде говоря, эта программа именно для пиксель-арта мне показалась не совсем удобной.

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

Да и разобраться в интерфейсе было не очень просто.

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


Pyxel Edit

К сожалению, эта программа платная, но есть старая бесплатная бета-версия 0.2.22c:

https://pyxeledit.com/beta/builds/PyxelEditCapt0.2.22c.zip


Вполне нормально работает под XP.

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

Поддерживает экспорт в GIF, PNG и JPG.


Graphics Gale

https://graphicsgale.com/us/

Недавно эта программа стала полностью freeware.

Я экспериментировал с версией 2.08.19. К сожалению, портативный вариант отказался запускаться – вылетал с каким-то исключением, но установочная версия поставилась и работала вполне нормально.


Интерфейс старых добрых программ Windows 9X – когда разработчики ещё не считали юзеров имбецилами, не злоупотребляли всякими рюшечками и кнопками в духе «Сделать всё красиво», а позволяли пользователю самому всё настроить на свой вкус.

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

В принципе, Graphics Gale мне показалась оптимальным выбором, чтобы по-быстренькому создать простенький рисунок в стиле пиксель-арта.


### Downgrade-игры

#### Результаты конкурса «Downgrade-игра своими руками»


1. Игра в текстовом режиме

Победитель (первое место) – Quest

Автор: Sh

Скачать игру можно здесь: http://dgmag.in/N25/Konkurs/quest.zip

Баллов набрано: 173


Средние оценки по 5 критериям (0-10):

Визуальная составляющая: 7,4

Звуковые эффекты, музыка: 4,4

Геймплей в общем: 7

Исходники: 6,8

Скорость и стабильность работы: 9


Второе место – XOR-Game

Автор: А. Завгородний (Kakos_Nonos)

Скачать игру можно здесь: http://dgmag.in/N25/Konkurs/xorgame.zip

Баллов набрано: 151


Средние оценки по 5 критериям (0-10):

Визуальная составляющая: 6,4

Звуковые эффекты, музыка: 0

Геймплей в общем: 8,2

Исходники: 6,4

Скорость и стабильность работы: 9,2


2. DOS – графический режим

Победитель – [Очень простая] Карточная игра

Автор: Linus Gates & Bill Torvalds

Скачать игру можно здесь: http://dgmag.in/N25/Konkurs/cardgame.zip


3. Spectrum

Игр прислано не было.


Более подробно оценки можно посмотреть здесь: http://dgmag.in/N25/Konkurs/voting.xls


Поздравляю победителей! В ближайшее время я свяжусь с авторами победивших работ по поводу призов.


uav1606


#### * Q U E S T *


Sh proud to present: Quest (http://dgmag.in/N25/Konkurs/quest.zip) – это небольшая головоломка, которая позволит игроку проверить свои мыслительные данные и потренировать собственную смекалку.

При запуске игры появляется рисунок с окнами – это и есть загадки. Выбор окна – клавиши со стрелками и Enter. Выйти из игры можно, нажав Escape.

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


Если ответ введён верно, то проиграется мелодия, которая сообщит об успехе.

После выполнения 4-х задач, на экране появится сообщение об успехе.


Системные требования игры:

Компьютер: IBM PC-совместимый.

Процессор: 8088 и выше.

Память: 640 КБ.

Видеоадаптер: CGA или выше (используется текстовый режим 03 – 80 на 25 символов, 16 цветов).

Операционная система: MS-DOS 3.30+.

Размер исполнимого файла с игрой – 47 килобайт.

Желательно наличие PC Speaker'а для воспроизведения мелодий.


Игра компилировалась в QuickBasic  v4.5.


О создании

Идея возникла после обсуждения квеста (или hack-quest) на форуме журнала Downgrade, цель создания игры – это некая «проба пера».

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

Выбранный текстовый режим 80х50 был сменён на привычный 80х25, потому что изображение выглядело слишком мелким. Использовалась текстовая графика, так как я не художник. Рисунок дома был найден в интернетах, остальные были нарисованы с помощью винрарного ACiDDraw – рисунок компьютера для загадки номер 1 и буквы для загадки номер 4. Так я стремился подражать программисту, который знает команды QB, и его фантазия не ограничена.

Самое сложное было в выборе загадок и в написании простого интерфейса игры. Выбор пал на QB, в котором не нужна быстрая графика для аркадной игры, так как заявленные в конкурсе требования к компьютеру не совпадали с тем, которым я владею.


Кратко опишу программу:


bpr() – процедура, которая воспроизводит мелодию.

ramka2() – подсветка текста в качестве курсора для головоломки 4. Используется простой доступ к видеопамяти по адресу $B800:0000.

textout() – печать текста для головоломки 4 – это своего рода анаграмма.

level1(), level2(), level3(), level4() – головоломки 1-4. Разобраться будет сложно, но игры были сделаны с той целью, чтобы было невозможно подглядеть ответы в программе.

house() – печать игрового экрана. Я внёс небольшое разнообразие и рискнул раскрасить картинку.

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


Sh


#### XOR-GAME


Игра XOR-Game (http://dgmag.in/N25/Konkurs/xorgame.zip) представляет собой логическую головоломку, идея была взята из игры g0blinish’a, возможно, были и другие реализации.

Цель игры такова: есть поле 30*16 ячеек, ячейки могут быть в двух состояниях — точка и звёздочка. Перед началом игры поле находится в хаотичном состоянии, надо за минимальное число ходов привести все ячейки в положение «точка». Игровой процесс следующий — при помощи стрелок мы перемещаемся по полю и нажатием на пробел делаем ход. При этом все ячейки вокруг курсора меняются на противоположные. Таким образом надо очистить всё поле.


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

В игре есть три уровня, они отличаются силой перемешивания поля перед началом игры. В лёгком уровне делается 50 случайных ходов. В среднем — 100, в сложном — 1000. В  первых двух ещё можно увидеть элементы, паттерны, которые легко разрешить, с третьим уже не так.

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

Игра написана на Borland Pascal’е 7.0, исходник прилагается.


Системные требования игры:

Компьютер: IBM PC-совместимый.

Процессор: 286 и выше.

Память: 640 КБ.

Видеоадаптер: CGA или выше (используется текстовый режим 03 – 80 на 25 символов,        16 цветов).

Операционная система: MS-DOS 3.30 и выше.

Размер исполнимого файла с игрой – 7 килобайт.


Как видим, пойдёт практически на любом IBM-совместимом компьютере.


Александр Завгородний (Kakos_Nonos)


#### [Очень простая] Карточная игра


История создания

Шёл 2003 год. Я понемногу учился программировать, и к тому моменту уже неплохо освоил Turbo Pascal, чему способствовали небезызвестные книги Фаронова В.В. Но хотелось чего-то большего, и если для Windows были Delphi, то вопрос поиска современного компилятора Pascal для DOS был открыт. В очередной поход в интернет-салон с замечательного сайта http://pascal.sources.ru был скачан бесплатный 32-битный компилятор TMT Pascal версии 3.9, авторы которого обещали высокую совместимость с Turbo Pascal'ем. Кроме того, в составе была библиотека graph, поддерживающая VESA-видеорежимы. Сразу появилась идея написать просмотрщик графических файлов для Norton Commander, так появился один из основных модулей программы (BMPUnit.pas). К сожалению, дальше просмотра BMP-файлов дело не пошло...

Шёл 2004 год. Начали появляться первые казуальные игры, некоторые из них были, как сейчас принято обозначать, 18+. Идея написать игру именно такого жанра возникла внезапно, тем более никогда до этого я игр не писал. Идея была простая: на экране должны появиться две открытые карты и одна скрытая, а игрок должен угадать, находится скрытая карта по старшинству между этими двумя или нет. Игра ведётся на виртуальные $, игрок может увеличивать или уменьшать ставку, в рамках своего кошелька. При достижении определённого количества $ картинка жанра 18+ сменяется на следующую. Если кошелёк игрока опустошается, то игра заканчивается. Если с выводом картинок проблем благодаря вышеописанному модулю не было, то с текстовыми сообщениями была заминка, но она была решена путём минимальной адаптации модуля F_GrText.pas за авторством упомянутого ранее Фаронова В.В. Когда вся нехитрая логика игры была реализована и была прикручена мышь, оказалось, что играть в эту игру нет никакого интереса, так как выиграть было слишком просто: на простых комбинациях игрок мог задрать ставку, а на сложных – занизить до минимума. Игра была заброшена...

Шли годы. Модуль BMPUnit потихоньку дополнялся и исправлялся, модуль F_GrText использовался при адаптации некоторых программ, написанных во времена TP, а игра так и лежала недописанной.

Шёл 2018 год. Совершенно случайно на одном из сайтов я увидел объявление об организации конкурса, в котором могут участвовать игры для MS-DOS, ранее нигде не публиковавшиеся. Идея дописать ранее брошенное как нельзя лучше сочеталась с этим условием. Во-первых, были исправлены ошибки модулей BMPUnit и F_GrText. Во-вторых, было решено несколько усложнить игру: ограничить верхнюю ставку, и, кроме того, размер верхней ставки стал лимитирован в зависимости от того, как далеко две открытые карты отстоят друг от друга. В-третьих, был реализована работа в 16-битном цветовом видеорежиме, до этого игра работала только в 32-битном (на самом деле в 24-битном). С изменением логики игры играть стало намного сложнее, поэтому для любителей контента 18+ было решено реализовать и старую простую логику, но и тут ограничить верхний размер ставки таким образом, чтобы в случае выигрыша набиралась сумма, достаточная для смены картинки жанра 18+.


Как запускать и как играть

Если запустить игру с параметром /? или /h, то выведется краткая справка по параметрам запуска.


/h, /? – This help screen – показать справку.

/16 – Use 16 bit SVGA mode – использовать 16-битный цветовой видеорежим.

/easy – Easy game – использовать режим простой игры.

CardCoverDir – Relative path to card cover directory – относительный путь к каталогу с изображениями карт.


При запуске программы открывается рабочее поле, в левой верхней части которого изображены две открытые и одна скрытая карта; ниже расположены надписи: сумма в кошельке, ставка, и сумма, которую необходимо достичь для смены изображения; в правой части отображается изображение жанра 18+; а в нижней части находятся кнопки (по порядку): «увеличить ставку на 100», «уменьшить ставку на 100», «попадает в диапазон», «не попадает в диапазон» и «выход».


Навигация между кнопками осуществляется с клавиатуры клавишами управления курсора или мышью. Игрок, анализируя изображённые две открытые карты, принимает решение о ставке, которую он устанавливает с помощью соответствующих кнопок. Далее он делает ход, нажимая кнопку «попадает в диапазон» или «не попадает в диапазон». Если он угадал – то появляется соответствующая надпись, и сумма в его кошельке увеличивается на размер ставки, а если не угадал – уменьшается. Если сумма в кошельке достигла лимита смены изображения формата 18+, то оно сменяется и корректируется значение этого лимита. Если игрок достиг нуля в кошельке и ему не на что играть, игра заканчивается появлением соответствующего сообщения.


Всего игра включает 24 изображения формата 18+, изображения взяты из одного известного мужского журнала. По достижении последней картинки игра не заканчивается, можно играть дальше, пока не надоест.


Прим. ред.: скачать игру можно здесь: http://dgmag.in/N25/Konkurs/cardgame.zip


Linus Gates & Bill Torvalds


### Юмор и прочее

#### Если с Битом вышел в путь...


Популярных произведений на тематику компьютеров, информационных технологий, программ и программирования создано предостаточно. В том числе и тех, что ориентированы на подрастающее поколение – в том числе на самых маленьких (и не очень) – дошкольников, младших школьников, а то и ребят средней школы. Авторы таких произведений обычно пытаются в доступной, игровой, интересной форме объяснить устройство компьютера, заинтересовать читателя, привить ему любовь к хитрому ящику с подключенным «телевизором». Первое, что приходит на ум, например, «А я был в компьютерном городе». Автор даже из интереса вытянул её в электронном виде и начал читать, но сегодня речь пойдёт не о ней. Речь пойдёт о двух героях, появившихся во времена советской компьютеризации на страницах журнала «Юный техник» – прошу любить и жаловать – Тим и Бит.

Тим, как я понял, ученик средней школы – сверстник среднего читателя ЮТа – разве что ему повезло, и в их семье в 87-м году появился компьютер. Бит – небольшой человечек, похожий, на авторский взгляд, то ли на розовый студень, то ли на ожившую картофелину, но всё равно прикольный малый. Чего можно ожидать от рассказа (а, в данном случае, комикса) с такими героями? Наверное, или Тим будет перенесён в компьютерную вселенную, как герой «Компьютерного города», или же Бит в сопровождении Тима будет разгуливать по перестроечной Москве и удивляться. Но оказалось, что друзьям предстоит совершать путешествия в места и времена, о которых и Тим, и Бит знают примерно одинаково, так что ни у одного из героев не будет преимущества, и каждый может проявить себя молодцом – Бит, как представитель компьютерного мира, окажется более подкован в математике, Тим же проявит смекалку.

Так куда же отправятся наши герои? В древние времена – к диким людям в набедренных повязках, в Рим – прямиком на гладиаторскую арену, к подкователю аглицких блох – лесковскому Левше – и это только в 87-ом году.

Что интересно, Тим и Бит стали, как можно выразиться, маскотами журнала в те времена. Они появлялись не только в качестве героев комиксов, но и просто на одиночных иллюстрациях журнальных статей.


Рис. 1. Статья была посвящена истории электромобилей... казалось бы, причём здесь эти двое?


Однако уже в 89-м и тем более 90-м году они исчезают со страниц журнала. Казалось бы, на этом можно закончить повествование, повздыхать об интересной, нетривиальной и не слишком уж лёгкой для реализации идее, ну и привести список журналов (а он будет чуть позже ☺), но в 91-м году появляется приложение к ЮТу «А почему?», и уже в 92-м там появляются Тим и Бит. Но случилось то, что сейчас называют перезагрузкой вселенной – Тим и Бит знакомятся снова. Тим уже выглядит как второ- или, максимум, третьеклассник. Бит же становится умным всезнающим наставником непоседливого и неопытного Тима. Этот комикс или, как его называли, «Наш мультик» оказался более плодовитым – Тим и Бит залезли внутрь компьютера, Бит объяснил устройство компьютера (интересно, что восьмиразрядного ☺), столкнулись с компьютерными вирусами и даже отправились в виртуальное путешествие в поисках пропавшего корабля.


Рис. 2. Тим и Бит – перезагрузка ☺


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


И напоследок небольшой путеводитель.


Комиксы в ЮТе:

• ЮТ №2 1987 с. 2-3 – «Знакомство».

• ЮТ №5 1987 с. 42-43 – на гладиаторской арене.

• ЮТ №6 1987 с. 36-37, 41 – «Встречи в каменном веке».

• ЮТ №9 1987 с. 46-47 – «За помощью к Левше».


Тим и Бит в иллюстрациях ЮТа:

• ЮТ №2 1987 – Бит на обложке.

• ЮТ №2 1987 – с. 52 – Тим и Бит на иллюстрации статьи «Компьютерные игры – это серьезно».

• ЮТ №4 1987 – с. 26 – иллюстрация к статье об электромобилях (рисунок взят для рис. 1 статьи).

• ЮТ №4 1987 – с. 58, 59 – иллюстрации к статье об экспертных системах.

• ЮТ №5 1987 – с. 69 – Бит на иллюстрации к статье, посвящённой конкурсу «Летает всё».

• ЮТ №10 1987 – с. 75-76 – Бит в иллюстрации к статье о наглядном пособии для демонстрации некоторых свойств атомов и явлений молекулярной физики.

• ЮТ №12 1987 – с. 79 – Бит в иллюстрации к итогам конкурса «Летает всё».

• ЮТ №3 1988 – с. 54-55 – Тим и Бит в иллюстрациях к итогам конкурса сценариев компьютерных игр.

• ЮТ №4 1988 – с. 66 – Бит в иллюстрации к статье, посвящённой йо-йо.


Тим и Бит в «А почему?»:

• «А почему?» №1 1992  – с. 8-9 – «Знакомство».

• «А почему?» №2-3 1992 – с. 8-9 и №4-5 1992 с. 14-15 – путешествие внутрь компьютера.

• «А почему?» №6 1992 с. 16-17 – компьютерные вирусы.

• «А почему?» №1 1993 с. 6-7 – в поисках капитана Лаперуза и его корабля (в следующих номерах продолжение).

Журнал «А почему?» на сайте публичной библиотеки: ссылка.


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


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


#### Команда журнала (редколлегия и авторы за все годы)


Редколлегия


Авторы


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


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

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

Помощник редактора – Андрей Шаронов (Andrei88)


Авторы:

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

flaz14

uav1606

Romanson

Sh


Мини-обзоры игр на конкурс:

Sh

Александр Завгородний (Kakos_Nonos)

Linus Gates & Bill Torvalds


Сайт журнала: http://dgmag.in


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

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


Группа ВКонтакте: http://vk.com/dgmag


E–mail главного редактора: uav16060 [cobaka] mail.ru